gunsmith-common 2.2.4 → 2.2.6

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 (254) hide show
  1. package/esm2020/gunsmith-common.mjs +4 -4
  2. package/esm2020/notification/fade-out.animation.mjs +10 -10
  3. package/esm2020/notification/index.mjs +4 -4
  4. package/esm2020/notification/notification-bar/notification-bar.component.mjs +43 -43
  5. package/esm2020/notification/notification-message.mjs +3 -3
  6. package/esm2020/notification/notification-type.enum.mjs +6 -6
  7. package/esm2020/notification/notification.module.mjs +26 -26
  8. package/esm2020/notification/notification.service.mjs +21 -21
  9. package/esm2020/public_api.mjs +13 -13
  10. package/esm2020/shared/controls/package-selector/package-selector.component.mjs +184 -172
  11. package/esm2020/shared/directives/disable-control.directive.mjs +24 -24
  12. package/esm2020/shared/directives/index.mjs +3 -3
  13. package/esm2020/shared/directives/refinish-details-validators.mjs +45 -45
  14. package/esm2020/shared/pipes/enum.pipe.mjs +16 -16
  15. package/esm2020/shared/pipes/file-name.pipe.mjs +16 -16
  16. package/esm2020/shared/pipes/frame-material.pipe.mjs +24 -24
  17. package/esm2020/shared/pipes/index.mjs +6 -6
  18. package/esm2020/shared/pipes/new-line.pipe.mjs +16 -16
  19. package/esm2020/shared/pipes/phone.pipe.mjs +19 -19
  20. package/esm2020/shared/services/coating.service.mjs +63 -63
  21. package/esm2020/shared/services/configuration.service.mjs +29 -29
  22. package/esm2020/shared/services/customer.service.mjs +47 -47
  23. package/esm2020/shared/services/dealer.service.mjs +45 -45
  24. package/esm2020/shared/services/file-upload.service.mjs +34 -39
  25. package/esm2020/shared/services/firearm-series.service.mjs +45 -45
  26. package/esm2020/shared/services/firearm.service.mjs +48 -48
  27. package/esm2020/shared/services/gun-part.service.mjs +52 -52
  28. package/esm2020/shared/services/index.mjs +30 -27
  29. package/esm2020/shared/services/inventory.service.mjs +38 -38
  30. package/esm2020/shared/services/material.service.mjs +30 -30
  31. package/esm2020/shared/services/milling-type.service.mjs +53 -53
  32. package/esm2020/shared/services/optic.service.mjs +42 -42
  33. package/esm2020/shared/services/package.service.mjs +47 -47
  34. package/esm2020/shared/services/product.service.mjs +29 -29
  35. package/esm2020/shared/services/purchase-order.service.mjs +87 -87
  36. package/esm2020/shared/services/quickbooks.service.mjs +30 -0
  37. package/esm2020/shared/services/refinish-code.service.mjs +35 -35
  38. package/esm2020/shared/services/state.service.mjs +26 -26
  39. package/esm2020/shared/services/status-history.service.mjs +40 -40
  40. package/esm2020/shared/services/totals.service.mjs +50 -50
  41. package/esm2020/shared/services/user.service.mjs +26 -26
  42. package/esm2020/shared/services/vendor.service.mjs +42 -42
  43. package/esm2020/shared/services/waitlist-customer.service.mjs +38 -38
  44. package/esm2020/shared/services/waitlist-project.service.mjs +38 -38
  45. package/esm2020/shared/services/waitlist.service.mjs +86 -86
  46. package/esm2020/shared/services/work-holiday.service.mjs +32 -32
  47. package/esm2020/shared/services/work-order-discount.service.mjs +38 -0
  48. package/esm2020/shared/services/work-order-shipping-item.service.mjs +38 -0
  49. package/esm2020/shared/services/work-order.service.mjs +195 -195
  50. package/esm2020/shared/shared.module.mjs +67 -67
  51. package/esm2020/shared/types/bundle-item.mjs +6 -6
  52. package/esm2020/shared/types/change-order-status.mjs +9 -9
  53. package/esm2020/shared/types/coating-value.mjs +6 -6
  54. package/esm2020/shared/types/coating.mjs +8 -8
  55. package/esm2020/shared/types/configuration.mjs +3 -3
  56. package/esm2020/shared/types/customer.mjs +6 -6
  57. package/esm2020/shared/types/dealer-contact.mjs +3 -3
  58. package/esm2020/shared/types/dealer-coupon.mjs +3 -3
  59. package/esm2020/shared/types/dealer.mjs +8 -8
  60. package/esm2020/shared/types/filter-options.mjs +9 -9
  61. package/esm2020/shared/types/firearm-series-optic.mjs +9 -9
  62. package/esm2020/shared/types/firearm-series.mjs +10 -10
  63. package/esm2020/shared/types/firearm.mjs +6 -6
  64. package/esm2020/shared/types/frame-material.mjs +8 -8
  65. package/esm2020/shared/types/gun-caliber.mjs +7 -7
  66. package/esm2020/shared/types/gun-part-option.mjs +3 -3
  67. package/esm2020/shared/types/gun-part.mjs +11 -11
  68. package/esm2020/shared/types/index.mjs +70 -68
  69. package/esm2020/shared/types/inventory-item.mjs +9 -6
  70. package/esm2020/shared/types/j-file.mjs +3 -3
  71. package/esm2020/shared/types/material.mjs +6 -6
  72. package/esm2020/shared/types/milling-detail.mjs +7 -7
  73. package/esm2020/shared/types/milling-item.mjs +3 -3
  74. package/esm2020/shared/types/milling-type.mjs +6 -6
  75. package/esm2020/shared/types/mount-type.mjs +9 -9
  76. package/esm2020/shared/types/optic-status.mjs +7 -7
  77. package/esm2020/shared/types/optic.mjs +7 -7
  78. package/esm2020/shared/types/package-item.mjs +3 -3
  79. package/esm2020/shared/types/package-optional-item.mjs +3 -3
  80. package/esm2020/shared/types/package-total.mjs +3 -3
  81. package/esm2020/shared/types/package-variation-option.mjs +3 -3
  82. package/esm2020/shared/types/package-variation.mjs +6 -6
  83. package/esm2020/shared/types/package.mjs +10 -10
  84. package/esm2020/shared/types/product.mjs +3 -3
  85. package/esm2020/shared/types/project-type.mjs +7 -7
  86. package/esm2020/shared/types/purchase-order-refinish-item.mjs +3 -3
  87. package/esm2020/shared/types/purchase-order-status.mjs +8 -8
  88. package/esm2020/shared/types/purchase-order.mjs +9 -9
  89. package/esm2020/shared/types/rear-sight-position.mjs +6 -6
  90. package/esm2020/shared/types/refinish-code.mjs +3 -3
  91. package/esm2020/shared/types/refinish-detail.mjs +3 -3
  92. package/esm2020/shared/types/report-milling-item.mjs +3 -3
  93. package/esm2020/shared/types/report-refinish-item.mjs +3 -3
  94. package/esm2020/shared/types/shield-rms-options.mjs +6 -6
  95. package/esm2020/shared/types/sight-type.mjs +7 -7
  96. package/esm2020/shared/types/state.mjs +3 -3
  97. package/esm2020/shared/types/total-item.mjs +3 -3
  98. package/esm2020/shared/types/total.mjs +3 -3
  99. package/esm2020/shared/types/vendor-contact.mjs +3 -3
  100. package/esm2020/shared/types/vendor.mjs +7 -7
  101. package/esm2020/shared/types/waitlist-action.mjs +9 -9
  102. package/esm2020/shared/types/waitlist-gun-package-detail.mjs +7 -7
  103. package/esm2020/shared/types/waitlist-gun.mjs +13 -12
  104. package/esm2020/shared/types/waitlist-history.mjs +3 -3
  105. package/esm2020/shared/types/waitlist-item.mjs +12 -12
  106. package/esm2020/shared/types/waitlist-status.mjs +15 -15
  107. package/esm2020/shared/types/work-change-order.mjs +3 -3
  108. package/esm2020/shared/types/work-holiday.mjs +3 -3
  109. package/esm2020/shared/types/work-order-action.mjs +7 -7
  110. package/esm2020/shared/types/work-order-discount.mjs +4 -0
  111. package/esm2020/shared/types/work-order-history.mjs +3 -3
  112. package/esm2020/shared/types/work-order-inventory-item.mjs +3 -3
  113. package/esm2020/shared/types/work-order-list-item.mjs +3 -3
  114. package/esm2020/shared/types/work-order-package-detail.mjs +7 -7
  115. package/esm2020/shared/types/work-order-refinish-item.mjs +3 -3
  116. package/esm2020/shared/types/work-order-shipping-item.mjs +3 -0
  117. package/esm2020/shared/types/work-order-status.mjs +18 -18
  118. package/esm2020/shared/types/work-order-type.mjs +8 -8
  119. package/esm2020/shared/types/work-order.mjs +18 -18
  120. package/esm2020/shared/utils/coating-helpers.mjs +22 -22
  121. package/esm2020/shared/utils/enum-object.mjs +10 -10
  122. package/esm2020/shared/utils/finish-date-calculator.mjs +30 -30
  123. package/esm2020/shared/utils/index.mjs +5 -5
  124. package/esm2020/shared/utils/invalid-form-control-toucher.mjs +7 -7
  125. package/fesm2015/gunsmith-common.mjs +2118 -2001
  126. package/fesm2015/gunsmith-common.mjs.map +1 -1
  127. package/fesm2020/gunsmith-common.mjs +2058 -1947
  128. package/fesm2020/gunsmith-common.mjs.map +1 -1
  129. package/gunsmith-common-2.2.6.tgz +0 -0
  130. package/gunsmith-common.d.ts +5 -5
  131. package/notification/fade-out.animation.d.ts +2 -2
  132. package/notification/index.d.ts +3 -3
  133. package/notification/notification-bar/notification-bar.component.d.ts +18 -18
  134. package/notification/notification-message.d.ts +6 -6
  135. package/notification/notification-type.enum.d.ts +4 -4
  136. package/notification/notification.module.d.ts +8 -8
  137. package/notification/notification.service.d.ts +12 -12
  138. package/package.json +1 -1
  139. package/public_api.d.ts +9 -9
  140. package/shared/controls/package-selector/package-selector.component.d.ts +40 -39
  141. package/shared/directives/disable-control.directive.d.ts +9 -9
  142. package/shared/directives/index.d.ts +2 -2
  143. package/shared/directives/refinish-details-validators.d.ts +4 -4
  144. package/shared/pipes/enum.pipe.d.ts +7 -7
  145. package/shared/pipes/file-name.pipe.d.ts +7 -7
  146. package/shared/pipes/frame-material.pipe.d.ts +11 -11
  147. package/shared/pipes/index.d.ts +5 -5
  148. package/shared/pipes/new-line.pipe.d.ts +7 -7
  149. package/shared/pipes/phone.pipe.d.ts +7 -7
  150. package/shared/services/coating.service.d.ts +22 -22
  151. package/shared/services/configuration.service.d.ts +14 -14
  152. package/shared/services/customer.service.d.ts +17 -17
  153. package/shared/services/dealer.service.d.ts +19 -19
  154. package/shared/services/file-upload.service.d.ts +13 -14
  155. package/shared/services/firearm-series.service.d.ts +18 -18
  156. package/shared/services/firearm.service.d.ts +20 -20
  157. package/shared/services/gun-part.service.d.ts +18 -18
  158. package/shared/services/index.d.ts +29 -26
  159. package/shared/services/inventory.service.d.ts +15 -15
  160. package/shared/services/material.service.d.ts +13 -13
  161. package/shared/services/milling-type.service.d.ts +18 -18
  162. package/shared/services/optic.service.d.ts +17 -17
  163. package/shared/services/package.service.d.ts +16 -16
  164. package/shared/services/product.service.d.ts +15 -15
  165. package/shared/services/purchase-order.service.d.ts +27 -27
  166. package/shared/services/quickbooks.service.d.ts +12 -0
  167. package/shared/services/refinish-code.service.d.ts +16 -16
  168. package/shared/services/state.service.d.ts +13 -13
  169. package/shared/services/status-history.service.d.ts +14 -14
  170. package/shared/services/totals.service.d.ts +15 -15
  171. package/shared/services/user.service.d.ts +12 -12
  172. package/shared/services/vendor.service.d.ts +17 -17
  173. package/shared/services/waitlist-customer.service.d.ts +15 -15
  174. package/shared/services/waitlist-project.service.d.ts +17 -17
  175. package/shared/services/waitlist.service.d.ts +25 -25
  176. package/shared/services/work-holiday.service.d.ts +15 -15
  177. package/shared/services/work-order-discount.service.d.ts +17 -0
  178. package/shared/services/work-order-shipping-item.service.d.ts +17 -0
  179. package/shared/services/work-order.service.d.ts +53 -53
  180. package/shared/shared.module.d.ts +16 -16
  181. package/shared/types/bundle-item.d.ts +11 -11
  182. package/shared/types/change-order-status.d.ts +7 -7
  183. package/shared/types/coating-value.d.ts +6 -6
  184. package/shared/types/coating.d.ts +11 -11
  185. package/shared/types/configuration.d.ts +11 -11
  186. package/shared/types/customer.d.ts +14 -14
  187. package/shared/types/dealer-contact.d.ts +9 -9
  188. package/shared/types/dealer-coupon.d.ts +5 -5
  189. package/shared/types/dealer.d.ts +24 -24
  190. package/shared/types/filter-options.d.ts +6 -6
  191. package/shared/types/firearm-series-optic.d.ts +12 -12
  192. package/shared/types/firearm-series.d.ts +11 -11
  193. package/shared/types/firearm.d.ts +10 -10
  194. package/shared/types/frame-material.d.ts +6 -6
  195. package/shared/types/gun-caliber.d.ts +5 -5
  196. package/shared/types/gun-part-option.d.ts +9 -9
  197. package/shared/types/gun-part.d.ts +13 -13
  198. package/shared/types/index.d.ts +69 -67
  199. package/shared/types/inventory-item.d.ts +10 -9
  200. package/shared/types/j-file.d.ts +5 -5
  201. package/shared/types/material.d.ts +6 -6
  202. package/shared/types/milling-detail.d.ts +19 -19
  203. package/shared/types/milling-item.d.ts +8 -8
  204. package/shared/types/milling-type.d.ts +11 -10
  205. package/shared/types/mount-type.d.ts +7 -7
  206. package/shared/types/optic-status.d.ts +5 -5
  207. package/shared/types/optic.d.ts +7 -7
  208. package/shared/types/package-item.d.ts +9 -9
  209. package/shared/types/package-optional-item.d.ts +10 -6
  210. package/shared/types/package-total.d.ts +5 -5
  211. package/shared/types/package-variation-option.d.ts +14 -10
  212. package/shared/types/package-variation.d.ts +9 -8
  213. package/shared/types/package.d.ts +15 -14
  214. package/shared/types/product.d.ts +7 -7
  215. package/shared/types/project-type.d.ts +5 -5
  216. package/shared/types/purchase-order-refinish-item.d.ts +18 -18
  217. package/shared/types/purchase-order-status.d.ts +6 -6
  218. package/shared/types/purchase-order.d.ts +11 -11
  219. package/shared/types/rear-sight-position.d.ts +4 -4
  220. package/shared/types/refinish-code.d.ts +9 -8
  221. package/shared/types/refinish-detail.d.ts +13 -13
  222. package/shared/types/report-milling-item.d.ts +16 -16
  223. package/shared/types/report-refinish-item.d.ts +20 -20
  224. package/shared/types/shield-rms-options.d.ts +4 -4
  225. package/shared/types/sight-type.d.ts +5 -5
  226. package/shared/types/state.d.ts +4 -4
  227. package/shared/types/total-item.d.ts +4 -4
  228. package/shared/types/total.d.ts +5 -5
  229. package/shared/types/vendor-contact.d.ts +9 -9
  230. package/shared/types/vendor.d.ts +20 -20
  231. package/shared/types/waitlist-action.d.ts +7 -7
  232. package/shared/types/waitlist-gun-package-detail.d.ts +10 -10
  233. package/shared/types/waitlist-gun.d.ts +25 -24
  234. package/shared/types/waitlist-history.d.ts +8 -8
  235. package/shared/types/waitlist-item.d.ts +25 -25
  236. package/shared/types/waitlist-status.d.ts +13 -13
  237. package/shared/types/work-change-order.d.ts +10 -10
  238. package/shared/types/work-holiday.d.ts +4 -4
  239. package/shared/types/work-order-action.d.ts +5 -5
  240. package/shared/types/work-order-discount.d.ts +8 -0
  241. package/shared/types/work-order-history.d.ts +8 -8
  242. package/shared/types/work-order-inventory-item.d.ts +7 -7
  243. package/shared/types/work-order-list-item.d.ts +15 -15
  244. package/shared/types/work-order-package-detail.d.ts +10 -10
  245. package/shared/types/work-order-refinish-item.d.ts +18 -18
  246. package/shared/types/work-order-shipping-item.d.ts +7 -0
  247. package/shared/types/work-order-status.d.ts +16 -16
  248. package/shared/types/work-order-type.d.ts +6 -6
  249. package/shared/types/work-order.d.ts +33 -33
  250. package/shared/utils/coating-helpers.d.ts +5 -5
  251. package/shared/utils/enum-object.d.ts +5 -5
  252. package/shared/utils/finish-date-calculator.d.ts +2 -2
  253. package/shared/utils/index.d.ts +4 -4
  254. package/shared/utils/invalid-form-control-toucher.d.ts +2 -2
@@ -1,172 +1,184 @@
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 } 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.packages = [];
16
- this.packageVariations = [];
17
- this.packageOptionalItems = [];
18
- this.onChangeSubs = [];
19
- this.onTouched = () => { };
20
- this.touched = false;
21
- this.disabled = false;
22
- this.createForm();
23
- }
24
- ngOnChanges(changes) {
25
- if ((changes.firearmId?.currentValue && this.projectType === ProjectType.Firearm) ||
26
- (changes.projectType?.currentValue === ProjectType.Firearm && this.firearmId)) {
27
- this.getPackages();
28
- this.packageForm.reset();
29
- }
30
- else {
31
- this.packages = [];
32
- this.packageForm.reset();
33
- }
34
- }
35
- ngAfterViewInit() {
36
- const outerControl = this.inj.get(NgControl).control;
37
- const prevMarkAsTouched = outerControl.markAsTouched;
38
- outerControl.markAsTouched = (...args) => {
39
- this.packageForm.markAllAsTouched();
40
- prevMarkAsTouched.bind(outerControl)(...args);
41
- };
42
- }
43
- ngOnDestroy() {
44
- for (let sub of this.onChangeSubs) {
45
- sub.unsubscribe();
46
- }
47
- }
48
- getPackages() {
49
- this.packageService.readPackagesByFirearm(this.firearmId)
50
- .subscribe(packages => {
51
- this.packages = packages;
52
- if (this.packageForm.controls.package.value) {
53
- let packagez = this.packages.find(p => p.id === this.packageForm.controls.package.value.id);
54
- this.setPackageOptions(packagez);
55
- }
56
- });
57
- }
58
- createForm() {
59
- this.packageForm = this.fb.group({
60
- package: null,
61
- optionalItems: this.fb.control([]),
62
- variations: this.fb.array([])
63
- });
64
- this.packageForm.controls.package.valueChanges
65
- .subscribe(value => {
66
- this.packageForm.controls.optionalItems.reset();
67
- this.packageOptionalItems = [];
68
- this.variations.clear({ emitEvent: false });
69
- this.packageVariations = [];
70
- if (value?.id) {
71
- this.setPackageOptions(value);
72
- }
73
- else {
74
- if (this.packageDetail) {
75
- this.packageDetail.variations = null;
76
- this.packageDetail.optionalItems = null;
77
- }
78
- }
79
- });
80
- }
81
- get variations() { return this.packageForm.controls.variations; }
82
- setPackageOptions(packagez) {
83
- this.packageOptionalItems = packagez.optionalItems;
84
- this.packageVariations = packagez.variations;
85
- this.variations.clear({ emitEvent: false });
86
- for (let v of this.packageVariations) {
87
- let selectedVariation = this.packageDetail?.variations?.find(pv => pv.packageVariationId === v.id);
88
- this.variations.push(this.fb.control(selectedVariation, Validators.required), { emitEvent: false });
89
- }
90
- }
91
- setValue(packageDetail) {
92
- this.packageForm.reset(packageDetail);
93
- }
94
- validate(control) {
95
- if (this.packageForm.valid) {
96
- return null;
97
- }
98
- let errors = {};
99
- for (let v of this.variations.controls) {
100
- if (v.invalid) {
101
- return v.errors;
102
- }
103
- }
104
- return errors;
105
- }
106
- addControlErrors(allErrors, controlName) {
107
- const errors = { ...allErrors };
108
- const controlErrors = this.packageForm.controls[controlName].errors;
109
- if (controlErrors) {
110
- errors[controlName] = controlErrors;
111
- }
112
- return errors;
113
- }
114
- writeValue(packageDetail) {
115
- if (packageDetail) {
116
- this.packageDetail = Object.assign({}, packageDetail);
117
- this.setValue(packageDetail);
118
- }
119
- else {
120
- this.packageForm.reset();
121
- }
122
- }
123
- registerOnChange(onChange) {
124
- const sub = this.packageForm.valueChanges.subscribe(onChange);
125
- this.onChangeSubs.push(sub);
126
- }
127
- registerOnTouched(onTouched) {
128
- this.onTouched = onTouched;
129
- }
130
- setDisabledState(isDisabled) {
131
- this.disabled = isDisabled;
132
- if (isDisabled) {
133
- this.packageForm.disable();
134
- }
135
- else {
136
- this.packageForm.enable();
137
- }
138
- }
139
- }
140
- 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 });
141
- PackageSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PackageSelectorComponent, selector: "cgw-package-selector", inputs: { firearmId: "firearmId", projectType: "projectType" }, providers: [
142
- {
143
- provide: NG_VALUE_ACCESSOR,
144
- multi: true,
145
- useExisting: PackageSelectorComponent
146
- },
147
- {
148
- provide: NG_VALIDATORS,
149
- multi: true,
150
- useExisting: PackageSelectorComponent
151
- }
152
- ], usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"packageForm\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col\">\r\n <label for=\"waitlist-gun-package\">Package - <span class=\"fst-italic fs-7\">Select a model to list available packages</span></label>\r\n <kendo-dropdownlist [data]=\"packages\"\r\n [defaultItem]=\"{name: 'No Package', id: null}\"\r\n id=\"waitlist-gun-package\"\r\n formControlName=\"package\"\r\n textField=\"name\"\r\n valueField=\"id\"\r\n size=\"small\"></kendo-dropdownlist>\r\n </div>\r\n </div>\r\n <div formArrayName=\"variations\" *ngFor=\"let variationControl of variations.controls; let i = index\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col\">\r\n <label [for]=\"'waitlist-gun-package-variation-' + i\">{{packageVariations[i]?.name}}</label>\r\n <kendo-dropdownlist [data]=\"packageVariations[i]?.options\"\r\n [id]=\"'waitlist-gun-package-variation-' + i\"\r\n textField=\"optionName\"\r\n [formControl]=\"variationControl\"\r\n valueField=\"id\"\r\n size=\"small\"></kendo-dropdownlist>\r\n </div>\r\n </div>\r\n <div *ngIf=\"variationControl.invalid && (variationControl.dirty || variationControl.touched)\" class=\"error-container text-danger\">\r\n <div *ngIf=\"variationControl.errors.required\">\r\n {{packageVariations[i]?.name}} is required.\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row mb-2\" *ngIf=\"packageOptionalItems?.length\">\r\n <div class=\"col\">\r\n <label for=\"waitlist-gun-package-addons\">Add-ons (Additional charges will apply)</label>\r\n <kendo-multiselect id=\"waitlist-gun-package-addons\"\r\n [data]=\"packageOptionalItems\"\r\n formControlName=\"optionalItems\"\r\n textField=\"name\"\r\n valueField=\"inventoryItemId\"\r\n size=\"small\"></kendo-multiselect>\r\n </div>\r\n </div>\r\n</div>\r\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: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PackageSelectorComponent, decorators: [{
154
- type: Component,
155
- args: [{ selector: 'cgw-package-selector', 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
- ], template: "<div [formGroup]=\"packageForm\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col\">\r\n <label for=\"waitlist-gun-package\">Package - <span class=\"fst-italic fs-7\">Select a model to list available packages</span></label>\r\n <kendo-dropdownlist [data]=\"packages\"\r\n [defaultItem]=\"{name: 'No Package', id: null}\"\r\n id=\"waitlist-gun-package\"\r\n formControlName=\"package\"\r\n textField=\"name\"\r\n valueField=\"id\"\r\n size=\"small\"></kendo-dropdownlist>\r\n </div>\r\n </div>\r\n <div formArrayName=\"variations\" *ngFor=\"let variationControl of variations.controls; let i = index\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col\">\r\n <label [for]=\"'waitlist-gun-package-variation-' + i\">{{packageVariations[i]?.name}}</label>\r\n <kendo-dropdownlist [data]=\"packageVariations[i]?.options\"\r\n [id]=\"'waitlist-gun-package-variation-' + i\"\r\n textField=\"optionName\"\r\n [formControl]=\"variationControl\"\r\n valueField=\"id\"\r\n size=\"small\"></kendo-dropdownlist>\r\n </div>\r\n </div>\r\n <div *ngIf=\"variationControl.invalid && (variationControl.dirty || variationControl.touched)\" class=\"error-container text-danger\">\r\n <div *ngIf=\"variationControl.errors.required\">\r\n {{packageVariations[i]?.name}} is required.\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row mb-2\" *ngIf=\"packageOptionalItems?.length\">\r\n <div class=\"col\">\r\n <label for=\"waitlist-gun-package-addons\">Add-ons (Additional charges will apply)</label>\r\n <kendo-multiselect id=\"waitlist-gun-package-addons\"\r\n [data]=\"packageOptionalItems\"\r\n formControlName=\"optionalItems\"\r\n textField=\"name\"\r\n valueField=\"inventoryItemId\"\r\n size=\"small\"></kendo-multiselect>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [""] }]
167
- }], ctorParameters: function () { return [{ type: i1.PackageService }, { type: i2.FormBuilder }, { type: i0.Injector }]; }, propDecorators: { firearmId: [{
168
- type: Input
169
- }], projectType: [{
170
- type: Input
171
- }] } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndW5zbWl0aC1jb21tb24vc3JjL3NoYXJlZC9jb250cm9scy9wYWNrYWdlLXNlbGVjdG9yL3BhY2thZ2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Vuc21pdGgtY29tbW9uL3NyYy9zaGFyZWQvY29udHJvbHMvcGFja2FnZS1zZWxlY3Rvci9wYWNrYWdlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQStDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBb0QsV0FBVyxFQUFhLFNBQVMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhNLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQW9HLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBbUI1SSxNQUFNLE9BQU8sd0JBQXdCO0lBc0JuQyxZQUNVLGNBQThCLEVBQzlCLEVBQWUsRUFDZixHQUFhO1FBRmIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFVO1FBakJ2QixhQUFRLEdBQWMsRUFBRSxDQUFDO1FBQ3pCLHNCQUFpQixHQUF1QixFQUFFLENBQUM7UUFDM0MseUJBQW9CLEdBQTBCLEVBQUUsQ0FBQztRQU1qRCxpQkFBWSxHQUFtQixFQUFFLENBQUM7UUFDbEMsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV0QixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGFBQVEs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QUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzVCO2FBQ0k7WUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzs7c0hBeEtVLHdCQUF3QjswR0FBeEIsd0JBQXdCLCtHQWJ4QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSx3QkFBd0I7U0FDdEM7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLHdCQUF3QjtTQUN0QztLQUNGLCtDQ3JCSCx1c0VBMkNBOzRGRHBCYSx3QkFBd0I7a0JBakJwQyxTQUFTOytCQUNFLHNCQUFzQixhQUdyQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLDBCQUEwQjt5QkFDdEM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsMEJBQTBCO3lCQUN0QztxQkFDRjtzSkFLRCxTQUFTO3NCQURSLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBOZ0NvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3IsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQYWNrYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgUGFja2FnZSwgUGFja2FnZVZhcmlhdGlvbiwgUGFja2FnZU9wdGlvbmFsSXRlbSwgV2FpdGxpc3RHdW5QYWNrYWdlRGV0YWlsLCBXb3JrT3JkZXJQYWNrYWdlRGV0YWlsLCBQcm9qZWN0VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY2d3LXBhY2thZ2Utc2VsZWN0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWNrYWdlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wYWNrYWdlLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFBhY2thZ2VTZWxlY3RvckNvbXBvbmVudFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBQYWNrYWdlU2VsZWN0b3JDb21wb25lbnRcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWNrYWdlU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZmlyZWFybUlkOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHJvamVjdFR5cGU6IFByb2plY3RUeXBlO1xyXG5cclxuICBwYWNrYWdlczogUGFja2FnZVtdID0gW107XHJcbiAgcGFja2FnZVZhcmlhdGlvbnM6IFBhY2thZ2VWYXJpYXRpb25bXSA9IFtdO1xyXG4gIHBhY2thZ2VPcHRpb25hbEl0ZW1zOiBQYWNrYWdlT3B0aW9uYWxJdGVtW10gPSBbXTtcclxuXHJcbiAgcGFja2FnZURldGFpbDogV2FpdGxpc3RHdW5QYWNrYWdlRGV0YWlsIHwgV29ya09yZGVyUGFja2FnZURldGFpbDtcclxuXHJcbiAgcGFja2FnZUZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgb25DaGFuZ2VTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcclxuXHJcbiAgdG91Y2hlZCA9IGZhbHNlO1xyXG4gIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwYWNrYWdlU2VydmljZTogUGFja2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgaW5qOiBJbmplY3RvclxyXG4gICkge1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoKGNoYW5nZXMuZmlyZWFybUlkPy5jdXJyZW50VmFsdWUgJiYgdGhpcy5wcm9qZWN0VHlwZSA9PT0gUHJvamVjdFR5cGUuRmlyZWFybSkgfHxcclxuICAgICAgKGNoYW5nZXMucHJvamVjdFR5cGU/LmN1cnJlbnRWYWx1ZSA9PT0gUHJvamVjdFR5cGUuRmlyZWFybSAmJiB0aGlzLmZpcmVhcm1JZCkpIHtcclxuICAgICAgdGhpcy5nZXRQYWNrYWdlcygpO1xyXG4gICAgICB0aGlzLnBhY2thZ2VGb3JtLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5wYWNrYWdlcyA9IFtdO1xyXG4gICAgICB0aGlzLnBhY2thZ2VGb3JtLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBvdXRlckNvbnRyb2wgPSB0aGlzLmluai5nZXQoTmdDb250cm9sKS5jb250cm9sO1xyXG4gICAgY29uc3QgcHJldk1hcmtBc1RvdWNoZWQgPSBvdXRlckNvbnRyb2wubWFya0FzVG91Y2hlZDtcclxuICAgIG91dGVyQ29udHJvbC5tYXJrQXNUb3VjaGVkID0gKC4uLmFyZ3M6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnBhY2thZ2VGb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgICAgcHJldk1hcmtBc1RvdWNoZWQuYmluZChvdXRlckNvbnRyb2wpKC4uLmFyZ3MpO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgc3ViIG9mIHRoaXMub25DaGFuZ2VTdWJzKSB7XHJcbiAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UGFja2FnZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhY2thZ2VTZXJ2aWNlLnJlYWRQYWNrYWdlc0J5RmlyZWFybSh0aGlzLmZpcmVhcm1JZClcclxuICAgICAgLnN1YnNjcmliZShwYWNrYWdlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5wYWNrYWdlcyA9IHBhY2thZ2VzO1xyXG4gICAgICAgIGlmICh0aGlzLnBhY2thZ2VGb3JtLmNvbnRyb2xzLnBhY2thZ2UudmFsdWUpIHtcclxuICAgICAgICAgIGxldCBwYWNrYWdleiA9IHRoaXMucGFja2FnZXMuZmluZChwID0+IHAuaWQgPT09IHRoaXMucGFja2FnZUZvcm0uY29udHJvbHMucGFja2FnZS52YWx1ZS5pZCk7XHJcbiAgICAgICAgICB0aGlzLnNldFBhY2thZ2VPcHRpb25zKHBhY2thZ2V6KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMucGFja2FnZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgcGFja2FnZTogbnVsbCxcclxuICAgICAgb3B0aW9uYWxJdGVtczogdGhpcy5mYi5jb250cm9sKFtdKSxcclxuICAgICAgdmFyaWF0aW9uczogdGhpcy5mYi5hcnJheShbXSlcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5wYWNrYWdlRm9ybS5jb250cm9scy5wYWNrYWdlLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICB0aGlzLnBhY2thZ2VGb3JtLmNvbnRyb2xzLm9wdGlvbmFsSXRlbXMucmVzZXQoKTtcclxuICAgICAgICB0aGlzLnBhY2thZ2VPcHRpb25hbEl0ZW1zID0gW107XHJcblxyXG4gICAgICAgIHRoaXMudmFyaWF0aW9ucy5jbGVhcih7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgdGhpcy5wYWNrYWdlVmFyaWF0aW9ucyA9IFtdO1xyXG5cclxuICAgICAgICBpZiAodmFsdWU/LmlkKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFBhY2thZ2VPcHRpb25zKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5wYWNrYWdlRGV0YWlsKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFja2FnZURldGFpbC52YXJpYXRpb25zID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy5wYWNrYWdlRGV0YWlsLm9wdGlvbmFsSXRlbXMgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGdldCB2YXJpYXRpb25zKCkgeyByZXR1cm4gdGhpcy5wYWNrYWdlRm9ybS5jb250cm9scy52YXJpYXRpb25zIGFzIEZvcm1BcnJheSB9XHJcblxyXG4gIHNldFBhY2thZ2VPcHRpb25zKHBhY2thZ2V6OiBQYWNrYWdlKSB7XHJcbiAgICB0aGlzLnBhY2thZ2VPcHRpb25hbEl0ZW1zID0gcGFja2FnZXoub3B0aW9uYWxJdGVtcztcclxuICAgIHRoaXMucGFja2FnZVZhcmlhdGlvbnMgPSBwYWNrYWdlei52YXJpYXRpb25zO1xyXG5cclxuICAgIHRoaXMudmFyaWF0aW9ucy5jbGVhcih7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgZm9yIChsZXQgdiBvZiB0aGlzLnBhY2thZ2VWYXJpYXRpb25zKSB7XHJcbiAgICAgIGxldCBzZWxlY3RlZFZhcmlhdGlvbiA9IHRoaXMucGFja2FnZURldGFpbD8udmFyaWF0aW9ucz8uZmluZChwdiA9PiBwdi5wYWNrYWdlVmFyaWF0aW9uSWQgPT09IHYuaWQpO1xyXG4gICAgICB0aGlzLnZhcmlhdGlvbnMucHVzaCh0aGlzLmZiLmNvbnRyb2woc2VsZWN0ZWRWYXJpYXRpb24sIFZhbGlkYXRvcnMucmVxdWlyZWQpLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUocGFja2FnZURldGFpbDogV2FpdGxpc3RHdW5QYWNrYWdlRGV0YWlsIHwgV29ya09yZGVyUGFja2FnZURldGFpbCkge1xyXG4gICAgdGhpcy5wYWNrYWdlRm9ybS5yZXNldChwYWNrYWdlRGV0YWlsKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xyXG4gICAgaWYgKHRoaXMucGFja2FnZUZvcm0udmFsaWQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGVycm9yczogYW55ID0ge307XHJcblxyXG4gICAgZm9yIChsZXQgdiBvZiB0aGlzLnZhcmlhdGlvbnMuY29udHJvbHMpIHtcclxuICAgICAgaWYgKHYuaW52YWxpZCkge1xyXG4gICAgICAgIHJldHVybiB2LmVycm9ycztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcnM7XHJcbiAgfVxyXG5cclxuICBhZGRDb250cm9sRXJyb3JzKGFsbEVycm9yczogYW55LCBjb250cm9sTmFtZTogc3RyaW5nKSB7XHJcblxyXG4gICAgY29uc3QgZXJyb3JzID0geyAuLi5hbGxFcnJvcnMgfTtcclxuXHJcbiAgICBjb25zdCBjb250cm9sRXJyb3JzID0gdGhpcy5wYWNrYWdlRm9ybS5jb250cm9sc1tjb250cm9sTmFtZV0uZXJyb3JzO1xyXG5cclxuICAgIGlmIChjb250cm9sRXJyb3JzKSB7XHJcbiAgICAgIGVycm9yc1tjb250cm9sTmFtZV0gPSBjb250cm9sRXJyb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcnM7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHBhY2thZ2VEZXRhaWw6IFdhaXRsaXN0R3VuUGFja2FnZURldGFpbCB8IFdvcmtPcmRlclBhY2thZ2VEZXRhaWwpOiB2b2lkIHtcclxuICAgIGlmIChwYWNrYWdlRGV0YWlsKSB7XHJcbiAgICAgIHRoaXMucGFja2FnZURldGFpbCA9IE9iamVjdC5hc3NpZ24oe30scGFja2FnZURldGFpbCk7XHJcbiAgICAgIHRoaXMuc2V0VmFsdWUocGFja2FnZURldGFpbCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5wYWNrYWdlRm9ybS5yZXNldCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBzdWIgPSB0aGlzLnBhY2thZ2VGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUob25DaGFuZ2UpO1xyXG4gICAgdGhpcy5vbkNoYW5nZVN1YnMucHVzaChzdWIpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMucGFja2FnZUZvcm0uZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMucGFja2FnZUZvcm0uZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJwYWNrYWdlRm9ybVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cgbWItMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICA8bGFiZWwgZm9yPVwid2FpdGxpc3QtZ3VuLXBhY2thZ2VcIj5QYWNrYWdlIC0gPHNwYW4gY2xhc3M9XCJmc3QtaXRhbGljIGZzLTdcIj5TZWxlY3QgYSBtb2RlbCB0byBsaXN0IGF2YWlsYWJsZSBwYWNrYWdlczwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICA8a2VuZG8tZHJvcGRvd25saXN0IFtkYXRhXT1cInBhY2thZ2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdEl0ZW1dPVwie25hbWU6ICdObyBQYWNrYWdlJywgaWQ6IG51bGx9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIndhaXRsaXN0LWd1bi1wYWNrYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYWNrYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQ9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUZpZWxkPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiPjwva2VuZG8tZHJvcGRvd25saXN0PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBmb3JtQXJyYXlOYW1lPVwidmFyaWF0aW9uc1wiICpuZ0Zvcj1cImxldCB2YXJpYXRpb25Db250cm9sIG9mIHZhcmlhdGlvbnMuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgPGxhYmVsIFtmb3JdPVwiJ3dhaXRsaXN0LWd1bi1wYWNrYWdlLXZhcmlhdGlvbi0nICsgaVwiPnt7cGFja2FnZVZhcmlhdGlvbnNbaV0/Lm5hbWV9fTwvbGFiZWw+XHJcbiAgICAgICAgPGtlbmRvLWRyb3Bkb3dubGlzdCBbZGF0YV09XCJwYWNrYWdlVmFyaWF0aW9uc1tpXT8ub3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ3dhaXRsaXN0LWd1bi1wYWNrYWdlLXZhcmlhdGlvbi0nICsgaVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQ9XCJvcHRpb25OYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ2YXJpYXRpb25Db250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIj48L2tlbmRvLWRyb3Bkb3dubGlzdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJ2YXJpYXRpb25Db250cm9sLmludmFsaWQgJiYgKHZhcmlhdGlvbkNvbnRyb2wuZGlydHkgfHwgdmFyaWF0aW9uQ29udHJvbC50b3VjaGVkKVwiIGNsYXNzPVwiZXJyb3ItY29udGFpbmVyIHRleHQtZGFuZ2VyXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJ2YXJpYXRpb25Db250cm9sLmVycm9ycy5yZXF1aXJlZFwiPlxyXG4gICAgICAgIHt7cGFja2FnZVZhcmlhdGlvbnNbaV0/Lm5hbWV9fSBpcyByZXF1aXJlZC5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwicm93IG1iLTJcIiAqbmdJZj1cInBhY2thZ2VPcHRpb25hbEl0ZW1zPy5sZW5ndGhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgPGxhYmVsIGZvcj1cIndhaXRsaXN0LWd1bi1wYWNrYWdlLWFkZG9uc1wiPkFkZC1vbnMgKEFkZGl0aW9uYWwgY2hhcmdlcyB3aWxsIGFwcGx5KTwvbGFiZWw+XHJcbiAgICAgIDxrZW5kby1tdWx0aXNlbGVjdCBpZD1cIndhaXRsaXN0LWd1bi1wYWNrYWdlLWFkZG9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJwYWNrYWdlT3B0aW9uYWxJdGVtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvcHRpb25hbEl0ZW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVGaWVsZD1cImludmVudG9yeUl0ZW1JZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIj48L2tlbmRvLW11bHRpc2VsZWN0PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
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 } 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 ((changes.firearmId?.currentValue && this.projectType === ProjectType.Firearm) ||
27
+ (changes.projectType?.currentValue === ProjectType.Firearm && this.firearmId)) {
28
+ this.getPackages();
29
+ this.packageForm.reset();
30
+ }
31
+ else {
32
+ this.packages = [];
33
+ this.packageForm.reset();
34
+ }
35
+ }
36
+ ngAfterViewInit() {
37
+ const outerControl = this.inj.get(NgControl).control;
38
+ const prevMarkAsTouched = outerControl.markAsTouched;
39
+ outerControl.markAsTouched = (...args) => {
40
+ this.packageForm.markAllAsTouched();
41
+ prevMarkAsTouched.bind(outerControl)(...args);
42
+ };
43
+ }
44
+ ngOnDestroy() {
45
+ for (let sub of this.onChangeSubs) {
46
+ sub.unsubscribe();
47
+ }
48
+ }
49
+ getPackages() {
50
+ this.packageService.readPackagesByFirearm(this.firearmId)
51
+ .subscribe(packages => {
52
+ this.packages = packages;
53
+ if (this.packageForm.controls.package.value) {
54
+ let packagez = this.packages.find(p => p.id === this.packageForm.controls.package.value.id);
55
+ this.setPackageOptions(packagez);
56
+ }
57
+ });
58
+ }
59
+ createForm() {
60
+ this.packageForm = this.fb.group({
61
+ package: null,
62
+ optionalItems: this.fb.control([]),
63
+ variations: this.fb.array([])
64
+ });
65
+ this.packageForm.controls.variations.valueChanges
66
+ .subscribe(value => {
67
+ if (value) {
68
+ this.packageForm.controls.variations.setValue(value.map(v => v.id ? v : null), { emitEvent: false });
69
+ }
70
+ });
71
+ this.packageForm.controls.package.valueChanges
72
+ .subscribe(value => {
73
+ this.packageForm.controls.optionalItems.reset();
74
+ this.packageOptionalItems = [];
75
+ this.variations.clear({ emitEvent: false });
76
+ this.packageVariations = [];
77
+ if (value?.id) {
78
+ this.setPackageOptions(value);
79
+ }
80
+ else {
81
+ if (this.packageDetail) {
82
+ this.packageDetail.variations = null;
83
+ this.packageDetail.optionalItems = null;
84
+ }
85
+ }
86
+ });
87
+ }
88
+ get variations() { return this.packageForm.controls.variations; }
89
+ setPackageOptions(packagez) {
90
+ this.packageOptionalItems = packagez.optionalItems;
91
+ this.packageVariations = this.gunsmithOnly ? packagez.variations : packagez.variations.filter(v => !v.gunsmithOnly);
92
+ this.variations.clear({ emitEvent: false });
93
+ for (let v of this.packageVariations) {
94
+ let selectedVariation = this.packageDetail?.variations?.find(pv => pv.packageVariationId === v.id);
95
+ if (v.gunsmithOnly)
96
+ this.variations.push(this.fb.control(selectedVariation), { emitEvent: false });
97
+ else
98
+ this.variations.push(this.fb.control(selectedVariation, Validators.required), { emitEvent: false });
99
+ }
100
+ }
101
+ setValue(packageDetail) {
102
+ this.packageForm.reset(packageDetail);
103
+ }
104
+ validate(control) {
105
+ if (this.packageForm.valid) {
106
+ return null;
107
+ }
108
+ let errors = {};
109
+ for (let v of this.variations.controls) {
110
+ if (v.invalid) {
111
+ return v.errors;
112
+ }
113
+ }
114
+ return errors;
115
+ }
116
+ addControlErrors(allErrors, controlName) {
117
+ const errors = { ...allErrors };
118
+ const controlErrors = this.packageForm.controls[controlName].errors;
119
+ if (controlErrors) {
120
+ errors[controlName] = controlErrors;
121
+ }
122
+ return errors;
123
+ }
124
+ writeValue(packageDetail) {
125
+ if (packageDetail) {
126
+ this.packageDetail = Object.assign({}, packageDetail);
127
+ this.setValue(packageDetail);
128
+ }
129
+ else {
130
+ this.packageForm.reset();
131
+ }
132
+ }
133
+ registerOnChange(onChange) {
134
+ const sub = this.packageForm.valueChanges.subscribe(onChange);
135
+ this.onChangeSubs.push(sub);
136
+ }
137
+ registerOnTouched(onTouched) {
138
+ this.onTouched = onTouched;
139
+ }
140
+ setDisabledState(isDisabled) {
141
+ this.disabled = isDisabled;
142
+ if (isDisabled) {
143
+ this.packageForm.disable();
144
+ }
145
+ else {
146
+ this.packageForm.enable();
147
+ }
148
+ }
149
+ }
150
+ 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 });
151
+ PackageSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PackageSelectorComponent, selector: "cgw-package-selector", inputs: { firearmId: "firearmId", projectType: "projectType", gunsmithOnly: "gunsmithOnly" }, providers: [
152
+ {
153
+ provide: NG_VALUE_ACCESSOR,
154
+ multi: true,
155
+ useExisting: PackageSelectorComponent
156
+ },
157
+ {
158
+ provide: NG_VALIDATORS,
159
+ multi: true,
160
+ useExisting: PackageSelectorComponent
161
+ }
162
+ ], 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=\"inventoryItemId\"\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]" }] });
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PackageSelectorComponent, decorators: [{
164
+ type: Component,
165
+ args: [{ selector: 'cgw-package-selector', providers: [
166
+ {
167
+ provide: NG_VALUE_ACCESSOR,
168
+ multi: true,
169
+ useExisting: PackageSelectorComponent
170
+ },
171
+ {
172
+ provide: NG_VALIDATORS,
173
+ multi: true,
174
+ useExisting: PackageSelectorComponent
175
+ }
176
+ ], 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=\"inventoryItemId\"\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: [""] }]
177
+ }], ctorParameters: function () { return [{ type: i1.PackageService }, { type: i2.FormBuilder }, { type: i0.Injector }]; }, propDecorators: { firearmId: [{
178
+ type: Input
179
+ }], projectType: [{
180
+ type: Input
181
+ }], gunsmithOnly: [{
182
+ type: Input
183
+ }] } });
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndW5zbWl0aC1jb21tb24vc3JjL3NoYXJlZC9jb250cm9scy9wYWNrYWdlLXNlbGVjdG9yL3BhY2thZ2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Vuc21pdGgtY29tbW9uL3NyYy9zaGFyZWQvY29udHJvbHMvcGFja2FnZS1zZWxlY3Rvci9wYWNrYWdlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQStDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBb0QsV0FBVyxFQUFhLFNBQVMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhNLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQW9HLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBbUI1SSxNQUFNLE9BQU8sd0JBQXdCO0lBeUJuQyxZQUNVLGNBQThCLEVBQzlCLEVBQWUsRUFDZixHQUFhO1FBRmIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFVO1FBbkJ2QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixhQUFRLEdBQWMsRUFBRSxDQUFDO1FBQ3pCLHNCQUFpQixHQUF1QixFQUFFLENBQUM7UUFDM0MseUJBQW9CLEdBQTBCLEVBQUUsQ0FBQztRQU1qRCxpQkFBWSxHQUFtQixFQUFFLENBQUM7UUFDbEMsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV0QixZQUFP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d0JBQXdCOzBHQUF4Qix3QkFBd0IsNklBYnhCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLHdCQUF3QjtTQUN0QztRQUNEO1lBQ0UsT0FBTyxFQUFFLGFBQWE7WUFDdEIsS0FBSyxFQUFFLElBQUk7WUFDWCxXQUFXLEVBQUUsd0JBQXdCO1NBQ3RDO0tBQ0YsK0NDckJILDI2R0E4REE7NEZEdkNhLHdCQUF3QjtrQkFqQnBDLFNBQVM7K0JBQ0Usc0JBQXNCLGFBR3JCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsMEJBQTBCO3lCQUN0Qzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVywwQkFBMEI7eUJBQ3RDO3FCQUNGO3NKQUtELFNBQVM7c0JBRFIsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgTmdDb250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQYWNrYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFBhY2thZ2UsIFBhY2thZ2VWYXJpYXRpb24sIFBhY2thZ2VPcHRpb25hbEl0ZW0sIFdhaXRsaXN0R3VuUGFja2FnZURldGFpbCwgV29ya09yZGVyUGFja2FnZURldGFpbCwgUHJvamVjdFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nndy1wYWNrYWdlLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhY2thZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWNrYWdlLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogUGFja2FnZVNlbGVjdG9yQ29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogUGFja2FnZVNlbGVjdG9yQ29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFBhY2thZ2VTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKVxuICBmaXJlYXJtSWQ6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwcm9qZWN0VHlwZTogUHJvamVjdFR5cGU7XG5cbiAgQElucHV0KClcbiAgZ3Vuc21pdGhPbmx5ID0gZmFsc2U7XG5cbiAgcGFja2FnZXM6IFBhY2thZ2VbXSA9IFtdO1xuICBwYWNrYWdlVmFyaWF0aW9uczogUGFja2FnZVZhcmlhdGlvbltdID0gW107XG4gIHBhY2thZ2VPcHRpb25hbEl0ZW1zOiBQYWNrYWdlT3B0aW9uYWxJdGVtW10gPSBbXTtcblxuICBwYWNrYWdlRGV0YWlsOiBXYWl0bGlzdEd1blBhY2thZ2VEZXRhaWwgfCBXb3JrT3JkZXJQYWNrYWdlRGV0YWlsO1xuXG4gIHBhY2thZ2VGb3JtOiBGb3JtR3JvdXA7XG5cbiAgb25DaGFuZ2VTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBvblRvdWNoZWQgPSAoKSA9PiB7IH07XG5cbiAgdG91Y2hlZCA9IGZhbHNlO1xuICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGFja2FnZVNlcnZpY2U6IFBhY2thZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgaW5qOiBJbmplY3RvclxuICApIHtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoKGNoYW5nZXMuZmlyZWFybUlkPy5jdXJyZW50VmFsdWUgJiYgdGhpcy5wcm9qZWN0VHlwZSA9PT0gUHJvamVjdFR5cGUuRmlyZWFybSkgfHxcbiAgICAgIChjaGFuZ2VzLnByb2plY3RUeXBlPy5jdXJyZW50VmFsdWUgPT09IFByb2plY3RUeXBlLkZpcmVhcm0gJiYgdGhpcy5maXJlYXJtSWQpKSB7XG4gICAgICB0aGlzLmdldFBhY2thZ2VzKCk7XG4gICAgICB0aGlzLnBhY2thZ2VGb3JtLnJlc2V0KCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5wYWNrYWdlcyA9IFtdO1xuICAgICAgdGhpcy5wYWNrYWdlRm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBvdXRlckNvbnRyb2wgPSB0aGlzLmluai5nZXQoTmdDb250cm9sKS5jb250cm9sO1xuICAgIGNvbnN0IHByZXZNYXJrQXNUb3VjaGVkID0gb3V0ZXJDb250cm9sLm1hcmtBc1RvdWNoZWQ7XG4gICAgb3V0ZXJDb250cm9sLm1hcmtBc1RvdWNoZWQgPSAoLi4uYXJnczogYW55KSA9PiB7XG4gICAgICB0aGlzLnBhY2thZ2VGb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgIHByZXZNYXJrQXNUb3VjaGVkLmJpbmQob3V0ZXJDb250cm9sKSguLi5hcmdzKTtcbiAgICB9O1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgZm9yIChsZXQgc3ViIG9mIHRoaXMub25DaGFuZ2VTdWJzKSB7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBnZXRQYWNrYWdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnBhY2thZ2VTZXJ2aWNlLnJlYWRQYWNrYWdlc0J5RmlyZWFybSh0aGlzLmZpcmVhcm1JZClcbiAgICAgIC5zdWJzY3JpYmUocGFja2FnZXMgPT4ge1xuICAgICAgICB0aGlzLnBhY2thZ2VzID0gcGFja2FnZXM7XG4gICAgICAgIGlmICh0aGlzLnBhY2thZ2VGb3JtLmNvbnRyb2xzLnBhY2thZ2UudmFsdWUpIHtcbiAgICAgICAgICBsZXQgcGFja2FnZXogPSB0aGlzLnBhY2thZ2VzLmZpbmQocCA9PiBwLmlkID09PSB0aGlzLnBhY2thZ2VGb3JtLmNvbnRyb2xzLnBhY2thZ2UudmFsdWUuaWQpO1xuICAgICAgICAgIHRoaXMuc2V0UGFja2FnZU9wdGlvbnMocGFja2FnZXopO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5wYWNrYWdlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgcGFja2FnZTogbnVsbCxcbiAgICAgIG9wdGlvbmFsSXRlbXM6IHRoaXMuZmIuY29udHJvbChbXSksXG4gICAgICB2YXJpYXRpb25zOiB0aGlzLmZiLmFycmF5KFtdKVxuICAgIH0pXG5cbiAgICB0aGlzLnBhY2thZ2VGb3JtLmNvbnRyb2xzLnZhcmlhdGlvbnMudmFsdWVDaGFuZ2VzXG4gICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5wYWNrYWdlRm9ybS5jb250cm9scy52YXJpYXRpb25zLnNldFZhbHVlKHZhbHVlLm1hcCh2ID0+IHYuaWQgPyB2IDogbnVsbCksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnBhY2thZ2VGb3JtLmNvbnRyb2xzLnBhY2thZ2UudmFsdWVDaGFuZ2VzXG4gICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5wYWNrYWdlRm9ybS5jb250cm9scy5vcHRpb25hbEl0ZW1zLnJlc2V0KCk7XG4gICAgICAgIHRoaXMucGFja2FnZU9wdGlvbmFsSXRlbXMgPSBbXTtcblxuICAgICAgICB0aGlzLnZhcmlhdGlvbnMuY2xlYXIoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB0aGlzLnBhY2thZ2VWYXJpYXRpb25zID0gW107XG5cbiAgICAgICAgaWYgKHZhbHVlPy5pZCkge1xuICAgICAgICAgIHRoaXMuc2V0UGFja2FnZU9wdGlvbnModmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLnBhY2thZ2VEZXRhaWwpIHtcbiAgICAgICAgICAgIHRoaXMucGFja2FnZURldGFpbC52YXJpYXRpb25zID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMucGFja2FnZURldGFpbC5vcHRpb25hbEl0ZW1zID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cblxuICBnZXQgdmFyaWF0aW9ucygpIHsgcmV0dXJuIHRoaXMucGFja2FnZUZvcm0uY29udHJvbHMudmFyaWF0aW9ucyBhcyBGb3JtQXJyYXkgfVxuXG4gIHNldFBhY2thZ2VPcHRpb25zKHBhY2thZ2V6OiBQYWNrYWdlKSB7XG4gICAgdGhpcy5wYWNrYWdlT3B0aW9uYWxJdGVtcyA9IHBhY2thZ2V6Lm9wdGlvbmFsSXRlbXM7XG4gICAgdGhpcy5wYWNrYWdlVmFyaWF0aW9ucyA9IHRoaXMuZ3Vuc21pdGhPbmx5ID8gcGFja2FnZXoudmFyaWF0aW9ucyA6IHBhY2thZ2V6LnZhcmlhdGlvbnMuZmlsdGVyKHYgPT4gIXYuZ3Vuc21pdGhPbmx5KTtcblxuICAgIHRoaXMudmFyaWF0aW9ucy5jbGVhcih7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgIGZvciAobGV0IHYgb2YgdGhpcy5wYWNrYWdlVmFyaWF0aW9ucykge1xuICAgICAgbGV0IHNlbGVjdGVkVmFyaWF0aW9uID0gdGhpcy5wYWNrYWdlRGV0YWlsPy52YXJpYXRpb25zPy5maW5kKHB2ID0+IHB2LnBhY2thZ2VWYXJpYXRpb25JZCA9PT0gdi5pZCk7XG4gICAgICBpZih2Lmd1bnNtaXRoT25seSlcbiAgICAgICAgdGhpcy52YXJpYXRpb25zLnB1c2godGhpcy5mYi5jb250cm9sKHNlbGVjdGVkVmFyaWF0aW9uKSwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgIGVsc2VcbiAgICAgICAgdGhpcy52YXJpYXRpb25zLnB1c2godGhpcy5mYi5jb250cm9sKHNlbGVjdGVkVmFyaWF0aW9uLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICB9XG4gIH1cblxuICBzZXRWYWx1ZShwYWNrYWdlRGV0YWlsOiBXYWl0bGlzdEd1blBhY2thZ2VEZXRhaWwgfCBXb3JrT3JkZXJQYWNrYWdlRGV0YWlsKSB7XG4gICAgdGhpcy5wYWNrYWdlRm9ybS5yZXNldChwYWNrYWdlRGV0YWlsKTtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIGlmICh0aGlzLnBhY2thZ2VGb3JtLnZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgZXJyb3JzOiBhbnkgPSB7fTtcblxuICAgIGZvciAobGV0IHYgb2YgdGhpcy52YXJpYXRpb25zLmNvbnRyb2xzKSB7XG4gICAgICBpZiAodi5pbnZhbGlkKSB7XG4gICAgICAgIHJldHVybiB2LmVycm9ycztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9XG5cbiAgYWRkQ29udHJvbEVycm9ycyhhbGxFcnJvcnM6IGFueSwgY29udHJvbE5hbWU6IHN0cmluZykge1xuXG4gICAgY29uc3QgZXJyb3JzID0geyAuLi5hbGxFcnJvcnMgfTtcblxuICAgIGNvbnN0IGNvbnRyb2xFcnJvcnMgPSB0aGlzLnBhY2thZ2VGb3JtLmNvbnRyb2xzW2NvbnRyb2xOYW1lXS5lcnJvcnM7XG5cbiAgICBpZiAoY29udHJvbEVycm9ycykge1xuICAgICAgZXJyb3JzW2NvbnRyb2xOYW1lXSA9IGNvbnRyb2xFcnJvcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9ycztcbiAgfVxuXG4gIHdyaXRlVmFsdWUocGFja2FnZURldGFpbDogV2FpdGxpc3RHdW5QYWNrYWdlRGV0YWlsIHwgV29ya09yZGVyUGFja2FnZURldGFpbCk6IHZvaWQge1xuICAgIGlmIChwYWNrYWdlRGV0YWlsKSB7XG4gICAgICB0aGlzLnBhY2thZ2VEZXRhaWwgPSBPYmplY3QuYXNzaWduKHt9LHBhY2thZ2VEZXRhaWwpO1xuICAgICAgdGhpcy5zZXRWYWx1ZShwYWNrYWdlRGV0YWlsKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnBhY2thZ2VGb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgc3ViID0gdGhpcy5wYWNrYWdlRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKG9uQ2hhbmdlKTtcbiAgICB0aGlzLm9uQ2hhbmdlU3Vicy5wdXNoKHN1Yik7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMucGFja2FnZUZvcm0uZGlzYWJsZSgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMucGFja2FnZUZvcm0uZW5hYmxlKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwicGFja2FnZUZvcm1cIj5cbiAgPGRpdiBjbGFzcz1cInJvdyBtYi0yXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgPGxhYmVsIGZvcj1cIndhaXRsaXN0LWd1bi1wYWNrYWdlXCI+UGFja2FnZSAtIDxzcGFuIGNsYXNzPVwiZnN0LWl0YWxpYyBmcy03XCI+U2VsZWN0IGEgbW9kZWwgdG8gbGlzdCBhdmFpbGFibGUgcGFja2FnZXM8L3NwYW4+PC9sYWJlbD5cbiAgICAgIDxrZW5kby1kcm9wZG93bmxpc3QgW2RhdGFdPVwicGFja2FnZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdEl0ZW1dPVwie25hbWU6ICdObyBQYWNrYWdlJywgaWQ6IG51bGx9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ3YWl0bGlzdC1ndW4tcGFja2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhY2thZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQ9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVGaWVsZD1cImlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCI+PC9rZW5kby1kcm9wZG93bmxpc3Q+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJ2YXJpYXRpb25zXCIgKm5nRm9yPVwibGV0IHZhcmlhdGlvbkNvbnRyb2wgb2YgdmFyaWF0aW9ucy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICA8bGFiZWwgW2Zvcl09XCInd2FpdGxpc3QtZ3VuLXBhY2thZ2UtdmFyaWF0aW9uLScgKyBpXCI+e3twYWNrYWdlVmFyaWF0aW9uc1tpXT8ubmFtZX19PC9sYWJlbD5cbiAgICAgICAgPGtlbmRvLWRyb3Bkb3dubGlzdCBbZGF0YV09XCJwYWNrYWdlVmFyaWF0aW9uc1tpXT8ub3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIid3YWl0bGlzdC1ndW4tcGFja2FnZS12YXJpYXRpb24tJyArIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0SXRlbV09XCJ7b3B0aW9uTmFtZTogJycsIGlkOiBudWxsfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkPVwib3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInZhcmlhdGlvbkNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ9XCJpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJwYWNrYWdlVmFyaWF0aW9uc1tpXT8uZ3Vuc21pdGhPbmx5XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvRHJvcERvd25MaXN0SXRlbVRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZFwiPnt7IGRhdGFJdGVtPy5za3UgfX08L3NwYW4+IC0ge3sgZGF0YUl0ZW0/Lm9wdGlvbk5hbWUgfX0gPHNwYW4gKm5nSWY9XCJkYXRhSXRlbT8uc2VydmljZUNoYXJnZUl0ZW1QcmljZVwiPihhZGQgJHt7ZGF0YUl0ZW0uc2VydmljZUNoYXJnZUl0ZW1QcmljZS50b0ZpeGVkKDIpfX0pPC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwva2VuZG8tZHJvcGRvd25saXN0PlxuICAgICAgICA8a2VuZG8tZHJvcGRvd25saXN0IFtkYXRhXT1cInBhY2thZ2VWYXJpYXRpb25zW2ldPy5vcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ3dhaXRsaXN0LWd1bi1wYWNrYWdlLXZhcmlhdGlvbi0nICsgaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkPVwib3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInZhcmlhdGlvbkNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ9XCJpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCIhcGFja2FnZVZhcmlhdGlvbnNbaV0/Lmd1bnNtaXRoT25seVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0Ryb3BEb3duTGlzdEl0ZW1UZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGRcIj57eyBkYXRhSXRlbT8uc2t1IH19PC9zcGFuPiAtIHt7IGRhdGFJdGVtPy5vcHRpb25OYW1lIH19IDxzcGFuICpuZ0lmPVwiZGF0YUl0ZW0/LnNlcnZpY2VDaGFyZ2VJdGVtUHJpY2VcIj4oYWRkICR7e2RhdGFJdGVtLnNlcnZpY2VDaGFyZ2VJdGVtUHJpY2UudG9GaXhlZCgyKX19KTwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2tlbmRvLWRyb3Bkb3dubGlzdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJ2YXJpYXRpb25Db250cm9sLmludmFsaWQgJiYgKHZhcmlhdGlvbkNvbnRyb2wuZGlydHkgfHwgdmFyaWF0aW9uQ29udHJvbC50b3VjaGVkKVwiIGNsYXNzPVwiZXJyb3ItY29udGFpbmVyIHRleHQtZGFuZ2VyXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwidmFyaWF0aW9uQ29udHJvbC5lcnJvcnMucmVxdWlyZWRcIj5cbiAgICAgICAge3twYWNrYWdlVmFyaWF0aW9uc1tpXT8ubmFtZX19IGlzIHJlcXVpcmVkLlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicm93IG1iLTJcIiAqbmdJZj1cInBhY2thZ2VPcHRpb25hbEl0ZW1zPy5sZW5ndGhcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICA8bGFiZWwgZm9yPVwid2FpdGxpc3QtZ3VuLXBhY2thZ2UtYWRkb25zXCI+QWRkLW9ucyAoQWRkaXRpb25hbCBjaGFyZ2VzIHdpbGwgYXBwbHkpPC9sYWJlbD5cbiAgICAgIDxrZW5kby1tdWx0aXNlbGVjdCBpZD1cIndhaXRsaXN0LWd1bi1wYWNrYWdlLWFkZG9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwicGFja2FnZU9wdGlvbmFsSXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9wdGlvbmFsSXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZD1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ9XCJpbnZlbnRvcnlJdGVtSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9NdWx0aVNlbGVjdEl0ZW1UZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ib2xkXCI+e3sgZGF0YUl0ZW0/LnNrdSB9fTwvc3Bhbj4gLSB7eyBkYXRhSXRlbT8ubmFtZSB9fVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1tdWx0aXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,24 +1,24 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { NgControl } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/forms";
5
- export class DisableControlDirective {
6
- constructor(ngControl) {
7
- this.ngControl = ngControl;
8
- }
9
- set disableControl(condition) {
10
- const action = condition ? 'disable' : 'enable';
11
- this.ngControl.control[action]();
12
- }
13
- }
14
- DisableControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DisableControlDirective, deps: [{ token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
15
- DisableControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DisableControlDirective, selector: "[disableControl]", inputs: { disableControl: "disableControl" }, ngImport: i0 });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DisableControlDirective, decorators: [{
17
- type: Directive,
18
- args: [{
19
- selector: '[disableControl]'
20
- }]
21
- }], ctorParameters: function () { return [{ type: i1.NgControl }]; }, propDecorators: { disableControl: [{
22
- type: Input
23
- }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1bnNtaXRoLWNvbW1vbi9zcmMvc2hhcmVkL2RpcmVjdGl2ZXMvZGlzYWJsZS1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUszQyxNQUFNLE9BQU8sdUJBQXVCO0lBT2xDLFlBQW9CLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBSSxDQUFDO0lBTjdDLElBQWEsY0FBYyxDQUFDLFNBQWtCO1FBQzVDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNuQyxDQUFDOztxSEFKVSx1QkFBdUI7eUdBQXZCLHVCQUF1Qjs0RkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCO2dHQUVjLGNBQWM7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Rpc2FibGVDb250cm9sXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIERpc2FibGVDb250cm9sRGlyZWN0aXZlIHtcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZUNvbnRyb2woY29uZGl0aW9uOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBhY3Rpb24gPSBjb25kaXRpb24gPyAnZGlzYWJsZScgOiAnZW5hYmxlJztcclxuICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2xbYWN0aW9uXSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdDb250cm9sOiBOZ0NvbnRyb2wpIHsgfVxyXG5cclxufVxyXG4iXX0=
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ export class DisableControlDirective {
6
+ constructor(ngControl) {
7
+ this.ngControl = ngControl;
8
+ }
9
+ set disableControl(condition) {
10
+ const action = condition ? 'disable' : 'enable';
11
+ this.ngControl.control[action]();
12
+ }
13
+ }
14
+ DisableControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DisableControlDirective, deps: [{ token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
15
+ DisableControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: DisableControlDirective, selector: "[disableControl]", inputs: { disableControl: "disableControl" }, ngImport: i0 });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DisableControlDirective, decorators: [{
17
+ type: Directive,
18
+ args: [{
19
+ selector: '[disableControl]'
20
+ }]
21
+ }], ctorParameters: function () { return [{ type: i1.NgControl }]; }, propDecorators: { disableControl: [{
22
+ type: Input
23
+ }] } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1bnNtaXRoLWNvbW1vbi9zcmMvc2hhcmVkL2RpcmVjdGl2ZXMvZGlzYWJsZS1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUszQyxNQUFNLE9BQU8sdUJBQXVCO0lBT2xDLFlBQW9CLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBSSxDQUFDO0lBTjdDLElBQWEsY0FBYyxDQUFDLFNBQWtCO1FBQzVDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNuQyxDQUFDOztxSEFKVSx1QkFBdUI7eUdBQXZCLHVCQUF1Qjs0RkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCO2dHQUVjLGNBQWM7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkaXNhYmxlQ29udHJvbF0nXG59KVxuZXhwb3J0IGNsYXNzIERpc2FibGVDb250cm9sRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgc2V0IGRpc2FibGVDb250cm9sKGNvbmRpdGlvbjogYm9vbGVhbikge1xuICAgIGNvbnN0IGFjdGlvbiA9IGNvbmRpdGlvbiA/ICdkaXNhYmxlJyA6ICdlbmFibGUnO1xuICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2xbYWN0aW9uXSgpO1xuICB9XG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sKSB7IH1cblxufVxuIl19
@@ -1,3 +1,3 @@
1
- export * from './disable-control.directive';
2
- export * from './refinish-details-validators';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndW5zbWl0aC1jb21tb24vc3JjL3NoYXJlZC9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlzYWJsZS1jb250cm9sLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVmaW5pc2gtZGV0YWlscy12YWxpZGF0b3JzJztcclxuIl19
1
+ export * from './disable-control.directive';
2
+ export * from './refinish-details-validators';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndW5zbWl0aC1jb21tb24vc3JjL3NoYXJlZC9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlzYWJsZS1jb250cm9sLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlZmluaXNoLWRldGFpbHMtdmFsaWRhdG9ycyc7XG4iXX0=