gunsmith-common 2.1.31 → 2.2.2

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 (50) hide show
  1. package/esm2020/notification/notification-bar/notification-bar.component.mjs +3 -3
  2. package/esm2020/public_api.mjs +2 -1
  3. package/esm2020/shared/controls/package-selector/package-selector.component.mjs +168 -0
  4. package/esm2020/shared/services/index.mjs +3 -1
  5. package/esm2020/shared/services/inventory.service.mjs +4 -1
  6. package/esm2020/shared/services/package.service.mjs +47 -0
  7. package/esm2020/shared/services/refinish-code.service.mjs +35 -0
  8. package/esm2020/shared/services/waitlist.service.mjs +4 -1
  9. package/esm2020/shared/services/work-order.service.mjs +35 -1
  10. package/esm2020/shared/shared.module.mjs +28 -7
  11. package/esm2020/shared/types/index.mjs +11 -1
  12. package/esm2020/shared/types/package-item.mjs +3 -0
  13. package/esm2020/shared/types/package-optional-item.mjs +3 -0
  14. package/esm2020/shared/types/package-total.mjs +3 -0
  15. package/esm2020/shared/types/package-variation-option.mjs +3 -0
  16. package/esm2020/shared/types/package-variation.mjs +6 -0
  17. package/esm2020/shared/types/package.mjs +10 -0
  18. package/esm2020/shared/types/refinish-code.mjs +3 -0
  19. package/esm2020/shared/types/waitlist-gun-package-detail.mjs +7 -0
  20. package/esm2020/shared/types/waitlist-gun.mjs +1 -1
  21. package/esm2020/shared/types/work-order-inventory-item.mjs +3 -0
  22. package/esm2020/shared/types/work-order-package-detail.mjs +7 -0
  23. package/esm2020/shared/types/work-order.mjs +1 -1
  24. package/fesm2015/gunsmith-common.mjs +361 -14
  25. package/fesm2015/gunsmith-common.mjs.map +1 -1
  26. package/fesm2020/gunsmith-common.mjs +356 -14
  27. package/fesm2020/gunsmith-common.mjs.map +1 -1
  28. package/package.json +1 -1
  29. package/public_api.d.ts +1 -0
  30. package/shared/controls/package-selector/package-selector.component.d.ts +38 -0
  31. package/shared/services/index.d.ts +2 -0
  32. package/shared/services/inventory.service.d.ts +1 -0
  33. package/shared/services/package.service.d.ts +16 -0
  34. package/shared/services/refinish-code.service.d.ts +16 -0
  35. package/shared/services/waitlist.service.d.ts +2 -1
  36. package/shared/services/work-order.service.d.ts +10 -1
  37. package/shared/shared.module.d.ts +5 -1
  38. package/shared/types/index.d.ts +10 -0
  39. package/shared/types/package-item.d.ts +9 -0
  40. package/shared/types/package-optional-item.d.ts +6 -0
  41. package/shared/types/package-total.d.ts +5 -0
  42. package/shared/types/package-variation-option.d.ts +10 -0
  43. package/shared/types/package-variation.d.ts +8 -0
  44. package/shared/types/package.d.ts +14 -0
  45. package/shared/types/refinish-code.d.ts +8 -0
  46. package/shared/types/waitlist-gun-package-detail.d.ts +10 -0
  47. package/shared/types/waitlist-gun.d.ts +2 -0
  48. package/shared/types/work-order-inventory-item.d.ts +7 -0
  49. package/shared/types/work-order-package-detail.d.ts +10 -0
  50. package/shared/types/work-order.d.ts +2 -0
@@ -35,9 +35,9 @@ export class NotificationBarComponent {
35
35
  }
36
36
  }
37
37
  NotificationBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NotificationBarComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
38
- NotificationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NotificationBarComponent, selector: "app-notification-bar", ngImport: i0, template: "<div class=\"notification-bar\" *ngIf=\"messages.length\">\r\n <div *ngFor=\"let message of viewMessages\" class=\"notification-pill\" [class.error]=\"message.type == 1\" [@fadeOutAnimation]=\"shouldFade()\">\r\n <i class=\"fa\" [ngClass]=\"getIconClass(message)\"></i> <span class=\"ms-1\">{{message.message}}</span>\r\n </div>\r\n <div *ngIf=\"messages.length > 3\" class=\"notification-pill\">{{messages.length - 2}} more...</div>\r\n</div>\r\n", styles: [".notification-bar{position:fixed;top:0;left:0;right:0;z-index:10001;pointer-events:none}.notification-bar .notification-pill{max-width:300px;margin:10px auto;border-radius:20px;color:#2a2b4b;background:#F2F2F2;padding:8px;text-align:center;box-shadow:inset 0 2px 4px #ffffff80,inset 0 -2px 4px #000000e6,0 2px 4px #00000080}.notification-bar .error{color:#711e16!important;background:#f8d8d4!important}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [fadeOutAnimation] });
38
+ NotificationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NotificationBarComponent, selector: "app-notification-bar", ngImport: i0, template: "<div class=\"notification-bar\" *ngIf=\"messages.length\">\r\n <div *ngFor=\"let message of viewMessages\" class=\"notification-pill\" [class.error]=\"message.type == 1\" [@fadeOutAnimation]=\"shouldFade()\">\r\n <i class=\"fa\" [ngClass]=\"getIconClass(message)\"></i> <span class=\"ms-1\">{{message.message}}</span>\r\n </div>\r\n <div *ngIf=\"messages.length > 3\" class=\"notification-pill\">{{messages.length - 2}} more...</div>\r\n</div>\r\n", styles: [".notification-bar{position:fixed;top:0;left:0;right:0;z-index:10001;pointer-events:none}.notification-bar .notification-pill{max-width:300px;margin:10px auto;border-radius:4px;color:#000;background:rgba(16,16,16,.4);padding:8px;text-align:center}.notification-bar .error{color:#711e16!important;background:rgba(248,216,212,.6)!important}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [fadeOutAnimation] });
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NotificationBarComponent, decorators: [{
40
40
  type: Component,
41
- args: [{ selector: 'app-notification-bar', animations: [fadeOutAnimation], template: "<div class=\"notification-bar\" *ngIf=\"messages.length\">\r\n <div *ngFor=\"let message of viewMessages\" class=\"notification-pill\" [class.error]=\"message.type == 1\" [@fadeOutAnimation]=\"shouldFade()\">\r\n <i class=\"fa\" [ngClass]=\"getIconClass(message)\"></i> <span class=\"ms-1\">{{message.message}}</span>\r\n </div>\r\n <div *ngIf=\"messages.length > 3\" class=\"notification-pill\">{{messages.length - 2}} more...</div>\r\n</div>\r\n", styles: [".notification-bar{position:fixed;top:0;left:0;right:0;z-index:10001;pointer-events:none}.notification-bar .notification-pill{max-width:300px;margin:10px auto;border-radius:20px;color:#2a2b4b;background:#F2F2F2;padding:8px;text-align:center;box-shadow:inset 0 2px 4px #ffffff80,inset 0 -2px 4px #000000e6,0 2px 4px #00000080}.notification-bar .error{color:#711e16!important;background:#f8d8d4!important}\n"] }]
41
+ args: [{ selector: 'app-notification-bar', animations: [fadeOutAnimation], template: "<div class=\"notification-bar\" *ngIf=\"messages.length\">\r\n <div *ngFor=\"let message of viewMessages\" class=\"notification-pill\" [class.error]=\"message.type == 1\" [@fadeOutAnimation]=\"shouldFade()\">\r\n <i class=\"fa\" [ngClass]=\"getIconClass(message)\"></i> <span class=\"ms-1\">{{message.message}}</span>\r\n </div>\r\n <div *ngIf=\"messages.length > 3\" class=\"notification-pill\">{{messages.length - 2}} more...</div>\r\n</div>\r\n", styles: [".notification-bar{position:fixed;top:0;left:0;right:0;z-index:10001;pointer-events:none}.notification-bar .notification-pill{max-width:300px;margin:10px auto;border-radius:4px;color:#000;background:rgba(16,16,16,.4);padding:8px;text-align:center}.notification-bar .error{color:#711e16!important;background:rgba(248,216,212,.6)!important}\n"] }]
42
42
  }], ctorParameters: function () { return [{ type: i1.NotificationService }]; } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndW5zbWl0aC1jb21tb24vc3JjL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24tYmFyL25vdGlmaWNhdGlvbi1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Vuc21pdGgtY29tbW9uL3NyYy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWJhci9ub3RpZmljYXRpb24tYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBU3pELE1BQU0sT0FBTyx3QkFBd0I7SUFXbkMsWUFBb0IsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFUNUQsYUFBUSxHQUEwQixFQUFFLENBQUM7SUFTMkIsQ0FBQztJQVBqRSxJQUFJLFlBQVk7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckQ7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFBQSxDQUFDO0lBSUYsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBNEI7UUFDdkMsT0FBTztZQUNMLHlCQUF5QixFQUFFLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQztZQUM1QyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUM7U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7c0hBL0JVLHdCQUF3QjswR0FBeEIsd0JBQXdCLDREQ1hyQyx1Y0FNQSxvc0JER2MsQ0FBQyxnQkFBZ0IsQ0FBQzs0RkFFbkIsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHNCQUFzQixjQUdwQixDQUFDLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IGZhZGVPdXRBbmltYXRpb24gfSBmcm9tICcuLi9mYWRlLW91dC5hbmltYXRpb24nO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1ub3RpZmljYXRpb24tYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtmYWRlT3V0QW5pbWF0aW9uXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIG1lc3NhZ2VzOiBOb3RpZmljYXRpb25NZXNzYWdlW10gPSBbXTtcclxuXHJcbiAgZ2V0IHZpZXdNZXNzYWdlcygpOiBOb3RpZmljYXRpb25NZXNzYWdlW10ge1xyXG4gICAgaWYgKHRoaXMubWVzc2FnZXMubGVuZ3RoID4gMykge1xyXG4gICAgICByZXR1cm4gdGhpcy5tZXNzYWdlcy5zbGljZSgwKS5yZXZlcnNlKCkuc2xpY2UoMCwgMik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcy5zbGljZSgwKS5yZXZlcnNlKCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UubWVzc2FnZVVwZGF0ZWQuc3Vic2NyaWJlKG1lc3NhZ2UgPT4ge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZXMuc2hpZnQoKTtcclxuICAgICAgfSwgNDAwMCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0SWNvbkNsYXNzKG1lc3NhZ2U6IE5vdGlmaWNhdGlvbk1lc3NhZ2UpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdmYS1leGNsYW1hdGlvbi10cmlhbmdsZSc6IG1lc3NhZ2UudHlwZSA9PSAxLFxyXG4gICAgICAnZmEtaW5mby1jaXJjbGUnOiBtZXNzYWdlLnR5cGUgPT0gMCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzaG91bGRGYWRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZXMubGVuZ3RoIDwgMztcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tYmFyXCIgKm5nSWY9XCJtZXNzYWdlcy5sZW5ndGhcIj5cclxuICA8ZGl2ICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIHZpZXdNZXNzYWdlc1wiIGNsYXNzPVwibm90aWZpY2F0aW9uLXBpbGxcIiBbY2xhc3MuZXJyb3JdPVwibWVzc2FnZS50eXBlID09IDFcIiBbQGZhZGVPdXRBbmltYXRpb25dPVwic2hvdWxkRmFkZSgpXCI+XHJcbiAgICA8aSBjbGFzcz1cImZhXCIgW25nQ2xhc3NdPVwiZ2V0SWNvbkNsYXNzKG1lc3NhZ2UpXCI+PC9pPiA8c3BhbiBjbGFzcz1cIm1zLTFcIj57e21lc3NhZ2UubWVzc2FnZX19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJtZXNzYWdlcy5sZW5ndGggPiAzXCIgY2xhc3M9XCJub3RpZmljYXRpb24tcGlsbFwiPnt7bWVzc2FnZXMubGVuZ3RoIC0gMn19IG1vcmUuLi48L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndW5zbWl0aC1jb21tb24vc3JjL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24tYmFyL25vdGlmaWNhdGlvbi1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Vuc21pdGgtY29tbW9uL3NyYy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWJhci9ub3RpZmljYXRpb24tYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBU3pELE1BQU0sT0FBTyx3QkFBd0I7SUFXbkMsWUFBb0IsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFUNUQsYUFBUSxHQUEwQixFQUFFLENBQUM7SUFTMkIsQ0FBQztJQVBqRSxJQUFJLFlBQVk7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckQ7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFBQSxDQUFDO0lBSUYsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBNEI7UUFDdkMsT0FBTztZQUNMLHlCQUF5QixFQUFFLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQztZQUM1QyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUM7U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7c0hBL0JVLHdCQUF3QjswR0FBeEIsd0JBQXdCLDREQ1hyQyx1Y0FNQSxtb0JER2MsQ0FBQyxnQkFBZ0IsQ0FBQzs0RkFFbkIsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHNCQUFzQixjQUdwQixDQUFDLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IGZhZGVPdXRBbmltYXRpb24gfSBmcm9tICcuLi9mYWRlLW91dC5hbmltYXRpb24nO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1ub3RpZmljYXRpb24tYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtmYWRlT3V0QW5pbWF0aW9uXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIG1lc3NhZ2VzOiBOb3RpZmljYXRpb25NZXNzYWdlW10gPSBbXTtcclxuXHJcbiAgZ2V0IHZpZXdNZXNzYWdlcygpOiBOb3RpZmljYXRpb25NZXNzYWdlW10ge1xyXG4gICAgaWYgKHRoaXMubWVzc2FnZXMubGVuZ3RoID4gMykge1xyXG4gICAgICByZXR1cm4gdGhpcy5tZXNzYWdlcy5zbGljZSgwKS5yZXZlcnNlKCkuc2xpY2UoMCwgMik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcy5zbGljZSgwKS5yZXZlcnNlKCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UubWVzc2FnZVVwZGF0ZWQuc3Vic2NyaWJlKG1lc3NhZ2UgPT4ge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZXMuc2hpZnQoKTtcclxuICAgICAgfSwgNDAwMCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0SWNvbkNsYXNzKG1lc3NhZ2U6IE5vdGlmaWNhdGlvbk1lc3NhZ2UpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdmYS1leGNsYW1hdGlvbi10cmlhbmdsZSc6IG1lc3NhZ2UudHlwZSA9PSAxLFxyXG4gICAgICAnZmEtaW5mby1jaXJjbGUnOiBtZXNzYWdlLnR5cGUgPT0gMCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzaG91bGRGYWRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZXMubGVuZ3RoIDwgMztcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tYmFyXCIgKm5nSWY9XCJtZXNzYWdlcy5sZW5ndGhcIj5cclxuICA8ZGl2ICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIHZpZXdNZXNzYWdlc1wiIGNsYXNzPVwibm90aWZpY2F0aW9uLXBpbGxcIiBbY2xhc3MuZXJyb3JdPVwibWVzc2FnZS50eXBlID09IDFcIiBbQGZhZGVPdXRBbmltYXRpb25dPVwic2hvdWxkRmFkZSgpXCI+XHJcbiAgICA8aSBjbGFzcz1cImZhXCIgW25nQ2xhc3NdPVwiZ2V0SWNvbkNsYXNzKG1lc3NhZ2UpXCI+PC9pPiA8c3BhbiBjbGFzcz1cIm1zLTFcIj57e21lc3NhZ2UubWVzc2FnZX19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJtZXNzYWdlcy5sZW5ndGggPiAzXCIgY2xhc3M9XCJub3RpZmljYXRpb24tcGlsbFwiPnt7bWVzc2FnZXMubGVuZ3RoIC0gMn19IG1vcmUuLi48L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -6,7 +6,8 @@ export * from './shared/types';
6
6
  export * from './shared/services';
7
7
  export * from './shared/pipes';
8
8
  export * from './shared/directives';
9
+ export * from './shared/controls/package-selector/package-selector.component';
9
10
  export * from './shared/shared.module';
10
11
  export * from './notification/notification.module';
11
12
  export * from './notification';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2d1bnNtaXRoLWNvbW1vbi9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBndW5zbWl0aC1jb21tb25cclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC91dGlscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL3R5cGVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvc2VydmljZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9waXBlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9uJztcclxuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2d1bnNtaXRoLWNvbW1vbi9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGd1bnNtaXRoLWNvbW1vblxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL3V0aWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvdHlwZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL3BpcGVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQvZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkL2NvbnRyb2xzL3BhY2thZ2Utc2VsZWN0b3IvcGFja2FnZS1zZWxlY3Rvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9uJztcclxuIl19
@@ -0,0 +1,168 @@
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 * as i0 from "@angular/core";
5
+ import * as i1 from "../../services";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "@progress/kendo-angular-dropdowns";
8
+ import * as i4 from "@angular/common";
9
+ export class PackageSelectorComponent {
10
+ constructor(packageService, fb, inj) {
11
+ this.packageService = packageService;
12
+ this.fb = fb;
13
+ this.inj = inj;
14
+ this.packages = [];
15
+ this.packageVariations = [];
16
+ this.packageOptionalItems = [];
17
+ this.onChangeSubs = [];
18
+ this.onTouched = () => { };
19
+ this.touched = false;
20
+ this.disabled = false;
21
+ this.createForm();
22
+ }
23
+ ngOnChanges(changes) {
24
+ if (changes.firearmId.currentValue) {
25
+ this.getPackages();
26
+ this.packageForm.reset();
27
+ }
28
+ else {
29
+ this.packages = [];
30
+ this.packageForm.reset();
31
+ }
32
+ }
33
+ ngAfterViewInit() {
34
+ const outerControl = this.inj.get(NgControl).control;
35
+ const prevMarkAsTouched = outerControl.markAsTouched;
36
+ outerControl.markAsTouched = (...args) => {
37
+ this.packageForm.markAllAsTouched();
38
+ prevMarkAsTouched.bind(outerControl)(...args);
39
+ };
40
+ }
41
+ ngOnDestroy() {
42
+ for (let sub of this.onChangeSubs) {
43
+ sub.unsubscribe();
44
+ }
45
+ }
46
+ getPackages() {
47
+ this.packageService.readPackagesByFirearm(this.firearmId)
48
+ .subscribe(packages => {
49
+ this.packages = packages;
50
+ if (this.packageForm.controls.package.value) {
51
+ let packagez = this.packages.find(p => p.id === this.packageForm.controls.package.value.id);
52
+ this.setPackageOptions(packagez);
53
+ }
54
+ });
55
+ }
56
+ createForm() {
57
+ this.packageForm = this.fb.group({
58
+ package: null,
59
+ optionalItems: this.fb.control([]),
60
+ variations: this.fb.array([])
61
+ });
62
+ this.packageForm.controls.package.valueChanges
63
+ .subscribe(value => {
64
+ this.packageForm.controls.optionalItems.reset();
65
+ this.packageOptionalItems = [];
66
+ this.variations.clear({ emitEvent: false });
67
+ this.packageVariations = [];
68
+ if (value?.id) {
69
+ this.setPackageOptions(value);
70
+ }
71
+ else {
72
+ if (this.packageDetail) {
73
+ this.packageDetail.variations = null;
74
+ this.packageDetail.optionalItems = null;
75
+ }
76
+ }
77
+ });
78
+ }
79
+ get variations() { return this.packageForm.controls.variations; }
80
+ setPackageOptions(packagez) {
81
+ this.packageOptionalItems = packagez.optionalItems;
82
+ this.packageVariations = packagez.variations;
83
+ this.variations.clear({ emitEvent: false });
84
+ for (let v of this.packageVariations) {
85
+ let selectedVariation = this.packageDetail?.variations?.find(pv => pv.packageVariationId === v.id);
86
+ this.variations.push(this.fb.control(selectedVariation, Validators.required), { emitEvent: false });
87
+ }
88
+ }
89
+ setValue(packageDetail) {
90
+ this.packageForm.reset(packageDetail);
91
+ }
92
+ validate(control) {
93
+ if (this.packageForm.valid) {
94
+ return null;
95
+ }
96
+ let errors = {};
97
+ for (let v of this.variations.controls) {
98
+ if (v.invalid) {
99
+ return v.errors;
100
+ }
101
+ }
102
+ return errors;
103
+ }
104
+ addControlErrors(allErrors, controlName) {
105
+ const errors = { ...allErrors };
106
+ const controlErrors = this.packageForm.controls[controlName].errors;
107
+ if (controlErrors) {
108
+ errors[controlName] = controlErrors;
109
+ }
110
+ return errors;
111
+ }
112
+ writeValue(packageDetail) {
113
+ if (packageDetail) {
114
+ this.packageDetail = Object.assign({}, packageDetail);
115
+ this.setValue(packageDetail);
116
+ }
117
+ else {
118
+ this.packageForm.reset();
119
+ }
120
+ }
121
+ registerOnChange(onChange) {
122
+ const sub = this.packageForm.valueChanges.subscribe(onChange);
123
+ this.onChangeSubs.push(sub);
124
+ }
125
+ registerOnTouched(onTouched) {
126
+ this.onTouched = onTouched;
127
+ }
128
+ setDisabledState(isDisabled) {
129
+ this.disabled = isDisabled;
130
+ if (isDisabled) {
131
+ this.packageForm.disable();
132
+ }
133
+ else {
134
+ this.packageForm.enable();
135
+ }
136
+ }
137
+ }
138
+ 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 });
139
+ PackageSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PackageSelectorComponent, selector: "cgw-package-selector", inputs: { firearmId: "firearmId" }, providers: [
140
+ {
141
+ provide: NG_VALUE_ACCESSOR,
142
+ multi: true,
143
+ useExisting: PackageSelectorComponent
144
+ },
145
+ {
146
+ provide: NG_VALIDATORS,
147
+ multi: true,
148
+ useExisting: PackageSelectorComponent
149
+ }
150
+ ], 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"] }] });
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PackageSelectorComponent, decorators: [{
152
+ type: Component,
153
+ args: [{ selector: 'cgw-package-selector', providers: [
154
+ {
155
+ provide: NG_VALUE_ACCESSOR,
156
+ multi: true,
157
+ useExisting: PackageSelectorComponent
158
+ },
159
+ {
160
+ provide: NG_VALIDATORS,
161
+ multi: true,
162
+ useExisting: PackageSelectorComponent
163
+ }
164
+ ], 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: [""] }]
165
+ }], ctorParameters: function () { return [{ type: i1.PackageService }, { type: i2.FormBuilder }, { type: i0.Injector }]; }, propDecorators: { firearmId: [{
166
+ type: Input
167
+ }] } });
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndW5zbWl0aC1jb21tb24vc3JjL3NoYXJlZC9jb250cm9scy9wYWNrYWdlLXNlbGVjdG9yL3BhY2thZ2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Vuc21pdGgtY29tbW9uL3NyYy9zaGFyZWQvY29udHJvbHMvcGFja2FnZS1zZWxlY3Rvci9wYWNrYWdlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQStDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBb0QsV0FBVyxFQUFhLFNBQVMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhNLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBb0JoRCxNQUFNLE9BQU8sd0JBQXdCO0lBbUJuQyxZQUNVLGNBQThCLEVBQzlCLEVBQWUsRUFDZixHQUFhO1FBRmIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFVO1FBakJ2QixhQUFRLEdBQWMsRUFBRSxDQUFDO1FBQ3pCLHNCQUFpQixHQUF1QixFQUFFLENBQUM7UUFDM0MseUJBQW9CLEdBQTBCLEVBQUUsQ0FBQztRQU1qRCxpQkFBWSxHQUFtQixFQUFFLENBQUM7UUFDbEMsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV0QixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFPZixJQUFJLENBQUMsVUFBVSxFQUFFLENB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SUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM1QjthQUNJO1lBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7O3NIQXBLVSx3QkFBd0I7MEdBQXhCLHdCQUF3QixtRkFieEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsS0FBSyxFQUFFLElBQUk7WUFDWCxXQUFXLEVBQUUsd0JBQXdCO1NBQ3RDO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsYUFBYTtZQUN0QixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSx3QkFBd0I7U0FDdEM7S0FDRiwrQ0NyQkgsdXNFQTJDQTs0RkRwQmEsd0JBQXdCO2tCQWpCcEMsU0FBUzsrQkFDRSxzQkFBc0IsYUFHckI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVywwQkFBMEI7eUJBQ3RDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLDBCQUEwQjt5QkFDdEM7cUJBQ0Y7c0pBS0QsU0FBUztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBOZ0NvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3IsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQYWNrYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgUGFja2FnZSwgUGFja2FnZVZhcmlhdGlvbiwgUGFja2FnZU9wdGlvbmFsSXRlbSwgV2FpdGxpc3RHdW5QYWNrYWdlRGV0YWlsLCBXb3JrT3JkZXJQYWNrYWdlRGV0YWlsIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjZ3ctcGFja2FnZS1zZWxlY3RvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhY2thZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BhY2thZ2Utc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogUGFja2FnZVNlbGVjdG9yQ29tcG9uZW50XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFBhY2thZ2VTZWxlY3RvckNvbXBvbmVudFxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhY2thZ2VTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQElucHV0KClcclxuICBmaXJlYXJtSWQ6IG51bWJlcjtcclxuXHJcbiAgcGFja2FnZXM6IFBhY2thZ2VbXSA9IFtdO1xyXG4gIHBhY2thZ2VWYXJpYXRpb25zOiBQYWNrYWdlVmFyaWF0aW9uW10gPSBbXTtcclxuICBwYWNrYWdlT3B0aW9uYWxJdGVtczogUGFja2FnZU9wdGlvbmFsSXRlbVtdID0gW107XHJcblxyXG4gIHBhY2thZ2VEZXRhaWw6IFdhaXRsaXN0R3VuUGFja2FnZURldGFpbCB8IFdvcmtPcmRlclBhY2thZ2VEZXRhaWw7XHJcblxyXG4gIHBhY2thZ2VGb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gIG9uQ2hhbmdlU3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBvblRvdWNoZWQgPSAoKSA9PiB7IH07XHJcblxyXG4gIHRvdWNoZWQgPSBmYWxzZTtcclxuICBkaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFja2FnZVNlcnZpY2U6IFBhY2thZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIGluajogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMuZmlyZWFybUlkLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLmdldFBhY2thZ2VzKCk7XHJcbiAgICAgIHRoaXMucGFja2FnZUZvcm0ucmVzZXQoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnBhY2thZ2VzID0gW107XHJcbiAgICAgIHRoaXMucGFja2FnZUZvcm0ucmVzZXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG91dGVyQ29udHJvbCA9IHRoaXMuaW5qLmdldChOZ0NvbnRyb2wpLmNvbnRyb2w7XHJcbiAgICBjb25zdCBwcmV2TWFya0FzVG91Y2hlZCA9IG91dGVyQ29udHJvbC5tYXJrQXNUb3VjaGVkO1xyXG4gICAgb3V0ZXJDb250cm9sLm1hcmtBc1RvdWNoZWQgPSAoLi4uYXJnczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMucGFja2FnZUZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgICBwcmV2TWFya0FzVG91Y2hlZC5iaW5kKG91dGVyQ29udHJvbCkoLi4uYXJncyk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBzdWIgb2YgdGhpcy5vbkNoYW5nZVN1YnMpIHtcclxuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRQYWNrYWdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMucGFja2FnZVNlcnZpY2UucmVhZFBhY2thZ2VzQnlGaXJlYXJtKHRoaXMuZmlyZWFybUlkKVxyXG4gICAgICAuc3Vic2NyaWJlKHBhY2thZ2VzID0+IHtcclxuICAgICAgICB0aGlzLnBhY2thZ2VzID0gcGFja2FnZXM7XHJcbiAgICAgICAgaWYgKHRoaXMucGFja2FnZUZvcm0uY29udHJvbHMucGFja2FnZS52YWx1ZSkge1xyXG4gICAgICAgICAgbGV0IHBhY2thZ2V6ID0gdGhpcy5wYWNrYWdlcy5maW5kKHAgPT4gcC5pZCA9PT0gdGhpcy5wYWNrYWdlRm9ybS5jb250cm9scy5wYWNrYWdlLnZhbHVlLmlkKTtcclxuICAgICAgICAgIHRoaXMuc2V0UGFja2FnZU9wdGlvbnMocGFja2FnZXopO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVGb3JtKCk6IHZvaWQge1xyXG4gICAgdGhpcy5wYWNrYWdlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBwYWNrYWdlOiBudWxsLFxyXG4gICAgICBvcHRpb25hbEl0ZW1zOiB0aGlzLmZiLmNvbnRyb2woW10pLFxyXG4gICAgICB2YXJpYXRpb25zOiB0aGlzLmZiLmFycmF5KFtdKVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnBhY2thZ2VGb3JtLmNvbnRyb2xzLnBhY2thZ2UudmFsdWVDaGFuZ2VzXHJcbiAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgIHRoaXMucGFja2FnZUZvcm0uY29udHJvbHMub3B0aW9uYWxJdGVtcy5yZXNldCgpO1xyXG4gICAgICAgIHRoaXMucGFja2FnZU9wdGlvbmFsSXRlbXMgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy52YXJpYXRpb25zLmNsZWFyKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICB0aGlzLnBhY2thZ2VWYXJpYXRpb25zID0gW107XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZT8uaWQpIHtcclxuICAgICAgICAgIHRoaXMuc2V0UGFja2FnZU9wdGlvbnModmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmICh0aGlzLnBhY2thZ2VEZXRhaWwpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWNrYWdlRGV0YWlsLnZhcmlhdGlvbnMgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLnBhY2thZ2VEZXRhaWwub3B0aW9uYWxJdGVtcyA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0IHZhcmlhdGlvbnMoKSB7IHJldHVybiB0aGlzLnBhY2thZ2VGb3JtLmNvbnRyb2xzLnZhcmlhdGlvbnMgYXMgRm9ybUFycmF5IH1cclxuXHJcbiAgc2V0UGFja2FnZU9wdGlvbnMocGFja2FnZXo6IFBhY2thZ2UpIHtcclxuICAgIHRoaXMucGFja2FnZU9wdGlvbmFsSXRlbXMgPSBwYWNrYWdlei5vcHRpb25hbEl0ZW1zO1xyXG4gICAgdGhpcy5wYWNrYWdlVmFyaWF0aW9ucyA9IHBhY2thZ2V6LnZhcmlhdGlvbnM7XHJcblxyXG4gICAgdGhpcy52YXJpYXRpb25zLmNsZWFyKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICBmb3IgKGxldCB2IG9mIHRoaXMucGFja2FnZVZhcmlhdGlvbnMpIHtcclxuICAgICAgbGV0IHNlbGVjdGVkVmFyaWF0aW9uID0gdGhpcy5wYWNrYWdlRGV0YWlsPy52YXJpYXRpb25zPy5maW5kKHB2ID0+IHB2LnBhY2thZ2VWYXJpYXRpb25JZCA9PT0gdi5pZCk7XHJcbiAgICAgIHRoaXMudmFyaWF0aW9ucy5wdXNoKHRoaXMuZmIuY29udHJvbChzZWxlY3RlZFZhcmlhdGlvbiwgVmFsaWRhdG9ycy5yZXF1aXJlZCksIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZShwYWNrYWdlRGV0YWlsOiBXYWl0bGlzdEd1blBhY2thZ2VEZXRhaWwgfCBXb3JrT3JkZXJQYWNrYWdlRGV0YWlsKSB7XHJcbiAgICB0aGlzLnBhY2thZ2VGb3JtLnJlc2V0KHBhY2thZ2VEZXRhaWwpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XHJcbiAgICBpZiAodGhpcy5wYWNrYWdlRm9ybS52YWxpZCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZXJyb3JzOiBhbnkgPSB7fTtcclxuXHJcbiAgICBmb3IgKGxldCB2IG9mIHRoaXMudmFyaWF0aW9ucy5jb250cm9scykge1xyXG4gICAgICBpZiAodi5pbnZhbGlkKSB7XHJcbiAgICAgICAgcmV0dXJuIHYuZXJyb3JzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9ycztcclxuICB9XHJcblxyXG4gIGFkZENvbnRyb2xFcnJvcnMoYWxsRXJyb3JzOiBhbnksIGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuXHJcbiAgICBjb25zdCBlcnJvcnMgPSB7IC4uLmFsbEVycm9ycyB9O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xFcnJvcnMgPSB0aGlzLnBhY2thZ2VGb3JtLmNvbnRyb2xzW2NvbnRyb2xOYW1lXS5lcnJvcnM7XHJcblxyXG4gICAgaWYgKGNvbnRyb2xFcnJvcnMpIHtcclxuICAgICAgZXJyb3JzW2NvbnRyb2xOYW1lXSA9IGNvbnRyb2xFcnJvcnM7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9ycztcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUocGFja2FnZURldGFpbDogV2FpdGxpc3RHdW5QYWNrYWdlRGV0YWlsIHwgV29ya09yZGVyUGFja2FnZURldGFpbCk6IHZvaWQge1xyXG4gICAgaWYgKHBhY2thZ2VEZXRhaWwpIHtcclxuICAgICAgdGhpcy5wYWNrYWdlRGV0YWlsID0gT2JqZWN0LmFzc2lnbih7fSxwYWNrYWdlRGV0YWlsKTtcclxuICAgICAgdGhpcy5zZXRWYWx1ZShwYWNrYWdlRGV0YWlsKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnBhY2thZ2VGb3JtLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN1YiA9IHRoaXMucGFja2FnZUZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZShvbkNoYW5nZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlU3Vicy5wdXNoKHN1Yik7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5wYWNrYWdlRm9ybS5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5wYWNrYWdlRm9ybS5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cInBhY2thZ2VGb3JtXCI+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBtYi0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgIDxsYWJlbCBmb3I9XCJ3YWl0bGlzdC1ndW4tcGFja2FnZVwiPlBhY2thZ2UgLSA8c3BhbiBjbGFzcz1cImZzdC1pdGFsaWMgZnMtN1wiPlNlbGVjdCBhIG1vZGVsIHRvIGxpc3QgYXZhaWxhYmxlIHBhY2thZ2VzPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgIDxrZW5kby1kcm9wZG93bmxpc3QgW2RhdGFdPVwicGFja2FnZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0SXRlbV09XCJ7bmFtZTogJ05vIFBhY2thZ2UnLCBpZDogbnVsbH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwid2FpdGxpc3QtZ3VuLXBhY2thZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhY2thZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCI+PC9rZW5kby1kcm9wZG93bmxpc3Q+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJ2YXJpYXRpb25zXCIgKm5nRm9yPVwibGV0IHZhcmlhdGlvbkNvbnRyb2wgb2YgdmFyaWF0aW9ucy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICA8bGFiZWwgW2Zvcl09XCInd2FpdGxpc3QtZ3VuLXBhY2thZ2UtdmFyaWF0aW9uLScgKyBpXCI+e3twYWNrYWdlVmFyaWF0aW9uc1tpXT8ubmFtZX19PC9sYWJlbD5cclxuICAgICAgICA8a2VuZG8tZHJvcGRvd25saXN0IFtkYXRhXT1cInBhY2thZ2VWYXJpYXRpb25zW2ldPy5vcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCInd2FpdGxpc3QtZ3VuLXBhY2thZ2UtdmFyaWF0aW9uLScgKyBpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZD1cIm9wdGlvbk5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInZhcmlhdGlvbkNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVGaWVsZD1cImlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiPjwva2VuZG8tZHJvcGRvd25saXN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInZhcmlhdGlvbkNvbnRyb2wuaW52YWxpZCAmJiAodmFyaWF0aW9uQ29udHJvbC5kaXJ0eSB8fCB2YXJpYXRpb25Db250cm9sLnRvdWNoZWQpXCIgY2xhc3M9XCJlcnJvci1jb250YWluZXIgdGV4dC1kYW5nZXJcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cInZhcmlhdGlvbkNvbnRyb2wuZXJyb3JzLnJlcXVpcmVkXCI+XHJcbiAgICAgICAge3twYWNrYWdlVmFyaWF0aW9uc1tpXT8ubmFtZX19IGlzIHJlcXVpcmVkLlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cgbWItMlwiICpuZ0lmPVwicGFja2FnZU9wdGlvbmFsSXRlbXM/Lmxlbmd0aFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICA8bGFiZWwgZm9yPVwid2FpdGxpc3QtZ3VuLXBhY2thZ2UtYWRkb25zXCI+QWRkLW9ucyAoQWRkaXRpb25hbCBjaGFyZ2VzIHdpbGwgYXBwbHkpPC9sYWJlbD5cclxuICAgICAgPGtlbmRvLW11bHRpc2VsZWN0IGlkPVwid2FpdGxpc3QtZ3VuLXBhY2thZ2UtYWRkb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInBhY2thZ2VPcHRpb25hbEl0ZW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9wdGlvbmFsSXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUZpZWxkPVwiaW52ZW50b3J5SXRlbUlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiPjwva2VuZG8tbXVsdGlzZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -23,4 +23,6 @@ export * from './user.service';
23
23
  export * from './waitlist-project.service';
24
24
  export * from './inventory.service';
25
25
  export * from './status-history.service';
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndW5zbWl0aC1jb21tb24vc3JjL3NoYXJlZC9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDBCQUEwQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jdXN0b21lci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maXJlYXJtLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2d1bi1wYXJ0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0YXRlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3ZlbmRvci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi90b3RhbHMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd29yay1ob2xpZGF5LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dvcmstb3JkZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGVhbGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdXBsb2FkLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dhaXRsaXN0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd2FpdGxpc3QtY3VzdG9tZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3B0aWMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maXJlYXJtLXNlcmllcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9taWxsaW5nLXR5cGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29zbWV0aWMtbWlsbGluZy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2F0aW5nLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL21hdGVyaWFsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3B1cmNoYXNlLW9yZGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VzZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd2FpdGxpc3QtcHJvamVjdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnZlbnRvcnkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3RhdHVzLWhpc3Rvcnkuc2VydmljZSdcclxuIl19
26
+ export * from './package.service';
27
+ export * from './refinish-code.service';
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndW5zbWl0aC1jb21tb24vc3JjL3NoYXJlZC9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3VzdG9tZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlyZWFybS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9ndW4tcGFydC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zdGF0ZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi92ZW5kb3Iuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdG90YWxzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dvcmstaG9saWRheS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi93b3JrLW9yZGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RlYWxlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWxlLXVwbG9hZC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi93YWl0bGlzdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dhaXRsaXN0LWN1c3RvbWVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL29wdGljLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3Quc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlyZWFybS1zZXJpZXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbWlsbGluZy10eXBlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Nvc21ldGljLW1pbGxpbmcuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29hdGluZy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tYXRlcmlhbC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9wdXJjaGFzZS1vcmRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi91c2VyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dhaXRsaXN0LXByb2plY3Quc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW52ZW50b3J5LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0YXR1cy1oaXN0b3J5LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhY2thZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVmaW5pc2gtY29kZS5zZXJ2aWNlJztcclxuIl19
@@ -20,6 +20,9 @@ export class InventoryService {
20
20
  updateInventoryItem(id, item) {
21
21
  return this.http.put(`${this.url}/${id}`, item);
22
22
  }
23
+ createInventoryItem(item) {
24
+ return this.http.post(this.url, item);
25
+ }
23
26
  }
24
27
  InventoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InventoryService, deps: [{ token: i1.HttpClient }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
25
28
  InventoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InventoryService, providedIn: 'root' });
@@ -32,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
32
35
  type: Inject,
33
36
  args: ['env']
34
37
  }] }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52ZW50b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndW5zbWl0aC1jb21tb24vc3JjL3NoYXJlZC9zZXJ2aWNlcy9pbnZlbnRvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9uRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCLFlBQ1UsSUFBZ0IsRUFDRCxHQUFRO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDRCxRQUFHLEdBQUgsR0FBRyxDQUFLO1FBRS9CLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcscUJBQXFCLENBQUM7SUFDdEQsQ0FBQztJQUVELGtCQUFrQixDQUFDLGtCQUEyQixLQUFLLEVBQUUsU0FBaUIsSUFBSTtRQUN4RSxNQUFNLE1BQU0sR0FBRztZQUNiLGVBQWUsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFO1NBQzVDLENBQUE7UUFFRCxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQTtTQUMxQjtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtCLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsbUJBQW1CLENBQUMsRUFBVSxFQUFFLElBQW1CO1FBQ2pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRSxDQUFDOzs4R0F4QlUsZ0JBQWdCLDRDQUtqQixLQUFLO2tIQUxKLGdCQUFnQixjQUZmLE1BQU07NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSW52ZW50b3J5SXRlbSB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEludmVudG9yeVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgdXJsOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnY6IGFueVxyXG4gICkge1xyXG4gICAgdGhpcy51cmwgPSB0aGlzLmVudi5iYXNlVXJsICsgJ2FwaS9pbnZlbnRvcnktaXRlbXMnO1xyXG4gIH1cclxuXHJcbiAgcmVhZEludmVudG9yeUl0ZW1zKGluY2x1ZGVJbmFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlLCBzZWFyY2g6IHN0cmluZyA9IG51bGwpOiBPYnNlcnZhYmxlPEludmVudG9yeUl0ZW1bXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICBpbmNsdWRlSW5hY3RpdmU6IGluY2x1ZGVJbmFjdGl2ZS50b1N0cmluZygpXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNlYXJjaCAhPT0gbnVsbCkge1xyXG4gICAgICBwYXJhbXNbJ3NlYXJjaCddID0gc2VhcmNoXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SW52ZW50b3J5SXRlbVtdPih0aGlzLnVybCwgeyBwYXJhbXM6IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUludmVudG9yeUl0ZW0oaWQ6IG51bWJlciwgaXRlbTogSW52ZW50b3J5SXRlbSk6IE9ic2VydmFibGU8SW52ZW50b3J5SXRlbT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8SW52ZW50b3J5SXRlbT4oYCR7dGhpcy51cmx9LyR7aWR9YCwgaXRlbSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52ZW50b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndW5zbWl0aC1jb21tb24vc3JjL3NoYXJlZC9zZXJ2aWNlcy9pbnZlbnRvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9uRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCLFlBQ1UsSUFBZ0IsRUFDRCxHQUFRO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDRCxRQUFHLEdBQUgsR0FBRyxDQUFLO1FBRS9CLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcscUJBQXFCLENBQUM7SUFDdEQsQ0FBQztJQUVELGtCQUFrQixDQUFDLGtCQUEyQixLQUFLLEVBQUUsU0FBaUIsSUFBSTtRQUN4RSxNQUFNLE1BQU0sR0FBRztZQUNiLGVBQWUsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFO1NBQzVDLENBQUE7UUFFRCxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQTtTQUMxQjtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtCLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsbUJBQW1CLENBQUMsRUFBVSxFQUFFLElBQW1CO1FBQ2pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBbUI7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBZ0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs4R0E1QlUsZ0JBQWdCLDRDQUtqQixLQUFLO2tIQUxKLGdCQUFnQixjQUZmLE1BQU07NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSW52ZW50b3J5SXRlbSB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEludmVudG9yeVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgdXJsOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnY6IGFueVxyXG4gICkge1xyXG4gICAgdGhpcy51cmwgPSB0aGlzLmVudi5iYXNlVXJsICsgJ2FwaS9pbnZlbnRvcnktaXRlbXMnO1xyXG4gIH1cclxuXHJcbiAgcmVhZEludmVudG9yeUl0ZW1zKGluY2x1ZGVJbmFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlLCBzZWFyY2g6IHN0cmluZyA9IG51bGwpOiBPYnNlcnZhYmxlPEludmVudG9yeUl0ZW1bXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICBpbmNsdWRlSW5hY3RpdmU6IGluY2x1ZGVJbmFjdGl2ZS50b1N0cmluZygpXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNlYXJjaCAhPT0gbnVsbCkge1xyXG4gICAgICBwYXJhbXNbJ3NlYXJjaCddID0gc2VhcmNoXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SW52ZW50b3J5SXRlbVtdPih0aGlzLnVybCwgeyBwYXJhbXM6IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUludmVudG9yeUl0ZW0oaWQ6IG51bWJlciwgaXRlbTogSW52ZW50b3J5SXRlbSk6IE9ic2VydmFibGU8SW52ZW50b3J5SXRlbT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8SW52ZW50b3J5SXRlbT4oYCR7dGhpcy51cmx9LyR7aWR9YCwgaXRlbSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVJbnZlbnRvcnlJdGVtKGl0ZW06IEludmVudG9yeUl0ZW0pOiBPYnNlcnZhYmxlPEludmVudG9yeUl0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJbnZlbnRvcnlJdGVtPih0aGlzLnVybCwgaXRlbSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Inject, Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ export class PackageService {
6
+ constructor(http, env) {
7
+ this.http = http;
8
+ this.env = env;
9
+ this.url = this.env.baseUrl + 'api/packages';
10
+ }
11
+ readPackages(includeInactive = false, sku = null, name = null) {
12
+ const params = {
13
+ includeInactive
14
+ };
15
+ if (sku) {
16
+ params['sku'] = sku;
17
+ }
18
+ if (name) {
19
+ params['name'] = name;
20
+ }
21
+ return this.http.get(this.url, { params: params });
22
+ }
23
+ readPackage(id) {
24
+ return this.http.get(`${this.url}/${id}`);
25
+ }
26
+ readPackagesByFirearm(firearmId) {
27
+ return this.http.get(`${this.env.baseUrl}api/firearms/${firearmId}/packages`);
28
+ }
29
+ savePackage(packagez) {
30
+ if (packagez.id) {
31
+ return this.http.put(`${this.url}/${packagez.id}`, packagez);
32
+ }
33
+ return this.http.post(this.url, packagez);
34
+ }
35
+ }
36
+ PackageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PackageService, deps: [{ token: i1.HttpClient }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
37
+ PackageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PackageService, providedIn: 'root' });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PackageService, decorators: [{
39
+ type: Injectable,
40
+ args: [{
41
+ providedIn: 'root'
42
+ }]
43
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
44
+ type: Inject,
45
+ args: ['env']
46
+ }] }]; } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Vuc21pdGgtY29tbW9uL3NyYy9zaGFyZWQvc2VydmljZXMvcGFja2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT25ELE1BQU0sT0FBTyxjQUFjO0lBR3pCLFlBQ1UsSUFBZ0IsRUFDRCxHQUFRO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDRCxRQUFHLEdBQUgsR0FBRyxDQUFLO1FBRS9CLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDO0lBQy9DLENBQUM7SUFFRCxZQUFZLENBQUMsa0JBQTJCLEtBQUssRUFBRSxNQUFjLElBQUksRUFDL0QsT0FBZSxJQUFJO1FBRW5CLE1BQU0sTUFBTSxHQUFHO1lBQ2IsZUFBZTtTQUNoQixDQUFDO1FBRUYsSUFBSSxHQUFHLEVBQUU7WUFDUCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ3JCO1FBRUQsSUFBSSxJQUFJLEVBQUU7WUFDUixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBWSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFVO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELHFCQUFxQixDQUFDLFNBQWlCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sZ0JBQWdCLFNBQVMsV0FBVyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFpQjtRQUMzQixJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDdkU7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFVLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckQsQ0FBQzs7NEdBekNVLGNBQWMsNENBS2YsS0FBSztnSEFMSixjQUFjLGNBRmIsTUFBTTs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhY2thZ2VTZXJ2aWNlIHtcclxuICBwcml2YXRlIHVybDogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52OiBhbnlcclxuICApIHtcclxuICAgIHRoaXMudXJsID0gdGhpcy5lbnYuYmFzZVVybCArICdhcGkvcGFja2FnZXMnO1xyXG4gIH1cclxuXHJcbiAgcmVhZFBhY2thZ2VzKGluY2x1ZGVJbmFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlLCBza3U6IHN0cmluZyA9IG51bGwsXHJcbiAgICBuYW1lOiBzdHJpbmcgPSBudWxsKTogT2JzZXJ2YWJsZTxQYWNrYWdlW10+IHtcclxuXHJcbiAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIGluY2x1ZGVJbmFjdGl2ZVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoc2t1KSB7XHJcbiAgICAgIHBhcmFtc1snc2t1J10gPSBza3U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG5hbWUpIHtcclxuICAgICAgcGFyYW1zWyduYW1lJ10gPSBuYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBhY2thZ2VbXT4odGhpcy51cmwsIHsgcGFyYW1zOiBwYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICByZWFkUGFja2FnZShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxQYWNrYWdlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQYWNrYWdlPihgJHt0aGlzLnVybH0vJHtpZH1gKTtcclxuICB9XHJcblxyXG4gIHJlYWRQYWNrYWdlc0J5RmlyZWFybShmaXJlYXJtSWQ6IG51bWJlcik6IE9ic2VydmFibGU8UGFja2FnZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQYWNrYWdlW10+KGAke3RoaXMuZW52LmJhc2VVcmx9YXBpL2ZpcmVhcm1zLyR7ZmlyZWFybUlkfS9wYWNrYWdlc2ApO1xyXG4gIH1cclxuXHJcbiAgc2F2ZVBhY2thZ2UocGFja2FnZXo6IFBhY2thZ2UpOiBPYnNlcnZhYmxlPFBhY2thZ2U+IHtcclxuICAgIGlmIChwYWNrYWdlei5pZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxQYWNrYWdlPihgJHt0aGlzLnVybH0vJHtwYWNrYWdlei5pZH1gLCBwYWNrYWdleik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UGFja2FnZT4odGhpcy51cmwsIHBhY2thZ2V6KTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,35 @@
1
+ import { HttpClient } from "@angular/common/http";
2
+ import { Inject, Injectable } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ export class RefinishCodeService {
6
+ constructor(http, env) {
7
+ this.http = http;
8
+ this.env = env;
9
+ this.url = this.env.baseUrl + 'api/refinish-codes';
10
+ }
11
+ readRefinishCodes() {
12
+ return this.http.get(this.url);
13
+ }
14
+ createRefinishCodes(refinishCodes) {
15
+ return this.http.post(this.url, refinishCodes);
16
+ }
17
+ updateRefinishCodes(ids, refinishCodes) {
18
+ return this.http.put(`${this.url}/` + ids.join(','), refinishCodes);
19
+ }
20
+ deleteRefinishCodes(ids) {
21
+ return this.http.delete(this.url + '/' + ids.join(','));
22
+ }
23
+ }
24
+ RefinishCodeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RefinishCodeService, deps: [{ token: i1.HttpClient }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
25
+ RefinishCodeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RefinishCodeService, providedIn: 'root' });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RefinishCodeService, decorators: [{
27
+ type: Injectable,
28
+ args: [{
29
+ providedIn: 'root'
30
+ }]
31
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
32
+ type: Inject,
33
+ args: ['env']
34
+ }] }]; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmaW5pc2gtY29kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Vuc21pdGgtY29tbW9uL3NyYy9zaGFyZWQvc2VydmljZXMvcmVmaW5pc2gtY29kZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT25ELE1BQU0sT0FBTyxtQkFBbUI7SUFHOUIsWUFDVSxJQUFnQixFQUNELEdBQVE7UUFEdkIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNELFFBQUcsR0FBSCxHQUFHLENBQUs7UUFFL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQztJQUNyRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBaUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxhQUE2QjtRQUMvQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFpQixJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxHQUFhLEVBQUUsYUFBNkI7UUFDOUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsbUJBQW1CLENBQUMsR0FBYTtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDOztpSEF4QlUsbUJBQW1CLDRDQUtwQixLQUFLO3FIQUxKLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFJlZmluaXNoQ29kZSB9IGZyb20gXCIuLi90eXBlc1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVmaW5pc2hDb2RlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSB1cmw6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudjogYW55XHJcbiAgKSB7XHJcbiAgICB0aGlzLnVybCA9IHRoaXMuZW52LmJhc2VVcmwgKyAnYXBpL3JlZmluaXNoLWNvZGVzJztcclxuICB9XHJcblxyXG4gIHJlYWRSZWZpbmlzaENvZGVzKCk6IE9ic2VydmFibGU8UmVmaW5pc2hDb2RlW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFJlZmluaXNoQ29kZVtdPih0aGlzLnVybCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVSZWZpbmlzaENvZGVzKHJlZmluaXNoQ29kZXM6IFJlZmluaXNoQ29kZVtdKTogT2JzZXJ2YWJsZTxSZWZpbmlzaENvZGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFJlZmluaXNoQ29kZVtdPih0aGlzLnVybCwgcmVmaW5pc2hDb2Rlcyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSZWZpbmlzaENvZGVzKGlkczogbnVtYmVyW10sIHJlZmluaXNoQ29kZXM6IFJlZmluaXNoQ29kZVtdKTogT2JzZXJ2YWJsZTxSZWZpbmlzaENvZGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8UmVmaW5pc2hDb2RlW10+KGAke3RoaXMudXJsfS9gICsgaWRzLmpvaW4oJywnKSwgcmVmaW5pc2hDb2Rlcyk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVSZWZpbmlzaENvZGVzKGlkczogbnVtYmVyW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodGhpcy51cmwgKyAnLycgKyBpZHMuam9pbignLCcpKTtcclxuICB9XHJcbn1cclxuIl19
@@ -68,6 +68,9 @@ export class WaitlistService {
68
68
  deleteProject(waitlistId, projectId) {
69
69
  return this.http.delete(`${this.url}/${waitlistId}/projects/${projectId}`);
70
70
  }
71
+ readPackageDetailTotals() {
72
+ return this.http.get(`${this.url}/package-details/totals`);
73
+ }
71
74
  }
72
75
  WaitlistService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WaitlistService, deps: [{ token: i1.HttpClient }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
73
76
  WaitlistService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WaitlistService, providedIn: 'root' });
@@ -80,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
80
83
  type: Inject,
81
84
  args: ['env']
82
85
  }] }]; } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdGxpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1bnNtaXRoLWNvbW1vbi9zcmMvc2hhcmVkL3NlcnZpY2VzL3dhaXRsaXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFPbEQsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFDVSxJQUFnQixFQUNELEdBQVE7UUFEdkIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNELFFBQUcsR0FBSCxHQUFHLENBQUs7UUFFL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQztJQUNyRCxDQUFDO0lBRUQscUJBQXFCLENBQUMsV0FBNkIsSUFBSSxFQUNyRCxLQUFhLElBQUksRUFDakIsZUFBdUIsSUFBSSxFQUMzQixnQkFBd0IsSUFBSSxFQUM1QixlQUF1QixJQUFJLEVBQzNCLGlCQUFrQyxJQUFJLEVBQ3RDLGVBQThCLElBQUk7UUFDbEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWxCLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNoRTtRQUVELElBQUksRUFBRSxFQUFFO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM5QjtRQUVELElBQUksWUFBWSxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxZQUFZLENBQUM7U0FDdkM7UUFFRCxJQUFJLGFBQWEs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QUFTLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQWtCLEVBQUUsU0FBaUI7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksVUFBVSxhQUFhLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQzs7NkdBOUZVLGVBQWUsNENBS2hCLEtBQUs7aUhBTEosZUFBZSxjQUZkLE1BQU07NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFByb2plY3RUeXBlLCBXYWl0bGlzdEd1biwgV2FpdGxpc3RJdGVtLCBXYWl0bGlzdFN0YXR1cywgV29ya09yZGVyVHlwZSB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdhaXRsaXN0U2VydmljZSB7XHJcbiAgcHJpdmF0ZSB1cmw6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudjogYW55XHJcbiAgKSB7XHJcbiAgICB0aGlzLnVybCA9IHRoaXMuZW52LmJhc2VVcmwgKyAnYXBpL3dhaXRsaXN0LWl0ZW1zJztcclxuICB9XHJcblxyXG4gIHJldHJpZXZlV2FpdGxpc3RJdGVtcyhzdGF0dXNlczogV2FpdGxpc3RTdGF0dXNbXSA9IG51bGwsXHJcbiAgICBpZDogbnVtYmVyID0gbnVsbCxcclxuICAgIGN1c3RvbWVyTmFtZTogc3RyaW5nID0gbnVsbCxcclxuICAgIGN1c3RvbWVyRW1haWw6IHN0cmluZyA9IG51bGwsXHJcbiAgICBzZXJpYWxOdW1iZXI6IHN0cmluZyA9IG51bGwsXHJcbiAgICB3b3JrT3JkZXJUeXBlczogV29ya09yZGVyVHlwZVtdID0gbnVsbCxcclxuICAgIHByb2plY3RUeXBlczogUHJvamVjdFR5cGVbXSA9IG51bGwpOiBPYnNlcnZhYmxlPFdhaXRsaXN0SXRlbVtdPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcclxuXHJcbiAgICBpZiAoc3RhdHVzZXMpIHtcclxuICAgICAgcGFyYW1zWydzdGF0dXNlcyddID0gc3RhdHVzZXMubWFwKHN0YXR1cyA9PiBzdGF0dXMudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlkKSB7XHJcbiAgICAgIHBhcmFtc1snaWQnXSA9IGlkLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGN1c3RvbWVyTmFtZSkge1xyXG4gICAgICBwYXJhbXNbJ2N1c3RvbWVyTmFtZSddID0gY3VzdG9tZXJOYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjdXN0b21lckVtYWlsKSB7XHJcbiAgICAgIHBhcmFtc1snY3VzdG9tZXJFbWFpbCddID0gY3VzdG9tZXJFbWFpbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2VyaWFsTnVtYmVyKSB7XHJcbiAgICAgIHBhcmFtc1snc2VyaWFsTnVtYmVyJ10gPSBzZXJpYWxOdW1iZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdvcmtPcmRlclR5cGVzKSB7XHJcbiAgICAgIHBhcmFtc1snd29ya09yZGVyVHlwZXMnXSA9IHdvcmtPcmRlclR5cGVzLm1hcCh0ID0+IHQudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHByb2plY3RUeXBlcykge1xyXG4gICAgICBwYXJhbXNbJ3Byb2plY3RUeXBlcyddID0gcHJvamVjdFR5cGVzLm1hcCh0ID0+IHQudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V2FpdGxpc3RJdGVtW10+KHRoaXMudXJsLCB7XHJcbiAgICAgIHBhcmFtczogcGFyYW1zXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJldHJpZXZlV2FpdGxpc3RJdGVtKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFdhaXRsaXN0SXRlbT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V2FpdGxpc3RJdGVtPihgJHt0aGlzLnVybH0vJHtpZH1gKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVdhaXRsaXN0SXRlbSh3YWl0bGlzdEl0ZW06IFdhaXRsaXN0SXRlbSk6IE9ic2VydmFibGU8V2FpdGxpc3RJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8V2FpdGxpc3RJdGVtPih0aGlzLnVybCwgd2FpdGxpc3RJdGVtKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVdhaXRsaXN0SXRlbShpZDogbnVtYmVyLCB3YWl0bGlzdEl0ZW06IFdhaXRsaXN0SXRlbSk6IE9ic2VydmFibGU8V2FpdGxpc3RJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxXYWl0bGlzdEl0ZW0+KGAke3RoaXMudXJsfS8ke2lkfWAsIHdhaXRsaXN0SXRlbSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVXYWl0bGlzdEl0ZW0oaWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLnVybH0vJHtpZH1gKTtcclxuICB9XHJcblxyXG4gIGRvV2FpdGxpc3RBY3Rpb24oaWQ6IG51bWJlciwgYWN0aW9uSWQ6IG51bWJlcik6IE9ic2VydmFibGU8V2FpdGxpc3RJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxXYWl0bGlzdEl0ZW0+KGAke3RoaXMudXJsfS8ke2lkfS9hY3Rpb25zLyR7YWN0aW9uSWR9YCk7XHJcbiAgfVxyXG5cclxuICByZXRyaWV2ZVByb2plY3RQZGYoaWQ6IG51bWJlciwgcHJvamVjdElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEJsb2I+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEJsb2I+KGAke3RoaXMudXJsfS8ke2lkfS9wcm9qZWN0cy8ke3Byb2plY3RJZH0vcGRmYCwgeyByZXNwb25zZVR5cGU6IFwiYmxvYlwiIGFzICdqc29uJyB9KTtcclxuICB9XHJcblxyXG4gIHJldHJpZXZlUHJvamVjdHMod2FpdGxpc3RJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxXYWl0bGlzdEd1bltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxXYWl0bGlzdEd1bltdPihgJHt0aGlzLnVybH0vJHt3YWl0bGlzdElkfS9wcm9qZWN0c2ApO1xyXG4gIH1cclxuXHJcbiAgcmV0cmlldmVQcm9qZWN0KHdhaXRsaXN0SWQ6IG51bWJlciwgcHJvamVjdElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFdhaXRsaXN0R3VuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxXYWl0bGlzdEd1bj4oYCR7dGhpcy51cmx9LyR7d2FpdGxpc3RJZH0vcHJvamVjdHMvJHtwcm9qZWN0SWR9YCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVQcm9qZWN0KHdhaXRsaXN0SWQ6IG51bWJlciwgcHJvamVjdDogV2FpdGxpc3RHdW4pOiBPYnNlcnZhYmxlPFdhaXRsaXN0R3VuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8V2FpdGxpc3RHdW4+KGAke3RoaXMudXJsfS8ke3dhaXRsaXN0SWR9L3Byb2plY3RzYCwgcHJvamVjdCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQcm9qZWN0KHdhaXRsaXN0SWQ6IG51bWJlciwgcHJvamVjdElkOiBudW1iZXIsIHByb2plY3Q6IFdhaXRsaXN0R3VuKTogT2JzZXJ2YWJsZTxXYWl0bGlzdEd1bj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8V2FpdGxpc3RHdW4+KGAke3RoaXMudXJsfS8ke3dhaXRsaXN0SWR9L3Byb2plY3RzLyR7cHJvamVjdElkfWAsIHByb2plY3QpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlUHJvamVjdCh3YWl0bGlzdElkOiBudW1iZXIsIHByb2plY3RJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx2b2lkPihgJHt0aGlzLnVybH0vJHt3YWl0bGlzdElkfS9wcm9qZWN0cy8ke3Byb2plY3RJZH1gKTtcclxuICB9XHJcbn1cclxuIl19
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdGxpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1bnNtaXRoLWNvbW1vbi9zcmMvc2hhcmVkL3NlcnZpY2VzL3dhaXRsaXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFPbEQsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFDVSxJQUFnQixFQUNELEdBQVE7UUFEdkIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNELFFBQUcsR0FBSCxHQUFHLENBQUs7UUFFL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQztJQUNyRCxDQUFDO0lBRUQscUJBQXFCLENBQUMsV0FBNkIsSUFBSSxFQUNyRCxLQUFhLElBQUksRUFDakIsZUFBdUIsSUFBSSxFQUMzQixnQkFBd0IsSUFBSSxFQUM1QixlQUF1QixJQUFJLEVBQzNCLGlCQUFrQyxJQUFJLEVBQ3RDLGVBQThCLElBQUk7UUFDbEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWxCLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNoRTtRQUVELElBQUksRUFBRSxFQUFFO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM5QjtRQUVELElBQUksWUFBWSxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxZQUFZLENBQUM7U0FDdkM7UUFFRCxJQUFJLGFBQWEs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QUFTLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQWtCLEVBQUUsU0FBaUI7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksVUFBVSxhQUFhLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLHlCQUF5QixDQUFDLENBQUM7SUFDN0UsQ0FBQzs7NkdBbEdVLGVBQWUsNENBS2hCLEtBQUs7aUhBTEosZUFBZSxjQUZkLE1BQU07NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFBhY2thZ2VUb3RhbCwgUHJvamVjdFR5cGUsIFdhaXRsaXN0R3VuLCBXYWl0bGlzdEl0ZW0sIFdhaXRsaXN0U3RhdHVzLCBXb3JrT3JkZXJUeXBlIH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV2FpdGxpc3RTZXJ2aWNlIHtcclxuICBwcml2YXRlIHVybDogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52OiBhbnlcclxuICApIHtcclxuICAgIHRoaXMudXJsID0gdGhpcy5lbnYuYmFzZVVybCArICdhcGkvd2FpdGxpc3QtaXRlbXMnO1xyXG4gIH1cclxuXHJcbiAgcmV0cmlldmVXYWl0bGlzdEl0ZW1zKHN0YXR1c2VzOiBXYWl0bGlzdFN0YXR1c1tdID0gbnVsbCxcclxuICAgIGlkOiBudW1iZXIgPSBudWxsLFxyXG4gICAgY3VzdG9tZXJOYW1lOiBzdHJpbmcgPSBudWxsLFxyXG4gICAgY3VzdG9tZXJFbWFpbDogc3RyaW5nID0gbnVsbCxcclxuICAgIHNlcmlhbE51bWJlcjogc3RyaW5nID0gbnVsbCxcclxuICAgIHdvcmtPcmRlclR5cGVzOiBXb3JrT3JkZXJUeXBlW10gPSBudWxsLFxyXG4gICAgcHJvamVjdFR5cGVzOiBQcm9qZWN0VHlwZVtdID0gbnVsbCk6IE9ic2VydmFibGU8V2FpdGxpc3RJdGVtW10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xyXG5cclxuICAgIGlmIChzdGF0dXNlcykge1xyXG4gICAgICBwYXJhbXNbJ3N0YXR1c2VzJ10gPSBzdGF0dXNlcy5tYXAoc3RhdHVzID0+IHN0YXR1cy50b1N0cmluZygpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaWQpIHtcclxuICAgICAgcGFyYW1zWydpZCddID0gaWQudG9TdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY3VzdG9tZXJOYW1lKSB7XHJcbiAgICAgIHBhcmFtc1snY3VzdG9tZXJOYW1lJ10gPSBjdXN0b21lck5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGN1c3RvbWVyRW1haWwpIHtcclxuICAgICAgcGFyYW1zWydjdXN0b21lckVtYWlsJ10gPSBjdXN0b21lckVtYWlsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzZXJpYWxOdW1iZXIpIHtcclxuICAgICAgcGFyYW1zWydzZXJpYWxOdW1iZXInXSA9IHNlcmlhbE51bWJlcjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAod29ya09yZGVyVHlwZXMpIHtcclxuICAgICAgcGFyYW1zWyd3b3JrT3JkZXJUeXBlcyddID0gd29ya09yZGVyVHlwZXMubWFwKHQgPT4gdC50b1N0cmluZygpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocHJvamVjdFR5cGVzKSB7XHJcbiAgICAgIHBhcmFtc1sncHJvamVjdFR5cGVzJ10gPSBwcm9qZWN0VHlwZXMubWFwKHQgPT4gdC50b1N0cmluZygpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxXYWl0bGlzdEl0ZW1bXT4odGhpcy51cmwsIHtcclxuICAgICAgcGFyYW1zOiBwYXJhbXNcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmV0cmlldmVXYWl0bGlzdEl0ZW0oaWQ6IG51bWJlcik6IE9ic2VydmFibGU8V2FpdGxpc3RJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxXYWl0bGlzdEl0ZW0+KGAke3RoaXMudXJsfS8ke2lkfWApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlV2FpdGxpc3RJdGVtKHdhaXRsaXN0SXRlbTogV2FpdGxpc3RJdGVtKTogT2JzZXJ2YWJsZTxXYWl0bGlzdEl0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxXYWl0bGlzdEl0ZW0+KHRoaXMudXJsLCB3YWl0bGlzdEl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlV2FpdGxpc3RJdGVtKGlkOiBudW1iZXIsIHdhaXRsaXN0SXRlbTogV2FpdGxpc3RJdGVtKTogT2JzZXJ2YWJsZTxXYWl0bGlzdEl0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFdhaXRsaXN0SXRlbT4oYCR7dGhpcy51cmx9LyR7aWR9YCwgd2FpdGxpc3RJdGVtKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVdhaXRsaXN0SXRlbShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMudXJsfS8ke2lkfWApO1xyXG4gIH1cclxuXHJcbiAgZG9XYWl0bGlzdEFjdGlvbihpZDogbnVtYmVyLCBhY3Rpb25JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxXYWl0bGlzdEl0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFdhaXRsaXN0SXRlbT4oYCR7dGhpcy51cmx9LyR7aWR9L2FjdGlvbnMvJHthY3Rpb25JZH1gKTtcclxuICB9XHJcblxyXG4gIHJldHJpZXZlUHJvamVjdFBkZihpZDogbnVtYmVyLCBwcm9qZWN0SWQ6IG51bWJlcik6IE9ic2VydmFibGU8QmxvYj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QmxvYj4oYCR7dGhpcy51cmx9LyR7aWR9L3Byb2plY3RzLyR7cHJvamVjdElkfS9wZGZgLCB7IHJlc3BvbnNlVHlwZTogXCJibG9iXCIgYXMgJ2pzb24nIH0pO1xyXG4gIH1cclxuXHJcbiAgcmV0cmlldmVQcm9qZWN0cyh3YWl0bGlzdElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFdhaXRsaXN0R3VuW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFdhaXRsaXN0R3VuW10+KGAke3RoaXMudXJsfS8ke3dhaXRsaXN0SWR9L3Byb2plY3RzYCk7XHJcbiAgfVxyXG5cclxuICByZXRyaWV2ZVByb2plY3Qod2FpdGxpc3RJZDogbnVtYmVyLCBwcm9qZWN0SWQ6IG51bWJlcik6IE9ic2VydmFibGU8V2FpdGxpc3RHdW4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFdhaXRsaXN0R3VuPihgJHt0aGlzLnVybH0vJHt3YWl0bGlzdElkfS9wcm9qZWN0cy8ke3Byb2plY3RJZH1gKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVByb2plY3Qod2FpdGxpc3RJZDogbnVtYmVyLCBwcm9qZWN0OiBXYWl0bGlzdEd1bik6IE9ic2VydmFibGU8V2FpdGxpc3RHdW4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxXYWl0bGlzdEd1bj4oYCR7dGhpcy51cmx9LyR7d2FpdGxpc3RJZH0vcHJvamVjdHNgLCBwcm9qZWN0KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVByb2plY3Qod2FpdGxpc3RJZDogbnVtYmVyLCBwcm9qZWN0SWQ6IG51bWJlciwgcHJvamVjdDogV2FpdGxpc3RHdW4pOiBPYnNlcnZhYmxlPFdhaXRsaXN0R3VuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxXYWl0bGlzdEd1bj4oYCR7dGhpcy51cmx9LyR7d2FpdGxpc3RJZH0vcHJvamVjdHMvJHtwcm9qZWN0SWR9YCwgcHJvamVjdCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVQcm9qZWN0KHdhaXRsaXN0SWQ6IG51bWJlciwgcHJvamVjdElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHZvaWQ+KGAke3RoaXMudXJsfS8ke3dhaXRsaXN0SWR9L3Byb2plY3RzLyR7cHJvamVjdElkfWApO1xyXG4gIH1cclxuXHJcbiAgcmVhZFBhY2thZ2VEZXRhaWxUb3RhbHMoKTogT2JzZXJ2YWJsZTxQYWNrYWdlVG90YWxbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UGFja2FnZVRvdGFsW10+KGAke3RoaXMudXJsfS9wYWNrYWdlLWRldGFpbHMvdG90YWxzYCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==