@snabcentr/client-core 2.54.0 → 2.56.0

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.
@@ -2,3 +2,4 @@ export * from './sc-i-login';
2
2
  export * from './sc-i-phone-login';
3
3
  export * from './sc-i-token';
4
4
  export * from './sc-i-auth-token';
5
+ export * from './sc-i-api-error-response';
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Данные об ошибках валидации API запросов.
3
+ */
4
+ export interface ScIApiErrorResponse {
5
+ /**
6
+ * Обобщённое сообщение об ошибке.
7
+ */
8
+ message: string;
9
+ /**
10
+ * Подробное описание каждой ошибки. Содержит список полей с детальным описанием ошибок валидации для каждого поля.
11
+ */
12
+ errors?: Record<string, string[]>;
13
+ }
@@ -24,6 +24,10 @@ export declare class ScProduct extends ScSeoResource implements ScIProductDTO {
24
24
  * Артикул.
25
25
  */
26
26
  code: string;
27
+ /**
28
+ * Артикул поставщика.
29
+ */
30
+ supplierSku?: string;
27
31
  /**
28
32
  * Название товара.
29
33
  */
@@ -20,6 +20,10 @@ export interface ScIProductDTO extends ScISeoResourceDTO {
20
20
  * Артикул.
21
21
  */
22
22
  code: string;
23
+ /**
24
+ * Артикул поставщика.
25
+ */
26
+ supplierSku?: string;
23
27
  /**
24
28
  * Название товара.
25
29
  */
@@ -2,4 +2,5 @@ export * from './sc-i-login';
2
2
  export * from './sc-i-phone-login';
3
3
  export * from './sc-i-token';
4
4
  export * from './sc-i-auth-token';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2F1dGgvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NjLWktbG9naW4nO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1pLXBob25lLWxvZ2luJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL3NjLWktYXV0aC10b2tlbic7XG4iXX0=
5
+ export * from './sc-i-api-error-response';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2F1dGgvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2MtaS1sb2dpbic7XG5leHBvcnQgKiBmcm9tICcuL3NjLWktcGhvbmUtbG9naW4nO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1pLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1hdXRoLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1hcGktZXJyb3ItcmVzcG9uc2UnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1hcGktZXJyb3ItcmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2F1dGgvaW50ZXJmYWNlcy9zYy1pLWFwaS1lcnJvci1yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQlNCw0L3QvdGL0LUg0L7QsSDQvtGI0LjQsdC60LDRhSDQstCw0LvQuNC00LDRhtC40LggQVBJINC30LDQv9GA0L7RgdC+0LIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NJQXBpRXJyb3JSZXNwb25zZSB7XG4gICAgLyoqXG4gICAgICog0J7QsdC+0LHRidGR0L3QvdC+0LUg0YHQvtC+0LHRidC10L3QuNC1INC+0LEg0L7RiNC40LHQutC1LlxuICAgICAqL1xuICAgIG1lc3NhZ2U6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCf0L7QtNGA0L7QsdC90L7QtSDQvtC/0LjRgdCw0L3QuNC1INC60LDQttC00L7QuSDQvtGI0LjQsdC60LguINCh0L7QtNC10YDQttC40YIg0YHQv9C40YHQvtC6INC/0L7Qu9C10Lkg0YEg0LTQtdGC0LDQu9GM0L3Ri9C8INC+0L/QuNGB0LDQvdC40LXQvCDQvtGI0LjQsdC+0Log0LLQsNC70LjQtNCw0YbQuNC4INC00LvRjyDQutCw0LbQtNC+0LPQviDQv9C+0LvRjy5cbiAgICAgKi9cbiAgICBlcnJvcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG59XG4iXX0=
@@ -36,6 +36,7 @@ export class ScProduct extends ScSeoResource {
36
36
  else {
37
37
  this.id = productDTO.id;
38
38
  this.slug = productDTO.slug;
39
+ this.supplierSku = productDTO.supplierSku;
39
40
  this.name = productDTO.name;
40
41
  this.cost = productDTO.cost;
41
42
  this.costRub = productDTO.costRub;
@@ -161,4 +162,4 @@ export class ScProduct extends ScSeoResource {
161
162
  }
162
163
  }
163
164
  }
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9kdG8vc2MtcHJvZHVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVUsU0FBUSxhQUFhO0lBdUp4Qzs7Ozs7T0FLRztJQUNILFlBQW1CLFVBQWdDLEVBQUUsTUFBYyxDQUFDO1FBQ2hFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQS9DdEI7O1dBRUc7UUFDSSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBT2pDOztXQUVHO1FBQ0ksV0FBTSxHQUFZLEtBQUssQ0FBQztRQU8vQjs7V0FFRztRQUNJLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBT3ZDOztXQUVHO1FBQ0ksd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBZ0J4QyxJQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEVBQUUsR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FB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Q0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHVpRGF5IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5cbmltcG9ydCB7IFNjQ2FydEl0ZW0gfSBmcm9tICcuLi8uLi9jYXJ0L2R0by9zYy1jYXJ0LWl0ZW0nO1xuaW1wb3J0IHsgU2NJV2FyZWhvdXNlU3RvY2tDb3VudCB9IGZyb20gJy4uLy4uL3dhcmVob3VzZS9kdG8vc2MtaS13YXJlaG91c2Utc3RvY2stY291bnQnO1xuaW1wb3J0IHsgU2NJV2FyZWhvdXNlIH0gZnJvbSAnLi4vLi4vd2FyZWhvdXNlL2R0by9zYy13YXJlaG91c2UnO1xuaW1wb3J0IHsgU2NJUHJvZHVjdERUTyB9IGZyb20gJy4uL2ludGVybmFsL3NjLWktcHJvZHVjdC1kdG8nO1xuaW1wb3J0IHsgU2NQcmljZUhpc3RvcnkgfSBmcm9tICcuLi90eXBlcy9zYy1wcmljZS1oaXN0b3J5JztcbmltcG9ydCB7IFNjQ2F0ZWdvcnkgfSBmcm9tICcuL3NjLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjSURpc2NvdW50IH0gZnJvbSAnLi9zYy1pLWRpc2NvdW50JztcbmltcG9ydCB7IFNjSVByb2R1Y3RJbWFnZXMgfSBmcm9tICcuL3NjLWktcHJvZHVjdC1pbWFnZXMnO1xuaW1wb3J0IHsgU2NJUHJvcGVydGllcyB9IGZyb20gJy4vc2MtaS1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IFNjU2VvUmVzb3VyY2UgfSBmcm9tICcuL3NjLXNlby1yZXNvdXJjZSc7XG5cbi8qKlxuICog0JzQvtC00LXQu9GMINC00LDQvdC90YvRhSDRgtC+0LLQsNGA0LAv0YPRgdC70YPQs9C4LlxuICovXG5leHBvcnQgY2xhc3MgU2NQcm9kdWN0IGV4dGVuZHMgU2NTZW9SZXNvdXJjZSBpbXBsZW1lbnRzIFNjSVByb2R1Y3REVE8ge1xuICAgIC8qKlxuICAgICAqINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGC0L7QstCw0YDQsC/Rg9GB0LvRg9Cz0LguXG4gICAgICovXG4gICAgcHVibGljIGlkOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQodC40LzQstC+0LvRjNC90L7QtSDQvtCx0L7Qt9C90LDRh9C10L3QuNC1IChzbHVnKSDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHVibGljIHNsdWc6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCQ0YDRgtC40LrRg9C7LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb2RlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQndCw0LfQstCw0L3QuNC1INGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0KHRgtC+0LjQvNC+0YHRgtGMINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4INCyINCy0LDQu9GO0YLQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29zdD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCh0YLQvtC40LzQvtGB0YLRjCDRgtC+0LLQsNGA0LAg0LjQu9C4INGD0YHQu9GD0LPQuCDQsiDRgNGD0LHQu9GP0YUuXG4gICAgICovXG4gICAgcHVibGljIGNvc3RSdWI/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQlNCw0YLQsCDRg9GB0YLQsNC90L7QstC60Lgg0YbQtdC90YsuXG4gICAgICovXG4gICAgcHVibGljIGNvc3REYXRlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0JLQsNC70Y7RgtCwINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4LlxuICAgICAqL1xuICAgIHB1YmxpYyBjdXJyZW5jeTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0JXQtNC40L3QuNGG0LAg0LjQt9C80LXRgNC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyB1bml0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQldC00LjQvdC40YbQsCDQuNC30LzQtdGA0LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBxdWFudGl0eVVuaXQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCc0LjQvdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0YLQvtCy0LDRgNCwINC00LvRjyDQt9Cw0LrQsNC30LAuXG4gICAgICovXG4gICAgcHVibGljIG1pbkNvdW50PzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0JTQsNC90L3Ri9C1INC+INC60L7Qu9C40YfQtdGB0YLQstC+INGC0L7QstCw0YDQsCwg0LTQvtGB0YLRg9C/0L3QvtC8INC90LAg0YHQutC70LDQtNCw0YUuXG4gICAgICovXG4gICAgcHVibGljIHN0b2NrQ291bnQ/OiBTY0lXYXJlaG91c2VTdG9ja0NvdW50W107XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LLQsNGA0LAgXCLQn9C+0LQg0LfQsNC60LDQt1wiLlxuICAgICAqL1xuICAgIHB1YmxpYyBvbk9yZGVyPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqINCd0L7RgNC80LAg0YPQv9Cw0LrQvtCy0LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGFjaz86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0YLQvtCy0LDRgCwg0YPRgdC70YPQs9CwINC40LvQuCDQutCw0YLQtdCz0L7RgNC40Y8g0Y/QstC70Y/RjtGC0YHRjyDQuNC30LHRgNCw0L3QvdGL0LzQuCDQtNC70Y8g0LrQu9C40LXQvdGC0LAuXG4gICAgICovXG4gICAgcHVibGljIGlzRmF2b3JpdGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGC0L7QstCw0YAg0LjQu9C4INGD0YHQu9GD0LPQsCwg0LHRi9C7INGA0LDQvdC10LUg0LfQsNC60LDQt9Cw0L0uXG4gICAgICovXG4gICAgcHVibGljIGlzUHJldmlvdXNseU9yZGVyZWQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INC40LfQvtCx0YDQsNC20LXQvdC40LkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGltYWdlcz86IHJlYWRvbmx5IFNjSVByb2R1Y3RJbWFnZXNbXTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDQutCw0YLQtdCz0L7RgNC40Lkg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBjYXRlZ29yaWVzOiBTY0NhdGVnb3J5W107XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YHQstC+0LnRgdGC0LIuINCn0LjRgdC70L4g0YHQstC+0LnRgdGC0LIg0LIg0L7QsdGK0LXQutGC0LUg0L3QtSDQvtCz0YDQsNC90LjRh9C10L3Qvi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvcGVydGllcz86IFNjSVByb3BlcnRpZXM7XG5cbiAgICAvKipcbiAgICAgKiDQlNCw0L3QvdGL0LUg0L4g0LrQu9C40LXQvdGC0YHQutC+0Lkg0YHQutC40LTQutC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBkaXNjb3VudD86IFNjSURpc2NvdW50O1xuXG4gICAgLyoqXG4gICAgICog0KDQvtC00LjRgtC10LvRjNGB0LrQsNGPINC60LDRgtC10LPQvtGA0LjRjywg0LIg0LrQvtGC0L7RgNC+0Lkg0L3QsNGF0L7QtNC40YLRgdGPINGC0L7QstCw0YAg0LjQu9C4INGD0YHQu9GD0LPQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGFyZW50Q2F0ZWdvcnk/OiBTY0NhdGVnb3J5O1xuXG4gICAgLyoqXG4gICAgICog0J7RgdC90L7QstC90LDRjyDQutCw0YLQtdCz0L7RgNC40Y8g0LTQu9GPINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4LlxuICAgICAqL1xuICAgIHB1YmxpYyBwcmltYXJ5Q2F0ZWdvcnk/OiBTY0NhdGVnb3J5O1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0L3QsNC70LjRh9C40Y8g0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDRgyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHVibGljIGhhc0ltYWdlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIg0Y3Qu9C10LzQtdC90YLQsCDQutC+0YDQt9C40L3Riy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2FydEl0ZW0/OiBTY0NhcnRJdGVtO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRgtC+0LLQsNGAINC+0YLRgdGD0YLRgdGC0LLRg9C10YIuXG4gICAgICovXG4gICAgcHVibGljIGlzTnVsbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0J/QvtGA0Y/QtNC+0Log0YHQu9C10LTQvtCy0LDQvdC40Y8g0YLQvtCy0LDRgNCwINCyINGB0L/QuNGB0LrQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3JkOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INGC0L7QstCw0YAg0YHQutGA0YvQu9C4INGE0LjQu9GM0YLRgNC+0LwuXG4gICAgICovXG4gICAgcHVibGljIGlzSGlkZGVuRmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQmNGB0YLQvtGA0LjRjyDQuNC30LzQtdC90LXQvdC40Y8g0YbQtdC90Ysg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0LguXG4gICAgICovXG4gICAgcHVibGljIHByaWNlSGlzdG9yeT86IFNjUHJpY2VIaXN0b3J5O1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0Lgg0LjQs9C90L7RgNC40YDQvtCy0LDRgtGMINC/0YDQvtCy0LXRgNC60YMg0LzQuNC90LjQvNCw0LvRjNC90L7Qs9C+INC60L7Qu9C40YfQtdGB0YLQstCwINC4INC60YDQsNGC0L3QvtGB0YLQuCDQv9GA0Lgg0LTQvtCx0LDQstC70LXQvdC40Lgg0YLQvtCy0LDRgNCwINCyINC60L7RgNC30LjQvdGDINC4INGB0L7Qt9C00LDQvdC40Lgg0LfQsNC60LDQt9CwLlxuICAgICAqL1xuICAgIHB1YmxpYyBpZ25vcmVNaW5Db3VudENoZWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INC/0YDQvtC00YPQutGCINGP0LLQu9GP0LXRgtGB0Y8g0YHQutGA0YvRgtGL0LwuXG4gICAgICovXG4gICAgcHVibGljIGlzSGlkZGVuPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NQcm9kdWN0fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0RFRPINCU0LDQvdC90YvQtSDQviDQv9GA0L7QtNGD0LrRgtC1LlxuICAgICAqIEBwYXJhbSBvcmQg0J/QvtGA0Y/QtNC+0Log0YHQu9C10LTQvtCy0LDQvdC40Y8g0L/RgNC+0LTRg9C60YLQsCDQsiDRgdC/0LjRgdC60LUuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb2R1Y3REVE86IFNjSVByb2R1Y3REVE8gfCBudWxsLCBvcmQ6IG51bWJlciA9IDApIHtcbiAgICAgICAgc3VwZXIocHJvZHVjdERUTyk7XG5cbiAgICAgICAgaWYgKHByb2R1Y3REVE8gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNOdWxsID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubmFtZSA9ICfQotC+0LLQsNGAINC90LUg0L3QsNC50LTQtdC9JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaWQgPSBwcm9kdWN0RFRPLmlkO1xuICAgICAgICAgICAgdGhpcy5zbHVnID0gcHJvZHVjdERUTy5zbHVnO1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gcHJvZHVjdERUTy5uYW1lO1xuICAgICAgICAgICAgdGhpcy5jb3N0ID0gcHJvZHVjdERUTy5jb3N0O1xuICAgICAgICAgICAgdGhpcy5jb3N0UnViID0gcHJvZHVjdERUTy5jb3N0UnViO1xuICAgICAgICAgICAgdGhpcy5jb3N0RGF0ZSA9IHByb2R1Y3REVE8uY29zdERhdGU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5ID0gcHJvZHVjdERUTy5jdXJyZW5jeTtcbiAgICAgICAgICAgIHRoaXMuY29kZSA9IHByb2R1Y3REVE8uY29kZTtcbiAgICAgICAgICAgIHRoaXMudW5pdCA9IHByb2R1Y3REVE8udW5pdDtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlVbml0ID0gcHJvZHVjdERUTy5xdWFudGl0eVVuaXQ7XG4gICAgICAgICAgICB0aGlzLm1pbkNvdW50ID0gcHJvZHVjdERUTy5taW5Db3VudDtcbiAgICAgICAgICAgIHRoaXMuc3RvY2tDb3VudCA9IHByb2R1Y3REVE8uc3RvY2tDb3VudDtcbiAgICAgICAgICAgIHRoaXMub25PcmRlciA9IHByb2R1Y3REVE8ub25PcmRlcjtcbiAgICAgICAgICAgIHRoaXMucGFjayA9IHByb2R1Y3REVE8ucGFjaztcbiAgICAgICAgICAgIHRoaXMuaXNGYXZvcml0ZSA9IEJvb2xlYW4ocHJvZHVjdERUTy5pc0Zhdm9yaXRlKTtcbiAgICAgICAgICAgIHRoaXMuaXNQcmV2aW91c2x5T3JkZXJlZCA9IHByb2R1Y3REVE8uaXNQcmV2aW91c2x5T3JkZXJlZDtcbiAgICAgICAgICAgIHRoaXMuaGFzSW1hZ2UgPSAocHJvZHVjdERUTy5pbWFnZXMgJiYgcHJvZHVjdERUTy5pbWFnZXMubGVuZ3RoID4gMCkgPz8gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmltYWdlcyA9IHByb2R1Y3REVE8uaW1hZ2VzPy5zbGljZSgpLnNvcnQoKGltZzEsIGltZzIpID0+IE51bWJlcihpbWcyLmlzRGVmYXVsdCkgLSBOdW1iZXIoaW1nMS5pc0RlZmF1bHQpKTtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2UgPSBwcm9kdWN0RFRPLmltYWdlcz8uZmluZCgoaW1nKSA9PiBpbWcuaXNEZWZhdWx0KT8uaW1hZ2UgPz8gcHJvZHVjdERUTy5wcm9wZXJ0aWVzPy5pbWFnZTtcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHByb2R1Y3REVE8uY2F0ZWdvcmllcy5tYXAoKGNhdGVnb3J5KSA9PiBuZXcgU2NDYXRlZ29yeShjYXRlZ29yeSkpO1xuICAgICAgICAgICAgdGhpcy5wcmltYXJ5Q2F0ZWdvcnkgPSB0aGlzLmNhdGVnb3JpZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pc1ByaW1hcnkpO1xuICAgICAgICAgICAgdGhpcy5pZ25vcmVNaW5Db3VudENoZWNrID0gcHJvZHVjdERUTy5wcm9wZXJ0aWVzPy5pZ25vcmVNaW5Db3VudENoZWNrID8/IHRoaXMucHJvcGVydGllcz8uaWdub3JlTWluQ291bnRDaGVjayA/PyB0aGlzLmlnbm9yZU1pbkNvdW50Q2hlY2s7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9kdWN0RFRPLnByb3BlcnRpZXM7XG4gICAgICAgICAgICB0aGlzLmRpc2NvdW50ID0gcHJvZHVjdERUTy5kaXNjb3VudDtcbiAgICAgICAgICAgIHRoaXMub3JkID0gb3JkO1xuICAgICAgICAgICAgdGhpcy5pc0hpZGRlbiA9IHByb2R1Y3REVE8uaXNIaWRkZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0YEg0LLQsNC70Y7RgtC+0Lkg0Lgg0LXQtNC40L3QuNGG0LXQuSDQuNC30LzQtdGA0LXQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIGdldCBjb3N0U3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvc3QgPyBgJHt0aGlzLmNvc3QudG9Mb2NhbGVTdHJpbmcoKX0gJHt0aGlzLmN1cnJlbmN5fSAvICR7dGhpcy51bml0fWAgOiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0LIg0YDRg9Cx0LvRj9GFINC4INGBINC10LTQuNC90LjRhtC10Lkg0LjQt9C80LXRgNC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgY29zdFJ1YlN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3N0UnViID8gYCR7dGhpcy5jb3N0UnViLnRvTG9jYWxlU3RyaW5nKCl9IOKCvSAvICR7dGhpcy51bml0fWAgOiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0YEg0LLQsNC70Y7RgtC+0Lkg0Lgg0LXQtNC40L3QuNGG0LXQuSDQuNC30LzQtdGA0LXQvdC40Y8g0LTQviDQv9GA0LjQvNC10L3QtdC90LjRjyDRgdC60LjQtNC60LguXG4gICAgICovXG4gICAgcHVibGljIGdldCBkaXNjb3VudENvc3RTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzY291bnQ/Lm9sZENvc3QgPyBgJHt0aGlzLmRpc2NvdW50Lm9sZENvc3QudG9Mb2NhbGVTdHJpbmcoKX0gJHt0aGlzLmN1cnJlbmN5fSAvICR7dGhpcy51bml0fWAgOiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGC0L7QstCw0YAg0L/RgNC+0LTQsNGR0YLRgdGPINCyINGA0YPQsdC70Y/RhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHByaWNlSW5SdWIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbmN5ID09PSAn4oK9JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9C10YDQstC+0LUg0LjQt9C+0LHRgNCw0LbQtdC90LjQtSDRgtC+0LLQsNGA0LAuINCV0YHQu9C4INC40LfQvtCx0YDQsNC20LXQvdC40Lkg0L3QtdGCLCDRgtC+INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCIHVuZGVmaW5lZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbWdJbmRleCDQmNC90LTQtdC60YEg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDQsiDQvNCw0YHRgdC40LLQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SW1hZ2UoaW1nSW5kZXg6IG51bWJlciA9IDApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXM/LltgJHtpbWdJbmRleH1gXS5pbWFnZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQvtGB0L3QvtCy0L3QvtC1INC40LfQvtCx0YDQsNC20LXQvdC40LUg0YLQvtCy0LDRgNCwINCyINGE0L7RgNC80LDRgtC1IFdlYlAuINCV0YHQu9C4IFdlYlAg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDQvdC10YIsINGC0L4g0LLQvtC30LLRgNCw0YnQsNC10YIgdW5kZWZpbmVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGltZ0luZGV4INCY0L3QtNC10LrRgSDQuNC30L7QsdGA0LDQttC10L3QuNGPINCyINC80LDRgdGB0LjQstC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJbWFnZVdlYnAoaW1nSW5kZXg6IG51bWJlciA9IDApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXM/LltgJHtpbWdJbmRleH1gXS5pbWFnZVdlYnA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/QtdGA0LLQvtC1INC/0YDQtdCy0YzRji3QuNC30L7QsdGA0LDQttC10L3QuNC1INGC0L7QstCw0YDQsC4g0JXRgdC70Lgg0L/RgNC10LLRjNGOLdC40LfQvtCx0YDQsNC20LXQvdC40Lkg0L3QtdGCLCDRgtC+INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCIHVuZGVmaW5lZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbWdJbmRleCDQmNC90LTQtdC60YEg0L/RgNC10LLRjNGOLdC40LfQvtCx0YDQsNC20LXQvdC40Y8g0LIg0LzQsNGB0YHQuNCy0LUuXG4gICAgICovXG4gICAgcHVibGljIGdldEltYWdlUHJldmlldyhpbWdJbmRleDogbnVtYmVyID0gMCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmltYWdlcz8uW2Ake2ltZ0luZGV4fWBdLnByZXZpZXc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/RgNC10LLRjNGOLdC40LfQvtCx0YDQsNC20LXQvdC40LUg0YLQvtCy0LDRgNCwINCyINGE0L7RgNC80LDRgtC1IFdlYlAuINCV0YHQu9C4IFdlYlAg0L/RgNC10LLRjNGOINC90LXRgiwg0YLQviDQstC+0LfQstGA0LDRidCw0LXRgiB1bmRlZmluZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaW1nSW5kZXgg0JjQvdC00LXQutGBINC/0YDQtdCy0YzRji3QuNC30L7QsdGA0LDQttC10L3QuNGPINCyINC80LDRgdGB0LjQstC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJbWFnZVByZXZpZXdXZWJwKGltZ0luZGV4OiBudW1iZXIgPSAwKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VzPy5bYCR7aW1nSW5kZXh9YF0ucHJldmlld1dlYnA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrQvtC70LjRh9C10YHRgtCy0L4g0YLQvtCy0LDRgNCwINC90LAg0YHQutC70LDQtNC1ICjQvtGB0YLQsNGC0L7QuikuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2FyZWhvdXNlSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRXYXJlaG91c2VTdG9ja0NvdW50KHdhcmVob3VzZUlkOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9ja0NvdW50Py5maW5kKChzYykgPT4gc2Mud2FyZWhvdXNlSWQgPT09IHdhcmVob3VzZUlkKT8uY291bnQgPz8gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9GA0LjQt9C90LDQuiwg0YfRgtC+INC40LzQtdC10YLRgdGPINC+0YHRgtCw0YLQvtC6INGC0L7QstCw0YDQsCDQvdCwINGB0LrQu9Cw0LTQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3YXJlaG91c2VJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIGlzV2FyZWhvdXNlU3RvY2tFeGlzdCh3YXJlaG91c2VJZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5vbk9yZGVyICYmIHRoaXMuc3RvY2tDb3VudD8uZmluZCgoc2MpID0+IHNjLndhcmVob3VzZUlkID09PSB3YXJlaG91c2VJZCkgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC+0L7QsdGJ0LXQvdC40LUg0L7QsSDQvtGC0YHRg9GC0YHRgtCy0LjQuCDRgtC+0LLQsNGA0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2FyZWhvdXNlINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGB0LrQu9Cw0LTQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Tm90U3RvY2tNZXNzYWdlKHdhcmVob3VzZTogU2NJV2FyZWhvdXNlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMub25PcmRlciA/PyB0aGlzLmlzV2FyZWhvdXNlU3RvY2tFeGlzdCh3YXJlaG91c2UuaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGxhbmluZ0RhdGUgPSB0aGlzLnByb3BlcnRpZXM/LnBsYW5pbmdJbmNvbWluZ0RhdGUgPz8gdGhpcy5wcm9wZXJ0aWVzPy5wbGFuaW5nUHJvZHVjdGlvbkRhdGU7XG5cbiAgICAgICAgaWYgKCF3YXJlaG91c2UuaXNNYWluIHx8IHBsYW5pbmdEYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiAn0KDQsNGB0LrRg9C/0LjQu9C4JztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnQsIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcywgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICAgIGNvbnN0IGRheXNEaWZmID0gVHVpRGF5Lmxlbmd0aEJldHdlZW4oVHVpRGF5LmN1cnJlbnRMb2NhbCgpLCBUdWlEYXkubm9ybWFsaXplUGFyc2UocGxhbmluZ0RhdGUsICdETVknKSk7XG5cbiAgICAgICAgc3dpdGNoIChkYXlzRGlmZikge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgIHJldHVybiAn0JHRg9C00LXRgiDRgdC10LPQvtC00L3Rjyc7XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQkdGD0LTQtdGCINC30LDQstGC0YDQsCc7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQkdGD0LTQtdGCINC/0L7RgdC70LXQt9Cw0LLRgtGA0LAnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYNCe0LbQuNC00LDQtdGC0YHRjyAke3BsYW5pbmdEYXRlfWA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9kdG8vc2MtcHJvZHVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVUsU0FBUSxhQUFhO0lBNEp4Qzs7Ozs7T0FLRztJQUNILFlBQW1CLFVBQWdDLEVBQUUsTUFBYyxDQUFDO1FBQ2hFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQS9DdEI7O1dBRUc7UUFDSSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBT2pDOztXQUVHO1FBQ0ksV0FBTSxHQUFZLEtBQUssQ0FBQztRQU8vQjs7V0FFRztRQUNJLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBT3ZDOztXQUVHO1FBQ0ksd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBZ0J4QyxJQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEVBQUUsR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7WUFDMUMsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FB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QjtnQkFDSSxPQUFPLGFBQWEsV0FBVyxFQUFFLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1aURheSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuXG5pbXBvcnQgeyBTY0NhcnRJdGVtIH0gZnJvbSAnLi4vLi4vY2FydC9kdG8vc2MtY2FydC1pdGVtJztcbmltcG9ydCB7IFNjSVdhcmVob3VzZVN0b2NrQ291bnQgfSBmcm9tICcuLi8uLi93YXJlaG91c2UvZHRvL3NjLWktd2FyZWhvdXNlLXN0b2NrLWNvdW50JztcbmltcG9ydCB7IFNjSVdhcmVob3VzZSB9IGZyb20gJy4uLy4uL3dhcmVob3VzZS9kdG8vc2Mtd2FyZWhvdXNlJztcbmltcG9ydCB7IFNjSVByb2R1Y3REVE8gfSBmcm9tICcuLi9pbnRlcm5hbC9zYy1pLXByb2R1Y3QtZHRvJztcbmltcG9ydCB7IFNjUHJpY2VIaXN0b3J5IH0gZnJvbSAnLi4vdHlwZXMvc2MtcHJpY2UtaGlzdG9yeSc7XG5pbXBvcnQgeyBTY0NhdGVnb3J5IH0gZnJvbSAnLi9zYy1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTY0lEaXNjb3VudCB9IGZyb20gJy4vc2MtaS1kaXNjb3VudCc7XG5pbXBvcnQgeyBTY0lQcm9kdWN0SW1hZ2VzIH0gZnJvbSAnLi9zYy1pLXByb2R1Y3QtaW1hZ2VzJztcbmltcG9ydCB7IFNjSVByb3BlcnRpZXMgfSBmcm9tICcuL3NjLWktcHJvcGVydGllcyc7XG5pbXBvcnQgeyBTY1Nlb1Jlc291cmNlIH0gZnJvbSAnLi9zYy1zZW8tcmVzb3VyY2UnO1xuXG4vKipcbiAqINCc0L7QtNC10LvRjCDQtNCw0L3QvdGL0YUg0YLQvtCy0LDRgNCwL9GD0YHQu9GD0LPQuC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNjUHJvZHVjdCBleHRlbmRzIFNjU2VvUmVzb3VyY2UgaW1wbGVtZW50cyBTY0lQcm9kdWN0RFRPIHtcbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgtC+0LLQsNGA0LAv0YPRgdC70YPQs9C4LlxuICAgICAqL1xuICAgIHB1YmxpYyBpZDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0KHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1Zykg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBzbHVnOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQkNGA0YLQuNC60YPQuy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29kZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0JDRgNGC0LjQutGD0Lsg0L/QvtGB0YLQsNCy0YnQuNC60LAuXG4gICAgICovXG4gICAgcHVibGljIHN1cHBsaWVyU2t1Pzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNC30LLQsNC90LjQtSDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCh0YLQvtC40LzQvtGB0YLRjCDRgtC+0LLQsNGA0LAg0LjQu9C4INGD0YHQu9GD0LPQuCDQsiDQstCw0LvRjtGC0LUuXG4gICAgICovXG4gICAgcHVibGljIGNvc3Q/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0LIg0YDRg9Cx0LvRj9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb3N0UnViPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0JTQsNGC0LAg0YPRgdGC0LDQvdC+0LLQutC4INGG0LXQvdGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb3N0RGF0ZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCS0LDQu9GO0YLQsCDRgtC+0LLQsNGA0LAg0LjQu9C4INGD0YHQu9GD0LPQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3VycmVuY3k6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCV0LTQuNC90LjRhtCwINC40LfQvNC10YDQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdW5pdDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0JXQtNC40L3QuNGG0LAg0LjQt9C80LXRgNC10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcXVhbnRpdHlVbml0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQnNC40L3QuNC80LDQu9GM0L3QvtC1INC60L7Qu9C40YfQtdGB0YLQstC+INGC0L7QstCw0YDQsCDQtNC70Y8g0LfQsNC60LDQt9CwLlxuICAgICAqL1xuICAgIHB1YmxpYyBtaW5Db3VudD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQviDQutC+0LvQuNGH0LXRgdGC0LLQviDRgtC+0LLQsNGA0LAsINC00L7RgdGC0YPQv9C90L7QvCDQvdCwINGB0LrQu9Cw0LTQsNGFLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdG9ja0NvdW50PzogU2NJV2FyZWhvdXNlU3RvY2tDb3VudFtdO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCy0LDRgNCwIFwi0J/QvtC0INC30LDQutCw0LdcIi5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25PcmRlcj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDQndC+0YDQvNCwINGD0L/QsNC60L7QstC60LguXG4gICAgICovXG4gICAgcHVibGljIHBhY2s/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGC0L7QstCw0YAsINGD0YHQu9GD0LPQsCDQuNC70Lgg0LrQsNGC0LXQs9C+0YDQuNGPINGP0LLQu9GP0Y7RgtGB0Y8g0LjQt9Cx0YDQsNC90L3Ri9C80Lgg0LTQu9GPINC60LvQuNC10L3RgtCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBpc0Zhdm9yaXRlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRgtC+0LLQsNGAINC40LvQuCDRg9GB0LvRg9Cz0LAsINCx0YvQuyDRgNCw0L3QtdC1INC30LDQutCw0LfQsNC9LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc1ByZXZpb3VzbHlPcmRlcmVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDQuNC30L7QsdGA0LDQttC10L3QuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpbWFnZXM/OiByZWFkb25seSBTY0lQcm9kdWN0SW1hZ2VzW107XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0LrQsNGC0LXQs9C+0YDQuNC5INGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2F0ZWdvcmllczogU2NDYXRlZ29yeVtdO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0LLQvtC50YHRgtCyLiDQp9C40YHQu9C+INGB0LLQvtC50YHRgtCyINCyINC+0LHRitC10LrRgtC1INC90LUg0L7Qs9GA0LDQvdC40YfQtdC90L4uXG4gICAgICovXG4gICAgcHVibGljIHByb3BlcnRpZXM/OiBTY0lQcm9wZXJ0aWVzO1xuXG4gICAgLyoqXG4gICAgICog0JTQsNC90L3Ri9C1INC+INC60LvQuNC10L3RgtGB0LrQvtC5INGB0LrQuNC00LrQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzY291bnQ/OiBTY0lEaXNjb3VudDtcblxuICAgIC8qKlxuICAgICAqINCg0L7QtNC40YLQtdC70YzRgdC60LDRjyDQutCw0YLQtdCz0L7RgNC40Y8sINCyINC60L7RgtC+0YDQvtC5INC90LDRhdC+0LTQuNGC0YHRjyDRgtC+0LLQsNGAINC40LvQuCDRg9GB0LvRg9Cz0LAuXG4gICAgICovXG4gICAgcHVibGljIHBhcmVudENhdGVnb3J5PzogU2NDYXRlZ29yeTtcblxuICAgIC8qKlxuICAgICAqINCe0YHQvdC+0LLQvdCw0Y8g0LrQsNGC0LXQs9C+0YDQuNGPINC00LvRjyDRgtC+0LLQsNGA0LAg0LjQu9C4INGD0YHQu9GD0LPQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcHJpbWFyeUNhdGVnb3J5PzogU2NDYXRlZ29yeTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INC90LDQu9C40YfQuNGPINC40LfQvtCx0YDQsNC20LXQvdC40Y8g0YMg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBoYXNJbWFnZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGK0LXQutGCINGN0LvQtdC80LXQvdGC0LAg0LrQvtGA0LfQuNC90YsuXG4gICAgICovXG4gICAgcHVibGljIGNhcnRJdGVtPzogU2NDYXJ0SXRlbTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0YLQvtCy0LDRgCDQvtGC0YHRg9GC0YHRgtCy0YPQtdGCLlxuICAgICAqL1xuICAgIHB1YmxpYyBpc051bGw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqINCf0L7RgNGP0LTQvtC6INGB0LvQtdC00L7QstCw0L3QuNGPINGC0L7QstCw0YDQsCDQsiDRgdC/0LjRgdC60LUuXG4gICAgICovXG4gICAgcHVibGljIG9yZDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINGH0YLQviDRgtC+0LLQsNGAINGB0LrRgNGL0LvQuCDRhNC40LvRjNGC0YDQvtC8LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc0hpZGRlbkZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0JjRgdGC0L7RgNC40Y8g0LjQt9C80LXQvdC10L3QuNGPINGG0LXQvdGLINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4LlxuICAgICAqL1xuICAgIHB1YmxpYyBwcmljZUhpc3Rvcnk/OiBTY1ByaWNlSGlzdG9yeTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INC90LXQvtCx0YXQvtC00LjQvNC+0YHRgtC4INC40LPQvdC+0YDQuNGA0L7QstCw0YLRjCDQv9GA0L7QstC10YDQutGDINC80LjQvdC40LzQsNC70YzQvdC+0LPQviDQutC+0LvQuNGH0LXRgdGC0LLQsCDQuCDQutGA0LDRgtC90L7RgdGC0Lgg0L/RgNC4INC00L7QsdCw0LLQu9C10L3QuNC4INGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3RgyDQuCDRgdC+0LfQtNCw0L3QuNC4INC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaWdub3JlTWluQ291bnRDaGVjazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINGH0YLQviDQv9GA0L7QtNGD0LrRgiDRj9Cy0LvRj9C10YLRgdGPINGB0LrRgNGL0YLRi9C8LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc0hpZGRlbj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjUHJvZHVjdH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvZHVjdERUTyDQlNCw0L3QvdGL0LUg0L4g0L/RgNC+0LTRg9C60YLQtS5cbiAgICAgKiBAcGFyYW0gb3JkINCf0L7RgNGP0LTQvtC6INGB0LvQtdC00L7QstCw0L3QuNGPINC/0YDQvtC00YPQutGC0LAg0LIg0YHQv9C40YHQutC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9kdWN0RFRPOiBTY0lQcm9kdWN0RFRPIHwgbnVsbCwgb3JkOiBudW1iZXIgPSAwKSB7XG4gICAgICAgIHN1cGVyKHByb2R1Y3REVE8pO1xuXG4gICAgICAgIGlmIChwcm9kdWN0RFRPID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmlzTnVsbCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSAn0KLQvtCy0LDRgCDQvdC1INC90LDQudC00LXQvSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlkID0gcHJvZHVjdERUTy5pZDtcbiAgICAgICAgICAgIHRoaXMuc2x1ZyA9IHByb2R1Y3REVE8uc2x1ZztcbiAgICAgICAgICAgIHRoaXMuc3VwcGxpZXJTa3UgPSBwcm9kdWN0RFRPLnN1cHBsaWVyU2t1O1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gcHJvZHVjdERUTy5uYW1lO1xuICAgICAgICAgICAgdGhpcy5jb3N0ID0gcHJvZHVjdERUTy5jb3N0O1xuICAgICAgICAgICAgdGhpcy5jb3N0UnViID0gcHJvZHVjdERUTy5jb3N0UnViO1xuICAgICAgICAgICAgdGhpcy5jb3N0RGF0ZSA9IHByb2R1Y3REVE8uY29zdERhdGU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5ID0gcHJvZHVjdERUTy5jdXJyZW5jeTtcbiAgICAgICAgICAgIHRoaXMuY29kZSA9IHByb2R1Y3REVE8uY29kZTtcbiAgICAgICAgICAgIHRoaXMudW5pdCA9IHByb2R1Y3REVE8udW5pdDtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlVbml0ID0gcHJvZHVjdERUTy5xdWFudGl0eVVuaXQ7XG4gICAgICAgICAgICB0aGlzLm1pbkNvdW50ID0gcHJvZHVjdERUTy5taW5Db3VudDtcbiAgICAgICAgICAgIHRoaXMuc3RvY2tDb3VudCA9IHByb2R1Y3REVE8uc3RvY2tDb3VudDtcbiAgICAgICAgICAgIHRoaXMub25PcmRlciA9IHByb2R1Y3REVE8ub25PcmRlcjtcbiAgICAgICAgICAgIHRoaXMucGFjayA9IHByb2R1Y3REVE8ucGFjaztcbiAgICAgICAgICAgIHRoaXMuaXNGYXZvcml0ZSA9IEJvb2xlYW4ocHJvZHVjdERUTy5pc0Zhdm9yaXRlKTtcbiAgICAgICAgICAgIHRoaXMuaXNQcmV2aW91c2x5T3JkZXJlZCA9IHByb2R1Y3REVE8uaXNQcmV2aW91c2x5T3JkZXJlZDtcbiAgICAgICAgICAgIHRoaXMuaGFzSW1hZ2UgPSAocHJvZHVjdERUTy5pbWFnZXMgJiYgcHJvZHVjdERUTy5pbWFnZXMubGVuZ3RoID4gMCkgPz8gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmltYWdlcyA9IHByb2R1Y3REVE8uaW1hZ2VzPy5zbGljZSgpLnNvcnQoKGltZzEsIGltZzIpID0+IE51bWJlcihpbWcyLmlzRGVmYXVsdCkgLSBOdW1iZXIoaW1nMS5pc0RlZmF1bHQpKTtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2UgPSBwcm9kdWN0RFRPLmltYWdlcz8uZmluZCgoaW1nKSA9PiBpbWcuaXNEZWZhdWx0KT8uaW1hZ2UgPz8gcHJvZHVjdERUTy5wcm9wZXJ0aWVzPy5pbWFnZTtcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHByb2R1Y3REVE8uY2F0ZWdvcmllcy5tYXAoKGNhdGVnb3J5KSA9PiBuZXcgU2NDYXRlZ29yeShjYXRlZ29yeSkpO1xuICAgICAgICAgICAgdGhpcy5wcmltYXJ5Q2F0ZWdvcnkgPSB0aGlzLmNhdGVnb3JpZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pc1ByaW1hcnkpO1xuICAgICAgICAgICAgdGhpcy5pZ25vcmVNaW5Db3VudENoZWNrID0gcHJvZHVjdERUTy5wcm9wZXJ0aWVzPy5pZ25vcmVNaW5Db3VudENoZWNrID8/IHRoaXMucHJvcGVydGllcz8uaWdub3JlTWluQ291bnRDaGVjayA/PyB0aGlzLmlnbm9yZU1pbkNvdW50Q2hlY2s7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9kdWN0RFRPLnByb3BlcnRpZXM7XG4gICAgICAgICAgICB0aGlzLmRpc2NvdW50ID0gcHJvZHVjdERUTy5kaXNjb3VudDtcbiAgICAgICAgICAgIHRoaXMub3JkID0gb3JkO1xuICAgICAgICAgICAgdGhpcy5pc0hpZGRlbiA9IHByb2R1Y3REVE8uaXNIaWRkZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0YEg0LLQsNC70Y7RgtC+0Lkg0Lgg0LXQtNC40L3QuNGG0LXQuSDQuNC30LzQtdGA0LXQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIGdldCBjb3N0U3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvc3QgPyBgJHt0aGlzLmNvc3QudG9Mb2NhbGVTdHJpbmcoKX0gJHt0aGlzLmN1cnJlbmN5fSAvICR7dGhpcy51bml0fWAgOiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0LIg0YDRg9Cx0LvRj9GFINC4INGBINC10LTQuNC90LjRhtC10Lkg0LjQt9C80LXRgNC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgY29zdFJ1YlN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3N0UnViID8gYCR7dGhpcy5jb3N0UnViLnRvTG9jYWxlU3RyaW5nKCl9IOKCvSAvICR7dGhpcy51bml0fWAgOiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0YEg0LLQsNC70Y7RgtC+0Lkg0Lgg0LXQtNC40L3QuNGG0LXQuSDQuNC30LzQtdGA0LXQvdC40Y8g0LTQviDQv9GA0LjQvNC10L3QtdC90LjRjyDRgdC60LjQtNC60LguXG4gICAgICovXG4gICAgcHVibGljIGdldCBkaXNjb3VudENvc3RTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzY291bnQ/Lm9sZENvc3QgPyBgJHt0aGlzLmRpc2NvdW50Lm9sZENvc3QudG9Mb2NhbGVTdHJpbmcoKX0gJHt0aGlzLmN1cnJlbmN5fSAvICR7dGhpcy51bml0fWAgOiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGC0L7QstCw0YAg0L/RgNC+0LTQsNGR0YLRgdGPINCyINGA0YPQsdC70Y/RhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHByaWNlSW5SdWIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbmN5ID09PSAn4oK9JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9C10YDQstC+0LUg0LjQt9C+0LHRgNCw0LbQtdC90LjQtSDRgtC+0LLQsNGA0LAuINCV0YHQu9C4INC40LfQvtCx0YDQsNC20LXQvdC40Lkg0L3QtdGCLCDRgtC+INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCIHVuZGVmaW5lZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbWdJbmRleCDQmNC90LTQtdC60YEg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDQsiDQvNCw0YHRgdC40LLQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SW1hZ2UoaW1nSW5kZXg6IG51bWJlciA9IDApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXM/LltgJHtpbWdJbmRleH1gXS5pbWFnZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQvtGB0L3QvtCy0L3QvtC1INC40LfQvtCx0YDQsNC20LXQvdC40LUg0YLQvtCy0LDRgNCwINCyINGE0L7RgNC80LDRgtC1IFdlYlAuINCV0YHQu9C4IFdlYlAg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDQvdC10YIsINGC0L4g0LLQvtC30LLRgNCw0YnQsNC10YIgdW5kZWZpbmVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGltZ0luZGV4INCY0L3QtNC10LrRgSDQuNC30L7QsdGA0LDQttC10L3QuNGPINCyINC80LDRgdGB0LjQstC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJbWFnZVdlYnAoaW1nSW5kZXg6IG51bWJlciA9IDApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXM/LltgJHtpbWdJbmRleH1gXS5pbWFnZVdlYnA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/QtdGA0LLQvtC1INC/0YDQtdCy0YzRji3QuNC30L7QsdGA0LDQttC10L3QuNC1INGC0L7QstCw0YDQsC4g0JXRgdC70Lgg0L/RgNC10LLRjNGOLdC40LfQvtCx0YDQsNC20LXQvdC40Lkg0L3QtdGCLCDRgtC+INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCIHVuZGVmaW5lZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbWdJbmRleCDQmNC90LTQtdC60YEg0L/RgNC10LLRjNGOLdC40LfQvtCx0YDQsNC20LXQvdC40Y8g0LIg0LzQsNGB0YHQuNCy0LUuXG4gICAgICovXG4gICAgcHVibGljIGdldEltYWdlUHJldmlldyhpbWdJbmRleDogbnVtYmVyID0gMCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmltYWdlcz8uW2Ake2ltZ0luZGV4fWBdLnByZXZpZXc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/RgNC10LLRjNGOLdC40LfQvtCx0YDQsNC20LXQvdC40LUg0YLQvtCy0LDRgNCwINCyINGE0L7RgNC80LDRgtC1IFdlYlAuINCV0YHQu9C4IFdlYlAg0L/RgNC10LLRjNGOINC90LXRgiwg0YLQviDQstC+0LfQstGA0LDRidCw0LXRgiB1bmRlZmluZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaW1nSW5kZXgg0JjQvdC00LXQutGBINC/0YDQtdCy0YzRji3QuNC30L7QsdGA0LDQttC10L3QuNGPINCyINC80LDRgdGB0LjQstC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJbWFnZVByZXZpZXdXZWJwKGltZ0luZGV4OiBudW1iZXIgPSAwKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VzPy5bYCR7aW1nSW5kZXh9YF0ucHJldmlld1dlYnA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrQvtC70LjRh9C10YHRgtCy0L4g0YLQvtCy0LDRgNCwINC90LAg0YHQutC70LDQtNC1ICjQvtGB0YLQsNGC0L7QuikuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2FyZWhvdXNlSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRXYXJlaG91c2VTdG9ja0NvdW50KHdhcmVob3VzZUlkOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9ja0NvdW50Py5maW5kKChzYykgPT4gc2Mud2FyZWhvdXNlSWQgPT09IHdhcmVob3VzZUlkKT8uY291bnQgPz8gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9GA0LjQt9C90LDQuiwg0YfRgtC+INC40LzQtdC10YLRgdGPINC+0YHRgtCw0YLQvtC6INGC0L7QstCw0YDQsCDQvdCwINGB0LrQu9Cw0LTQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3YXJlaG91c2VJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIGlzV2FyZWhvdXNlU3RvY2tFeGlzdCh3YXJlaG91c2VJZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5vbk9yZGVyICYmIHRoaXMuc3RvY2tDb3VudD8uZmluZCgoc2MpID0+IHNjLndhcmVob3VzZUlkID09PSB3YXJlaG91c2VJZCkgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC+0L7QsdGJ0LXQvdC40LUg0L7QsSDQvtGC0YHRg9GC0YHRgtCy0LjQuCDRgtC+0LLQsNGA0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2FyZWhvdXNlINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGB0LrQu9Cw0LTQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Tm90U3RvY2tNZXNzYWdlKHdhcmVob3VzZTogU2NJV2FyZWhvdXNlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMub25PcmRlciA/PyB0aGlzLmlzV2FyZWhvdXNlU3RvY2tFeGlzdCh3YXJlaG91c2UuaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGxhbmluZ0RhdGUgPSB0aGlzLnByb3BlcnRpZXM/LnBsYW5pbmdJbmNvbWluZ0RhdGUgPz8gdGhpcy5wcm9wZXJ0aWVzPy5wbGFuaW5nUHJvZHVjdGlvbkRhdGU7XG5cbiAgICAgICAgaWYgKCF3YXJlaG91c2UuaXNNYWluIHx8IHBsYW5pbmdEYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiAn0KDQsNGB0LrRg9C/0LjQu9C4JztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnQsIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcywgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICAgIGNvbnN0IGRheXNEaWZmID0gVHVpRGF5Lmxlbmd0aEJldHdlZW4oVHVpRGF5LmN1cnJlbnRMb2NhbCgpLCBUdWlEYXkubm9ybWFsaXplUGFyc2UocGxhbmluZ0RhdGUsICdETVknKSk7XG5cbiAgICAgICAgc3dpdGNoIChkYXlzRGlmZikge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgIHJldHVybiAn0JHRg9C00LXRgiDRgdC10LPQvtC00L3Rjyc7XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQkdGD0LTQtdGCINC30LDQstGC0YDQsCc7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQkdGD0LTQtdGCINC/0L7RgdC70LXQt9Cw0LLRgtGA0LAnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYNCe0LbQuNC00LDQtdGC0YHRjyAke3BsYW5pbmdEYXRlfWA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1wcm9kdWN0LWR0by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9pbnRlcm5hbC9zYy1pLXByb2R1Y3QtZHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBUT0RPOiDQktGL0L3QtdGB0YLQuCDQsiBpbnRlcm5hbCDQv9C+0YHQu9C1INC/0LXRgNC10L3QvtGB0LAg0LIg0LHQuNCx0LvQuNC+0YLQtdC60YMgQ2F0YWxvZ1NlcnZpY2UgLSBUQVNLWyM2NDMzXSwgQ29uZmlndXJhdG9yU2VydmljZSAtIFRBU0tbIzY0MzRdLCBGYXZvcml0ZVNlcnZpY2UgLSBUQVNLWyM2NDM1XSAqL1xuaW1wb3J0IHsgU2NJV2FyZWhvdXNlU3RvY2tDb3VudCB9IGZyb20gJy4uLy4uL3dhcmVob3VzZS9kdG8vc2MtaS13YXJlaG91c2Utc3RvY2stY291bnQnO1xuaW1wb3J0IHsgU2NJRGlzY291bnQgfSBmcm9tICcuLi9kdG8vc2MtaS1kaXNjb3VudCc7XG5pbXBvcnQgeyBTY0lQcm9kdWN0SW1hZ2VzIH0gZnJvbSAnLi4vZHRvL3NjLWktcHJvZHVjdC1pbWFnZXMnO1xuaW1wb3J0IHsgU2NJUHJvcGVydGllcyB9IGZyb20gJy4uL2R0by9zYy1pLXByb3BlcnRpZXMnO1xuaW1wb3J0IHsgU2NJQ2F0ZWdvcnlEVE8gfSBmcm9tICcuL3NjLWktY2F0ZWdvcnktZHRvJztcbmltcG9ydCB7IFNjSVNlb1Jlc291cmNlRFRPIH0gZnJvbSAnLi9zYy1pLXNlby1yZXNvdXJjZS1kdG8nO1xuXG4vKipcbiAqINCc0L7QtNC10LvRjCDQtNCw0L3QvdGL0YUg0LTQu9GPINGC0L7QstCw0YDQvtCyINC60LDRgtCw0LvQvtCz0LAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NJUHJvZHVjdERUTyBleHRlbmRzIFNjSVNlb1Jlc291cmNlRFRPIHtcbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgtC+0LLQsNGA0LAv0YPRgdC70YPQs9C4LlxuICAgICAqL1xuICAgIGlkOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQodC40LzQstC+0LvRjNC90L7QtSDQvtCx0L7Qt9C90LDRh9C10L3QuNC1IChzbHVnKSDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICovXG4gICAgc2x1Zzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0JDRgNGC0LjQutGD0LsuXG4gICAgICovXG4gICAgY29kZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNC30LLQsNC90LjQtSDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0KHRgtC+0LjQvNC+0YHRgtGMINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4INCyINCy0LDQu9GO0YLQtS5cbiAgICAgKi9cbiAgICBjb3N0PzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0KHRgtC+0LjQvNC+0YHRgtGMINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4INCyINGA0YPQsdC70Y/RhS5cbiAgICAgKi9cbiAgICBjb3N0UnViPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0JTQsNGC0LAg0YPRgdGC0LDQvdC+0LLQutC4INGG0LXQvdGLLlxuICAgICAqL1xuICAgIGNvc3REYXRlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0JLQsNC70Y7RgtCwINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4LlxuICAgICAqL1xuICAgIGN1cnJlbmN5OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQldC00LjQvdC40YbQsCDQuNC30LzQtdGA0LXQvdC40Y8uXG4gICAgICovXG4gICAgdW5pdDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0JXQtNC40L3QuNGG0LAg0LjQt9C80LXRgNC10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBxdWFudGl0eVVuaXQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCc0LjQvdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0YLQvtCy0LDRgNCwINC00LvRjyDQt9Cw0LrQsNC30LAuXG4gICAgICovXG4gICAgbWluQ291bnQ/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQlNCw0L3QvdGL0LUg0L4g0LrQvtC70LjRh9C10YHRgtCy0L4g0YLQvtCy0LDRgNCwLCDQtNC+0YHRgtGD0L/QvdC+0Lwg0L3QsCDRgdC60LvQsNC00LDRhS5cbiAgICAgKi9cbiAgICBzdG9ja0NvdW50PzogU2NJV2FyZWhvdXNlU3RvY2tDb3VudFtdO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCy0LDRgNCwIFwi0J/QvtC0INC30LDQutCw0LdcIi5cbiAgICAgKi9cbiAgICBvbk9yZGVyPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqINCd0L7RgNC80LAg0YPQv9Cw0LrQvtCy0LrQuC5cbiAgICAgKi9cbiAgICBwYWNrPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRgtC+0LLQsNGALCDRg9GB0LvRg9Cz0LAg0LjQu9C4INC60LDRgtC10LPQvtGA0LjRjyDRj9Cy0LvRj9GO0YLRgdGPINC40LfQsdGA0LDQvdC90YvQvNC4INC00LvRjyDQutC70LjQtdC90YLQsC5cbiAgICAgKi9cbiAgICBpc0Zhdm9yaXRlPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0YLQvtCy0LDRgCDQuNC70Lgg0YPRgdC70YPQs9CwLCDQsdGL0Lsg0YDQsNC90LXQtSDQt9Cw0LrQsNC30LDQvS5cbiAgICAgKi9cbiAgICBpc1ByZXZpb3VzbHlPcmRlcmVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDQuNC30L7QsdGA0LDQttC10L3QuNC5LlxuICAgICAqL1xuICAgIGltYWdlcz86IHJlYWRvbmx5IFNjSVByb2R1Y3RJbWFnZXNbXTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDQutCw0YLQtdCz0L7RgNC40Lkg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIGNhdGVnb3JpZXM6IFNjSUNhdGVnb3J5RFRPW107XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YHQstC+0LnRgdGC0LIuINCn0LjRgdC70L4g0YHQstC+0LnRgdGC0LIg0LIg0L7QsdGK0LXQutGC0LUg0L3QtSDQvtCz0YDQsNC90LjRh9C10L3Qvi5cbiAgICAgKi9cbiAgICBwcm9wZXJ0aWVzPzogU2NJUHJvcGVydGllcztcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQviDQutC70LjQtdC90YLRgdC60L7QuSDRgdC60LjQtNC60LUuXG4gICAgICovXG4gICAgZGlzY291bnQ/OiBTY0lEaXNjb3VudDtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INGC0L7Qs9C+LCDRh9GC0L4g0L/RgNC+0LTRg9C60YIg0Y/QstC70Y/QtdGC0YHRjyDRgdC60YDRi9GC0YvQvC5cbiAgICAgKi9cbiAgICBpc0hpZGRlbj86IGJvb2xlYW47XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1wcm9kdWN0LWR0by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9pbnRlcm5hbC9zYy1pLXByb2R1Y3QtZHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBUT0RPOiDQktGL0L3QtdGB0YLQuCDQsiBpbnRlcm5hbCDQv9C+0YHQu9C1INC/0LXRgNC10L3QvtGB0LAg0LIg0LHQuNCx0LvQuNC+0YLQtdC60YMgQ2F0YWxvZ1NlcnZpY2UgLSBUQVNLWyM2NDMzXSwgQ29uZmlndXJhdG9yU2VydmljZSAtIFRBU0tbIzY0MzRdLCBGYXZvcml0ZVNlcnZpY2UgLSBUQVNLWyM2NDM1XSAqL1xuaW1wb3J0IHsgU2NJV2FyZWhvdXNlU3RvY2tDb3VudCB9IGZyb20gJy4uLy4uL3dhcmVob3VzZS9kdG8vc2MtaS13YXJlaG91c2Utc3RvY2stY291bnQnO1xuaW1wb3J0IHsgU2NJRGlzY291bnQgfSBmcm9tICcuLi9kdG8vc2MtaS1kaXNjb3VudCc7XG5pbXBvcnQgeyBTY0lQcm9kdWN0SW1hZ2VzIH0gZnJvbSAnLi4vZHRvL3NjLWktcHJvZHVjdC1pbWFnZXMnO1xuaW1wb3J0IHsgU2NJUHJvcGVydGllcyB9IGZyb20gJy4uL2R0by9zYy1pLXByb3BlcnRpZXMnO1xuaW1wb3J0IHsgU2NJQ2F0ZWdvcnlEVE8gfSBmcm9tICcuL3NjLWktY2F0ZWdvcnktZHRvJztcbmltcG9ydCB7IFNjSVNlb1Jlc291cmNlRFRPIH0gZnJvbSAnLi9zYy1pLXNlby1yZXNvdXJjZS1kdG8nO1xuXG4vKipcbiAqINCc0L7QtNC10LvRjCDQtNCw0L3QvdGL0YUg0LTQu9GPINGC0L7QstCw0YDQvtCyINC60LDRgtCw0LvQvtCz0LAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NJUHJvZHVjdERUTyBleHRlbmRzIFNjSVNlb1Jlc291cmNlRFRPIHtcbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgtC+0LLQsNGA0LAv0YPRgdC70YPQs9C4LlxuICAgICAqL1xuICAgIGlkOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQodC40LzQstC+0LvRjNC90L7QtSDQvtCx0L7Qt9C90LDRh9C10L3QuNC1IChzbHVnKSDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICovXG4gICAgc2x1Zzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0JDRgNGC0LjQutGD0LsuXG4gICAgICovXG4gICAgY29kZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0JDRgNGC0LjQutGD0Lsg0L/QvtGB0YLQsNCy0YnQuNC60LAuXG4gICAgICovXG4gICAgc3VwcGxpZXJTa3U/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQndCw0LfQstCw0L3QuNC1INGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0LIg0LLQsNC70Y7RgtC1LlxuICAgICAqL1xuICAgIGNvc3Q/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0LIg0YDRg9Cx0LvRj9GFLlxuICAgICAqL1xuICAgIGNvc3RSdWI/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQlNCw0YLQsCDRg9GB0YLQsNC90L7QstC60Lgg0YbQtdC90YsuXG4gICAgICovXG4gICAgY29zdERhdGU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQktCw0LvRjtGC0LAg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0LguXG4gICAgICovXG4gICAgY3VycmVuY3k6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCV0LTQuNC90LjRhtCwINC40LfQvNC10YDQtdC90LjRjy5cbiAgICAgKi9cbiAgICB1bml0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQldC00LjQvdC40YbQsCDQuNC30LzQtdGA0LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHF1YW50aXR5VW5pdDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0JzQuNC90LjQvNCw0LvRjNC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviDRgtC+0LLQsNGA0LAg0LTQu9GPINC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBtaW5Db3VudD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQviDQutC+0LvQuNGH0LXRgdGC0LLQviDRgtC+0LLQsNGA0LAsINC00L7RgdGC0YPQv9C90L7QvCDQvdCwINGB0LrQu9Cw0LTQsNGFLlxuICAgICAqL1xuICAgIHN0b2NrQ291bnQ/OiBTY0lXYXJlaG91c2VTdG9ja0NvdW50W107XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LLQsNGA0LAgXCLQn9C+0LQg0LfQsNC60LDQt1wiLlxuICAgICAqL1xuICAgIG9uT3JkZXI/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog0J3QvtGA0LzQsCDRg9C/0LDQutC+0LLQutC4LlxuICAgICAqL1xuICAgIHBhY2s/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGC0L7QstCw0YAsINGD0YHQu9GD0LPQsCDQuNC70Lgg0LrQsNGC0LXQs9C+0YDQuNGPINGP0LLQu9GP0Y7RgtGB0Y8g0LjQt9Cx0YDQsNC90L3Ri9C80Lgg0LTQu9GPINC60LvQuNC10L3RgtCwLlxuICAgICAqL1xuICAgIGlzRmF2b3JpdGU/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRgtC+0LLQsNGAINC40LvQuCDRg9GB0LvRg9Cz0LAsINCx0YvQuyDRgNCw0L3QtdC1INC30LDQutCw0LfQsNC9LlxuICAgICAqL1xuICAgIGlzUHJldmlvdXNseU9yZGVyZWQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INC40LfQvtCx0YDQsNC20LXQvdC40LkuXG4gICAgICovXG4gICAgaW1hZ2VzPzogcmVhZG9ubHkgU2NJUHJvZHVjdEltYWdlc1tdO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INC60LDRgtC10LPQvtGA0LjQuSDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgY2F0ZWdvcmllczogU2NJQ2F0ZWdvcnlEVE9bXTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdCy0L7QudGB0YLQsi4g0KfQuNGB0LvQviDRgdCy0L7QudGB0YLQsiDQsiDQvtCx0YrQtdC60YLQtSDQvdC1INC+0LPRgNCw0L3QuNGH0LXQvdC+LlxuICAgICAqL1xuICAgIHByb3BlcnRpZXM/OiBTY0lQcm9wZXJ0aWVzO1xuXG4gICAgLyoqXG4gICAgICog0JTQsNC90L3Ri9C1INC+INC60LvQuNC10L3RgtGB0LrQvtC5INGB0LrQuNC00LrQtS5cbiAgICAgKi9cbiAgICBkaXNjb3VudD86IFNjSURpc2NvdW50O1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINGH0YLQviDQv9GA0L7QtNGD0LrRgiDRj9Cy0LvRj9C10YLRgdGPINGB0LrRgNGL0YLRi9C8LlxuICAgICAqL1xuICAgIGlzSGlkZGVuPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -6,4 +6,5 @@ export * from './sc-convert.interceptor';
6
6
  export * from './sc-errors.interceptor';
7
7
  export * from './sc-options.interceptor';
8
8
  export * from './sc-guest.interceptor';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2h0dHBJbnRlcmNlcHRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsYXNzZXMnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1hdXRoLmludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtY2FjaGUuaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1jb252ZXJ0LmludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtZXJyb3JzLmludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc2Mtb3B0aW9ucy5pbnRlcmNlcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL3NjLWd1ZXN0LmludGVyY2VwdG9yJztcbiJdfQ==
9
+ export * from './sc-date-format.interceptor';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2h0dHBJbnRlcmNlcHRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcyc7XG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWF1dGguaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1jYWNoZS5pbnRlcmNlcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL3NjLWNvbnZlcnQuaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1lcnJvcnMuaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1vcHRpb25zLmludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtZ3Vlc3QuaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1kYXRlLWZvcm1hdC5pbnRlcmNlcHRvcic7XG4iXX0=
@@ -0,0 +1,80 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { format, isValid, parse } from 'date-fns';
3
+ import { isArray, isString } from 'lodash-es';
4
+ import { catchError, throwError } from 'rxjs';
5
+ import { SC_DATE_FORMAT } from '../tokens/sc-date-format';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Перехватчик для форматирования дат в ошибках запросов к API.
9
+ */
10
+ export class ScDateFormatInterceptor {
11
+ constructor() {
12
+ /**
13
+ * Формат дат.
14
+ */
15
+ this.dateFormats = inject(SC_DATE_FORMAT);
16
+ }
17
+ /** @inheritDoc */
18
+ intercept(request, next) {
19
+ return next.handle(request).pipe(catchError((error) => {
20
+ const errorData = error.error;
21
+ this.formatDatesInErrors(errorData);
22
+ return throwError(() => error);
23
+ }));
24
+ }
25
+ /**
26
+ * Форматирует даты в ошибках запросов к API.
27
+ *
28
+ * @param error Объект с ошибками API.
29
+ */
30
+ formatDatesInErrors(error) {
31
+ const { errors, message } = error;
32
+ // Форматируем основное сообщение об ошибке
33
+ if (message) {
34
+ // eslint-disable-next-line no-param-reassign
35
+ error.message = this.formatDateInString(message);
36
+ }
37
+ // eslint-disable-next-line no-restricted-syntax
38
+ for (const key in errors) {
39
+ if (Object.prototype.hasOwnProperty.call(errors, key)) {
40
+ // eslint-disable-next-line security/detect-object-injection
41
+ const fieldErrors = errors[key];
42
+ if (isArray(fieldErrors)) {
43
+ fieldErrors.forEach((errorMessage, index) => {
44
+ if (isString(errorMessage)) {
45
+ // eslint-disable-next-line security/detect-object-injection
46
+ fieldErrors[index] = this.formatDateInString(errorMessage);
47
+ }
48
+ });
49
+ }
50
+ }
51
+ }
52
+ }
53
+ /**
54
+ * Форматирует даты в строке.
55
+ *
56
+ * @param text Исходная строка.
57
+ */
58
+ formatDateInString(text) {
59
+ // Ищем даты в формате yyyy-MM-dd HH:mm:ss.
60
+ const dateRegex = /(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/g;
61
+ return text.replaceAll(dateRegex, (match) => {
62
+ try {
63
+ const parsedDate = parse(match, this.dateFormats.api, new Date());
64
+ if (isValid(parsedDate)) {
65
+ return format(parsedDate, this.dateFormats.uiDate);
66
+ }
67
+ }
68
+ catch {
69
+ // Если не удалось распарсить дату, ничего не делаем.
70
+ }
71
+ return match;
72
+ });
73
+ }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScDateFormatInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
75
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScDateFormatInterceptor }); }
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScDateFormatInterceptor, decorators: [{
78
+ type: Injectable
79
+ }] });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZGF0ZS1mb3JtYXQuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2h0dHBJbnRlcmNlcHRvcnMvc2MtZGF0ZS1mb3JtYXQuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFMUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBRUk7O1dBRUc7UUFDYyxnQkFBVyxHQUFrQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7S0FrRXhFO0lBaEVHLGtCQUFrQjtJQUNYLFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQzdELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzVCLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRTtZQUNwQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBNEIsQ0FBQztZQUNyRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEMsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssbUJBQW1CLENBQUMsS0FBMEI7UUFDbEQsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFbEMsMkNBQTJDO1FBQzNDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDViw2Q0FBNkM7WUFDN0MsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUVELGdEQUFnRDtRQUNoRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNwRCw0REFBNEQ7Z0JBQzVELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFaEMsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztvQkFDdkIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsRUFBRTt3QkFDeEMsSUFBSSxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQzs0QkFDekIsNERBQTREOzRCQUM1RCxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUMvRCxDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssa0JBQWtCLENBQUMsSUFBWTtRQUNuQywyQ0FBMkM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsd0NBQXdDLENBQUM7UUFFM0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQztnQkFDRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDdEIsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7WUFDTCxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNMLHFEQUFxRDtZQUN6RCxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXJFUSx1QkFBdUI7bUhBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JtYXQsIGlzVmFsaWQsIHBhcnNlIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgaXNBcnJheSwgaXNTdHJpbmcgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0lBcGlFcnJvclJlc3BvbnNlIH0gZnJvbSAnLi4vYXV0aC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNjSURhdGVGb3JtYXQgfSBmcm9tICcuLi9jb25maWcvc2MtaS1kYXRlLWZvcm1hdCc7XG5pbXBvcnQgeyBTQ19EQVRFX0ZPUk1BVCB9IGZyb20gJy4uL3Rva2Vucy9zYy1kYXRlLWZvcm1hdCc7XG5cbi8qKlxuICog0J/QtdGA0LXRhdCy0LDRgtGH0LjQuiDQtNC70Y8g0YTQvtGA0LzQsNGC0LjRgNC+0LLQsNC90LjRjyDQtNCw0YIg0LIg0L7RiNC40LHQutCw0YUg0LfQsNC/0YDQvtGB0L7QsiDQuiBBUEkuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTY0RhdGVGb3JtYXRJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gICAgLyoqXG4gICAgICog0KTQvtGA0LzQsNGCINC00LDRgi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVGb3JtYXRzOiBTY0lEYXRlRm9ybWF0ID0gaW5qZWN0KFNDX0RBVEVfRk9STUFUKTtcblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvckRhdGEgPSBlcnJvci5lcnJvciBhcyBTY0lBcGlFcnJvclJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWF0RGF0ZXNJbkVycm9ycyhlcnJvckRhdGEpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KTQvtGA0LzQsNGC0LjRgNGD0LXRgiDQtNCw0YLRiyDQsiDQvtGI0LjQsdC60LDRhSDQt9Cw0L/RgNC+0YHQvtCyINC6IEFQSS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlcnJvciDQntCx0YrQtdC60YIg0YEg0L7RiNC40LHQutCw0LzQuCBBUEkuXG4gICAgICovXG4gICAgcHJpdmF0ZSBmb3JtYXREYXRlc0luRXJyb3JzKGVycm9yOiBTY0lBcGlFcnJvclJlc3BvbnNlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZXJyb3JzLCBtZXNzYWdlIH0gPSBlcnJvcjtcblxuICAgICAgICAvLyDQpNC+0YDQvNCw0YLQuNGA0YPQtdC8INC+0YHQvdC+0LLQvdC+0LUg0YHQvtC+0LHRidC10L3QuNC1INC+0LEg0L7RiNC40LHQutC1XG4gICAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSB0aGlzLmZvcm1hdERhdGVJblN0cmluZyhtZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBlcnJvcnMpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXJyb3JzLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvcnNba2V5XTtcblxuICAgICAgICAgICAgICAgIGlmIChpc0FycmF5KGZpZWxkRXJyb3JzKSkge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZEVycm9ycy5mb3JFYWNoKChlcnJvck1lc3NhZ2UsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNTdHJpbmcoZXJyb3JNZXNzYWdlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkRXJyb3JzW2luZGV4XSA9IHRoaXMuZm9ybWF0RGF0ZUluU3RyaW5nKGVycm9yTWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCk0L7RgNC80LDRgtC40YDRg9C10YIg0LTQsNGC0Ysg0LIg0YHRgtGA0L7QutC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRleHQg0JjRgdGF0L7QtNC90LDRjyDRgdGC0YDQvtC60LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBmb3JtYXREYXRlSW5TdHJpbmcodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8g0JjRidC10Lwg0LTQsNGC0Ysg0LIg0YTQvtGA0LzQsNGC0LUgeXl5eS1NTS1kZCBISDptbTpzcy5cbiAgICAgICAgY29uc3QgZGF0ZVJlZ2V4ID0gLyhcXGR7NH0tXFxkezJ9LVxcZHsyfSBcXGR7Mn06XFxkezJ9OlxcZHsyfSkvZztcblxuICAgICAgICByZXR1cm4gdGV4dC5yZXBsYWNlQWxsKGRhdGVSZWdleCwgKG1hdGNoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZERhdGUgPSBwYXJzZShtYXRjaCwgdGhpcy5kYXRlRm9ybWF0cy5hcGksIG5ldyBEYXRlKCkpO1xuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkKHBhcnNlZERhdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXQocGFyc2VkRGF0ZSwgdGhpcy5kYXRlRm9ybWF0cy51aURhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgIC8vINCV0YHQu9C4INC90LUg0YPQtNCw0LvQvtGB0Ywg0YDQsNGB0L/QsNGA0YHQuNGC0Ywg0LTQsNGC0YMsINC90LjRh9C10LPQviDQvdC1INC00LXQu9Cw0LXQvC5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtYXRjaDtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -12,10 +12,10 @@ import { tuiCleanObject } from '@taiga-ui/addon-doc/utils';
12
12
  import { __decorate } from 'tslib';
13
13
  import * as i2 from '@angular/router';
14
14
  import { ActivatedRoute, Router, NavigationEnd } from '@angular/router';
15
- import { isString, isMatch } from 'lodash-es';
15
+ import { isString, isMatch, isArray } from 'lodash-es';
16
16
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
17
17
  import { objectToSnake, objectToCamel, toSnake } from 'ts-case-convert';
18
- import { format, parse } from 'date-fns';
18
+ import { parse, isValid, format } from 'date-fns';
19
19
  import * as i1$2 from '@angular/platform-browser';
20
20
  import { Meta, Title } from '@angular/platform-browser';
21
21
 
@@ -1201,6 +1201,7 @@ class ScProduct extends ScSeoResource {
1201
1201
  else {
1202
1202
  this.id = productDTO.id;
1203
1203
  this.slug = productDTO.slug;
1204
+ this.supplierSku = productDTO.supplierSku;
1204
1205
  this.name = productDTO.name;
1205
1206
  this.cost = productDTO.cost;
1206
1207
  this.costRub = productDTO.costRub;
@@ -5230,6 +5231,80 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
5230
5231
  type: Injectable
5231
5232
  }] });
5232
5233
 
5234
+ /**
5235
+ * Перехватчик для форматирования дат в ошибках запросов к API.
5236
+ */
5237
+ class ScDateFormatInterceptor {
5238
+ constructor() {
5239
+ /**
5240
+ * Формат дат.
5241
+ */
5242
+ this.dateFormats = inject(SC_DATE_FORMAT);
5243
+ }
5244
+ /** @inheritDoc */
5245
+ intercept(request, next) {
5246
+ return next.handle(request).pipe(catchError((error) => {
5247
+ const errorData = error.error;
5248
+ this.formatDatesInErrors(errorData);
5249
+ return throwError(() => error);
5250
+ }));
5251
+ }
5252
+ /**
5253
+ * Форматирует даты в ошибках запросов к API.
5254
+ *
5255
+ * @param error Объект с ошибками API.
5256
+ */
5257
+ formatDatesInErrors(error) {
5258
+ const { errors, message } = error;
5259
+ // Форматируем основное сообщение об ошибке
5260
+ if (message) {
5261
+ // eslint-disable-next-line no-param-reassign
5262
+ error.message = this.formatDateInString(message);
5263
+ }
5264
+ // eslint-disable-next-line no-restricted-syntax
5265
+ for (const key in errors) {
5266
+ if (Object.prototype.hasOwnProperty.call(errors, key)) {
5267
+ // eslint-disable-next-line security/detect-object-injection
5268
+ const fieldErrors = errors[key];
5269
+ if (isArray(fieldErrors)) {
5270
+ fieldErrors.forEach((errorMessage, index) => {
5271
+ if (isString(errorMessage)) {
5272
+ // eslint-disable-next-line security/detect-object-injection
5273
+ fieldErrors[index] = this.formatDateInString(errorMessage);
5274
+ }
5275
+ });
5276
+ }
5277
+ }
5278
+ }
5279
+ }
5280
+ /**
5281
+ * Форматирует даты в строке.
5282
+ *
5283
+ * @param text Исходная строка.
5284
+ */
5285
+ formatDateInString(text) {
5286
+ // Ищем даты в формате yyyy-MM-dd HH:mm:ss.
5287
+ const dateRegex = /(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/g;
5288
+ return text.replaceAll(dateRegex, (match) => {
5289
+ try {
5290
+ const parsedDate = parse(match, this.dateFormats.api, new Date());
5291
+ if (isValid(parsedDate)) {
5292
+ return format(parsedDate, this.dateFormats.uiDate);
5293
+ }
5294
+ }
5295
+ catch {
5296
+ // Если не удалось распарсить дату, ничего не делаем.
5297
+ }
5298
+ return match;
5299
+ });
5300
+ }
5301
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScDateFormatInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5302
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScDateFormatInterceptor }); }
5303
+ }
5304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScDateFormatInterceptor, decorators: [{
5305
+ type: Injectable
5306
+ }] });
5307
+
5233
5308
  /**
5234
5309
  * Перечисление организационно-правовых форм.
5235
5310
  */
@@ -7238,5 +7313,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
7238
7313
  * Generated bundle index. Do not edit.
7239
7314
  */
7240
7315
 
7241
- export { EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, RESPONSE, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DATE_FORMAT, SC_DEFAULT_PAGE_META, SC_FEEDBACK_API, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBanner, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartItem, ScCartService, ScCatalogFormat, ScCatalogService, ScCategory, ScClientType, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForms, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScISalesDirectionCart, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScImage, ScImageHelper, ScJsonLdComponent, ScJsonLdModule, ScLocationsService, ScMediaImageTransformerPipe, ScMimeTypes, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReferenceName, ScReferencesService, ScRequisitesService, ScSearchService, ScSeoResource, ScSeoService, ScSocialType, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, runningOnTerminalFactory, searchTermFactory };
7316
+ export { EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, RESPONSE, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DATE_FORMAT, SC_DEFAULT_PAGE_META, SC_FEEDBACK_API, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBanner, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartItem, ScCartService, ScCatalogFormat, ScCatalogService, ScCategory, ScClientType, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDateFormatInterceptor, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForms, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScISalesDirectionCart, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScImage, ScImageHelper, ScJsonLdComponent, ScJsonLdModule, ScLocationsService, ScMediaImageTransformerPipe, ScMimeTypes, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReferenceName, ScReferencesService, ScRequisitesService, ScSearchService, ScSeoResource, ScSeoService, ScSocialType, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, runningOnTerminalFactory, searchTermFactory };
7242
7317
  //# sourceMappingURL=snabcentr-client-core.mjs.map