tango-app-ui-manage-settings 3.7.12 → 3.7.13
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/components/configurations/store-time-configuration/store-time-configuration.component.mjs +22 -21
- package/esm2022/lib/services/client-api.service.mjs +4 -1
- package/esm2022/lib/services/excel.service.mjs +37 -0
- package/fesm2022/tango-app-ui-manage-settings.mjs +62 -26
- package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
- package/lib/components/configurations/store-time-configuration/store-time-configuration.component.d.ts +3 -1
- package/lib/services/client-api.service.d.ts +1 -0
- package/lib/services/excel.service.d.ts +9 -0
- package/package.json +1 -1
|
@@ -232,6 +232,9 @@ export class ClientApiService {
|
|
|
232
232
|
getOpenCloseList(data) {
|
|
233
233
|
return this.http.post(`${this.storeApiUrl}/storeopencloseList`, data);
|
|
234
234
|
}
|
|
235
|
+
getOpenCloseListexport(data) {
|
|
236
|
+
return this.http.post(`${this.storeApiUrl}/storeopencloseList`, data, { responseType: 'arraybuffer' });
|
|
237
|
+
}
|
|
235
238
|
getUpdateOpenCloseList(data) {
|
|
236
239
|
return this.http.post(`${this.storeApiUrl}/updatestoreopencloseList`, data);
|
|
237
240
|
}
|
|
@@ -301,4 +304,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
301
304
|
providedIn: 'root'
|
|
302
305
|
}]
|
|
303
306
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
|
|
304
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBQzVDLE1BQU0sVUFBVSxHQUFHLGlGQUFpRixDQUFDO0FBQ3JHLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUtoQyxNQUFNLE9BQU8sZ0JBQWdCO0lBb0JQO0lBQTBCO0lBbkI5QyxZQUFZLENBQVE7SUFDcEIsZ0JBQWdCLENBQVM7SUFDekIsV0FBVyxDQUFTO0lBQ3BCLFlBQVksQ0FBUztJQUNyQixVQUFVLENBQVM7SUFDbkIsYUFBYSxDQUFTO0lBQ3RCLFlBQVksQ0FBUztJQUNyQixVQUFVLENBQVM7SUFFbkIsUUFBUSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFBO0lBQzFDLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQTtJQUMzQyxjQUFjLEdBQUcsSUFBSSxlQUFlLENBQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFDbEYsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFBO0lBQ2hELFdBQVcsQ0FBTTtJQUNqQixtQkFBbUIsQ0FBSztJ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LEtBQUssQ0FBQyxHQUFHLFNBQVMsWUFBWSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN2RCxPQUFPLEVBQUUsQ0FBQyxNQUFXLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUM7SUFDSixDQUFDO3dHQTlVVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuY29uc3QgRVhDRUxfVFlQRSA9ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtjaGFyc2V0PVVURi04JztcclxuY29uc3QgRVhDRUxfRVhURU5TSU9OID0gJy54bHN4JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENsaWVudEFwaVNlcnZpY2Uge1xyXG4gIGNsaWVudEFwaVVybDogc3RyaW5nXHJcbiAgbWlkZGxld2FyZUFwaVVybDogc3RyaW5nO1xyXG4gIHN0b3JlQXBpVXJsOiBzdHJpbmc7XHJcbiAgcmVwb3J0QXBpVXJsOiBzdHJpbmc7XHJcbiAgdXNlckFwaVVybDogc3RyaW5nO1xyXG4gIHRpY2tldHNBcGlVcmw6IHN0cmluZztcclxuICBtYXRBcHBBcGlVcmw6IHN0cmluZztcclxuICB6b25lQXBpVXJsOiBzdHJpbmc7XHJcblxyXG4gIGNsaWVudElkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKVxyXG4gIGNsaWVudERhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbClcclxuICBjbGllbnRGb3JtRGF0YSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7IHZhbHVlOiBudWxsLCB0eXBlOiBudWxsLCBmb3JtOiBudWxsIH0pXHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpXHJcbiAgZ3JvdXBBcGlVcmw6IGFueTtcclxuICBjb250cm9sY2VudGVyQXBpVXJsOmFueTtcclxuICBjbHVzdGVyQXBpVXJsOmFueVxyXG5cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnN1YnNjcmliZSgoZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0Vudmlyb25tZW50IGRhdGEgaW4gQ2xpZW50QXBpU2VydmljZTonLCBlKTtcclxuICAgICAgICB0aGlzLmNsaWVudEFwaVVybCA9IGUuY2xpZW50QXBpVXJsO1xyXG4gICAgICAgIHRoaXMubWlkZGxld2FyZUFwaVVybCA9IGUubWlkZGxld2FyZUFwaVVybDtcclxuICAgICAgICB0aGlzLnN0b3JlQXBpVXJsID0gZS5zdG9yZUFwaVVybDtcclxuICAgICAgICB0aGlzLnJlcG9ydEFwaVVybCA9IGUucmVwb3J0QXBpVXJsO1xyXG4gICAgICAgIHRoaXMudXNlckFwaVVybCA9IGUudXNlckFwaVVybDtcclxuICAgICAgICB0aGlzLnRpY2tldHNBcGlVcmwgPSBlLnRpY2tldHNBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5tYXRBcHBBcGlVcmwgPSBlLm1hdEFwcEFwaVVybDtcclxuICAgICAgICB0aGlzLmdyb3VwQXBpVXJsID0gZS5ncm91cEFwaVVybDtcclxuICAgICAgICB0aGlzLmNvbnRyb2xjZW50ZXJBcGlVcmwgPSBlLmNvbnRyb2xjZW50ZXJBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5jbHVzdGVyQXBpVXJsID0gZS5jbHVzdGVyQXBpVXJsO1xyXG4gICAgICAgIHRoaXMuem9uZUFwaVVybCA9IGUuem9uZUFwaVVybDtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUuc3Vic2NyaWJlKChlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGUpIHtcclxuICAgICAgICB0aGlzLmNsaWVudElkLm5leHQoZS5jbGllbnQpXHJcbiAgICAgIH0gZWxzZSBpZiAoIWUpIHtcclxuICAgICAgICBjb25zdCB1c2VyRGF0YTogYW55ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcInt9XCIpO1xyXG4gICAgICAgIHRoaXMuY2xpZW50SWQubmV4dCh1c2VyRGF0YT8uY2xpZW50SWQpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRCcmFuZERldGFpbHMoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFwaVVybH0vY2xpZW50LWRldGFpbHMvJHtpZH1gKVxyXG4gIH1cclxuIC8vIGZvb3RGYWxsIC0gc3RvcmUgcmFpc2VkIHRpY2tldCBkZXRhaWxzXHJcbiAgZ2V0Rm9vdGZhbGxTdG9yZVJhaXNlRGV0YWlscyhjbGllbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9saXN0LXN0b3JlLXJlcXVlc3Q/Y2xpZW50SWQ9JHtjbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgLy8gZm9vdEZhbGwgLSBkZXRhaWxzXHJcbiAgZ2V0Rm9vdGZhbGxEZXRhaWxzKGNsaWVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2dldC1mb290ZmFsbC1kaXJlY3RvcnktY29uZmlnP2NsaWVudElkPSR7Y2xpZW50SWR9YClcclxuICB9XHJcbiAgLy8gcmVzZXRTdG9yZUxpc3RcclxuICByZXNldFN0b3JlUmVxdWVzdExpc3QoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9yZXNldC1zdG9yZS1yZXF1ZXN0YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIC8vIGZvb3RmYWxsIC0gc3RvcmUgZm9vdGZhbGwgY29uZmlndXJhdGlvbiBkZXRhaWxzXHJcbiAgdXBkYXRlRm9vdGZhbGxEaXJlY3RvcnlDb25maWcoY2xpZW50SWQ6IHN0cmluZywgZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L3VwZGF0ZS1mb290ZmFsbC1kaXJlY3RvcnktY29uZmlnP2NsaWVudElkPSR7Y2xpZW50SWR9YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldENvdW50cnlDb2RlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5taWRkbGV3YXJlQXBpVXJsfS9jb3VudHJ5LWNvZGVgLClcclxuICB9XHJcbiAgZ2V0U3RvcmVzKGNsaWVudDphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zdG9yZUFwaVVybH0vc3RvcmUtYXNzaWduLWxpc3Q/Y2xpZW50SWQ9JHtjbGllbnQuY2xpZW50SWR9YCwpXHJcbiAgfVxyXG4gIGdldHVzZXIoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZ2V0T3V0c2lkZVVzZXJgLGRhdGEpXHJcbiAgfVxyXG4gIGdldEdyb3VwcyhjbGllbnQ6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZ3JvdXBBcGlVcmx9L2dyb3VwLWFzc2lnbi1saXN0P2NsaWVudElkPSR7Y2xpZW50LmNsaWVudElkfWAsKVxyXG4gIH1cclxuICBnZXRBc3NpZ25jbHVzdGVycyhkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5jbHVzdGVyQXBpVXJsfS9BbGxjbHVzdGVyTGlzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIGFkZEVtYWlsdXNlcihkYXRhOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9BZGRlbWFpbFVzZXJ2MmAsIGRhdGEpXHJcbiAgfVxyXG4gIGVkaXRFbWFpbHVzZXIoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZWRpdGVtYWlsVXNlcmAsIGRhdGEpXHJcbiAgfVxyXG4gIHVwZGF0ZUJyYW5kSW5mbyhpZDogc3RyaW5nLCBmcm9tZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9icmFuZC1pbmZvLyR7aWR9YCwgZnJvbWRhdGEpXHJcbiAgfVxyXG5cclxuICB1cGRhdGVCaWxsaW5nRGV0YWlscyhpZDogc3RyaW5nLCBmcm9tZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9iaWxsaW5nLWRldGFpbHMvJHtpZH1gLCBmcm9tZGF0YSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNpZ25hdG9yeURldGFpbHMoaWQ6IHN0cmluZywgZnJvbWRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmNsaWVudEFwaVVybH0vc2lnbmF0b3J5LWRldGFpbHMvJHtpZH1gLCBmcm9tZGF0YSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVRpY2tldENvbmZpZ3VyYXRpb24oaWQ6IHN0cmluZywgZnJvbWRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmNsaWVudEFwaVVybH0vdGlja2V0LWNvbmZpZ3VyYXRpb24vJHtpZH1gLCBmcm9tZGF0YSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZlYXR1cmVDb25maWd1cmF0aW9uKGlkOiBzdHJpbmcsIGZyb21kYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2ZlYXR1cmUtY29uZmlndXJhdGlvbi8ke2lkfWAsIGZyb21kYXRhKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlRG9tYWluRGV0YWlsQ29uZmlndXJhdGlvbihpZDogc3RyaW5nLCBmcm9tZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9kb21haW4tZGV0YWlscy8ke2lkfWAsIGZyb21kYXRhKVxyXG4gIH1cclxuICB1cGRhdGVVc2VyQ29uZmlndXJhdGlvbihpZDogc3RyaW5nLCBmcm9tZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuY2xpZW50QXBpVXJsfS91c2VyLWNvbmZpZ3VyYXRpb24vJHtpZH1gLCBmcm9tZGF0YSlcclxuICB9XHJcbiAgdXBkYXRlRG9jdW1lbnRzKGlkOiBzdHJpbmcsIGZyb21kYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2RvY3VtZW50cy8ke2lkfWAsIGZyb21kYXRhKVxyXG4gIH1cclxuICBnZXRTdG9yZUxpc3QoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnN0b3JlQXBpVXJsfS9nZXQtc3RvcmVzP2NsaWVudElkPSR7aWR9YClcclxuICB9XHJcblxyXG4gIHVwZGF0ZWF1ZGl0Q29uZmlndXJhdGlvbihmcm9tZGF0YTogYW55LCBpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmNsaWVudEFwaVVybH0vYXVkaXQtY29uZmlndXJhdGlvbi8ke2lkfWAsIGZyb21kYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0QXVkaXRDb25maWcoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFwaVVybH0vYXVkaXQtY29uZmlndXJhdGlvbi8ke2lkfWApXHJcbiAgfVxyXG5cclxuICBhZGRSZXBvcnQoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnJlcG9ydEFwaVVybH0vY3JlYXRlLXJlcG9ydC8ke2lkfWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRDbGllbnRSZXBvcnRzKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5yZXBvcnRBcGlVcmx9L2dldC1jbGllbnQtcmVwb3J0cy8ke2lkfWApXHJcbiAgfVxyXG5cclxuICBnZXRTaW5nbGVSZXBvcnQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnJlcG9ydEFwaVVybH0vZ2V0LXJlcG9ydC8ke2lkfWApXHJcbiAgfVxyXG5cclxuICB1cGRhdGVSZXBvcnQoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMucmVwb3J0QXBpVXJsfS91cGRhdGUtcmVwb3J0LyR7aWR9YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZVJlcG9ydChyZXBvcnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMucmVwb3J0QXBpVXJsfS9kZWxldGUtcmVwb3J0LyR7aWR9YCwgZGF0YSlcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5yZXBvcnRBcGlVcmx9L2RlbGV0ZS1yZXBvcnQvJHtyZXBvcnRJZH1gKTtcclxuICB9XHJcblxyXG4gIGdldENzbVVzZXJzKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFwaVVybH0vZ2V0LWNzbS11c2Vyc2ApXHJcbiAgfVxyXG5cclxuICBnZXRPcHNVc2VycygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2dldC1vcHMtdXNlcnNgKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsQ291bnRyaWVzKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLm1pZGRsZXdhcmVBcGlVcmx9L2dldC1jb3VudHJpZXNgKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsU3RhdGVzKGNvdW50cnk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLm1pZGRsZXdhcmVBcGlVcmx9L2dldC1jb3VudHJ5LXN0YXRlcz9jb3VudHJ5PSR7Y291bnRyeX1gKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsQ2l0aWVzKGNvdW50cnk6IHN0cmluZywgc3RhdGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLm1pZGRsZXdhcmVBcGlVcmx9L2dldC1zdGF0ZS1jaXRpZXM/Y291bnRyeT0ke2NvdW50cnl9JnN0YXRlPSR7c3RhdGV9YClcclxuICB9XHJcblxyXG4gIHNwb2NUYWJsZURhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQXBpVXJsfS9nZXQtc3BvYy1saXN0YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIHNwb2NUYWJsZURhdGFFeHBvcnQoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQXBpVXJsfS9nZXQtc3BvYy1saXN0YCwgZGF0YSwgeyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfSlcclxuICB9XHJcblxyXG4gIGdldFNwb2NEZXRhaWxzKHN0b3JlSWQ6IHN0cmluZywgc3BvY0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L2dldC1zcG9jLyR7c3RvcmVJZH1gLCB7IHNwb2NJZDogc3BvY0lkIH0pXHJcbiAgfVxyXG5cclxuICBkZWxldGVTcG9jRGV0YWlscyhzdG9yZUlkOiBzdHJpbmcsIHNwb2NJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQXBpVXJsfS9kZWxldGUtc3BvYy8ke3N0b3JlSWR9YCwgeyBzcG9jSWQ6IHNwb2NJZCB9KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU3BvY0RldGFpbHMoc3RvcmVJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L3VwZGF0ZS1zcG9jLyR7c3RvcmVJZH1gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZpdHlMb2dzKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2FjdGl2aXR5LWxvZ2AsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBhc3NpZ25Dc20oZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnVzZXJBcGlVcmx9L2Fzc2lnbi1jbGllbnRgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0QXNzaWduZWRVc2VycyhjbGllbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudXNlckFwaVVybH0vZ2V0LWFzc2lnbi1jbGllbnQ/Y2xpZW50SWQ9JHtjbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgZW1haWxVc2VyTGlzdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZW1haWxVc2VyTGlzdHYyYCwgZGF0YSlcclxuICB9XHJcbiAgZGVsZXRlT3V0c2lkZVVzZXIoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2RlbGV0ZU91dHNpZGVVc2VyYCwgZGF0YSlcclxuICB9XHJcbiAgT3V0c2lkZVVzZXJMaXN0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9PdXRzaWRlVXNlckxpc3R2MmAsIGRhdGEpXHJcbiAgfVxyXG4gIHNhdmVJbmZyYUVtYWlsQ29uZmlnKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9zYXZlSW5mcmFFbWFpbENvbmZpZ2AsIGRhdGEpXHJcbiAgfVxyXG5cclxuICB1cGRhdGVCcmFuZENvbmZpZyhpZDogc3RyaW5nLCBmcm9tZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMubWF0QXBwQXBpVXJsfS91cGRhdGVCcmFuZENvbmZpZz9jbGllbnRJZD0ke2lkfWAsIGZyb21kYXRhKVxyXG4gIH1cclxuICBnZXRCcmFuZENvbmZpZyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMubWF0QXBwQXBpVXJsfS9nZXRCcmFuZENvbmZpZz9jbGllbnRJZD0ke2lkfWApXHJcbiAgfVxyXG4gIHNhdmVBc1RlbXBsYXRlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogRVhDRUxfVFlQRVxyXG4gICAgfSk7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgRVhDRUxfRVhURU5TSU9OKTtcclxuICB9XHJcbiAgbG9jYXRpb25MaXN0RGF0YShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L2xvY2F0aW9uTGlzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldENsaWVudEluZm8oY2xpZW50PzphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIGlmICghY2xpZW50KSB7XHJcbiAgICAgIHJldHVybiBvZih7IGVycm9yOiAnSW52YWxpZCBjbGllbnRJZCcgfSk7IFxyXG4gICAgfVxyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5jbGllbnRBcGlVcmx9L2RldGFpbGVkLWNsaWVudC1jb3VudD9jbGllbnRJZD0ke2NsaWVudH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih1cmwpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcjxhbnk+KCdnZXRDbGllbnRJbmZvJywgeyBlcnJvcjogJ0FQSSByZXF1ZXN0IGZhaWxlZCcgfSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Y29udHJvbGNlbnRlclRhc2tMaXN0KGNsaWVudElkOmFueSl7XHJcbiAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jb250cm9sY2VudGVyQXBpVXJsfS9nZXQtdGFzay1saXN0P2NsaWVudElkPSR7Y2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIHVwZGF0ZWNvbnRyb2xjZW50ZXJUYXNrTGlzdChvYmo6YW55LGNsaWVudElkOmFueSl7XHJcbiAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jb250cm9sY2VudGVyQXBpVXJsfS91cHNlcnQtdGFzaz9jbGllbnRJZD0ke2NsaWVudElkfWAsb2JqKVxyXG4gIH1cclxuICBzdWJtaXRSZXZvcENvbmZpZyhvYmo6YW55KXtcclxuICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jbGllbnRBcGlVcmx9L3Jldm9wY29uZmlnYCxvYmopXHJcbiAgfVxyXG4gIGdldFJldm9wQ29uZmlnKGNsaWVudElkOmFueSl7XHJcbiAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L3Jldm9wY29uZmlnP2NsaWVudElkPSR7Y2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gZ2V0T3BlbkNsb3NlTGlzdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L3N0b3Jlb3BlbmNsb3NlTGlzdGAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRVcGRhdGVPcGVuQ2xvc2VMaXN0KCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L3VwZGF0ZXN0b3Jlb3BlbmNsb3NlTGlzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIFxyXG4gIC8vIE5ldyBBUEkgZm9yIHpvbmUgY29uZmlndXJhdGlvbiAtIGFkZCBjdXN0b20gdGFnIHYyXHJcbiAgZ2V0Wm9uZUNvbmZpZ1RhZ2dpbmdEZXRhaWxzKGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnpvbmVBcGlVcmx9L2dldFpvbmVUYWdnaW5nRGV0YWlsc2AsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBhZGRab25lQ29uZmlnQ3VzdG9tVGFnKGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy56b25lQXBpVXJsfS9hZGRab25lQ3VzdG9tVGFnYCxkYXRhKTtcclxuICB9XHJcblxyXG4gICBhZGRCdWxrWm9uZVVwbG9hZChkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuem9uZUFwaVVybH0vYnVsa1pvbmVVcGxvYWRgLGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlWm9uZUNvbmZpZ0N1c3RvbVRhZyhkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuem9uZUFwaVVybH0vdXBkYXRlWm9uZUN1c3RvbVRhZ2AsZGF0YSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVab25lQ29uZmlnQ3VzdG9tVGFnKGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy56b25lQXBpVXJsfS9kZWxldGVab25lQ3VzdG9tVGFnYCxkYXRhKTtcclxuICB9XHJcblxyXG4gIC8vIHpvbmUgZ3JvdXAgQVBJc1xyXG4gIGdldFpvbmVHcm91cERldGFpbHMoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuem9uZUFwaVVybH0vZ2V0Wm9uZUdyb3VwRGV0YWlsc2AsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRab25lR3JvdXBEZXRhaWxzRXhwb3J0KGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnpvbmVBcGlVcmx9L2dldFpvbmVHcm91cERldGFpbHNgLCBkYXRhLCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KVxyXG4gIH1cclxuXHJcbiAgYWRkWm9uZUdyb3VwKGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy56b25lQXBpVXJsfS9hZGRab25lR3JvdXBgLGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkQnVsa1pvbmVHcm91cChkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuem9uZUFwaVVybH0vYnVsa1pvbmVHcm91cFVwbG9hZGAsZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVab25lR3JvdXAoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnpvbmVBcGlVcmx9L3VwZGF0ZVpvbmVHcm91cGAsZGF0YSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVab25lR3JvdXAoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnpvbmVBcGlVcmx9L2RlbGV0ZVpvbmVHcm91cGAsZGF0YSk7XHJcbiAgfVxyXG5cclxuICAvLyB6b25lIHRhZ2dpbmcgZXhwb3J0IEFQSVxyXG4gIGdldFpvbmVDb25maWdUYWdnaW5nRGV0YWlsc0V4cG9ydChkYXRhOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy56b25lQXBpVXJsfS9nZXRab25lVGFnZ2luZ0RldGFpbHNgLCBkYXRhLCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KVxyXG4gIH1cclxuXHJcbiAgICBwdWJsaWMgZXhwb3J0QXNFeGNlbEZpbGUoanNvbjogYW55W10sIGV4Y2VsRmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICBjb25zdCB3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0ID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24pO1xyXG4gICAgICBjb25zdCB3b3JrYm9vazogWExTWC5Xb3JrQm9vayA9IHsgU2hlZXRzOiB7ICdkYXRhJzogd29ya3NoZWV0IH0sIFNoZWV0TmFtZXM6IFsnZGF0YSddIH07XHJcbiAgICAgIGNvbnN0IGV4Y2VsQnVmZmVyOiBhbnkgPSBYTFNYLndyaXRlKHdvcmtib29rLCB7IGJvb2tUeXBlOiAneGxzeCcsIHR5cGU6ICdhcnJheScgfSk7XHJcbiAgICAgIHRoaXMuc2F2ZUFzRXhjZWxGaWxlKGV4Y2VsQnVmZmVyLCBleGNlbEZpbGVOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2F2ZUFzRXhjZWxGaWxlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgICAgICB0eXBlOiBFWENFTF9UWVBFXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArICcgTGlzdCcgKyBFWENFTF9FWFRFTlNJT04pO1xyXG4gICAgICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3I8VD4ob3BlcmF0aW9uID0gJ29wZXJhdGlvbicsIHJlc3VsdD86IFQpIHtcclxuICAgIHJldHVybiAoZXJyb3I6IGFueSk6IE9ic2VydmFibGU8VD4gPT4ge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGAke29wZXJhdGlvbn0gZmFpbGVkOiAke2Vycm9yLm1lc3NhZ2V9YCk7XHJcbiAgICAgIHJldHVybiBvZihyZXN1bHQgYXMgVCk7XHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBQzVDLE1BQU0sVUFBVSxHQUFHLGlGQUFpRixDQUFDO0FBQ3JHLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUtoQyxNQUFNLE9BQU8sZ0JBQWdCO0lBb0JQO0lBQTBCO0lBbkI5QyxZQUFZLENBQVE7SUFDcEIsZ0JBQWdCLENBQVM7SUFDekIsV0FBVyxDQUFTO0lBQ3BCLFlBQVksQ0FBUztJQUNyQixVQUFVLENBQVM7SUFDbkIsYUFBYSxDQUFTO0lBQ3RCLFlBQVksQ0FBUztJQUNyQixVQUFVLENBQVM7SUFFbkIsUUFBUSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFBO0lBQzFDLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQTtJQUMzQyxjQUFjLEdBQUcsSUFBSSxlQUFlLENBQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFDbEYsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFBO0lBQ2hELFdBQVcsQ0FBTTtJQUNqQixtQkFBbUIsQ0FBSztJ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QU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxHQUFHLE9BQU8sR0FBRyxlQUFlLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUcsV0FBVyxDQUFJLFNBQVMsR0FBRyxXQUFXLEVBQUUsTUFBVTtRQUN4RCxPQUFPLENBQUMsS0FBVSxFQUFpQixFQUFFO1lBQ25DLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxTQUFTLFlBQVksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDdkQsT0FBTyxFQUFFLENBQUMsTUFBVyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDO0lBQ0osQ0FBQzt3R0FsVlUsZ0JBQWdCOzRHQUFoQixnQkFBZ0IsY0FGZixNQUFNOzs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmNvbnN0IEVYQ0VMX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCc7XHJcbmNvbnN0IEVYQ0VMX0VYVEVOU0lPTiA9ICcueGxzeCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbGllbnRBcGlTZXJ2aWNlIHtcclxuICBjbGllbnRBcGlVcmw6IHN0cmluZ1xyXG4gIG1pZGRsZXdhcmVBcGlVcmw6IHN0cmluZztcclxuICBzdG9yZUFwaVVybDogc3RyaW5nO1xyXG4gIHJlcG9ydEFwaVVybDogc3RyaW5nO1xyXG4gIHVzZXJBcGlVcmw6IHN0cmluZztcclxuICB0aWNrZXRzQXBpVXJsOiBzdHJpbmc7XHJcbiAgbWF0QXBwQXBpVXJsOiBzdHJpbmc7XHJcbiAgem9uZUFwaVVybDogc3RyaW5nO1xyXG5cclxuICBjbGllbnRJZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcclxuICBjbGllbnREYXRhID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpXHJcbiAgY2xpZW50Rm9ybURhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oeyB2YWx1ZTogbnVsbCwgdHlwZTogbnVsbCwgZm9ybTogbnVsbCB9KVxyXG4gIGRyb3BEb3duVHJpZ2dlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKVxyXG4gIGdyb3VwQXBpVXJsOiBhbnk7XHJcbiAgY29udHJvbGNlbnRlckFwaVVybDphbnk7XHJcbiAgY2x1c3RlckFwaVVybDphbnlcclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5zdWJzY3JpYmUoKGU6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdFbnZpcm9ubWVudCBkYXRhIGluIENsaWVudEFwaVNlcnZpY2U6JywgZSk7XHJcbiAgICAgICAgdGhpcy5jbGllbnRBcGlVcmwgPSBlLmNsaWVudEFwaVVybDtcclxuICAgICAgICB0aGlzLm1pZGRsZXdhcmVBcGlVcmwgPSBlLm1pZGRsZXdhcmVBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5zdG9yZUFwaVVybCA9IGUuc3RvcmVBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5yZXBvcnRBcGlVcmwgPSBlLnJlcG9ydEFwaVVybDtcclxuICAgICAgICB0aGlzLnVzZXJBcGlVcmwgPSBlLnVzZXJBcGlVcmw7XHJcbiAgICAgICAgdGhpcy50aWNrZXRzQXBpVXJsID0gZS50aWNrZXRzQXBpVXJsO1xyXG4gICAgICAgIHRoaXMubWF0QXBwQXBpVXJsID0gZS5tYXRBcHBBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5ncm91cEFwaVVybCA9IGUuZ3JvdXBBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5jb250cm9sY2VudGVyQXBpVXJsID0gZS5jb250cm9sY2VudGVyQXBpVXJsO1xyXG4gICAgICAgIHRoaXMuY2x1c3RlckFwaVVybCA9IGUuY2x1c3RlckFwaVVybDtcclxuICAgICAgICB0aGlzLnpvbmVBcGlVcmwgPSBlLnpvbmVBcGlVcmw7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlLnN1YnNjcmliZSgoZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJZC5uZXh0KGUuY2xpZW50KVxyXG4gICAgICB9IGVsc2UgaWYgKCFlKSB7XHJcbiAgICAgICAgY29uc3QgdXNlckRhdGE6IGFueSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJ7fVwiKTtcclxuICAgICAgICB0aGlzLmNsaWVudElkLm5leHQodXNlckRhdGE/LmNsaWVudElkKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0QnJhbmREZXRhaWxzKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2NsaWVudC1kZXRhaWxzLyR7aWR9YClcclxuICB9XHJcbiAvLyBmb290RmFsbCAtIHN0b3JlIHJhaXNlZCB0aWNrZXQgZGV0YWlsc1xyXG4gIGdldEZvb3RmYWxsU3RvcmVSYWlzZURldGFpbHMoY2xpZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFwaVVybH0vbGlzdC1zdG9yZS1yZXF1ZXN0P2NsaWVudElkPSR7Y2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIC8vIGZvb3RGYWxsIC0gZGV0YWlsc1xyXG4gIGdldEZvb3RmYWxsRGV0YWlscyhjbGllbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9nZXQtZm9vdGZhbGwtZGlyZWN0b3J5LWNvbmZpZz9jbGllbnRJZD0ke2NsaWVudElkfWApXHJcbiAgfVxyXG4gIC8vIHJlc2V0U3RvcmVMaXN0XHJcbiAgcmVzZXRTdG9yZVJlcXVlc3RMaXN0KGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmNsaWVudEFwaVVybH0vcmVzZXQtc3RvcmUtcmVxdWVzdGAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICAvLyBmb290ZmFsbCAtIHN0b3JlIGZvb3RmYWxsIGNvbmZpZ3VyYXRpb24gZGV0YWlsc1xyXG4gIHVwZGF0ZUZvb3RmYWxsRGlyZWN0b3J5Q29uZmlnKGNsaWVudElkOiBzdHJpbmcsIGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuY2xpZW50QXBpVXJsfS91cGRhdGUtZm9vdGZhbGwtZGlyZWN0b3J5LWNvbmZpZz9jbGllbnRJZD0ke2NsaWVudElkfWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRDb3VudHJ5Q29kZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMubWlkZGxld2FyZUFwaVVybH0vY291bnRyeS1jb2RlYCwpXHJcbiAgfVxyXG4gIGdldFN0b3JlcyhjbGllbnQ6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuc3RvcmVBcGlVcmx9L3N0b3JlLWFzc2lnbi1saXN0P2NsaWVudElkPSR7Y2xpZW50LmNsaWVudElkfWAsKVxyXG4gIH1cclxuICBnZXR1c2VyKGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2dldE91dHNpZGVVc2VyYCxkYXRhKVxyXG4gIH1cclxuICBnZXRHcm91cHMoY2xpZW50OmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmdyb3VwQXBpVXJsfS9ncm91cC1hc3NpZ24tbGlzdD9jbGllbnRJZD0ke2NsaWVudC5jbGllbnRJZH1gLClcclxuICB9XHJcbiAgZ2V0QXNzaWduY2x1c3RlcnMoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuY2x1c3RlckFwaVVybH0vQWxsY2x1c3Rlckxpc3RgLCBkYXRhKVxyXG4gIH1cclxuICBhZGRFbWFpbHVzZXIoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvQWRkZW1haWxVc2VydjJgLCBkYXRhKVxyXG4gIH1cclxuICBlZGl0RW1haWx1c2VyKGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2VkaXRlbWFpbFVzZXJgLCBkYXRhKVxyXG4gIH1cclxuICB1cGRhdGVCcmFuZEluZm8oaWQ6IHN0cmluZywgZnJvbWRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmNsaWVudEFwaVVybH0vYnJhbmQtaW5mby8ke2lkfWAsIGZyb21kYXRhKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlQmlsbGluZ0RldGFpbHMoaWQ6IHN0cmluZywgZnJvbWRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmNsaWVudEFwaVVybH0vYmlsbGluZy1kZXRhaWxzLyR7aWR9YCwgZnJvbWRhdGEpXHJcbiAgfVxyXG5cclxuICB1cGRhdGVTaWduYXRvcnlEZXRhaWxzKGlkOiBzdHJpbmcsIGZyb21kYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L3NpZ25hdG9yeS1kZXRhaWxzLyR7aWR9YCwgZnJvbWRhdGEpXHJcbiAgfVxyXG5cclxuICB1cGRhdGVUaWNrZXRDb25maWd1cmF0aW9uKGlkOiBzdHJpbmcsIGZyb21kYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L3RpY2tldC1jb25maWd1cmF0aW9uLyR7aWR9YCwgZnJvbWRhdGEpXHJcbiAgfVxyXG5cclxuICB1cGRhdGVGZWF0dXJlQ29uZmlndXJhdGlvbihpZDogc3RyaW5nLCBmcm9tZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9mZWF0dXJlLWNvbmZpZ3VyYXRpb24vJHtpZH1gLCBmcm9tZGF0YSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZURvbWFpbkRldGFpbENvbmZpZ3VyYXRpb24oaWQ6IHN0cmluZywgZnJvbWRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmNsaWVudEFwaVVybH0vZG9tYWluLWRldGFpbHMvJHtpZH1gLCBmcm9tZGF0YSlcclxuICB9XHJcbiAgdXBkYXRlVXNlckNvbmZpZ3VyYXRpb24oaWQ6IHN0cmluZywgZnJvbWRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmNsaWVudEFwaVVybH0vdXNlci1jb25maWd1cmF0aW9uLyR7aWR9YCwgZnJvbWRhdGEpXHJcbiAgfVxyXG4gIHVwZGF0ZURvY3VtZW50cyhpZDogc3RyaW5nLCBmcm9tZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9kb2N1bWVudHMvJHtpZH1gLCBmcm9tZGF0YSlcclxuICB9XHJcbiAgZ2V0U3RvcmVMaXN0KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zdG9yZUFwaVVybH0vZ2V0LXN0b3Jlcz9jbGllbnRJZD0ke2lkfWApXHJcbiAgfVxyXG5cclxuICB1cGRhdGVhdWRpdENvbmZpZ3VyYXRpb24oZnJvbWRhdGE6IGFueSwgaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2F1ZGl0LWNvbmZpZ3VyYXRpb24vJHtpZH1gLCBmcm9tZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEF1ZGl0Q29uZmlnKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2F1ZGl0LWNvbmZpZ3VyYXRpb24vJHtpZH1gKVxyXG4gIH1cclxuXHJcbiAgYWRkUmVwb3J0KGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5yZXBvcnRBcGlVcmx9L2NyZWF0ZS1yZXBvcnQvJHtpZH1gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2xpZW50UmVwb3J0cyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMucmVwb3J0QXBpVXJsfS9nZXQtY2xpZW50LXJlcG9ydHMvJHtpZH1gKVxyXG4gIH1cclxuXHJcbiAgZ2V0U2luZ2xlUmVwb3J0KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5yZXBvcnRBcGlVcmx9L2dldC1yZXBvcnQvJHtpZH1gKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVwb3J0KGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLnJlcG9ydEFwaVVybH0vdXBkYXRlLXJlcG9ydC8ke2lkfWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBkZWxldGVSZXBvcnQocmVwb3J0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLnJlcG9ydEFwaVVybH0vZGVsZXRlLXJlcG9ydC8ke2lkfWAsIGRhdGEpXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMucmVwb3J0QXBpVXJsfS9kZWxldGUtcmVwb3J0LyR7cmVwb3J0SWR9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRDc21Vc2VycygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2dldC1jc20tdXNlcnNgKVxyXG4gIH1cclxuXHJcbiAgZ2V0T3BzVXNlcnMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9nZXQtb3BzLXVzZXJzYClcclxuICB9XHJcblxyXG4gIGdldEFsbENvdW50cmllcygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5taWRkbGV3YXJlQXBpVXJsfS9nZXQtY291bnRyaWVzYClcclxuICB9XHJcblxyXG4gIGdldEFsbFN0YXRlcyhjb3VudHJ5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5taWRkbGV3YXJlQXBpVXJsfS9nZXQtY291bnRyeS1zdGF0ZXM/Y291bnRyeT0ke2NvdW50cnl9YClcclxuICB9XHJcblxyXG4gIGdldEFsbENpdGllcyhjb3VudHJ5OiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5taWRkbGV3YXJlQXBpVXJsfS9nZXQtc3RhdGUtY2l0aWVzP2NvdW50cnk9JHtjb3VudHJ5fSZzdGF0ZT0ke3N0YXRlfWApXHJcbiAgfVxyXG5cclxuICBzcG9jVGFibGVEYXRhKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vZ2V0LXNwb2MtbGlzdGAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBzcG9jVGFibGVEYXRhRXhwb3J0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vZ2V0LXNwb2MtbGlzdGAsIGRhdGEsIHsgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIH0pXHJcbiAgfVxyXG5cclxuICBnZXRTcG9jRGV0YWlscyhzdG9yZUlkOiBzdHJpbmcsIHNwb2NJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQXBpVXJsfS9nZXQtc3BvYy8ke3N0b3JlSWR9YCwgeyBzcG9jSWQ6IHNwb2NJZCB9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlU3BvY0RldGFpbHMoc3RvcmVJZDogc3RyaW5nLCBzcG9jSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vZGVsZXRlLXNwb2MvJHtzdG9yZUlkfWAsIHsgc3BvY0lkOiBzcG9jSWQgfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNwb2NEZXRhaWxzKHN0b3JlSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQXBpVXJsfS91cGRhdGUtc3BvYy8ke3N0b3JlSWR9YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEFjdGl2aXR5TG9ncyhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9hY3Rpdml0eS1sb2dgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgYXNzaWduQ3NtKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy51c2VyQXBpVXJsfS9hc3NpZ24tY2xpZW50YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEFzc2lnbmVkVXNlcnMoY2xpZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnVzZXJBcGlVcmx9L2dldC1hc3NpZ24tY2xpZW50P2NsaWVudElkPSR7Y2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIGVtYWlsVXNlckxpc3QoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2VtYWlsVXNlckxpc3R2MmAsIGRhdGEpXHJcbiAgfVxyXG4gIGRlbGV0ZU91dHNpZGVVc2VyKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9kZWxldGVPdXRzaWRlVXNlcmAsIGRhdGEpXHJcbiAgfVxyXG4gIE91dHNpZGVVc2VyTGlzdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvT3V0c2lkZVVzZXJMaXN0djJgLCBkYXRhKVxyXG4gIH1cclxuICBzYXZlSW5mcmFFbWFpbENvbmZpZyhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvc2F2ZUluZnJhRW1haWxDb25maWdgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlQnJhbmRDb25maWcoaWQ6IHN0cmluZywgZnJvbWRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLm1hdEFwcEFwaVVybH0vdXBkYXRlQnJhbmRDb25maWc/Y2xpZW50SWQ9JHtpZH1gLCBmcm9tZGF0YSlcclxuICB9XHJcbiAgZ2V0QnJhbmRDb25maWcoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLm1hdEFwcEFwaVVybH0vZ2V0QnJhbmRDb25maWc/Y2xpZW50SWQ9JHtpZH1gKVxyXG4gIH1cclxuICBzYXZlQXNUZW1wbGF0ZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcclxuICAgIH0pO1xyXG4gICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArIEVYQ0VMX0VYVEVOU0lPTik7XHJcbiAgfVxyXG4gIGxvY2F0aW9uTGlzdERhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQXBpVXJsfS9sb2NhdGlvbkxpc3RgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRDbGllbnRJbmZvKGNsaWVudD86YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICBpZiAoIWNsaWVudCkge1xyXG4gICAgICByZXR1cm4gb2YoeyBlcnJvcjogJ0ludmFsaWQgY2xpZW50SWQnIH0pOyBcclxuICAgIH1cclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuY2xpZW50QXBpVXJsfS9kZXRhaWxlZC1jbGllbnQtY291bnQ/Y2xpZW50SWQ9JHtjbGllbnR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odXJsKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3I8YW55PignZ2V0Q2xpZW50SW5mbycsIHsgZXJyb3I6ICdBUEkgcmVxdWVzdCBmYWlsZWQnIH0pKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldGNvbnRyb2xjZW50ZXJUYXNrTGlzdChjbGllbnRJZDphbnkpe1xyXG4gICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY29udHJvbGNlbnRlckFwaVVybH0vZ2V0LXRhc2stbGlzdD9jbGllbnRJZD0ke2NsaWVudElkfWApXHJcbiAgfVxyXG5cclxuICB1cGRhdGVjb250cm9sY2VudGVyVGFza0xpc3Qob2JqOmFueSxjbGllbnRJZDphbnkpe1xyXG4gICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuY29udHJvbGNlbnRlckFwaVVybH0vdXBzZXJ0LXRhc2s/Y2xpZW50SWQ9JHtjbGllbnRJZH1gLG9iailcclxuICB9XHJcbiAgc3VibWl0UmV2b3BDb25maWcob2JqOmFueSl7XHJcbiAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9yZXZvcGNvbmZpZ2Asb2JqKVxyXG4gIH1cclxuICBnZXRSZXZvcENvbmZpZyhjbGllbnRJZDphbnkpe1xyXG4gICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9yZXZvcGNvbmZpZz9jbGllbnRJZD0ke2NsaWVudElkfWApXHJcbiAgfVxyXG5cclxuIGdldE9wZW5DbG9zZUxpc3QoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQXBpVXJsfS9zdG9yZW9wZW5jbG9zZUxpc3RgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0T3BlbkNsb3NlTGlzdGV4cG9ydChkYXRhOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vc3RvcmVvcGVuY2xvc2VMaXN0YCwgZGF0YSwgeyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfSlcclxuICB9XHJcbiAgXHJcbiAgZ2V0VXBkYXRlT3BlbkNsb3NlTGlzdCggZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQXBpVXJsfS91cGRhdGVzdG9yZW9wZW5jbG9zZUxpc3RgLCBkYXRhKVxyXG4gIH1cclxuICBcclxuICAvLyBOZXcgQVBJIGZvciB6b25lIGNvbmZpZ3VyYXRpb24gLSBhZGQgY3VzdG9tIHRhZyB2MlxyXG4gIGdldFpvbmVDb25maWdUYWdnaW5nRGV0YWlscyhkYXRhOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy56b25lQXBpVXJsfS9nZXRab25lVGFnZ2luZ0RldGFpbHNgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgYWRkWm9uZUNvbmZpZ0N1c3RvbVRhZyhkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuem9uZUFwaVVybH0vYWRkWm9uZUN1c3RvbVRhZ2AsZGF0YSk7XHJcbiAgfVxyXG5cclxuICAgYWRkQnVsa1pvbmVVcGxvYWQoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnpvbmVBcGlVcmx9L2J1bGtab25lVXBsb2FkYCxkYXRhKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVpvbmVDb25maWdDdXN0b21UYWcoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnpvbmVBcGlVcmx9L3VwZGF0ZVpvbmVDdXN0b21UYWdgLGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlWm9uZUNvbmZpZ0N1c3RvbVRhZyhkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuem9uZUFwaVVybH0vZGVsZXRlWm9uZUN1c3RvbVRhZ2AsZGF0YSk7XHJcbiAgfVxyXG5cclxuICAvLyB6b25lIGdyb3VwIEFQSXNcclxuICBnZXRab25lR3JvdXBEZXRhaWxzKGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnpvbmVBcGlVcmx9L2dldFpvbmVHcm91cERldGFpbHNgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0Wm9uZUdyb3VwRGV0YWlsc0V4cG9ydChkYXRhOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy56b25lQXBpVXJsfS9nZXRab25lR3JvdXBEZXRhaWxzYCwgZGF0YSwgeyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfSlcclxuICB9XHJcblxyXG4gIGFkZFpvbmVHcm91cChkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuem9uZUFwaVVybH0vYWRkWm9uZUdyb3VwYCxkYXRhKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZEJ1bGtab25lR3JvdXAoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnpvbmVBcGlVcmx9L2J1bGtab25lR3JvdXBVcGxvYWRgLGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlWm9uZUdyb3VwKGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy56b25lQXBpVXJsfS91cGRhdGVab25lR3JvdXBgLGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlWm9uZUdyb3VwKGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy56b25lQXBpVXJsfS9kZWxldGVab25lR3JvdXBgLGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLy8gem9uZSB0YWdnaW5nIGV4cG9ydCBBUElcclxuICBnZXRab25lQ29uZmlnVGFnZ2luZ0RldGFpbHNFeHBvcnQoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuem9uZUFwaVVybH0vZ2V0Wm9uZVRhZ2dpbmdEZXRhaWxzYCwgZGF0YSwgeyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfSlcclxuICB9XHJcblxyXG4gICAgcHVibGljIGV4cG9ydEFzRXhjZWxGaWxlKGpzb246IGFueVtdLCBleGNlbEZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgY29uc3Qgd29ya3NoZWV0OiBYTFNYLldvcmtTaGVldCA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChqc29uKTtcclxuICAgICAgY29uc3Qgd29ya2Jvb2s6IFhMU1guV29ya0Jvb2sgPSB7IFNoZWV0czogeyAnZGF0YSc6IHdvcmtzaGVldCB9LCBTaGVldE5hbWVzOiBbJ2RhdGEnXSB9O1xyXG4gICAgICBjb25zdCBleGNlbEJ1ZmZlcjogYW55ID0gWExTWC53cml0ZSh3b3JrYm9vaywgeyBib29rVHlwZTogJ3hsc3gnLCB0eXBlOiAnYXJyYXknIH0pO1xyXG4gICAgICB0aGlzLnNhdmVBc0V4Y2VsRmlsZShleGNlbEJ1ZmZlciwgZXhjZWxGaWxlTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNhdmVBc0V4Y2VsRmlsZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xyXG4gICAgICAgICAgdHlwZTogRVhDRUxfVFlQRVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyAnIExpc3QnICsgRVhDRUxfRVhURU5TSU9OKTtcclxuICAgICAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUVycm9yPFQ+KG9wZXJhdGlvbiA9ICdvcGVyYXRpb24nLCByZXN1bHQ/OiBUKSB7XHJcbiAgICByZXR1cm4gKGVycm9yOiBhbnkpOiBPYnNlcnZhYmxlPFQ+ID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcihgJHtvcGVyYXRpb259IGZhaWxlZDogJHtlcnJvci5tZXNzYWdlfWApO1xyXG4gICAgICByZXR1cm4gb2YocmVzdWx0IGFzIFQpO1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as FileSaver from 'file-saver';
|
|
3
|
+
import * as XLSX from 'xlsx';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
|
|
6
|
+
const EXCEL_EXTENSION = '.xlsx';
|
|
7
|
+
export class ExcelService {
|
|
8
|
+
constructor() { }
|
|
9
|
+
exportAsExcelFile(json, excelFileName) {
|
|
10
|
+
const worksheet = XLSX.utils.json_to_sheet(json);
|
|
11
|
+
const workbook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
|
|
12
|
+
const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
|
|
13
|
+
this.saveAsExcelFile(excelBuffer, excelFileName);
|
|
14
|
+
}
|
|
15
|
+
saveAsExcelFile(buffer, fileName) {
|
|
16
|
+
console.log(buffer, fileName);
|
|
17
|
+
const data = new Blob([buffer], {
|
|
18
|
+
type: EXCEL_TYPE
|
|
19
|
+
});
|
|
20
|
+
FileSaver.saveAs(data, fileName + 'list' + EXCEL_EXTENSION);
|
|
21
|
+
}
|
|
22
|
+
saveAsTemplate(buffer, fileName) {
|
|
23
|
+
const data = new Blob([buffer], {
|
|
24
|
+
type: EXCEL_TYPE
|
|
25
|
+
});
|
|
26
|
+
FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);
|
|
27
|
+
}
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExcelService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExcelService, providedIn: 'root' });
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExcelService, decorators: [{
|
|
32
|
+
type: Injectable,
|
|
33
|
+
args: [{
|
|
34
|
+
providedIn: 'root'
|
|
35
|
+
}]
|
|
36
|
+
}], ctorParameters: () => [] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL3NlcnZpY2VzL2V4Y2VsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQzs7QUFFN0IsTUFBTSxVQUFVLEdBQUcsaUZBQWlGLENBQUM7QUFDckcsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDO0FBS2hDLE1BQU0sT0FBTyxZQUFZO0lBR3ZCLGdCQUFnQixDQUFDO0lBRVYsaUJBQWlCLENBQUMsSUFBVyxFQUFFLGFBQXFCO1FBQ3pELE1BQU0sU0FBUyxHQUFtQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRSxNQUFNLFFBQVEsR0FBa0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN4RixNQUFNLFdBQVcsR0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFXLEVBQUUsUUFBZ0I7UUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFOUIsTUFBTSxJQUFJLEdBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNwQyxJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsTUFBTSxHQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxjQUFjLENBQUMsTUFBVyxFQUFFLFFBQWdCO1FBQ2xELE1BQU0sSUFBSSxHQUFTLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDcEMsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxHQUFHLGVBQWUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7d0dBMUJVLFlBQVk7NEdBQVosWUFBWSxjQUZYLE1BQU07OzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcblxyXG5jb25zdCBFWENFTF9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnO1xyXG5jb25zdCBFWENFTF9FWFRFTlNJT04gPSAnLnhsc3gnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRXhjZWxTZXJ2aWNlIHtcclxuXHJcbiAgXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgcHVibGljIGV4cG9ydEFzRXhjZWxGaWxlKGpzb246IGFueVtdLCBleGNlbEZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHdvcmtzaGVldDogWExTWC5Xb3JrU2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoanNvbik7XHJcbiAgICBjb25zdCB3b3JrYm9vazogWExTWC5Xb3JrQm9vayA9IHsgU2hlZXRzOiB7ICdkYXRhJzogd29ya3NoZWV0IH0sIFNoZWV0TmFtZXM6IFsnZGF0YSddIH07XHJcbiAgICBjb25zdCBleGNlbEJ1ZmZlcjogYW55ID0gWExTWC53cml0ZSh3b3JrYm9vaywgeyBib29rVHlwZTogJ3hsc3gnLCB0eXBlOiAnYXJyYXknIH0pO1xyXG4gICAgdGhpcy5zYXZlQXNFeGNlbEZpbGUoZXhjZWxCdWZmZXIsIGV4Y2VsRmlsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVBc0V4Y2VsRmlsZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coYnVmZmVyLCBmaWxlTmFtZSk7XHJcbiAgICBcclxuICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xyXG4gICAgICB0eXBlOiBFWENFTF9UWVBFXHJcbiAgICB9KTtcclxuICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyAnbGlzdCcrIEVYQ0VMX0VYVEVOU0lPTik7XHJcbiAgfVxyXG4gIFxyXG4gIHByaXZhdGUgc2F2ZUFzVGVtcGxhdGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xyXG4gICAgICB0eXBlOiBFWENFTF9UWVBFXHJcbiAgICB9KTtcclxuICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyBFWENFTF9FWFRFTlNJT04pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -33,8 +33,8 @@ import { MatChipsModule } from '@angular/material/chips';
|
|
|
33
33
|
import { MatIconModule } from '@angular/material/icon';
|
|
34
34
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
35
35
|
|
|
36
|
-
const EXCEL_TYPE$
|
|
37
|
-
const EXCEL_EXTENSION$
|
|
36
|
+
const EXCEL_TYPE$2 = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
|
|
37
|
+
const EXCEL_EXTENSION$2 = '.xlsx';
|
|
38
38
|
class PaymentSubscriptionService {
|
|
39
39
|
http;
|
|
40
40
|
gs;
|
|
@@ -79,15 +79,15 @@ class PaymentSubscriptionService {
|
|
|
79
79
|
}
|
|
80
80
|
saveAsExcelFile(buffer, fileName) {
|
|
81
81
|
const data = new Blob([buffer], {
|
|
82
|
-
type: EXCEL_TYPE$
|
|
82
|
+
type: EXCEL_TYPE$2
|
|
83
83
|
});
|
|
84
|
-
FileSaver.saveAs(data, fileName + 'list' + EXCEL_EXTENSION$
|
|
84
|
+
FileSaver.saveAs(data, fileName + 'list' + EXCEL_EXTENSION$2);
|
|
85
85
|
}
|
|
86
86
|
saveAsTemplate(buffer, fileName) {
|
|
87
87
|
const data = new Blob([buffer], {
|
|
88
|
-
type: EXCEL_TYPE$
|
|
88
|
+
type: EXCEL_TYPE$2
|
|
89
89
|
});
|
|
90
|
-
FileSaver.saveAs(data, fileName + EXCEL_EXTENSION$
|
|
90
|
+
FileSaver.saveAs(data, fileName + EXCEL_EXTENSION$2);
|
|
91
91
|
}
|
|
92
92
|
destroy$ = new Subject();
|
|
93
93
|
ngOnDestroy() {
|
|
@@ -397,8 +397,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
397
397
|
type: Input
|
|
398
398
|
}] } });
|
|
399
399
|
|
|
400
|
-
const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
|
|
401
|
-
const EXCEL_EXTENSION = '.xlsx';
|
|
400
|
+
const EXCEL_TYPE$1 = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
|
|
401
|
+
const EXCEL_EXTENSION$1 = '.xlsx';
|
|
402
402
|
class ClientApiService {
|
|
403
403
|
http;
|
|
404
404
|
gs;
|
|
@@ -594,9 +594,9 @@ class ClientApiService {
|
|
|
594
594
|
}
|
|
595
595
|
saveAsTemplate(buffer, fileName) {
|
|
596
596
|
const data = new Blob([buffer], {
|
|
597
|
-
type: EXCEL_TYPE
|
|
597
|
+
type: EXCEL_TYPE$1
|
|
598
598
|
});
|
|
599
|
-
FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);
|
|
599
|
+
FileSaver.saveAs(data, fileName + EXCEL_EXTENSION$1);
|
|
600
600
|
}
|
|
601
601
|
locationListData(data) {
|
|
602
602
|
return this.http.post(`${this.storeApiUrl}/locationList`, data);
|
|
@@ -623,6 +623,9 @@ class ClientApiService {
|
|
|
623
623
|
getOpenCloseList(data) {
|
|
624
624
|
return this.http.post(`${this.storeApiUrl}/storeopencloseList`, data);
|
|
625
625
|
}
|
|
626
|
+
getOpenCloseListexport(data) {
|
|
627
|
+
return this.http.post(`${this.storeApiUrl}/storeopencloseList`, data, { responseType: 'arraybuffer' });
|
|
628
|
+
}
|
|
626
629
|
getUpdateOpenCloseList(data) {
|
|
627
630
|
return this.http.post(`${this.storeApiUrl}/updatestoreopencloseList`, data);
|
|
628
631
|
}
|
|
@@ -673,9 +676,9 @@ class ClientApiService {
|
|
|
673
676
|
}
|
|
674
677
|
saveAsExcelFile(buffer, fileName) {
|
|
675
678
|
const data = new Blob([buffer], {
|
|
676
|
-
type: EXCEL_TYPE
|
|
679
|
+
type: EXCEL_TYPE$1
|
|
677
680
|
});
|
|
678
|
-
FileSaver.saveAs(data, fileName + ' List' + EXCEL_EXTENSION);
|
|
681
|
+
FileSaver.saveAs(data, fileName + ' List' + EXCEL_EXTENSION$1);
|
|
679
682
|
}
|
|
680
683
|
handleError(operation = 'operation', result) {
|
|
681
684
|
return (error) => {
|
|
@@ -8155,7 +8158,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
8155
8158
|
args: [{ selector: 'lib-control-center-configuration', template: "<div class=\"sub-text mb-5\">Define CCTV flags of your choice</div>\r\n<div class=\"outer-container\">\r\n <div class=\"input-container form-control\">\r\n <ng-container *ngFor=\"let details of taskDetails;let i = index\">\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{details}}</span>\r\n <span (click)=\"removeTask(i)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\" stroke-width=\"1.5\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <input style=\"min-height: 44px; margin-left:3px\" [(ngModel)]=\"addedTask\" (change)=\"addNewTask()\" type=\"text\"\r\n id=\"emailValue\">\r\n </div>\r\n</div>\r\n<div class=\"w-100 mt-10\">\r\n <div *ngIf=\"(gs.userAccess | async)?.Global_Configuration_isEdit\" class=\"d-flex justify-content-end\">\r\n <button class=\"btn btn-sm btn-outline me-5\" (click)=\"cancelChanges()\">Cancel</button>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"saveChanges()\">Save Changes</button>\r\n </div>\r\n</div>\r\n", styles: [".sub-text{color:var(--Gray-500, #667085);font-size:16px;font-weight:500;line-height:24px}.badge-container{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;min-height:44px;max-height:200px!important;overflow-y:scroll;display:flex;flex-wrap:wrap}.badge-container input{float:right}.outer-container{position:relative}.outer-container .form-control{padding-top:0;padding-bottom:0}.outer-container .input-container{border:1px solid black;height:100%;width:100%;display:flex;flex-wrap:wrap;border:1px solid #D0D5DD}.outer-container .input-container input{all:unset;flex:1;min-width:50px}.outer-container .input-container .chip{margin:10px 0 10px 10px;padding:3px 10px;border-radius:16px;background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .chip:nth-child(1){margin-left:0}\n"] }]
|
|
8156
8159
|
}], ctorParameters: () => [{ type: ClientApiService }, { type: i4.ToastService }, { type: i3.GlobalStateService }] });
|
|
8157
8160
|
|
|
8161
|
+
const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
|
|
8162
|
+
const EXCEL_EXTENSION = '.xlsx';
|
|
8163
|
+
class ExcelService {
|
|
8164
|
+
constructor() { }
|
|
8165
|
+
exportAsExcelFile(json, excelFileName) {
|
|
8166
|
+
const worksheet = XLSX.utils.json_to_sheet(json);
|
|
8167
|
+
const workbook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
|
|
8168
|
+
const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
|
|
8169
|
+
this.saveAsExcelFile(excelBuffer, excelFileName);
|
|
8170
|
+
}
|
|
8171
|
+
saveAsExcelFile(buffer, fileName) {
|
|
8172
|
+
console.log(buffer, fileName);
|
|
8173
|
+
const data = new Blob([buffer], {
|
|
8174
|
+
type: EXCEL_TYPE
|
|
8175
|
+
});
|
|
8176
|
+
FileSaver.saveAs(data, fileName + 'list' + EXCEL_EXTENSION);
|
|
8177
|
+
}
|
|
8178
|
+
saveAsTemplate(buffer, fileName) {
|
|
8179
|
+
const data = new Blob([buffer], {
|
|
8180
|
+
type: EXCEL_TYPE
|
|
8181
|
+
});
|
|
8182
|
+
FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);
|
|
8183
|
+
}
|
|
8184
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExcelService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
8185
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExcelService, providedIn: 'root' });
|
|
8186
|
+
}
|
|
8187
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExcelService, decorators: [{
|
|
8188
|
+
type: Injectable,
|
|
8189
|
+
args: [{
|
|
8190
|
+
providedIn: 'root'
|
|
8191
|
+
}]
|
|
8192
|
+
}], ctorParameters: () => [] });
|
|
8193
|
+
|
|
8158
8194
|
class StoreTimeConfigurationComponent {
|
|
8195
|
+
excelService;
|
|
8159
8196
|
clientApi;
|
|
8160
8197
|
modalService;
|
|
8161
8198
|
ts;
|
|
@@ -8167,7 +8204,8 @@ class StoreTimeConfigurationComponent {
|
|
|
8167
8204
|
limit = 10;
|
|
8168
8205
|
offset = 1;
|
|
8169
8206
|
destroy$ = new Subject();
|
|
8170
|
-
constructor(clientApi, modalService, ts, cd) {
|
|
8207
|
+
constructor(excelService, clientApi, modalService, ts, cd) {
|
|
8208
|
+
this.excelService = excelService;
|
|
8171
8209
|
this.clientApi = clientApi;
|
|
8172
8210
|
this.modalService = modalService;
|
|
8173
8211
|
this.ts = ts;
|
|
@@ -8338,17 +8376,15 @@ class StoreTimeConfigurationComponent {
|
|
|
8338
8376
|
this.dropDown = false;
|
|
8339
8377
|
}
|
|
8340
8378
|
downloadTemplateV2() {
|
|
8341
|
-
|
|
8342
|
-
|
|
8343
|
-
|
|
8344
|
-
|
|
8345
|
-
|
|
8346
|
-
|
|
8347
|
-
|
|
8348
|
-
|
|
8349
|
-
|
|
8350
|
-
}
|
|
8351
|
-
this.clientApi.exportAsExcelFile(excelData, `Store Time`);
|
|
8379
|
+
this.tableObject.export = true;
|
|
8380
|
+
this.clientApi.getOpenCloseListexport(this.tableObject).pipe(takeUntil(this.destroy$)).subscribe({
|
|
8381
|
+
next: (res) => {
|
|
8382
|
+
if (res) {
|
|
8383
|
+
this.tableObject.export = false;
|
|
8384
|
+
this.excelService.saveAsExcelFile(res, 'store open&close time');
|
|
8385
|
+
}
|
|
8386
|
+
}
|
|
8387
|
+
});
|
|
8352
8388
|
}
|
|
8353
8389
|
onCancel() {
|
|
8354
8390
|
this.isEditing = '';
|
|
@@ -8491,13 +8527,13 @@ class StoreTimeConfigurationComponent {
|
|
|
8491
8527
|
}
|
|
8492
8528
|
});
|
|
8493
8529
|
}
|
|
8494
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StoreTimeConfigurationComponent, deps: [{ token: ClientApiService }, { token: i1$1.NgbModal }, { token: i4.ToastService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
8530
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StoreTimeConfigurationComponent, deps: [{ token: ExcelService }, { token: ClientApiService }, { token: i1$1.NgbModal }, { token: i4.ToastService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
8495
8531
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: StoreTimeConfigurationComponent, selector: "lib-store-time-configuration", viewQueries: [{ propertyName: "inputFile", first: true, predicate: ["inputFile"], descendants: true }, { propertyName: "fileInput1", first: true, predicate: ["file1"], descendants: true }, { propertyName: "bulkUploadPopup", first: true, predicate: ["bulkUploadPopup"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\r\n <ng-container>\r\n <div class=\"col-12 mb-2\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"badge badge-light-default\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9503_97591)\">\r\n <path\r\n d=\"M7.9987 10.6654V7.9987M7.9987 5.33203H8.00536M14.6654 7.9987C14.6654 11.6806 11.6806 14.6654 7.9987 14.6654C4.3168 14.6654 1.33203 11.6806 1.33203 7.9987C1.33203 4.3168 4.3168 1.33203 7.9987 1.33203C11.6806 1.33203 14.6654 4.3168 14.6654 7.9987Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9503_97591\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <span class=\"store-conf\">You Can Edit only Open time and Close time</span>\r\n </div>\r\n <ng-container *ngIf=\"!loading && storeListData?.length && !noData\">\r\n <button *ngIf=\"isEditing ===''\" (click)=\"editStoreList('edit')\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9964_44262)\">\r\n <path d=\"M9.16797 3.33417H3.33464C2.89261 3.33417 2.46868 3.50977 2.15612 3.82233C1.84356 4.13489 1.66797 4.55881 1.66797 5.00084V16.6675C1.66797 17.1095 1.84356 17.5335 2.15612 17.846C2.46868 18.1586 2.89261 18.3342 3.33464 18.3342H15.0013C15.4433 18.3342 15.8673 18.1586 16.1798 17.846C16.4924 17.5335 16.668 17.1095 16.668 16.6675V10.8342M15.418 2.08417C15.7495 1.75265 16.1991 1.56641 16.668 1.56641C17.1368 1.56641 17.5864 1.75265 17.918 2.08417C18.2495 2.41569 18.4357 2.86533 18.4357 3.33417C18.4357 3.80301 18.2495 4.25265 17.918 4.58417L10.0013 12.5008L6.66797 13.3342L7.5013 10.0008L15.418 2.08417Z\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9964_44262\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Store Time</button>\r\n\r\n <div *ngIf=\"isEditing ==='edit'\" class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9 mt-3\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1 w-50\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input (change)=\"searchData()\" [(ngModel)]=\"searchValue\" type=\"text\" class=\"form-control ps-14 me-2\"\r\n autocomplete=\"off\" placeholder=\"Search with Store Name, Store ID\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3 mt-3 text-end ps-15\">\r\n <div class=\"position-relative w-100 mt-5 mb-5\">\r\n <button type=\"button\"\r\n class=\"btn py-3 btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n <span class=\"me-3 cursor-pointer\" #upload (click)=\"inputFile.click()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> <span class=\"template-dropdown bg-white ms-3\">BulkUpload </span>\r\n </span>\r\n <span><input style=\"display: none;\" type=\"file\" #inputFile accept = \".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"\r\n id=\"kt_account_team_size_select_1\" (change)=\"onFileUpload($event)\" /></span>\r\n <span class=\"subtitle mx-3 me-2\"> | </span>\r\n <span class=\"cursor-pointer\" (click)=\"openDropdown($event)\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M6 9L12 15L18 9\" stroke=\"#344054\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n </button>\r\n\r\n <div *ngIf=\"dropDown\" class=\"card template-dropdown h-40px w-100 pe-5 position-absolute rounded-3 z-1 top-50px end-0\">\r\n <ul class=\"list-unstyled mb-0 w-auto cursor-pointer\" (click)=\"downloadTemplate()\">\r\n <li class=\"pe-5 fw-semibold cursor-pointer py-2\">Download Template</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div *ngIf=\"downloadDropDown\"\r\n class=\"card w-auto py-2 position-absolute productdrop top-10\">\r\n <ul class=\"list-unstyled mb-2\">\r\n <li class=\"producttext items cursor-pointer p-2\"\r\n (click)=\"downloadTemplate()\">\r\n Download Template</li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n\r\n</div>\r\n<ng-container *ngIf=\"noData\" >\r\n <div class=\"d-flex align-items-center justify-content-center\" >\r\n <img width=\"300px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\"> \r\n </div>\r\n</ng-container>\r\n \r\n\r\n<ng-container *ngIf=\"loading\" >\r\n<div class=\"shimmer-card w-100\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n</ng-container>\r\n<div *ngIf=\"!loading && storeListData?.length && !noData\" class=\"card-body mt-2\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th><span class=\"cursor-pointer\" (click)=\"onSort('storeName')\">Store Name <svg \r\n [ngClass]=\"sortedColumn === 'storeName' && sortOrder === 1 ? 'rotate' : ''\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'storeName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span></th>\r\n <th><span class=\"cursor-pointer\" (click)=\"onSort('openTime')\">Open Time<svg \r\n [ngClass]=\"sortedColumn === 'openTime' && sortOrder === 1 ? 'rotate' : ''\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'openTime' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span></th>\r\n <th><span class=\"cursor-pointer\" (click)=\"onSort('openTime')\">Close Time<svg \r\n [ngClass]=\"sortedColumn === 'openTime' && sortOrder === 1 ? 'rotate' : ''\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'openTime' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let obj of storeListData; let i=index;\">\r\n <td>{{obj.storeName}}</td>\r\n <td><span *ngIf=\"isEditing===''\">{{formatTime(obj.openTime)}}</span>\r\n <input *ngIf=\"isEditing==='edit'\" [(ngModel)]=\"obj.openTime\" (change)=\"updateCloseTime(obj)\" class=\"form-control form-control-sm\" type=\"time\">\r\n </td>\r\n <td> <span *ngIf=\"isEditing===''\">{{ formatTime(obj.closeTime) }}</span>\r\n <input *ngIf=\"isEditing==='edit'\" class=\"form-control form-control-sm\" type=\"time\" [(ngModel)]=\"obj.closeTime\" [min]=\"obj.openTime\" (change)=\"validateCloseTime()\">\r\n <div *ngIf=\"obj.showError\" class=\"text-danger\">\r\n Close time must be later than open time.\r\n </div> \r\n </td>\r\n </tr>\r\n </tbody>\r\n \r\n </table>\r\n </div>\r\n</div>\r\n<div *ngIf=\"!loading && storeListData?.length && !noData\" class=\"card-footer\">\r\n <lib-pagination [itemsPerPage]=\"pageSize\" [currentPage]=\"offset\" [totalItems]=\"totalCount\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n</div>\r\n\r\n<ng-template #bulkUploadPopup let-model>\r\n <div class=\"p-5\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-5 text-nowrap\">\r\n <div class=\"my-5 d-flex\">\r\n <div class=\"d-flex\">\r\n <span class=\"symbol symbol-75px symbol-circle\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <rect width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\"/>\r\n <path d=\"M27.5 22.5V25.8333C27.5 26.2754 27.3244 26.6993 27.0118 27.0118C26.6993 27.3244 26.2754 27.5 25.8333 27.5H14.1667C13.7246 27.5 13.3007 27.3244 12.9882 27.0118C12.6756 26.6993 12.5 26.2754 12.5 25.8333V22.5M24.1667 16.6667L20 12.5M20 12.5L15.8333 16.6667M20 12.5V22.5\" stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"ms-3 pt-2 fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Bulk Upload</span>\r\n </div>\r\n </div>\r\n <div class=\"row w-100\">\r\n <div class=\"col-md-12\">\r\n <div class=\"upload-text\">Step1 - <span class=\"text-decoration-underline text-primary download-text\"><span (click)=\"downloadTemplateV2()\" class=\"cursor-pointer\">Download the template here</span></span></div>\r\n <div class=\"upload-text\">Step2 - Add your data to the Template File with existing store data</div>\r\n <div class=\"upload-text\">Step3 - Upload it below for processing</div>\r\n <div class=\"note-text\">**Note : On uploading, all the existing data will be replaced</div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-footer border-0 text-end mt-3 pt-0\">\r\n <button class=\"btn btn-md btn-default btn-outline\" (click)=\"model.close()\">Cancel</button>\r\n <button class=\"btn py-3 btn-default ms-3 btn-primary\" (click)=\"file1.click()\">Upload</button>\r\n <input style=\"visibility: hidden;\" #file1 type=\"file\" id=\"kt_account_team_size_select_2\"\r\n (change)=\"onFileUpload($event)\" />\r\n </div>\r\n \r\n \r\n </div>\r\n\r\n</ng-template>", styles: [".badge{padding:8px!important;border-radius:8px!important;background:var(--Gray-100, #F2F4F7)!important}.store-conf{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:500;line-height:18px}.productdrop{top:10;left:83%;z-index:10}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.template-dropdown{background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.upload-text{color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:30px}.download-text{color:var(--Primary-800, #008EDF);font-size:14px;font-weight:500;line-height:20px}.note-text{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.rotate{rotate:180deg;transition:1s}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }] });
|
|
8496
8532
|
}
|
|
8497
8533
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StoreTimeConfigurationComponent, decorators: [{
|
|
8498
8534
|
type: Component,
|
|
8499
8535
|
args: [{ selector: 'lib-store-time-configuration', template: "<div class=\"row\">\r\n <ng-container>\r\n <div class=\"col-12 mb-2\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"badge badge-light-default\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9503_97591)\">\r\n <path\r\n d=\"M7.9987 10.6654V7.9987M7.9987 5.33203H8.00536M14.6654 7.9987C14.6654 11.6806 11.6806 14.6654 7.9987 14.6654C4.3168 14.6654 1.33203 11.6806 1.33203 7.9987C1.33203 4.3168 4.3168 1.33203 7.9987 1.33203C11.6806 1.33203 14.6654 4.3168 14.6654 7.9987Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9503_97591\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <span class=\"store-conf\">You Can Edit only Open time and Close time</span>\r\n </div>\r\n <ng-container *ngIf=\"!loading && storeListData?.length && !noData\">\r\n <button *ngIf=\"isEditing ===''\" (click)=\"editStoreList('edit')\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_9964_44262)\">\r\n <path d=\"M9.16797 3.33417H3.33464C2.89261 3.33417 2.46868 3.50977 2.15612 3.82233C1.84356 4.13489 1.66797 4.55881 1.66797 5.00084V16.6675C1.66797 17.1095 1.84356 17.5335 2.15612 17.846C2.46868 18.1586 2.89261 18.3342 3.33464 18.3342H15.0013C15.4433 18.3342 15.8673 18.1586 16.1798 17.846C16.4924 17.5335 16.668 17.1095 16.668 16.6675V10.8342M15.418 2.08417C15.7495 1.75265 16.1991 1.56641 16.668 1.56641C17.1368 1.56641 17.5864 1.75265 17.918 2.08417C18.2495 2.41569 18.4357 2.86533 18.4357 3.33417C18.4357 3.80301 18.2495 4.25265 17.918 4.58417L10.0013 12.5008L6.66797 13.3342L7.5013 10.0008L15.418 2.08417Z\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_9964_44262\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Store Time</button>\r\n\r\n <div *ngIf=\"isEditing ==='edit'\" class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9 mt-3\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1 w-50\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input (change)=\"searchData()\" [(ngModel)]=\"searchValue\" type=\"text\" class=\"form-control ps-14 me-2\"\r\n autocomplete=\"off\" placeholder=\"Search with Store Name, Store ID\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3 mt-3 text-end ps-15\">\r\n <div class=\"position-relative w-100 mt-5 mb-5\">\r\n <button type=\"button\"\r\n class=\"btn py-3 btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n <span class=\"me-3 cursor-pointer\" #upload (click)=\"inputFile.click()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> <span class=\"template-dropdown bg-white ms-3\">BulkUpload </span>\r\n </span>\r\n <span><input style=\"display: none;\" type=\"file\" #inputFile accept = \".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"\r\n id=\"kt_account_team_size_select_1\" (change)=\"onFileUpload($event)\" /></span>\r\n <span class=\"subtitle mx-3 me-2\"> | </span>\r\n <span class=\"cursor-pointer\" (click)=\"openDropdown($event)\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M6 9L12 15L18 9\" stroke=\"#344054\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n </button>\r\n\r\n <div *ngIf=\"dropDown\" class=\"card template-dropdown h-40px w-100 pe-5 position-absolute rounded-3 z-1 top-50px end-0\">\r\n <ul class=\"list-unstyled mb-0 w-auto cursor-pointer\" (click)=\"downloadTemplate()\">\r\n <li class=\"pe-5 fw-semibold cursor-pointer py-2\">Download Template</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div *ngIf=\"downloadDropDown\"\r\n class=\"card w-auto py-2 position-absolute productdrop top-10\">\r\n <ul class=\"list-unstyled mb-2\">\r\n <li class=\"producttext items cursor-pointer p-2\"\r\n (click)=\"downloadTemplate()\">\r\n Download Template</li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n\r\n</div>\r\n<ng-container *ngIf=\"noData\" >\r\n <div class=\"d-flex align-items-center justify-content-center\" >\r\n <img width=\"300px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\"> \r\n </div>\r\n</ng-container>\r\n \r\n\r\n<ng-container *ngIf=\"loading\" >\r\n<div class=\"shimmer-card w-100\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n</ng-container>\r\n<div *ngIf=\"!loading && storeListData?.length && !noData\" class=\"card-body mt-2\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th><span class=\"cursor-pointer\" (click)=\"onSort('storeName')\">Store Name <svg \r\n [ngClass]=\"sortedColumn === 'storeName' && sortOrder === 1 ? 'rotate' : ''\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'storeName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span></th>\r\n <th><span class=\"cursor-pointer\" (click)=\"onSort('openTime')\">Open Time<svg \r\n [ngClass]=\"sortedColumn === 'openTime' && sortOrder === 1 ? 'rotate' : ''\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'openTime' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span></th>\r\n <th><span class=\"cursor-pointer\" (click)=\"onSort('openTime')\">Close Time<svg \r\n [ngClass]=\"sortedColumn === 'openTime' && sortOrder === 1 ? 'rotate' : ''\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'openTime' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let obj of storeListData; let i=index;\">\r\n <td>{{obj.storeName}}</td>\r\n <td><span *ngIf=\"isEditing===''\">{{formatTime(obj.openTime)}}</span>\r\n <input *ngIf=\"isEditing==='edit'\" [(ngModel)]=\"obj.openTime\" (change)=\"updateCloseTime(obj)\" class=\"form-control form-control-sm\" type=\"time\">\r\n </td>\r\n <td> <span *ngIf=\"isEditing===''\">{{ formatTime(obj.closeTime) }}</span>\r\n <input *ngIf=\"isEditing==='edit'\" class=\"form-control form-control-sm\" type=\"time\" [(ngModel)]=\"obj.closeTime\" [min]=\"obj.openTime\" (change)=\"validateCloseTime()\">\r\n <div *ngIf=\"obj.showError\" class=\"text-danger\">\r\n Close time must be later than open time.\r\n </div> \r\n </td>\r\n </tr>\r\n </tbody>\r\n \r\n </table>\r\n </div>\r\n</div>\r\n<div *ngIf=\"!loading && storeListData?.length && !noData\" class=\"card-footer\">\r\n <lib-pagination [itemsPerPage]=\"pageSize\" [currentPage]=\"offset\" [totalItems]=\"totalCount\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n</div>\r\n\r\n<ng-template #bulkUploadPopup let-model>\r\n <div class=\"p-5\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-5 text-nowrap\">\r\n <div class=\"my-5 d-flex\">\r\n <div class=\"d-flex\">\r\n <span class=\"symbol symbol-75px symbol-circle\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <rect width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\"/>\r\n <path d=\"M27.5 22.5V25.8333C27.5 26.2754 27.3244 26.6993 27.0118 27.0118C26.6993 27.3244 26.2754 27.5 25.8333 27.5H14.1667C13.7246 27.5 13.3007 27.3244 12.9882 27.0118C12.6756 26.6993 12.5 26.2754 12.5 25.8333V22.5M24.1667 16.6667L20 12.5M20 12.5L15.8333 16.6667M20 12.5V22.5\" stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"ms-3 pt-2 fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Bulk Upload</span>\r\n </div>\r\n </div>\r\n <div class=\"row w-100\">\r\n <div class=\"col-md-12\">\r\n <div class=\"upload-text\">Step1 - <span class=\"text-decoration-underline text-primary download-text\"><span (click)=\"downloadTemplateV2()\" class=\"cursor-pointer\">Download the template here</span></span></div>\r\n <div class=\"upload-text\">Step2 - Add your data to the Template File with existing store data</div>\r\n <div class=\"upload-text\">Step3 - Upload it below for processing</div>\r\n <div class=\"note-text\">**Note : On uploading, all the existing data will be replaced</div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-footer border-0 text-end mt-3 pt-0\">\r\n <button class=\"btn btn-md btn-default btn-outline\" (click)=\"model.close()\">Cancel</button>\r\n <button class=\"btn py-3 btn-default ms-3 btn-primary\" (click)=\"file1.click()\">Upload</button>\r\n <input style=\"visibility: hidden;\" #file1 type=\"file\" id=\"kt_account_team_size_select_2\"\r\n (change)=\"onFileUpload($event)\" />\r\n </div>\r\n \r\n \r\n </div>\r\n\r\n</ng-template>", styles: [".badge{padding:8px!important;border-radius:8px!important;background:var(--Gray-100, #F2F4F7)!important}.store-conf{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:500;line-height:18px}.productdrop{top:10;left:83%;z-index:10}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.template-dropdown{background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.upload-text{color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:30px}.download-text{color:var(--Primary-800, #008EDF);font-size:14px;font-weight:500;line-height:20px}.note-text{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.rotate{rotate:180deg;transition:1s}\n"] }]
|
|
8500
|
-
}], ctorParameters: () => [{ type: ClientApiService }, { type: i1$1.NgbModal }, { type: i4.ToastService }, { type: i0.ChangeDetectorRef }], propDecorators: { inputFile: [{
|
|
8536
|
+
}], ctorParameters: () => [{ type: ExcelService }, { type: ClientApiService }, { type: i1$1.NgbModal }, { type: i4.ToastService }, { type: i0.ChangeDetectorRef }], propDecorators: { inputFile: [{
|
|
8501
8537
|
type: ViewChild,
|
|
8502
8538
|
args: ["inputFile"]
|
|
8503
8539
|
}], fileInput1: [{
|