simpo-component-library 1.4.15 → 1.4.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/ecommerce/json/user-cart.json +1 -14
- package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +13 -10
- package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +2 -2
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +10 -4
- package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +3 -3
- package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +3 -8
- package/esm2022/lib/ecommerce/styles/cart.modal.mjs +2 -1
- package/esm2022/lib/ecommerce/styles/user.modal.mjs +11 -0
- package/esm2022/lib/services/cart.service.mjs +86 -69
- package/esm2022/lib/services/storage.service.mjs +80 -0
- package/fesm2022/simpo-component-library.mjs +188 -99
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/directive/background-directive.d.ts +1 -1
- package/lib/directive/button-directive.directive.d.ts +1 -1
- package/lib/directive/color.directive.d.ts +1 -1
- package/lib/ecommerce/sections/authenticate-user/authenticate-user.component.d.ts +4 -2
- package/lib/ecommerce/sections/featured-products/featured-products.component.d.ts +1 -1
- package/lib/ecommerce/styles/OrderedItems.modal.d.ts +10 -14
- package/lib/ecommerce/styles/cart.modal.d.ts +3 -18
- package/lib/ecommerce/styles/user.modal.d.ts +38 -0
- package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
- package/lib/services/cart.service.d.ts +9 -9
- package/lib/services/storage.service.d.ts +28 -0
- package/package.json +1 -1
- package/simpo-component-library-1.4.16.tgz +0 -0
- package/simpo-component-library-1.4.12.tgz +0 -0
- package/simpo-component-library-1.4.13.tgz +0 -0
- package/simpo-component-library-1.4.14.tgz +0 -0
- package/simpo-component-library-1.4.15.tgz +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { v1 as uuidv1 } from 'uuid';
|
|
1
2
|
export class OrderedItems {
|
|
2
3
|
constructor(json) {
|
|
3
|
-
this.itemId = json?.["itemId"];
|
|
4
|
+
this.itemId = json?.["itemId"] ?? uuidv1();
|
|
4
5
|
this.businessId = json?.["businessId"];
|
|
5
6
|
this.itemName = json?.["name"];
|
|
6
7
|
this.brandName = json?.["brandName"];
|
|
@@ -11,11 +12,5 @@ export class OrderedItems {
|
|
|
11
12
|
this.discountedPrice = json?.["price"]?.["discountedPrice"];
|
|
12
13
|
this.taxAfterDiscount = json?.["taxAfterDiscount"];
|
|
13
14
|
}
|
|
14
|
-
set setQuantity(quantity) {
|
|
15
|
-
this.quantity = quantity;
|
|
16
|
-
}
|
|
17
|
-
get getQuantity() { return this.quantity; }
|
|
18
|
-
get getItemId() { return this.itemId; }
|
|
19
|
-
get getPrice() { return this.price; }
|
|
20
15
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJlZEl0ZW1zLm1vZGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxNQUFNLE9BQU8sWUFBWTtJQVlyQixZQUFZLElBQTBCO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHYxIGFzIHV1aWR2MSB9IGZyb20gJ3V1aWQnO1xyXG5leHBvcnQgY2xhc3MgT3JkZXJlZEl0ZW1zIHtcclxuICAgIGl0ZW1JZDogc3RyaW5nO1xyXG4gICAgYnVzaW5lc3NJZDogc3RyaW5nO1xyXG4gICAgaXRlbU5hbWU6IHN0cmluZztcclxuICAgIGJyYW5kTmFtZTogc3RyaW5nO1xyXG4gICAgaW1nVXJsOiBzdHJpbmc7XHJcbiAgICBwcmljZTogbnVtYmVyO1xyXG4gICAgaXRlbVRheDogbnVtYmVyO1xyXG4gICAgcXVhbnRpdHk6IG51bWJlcjtcclxuICAgIGRpc2NvdW50ZWRQcmljZTogbnVtYmVyO1xyXG4gICAgdGF4QWZ0ZXJEaXNjb3VudDogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGpzb24/Ontba2V5OiBzdHJpbmddOiBhbnl9KSB7XHJcbiAgICAgICAgdGhpcy5pdGVtSWQgPSBqc29uPy5bXCJpdGVtSWRcIl0gPz8gdXVpZHYxKCk7XHJcbiAgICAgICAgdGhpcy5idXNpbmVzc0lkID0ganNvbj8uW1wiYnVzaW5lc3NJZFwiXTtcclxuICAgICAgICB0aGlzLml0ZW1OYW1lID0ganNvbj8uW1wibmFtZVwiXTtcclxuICAgICAgICB0aGlzLmJyYW5kTmFtZSA9IGpzb24/LltcImJyYW5kTmFtZVwiXTtcclxuICAgICAgICB0aGlzLmltZ1VybCA9IGpzb24/LltcIml0ZW1JbWFnZXNcIl0/LlswXT8uW1wiaW1nVXJsXCJdO1xyXG4gICAgICAgIHRoaXMucHJpY2UgPSBqc29uPy5bXCJwcmljZVwiXT8uW1widmFsdWVcIl07XHJcbiAgICAgICAgdGhpcy5pdGVtVGF4ID0ganNvbj8uW1wicHJpY2VcIl0/LltcInRheEFtb3VudFwiXTtcclxuICAgICAgICB0aGlzLnF1YW50aXR5ID0ganNvbj8uW1wicXVhbnRpdHlcIl07XHJcbiAgICAgICAgdGhpcy5kaXNjb3VudGVkUHJpY2UgPSBqc29uPy5bXCJwcmljZVwiXT8uW1wiZGlzY291bnRlZFByaWNlXCJdO1xyXG4gICAgICAgIHRoaXMudGF4QWZ0ZXJEaXNjb3VudCA9IGpzb24/LltcInRheEFmdGVyRGlzY291bnRcIl07XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -7,6 +7,7 @@ export class Cart {
|
|
|
7
7
|
this.platform = json?.["platform"];
|
|
8
8
|
this.locationDetails = json?.["locationDetails"];
|
|
9
9
|
this.userDetails = json?.["userDetails"];
|
|
10
|
+
this.totalAmount = 0;
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5tb2RhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3N0eWxlcy9jYXJ0Lm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxJQUFJO0lBVWYsWUFBWSxJQUEwQixFQUFFLE9BQXdCLElBQUk7UUFDaEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9yZGVyZWRJdGVtcyB9IGZyb20gXCIuL09yZGVyZWRJdGVtcy5tb2RhbFwiXHJcbmltcG9ydCB7IEl0ZW1WYXJpYW50IH0gZnJvbSBcIi4vcHJvZHVjdC5tb2RhbFwiXHJcblxyXG5leHBvcnQgY2xhc3MgQ2FydCB7XHJcbiAgY2FydElkOiBzdHJpbmdcclxuICBwZ09yZGVySWQ6IHN0cmluZ1xyXG4gIG9yZGVyZWRJdGVtczogT3JkZXJlZEl0ZW1zW11cclxuICBiaWxsZGV0YWlsczogQmlsbGRldGFpbHNcclxuICBwbGF0Zm9ybTogc3RyaW5nXHJcbiAgbG9jYXRpb25EZXRhaWxzOiBMb2NhdGlvbkRldGFpbHNcclxuICB1c2VyRGV0YWlsczogVXNlckRldGFpbHNcclxuICB0b3RhbEFtb3VudDogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihqc29uOiB7W2tleTogc3RyaW5nXTogYW55fSwgdHlwZTogJ01BUFBFUicgfCBudWxsID0gbnVsbCkge1xyXG4gICAgICB0aGlzLmNhcnRJZCA9IGpzb24/LltcImNhcnRJZFwiXTtcclxuICAgICAgdGhpcy5wZ09yZGVySWQgPSBqc29uPy5bXCJwZ09yZGVySWRcIl07XHJcbiAgICAgIHRoaXMub3JkZXJlZEl0ZW1zID0ganNvbj8uW1wib3JkZXJlZEl0ZW1zXCJdO1xyXG4gICAgICB0aGlzLmJpbGxkZXRhaWxzID0ganNvbj8uW1wiYmlsbGRldGFpbHNcIl07XHJcbiAgICAgIHRoaXMucGxhdGZvcm0gPSBqc29uPy5bXCJwbGF0Zm9ybVwiXTtcclxuICAgICAgdGhpcy5sb2NhdGlvbkRldGFpbHMgPSBqc29uPy5bXCJsb2NhdGlvbkRldGFpbHNcIl07XHJcbiAgICAgIHRoaXMudXNlckRldGFpbHMgPSBqc29uPy5bXCJ1c2VyRGV0YWlsc1wiXTtcclxuICAgICAgdGhpcy50b3RhbEFtb3VudCA9IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBleHBvcnQgaW50ZXJmYWNlIE9yZGVyZWRJdGVtIHtcclxuLy8gICBpdGVtSWQ6IHN0cmluZ1xyXG4vLyAgIGJ1c2luZXNzSWQ6IHN0cmluZ1xyXG4vLyAgIGl0ZW1OYW1lOiBzdHJpbmdcclxuLy8gICBicmFuZE5hbWU6IHN0cmluZ1xyXG4vLyAgIGltZ1VybDogc3RyaW5nXHJcbi8vICAgcHJpY2U6IG51bWJlclxyXG4vLyAgIGl0ZW1UYXg6IG51bWJlclxyXG4vLyAgIHF1YW50aXR5OiBudW1iZXJcclxuLy8gICBjYW5jZWxsZWRRdWFudGl0eTogbnVtYmVyXHJcbi8vICAgZGlzY291bnRlZFByaWNlOiBudW1iZXJcclxuLy8gICB0YXhBZnRlckRpc2NvdW50OiBudW1iZXJcclxuLy8gICBpdGVtVmFyaWFudDogSXRlbVZhcmlhbnRcclxuLy8gICBvcmRlcmVkSXRlbVN0YXR1czogc3RyaW5nXHJcbi8vICAgaXRlbURpc3RyaWJ1dG9yVHlwZTogc3RyaW5nXHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydCBpbnRlcmZhY2UgSXRlbVZhcmlhbnQge1xyXG4vLyAgIHZhcmlhbnRJZDogc3RyaW5nXHJcbi8vICAgaXRlbUlkOiBzdHJpbmdcclxuLy8gICBwcm9wZXJ0aWVzOiBhbnlcclxuLy8gICBpdGVtVmFyaWFudFByaWNlOiBJdGVtVmFyaWFudFByaWNlXHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydCBpbnRlcmZhY2UgSXRlbVZhcmlhbnRQcmljZSB7XHJcbi8vICAgY3VycmVuY3k6IHN0cmluZ1xyXG4vLyAgIHZhbHVlOiBudW1iZXJcclxuLy8gICBlc3RpbWF0ZWRWYWx1ZTogbnVtYmVyXHJcbi8vICAgY29tcHV0ZWRWYWx1ZTogbnVtYmVyXHJcbi8vICAgbGlzdGVkVmFsdWU6IG51bWJlclxyXG4vLyAgIG9mZmVyZWRWYWx1ZTogbnVtYmVyXHJcbi8vICAgbWluaW11bVZhbHVlOiBudW1iZXJcclxuLy8gICBtYXhpbXVtVmFsdWU6IG51bWJlclxyXG4vLyAgIHB1cmNoYXNlUHJpY2U6IG51bWJlclxyXG4vLyAgIHdob2xlU2FsZVByaWNlOiBudW1iZXJcclxuLy8gICBtYXhXaG9sZVNhbGVMaW1pdDogbnVtYmVyXHJcbi8vICAgbWFyZ2luOiBudW1iZXJcclxuLy8gICBwcm9maXQ6IG51bWJlclxyXG4vLyAgIGRpc2NvdW50ZWRQcmljZTogbnVtYmVyXHJcbi8vICAgdGF4UmVmOiBUYXhSZWZcclxuLy8gICB0YXhBbW91bnQ6IG51bWJlclxyXG4vLyAgIHNlbGxpbmdQcmljZTogbnVtYmVyXHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydCBpbnRlcmZhY2UgVGF4UmVmIHtcclxuLy8gICB0YXhJZDogc3RyaW5nXHJcbi8vICAgdGF4UGVyY2VudDogbnVtYmVyXHJcbi8vIH1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmlsbGRldGFpbHMge1xyXG4gIHRvdGFsTmV0VmFsdWU6IG51bWJlclxyXG4gIHRvdGFsR3Jvc3NWYWx1ZTogbnVtYmVyXHJcbiAgdG90YWxUYXg6IG51bWJlclxyXG4gIHRvdGFsT2ZmZXJlZFZhbHVlOiBudW1iZXJcclxuICBjZ3N0VmFsdWU6IG51bWJlclxyXG4gIHNnc3RWYWx1ZTogbnVtYmVyXHJcbiAgaWdzdFZhbHVlOiBudW1iZXJcclxuICBkZWxpdmVyeUNoYXJnZXM6IG51bWJlclxyXG4gIGNvdXBvbklkOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbkRldGFpbHMge1xyXG4gIGNvdW50cnlJZDogc3RyaW5nXHJcbiAgY2l0eUlkOiBzdHJpbmdcclxuICBzdGF0ZUlkOiBzdHJpbmdcclxuICBsb2NhbGl0eUlkOiBzdHJpbmdcclxuICBjb3VudHJ5TmFtZTogc3RyaW5nXHJcbiAgY2l0eU5hbWU6IHN0cmluZ1xyXG4gIGxvY2FsaXR5TmFtZTogc3RyaW5nXHJcbiAgc3RhdGVOYW1lOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVc2VyRGV0YWlscyB7XHJcbiAgaWQ6IHN0cmluZ1xyXG4gIHVzZXJOYW1lOiBzdHJpbmdcclxuICBtb2JpbGU6IHN0cmluZ1xyXG4gIGVtYWlsOiBzdHJpbmdcclxuICBwcm9maWxlUGljOiBzdHJpbmdcclxuICBhZGRyZXNzOiBEZWxpdmVyeUFkZHJlc3NcclxuICBnZW5kZXI6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERlbGl2ZXJ5QWRkcmVzcyB7XHJcbiAgY291bnRyeU5hbWU6IHN0cmluZ1xyXG4gIHN0YXRlTmFtZTogc3RyaW5nXHJcbiAgY2l0eU5hbWU6IHN0cmluZ1xyXG4gIGxvY2FsaXR5TmFtZTogc3RyaW5nXHJcbiAgYWRkcmVzc0xpbmUxOiBzdHJpbmdcclxuICBhZGRyZXNzTGluZTI6IHN0cmluZ1xyXG4gIGxhbmRtYXJrOiBzdHJpbmdcclxuICB6aXBDb2RlOiBzdHJpbmdcclxuICBnZW9sb2NhdGlvbjogR2VvbG9jYXRpb25cclxuICBzdGF0ZUNvZGU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdlb2xvY2F0aW9uIHtcclxuICBsYXRpdHVkZTogbnVtYmVyXHJcbiAgbG9uZ2l0dWRlOiBudW1iZXJcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export class User {
|
|
2
|
+
constructor(json) {
|
|
3
|
+
this.userId = json?.['userId'] ?? "";
|
|
4
|
+
this.businessId = json?.['businessId'] ?? "";
|
|
5
|
+
this.gender = json?.['gender'] ?? "";
|
|
6
|
+
this.profilePic = json?.['profilePic'] ?? "";
|
|
7
|
+
this.contact = json?.['contact'];
|
|
8
|
+
this.addressDetailsList = json?.['addressDetailsList'];
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3N0eWxlcy91c2VyLm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxJQUFJO0lBUWIsWUFBWSxJQUE4QjtRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBVyxJQUFJLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBdUIsQ0FBQztRQUN2RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxFQUFFLENBQUMsb0JBQW9CLENBQWdDLENBQUM7SUFDMUYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVzZXIge1xyXG4gICAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xyXG4gICAgcHVibGljIGJ1c2luZXNzSWQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBnZW5kZXI6IEdFTkRFUjtcclxuICAgIHB1YmxpYyBwcm9maWxlUGljOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgY29udGFjdDogQ29udGFjdDtcclxuICAgIHB1YmxpYyBhZGRyZXNzRGV0YWlsc0xpc3Q6IEFkZHJlc3NEZXRhaWxzW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoanNvbj86IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KSB7XHJcbiAgICAgICAgdGhpcy51c2VySWQgPSBqc29uPy5bJ3VzZXJJZCddID8/IFwiXCI7XHJcbiAgICAgICAgdGhpcy5idXNpbmVzc0lkID0ganNvbj8uWydidXNpbmVzc0lkJ10gPz8gXCJcIjtcclxuICAgICAgICB0aGlzLmdlbmRlciA9IGpzb24/LlsnZ2VuZGVyJ10gYXMgR0VOREVSID8/IFwiXCI7XHJcbiAgICAgICAgdGhpcy5wcm9maWxlUGljID0ganNvbj8uWydwcm9maWxlUGljJ10gPz8gXCJcIjtcclxuICAgICAgICB0aGlzLmNvbnRhY3QgPSBqc29uPy5bJ2NvbnRhY3QnXSBhcyB1bmtub3duIGFzIENvbnRhY3Q7XHJcbiAgICAgICAgdGhpcy5hZGRyZXNzRGV0YWlsc0xpc3QgPSBqc29uPy5bJ2FkZHJlc3NEZXRhaWxzTGlzdCddIGFzIHVua25vd24gYXMgQWRkcmVzc0RldGFpbHNbXTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhY3Qge1xyXG4gICAgY291bnRyeUNvZGU6IHN0cmluZztcclxuICAgIGVtYWlsOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBtb2JpbGU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NEZXRhaWxzIHtcclxuICAgIHJlY2VpdmVyTmFtZTogc3RyaW5nO1xyXG4gICAgcmVjZWl2ZXJQaG9uZTogc3RyaW5nO1xyXG4gICAgcmVjZWl2ZXJFbWFpbDogc3RyaW5nO1xyXG4gICAgY291bnRyeU5hbWU6IHN0cmluZztcclxuICAgIHN0YXRlTmFtZTogc3RyaW5nO1xyXG4gICAgY2l0eU5hbWU6IHN0cmluZztcclxuICAgIGxvY2FsaXR5TmFtZTogc3RyaW5nO1xyXG4gICAgYWRkcmVzc0xpbmUxOiBzdHJpbmc7XHJcbiAgICBsYW5kbWFyazogc3RyaW5nO1xyXG4gICAgemlwQ29kZTogc3RyaW5nO1xyXG4gICAgYWRkcmVzc1R5cGU6IEFERFJFU1NfVFlQRTtcclxuICAgIGdlb2xvY2F0aW9uOiBHZW9sb2NhdGlvbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEdlb2xvY2F0aW9uIHtcclxuICAgIGxhdGl0dWRlOiBudW1iZXI7XHJcbiAgICBsb25naXR1ZGU6IG51bWJlclxyXG59XHJcbmRlY2xhcmUgdHlwZSBBRERSRVNTX1RZUEUgPSBcIkhPTUVcIiB8IFwiV09SS1wiIHwgXCJPVEhFUlwiO1xyXG5kZWNsYXJlIHR5cGUgR0VOREVSID0gXCJNQUxFXCIgfCBcIkZFTUFMRVwiIHwgXCJPVEhFUlNcIjsiXX0=
|
|
@@ -1,79 +1,88 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import UserCart from "../ecommerce/json/user-cart.json";
|
|
3
3
|
import UserFavourites from "../ecommerce/json/user-favourite.json";
|
|
4
|
-
import UserDetails from "../ecommerce/json/user-details.json";
|
|
5
4
|
import { OrderedItems } from '../ecommerce/styles/OrderedItems.modal';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
import * as i1 from "./rest.service";
|
|
7
|
+
import * as i2 from "./storage.service";
|
|
8
8
|
export class CartService {
|
|
9
|
-
constructor(restService) {
|
|
9
|
+
constructor(restService, storageService) {
|
|
10
10
|
this.restService = restService;
|
|
11
|
+
this.storageService = storageService;
|
|
11
12
|
}
|
|
12
13
|
addItemToCart(product) {
|
|
13
|
-
this.
|
|
14
|
+
const orderedItem = this.objectMapper(product);
|
|
15
|
+
let productIdx = -1;
|
|
16
|
+
UserCart.orderedItems.forEach((item, idx) => productIdx = (item.itemId == product.itemId) ? idx : -1);
|
|
17
|
+
if (productIdx >= 0) {
|
|
18
|
+
UserCart.orderedItems[productIdx].quantity = product.quantity;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
UserCart.orderedItems.push(product);
|
|
22
|
+
}
|
|
23
|
+
console.log(UserCart);
|
|
24
|
+
this.storageService.addProductToCart(orderedItem);
|
|
14
25
|
}
|
|
15
26
|
addItemToFavourite(product) {
|
|
16
|
-
this.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
const orderedItem = this.objectMapper(product);
|
|
28
|
+
let productIdx = -1;
|
|
29
|
+
UserFavourites.orderedItems.forEach((item, idx) => productIdx = (item.itemId == product.itemId) ? idx : -1);
|
|
30
|
+
if (productIdx >= 0) {
|
|
31
|
+
UserFavourites.orderedItems[productIdx].quantity = product.quantity;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
UserFavourites.orderedItems.push(product);
|
|
35
|
+
}
|
|
36
|
+
this.storageService.addProductToWishlist(orderedItem);
|
|
24
37
|
}
|
|
25
|
-
|
|
26
|
-
const index = this.getItemIdxJSON(product.
|
|
38
|
+
removeItemFromFavourite(product) {
|
|
39
|
+
const index = this.getItemIdxJSON(product.itemId, 'FAVOURITE');
|
|
27
40
|
if (index >= 0) {
|
|
28
41
|
const item = UserFavourites.orderedItems.splice(index, 1)[0];
|
|
29
42
|
UserCart.orderedItems.push(item);
|
|
43
|
+
this.storageService.removeProductFromWishlist(product.itemId);
|
|
30
44
|
}
|
|
31
45
|
}
|
|
32
|
-
|
|
33
|
-
const index = this.getItemIdxJSON(product.
|
|
46
|
+
removeItemFromCart(product) {
|
|
47
|
+
const index = this.getItemIdxJSON(product.itemId, 'CART');
|
|
34
48
|
if (index >= 0) {
|
|
35
49
|
const item = UserCart.orderedItems.splice(index, 1)[0];
|
|
36
|
-
|
|
50
|
+
UserCart.orderedItems.push(item);
|
|
51
|
+
this.storageService.removeProductFromCart(product.itemId);
|
|
37
52
|
}
|
|
38
53
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
// public convertFavToCart(product: OrderedItems) {
|
|
55
|
+
// const index = this.getItemIdxJSON(product.getItemId, UserFavourites);
|
|
56
|
+
// if (index >= 0) {
|
|
57
|
+
// const item = UserFavourites.orderedItems.splice(index, 1)[0];
|
|
58
|
+
// UserCart.orderedItems.push(item as never);
|
|
59
|
+
// }
|
|
60
|
+
// }
|
|
61
|
+
// public convertCartToFav(product: OrderedItems) {
|
|
62
|
+
// const index = this.getItemIdxJSON(product.getItemId, UserCart);
|
|
63
|
+
// if (index >= 0) {
|
|
64
|
+
// const item = UserCart.orderedItems.splice(index, 1)[0];
|
|
65
|
+
// UserFavourites.orderedItems.push(item as never);
|
|
66
|
+
// }
|
|
67
|
+
// }
|
|
68
|
+
storeItemToDB(product, type) {
|
|
69
|
+
if (type == "CART") {
|
|
70
|
+
const orderProduct = this.objectMapper(this.storageService.getProductFromCart(product.itemId));
|
|
71
|
+
if (orderProduct) {
|
|
72
|
+
this.storageService.addProductToCart(orderProduct);
|
|
73
|
+
UserCart.orderedItems.push(orderProduct);
|
|
51
74
|
}
|
|
52
|
-
|
|
53
|
-
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
const orderProduct = this.objectMapper(this.storageService.getProductFromWishlist(product.itemId));
|
|
78
|
+
if (orderProduct) {
|
|
79
|
+
this.storageService.addProductToWishlist(orderProduct);
|
|
80
|
+
UserFavourites.orderedItems.push(orderProduct);
|
|
54
81
|
}
|
|
55
|
-
json.billdetails.totalNetValue = 0;
|
|
56
|
-
json.billdetails.totalTax = 0;
|
|
57
|
-
json.orderedItems.forEach((item) => json.billdetails.totalNetValue += (item.price * item.quantity));
|
|
58
|
-
json.orderedItems.forEach((item) => json.billdetails.totalTax += (item.itemTax));
|
|
59
|
-
json.totalAmount = json.billdetails.totalTax + json.billdetails.totalNetValue;
|
|
60
82
|
}
|
|
61
83
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
UserCart.orderedItems.forEach((p, idx) => {
|
|
65
|
-
if (p.itemId == itemId)
|
|
66
|
-
productIndex = idx;
|
|
67
|
-
});
|
|
68
|
-
if (productIndex == -1)
|
|
69
|
-
return 0;
|
|
70
|
-
else
|
|
71
|
-
return UserCart.orderedItems[productIndex].getQuantity;
|
|
72
|
-
}
|
|
73
|
-
getIsItemPresent(itemId, type) {
|
|
74
|
-
return type == "FAVOURITE" ? this.getItemIdxJSON(itemId, UserFavourites) >= 0 : this.getItemIdxJSON(itemId, UserCart) >= 0;
|
|
75
|
-
}
|
|
76
|
-
getItemIdxJSON(itemId, json) {
|
|
84
|
+
getItemIdxJSON(itemId, type) {
|
|
85
|
+
const json = type == "FAVOURITE" ? UserFavourites : UserCart;
|
|
77
86
|
let productIndex = -1;
|
|
78
87
|
json.orderedItems.forEach((p, idx) => {
|
|
79
88
|
if (p.itemId == itemId)
|
|
@@ -81,29 +90,37 @@ export class CartService {
|
|
|
81
90
|
});
|
|
82
91
|
return productIndex;
|
|
83
92
|
}
|
|
93
|
+
getItemByIdx(itemId, type) {
|
|
94
|
+
const productIdx = this.getItemIdxJSON(itemId, type);
|
|
95
|
+
const json = (type == "FAVOURITE") ? UserFavourites : UserCart;
|
|
96
|
+
if (productIdx >= 0)
|
|
97
|
+
return json.orderedItems[productIdx];
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
84
100
|
objectMapper(product) {
|
|
101
|
+
debugger;
|
|
85
102
|
return new OrderedItems(product);
|
|
86
103
|
}
|
|
87
|
-
|
|
88
|
-
this.restService.addItemToDB(UserCart).subscribe((response)
|
|
89
|
-
this.restService.addItemToDB(UserFavourites).subscribe((response)
|
|
104
|
+
storeDataToServer() {
|
|
105
|
+
// this.restService.addItemToDB(UserCart).subscribe((response)=> {});
|
|
106
|
+
// this.restService.addItemToDB(UserFavourites).subscribe((response)=> {});
|
|
90
107
|
}
|
|
91
108
|
storeDBToJSON() {
|
|
92
|
-
const userId = UserDetails.user?.userId;
|
|
93
|
-
if (!userId)
|
|
94
|
-
|
|
95
|
-
this.restService.getUserItems(userId, "CART").subscribe((response)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
})
|
|
100
|
-
this.restService.getUserItems(userId, "WISHLIST").subscribe((response)
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
})
|
|
109
|
+
// const userId = UserDetails.user?.userId;
|
|
110
|
+
// if (!userId)
|
|
111
|
+
// return;
|
|
112
|
+
// this.restService.getUserItems(userId, "CART").subscribe((response: any)=> {
|
|
113
|
+
// UserCart.orderedItems = response.data.orderedItems;
|
|
114
|
+
// UserCart.billdetails = response.data.billdetails;
|
|
115
|
+
// UserCart.totalAmount = response.totalAmount;
|
|
116
|
+
// })
|
|
117
|
+
// this.restService.getUserItems(userId, "WISHLIST").subscribe((response: any)=> {
|
|
118
|
+
// UserFavourites.orderedItems = response.data.orderedItems;
|
|
119
|
+
// UserFavourites.billdetails = response.data.billdetails;
|
|
120
|
+
// UserFavourites.totalAmount = response.totalAmount;
|
|
121
|
+
// })
|
|
105
122
|
}
|
|
106
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
123
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartService, deps: [{ token: i1.RestService }, { token: i2.StorageServiceService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
107
124
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartService, providedIn: 'root' }); }
|
|
108
125
|
}
|
|
109
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartService, decorators: [{
|
|
@@ -111,5 +128,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
|
111
128
|
args: [{
|
|
112
129
|
providedIn: 'root',
|
|
113
130
|
}]
|
|
114
|
-
}], ctorParameters: () => [{ type: i1.RestService }] });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxRQUFRLE1BQU0sa0NBQWtDLENBQUM7QUFDeEQsT0FBTyxjQUFjLE1BQU0sdUNBQXVDLENBQUM7QUFDbkUsT0FBTyxXQUFXLE1BQU0scUNBQXFDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFPdEUsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDbUIsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDeEMsQ0FBQztJQUVHLGFBQWEsQ0FBQyxPQUFnQjtRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNNLGtCQUFrQixDQUFDLE9BQWdCO1FBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ00scUJBQXFCLENBQUMsT0FBZ0I7UUFDM0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLElBQUksS0FBSyxJQUFJLENBQUM7WUFDWixjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ00s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R0FBRSxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ00sYUFBYTtRQUNsQixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTTtZQUNULE9BQU87UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFDLEVBQUU7WUFDdkUsUUFBUSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUNuRCxRQUFRLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2pELFFBQVEsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUMsRUFBRTtZQUMzRSxjQUFjLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3pELGNBQWMsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDdkQsY0FBYyxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0F4R1UsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IFVzZXJDYXJ0IGZyb20gXCIuLi9lY29tbWVyY2UvanNvbi91c2VyLWNhcnQuanNvblwiO1xyXG5pbXBvcnQgVXNlckZhdm91cml0ZXMgZnJvbSBcIi4uL2Vjb21tZXJjZS9qc29uL3VzZXItZmF2b3VyaXRlLmpzb25cIjtcclxuaW1wb3J0IFVzZXJEZXRhaWxzIGZyb20gXCIuLi9lY29tbWVyY2UvanNvbi91c2VyLWRldGFpbHMuanNvblwiO1xyXG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XHJcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL3Byb2R1Y3QubW9kYWwnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4vcmVzdC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJ0U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGFkZEl0ZW1Ub0NhcnQocHJvZHVjdDogUHJvZHVjdCkge1xyXG4gICAgdGhpcy5zdG9yZUl0ZW1Ub0pTT04oVXNlckNhcnQsIHByb2R1Y3QsIFwiQ0FSVFwiKTtcclxuICB9XHJcbiAgcHVibGljIGFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICB0aGlzLnN0b3JlSXRlbVRvSlNPTihVc2VyRmF2b3VyaXRlcywgcHJvZHVjdCwgXCJXSVNITElTVFwiKTsgXHJcbiAgfVxyXG4gIHB1YmxpYyByZW1vdmVJdGVtVG9GYXZvdXJpdGUocHJvZHVjdDogUHJvZHVjdCkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEl0ZW1JZHhKU09OKHByb2R1Y3QuaXRlbUlkLCBVc2VyRmF2b3VyaXRlcyk7XHJcbiAgICBjb25zb2xlLmxvZyhcImluZGV4OiBcIixpbmRleCk7XHJcbiAgICBpZiAoaW5kZXggPj0gMClcclxuICAgICAgVXNlckZhdm91cml0ZXMub3JkZXJlZEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICBjb25zb2xlLmxvZyhVc2VyRmF2b3VyaXRlcyk7XHJcbiAgfVxyXG4gIHB1YmxpYyBjb252ZXJ0RmF2VG9DYXJ0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEl0ZW1JZHhKU09OKHByb2R1Y3QuZ2V0SXRlbUlkLCBVc2VyRmF2b3VyaXRlcyk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICBjb25zdCBpdGVtID0gVXNlckZhdm91cml0ZXMub3JkZXJlZEl0ZW1zLnNwbGljZShpbmRleCwgMSlbMF07XHJcbiAgICAgIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcy5wdXNoKGl0ZW0gYXMgbmV2ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgY29udmVydENhcnRUb0Zhdihwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJdGVtSWR4SlNPTihwcm9kdWN0LmdldEl0ZW1JZCwgVXNlckNhcnQpO1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgY29uc3QgaXRlbSA9IFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpWzBdO1xyXG4gICAgICBVc2VyRmF2b3VyaXRlcy5vcmRlcmVkSXRlbXMucHVzaChpdGVtIGFzIG5ldmVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9yZUl0ZW1Ub0pTT04oanNvbjogYW55LCBwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQ0FSVCcgfCAnV0lTSExJU1QnKSB7XHJcbiAgICBjb25zdCBvcmRlclByb2R1Y3Q6IE9yZGVyZWRJdGVtcyA9IHRoaXMub2JqZWN0TWFwcGVyKHByb2R1Y3QpO1xyXG5cclxuICAgIGxldCBwcm9kdWN0SW5kZXg6IG51bWJlciA9IC0xO1xyXG4gICAganNvbi5vcmRlcmVkSXRlbXMuZm9yRWFjaCgocDogYW55LCBpZHg6IG51bWJlcik9PiB7XHJcbiAgICAgICAgaWYgKHAuaXRlbUlkID09IHByb2R1Y3QuaXRlbUlkKVxyXG4gICAgICAgICAgICBwcm9kdWN0SW5kZXggPSBpZHg7XHJcbiAgICB9KTtcclxuICAgIGlmIChwcm9kdWN0SW5kZXggPT0gLTEpXHJcbiAgICAgIGpzb24ub3JkZXJlZEl0ZW1zLnB1c2gob3JkZXJQcm9kdWN0IGFzIG5ldmVyKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChwcm9kdWN0LnF1YW50aXR5ID4gMCkge1xyXG4gICAgICAgICAganNvbi5vcmRlcmVkSXRlbXNbcHJvZHVjdEluZGV4XS5xdWFudGl0eSA9IG9yZGVyUHJvZHVjdC5nZXRRdWFudGl0eTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBqc29uLm9yZGVyZWRJdGVtcy5zcGxpY2UocHJvZHVjdEluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAganNvbi5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gMDtcclxuICAgICAgICBqc29uLmJpbGxkZXRhaWxzLnRvdGFsVGF4ID0gMDtcclxuICAgICAgICBqc29uLm9yZGVyZWRJdGVtcy5mb3JFYWNoKChpdGVtOiBhbnkpPT4ganNvbi5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlICs9IChpdGVtLnByaWNlICogaXRlbS5xdWFudGl0eSkpO1xyXG4gICAgICAgIGpzb24ub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSk9PiBqc29uLmJpbGxkZXRhaWxzLnRvdGFsVGF4ICs9IChpdGVtLml0ZW1UYXgpKTtcclxuICAgICAgICBqc29uLnRvdGFsQW1vdW50ID0ganNvbi5iaWxsZGV0YWlscy50b3RhbFRheCArIGpzb24uYmlsbGRldGFpbHMudG90YWxOZXRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJdGVtUXVhbnRpdHkoaXRlbUlkOiBzdHJpbmcpIHtcclxuICAgIGxldCBwcm9kdWN0SW5kZXg6IG51bWJlciA9IC0xO1xyXG4gICAgVXNlckNhcnQub3JkZXJlZEl0ZW1zLmZvckVhY2goKHA6IGFueSwgaWR4OiBudW1iZXIpPT4ge1xyXG4gICAgICAgIGlmIChwLml0ZW1JZCA9PSBpdGVtSWQpXHJcbiAgICAgICAgICAgIHByb2R1Y3RJbmRleCA9IGlkeDtcclxuICAgIH0pO1xyXG4gICAgaWYgKHByb2R1Y3RJbmRleCA9PSAtMSkgXHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgZWxzZSBcclxuICAgICAgcmV0dXJuIChVc2VyQ2FydC5vcmRlcmVkSXRlbXNbcHJvZHVjdEluZGV4XSBhcyBuZXZlciBhcyBPcmRlcmVkSXRlbXMpLmdldFF1YW50aXR5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldElzSXRlbVByZXNlbnQoaXRlbUlkOiBzdHJpbmcsIHR5cGU6ICdGQVZPVVJJVEUnfCdDQVJUJykge1xyXG4gICAgcmV0dXJuIHR5cGUgPT0gXCJGQVZPVVJJVEVcIiA/IHRoaXMuZ2V0SXRlbUlkeEpTT04oaXRlbUlkLCBVc2VyRmF2b3VyaXRlcykgPj0gMCA6IHRoaXMuZ2V0SXRlbUlkeEpTT04oaXRlbUlkLCBVc2VyQ2FydCkgPj0gMDtcclxuICB9XHJcbiAgcHJpdmF0ZSBnZXRJdGVtSWR4SlNPTihpdGVtSWQ6IHN0cmluZywganNvbjogYW55KSB7XHJcbiAgICBsZXQgcHJvZHVjdEluZGV4OiBudW1iZXIgPSAtMTtcclxuICAgIGpzb24ub3JkZXJlZEl0ZW1zLmZvckVhY2goKHA6IGFueSwgaWR4OiBudW1iZXIpPT4ge1xyXG4gICAgICAgIGlmIChwLml0ZW1JZCA9PSBpdGVtSWQpXHJcbiAgICAgICAgICAgIHByb2R1Y3RJbmRleCA9IGlkeDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHByb2R1Y3RJbmRleDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb2JqZWN0TWFwcGVyKHByb2R1Y3Q6IFByb2R1Y3QpOiBPcmRlcmVkSXRlbXMge1xyXG4gICAgcmV0dXJuIG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RvcmVKU09OVG9EQigpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIoVXNlckNhcnQpLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge30pO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQihVc2VyRmF2b3VyaXRlcykuc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7fSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBzdG9yZURCVG9KU09OKCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gVXNlckRldGFpbHMudXNlcj8udXNlcklkO1xyXG4gICAgaWYgKCF1c2VySWQpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0VXNlckl0ZW1zKHVzZXJJZCwgXCJDQVJUXCIpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcyA9IHJlc3BvbnNlLmRhdGEub3JkZXJlZEl0ZW1zO1xyXG4gICAgICBVc2VyQ2FydC5iaWxsZGV0YWlscyA9IHJlc3BvbnNlLmRhdGEuYmlsbGRldGFpbHM7XHJcbiAgICAgIFVzZXJDYXJ0LnRvdGFsQW1vdW50ID0gcmVzcG9uc2UudG90YWxBbW91bnQ7XHJcbiAgICB9KVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRVc2VySXRlbXModXNlcklkLCBcIldJU0hMSVNUXCIpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgIFVzZXJGYXZvdXJpdGVzLm9yZGVyZWRJdGVtcyA9IHJlc3BvbnNlLmRhdGEub3JkZXJlZEl0ZW1zO1xyXG4gICAgICBVc2VyRmF2b3VyaXRlcy5iaWxsZGV0YWlscyA9IHJlc3BvbnNlLmRhdGEuYmlsbGRldGFpbHM7XHJcbiAgICAgIFVzZXJGYXZvdXJpdGVzLnRvdGFsQW1vdW50ID0gcmVzcG9uc2UudG90YWxBbW91bnQ7XHJcbiAgICB9KVxyXG4gIH1cclxufSJdfQ==
|
|
131
|
+
}], ctorParameters: () => [{ type: i1.RestService }, { type: i2.StorageServiceService }] });
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxRQUFRLE1BQU0sa0NBQWtDLENBQUM7QUFDeEQsT0FBTyxjQUFjLE1BQU0sdUNBQXVDLENBQUM7QUFFbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBUXRFLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQ21CLFdBQXdCLEVBQ3hCLGNBQXFDO1FBRHJDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtJQUNyRCxDQUFDO0lBRUcsYUFBYSxDQUFDLE9BQWdCO1FBRW5DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0MsSUFBSSxVQUFVLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDNUIsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFrQixFQUFFLEdBQUcsRUFBQyxFQUFFLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuSCxJQUFJLFVBQVUsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuQixRQUFRLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBa0IsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNsRixDQUFDO2FBQU0sQ0FBQztZQUNOLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQWdCLENBQUMsQ0FB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LENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVPLFlBQVksQ0FBQyxPQUFnQjtRQUNuQyxRQUFRLENBQUE7UUFDUixPQUFPLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxpQkFBaUI7UUFFdEIscUVBQXFFO1FBQ3JFLDJFQUEyRTtJQUM3RSxDQUFDO0lBQ00sYUFBYTtRQUNsQiwyQ0FBMkM7UUFDM0MsZUFBZTtRQUNmLFlBQVk7UUFDWiw4RUFBOEU7UUFDOUUsd0RBQXdEO1FBQ3hELHNEQUFzRDtRQUN0RCxpREFBaUQ7UUFDakQsS0FBSztRQUNMLGtGQUFrRjtRQUNsRiw4REFBOEQ7UUFDOUQsNERBQTREO1FBQzVELHVEQUF1RDtRQUN2RCxLQUFLO0lBQ1AsQ0FBQzs4R0E1SFUsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IFVzZXJDYXJ0IGZyb20gXCIuLi9lY29tbWVyY2UvanNvbi91c2VyLWNhcnQuanNvblwiO1xyXG5pbXBvcnQgVXNlckZhdm91cml0ZXMgZnJvbSBcIi4uL2Vjb21tZXJjZS9qc29uL3VzZXItZmF2b3VyaXRlLmpzb25cIjtcclxuaW1wb3J0IFVzZXJEZXRhaWxzIGZyb20gXCIuLi9lY29tbWVyY2UvanNvbi91c2VyLWRldGFpbHMuanNvblwiO1xyXG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XHJcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL3Byb2R1Y3QubW9kYWwnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4vcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhcnRTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgYWRkSXRlbVRvQ2FydChwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICBcclxuICAgIGNvbnN0IG9yZGVyZWRJdGVtID0gdGhpcy5vYmplY3RNYXBwZXIocHJvZHVjdCk7XHJcblxyXG4gICAgbGV0IHByb2R1Y3RJZHg6IG51bWJlciA9IC0xO1xyXG4gICAgVXNlckNhcnQub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcywgaWR4KT0+IHByb2R1Y3RJZHggPSAoaXRlbS5pdGVtSWQgPT0gcHJvZHVjdC5pdGVtSWQpID8gaWR4IDogLTEpO1xyXG4gICAgaWYgKHByb2R1Y3RJZHggPj0gMCkge1xyXG4gICAgICAoVXNlckNhcnQub3JkZXJlZEl0ZW1zW3Byb2R1Y3RJZHhdIGFzIE9yZGVyZWRJdGVtcykucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgVXNlckNhcnQub3JkZXJlZEl0ZW1zLnB1c2gocHJvZHVjdCBhcyBuZXZlcik7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhVc2VyQ2FydCk7XHJcblxyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9DYXJ0KG9yZGVyZWRJdGVtKTtcclxuICB9XHJcbiAgcHVibGljIGFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICBjb25zdCBvcmRlcmVkSXRlbSA9IHRoaXMub2JqZWN0TWFwcGVyKHByb2R1Y3QpO1xyXG5cclxuICAgIGxldCBwcm9kdWN0SWR4OiBudW1iZXIgPSAtMTtcclxuICAgIFVzZXJGYXZvdXJpdGVzLm9yZGVyZWRJdGVtcy5mb3JFYWNoKChpdGVtOiBPcmRlcmVkSXRlbXMsIGlkeCk9PiBwcm9kdWN0SWR4ID0gKGl0ZW0uaXRlbUlkID09IHByb2R1Y3QuaXRlbUlkKSA/IGlkeCA6IC0xKTtcclxuICAgIGlmIChwcm9kdWN0SWR4ID49IDApIHtcclxuICAgICAgKFVzZXJGYXZvdXJpdGVzLm9yZGVyZWRJdGVtc1twcm9kdWN0SWR4XSBhcyBPcmRlcmVkSXRlbXMpLnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIFVzZXJGYXZvdXJpdGVzLm9yZGVyZWRJdGVtcy5wdXNoKHByb2R1Y3QgYXMgbmV2ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvV2lzaGxpc3Qob3JkZXJlZEl0ZW0pOyBcclxuICB9XHJcbiAgcHVibGljIHJlbW92ZUl0ZW1Gcm9tRmF2b3VyaXRlKHByb2R1Y3Q6IFByb2R1Y3QpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJdGVtSWR4SlNPTihwcm9kdWN0Lml0ZW1JZCwgJ0ZBVk9VUklURScpO1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgY29uc3QgaXRlbSA9IFVzZXJGYXZvdXJpdGVzLm9yZGVyZWRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpWzBdO1xyXG4gICAgICBVc2VyQ2FydC5vcmRlcmVkSXRlbXMucHVzaChpdGVtIGFzIG5ldmVyKTtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVQcm9kdWN0RnJvbVdpc2hsaXN0KHByb2R1Y3QuaXRlbUlkKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIHJlbW92ZUl0ZW1Gcm9tQ2FydChwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZ2V0SXRlbUlkeEpTT04ocHJvZHVjdC5pdGVtSWQsICdDQVJUJyk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICBjb25zdCBpdGVtID0gVXNlckNhcnQub3JkZXJlZEl0ZW1zLnNwbGljZShpbmRleCwgMSlbMF07XHJcbiAgICAgIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcy5wdXNoKGl0ZW0gYXMgbmV2ZXIpO1xyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZVByb2R1Y3RGcm9tQ2FydChwcm9kdWN0Lml0ZW1JZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIHB1YmxpYyBjb252ZXJ0RmF2VG9DYXJ0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gIC8vICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEl0ZW1JZHhKU09OKHByb2R1Y3QuZ2V0SXRlbUlkLCBVc2VyRmF2b3VyaXRlcyk7XHJcbiAgLy8gICBpZiAoaW5kZXggPj0gMCkge1xyXG4gIC8vICAgICBjb25zdCBpdGVtID0gVXNlckZhdm91cml0ZXMub3JkZXJlZEl0ZW1zLnNwbGljZShpbmRleCwgMSlbMF07XHJcbiAgLy8gICAgIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcy5wdXNoKGl0ZW0gYXMgbmV2ZXIpO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuICAvLyBwdWJsaWMgY29udmVydENhcnRUb0Zhdihwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuICAvLyAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJdGVtSWR4SlNPTihwcm9kdWN0LmdldEl0ZW1JZCwgVXNlckNhcnQpO1xyXG4gIC8vICAgaWYgKGluZGV4ID49IDApIHtcclxuICAvLyAgICAgY29uc3QgaXRlbSA9IFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpWzBdO1xyXG4gIC8vICAgICBVc2VyRmF2b3VyaXRlcy5vcmRlcmVkSXRlbXMucHVzaChpdGVtIGFzIG5ldmVyKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIHB1YmxpYyBzdG9yZUl0ZW1Ub0RCKHByb2R1Y3Q6IFByb2R1Y3QsIHR5cGU6ICdDQVJUJyB8ICdXSVNITElTVCcpIHtcclxuICAgIGlmICh0eXBlID09IFwiQ0FSVFwiKSB7XHJcbiAgICAgIGNvbnN0IG9yZGVyUHJvZHVjdDogT3JkZXJlZEl0ZW1zID0gdGhpcy5vYmplY3RNYXBwZXIodGhpcy5zdG9yYWdlU2VydmljZS5nZXRQcm9kdWN0RnJvbUNhcnQocHJvZHVjdC5pdGVtSWQpIGFzIHVua25vd24gYXMgUHJvZHVjdCk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAob3JkZXJQcm9kdWN0KSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9DYXJ0KG9yZGVyUHJvZHVjdCk7XHJcbiAgICAgICAgVXNlckNhcnQub3JkZXJlZEl0ZW1zLnB1c2gob3JkZXJQcm9kdWN0IGFzIG5ldmVyKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgb3JkZXJQcm9kdWN0OiBPcmRlcmVkSXRlbXMgPSB0aGlzLm9iamVjdE1hcHBlcih0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFByb2R1Y3RGcm9tV2lzaGxpc3QocHJvZHVjdC5pdGVtSWQpIGFzIHVua25vd24gYXMgUHJvZHVjdCk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAob3JkZXJQcm9kdWN0KSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9XaXNobGlzdChvcmRlclByb2R1Y3QpO1xyXG4gICAgICAgIFVzZXJGYXZvdXJpdGVzLm9yZGVyZWRJdGVtcy5wdXNoKG9yZGVyUHJvZHVjdCBhcyBuZXZlcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJdGVtSWR4SlNPTihpdGVtSWQ6IHN0cmluZywgdHlwZTogJ0ZBVk9VUklURScgfCAnQ0FSVCcpIHtcclxuICAgIGNvbnN0IGpzb24gPSB0eXBlID09IFwiRkFWT1VSSVRFXCIgPyBVc2VyRmF2b3VyaXRlcyA6IFVzZXJDYXJ0O1xyXG4gICAgbGV0IHByb2R1Y3RJbmRleDogbnVtYmVyID0gLTE7XHJcbiAgICBqc29uLm9yZGVyZWRJdGVtcy5mb3JFYWNoKChwOiBhbnksIGlkeDogbnVtYmVyKT0+IHtcclxuICAgICAgICBpZiAocC5pdGVtSWQgPT0gaXRlbUlkKVxyXG4gICAgICAgICAgICBwcm9kdWN0SW5kZXggPSBpZHg7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBwcm9kdWN0SW5kZXg7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRJdGVtQnlJZHgoaXRlbUlkOiBzdHJpbmcsIHR5cGU6ICdGQVZPVVJJVEUnIHwgJ0NBUlQnKTogT3JkZXJlZEl0ZW1zIHwgbnVsbCB7XHJcbiAgICBjb25zdCBwcm9kdWN0SWR4ID0gdGhpcy5nZXRJdGVtSWR4SlNPTihpdGVtSWQsIHR5cGUpO1xyXG4gICAgY29uc3QganNvbiA9ICh0eXBlID09IFwiRkFWT1VSSVRFXCIpID8gVXNlckZhdm91cml0ZXMgOiBVc2VyQ2FydDtcclxuICAgIGlmIChwcm9kdWN0SWR4ID49IDApXHJcbiAgICAgIHJldHVybiBqc29uLm9yZGVyZWRJdGVtc1twcm9kdWN0SWR4XTtcclxuICAgIHJldHVybiBudWxsXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9iamVjdE1hcHBlcihwcm9kdWN0OiBQcm9kdWN0KTogT3JkZXJlZEl0ZW1zIHtcclxuICAgIGRlYnVnZ2VyXHJcbiAgICByZXR1cm4gbmV3IE9yZGVyZWRJdGVtcyhwcm9kdWN0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9yZURhdGFUb1NlcnZlcigpIHtcclxuXHJcbiAgICAvLyB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKFVzZXJDYXJ0KS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHt9KTtcclxuICAgIC8vIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIoVXNlckZhdm91cml0ZXMpLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge30pO1xyXG4gIH1cclxuICBwdWJsaWMgc3RvcmVEQlRvSlNPTigpIHtcclxuICAgIC8vIGNvbnN0IHVzZXJJZCA9IFVzZXJEZXRhaWxzLnVzZXI/LnVzZXJJZDtcclxuICAgIC8vIGlmICghdXNlcklkKVxyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB0aGlzLnJlc3RTZXJ2aWNlLmdldFVzZXJJdGVtcyh1c2VySWQsIFwiQ0FSVFwiKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG4gICAgLy8gICBVc2VyQ2FydC5vcmRlcmVkSXRlbXMgPSByZXNwb25zZS5kYXRhLm9yZGVyZWRJdGVtcztcclxuICAgIC8vICAgVXNlckNhcnQuYmlsbGRldGFpbHMgPSByZXNwb25zZS5kYXRhLmJpbGxkZXRhaWxzO1xyXG4gICAgLy8gICBVc2VyQ2FydC50b3RhbEFtb3VudCA9IHJlc3BvbnNlLnRvdGFsQW1vdW50O1xyXG4gICAgLy8gfSlcclxuICAgIC8vIHRoaXMucmVzdFNlcnZpY2UuZ2V0VXNlckl0ZW1zKHVzZXJJZCwgXCJXSVNITElTVFwiKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG4gICAgLy8gICBVc2VyRmF2b3VyaXRlcy5vcmRlcmVkSXRlbXMgPSByZXNwb25zZS5kYXRhLm9yZGVyZWRJdGVtcztcclxuICAgIC8vICAgVXNlckZhdm91cml0ZXMuYmlsbGRldGFpbHMgPSByZXNwb25zZS5kYXRhLmJpbGxkZXRhaWxzO1xyXG4gICAgLy8gICBVc2VyRmF2b3VyaXRlcy50b3RhbEFtb3VudCA9IHJlc3BvbnNlLnRvdGFsQW1vdW50O1xyXG4gICAgLy8gfSlcclxuICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class StorageServiceService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.databaseName = "USER";
|
|
6
|
+
this.databaseVersion = 1;
|
|
7
|
+
this.cartCollectionName = "USER_CART";
|
|
8
|
+
this.favouriteCollectionName = "USER_FAVOURITE";
|
|
9
|
+
this.userCollectionName = "USER";
|
|
10
|
+
this.cartCollectionRef = null;
|
|
11
|
+
this.favouriteCollectionRef = null;
|
|
12
|
+
this.userCollectionRef = null;
|
|
13
|
+
this.createDataBase();
|
|
14
|
+
}
|
|
15
|
+
async createDataBase() {
|
|
16
|
+
const request = window.indexedDB.open(this.databaseName, 1);
|
|
17
|
+
request.onerror = () => { };
|
|
18
|
+
request.onsuccess = async (event) => {
|
|
19
|
+
this.database = await event.target.result;
|
|
20
|
+
};
|
|
21
|
+
request.onupgradeneeded = (event) => {
|
|
22
|
+
this.database = event.target.result;
|
|
23
|
+
this.cartCollectionRef = this.database.createObjectStore(this.cartCollectionName, { keyPath: "itemId" });
|
|
24
|
+
this.favouriteCollectionRef = this.database.createObjectStore(this.favouriteCollectionName, { keyPath: "itemId" });
|
|
25
|
+
this.userCollectionRef = this.database.createObjectStore(this.userCollectionName, { keyPath: "userId" });
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
// CART SERVICE
|
|
29
|
+
async getUserCart() {
|
|
30
|
+
const request = await this.cartCollectionRef?.getAll();
|
|
31
|
+
return request;
|
|
32
|
+
}
|
|
33
|
+
addProductToCart(product) {
|
|
34
|
+
const transaction = this.database.transaction(this.cartCollectionName, "readwrite");
|
|
35
|
+
return transaction.objectStore(this.cartCollectionName).put(product);
|
|
36
|
+
}
|
|
37
|
+
removeProductFromCart(productId) {
|
|
38
|
+
const transaction = this.database.transaction(this.cartCollectionName, "readwrite");
|
|
39
|
+
return transaction.objectStore(this.cartCollectionName).delete(productId);
|
|
40
|
+
}
|
|
41
|
+
async getProductFromCart(productId) {
|
|
42
|
+
const transaction = this.database.transaction(this.cartCollectionName, "readwrite");
|
|
43
|
+
return await transaction.objectStore(this.cartCollectionName).get(productId);
|
|
44
|
+
}
|
|
45
|
+
// WISHLIST SERVICE
|
|
46
|
+
async getUserWhishlist() {
|
|
47
|
+
const request = await this.cartCollectionRef?.getAll();
|
|
48
|
+
return request;
|
|
49
|
+
}
|
|
50
|
+
addProductToWishlist(product) {
|
|
51
|
+
const transaction = this.database.transaction(this.favouriteCollectionName, "readwrite");
|
|
52
|
+
return transaction.objectStore(this.favouriteCollectionName).put(product);
|
|
53
|
+
}
|
|
54
|
+
removeProductFromWishlist(productId) {
|
|
55
|
+
const transaction = this.database.transaction(this.favouriteCollectionName, "readwrite");
|
|
56
|
+
return transaction.objectStore(this.favouriteCollectionName).delete(productId);
|
|
57
|
+
}
|
|
58
|
+
async getProductFromWishlist(productId) {
|
|
59
|
+
const transaction = this.database.transaction(this.favouriteCollectionName, "readwrite");
|
|
60
|
+
return await transaction.objectStore(this.favouriteCollectionName).get(productId);
|
|
61
|
+
}
|
|
62
|
+
// USER SERVICE
|
|
63
|
+
addUser(user) {
|
|
64
|
+
localStorage.setItem("user", JSON.stringify(user));
|
|
65
|
+
return user;
|
|
66
|
+
}
|
|
67
|
+
getUser() {
|
|
68
|
+
const user = localStorage.getItem("user") ?? "{}";
|
|
69
|
+
return JSON.parse(user);
|
|
70
|
+
}
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: StorageServiceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
72
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: StorageServiceService, providedIn: 'root' }); }
|
|
73
|
+
}
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: StorageServiceService, decorators: [{
|
|
75
|
+
type: Injectable,
|
|
76
|
+
args: [{
|
|
77
|
+
providedIn: 'root'
|
|
78
|
+
}]
|
|
79
|
+
}], ctorParameters: () => [] });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQztRQUlBLGlCQUFZLEdBQVcsTUFBTSxDQUFDO1FBQzlCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLHVCQUFrQixHQUFXLFdBQVcsQ0FBQztRQUN6Qyw0QkFBdUIsR0FBVyxnQkFBZ0IsQ0FBQztRQUNuRCx1QkFBa0IsR0FBVyxNQUFNLENBQUM7UUFHcEMsc0JBQWlCLEdBQTBCLElBQUksQ0FBQztRQUNoRCwyQkFBc0IsR0FBMEIsSUFBSSxDQUFDO1FBQ3JELHNCQUFpQixHQUEwQixJQUFJLENBQUM7UUFaOUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFhRCxLQUFLLENBQUMsY0FBYztRQUNsQixNQUFNLE9BQU8sR0FBcUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU5RSxPQUFPLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU8sS0FBSyxDQUFDLE1BQTJCLENBQUMsTUFBTSxDQUFDO1FBQ2xFLENBQUMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxlQUFlLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUVsQyxJQUFJLENBQUMsUUFBUSxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLE1BQU0sQ0FBQztZQUMxRCxJQUFJ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QVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxlQUFlO0lBQ2YsT0FBTyxDQUFDLElBQVU7UUFDaEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU87UUFDTCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQzs4R0EvRVUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3JkZXJlZEl0ZW1zIH0gZnJvbSAnQHNpbXBvLXVpL2Vjb21tZXJjZS9zdHlsZXMvT3JkZXJlZEl0ZW1zLm1vZGFsJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJ0BzaW1wby11aS9lY29tbWVyY2Uvc3R5bGVzL3VzZXIubW9kYWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmNyZWF0ZURhdGFCYXNlKCk7XHJcbiAgfVxyXG5cclxuICBkYXRhYmFzZU5hbWU6IHN0cmluZyA9IFwiVVNFUlwiO1xyXG4gIGRhdGFiYXNlVmVyc2lvbjogbnVtYmVyID0gMTtcclxuICBjYXJ0Q29sbGVjdGlvbk5hbWU6IHN0cmluZyA9IFwiVVNFUl9DQVJUXCI7XHJcbiAgZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWU6IHN0cmluZyA9IFwiVVNFUl9GQVZPVVJJVEVcIjtcclxuICB1c2VyQ29sbGVjdGlvbk5hbWU6IHN0cmluZyA9IFwiVVNFUlwiO1xyXG4gIGRhdGFiYXNlITogSURCRGF0YWJhc2U7XHJcblxyXG4gIGNhcnRDb2xsZWN0aW9uUmVmOiBJREJPYmplY3RTdG9yZSB8IG51bGwgPSBudWxsO1xyXG4gIGZhdm91cml0ZUNvbGxlY3Rpb25SZWY6IElEQk9iamVjdFN0b3JlIHwgbnVsbCA9IG51bGw7XHJcbiAgdXNlckNvbGxlY3Rpb25SZWY6IElEQk9iamVjdFN0b3JlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGFzeW5jIGNyZWF0ZURhdGFCYXNlKCkge1xyXG4gICAgY29uc3QgcmVxdWVzdDogSURCT3BlbkRCUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Blbih0aGlzLmRhdGFiYXNlTmFtZSwgMSk7XHJcblxyXG4gICAgcmVxdWVzdC5vbmVycm9yID0gKCkgPT4geyB9O1xyXG4gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBhc3luYyAoZXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5kYXRhYmFzZSA9IGF3YWl0IChldmVudC50YXJnZXQgYXMgSURCT3BlbkRCUmVxdWVzdCkucmVzdWx0O1xyXG4gICAgfTtcclxuICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gKGV2ZW50KSA9PiB7XHJcblxyXG4gICAgICB0aGlzLmRhdGFiYXNlID0gKGV2ZW50LnRhcmdldCBhcyBJREJPcGVuREJSZXF1ZXN0KS5yZXN1bHQ7XHJcbiAgICAgIHRoaXMuY2FydENvbGxlY3Rpb25SZWYgPSB0aGlzLmRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lLCB7IGtleVBhdGg6IFwiaXRlbUlkXCIgfSk7XHJcbiAgICAgIHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvblJlZiA9IHRoaXMuZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUodGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSwgeyBrZXlQYXRoOiBcIml0ZW1JZFwiIH0pO1xyXG4gICAgICB0aGlzLnVzZXJDb2xsZWN0aW9uUmVmID0gdGhpcy5kYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLnVzZXJDb2xsZWN0aW9uTmFtZSwgeyBrZXlQYXRoOiBcInVzZXJJZFwiIH0pO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vIENBUlQgU0VSVklDRVxyXG4gIGFzeW5jIGdldFVzZXJDYXJ0KCkge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHRoaXMuY2FydENvbGxlY3Rpb25SZWY/LmdldEFsbCgpO1xyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBhZGRQcm9kdWN0VG9DYXJ0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlLnRyYW5zYWN0aW9uKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSkucHV0KHByb2R1Y3QpO1xyXG4gIH1cclxuICByZW1vdmVQcm9kdWN0RnJvbUNhcnQocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmRlbGV0ZShwcm9kdWN0SWQpO1xyXG4gIH1cclxuICBhc3luYyBnZXRQcm9kdWN0RnJvbUNhcnQocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gYXdhaXQgdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmdldChwcm9kdWN0SWQpO1xyXG4gIH1cclxuXHJcbiAgLy8gV0lTSExJU1QgU0VSVklDRVxyXG4gIGFzeW5jIGdldFVzZXJXaGlzaGxpc3QoKSB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgdGhpcy5jYXJ0Q29sbGVjdGlvblJlZj8uZ2V0QWxsKCk7XHJcbiAgICByZXR1cm4gcmVxdWVzdDtcclxuICB9XHJcblxyXG4gIGFkZFByb2R1Y3RUb1dpc2hsaXN0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlLnRyYW5zYWN0aW9uKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUpLnB1dChwcm9kdWN0KTtcclxuICB9XHJcbiAgcmVtb3ZlUHJvZHVjdEZyb21XaXNobGlzdChwcm9kdWN0SWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlLnRyYW5zYWN0aW9uKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUpLmRlbGV0ZShwcm9kdWN0SWQpO1xyXG4gIH1cclxuICBhc3luYyBnZXRQcm9kdWN0RnJvbVdpc2hsaXN0KHByb2R1Y3RJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2UudHJhbnNhY3Rpb24odGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gYXdhaXQgdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSkuZ2V0KHByb2R1Y3RJZCk7XHJcbiAgfVxyXG5cclxuICAvLyBVU0VSIFNFUlZJQ0VcclxuICBhZGRVc2VyKHVzZXI6IFVzZXIpOiBVc2VyIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwidXNlclwiLCBKU09OLnN0cmluZ2lmeSh1c2VyKSk7XHJcbiAgICByZXR1cm4gdXNlcjtcclxuICB9XHJcbiAgZ2V0VXNlcigpOiBVc2VyIHtcclxuICAgIGNvbnN0IHVzZXIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXJcIikgPz8gXCJ7fVwiO1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UodXNlcik7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gY2xlYXJBbGxJdGVtc0Zyb21DYXJ0KCkge1xyXG4gIC8vICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAvLyAgICAgaWYgKHRoaXMuZGF0YWJhc2UgIT0gdW5kZWZpbmVkKSB7XHJcbiAgLy8gICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHRoaXMuZGF0YWJhc2VcclxuICAvLyAgICAgICAgIC50cmFuc2FjdGlvbih0aGlzLm9iamVjdFN0b3JhZ2VOYW1lLCAncmVhZHdyaXRlJylcclxuICAvLyAgICAgICAgIC5vYmplY3RTdG9yZSh0aGlzLm9iamVjdFN0b3JhZ2VOYW1lKVxyXG4gIC8vICAgICAgICAgLmNsZWFyKCk7XHJcblxyXG4gIC8vICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gYXdhaXQgZnVuY3Rpb24gKGV2ZW50OiBhbnkpIHtcclxuXHJcbiAgLy8gICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LnJlc3VsdCkge1xyXG4gIC8vICAgICAgICAgICByZXNvbHZlKGV2ZW50LnJlc3VsdCk7XHJcbiAgLy8gICAgICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgICAgICByZXNvbHZlKCdTVUNDRVNTJyk7XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfTtcclxuICAvLyAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSBhd2FpdCBmdW5jdGlvbiAoX2V2ZW50KSB7XHJcbiAgLy8gICAgICAgICByZWplY3QoXCJObyBkYXRhXCIpO1xyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG59XHJcbiJdfQ==
|