@infrab4a/connect-angular 4.2.3-beta.0 → 4.2.3-beta.1
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.
|
@@ -185,9 +185,9 @@ export class CartService {
|
|
|
185
185
|
return { ...checkout, lineItems: notGiftItems };
|
|
186
186
|
const elegibleCampaigns = [];
|
|
187
187
|
for (const campaign of campaigns) {
|
|
188
|
-
const today = new Date().
|
|
189
|
-
console.log('camapings validation dade', 'today is', today, 'startDate', campaign.startDate.
|
|
190
|
-
if (!(campaign.startDate.
|
|
188
|
+
const today = new Date().getTime();
|
|
189
|
+
console.log('camapings validation dade', 'today is', today, 'startDate', campaign.startDate.getTime(), !(campaign.startDate.getTime() <= today), 'endDate', campaign.endDate.getTime(), !(campaign.endDate.getTime() >= today), campaign.name);
|
|
190
|
+
if (!(campaign.startDate.getTime() <= today) && !(campaign.endDate.getTime() >= today))
|
|
191
191
|
continue;
|
|
192
192
|
if (campaign.activeCategory) {
|
|
193
193
|
const categoriesCampaing = campaign.categories.map((c) => c.id.toString());
|
|
@@ -282,4 +282,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
|
|
|
282
282
|
type: Inject,
|
|
283
283
|
args: ['Buy2WinRepository']
|
|
284
284
|
}] }]; } });
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUVMLDBCQUEwQixFQUUxQixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBR2Isd0JBQXdCLEVBRXhCLEtBQUssRUFJTCxLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7OztBQVFwRCxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUNtQixXQUF3QixFQUN4QixlQUFnQyxFQUNWLFdBQWtCLEVBQ1gsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUN2QyxpQkFBb0MsRUFDcEMsaUJBQTZDO1FBTjFFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNWLGdCQUFXLEdBQVgsV0FBVyxDQUFPO1FBQ1gsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7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amVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQnV5MldpbixcclxuICBCdXkyV2luRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeVJlcG9zaXRvcnksXHJcbiAgQ2hlY2tvdXQsXHJcbiAgaXNOaWwsXHJcbiAgTGluZUl0ZW0sXHJcbiAgTm90Rm91bmRFcnJvcixcclxuICBQcm9kdWN0LFxyXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gIFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlcixcclxuICBTaG9wUHJpY2UsXHJcbiAgU2hvcHMsXHJcbiAgVXNlcixcclxuICBWYXJpYW50LFxyXG4gIFZhcmlhbnRSZXBvc2l0b3J5LFxyXG4gIFdoZXJlLFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgeyBmcm9tLCBpaWYsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgY29uY2F0TWFwLCBtYXAsIG1lcmdlTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgREVGQVVMVF9TSE9QIH0gZnJvbSAnLi4vY29uc3RzJ1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuL2NoZWNrb3V0LnNlcnZpY2UnXHJcbmltcG9ydCB7IFJlcXVpcmVkQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi90eXBlcydcclxuXHJcbmV4cG9ydCB0eXBlIENhcnQgPSB7XHJcbiAgW2lkOiBzdHJpbmddOiBMaW5lSXRlbVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYXJ0U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjYXJ0U3ViamVjdDogU3ViamVjdDxDYXJ0PiA9IG5ldyBTdWJqZWN0KClcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UsXHJcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2hvcDogU2hvcHMsXHJcbiAgICBASW5qZWN0KCdQcm9kdWN0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVJlcG9zaXRvcnk6IENhdGVnb3J5UmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoJ1ZhcmlhbnRSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSB2YXJpYW50UmVwb3NpdG9yeTogVmFyaWFudFJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdCdXkyV2luUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgYnV5MldpblJlcG9zaXRvcnk6IEJ1eTJXaW5GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gICkge31cclxuXHJcbiAgYWRkSXRlbShpdGVtOiBMaW5lSXRlbSwgcXVhbnRpdHk6IG51bWJlciA9IDEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcChhc3luYyAoY2hlY2tvdXQpID0+IGF3YWl0IHRoaXMuYnVpbGRMaW5lSXRlbSh7IGNoZWNrb3V0LCBpdGVtLCBxdWFudGl0eTogcXVhbnRpdHkgfHwgMSB9KSksXHJcbiAgICAgIG1lcmdlTWFwKCh7IGNoZWNrb3V0LCBsaW5lSXRlbSB9KSA9PiB0aGlzLnVwZGF0ZUxpbmVJdGVtSW5DYXJ0KGxpbmVJdGVtLCBxdWFudGl0eSB8fCAxLCBjaGVja291dCBhcyBDaGVja291dCkpLFxyXG4gICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBkZWNyZWFzZUl0ZW0oaXRlbTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICBjb25zdCBjaGVja291dEl0ZW0gPSBjaGVja291dC5saW5lSXRlbXM/LmZpbmQoKGxpbmVJdGVtKSA9PiBsaW5lSXRlbS5pZCA9PT0gaXRlbS5pZClcclxuXHJcbiAgICAgICAgaWYgKCFpc05pbChjaGVja291dEl0ZW0pKSBjaGVja291dEl0ZW0ucXVhbnRpdHkgLT0gY2hlY2tvdXRJdGVtLnF1YW50aXR5ID4gMSA/IDEgOiAwXHJcblxyXG4gICAgICAgIHJldHVybiBjaGVja291dFxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQpKSxcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldENhcnQoY2hlY2tvdXQ/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgdGhpcy5idWlsZENhcnRGcm9tQ2hlY2tvdXQoY2hlY2tvdXQpLnN1YnNjcmliZSgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKVxyXG5cclxuICAgIHJldHVybiB0aGlzLmNhcnRTdWJqZWN0XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVwcmVjYXRlZCBUaGUgbWV0aG9kIHNob3VsZCBub3QgYmUgdXNlZFxyXG4gICAqL1xyXG4gIGdldFZhcmlhbnRQcmljZURpc2NvdW50KGl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXIoKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKHVzZXIpID0+XHJcbiAgICAgICAgaWlmKFxyXG4gICAgICAgICAgKCkgPT4gdXNlci5pc1N1YnNjcmliZXIgJiYgISFpdGVtLnByaWNlLnN1YnNjcmliZXJQcmljZSxcclxuICAgICAgICAgIG9mKGl0ZW0ucHJpY2Uuc3Vic2NyaWJlclByaWNlKSxcclxuICAgICAgICAgIG9mKGl0ZW0ucHJpY2UucHJpY2UpLFxyXG4gICAgICAgICksXHJcbiAgICAgICksXHJcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoaXRlbS5wcmljZS5wcmljZSkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlSXRlbShpdGVtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgbWFwKChjaGVja291dCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gY2hlY2tvdXQubGluZUl0ZW1zLmZpbmRJbmRleCgobGluZUl0ZW0pID0+IGxpbmVJdGVtLmlkID09PSBpdGVtLmlkKVxyXG5cclxuICAgICAgICBpZiAoaW5kZXggPj0gMCkgY2hlY2tvdXQubGluZUl0ZW1zLnNwbGljZShpbmRleCwgMSlcclxuXHJcbiAgICAgICAgcmV0dXJuIGNoZWNrb3V0XHJcbiAgICAgIH0pLFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dCkpLFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVXNlckNhcnQodXNlcjogVXNlcik6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cclxuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dFVzZXIoQ2hlY2tvdXQudG9JbnN0YW5jZSh7IC4uLmNoZWNrb3V0LnRvUGxhaW4oKSwgdXNlciB9KSksXHJcbiAgICAgICksXHJcbiAgICAgIGNvbmNhdE1hcChhc3luYyAoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2VcclxuICAgICAgICAgIC51cGRhdGVDaGVja291dExpbmVJdGVtcyhcclxuICAgICAgICAgICAgQ2hlY2tvdXQudG9JbnN0YW5jZSh7XHJcbiAgICAgICAgICAgICAgLi4uY2hlY2tvdXQudG9QbGFpbigpLFxyXG4gICAgICAgICAgICAgIGxpbmVJdGVtczogY2hlY2tvdXQubGluZUl0ZW1zPy5sZW5ndGhcclxuICAgICAgICAgICAgICAgID8gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tvdXQubGluZUl0ZW1zPy5tYXAoYXN5bmMgKGl0ZW0pID0+IChhd2FpdCB0aGlzLmJ1aWxkTGluZUl0ZW0oeyBjaGVja291dCwgaXRlbSB9KSkubGluZUl0ZW0pLFxyXG4gICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICA6IFtdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC50b1Byb21pc2UoKSxcclxuICAgICAgKSxcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNsZWFyQ2FydCgpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5jbGVhckNoZWNrb3V0RnJvbVNlc3Npb24oKVxyXG4gICAgICAgIHJldHVybiBjaGVja291dFxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChvbGRDaGVja291dCkgPT4gdGhpcy5idWlsZENhcnRGcm9tQ2hlY2tvdXQob2xkQ2hlY2tvdXQpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZENhcnRGcm9tQ2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dChjaGVja291dERhdGEpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IGNoZWNrb3V0LmxpbmVJdGVtcyksXHJcbiAgICAgIGNvbmNhdE1hcCgobGluZUl0ZW1zKSA9PiBvZih0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChsaW5lSXRlbXMpKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUxpbmVJdGVtSW5DYXJ0ID0gKGxpbmVJdGVtOiBMaW5lSXRlbSwgcXVhbnRpdHk6IG51bWJlciwgY2hlY2tvdXQ/OiBDaGVja291dCk6IE9ic2VydmFibGU8Q2FydD4gPT5cclxuICAgIChpc05pbChjaGVja291dCkgPyB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpIDogb2YoY2hlY2tvdXQpKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0TG9hZGVkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXRlbXM6IExpbmVJdGVtW10gPSBbXVxyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zPy5tYXAoKGNoZWNrb3V0SXRlbSkgPT4gY2hlY2tvdXRJdGVtLmlkKS5pbmRleE9mKGxpbmVJdGVtLmlkKVxyXG5cclxuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zW2luZGV4XS5xdWFudGl0eSArPSBxdWFudGl0eVxyXG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zW2luZGV4XS5wcmljZVBhaWQgPSBsaW5lSXRlbS5wcmljZVBhaWRcclxuICAgICAgICB9IGVsc2VcclxuICAgICAgICAgIGNoZWNrb3V0TG9hZGVkLmxpbmVJdGVtcyA9IGl0ZW1zLmNvbmNhdChcclxuICAgICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zID8gY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zLmNvbmNhdChbbGluZUl0ZW1dKSA6IFtsaW5lSXRlbV0sXHJcbiAgICAgICAgICApXHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZVxyXG4gICAgICAgICAgLnVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKGNoZWNrb3V0TG9hZGVkKVxyXG4gICAgICAgICAgLnBpcGUobWFwKCh1cGRhdGVkQ2hlY2tvdXQpID0+IHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KHVwZGF0ZWRDaGVja291dC5saW5lSXRlbXMpKSlcclxuICAgICAgfSksXHJcbiAgICApXHJcblxyXG4gIHByaXZhdGUgZ2VuZXJhdGVDYXJ0T2JqZWN0ID0gKGl0ZW1zOiBMaW5lSXRlbVtdKTogQ2FydCA9PlxyXG4gICAgaXRlbXM/LnJlZHVjZShcclxuICAgICAgKGNhcnQsIGl0ZW0pID0+ICh7XHJcbiAgICAgICAgLi4uY2FydCxcclxuICAgICAgICBbaXRlbS5pZF06IExpbmVJdGVtLnRvSW5zdGFuY2Uoe1xyXG4gICAgICAgICAgLi4uKGNhcnRbaXRlbS5pZF0gfHwgaXRlbSksXHJcbiAgICAgICAgICBxdWFudGl0eTogKGNhcnRbaXRlbS5pZF0/LnF1YW50aXR5IHx8IDApICsgKGl0ZW0ucXVhbnRpdHkgPyBpdGVtLnF1YW50aXR5IDogMSksXHJcbiAgICAgICAgfSksXHJcbiAgICAgIH0pLFxyXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBMaW5lSXRlbT4sXHJcbiAgICApIHx8IHt9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRMaW5lSXRlbSA9IGFzeW5jICh7XHJcbiAgICBjaGVja291dCxcclxuICAgIGl0ZW0sXHJcbiAgICBxdWFudGl0eSxcclxuICB9OiB7XHJcbiAgICBjaGVja291dDogUmVxdWlyZWRDaGVja291dERhdGFcclxuICAgIGl0ZW06IExpbmVJdGVtXHJcbiAgICBxdWFudGl0eT86IG51bWJlclxyXG4gIH0pOiBQcm9taXNlPHsgY2hlY2tvdXQ6IFBhcnRpYWw8Q2hlY2tvdXQ+OyBsaW5lSXRlbTogTGluZUl0ZW0gfT4gPT4ge1xyXG4gICAgY29uc3QgcHJvZHVjdCA9IGF3YWl0IHRoaXMuZ2V0UHJvZHVjdERhdGEoaXRlbS5pZClcclxuXHJcbiAgICBpdGVtLnF1YW50aXR5ID0gaXRlbT8ucXVhbnRpdHkgfHwgY2hlY2tvdXQ/LmxpbmVJdGVtcz8uZmluZCgobGluZUl0ZW0pID0+IGxpbmVJdGVtLmlkID09PSBpdGVtLmlkKT8ucXVhbnRpdHkgfHwgMFxyXG5cclxuICAgIGlmICh0aGlzLmNoZWNrTWF4U3RvY2soaXRlbSwgcXVhbnRpdHkgfHwgMCkpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGVzY3VscGUhIFRlbW9zIGFwZW5hcyAnICsgaXRlbS5zdG9jaz8ucXVhbnRpdHkgKyAnIGVtIGVzdG9xdWUuJylcclxuXHJcbiAgICBjb25zdCBpbWFnZSA9IGl0ZW0uaW1hZ2UgfHwgaXRlbS5pbWFnZXM/LnNoaWZ0KClcclxuICAgIGNvbnN0IHsgaWQsIG5hbWUsIEVBTiwgc2x1Zywgc3RvY2ssIHByaWNlLCB3ZWlnaHQsIHNrdSwgdHlwZSB9ID0gaXRlbVxyXG4gICAgY29uc3QgaXNHaWZ0ID0gaXRlbS5pc0dpZnQgfHwgbnVsbFxyXG4gICAgY29uc3QgcHJpY2VQYWlkID0gdGhpcy5nZXRQcm9kdWN0UHJpY2Uoe1xyXG4gICAgICBwcm9kdWN0OiBpdGVtLFxyXG4gICAgICBzaG9wOiBjaGVja291dC5zaG9wIHx8IHRoaXMuZGVmYXVsdFNob3AsXHJcbiAgICAgIGlzU3Vic2NyaWJlcjogY2hlY2tvdXQudXNlcj8uaXNTdWJzY3JpYmVyLFxyXG4gICAgfSlcclxuXHJcbiAgICBSb3VuZFByb2R1Y3RQcmljZXNIZWxwZXIucm91bmRQcm9kdWN0UHJpY2VzKGl0ZW0pXHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2hlY2tvdXQsXHJcbiAgICAgIGxpbmVJdGVtOiBMaW5lSXRlbS50b0luc3RhbmNlKHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBuYW1lOiBuYW1lID8/IHByb2R1Y3QubmFtZSxcclxuICAgICAgICBFQU46IEVBTiA/PyBwcm9kdWN0LkVBTixcclxuICAgICAgICBicmFuZDogcHJvZHVjdC5icmFuZCxcclxuICAgICAgICBzbHVnOiBzbHVnID8/IHByb2R1Y3Quc2x1ZyxcclxuICAgICAgICBza3U6IHNrdSA/PyBwcm9kdWN0LnNrdSxcclxuICAgICAgICBzdG9jayxcclxuICAgICAgICBwcmljZTogdGhpcy5yb3VuZFByaWNlKHByaWNlKSxcclxuICAgICAgICBpbWFnZSxcclxuICAgICAgICB3ZWlnaHQ6IHdlaWdodCA/PyBwcm9kdWN0LndlaWdodCxcclxuICAgICAgICBxdWFudGl0eTogKGl0ZW0ucXVhbnRpdHkgfHwgMCkgKyAocXVhbnRpdHkgfHwgMCksXHJcbiAgICAgICAgcHJpY2VQYWlkLFxyXG4gICAgICAgIGNhdGVnb3JpZXM6IHByb2R1Y3QuY2F0ZWdvcmllcyA/PyBbXSxcclxuICAgICAgICBpc0dpZnQ6IGlzR2lmdCA/PyBudWxsLFxyXG4gICAgICAgIGNvc3RQcmljZTogcHJvZHVjdC5jb3N0UHJpY2UgPz8gMCxcclxuICAgICAgICB0eXBlLFxyXG4gICAgICB9KSxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcm91bmRQcmljZShwcm9kdWN0UHJpY2U6IFNob3BQcmljZSk6IFNob3BQcmljZSB7XHJcbiAgICBjb25zdCB7IHByaWNlLCBmdWxsUHJpY2UsIHN1YnNjcmliZXJQcmljZSB9ID0gcHJvZHVjdFByaWNlXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5wcm9kdWN0UHJpY2UsXHJcbiAgICAgIHByaWNlOiBOdW1iZXIocHJpY2UudG9GaXhlZCgyKSksXHJcbiAgICAgIGZ1bGxQcmljZTogTnVtYmVyKGZ1bGxQcmljZS50b0ZpeGVkKDIpKSxcclxuICAgICAgLi4uKHN1YnNjcmliZXJQcmljZSAmJiB7IHN1YnNjcmliZXJQcmljZTogTnVtYmVyKHN1YnNjcmliZXJQcmljZS50b0ZpeGVkKDIpKSB9KSxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZ2V0UHJvZHVjdERhdGEocHJvZHVjdElkOiBzdHJpbmcpOiBQcm9taXNlPFBhcnRpYWw8UHJvZHVjdD4+IHtcclxuICAgIGxldCBwcm9kdWN0OiBQcm9kdWN0XHJcbiAgICBsZXQgdmFyaWFudDogVmFyaWFudFxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIHByb2R1Y3QgPSBhd2FpdCB0aGlzLnByb2R1Y3RSZXBvc2l0b3J5LmdldCh7IGlkOiBwcm9kdWN0SWQgfSlcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikpIHRocm93IGVycm9yXHJcblxyXG4gICAgICBjb25zdCB7IGRhdGE6IHZhcmlhbnRzIH0gPSBhd2FpdCB0aGlzLnZhcmlhbnRSZXBvc2l0b3J5LmZpbmQoeyBmaWx0ZXJzOiB7IGlkOiBwcm9kdWN0SWQgfSB9KVxyXG5cclxuICAgICAgdmFyaWFudCA9IHZhcmlhbnRzLnNoaWZ0KClcclxuXHJcbiAgICAgIGlmICghdmFyaWFudCkgdGhyb3cgZXJyb3JcclxuXHJcbiAgICAgIHByb2R1Y3QgPSBhd2FpdCB0aGlzLnByb2R1Y3RSZXBvc2l0b3J5LmdldCh7IGlkOiB2YXJpYW50LnByb2R1Y3RJZCB9KVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnByb2R1Y3QudG9QbGFpbigpLFxyXG4gICAgICAuLi4odmFyaWFudCAmJiB7IC4uLnZhcmlhbnQudG9QbGFpbigpIH0pLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQcm9kdWN0UHJpY2UgPSAoe1xyXG4gICAgcHJvZHVjdCxcclxuICAgIGlzU3Vic2NyaWJlcixcclxuICB9OiB7XHJcbiAgICBwcm9kdWN0OiBMaW5lSXRlbVxyXG4gICAgc2hvcDogU2hvcHNcclxuICAgIGlzU3Vic2NyaWJlcjogYm9vbGVhblxyXG4gIH0pOiBudW1iZXIgPT4ge1xyXG4gICAgY29uc3QgaW5mbyA9IHByb2R1Y3QucHJpY2VcclxuXHJcbiAgICBpZiAocHJvZHVjdC5pc0dpZnQpIHJldHVybiAwXHJcblxyXG4gICAgcmV0dXJuIGlzU3Vic2NyaWJlciAmJiBpbmZvLnN1YnNjcmliZXJQcmljZSA+IDBcclxuICAgICAgPyBOdW1iZXIoaW5mby5zdWJzY3JpYmVyUHJpY2UudG9GaXhlZCgyKSlcclxuICAgICAgOiBOdW1iZXIoaW5mby5wcmljZS50b0ZpeGVkKDIpKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja01heFN0b2NrID0gKGl0ZW06IExpbmVJdGVtLCBxdWFudGl0eTogbnVtYmVyKSA9PiB7XHJcbiAgICBjb25zdCBtYXhTdG9jayA9IGl0ZW0uc3RvY2s/LnF1YW50aXR5IHx8IDBcclxuICAgIGNvbnN0IGN1cnJlbnRJdGVtQW1vdW50ID0gaXRlbS5xdWFudGl0eSB8fCAwXHJcblxyXG4gICAgcmV0dXJuIGN1cnJlbnRJdGVtQW1vdW50ICsgcXVhbnRpdHkgPiBtYXhTdG9ja1xyXG4gIH1cclxuXHJcbiAgZ2V0R2lmdHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChhc3luYyAoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICBjb25zdCBub3RHaWZ0SXRlbXM6IExpbmVJdGVtW10gPSBjaGVja291dC5saW5lSXRlbXMgPyBjaGVja291dC5saW5lSXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5pc0dpZnQpIDogW11cclxuXHJcbiAgICAgICAgaWYgKCFub3RHaWZ0SXRlbXMubGVuZ3RoKSByZXR1cm4geyAuLi5jaGVja291dCwgbGluZUl0ZW1zOiBbXSB9IGFzIENoZWNrb3V0XHJcblxyXG4gICAgICAgIGNvbnN0IGNhcnRUb3RhbCA9IG5vdEdpZnRJdGVtcy5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLnByaWNlUGFpZCAqIGIucXVhbnRpdHksIDApXHJcblxyXG4gICAgICAgIGNvbnN0IGNhbXBhaWducyA9IGF3YWl0IHRoaXMuYnV5MldpblJlcG9zaXRvcnlcclxuICAgICAgICAgIC5maW5kKHtcclxuICAgICAgICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgICAgICAgIGFjdGl2ZTogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgIHNob3A6IHsgb3BlcmF0b3I6IFdoZXJlLkVRVUFMUywgdmFsdWU6IHRoaXMuZGVmYXVsdFNob3AgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5kYXRhKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCdjYW1hcGluZ3MgZm91bmQnLCBjYW1wYWlnbnMpXHJcbiAgICAgICAgaWYgKCFjYW1wYWlnbnMubGVuZ3RoKSByZXR1cm4geyAuLi5jaGVja291dCwgbGluZUl0ZW1zOiBub3RHaWZ0SXRlbXMgfSBhcyBDaGVja291dFxyXG5cclxuICAgICAgICBjb25zdCBlbGVnaWJsZUNhbXBhaWduczogQnV5MldpbltdID0gW11cclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBjYW1wYWlnbiBvZiBjYW1wYWlnbnMpIHtcclxuICAgICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKS5nZXREYXRlKClcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAnY2FtYXBpbmdzIHZhbGlkYXRpb24gZGFkZScsXHJcbiAgICAgICAgICAgICd0b2RheSBpcycsXHJcbiAgICAgICAgICAgIHRvZGF5LFxyXG4gICAgICAgICAgICAnc3RhcnREYXRlJyxcclxuICAgICAgICAgICAgY2FtcGFpZ24uc3RhcnREYXRlLmdldERhdGUoKSxcclxuICAgICAgICAgICAgIShjYW1wYWlnbi5zdGFydERhdGUuZ2V0RGF0ZSgpIDw9IHRvZGF5KSxcclxuICAgICAgICAgICAgJ2VuZERhdGUnLFxyXG4gICAgICAgICAgICBjYW1wYWlnbi5lbmREYXRlLmdldERhdGUoKSxcclxuICAgICAgICAgICAgIShjYW1wYWlnbi5lbmREYXRlLmdldERhdGUoKSA+PSB0b2RheSksXHJcbiAgICAgICAgICAgIGNhbXBhaWduLm5hbWUsXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICBpZiAoIShjYW1wYWlnbi5zdGFydERhdGUuZ2V0RGF0ZSgpIDw9IHRvZGF5KSAmJiAhKGNhbXBhaWduLmVuZERhdGUuZ2V0RGF0ZSgpID49IHRvZGF5KSkgY29udGludWVcclxuXHJcbiAgICAgICAgICBpZiAoY2FtcGFpZ24uYWN0aXZlQ2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllc0NhbXBhaW5nID0gY2FtcGFpZ24uY2F0ZWdvcmllcy5tYXAoKGMpID0+IGMuaWQudG9TdHJpbmcoKSlcclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllc0NhbXBhaW5nRnVsbFRyZWUgPSBbXVxyXG5cclxuICAgICAgICAgICAgZm9yIChjb25zdCBpZCBvZiBjYXRlZ29yaWVzQ2FtcGFpbmcpIHtcclxuICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlSZXBvc2l0b3J5LmdldENoaWxkcmVuKHBhcnNlSW50KGlkKSlcclxuXHJcbiAgICAgICAgICAgICAgY2F0ZWdvcmllc0NhbXBhaW5nRnVsbFRyZWUucHVzaChpZCwgLi4uY2hpbGRyZW4ubWFwKChjKSA9PiBjLmlkLnRvU3RyaW5nKCkpKVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzQ2FtcGFpbmdUcmVlID0gWy4uLm5ldyBTZXQoY2F0ZWdvcmllc0NhbXBhaW5nRnVsbFRyZWUpXVxyXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJQcm9kdWN0c0NhdGVnb3JpZXMgPSBjaGVja291dC5saW5lSXRlbXMuZmlsdGVyKChsKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKCFsLmNhdGVnb3JpZXMgfHwgIWwuY2F0ZWdvcmllcz8ubGVuZ3RoKSByZXR1cm4gdHJ1ZVxyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gbC5jYXRlZ29yaWVzLnNvbWUoKGMpID0+IGNhdGVnb3JpZXNDYW1wYWluZ1RyZWUuc29tZSgoY2F0KSA9PiBjYXQgPT0gYykpXHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICBpZiAoZmlsdGVyUHJvZHVjdHNDYXRlZ29yaWVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGNhcnRUb3RhbENhdGVnb3JpZXMgPSBmaWx0ZXJQcm9kdWN0c0NhdGVnb3JpZXMucmVkdWNlKChhLCBiKSA9PiBhICsgYi5wcmljZVBhaWQgKiBiLnF1YW50aXR5LCAwKVxyXG5cclxuICAgICAgICAgICAgICBpZiAoY2FydFRvdGFsQ2F0ZWdvcmllcyA+PSBjYW1wYWlnbi5jYXJ0VmFsdWVNaW4pIGVsZWdpYmxlQ2FtcGFpZ25zLnB1c2goY2FtcGFpZ24pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChjYW1wYWlnbi5jYXJ0VmFsdWUgJiYgY2FtcGFpZ24uY2FydFZhbHVlID4gMCkge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjYXJ0IHZhbHVlJywgY2FtcGFpZ24uY2FydFZhbHVlLCBjYXJ0VG90YWwsIGNhbXBhaWduLmNhcnRWYWx1ZSA8PSBjYXJ0VG90YWwpXHJcbiAgICAgICAgICAgICAgaWYgKGNhbXBhaWduLmNhcnRWYWx1ZSA8PSBjYXJ0VG90YWwpIGVsZWdpYmxlQ2FtcGFpZ25zLnB1c2goY2FtcGFpZ24pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2VsZ2libGUgY2FtcGFpbnMnLCBlbGVnaWJsZUNhbXBhaWducylcclxuICAgICAgICBpZiAoIWVsZWdpYmxlQ2FtcGFpZ25zLmxlbmd0aCkgcmV0dXJuIHsgLi4uY2hlY2tvdXQsIGxpbmVJdGVtczogbm90R2lmdEl0ZW1zIH0gYXMgQ2hlY2tvdXRcclxuXHJcbiAgICAgICAgY29uc3QgY2FtcGFpbmduUHJvZHVjdHM6IFByb2R1Y3RbXVtdID0gW11cclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBjYW1wYWlnbiBvZiBlbGVnaWJsZUNhbXBhaWducykge1xyXG4gICAgICAgICAgbGV0IGVsZWdpYmxlUHJvZHVjdHMgPSBbXVxyXG5cclxuICAgICAgICAgIGZvciAoY29uc3QgcHJvZHVjdCBvZiBjYW1wYWlnbi5wcm9kdWN0cykge1xyXG4gICAgICAgICAgICBjb25zdCB7IGRhdGE6IHByb2R1Y3REYXRhIH0gPSBhd2FpdCB0aGlzLnByb2R1Y3RSZXBvc2l0b3J5LmZpbmQoeyBmaWx0ZXJzOiB7IHNrdTogcHJvZHVjdCB9IH0pXHJcblxyXG4gICAgICAgICAgICBpZiAoIXByb2R1Y3REYXRhLmxlbmd0aCkgY29udGludWVcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGdpZnQgPSBwcm9kdWN0RGF0YS5zaGlmdCgpXHJcblxyXG4gICAgICAgICAgICBpZiAoZ2lmdC5zdG9jay5xdWFudGl0eSA8IDEpIGNvbnRpbnVlXHJcblxyXG4gICAgICAgICAgICBlbGVnaWJsZVByb2R1Y3RzLnB1c2goZ2lmdClcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjYW1wYWluZ25Qcm9kdWN0cy5wdXNoKGVsZWdpYmxlUHJvZHVjdHMpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWNhbXBhaW5nblByb2R1Y3RzLmxlbmd0aCkgcmV0dXJuIHsgLi4uY2hlY2tvdXQsIGxpbmVJdGVtczogbm90R2lmdEl0ZW1zIH0gYXMgQ2hlY2tvdXRcclxuXHJcbiAgICAgICAgY29uc3QgZ2lmdHMgPSB0aGlzLmdpZnRUb0xpbmVJdGVtcyhbXS5jb25jYXQoLi4uY2FtcGFpbmduUHJvZHVjdHMpKVxyXG5cclxuICAgICAgICByZXR1cm4geyAuLi5jaGVja291dCwgbGluZUl0ZW1zOiBub3RHaWZ0SXRlbXMuY29uY2F0KGdpZnRzKSB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dCkpLFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnaWZ0VG9MaW5lSXRlbXMoaXRlbXM6IFByb2R1Y3RbXSk6IExpbmVJdGVtW10ge1xyXG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGJyYW5kLCBjYXRlZ29yaWVzLCBpZCwgbmFtZSwgcHJpY2UsIHNrdSwgc2x1Zywgc3RvY2ssIHdlaWdodCwgRUFOIH0gPSBpdGVtXHJcblxyXG4gICAgICBjb25zdCBpbWFnZSA9IGl0ZW0/Lm1pbmlhdHVyZXM/Lmxlbmd0aCA/IGl0ZW0ubWluaWF0dXJlc1swXSA6IGl0ZW0uaW1hZ2VzWzBdXHJcblxyXG4gICAgICByZXR1cm4gTGluZUl0ZW0udG9JbnN0YW5jZSh7XHJcbiAgICAgICAgYnJhbmQsXHJcbiAgICAgICAgY2F0ZWdvcmllcyxcclxuICAgICAgICBpZDogaWQudG9TdHJpbmcoKSxcclxuICAgICAgICBuYW1lLFxyXG4gICAgICAgIHByaWNlLFxyXG4gICAgICAgIHNrdSxcclxuICAgICAgICBzbHVnLFxyXG4gICAgICAgIHN0b2NrLFxyXG4gICAgICAgIHdlaWdodCxcclxuICAgICAgICBFQU4sXHJcbiAgICAgICAgaW1hZ2UsXHJcbiAgICAgICAgcHJpY2VQYWlkOiAwLFxyXG4gICAgICAgIHF1YW50aXR5OiAxLFxyXG4gICAgICAgIGlzR2lmdDogdHJ1ZSxcclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUVMLDBCQUEwQixFQUUxQixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBR2Isd0JBQXdCLEVBRXhCLEtBQUssRUFJTCxLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7OztBQVFwRCxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUNtQixXQUF3QixFQUN4QixlQUFnQyxFQUNWLFdBQWtCLEVBQ1gsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUN2QyxpQkFBb0MsRUFDcEMsaUJBQTZDO1FBTjFFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNWLGdCQUFXLEdBQVgsV0FBVyxDQUFPO1FBQ1gsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7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amVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQnV5MldpbixcclxuICBCdXkyV2luRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeVJlcG9zaXRvcnksXHJcbiAgQ2hlY2tvdXQsXHJcbiAgaXNOaWwsXHJcbiAgTGluZUl0ZW0sXHJcbiAgTm90Rm91bmRFcnJvcixcclxuICBQcm9kdWN0LFxyXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gIFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlcixcclxuICBTaG9wUHJpY2UsXHJcbiAgU2hvcHMsXHJcbiAgVXNlcixcclxuICBWYXJpYW50LFxyXG4gIFZhcmlhbnRSZXBvc2l0b3J5LFxyXG4gIFdoZXJlLFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgeyBmcm9tLCBpaWYsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgY29uY2F0TWFwLCBtYXAsIG1lcmdlTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgREVGQVVMVF9TSE9QIH0gZnJvbSAnLi4vY29uc3RzJ1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuL2NoZWNrb3V0LnNlcnZpY2UnXHJcbmltcG9ydCB7IFJlcXVpcmVkQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi90eXBlcydcclxuXHJcbmV4cG9ydCB0eXBlIENhcnQgPSB7XHJcbiAgW2lkOiBzdHJpbmddOiBMaW5lSXRlbVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYXJ0U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjYXJ0U3ViamVjdDogU3ViamVjdDxDYXJ0PiA9IG5ldyBTdWJqZWN0KClcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UsXHJcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2hvcDogU2hvcHMsXHJcbiAgICBASW5qZWN0KCdQcm9kdWN0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVJlcG9zaXRvcnk6IENhdGVnb3J5UmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoJ1ZhcmlhbnRSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSB2YXJpYW50UmVwb3NpdG9yeTogVmFyaWFudFJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdCdXkyV2luUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgYnV5MldpblJlcG9zaXRvcnk6IEJ1eTJXaW5GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gICkge31cclxuXHJcbiAgYWRkSXRlbShpdGVtOiBMaW5lSXRlbSwgcXVhbnRpdHk6IG51bWJlciA9IDEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcChhc3luYyAoY2hlY2tvdXQpID0+IGF3YWl0IHRoaXMuYnVpbGRMaW5lSXRlbSh7IGNoZWNrb3V0LCBpdGVtLCBxdWFudGl0eTogcXVhbnRpdHkgfHwgMSB9KSksXHJcbiAgICAgIG1lcmdlTWFwKCh7IGNoZWNrb3V0LCBsaW5lSXRlbSB9KSA9PiB0aGlzLnVwZGF0ZUxpbmVJdGVtSW5DYXJ0KGxpbmVJdGVtLCBxdWFudGl0eSB8fCAxLCBjaGVja291dCBhcyBDaGVja291dCkpLFxyXG4gICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBkZWNyZWFzZUl0ZW0oaXRlbTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICBjb25zdCBjaGVja291dEl0ZW0gPSBjaGVja291dC5saW5lSXRlbXM/LmZpbmQoKGxpbmVJdGVtKSA9PiBsaW5lSXRlbS5pZCA9PT0gaXRlbS5pZClcclxuXHJcbiAgICAgICAgaWYgKCFpc05pbChjaGVja291dEl0ZW0pKSBjaGVja291dEl0ZW0ucXVhbnRpdHkgLT0gY2hlY2tvdXRJdGVtLnF1YW50aXR5ID4gMSA/IDEgOiAwXHJcblxyXG4gICAgICAgIHJldHVybiBjaGVja291dFxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQpKSxcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldENhcnQoY2hlY2tvdXQ/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgdGhpcy5idWlsZENhcnRGcm9tQ2hlY2tvdXQoY2hlY2tvdXQpLnN1YnNjcmliZSgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKVxyXG5cclxuICAgIHJldHVybiB0aGlzLmNhcnRTdWJqZWN0XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVwcmVjYXRlZCBUaGUgbWV0aG9kIHNob3VsZCBub3QgYmUgdXNlZFxyXG4gICAqL1xyXG4gIGdldFZhcmlhbnRQcmljZURpc2NvdW50KGl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXIoKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKHVzZXIpID0+XHJcbiAgICAgICAgaWlmKFxyXG4gICAgICAgICAgKCkgPT4gdXNlci5pc1N1YnNjcmliZXIgJiYgISFpdGVtLnByaWNlLnN1YnNjcmliZXJQcmljZSxcclxuICAgICAgICAgIG9mKGl0ZW0ucHJpY2Uuc3Vic2NyaWJlclByaWNlKSxcclxuICAgICAgICAgIG9mKGl0ZW0ucHJpY2UucHJpY2UpLFxyXG4gICAgICAgICksXHJcbiAgICAgICksXHJcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoaXRlbS5wcmljZS5wcmljZSkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlSXRlbShpdGVtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgbWFwKChjaGVja291dCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gY2hlY2tvdXQubGluZUl0ZW1zLmZpbmRJbmRleCgobGluZUl0ZW0pID0+IGxpbmVJdGVtLmlkID09PSBpdGVtLmlkKVxyXG5cclxuICAgICAgICBpZiAoaW5kZXggPj0gMCkgY2hlY2tvdXQubGluZUl0ZW1zLnNwbGljZShpbmRleCwgMSlcclxuXHJcbiAgICAgICAgcmV0dXJuIGNoZWNrb3V0XHJcbiAgICAgIH0pLFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dCkpLFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVXNlckNhcnQodXNlcjogVXNlcik6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cclxuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dFVzZXIoQ2hlY2tvdXQudG9JbnN0YW5jZSh7IC4uLmNoZWNrb3V0LnRvUGxhaW4oKSwgdXNlciB9KSksXHJcbiAgICAgICksXHJcbiAgICAgIGNvbmNhdE1hcChhc3luYyAoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2VcclxuICAgICAgICAgIC51cGRhdGVDaGVja291dExpbmVJdGVtcyhcclxuICAgICAgICAgICAgQ2hlY2tvdXQudG9JbnN0YW5jZSh7XHJcbiAgICAgICAgICAgICAgLi4uY2hlY2tvdXQudG9QbGFpbigpLFxyXG4gICAgICAgICAgICAgIGxpbmVJdGVtczogY2hlY2tvdXQubGluZUl0ZW1zPy5sZW5ndGhcclxuICAgICAgICAgICAgICAgID8gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tvdXQubGluZUl0ZW1zPy5tYXAoYXN5bmMgKGl0ZW0pID0+IChhd2FpdCB0aGlzLmJ1aWxkTGluZUl0ZW0oeyBjaGVja291dCwgaXRlbSB9KSkubGluZUl0ZW0pLFxyXG4gICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICA6IFtdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC50b1Byb21pc2UoKSxcclxuICAgICAgKSxcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNsZWFyQ2FydCgpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5jbGVhckNoZWNrb3V0RnJvbVNlc3Npb24oKVxyXG4gICAgICAgIHJldHVybiBjaGVja291dFxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChvbGRDaGVja291dCkgPT4gdGhpcy5idWlsZENhcnRGcm9tQ2hlY2tvdXQob2xkQ2hlY2tvdXQpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZENhcnRGcm9tQ2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dChjaGVja291dERhdGEpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IGNoZWNrb3V0LmxpbmVJdGVtcyksXHJcbiAgICAgIGNvbmNhdE1hcCgobGluZUl0ZW1zKSA9PiBvZih0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChsaW5lSXRlbXMpKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUxpbmVJdGVtSW5DYXJ0ID0gKGxpbmVJdGVtOiBMaW5lSXRlbSwgcXVhbnRpdHk6IG51bWJlciwgY2hlY2tvdXQ/OiBDaGVja291dCk6IE9ic2VydmFibGU8Q2FydD4gPT5cclxuICAgIChpc05pbChjaGVja291dCkgPyB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpIDogb2YoY2hlY2tvdXQpKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0TG9hZGVkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXRlbXM6IExpbmVJdGVtW10gPSBbXVxyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zPy5tYXAoKGNoZWNrb3V0SXRlbSkgPT4gY2hlY2tvdXRJdGVtLmlkKS5pbmRleE9mKGxpbmVJdGVtLmlkKVxyXG5cclxuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zW2luZGV4XS5xdWFudGl0eSArPSBxdWFudGl0eVxyXG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zW2luZGV4XS5wcmljZVBhaWQgPSBsaW5lSXRlbS5wcmljZVBhaWRcclxuICAgICAgICB9IGVsc2VcclxuICAgICAgICAgIGNoZWNrb3V0TG9hZGVkLmxpbmVJdGVtcyA9IGl0ZW1zLmNvbmNhdChcclxuICAgICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zID8gY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zLmNvbmNhdChbbGluZUl0ZW1dKSA6IFtsaW5lSXRlbV0sXHJcbiAgICAgICAgICApXHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZVxyXG4gICAgICAgICAgLnVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKGNoZWNrb3V0TG9hZGVkKVxyXG4gICAgICAgICAgLnBpcGUobWFwKCh1cGRhdGVkQ2hlY2tvdXQpID0+IHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KHVwZGF0ZWRDaGVja291dC5saW5lSXRlbXMpKSlcclxuICAgICAgfSksXHJcbiAgICApXHJcblxyXG4gIHByaXZhdGUgZ2VuZXJhdGVDYXJ0T2JqZWN0ID0gKGl0ZW1zOiBMaW5lSXRlbVtdKTogQ2FydCA9PlxyXG4gICAgaXRlbXM/LnJlZHVjZShcclxuICAgICAgKGNhcnQsIGl0ZW0pID0+ICh7XHJcbiAgICAgICAgLi4uY2FydCxcclxuICAgICAgICBbaXRlbS5pZF06IExpbmVJdGVtLnRvSW5zdGFuY2Uoe1xyXG4gICAgICAgICAgLi4uKGNhcnRbaXRlbS5pZF0gfHwgaXRlbSksXHJcbiAgICAgICAgICBxdWFudGl0eTogKGNhcnRbaXRlbS5pZF0/LnF1YW50aXR5IHx8IDApICsgKGl0ZW0ucXVhbnRpdHkgPyBpdGVtLnF1YW50aXR5IDogMSksXHJcbiAgICAgICAgfSksXHJcbiAgICAgIH0pLFxyXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBMaW5lSXRlbT4sXHJcbiAgICApIHx8IHt9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRMaW5lSXRlbSA9IGFzeW5jICh7XHJcbiAgICBjaGVja291dCxcclxuICAgIGl0ZW0sXHJcbiAgICBxdWFudGl0eSxcclxuICB9OiB7XHJcbiAgICBjaGVja291dDogUmVxdWlyZWRDaGVja291dERhdGFcclxuICAgIGl0ZW06IExpbmVJdGVtXHJcbiAgICBxdWFudGl0eT86IG51bWJlclxyXG4gIH0pOiBQcm9taXNlPHsgY2hlY2tvdXQ6IFBhcnRpYWw8Q2hlY2tvdXQ+OyBsaW5lSXRlbTogTGluZUl0ZW0gfT4gPT4ge1xyXG4gICAgY29uc3QgcHJvZHVjdCA9IGF3YWl0IHRoaXMuZ2V0UHJvZHVjdERhdGEoaXRlbS5pZClcclxuXHJcbiAgICBpdGVtLnF1YW50aXR5ID0gaXRlbT8ucXVhbnRpdHkgfHwgY2hlY2tvdXQ/LmxpbmVJdGVtcz8uZmluZCgobGluZUl0ZW0pID0+IGxpbmVJdGVtLmlkID09PSBpdGVtLmlkKT8ucXVhbnRpdHkgfHwgMFxyXG5cclxuICAgIGlmICh0aGlzLmNoZWNrTWF4U3RvY2soaXRlbSwgcXVhbnRpdHkgfHwgMCkpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGVzY3VscGUhIFRlbW9zIGFwZW5hcyAnICsgaXRlbS5zdG9jaz8ucXVhbnRpdHkgKyAnIGVtIGVzdG9xdWUuJylcclxuXHJcbiAgICBjb25zdCBpbWFnZSA9IGl0ZW0uaW1hZ2UgfHwgaXRlbS5pbWFnZXM/LnNoaWZ0KClcclxuICAgIGNvbnN0IHsgaWQsIG5hbWUsIEVBTiwgc2x1Zywgc3RvY2ssIHByaWNlLCB3ZWlnaHQsIHNrdSwgdHlwZSB9ID0gaXRlbVxyXG4gICAgY29uc3QgaXNHaWZ0ID0gaXRlbS5pc0dpZnQgfHwgbnVsbFxyXG4gICAgY29uc3QgcHJpY2VQYWlkID0gdGhpcy5nZXRQcm9kdWN0UHJpY2Uoe1xyXG4gICAgICBwcm9kdWN0OiBpdGVtLFxyXG4gICAgICBzaG9wOiBjaGVja291dC5zaG9wIHx8IHRoaXMuZGVmYXVsdFNob3AsXHJcbiAgICAgIGlzU3Vic2NyaWJlcjogY2hlY2tvdXQudXNlcj8uaXNTdWJzY3JpYmVyLFxyXG4gICAgfSlcclxuXHJcbiAgICBSb3VuZFByb2R1Y3RQcmljZXNIZWxwZXIucm91bmRQcm9kdWN0UHJpY2VzKGl0ZW0pXHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2hlY2tvdXQsXHJcbiAgICAgIGxpbmVJdGVtOiBMaW5lSXRlbS50b0luc3RhbmNlKHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBuYW1lOiBuYW1lID8/IHByb2R1Y3QubmFtZSxcclxuICAgICAgICBFQU46IEVBTiA/PyBwcm9kdWN0LkVBTixcclxuICAgICAgICBicmFuZDogcHJvZHVjdC5icmFuZCxcclxuICAgICAgICBzbHVnOiBzbHVnID8/IHByb2R1Y3Quc2x1ZyxcclxuICAgICAgICBza3U6IHNrdSA/PyBwcm9kdWN0LnNrdSxcclxuICAgICAgICBzdG9jayxcclxuICAgICAgICBwcmljZTogdGhpcy5yb3VuZFByaWNlKHByaWNlKSxcclxuICAgICAgICBpbWFnZSxcclxuICAgICAgICB3ZWlnaHQ6IHdlaWdodCA/PyBwcm9kdWN0LndlaWdodCxcclxuICAgICAgICBxdWFudGl0eTogKGl0ZW0ucXVhbnRpdHkgfHwgMCkgKyAocXVhbnRpdHkgfHwgMCksXHJcbiAgICAgICAgcHJpY2VQYWlkLFxyXG4gICAgICAgIGNhdGVnb3JpZXM6IHByb2R1Y3QuY2F0ZWdvcmllcyA/PyBbXSxcclxuICAgICAgICBpc0dpZnQ6IGlzR2lmdCA/PyBudWxsLFxyXG4gICAgICAgIGNvc3RQcmljZTogcHJvZHVjdC5jb3N0UHJpY2UgPz8gMCxcclxuICAgICAgICB0eXBlLFxyXG4gICAgICB9KSxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcm91bmRQcmljZShwcm9kdWN0UHJpY2U6IFNob3BQcmljZSk6IFNob3BQcmljZSB7XHJcbiAgICBjb25zdCB7IHByaWNlLCBmdWxsUHJpY2UsIHN1YnNjcmliZXJQcmljZSB9ID0gcHJvZHVjdFByaWNlXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5wcm9kdWN0UHJpY2UsXHJcbiAgICAgIHByaWNlOiBOdW1iZXIocHJpY2UudG9GaXhlZCgyKSksXHJcbiAgICAgIGZ1bGxQcmljZTogTnVtYmVyKGZ1bGxQcmljZS50b0ZpeGVkKDIpKSxcclxuICAgICAgLi4uKHN1YnNjcmliZXJQcmljZSAmJiB7IHN1YnNjcmliZXJQcmljZTogTnVtYmVyKHN1YnNjcmliZXJQcmljZS50b0ZpeGVkKDIpKSB9KSxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZ2V0UHJvZHVjdERhdGEocHJvZHVjdElkOiBzdHJpbmcpOiBQcm9taXNlPFBhcnRpYWw8UHJvZHVjdD4+IHtcclxuICAgIGxldCBwcm9kdWN0OiBQcm9kdWN0XHJcbiAgICBsZXQgdmFyaWFudDogVmFyaWFudFxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIHByb2R1Y3QgPSBhd2FpdCB0aGlzLnByb2R1Y3RSZXBvc2l0b3J5LmdldCh7IGlkOiBwcm9kdWN0SWQgfSlcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikpIHRocm93IGVycm9yXHJcblxyXG4gICAgICBjb25zdCB7IGRhdGE6IHZhcmlhbnRzIH0gPSBhd2FpdCB0aGlzLnZhcmlhbnRSZXBvc2l0b3J5LmZpbmQoeyBmaWx0ZXJzOiB7IGlkOiBwcm9kdWN0SWQgfSB9KVxyXG5cclxuICAgICAgdmFyaWFudCA9IHZhcmlhbnRzLnNoaWZ0KClcclxuXHJcbiAgICAgIGlmICghdmFyaWFudCkgdGhyb3cgZXJyb3JcclxuXHJcbiAgICAgIHByb2R1Y3QgPSBhd2FpdCB0aGlzLnByb2R1Y3RSZXBvc2l0b3J5LmdldCh7IGlkOiB2YXJpYW50LnByb2R1Y3RJZCB9KVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnByb2R1Y3QudG9QbGFpbigpLFxyXG4gICAgICAuLi4odmFyaWFudCAmJiB7IC4uLnZhcmlhbnQudG9QbGFpbigpIH0pLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQcm9kdWN0UHJpY2UgPSAoe1xyXG4gICAgcHJvZHVjdCxcclxuICAgIGlzU3Vic2NyaWJlcixcclxuICB9OiB7XHJcbiAgICBwcm9kdWN0OiBMaW5lSXRlbVxyXG4gICAgc2hvcDogU2hvcHNcclxuICAgIGlzU3Vic2NyaWJlcjogYm9vbGVhblxyXG4gIH0pOiBudW1iZXIgPT4ge1xyXG4gICAgY29uc3QgaW5mbyA9IHByb2R1Y3QucHJpY2VcclxuXHJcbiAgICBpZiAocHJvZHVjdC5pc0dpZnQpIHJldHVybiAwXHJcblxyXG4gICAgcmV0dXJuIGlzU3Vic2NyaWJlciAmJiBpbmZvLnN1YnNjcmliZXJQcmljZSA+IDBcclxuICAgICAgPyBOdW1iZXIoaW5mby5zdWJzY3JpYmVyUHJpY2UudG9GaXhlZCgyKSlcclxuICAgICAgOiBOdW1iZXIoaW5mby5wcmljZS50b0ZpeGVkKDIpKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja01heFN0b2NrID0gKGl0ZW06IExpbmVJdGVtLCBxdWFudGl0eTogbnVtYmVyKSA9PiB7XHJcbiAgICBjb25zdCBtYXhTdG9jayA9IGl0ZW0uc3RvY2s/LnF1YW50aXR5IHx8IDBcclxuICAgIGNvbnN0IGN1cnJlbnRJdGVtQW1vdW50ID0gaXRlbS5xdWFudGl0eSB8fCAwXHJcblxyXG4gICAgcmV0dXJuIGN1cnJlbnRJdGVtQW1vdW50ICsgcXVhbnRpdHkgPiBtYXhTdG9ja1xyXG4gIH1cclxuXHJcbiAgZ2V0R2lmdHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChhc3luYyAoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICBjb25zdCBub3RHaWZ0SXRlbXM6IExpbmVJdGVtW10gPSBjaGVja291dC5saW5lSXRlbXMgPyBjaGVja291dC5saW5lSXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5pc0dpZnQpIDogW11cclxuXHJcbiAgICAgICAgaWYgKCFub3RHaWZ0SXRlbXMubGVuZ3RoKSByZXR1cm4geyAuLi5jaGVja291dCwgbGluZUl0ZW1zOiBbXSB9IGFzIENoZWNrb3V0XHJcblxyXG4gICAgICAgIGNvbnN0IGNhcnRUb3RhbCA9IG5vdEdpZnRJdGVtcy5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLnByaWNlUGFpZCAqIGIucXVhbnRpdHksIDApXHJcblxyXG4gICAgICAgIGNvbnN0IGNhbXBhaWducyA9IGF3YWl0IHRoaXMuYnV5MldpblJlcG9zaXRvcnlcclxuICAgICAgICAgIC5maW5kKHtcclxuICAgICAgICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgICAgICAgIGFjdGl2ZTogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgIHNob3A6IHsgb3BlcmF0b3I6IFdoZXJlLkVRVUFMUywgdmFsdWU6IHRoaXMuZGVmYXVsdFNob3AgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5kYXRhKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCdjYW1hcGluZ3MgZm91bmQnLCBjYW1wYWlnbnMpXHJcbiAgICAgICAgaWYgKCFjYW1wYWlnbnMubGVuZ3RoKSByZXR1cm4geyAuLi5jaGVja291dCwgbGluZUl0ZW1zOiBub3RHaWZ0SXRlbXMgfSBhcyBDaGVja291dFxyXG5cclxuICAgICAgICBjb25zdCBlbGVnaWJsZUNhbXBhaWduczogQnV5MldpbltdID0gW11cclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBjYW1wYWlnbiBvZiBjYW1wYWlnbnMpIHtcclxuICAgICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAnY2FtYXBpbmdzIHZhbGlkYXRpb24gZGFkZScsXHJcbiAgICAgICAgICAgICd0b2RheSBpcycsXHJcbiAgICAgICAgICAgIHRvZGF5LFxyXG4gICAgICAgICAgICAnc3RhcnREYXRlJyxcclxuICAgICAgICAgICAgY2FtcGFpZ24uc3RhcnREYXRlLmdldFRpbWUoKSxcclxuICAgICAgICAgICAgIShjYW1wYWlnbi5zdGFydERhdGUuZ2V0VGltZSgpIDw9IHRvZGF5KSxcclxuICAgICAgICAgICAgJ2VuZERhdGUnLFxyXG4gICAgICAgICAgICBjYW1wYWlnbi5lbmREYXRlLmdldFRpbWUoKSxcclxuICAgICAgICAgICAgIShjYW1wYWlnbi5lbmREYXRlLmdldFRpbWUoKSA+PSB0b2RheSksXHJcbiAgICAgICAgICAgIGNhbXBhaWduLm5hbWUsXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICBpZiAoIShjYW1wYWlnbi5zdGFydERhdGUuZ2V0VGltZSgpIDw9IHRvZGF5KSAmJiAhKGNhbXBhaWduLmVuZERhdGUuZ2V0VGltZSgpID49IHRvZGF5KSkgY29udGludWVcclxuXHJcbiAgICAgICAgICBpZiAoY2FtcGFpZ24uYWN0aXZlQ2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllc0NhbXBhaW5nID0gY2FtcGFpZ24uY2F0ZWdvcmllcy5tYXAoKGMpID0+IGMuaWQudG9TdHJpbmcoKSlcclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllc0NhbXBhaW5nRnVsbFRyZWUgPSBbXVxyXG5cclxuICAgICAgICAgICAgZm9yIChjb25zdCBpZCBvZiBjYXRlZ29yaWVzQ2FtcGFpbmcpIHtcclxuICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlSZXBvc2l0b3J5LmdldENoaWxkcmVuKHBhcnNlSW50KGlkKSlcclxuXHJcbiAgICAgICAgICAgICAgY2F0ZWdvcmllc0NhbXBhaW5nRnVsbFRyZWUucHVzaChpZCwgLi4uY2hpbGRyZW4ubWFwKChjKSA9PiBjLmlkLnRvU3RyaW5nKCkpKVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzQ2FtcGFpbmdUcmVlID0gWy4uLm5ldyBTZXQoY2F0ZWdvcmllc0NhbXBhaW5nRnVsbFRyZWUpXVxyXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJQcm9kdWN0c0NhdGVnb3JpZXMgPSBjaGVja291dC5saW5lSXRlbXMuZmlsdGVyKChsKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKCFsLmNhdGVnb3JpZXMgfHwgIWwuY2F0ZWdvcmllcz8ubGVuZ3RoKSByZXR1cm4gdHJ1ZVxyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gbC5jYXRlZ29yaWVzLnNvbWUoKGMpID0+IGNhdGVnb3JpZXNDYW1wYWluZ1RyZWUuc29tZSgoY2F0KSA9PiBjYXQgPT0gYykpXHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICBpZiAoZmlsdGVyUHJvZHVjdHNDYXRlZ29yaWVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGNhcnRUb3RhbENhdGVnb3JpZXMgPSBmaWx0ZXJQcm9kdWN0c0NhdGVnb3JpZXMucmVkdWNlKChhLCBiKSA9PiBhICsgYi5wcmljZVBhaWQgKiBiLnF1YW50aXR5LCAwKVxyXG5cclxuICAgICAgICAgICAgICBpZiAoY2FydFRvdGFsQ2F0ZWdvcmllcyA+PSBjYW1wYWlnbi5jYXJ0VmFsdWVNaW4pIGVsZWdpYmxlQ2FtcGFpZ25zLnB1c2goY2FtcGFpZ24pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChjYW1wYWlnbi5jYXJ0VmFsdWUgJiYgY2FtcGFpZ24uY2FydFZhbHVlID4gMCkge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjYXJ0IHZhbHVlJywgY2FtcGFpZ24uY2FydFZhbHVlLCBjYXJ0VG90YWwsIGNhbXBhaWduLmNhcnRWYWx1ZSA8PSBjYXJ0VG90YWwpXHJcbiAgICAgICAgICAgICAgaWYgKGNhbXBhaWduLmNhcnRWYWx1ZSA8PSBjYXJ0VG90YWwpIGVsZWdpYmxlQ2FtcGFpZ25zLnB1c2goY2FtcGFpZ24pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2VsZ2libGUgY2FtcGFpbnMnLCBlbGVnaWJsZUNhbXBhaWducylcclxuICAgICAgICBpZiAoIWVsZWdpYmxlQ2FtcGFpZ25zLmxlbmd0aCkgcmV0dXJuIHsgLi4uY2hlY2tvdXQsIGxpbmVJdGVtczogbm90R2lmdEl0ZW1zIH0gYXMgQ2hlY2tvdXRcclxuXHJcbiAgICAgICAgY29uc3QgY2FtcGFpbmduUHJvZHVjdHM6IFByb2R1Y3RbXVtdID0gW11cclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBjYW1wYWlnbiBvZiBlbGVnaWJsZUNhbXBhaWducykge1xyXG4gICAgICAgICAgbGV0IGVsZWdpYmxlUHJvZHVjdHMgPSBbXVxyXG5cclxuICAgICAgICAgIGZvciAoY29uc3QgcHJvZHVjdCBvZiBjYW1wYWlnbi5wcm9kdWN0cykge1xyXG4gICAgICAgICAgICBjb25zdCB7IGRhdGE6IHByb2R1Y3REYXRhIH0gPSBhd2FpdCB0aGlzLnByb2R1Y3RSZXBvc2l0b3J5LmZpbmQoeyBmaWx0ZXJzOiB7IHNrdTogcHJvZHVjdCB9IH0pXHJcblxyXG4gICAgICAgICAgICBpZiAoIXByb2R1Y3REYXRhLmxlbmd0aCkgY29udGludWVcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGdpZnQgPSBwcm9kdWN0RGF0YS5zaGlmdCgpXHJcblxyXG4gICAgICAgICAgICBpZiAoZ2lmdC5zdG9jay5xdWFudGl0eSA8IDEpIGNvbnRpbnVlXHJcblxyXG4gICAgICAgICAgICBlbGVnaWJsZVByb2R1Y3RzLnB1c2goZ2lmdClcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjYW1wYWluZ25Qcm9kdWN0cy5wdXNoKGVsZWdpYmxlUHJvZHVjdHMpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWNhbXBhaW5nblByb2R1Y3RzLmxlbmd0aCkgcmV0dXJuIHsgLi4uY2hlY2tvdXQsIGxpbmVJdGVtczogbm90R2lmdEl0ZW1zIH0gYXMgQ2hlY2tvdXRcclxuXHJcbiAgICAgICAgY29uc3QgZ2lmdHMgPSB0aGlzLmdpZnRUb0xpbmVJdGVtcyhbXS5jb25jYXQoLi4uY2FtcGFpbmduUHJvZHVjdHMpKVxyXG5cclxuICAgICAgICByZXR1cm4geyAuLi5jaGVja291dCwgbGluZUl0ZW1zOiBub3RHaWZ0SXRlbXMuY29uY2F0KGdpZnRzKSB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dCkpLFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnaWZ0VG9MaW5lSXRlbXMoaXRlbXM6IFByb2R1Y3RbXSk6IExpbmVJdGVtW10ge1xyXG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGJyYW5kLCBjYXRlZ29yaWVzLCBpZCwgbmFtZSwgcHJpY2UsIHNrdSwgc2x1Zywgc3RvY2ssIHdlaWdodCwgRUFOIH0gPSBpdGVtXHJcblxyXG4gICAgICBjb25zdCBpbWFnZSA9IGl0ZW0/Lm1pbmlhdHVyZXM/Lmxlbmd0aCA/IGl0ZW0ubWluaWF0dXJlc1swXSA6IGl0ZW0uaW1hZ2VzWzBdXHJcblxyXG4gICAgICByZXR1cm4gTGluZUl0ZW0udG9JbnN0YW5jZSh7XHJcbiAgICAgICAgYnJhbmQsXHJcbiAgICAgICAgY2F0ZWdvcmllcyxcclxuICAgICAgICBpZDogaWQudG9TdHJpbmcoKSxcclxuICAgICAgICBuYW1lLFxyXG4gICAgICAgIHByaWNlLFxyXG4gICAgICAgIHNrdSxcclxuICAgICAgICBzbHVnLFxyXG4gICAgICAgIHN0b2NrLFxyXG4gICAgICAgIHdlaWdodCxcclxuICAgICAgICBFQU4sXHJcbiAgICAgICAgaW1hZ2UsXHJcbiAgICAgICAgcHJpY2VQYWlkOiAwLFxyXG4gICAgICAgIHF1YW50aXR5OiAxLFxyXG4gICAgICAgIGlzR2lmdDogdHJ1ZSxcclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1411,9 +1411,9 @@ class CartService {
|
|
|
1411
1411
|
return Object.assign(Object.assign({}, checkout), { lineItems: notGiftItems });
|
|
1412
1412
|
const elegibleCampaigns = [];
|
|
1413
1413
|
for (const campaign of campaigns) {
|
|
1414
|
-
const today = new Date().
|
|
1415
|
-
console.log('camapings validation dade', 'today is', today, 'startDate', campaign.startDate.
|
|
1416
|
-
if (!(campaign.startDate.
|
|
1414
|
+
const today = new Date().getTime();
|
|
1415
|
+
console.log('camapings validation dade', 'today is', today, 'startDate', campaign.startDate.getTime(), !(campaign.startDate.getTime() <= today), 'endDate', campaign.endDate.getTime(), !(campaign.endDate.getTime() >= today), campaign.name);
|
|
1416
|
+
if (!(campaign.startDate.getTime() <= today) && !(campaign.endDate.getTime() >= today))
|
|
1417
1417
|
continue;
|
|
1418
1418
|
if (campaign.activeCategory) {
|
|
1419
1419
|
const categoriesCampaing = campaign.categories.map((c) => c.id.toString());
|