@snabcentr/client-core 3.22.0 → 3.23.3

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.
@@ -1,4 +1,5 @@
1
1
  import { ScProduct } from '../../catalog/dto/sc-product';
2
+ import { ScNumberHelper } from '../../helpers/sc-number-helper';
2
3
  /**
3
4
  * Данные о единичной позиции товара/услуги в заказе (корзине / черновике).
4
5
  */
@@ -29,25 +30,25 @@ export class ScOrderItem {
29
30
  * @inheritDoc
30
31
  */
31
32
  getCostPerItem() {
32
- return this.costOne > 0 ? `${this.costOne.toLocaleString()} ${this.product.currency.symbol}` : '-';
33
+ return this.costOne > 0 ? `${ScNumberHelper.formatMoney(this.costOne, this.product.currency.precision)} ${this.product.currency.symbol}` : '-';
33
34
  }
34
35
  /**
35
36
  * @inheritDoc
36
37
  */
37
38
  getCostInCurrencyDescPerItem() {
38
- return this.costOne > 0 ? `${this.costOne.toLocaleString()} ${this.product.currency.symbol} / ${this.product.unit.name}` : '-';
39
+ return this.costOne > 0 ? `${ScNumberHelper.formatMoney(this.costOne, this.product.currency.precision)} ${this.product.currency.symbol} / ${this.product.unit.name}` : '-';
39
40
  }
40
41
  /**
41
42
  * @inheritDoc
42
43
  */
43
44
  getCostInRubDescPerItem() {
44
- return this.costOneRub > 0 ? `${this.costOneRub.toLocaleString()} ₽ / ${this.product.unit.name}` : '-';
45
+ return this.costOneRub > 0 ? `${ScNumberHelper.formatMoney(this.costOneRub)} ₽ / ${this.product.unit.name}` : '-';
45
46
  }
46
47
  /**
47
48
  * @inheritDoc
48
49
  */
49
50
  getCostRubStr() {
50
- return this.costRub > 0 ? `${this.costRub.toLocaleString()} ₽` : '-';
51
+ return this.costRub > 0 ? `${ScNumberHelper.formatMoney(this.costRub)} ₽` : '-';
51
52
  }
52
53
  /**
53
54
  * @inheritDoc
@@ -56,4 +57,4 @@ export class ScOrderItem {
56
57
  return this.costRub === 0 ? 'Цена требует уточнения' : '';
57
58
  }
58
59
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvb3JkZXIvY2xhc3Nlcy9zYy1vcmRlci1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUl6RDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBNEVwQjs7OztPQUlHO0lBQ0gsWUFBbUIsSUFBa0I7UUFDakMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ3RELENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWM7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdkcsQ0FBQztJQUVEOztPQUVHO0lBQ0ksNEJBQTRCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNuSSxDQUFDO0lBRUQ7O09BRUc7SUFDSSx1QkFBdUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDM0csQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWM7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY1Byb2R1Y3QgfSBmcm9tICcuLi8uLi9jYXRhbG9nL2R0by9zYy1wcm9kdWN0JztcbmltcG9ydCB7IFNjSUNvbmZpZ3VyYXRvclNlYXJjaFByb2R1Y3RCYXNlIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdG9yL2R0by9zYy1pLWNvbmZpZ3VyYXRvci1zZWFyY2gtcHJvZHVjdC1iYXNlJztcbmltcG9ydCB7IFNjSU9yZGVySXRlbSB9IGZyb20gJy4uL2ludGVybmFsL3NjLWktb3JkZXItaXRlbSc7XG5cbi8qKlxuICog0JTQsNC90L3Ri9C1INC+INC10LTQuNC90LjRh9C90L7QuSDQv9C+0LfQuNGG0LjQuCDRgtC+0LLQsNGA0LAv0YPRgdC70YPQs9C4INCyINC30LDQutCw0LfQtSAo0LrQvtGA0LfQuNC90LUgLyDRh9C10YDQvdC+0LLQuNC60LUpLlxuICovXG5leHBvcnQgY2xhc3MgU2NPcmRlckl0ZW0ge1xuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGlkOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBwcm9kdWN0OiBTY1Byb2R1Y3Q7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBxdWFudGl0eTogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY29zdDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY29zdE9uZTogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY29zdE9uZVJ1YjogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY29zdFJ1YjogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgbWFya2VyPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgaGVpZ2h0PzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgbGVuZ3RoPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgd2lkdGg/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBsb2dpY0dyb3VwSWQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBzcGVjaWZpY2F0aW9uSW1nVXJsPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY29uZmlndXJhdG9yPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY29uZmlndXJhdG9yUGFyYW1zPzogU2NJQ29uZmlndXJhdG9yU2VhcmNoUHJvZHVjdEJhc2U7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjT3JkZXJJdGVtfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhINCU0LDQvdC90YvQtSDQtNC70Y8g0L/QtdGA0LLQvtC90LDRh9Cw0LvRjNC90L7QuSDQuNC90LjRhtC40LDQu9C40LfQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogU2NJT3JkZXJJdGVtKSB7XG4gICAgICAgIHRoaXMuaWQgPSBkYXRhLmlkO1xuICAgICAgICB0aGlzLnByb2R1Y3QgPSBuZXcgU2NQcm9kdWN0KGRhdGEucHJvZHVjdCk7XG4gICAgICAgIHRoaXMucXVhbnRpdHkgPSBkYXRhLnF1YW50aXR5O1xuICAgICAgICB0aGlzLmNvc3QgPSBkYXRhLmNvc3Q7XG4gICAgICAgIHRoaXMuY29zdE9uZSA9IGRhdGEuY29zdE9uZTtcbiAgICAgICAgdGhpcy5jb3N0UnViID0gZGF0YS5jb3N0UnViO1xuICAgICAgICB0aGlzLmNvc3RPbmVSdWIgPSBkYXRhLmNvc3RPbmVSdWI7XG4gICAgICAgIHRoaXMubWFya2VyID0gZGF0YS5tYXJrZXI7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gZGF0YS5oZWlnaHQ7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gZGF0YS5sZW5ndGg7XG4gICAgICAgIHRoaXMud2lkdGggPSBkYXRhLndpZHRoO1xuICAgICAgICB0aGlzLmxvZ2ljR3JvdXBJZCA9IGRhdGEubG9naWNHcm91cElkO1xuICAgICAgICB0aGlzLnNwZWNpZmljYXRpb25JbWdVcmwgPSBkYXRhLnNwZWNpZmljYXRpb25JbWdVcmw7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdG9yID0gZGF0YS5jb25maWd1cmF0b3I7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdG9yUGFyYW1zID0gZGF0YS5jb25maWd1cmF0b3JQYXJhbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29zdFBlckl0ZW0oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29zdE9uZSA+IDAgPyBgJHt0aGlzLmNvc3RPbmUudG9Mb2NhbGVTdHJpbmcoKX0gJHt0aGlzLnByb2R1Y3QuY3VycmVuY3kuc3ltYm9sfWAgOiAnLSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29zdEluQ3VycmVuY3lEZXNjUGVySXRlbSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3N0T25lID4gMCA/IGAke3RoaXMuY29zdE9uZS50b0xvY2FsZVN0cmluZygpfSAke3RoaXMucHJvZHVjdC5jdXJyZW5jeS5zeW1ib2x9IC8gJHt0aGlzLnByb2R1Y3QudW5pdC5uYW1lfWAgOiAnLSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29zdEluUnViRGVzY1Blckl0ZW0oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29zdE9uZVJ1YiA+IDAgPyBgJHt0aGlzLmNvc3RPbmVSdWIudG9Mb2NhbGVTdHJpbmcoKX0g4oK9IC8gJHt0aGlzLnByb2R1Y3QudW5pdC5uYW1lfWAgOiAnLSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29zdFJ1YlN0cigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3N0UnViID4gMCA/IGAke3RoaXMuY29zdFJ1Yi50b0xvY2FsZVN0cmluZygpfSDigr1gIDogJy0nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGdldENvc3RNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvc3RSdWIgPT09IDAgPyAn0KbQtdC90LAg0YLRgNC10LHRg9C10YIg0YPRgtC+0YfQvdC10L3QuNGPJyA6ICcnO1xuICAgIH1cbn1cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvb3JkZXIvY2xhc3Nlcy9zYy1vcmRlci1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHaEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQTRFcEI7Ozs7T0FJRztJQUNILFlBQW1CLElBQWtCO1FBQ2pDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDbkosQ0FBQztJQUVEOztPQUVHO0lBQ0ksNEJBQTRCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQy9LLENBQUM7SUFFRDs7T0FFRztJQUNJLHVCQUF1QjtRQUMxQixPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdEgsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNwRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NQcm9kdWN0IH0gZnJvbSAnLi4vLi4vY2F0YWxvZy9kdG8vc2MtcHJvZHVjdCc7XG5pbXBvcnQgeyBTY0lDb25maWd1cmF0b3JTZWFyY2hQcm9kdWN0QmFzZSB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRvci9kdG8vc2MtaS1jb25maWd1cmF0b3Itc2VhcmNoLXByb2R1Y3QtYmFzZSc7XG5pbXBvcnQgeyBTY051bWJlckhlbHBlciB9IGZyb20gJy4uLy4uL2hlbHBlcnMvc2MtbnVtYmVyLWhlbHBlcic7XG5pbXBvcnQgeyBTY0lPcmRlckl0ZW0gfSBmcm9tICcuLi9pbnRlcm5hbC9zYy1pLW9yZGVyLWl0ZW0nO1xuXG4vKipcbiAqINCU0LDQvdC90YvQtSDQviDQtdC00LjQvdC40YfQvdC+0Lkg0L/QvtC30LjRhtC40Lgg0YLQvtCy0LDRgNCwL9GD0YHQu9GD0LPQuCDQsiDQt9Cw0LrQsNC30LUgKNC60L7RgNC30LjQvdC1IC8g0YfQtdGA0L3QvtCy0LjQutC1KS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNjT3JkZXJJdGVtIHtcbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvZHVjdDogU2NQcm9kdWN0O1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgcXVhbnRpdHk6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNvc3Q6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNvc3RPbmU6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNvc3RPbmVSdWI6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNvc3RSdWI6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIG1hcmtlcj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGhlaWdodD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGxlbmd0aD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHdpZHRoPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9naWNHcm91cElkPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgc3BlY2lmaWNhdGlvbkltZ1VybD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNvbmZpZ3VyYXRvcj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNvbmZpZ3VyYXRvclBhcmFtcz86IFNjSUNvbmZpZ3VyYXRvclNlYXJjaFByb2R1Y3RCYXNlO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY09yZGVySXRlbX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0YSDQlNCw0L3QvdGL0LUg0LTQu9GPINC/0LXRgNCy0L7QvdCw0YfQsNC70YzQvdC+0Lkg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IFNjSU9yZGVySXRlbSkge1xuICAgICAgICB0aGlzLmlkID0gZGF0YS5pZDtcbiAgICAgICAgdGhpcy5wcm9kdWN0ID0gbmV3IFNjUHJvZHVjdChkYXRhLnByb2R1Y3QpO1xuICAgICAgICB0aGlzLnF1YW50aXR5ID0gZGF0YS5xdWFudGl0eTtcbiAgICAgICAgdGhpcy5jb3N0ID0gZGF0YS5jb3N0O1xuICAgICAgICB0aGlzLmNvc3RPbmUgPSBkYXRhLmNvc3RPbmU7XG4gICAgICAgIHRoaXMuY29zdFJ1YiA9IGRhdGEuY29zdFJ1YjtcbiAgICAgICAgdGhpcy5jb3N0T25lUnViID0gZGF0YS5jb3N0T25lUnViO1xuICAgICAgICB0aGlzLm1hcmtlciA9IGRhdGEubWFya2VyO1xuICAgICAgICB0aGlzLmhlaWdodCA9IGRhdGEuaGVpZ2h0O1xuICAgICAgICB0aGlzLmxlbmd0aCA9IGRhdGEubGVuZ3RoO1xuICAgICAgICB0aGlzLndpZHRoID0gZGF0YS53aWR0aDtcbiAgICAgICAgdGhpcy5sb2dpY0dyb3VwSWQgPSBkYXRhLmxvZ2ljR3JvdXBJZDtcbiAgICAgICAgdGhpcy5zcGVjaWZpY2F0aW9uSW1nVXJsID0gZGF0YS5zcGVjaWZpY2F0aW9uSW1nVXJsO1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRvciA9IGRhdGEuY29uZmlndXJhdG9yO1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRvclBhcmFtcyA9IGRhdGEuY29uZmlndXJhdG9yUGFyYW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGdldENvc3RQZXJJdGVtKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvc3RPbmUgPiAwID8gYCR7U2NOdW1iZXJIZWxwZXIuZm9ybWF0TW9uZXkodGhpcy5jb3N0T25lLCB0aGlzLnByb2R1Y3QuY3VycmVuY3kucHJlY2lzaW9uKX0gJHt0aGlzLnByb2R1Y3QuY3VycmVuY3kuc3ltYm9sfWAgOiAnLSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29zdEluQ3VycmVuY3lEZXNjUGVySXRlbSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3N0T25lID4gMCA/IGAke1NjTnVtYmVySGVscGVyLmZvcm1hdE1vbmV5KHRoaXMuY29zdE9uZSwgdGhpcy5wcm9kdWN0LmN1cnJlbmN5LnByZWNpc2lvbil9ICR7dGhpcy5wcm9kdWN0LmN1cnJlbmN5LnN5bWJvbH0gLyAke3RoaXMucHJvZHVjdC51bml0Lm5hbWV9YCA6ICctJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb3N0SW5SdWJEZXNjUGVySXRlbSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3N0T25lUnViID4gMCA/IGAke1NjTnVtYmVySGVscGVyLmZvcm1hdE1vbmV5KHRoaXMuY29zdE9uZVJ1Yil9IOKCvSAvICR7dGhpcy5wcm9kdWN0LnVuaXQubmFtZX1gIDogJy0nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGdldENvc3RSdWJTdHIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29zdFJ1YiA+IDAgPyBgJHtTY051bWJlckhlbHBlci5mb3JtYXRNb25leSh0aGlzLmNvc3RSdWIpfSDigr1gIDogJy0nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGdldENvc3RNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvc3RSdWIgPT09IDAgPyAn0KbQtdC90LAg0YLRgNC10LHRg9C10YIg0YPRgtC+0YfQvdC10L3QuNGPJyA6ICcnO1xuICAgIH1cbn1cbiJdfQ==
@@ -4,6 +4,7 @@ import { inject, Injectable } from '@angular/core';
4
4
  import { filter, map, of, take, tap } from 'rxjs';
5
5
  import { ScCartService } from '../../cart';
6
6
  import { ScCachedItem } from '../../catalog/classes/sc-cached-item';
7
+ import { ScNumberHelper } from '../../helpers/sc-number-helper';
7
8
  import { SC_UPDATE_INTERVAL, SC_URLS } from '../../tokens';
8
9
  import { SC_USER_INFO } from '../../user/tokens/sc-user-providers';
9
10
  import { ScUserMetrikaGoalsEnum, ScUserMetrikaService } from '../../user-metrika';
@@ -173,7 +174,7 @@ export class ScOrderDraftsService {
173
174
  }
174
175
  const updatedDraft = new ScOrderDraft(currentDraft);
175
176
  updatedDraft.products = remainingProducts;
176
- updatedDraft.sum = remainingProducts.reduce((sum, product) => sum + product.costRub, 0);
177
+ updatedDraft.sum = ScNumberHelper.roundMoney(remainingProducts.reduce((sum, product) => sum + product.costRub, 0));
177
178
  cachedItem.setValue(updatedDraft);
178
179
  });
179
180
  }
@@ -226,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
226
227
  providedIn: 'root',
227
228
  }]
228
229
  }], ctorParameters: () => [] });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItZHJhZnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL29yZGVyL3NlcnZpY2VzL3NjLW9yZGVyLWRyYWZ0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFPM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFrQixNQUFNLGlDQUFpQyxDQUFDOztBQUVyRjs7R0FFRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFvQzdCOztPQUVHO0lBQ0g7UUF0Q0E7O1dBRUc7UUFDYyxTQUFJLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZEOztXQUVHO1FBQ2MsU0FBSSxHQUFZLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNjLFVBQUssR0FBdUIsTUFBTSxDQUFD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RUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG5cbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jYXJ0JztcbmltcG9ydCB7IFNjQ2FjaGVkSXRlbSB9IGZyb20gJy4uLy4uL2NhdGFsb2cvY2xhc3Nlcy9zYy1jYWNoZWQtaXRlbSc7XG5pbXBvcnQgeyBTY0lVcGRhdGVJbnRlcnZhbCwgU2NJVXJscyB9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBTY0lQYWdpbmF0ZSB9IGZyb20gJy4uLy4uL3BhZ2luYXRpb24nO1xuaW1wb3J0IHsgU0NfVVBEQVRFX0lOVEVSVkFMLCBTQ19VUkxTIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcbmltcG9ydCB7IFNjVXNlciB9IGZyb20gJy4uLy4uL3VzZXIvZHRvL3NjLXVzZXInO1xuaW1wb3J0IHsgU0NfVVNFUl9JTkZPIH0gZnJvbSAnLi4vLi4vdXNlci90b2tlbnMvc2MtdXNlci1wcm92aWRlcnMnO1xuaW1wb3J0IHsgU2NVc2VyTWV0cmlrYUdvYWxzRW51bSwgU2NVc2VyTWV0cmlrYVNlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLW1ldHJpa2EnO1xuaW1wb3J0IHsgU2NPcmRlckRyYWZ0LCBTY09yZGVyRHJhZnRTaG9ydCwgU2NPcmRlclNob3J0IH0gZnJvbSAnLi4vY2xhc3Nlcyc7XG5pbXBvcnQgeyBTY09yZGVySXRlbSB9IGZyb20gJy4uL2NsYXNzZXMvc2Mtb3JkZXItaXRlbSc7XG5pbXBvcnQgeyBTY0lPcmRlckRyYWZ0LCBTY0lPcmRlckRyYWZ0U2hvcnQsIFNjSU9yZGVyRWRpdG9yTG9hZGVyLCBTY0lPcmRlclNob3J0IH0gZnJvbSAnLi4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgU2NJTmV3T3JkZXIgfSBmcm9tICcuLi9pbnRlcm5hbC9zYy1pLW5ldy1vcmRlcic7XG5pbXBvcnQgeyBTY0lOZXdPcmRlckRyYWZ0UmVxdWVzdCB9IGZyb20gJy4uL2ludGVybmFsL3NjLWktbmV3LW9yZGVyLWRyYWZ0LXJlcXVlc3QnO1xuaW1wb3J0IHsgU2NJTmV3T3JkZXJJdGVtQmFzZSB9IGZyb20gJy4uL2ludGVybmFsL3NjLWktbmV3LW9yZGVyLWl0ZW0tYmFzZSc7XG5pbXBvcnQgeyBTY0lVcGRhdGVPcmRlckRyYWZ0UmVxdWVzdCB9IGZyb20gJy4uL2ludGVybmFsL3NjLWktdXBkYXRlLW9yZGVyLW9yZGVyLXJlcXVlc3QnO1xuaW1wb3J0IHsgbG9hZGluZ1BsYWNlaG9sZGVyLCBTY09yZGVyTG9hZGluZyB9IGZyb20gJy4uL3Rva2Vucy9zYy1vcmRlci1sb2FkZXIudG9rZW4nO1xuXG4vKipcbiAqINCU0LDQvdC90YvQtSDQviDRgdC10YDQstC40YHQtSDQutC+0LzQvNC10YDRh9C10YHQutC40YUg0L/RgNC10LTQu9C+0LbQtdC90LjQuSDQuCDRh9C10YDQvdC+0LLQuNC60L7QsiDQt9Cw0LrQsNC30L7Qsi5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NPcmRlckRyYWZ0c1NlcnZpY2UgaW1wbGVtZW50cyBTY0lPcmRlckVkaXRvckxvYWRlcjxTY09yZGVySXRlbSwgU2NPcmRlckRyYWZ0PiB7XG4gICAgLyoqXG4gICAgICogSFRUUC3QutC70LjQtdC90YIuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LTQsNC90L3Ri9GFINC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXIkOiBPYnNlcnZhYmxlPFNjVXNlcj4gPSBpbmplY3QoU0NfVVNFUl9JTkZPKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3RgtC10YDQstCw0LvRiyDQvtCx0L3QvtCy0LvQtdC90LjRjyDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cGRhdGVJbnRlcnZhbDogU2NJVXBkYXRlSW50ZXJ2YWwgPSBpbmplY3QoU0NfVVBEQVRFX0lOVEVSVkFMKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC60L7RgNC30LjQvdC+0LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXJ0U2VydmljZTogU2NDYXJ0U2VydmljZSA9IGluamVjdChTY0NhcnRTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YHQsdC+0YDQsCDQvNC10YLRgNC40Log0L4g0LTQtdC50YHRgtCy0LjRj9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlck1ldHJpa2FTZXJ2aWNlOiBTY1VzZXJNZXRyaWthU2VydmljZSA9IGluamVjdChTY1VzZXJNZXRyaWthU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0LvQu9C10LrRhtC40Y8g0L/QsNGAINC60LvRjtGHLdC30L3QsNGH0LXQvdC40LUg0LTQu9GPINC60Y3RiNC40YDQvtCy0LDQvdC90YvRhSDQutC+0LzQvNC10YDRh9C10YHQutC40YUg0L/RgNC10LTQu9C+0LbQtdC90LjQuS/Rh9C10YDQvdC+0LLQuNC60L7QsiDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBvZmZlck1hcDogTWFwPG51bWJlciwgU2NDYWNoZWRJdGVtPFNjT3JkZXJEcmFmdCwgU2NPcmRlckxvYWRpbmc+PiA9IG5ldyBNYXA8bnVtYmVyLCBTY0NhY2hlZEl0ZW08U2NPcmRlckRyYWZ0LCBTY09yZGVyTG9hZGluZz4+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjT3JkZXJEcmFmdHNTZXJ2aWNlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudXNlciQucGlwZShmaWx0ZXIoKHVzZXIpID0+IHVzZXIuaXNHdWVzdCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9mZmVyTWFwLmNsZWFyKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDQutC+0LzQvNC10YDRh9C10YHQutC40YUg0L/RgNC10LTQu9C+0LbQtdC90LjQuS/Rh9C10YDQvdC+0LLQuNC60L7QsiDRgSDQv9Cw0LPQuNC90LDRhtC40LXQuS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbXMg0J/QsNGA0LDQvNC10YLRgNGLINC30LDQv9GA0L7RgdCwINC/0L7Qu9GD0YfQtdC90LjRjyDRgdC/0LjRgdC60LAuXG4gICAgICovXG4gICAgcHVibGljIGdldExpc3QkKHBhcmFtczogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8U2NJUGFnaW5hdGU8U2NPcmRlckRyYWZ0U2hvcnQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSVBhZ2luYXRlPFNjSU9yZGVyRHJhZnRTaG9ydD4+KGAke3RoaXMudXJscy5hcGlVcmx9L29yZGVycy9vZmZlcnNgLCB7IHBhcmFtczogcGFyYW1zIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKG9mZmVyc1BhZ2luYXRlRFRPKSA9PiB7XG4gICAgICAgICAgICAgICAgb2ZmZXJzUGFnaW5hdGVEVE8uZGF0YSA9IG9mZmVyc1BhZ2luYXRlRFRPLmRhdGEubWFwKChpdGVtKSA9PiBuZXcgU2NPcmRlckRyYWZ0U2hvcnQoaXRlbSkpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mZmVyc1BhZ2luYXRlRFRPIGFzIFNjSVBhZ2luYXRlPFNjT3JkZXJEcmFmdFNob3J0PjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0L3QvtCy0L7QtSDQutC+0LzQvNC10YDRh9C10YHQutC+0LUg0L/RgNC10LTQu9C+0LbQtdC90LjQtS/Rh9C10YDQvdC+0LLQuNC6INC30LDQutCw0LfQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhINCU0LDQvdC90YvQtSDQtNC70Y8g0YHQvtC30LTQsNC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlJChkYXRhOiBTY0lOZXdPcmRlckRyYWZ0UmVxdWVzdCk6IE9ic2VydmFibGU8U2NPcmRlckRyYWZ0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxTY0lPcmRlckRyYWZ0PihgJHt0aGlzLnVybHMuYXBpVXJsfS9vcmRlcnMvb2ZmZXJzYCwgZGF0YSkucGlwZShcbiAgICAgICAgICAgIG1hcCgob2ZmZXJEVE8pID0+IG5ldyBTY09yZGVyRHJhZnQob2ZmZXJEVE8pKSxcbiAgICAgICAgICAgIHRhcCgob2ZmZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5vcmRlckRyYWZ0Q3JlYXRlZCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7IG9mZmVyX2lkOiBvZmZlci5pZCB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FydFNlcnZpY2UudXBkYXRlQ2FydCgpO1xuICAgICAgICAgICAgICAgIHRoaXMub2ZmZXJNYXAuc2V0KG9mZmVyLmlkLCBuZXcgU2NDYWNoZWRJdGVtKHRoaXMudXBkYXRlSW50ZXJ2YWwub3JkZXJEYXRhLCBvZihvZmZlciksIGxvYWRpbmdQbGFjZWhvbGRlcikpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9C+0LvQvdGD0Y4g0LjQvdGE0L7RgNC80LDRhtC40Y4g0L4g0LrQvtC80LzQtdGA0YfQtdGB0LrQvtC8INC/0YDQtdC00LvQvtC20LXQvdC40Lgv0YfQtdGA0L3QvtCy0LjQutC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIGRyYWZ0SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LfQsNC/0LjRgdC4LlxuICAgICAqIEBwYXJhbSBjYWNoZWFibGUg0J/RgNC40LfQvdCw0Log0LLQvtC30LzQvtC20L3QvtGB0YLQuCDQv9C+0LvRg9GH0LXQvdC40Y8g0LjQtyDQutGN0YjQuNGA0L7QstCw0L3QvdGL0YUg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQkKGRyYWZ0SWQ6IG51bWJlciwgY2FjaGVhYmxlOiBib29sZWFuID0gdHJ1ZSk6IE9ic2VydmFibGU8U2NPcmRlckRyYWZ0IHwgU2NPcmRlckxvYWRpbmc+IHtcbiAgICAgICAgbGV0IGNhY2hlZEl0ZW0gPSB0aGlzLm9mZmVyTWFwLmdldChkcmFmdElkKTtcblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0pIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0gPSBuZXcgU2NDYWNoZWRJdGVtKFxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW50ZXJ2YWwub3JkZXJEYXRhLFxuICAgICAgICAgICAgICAgIHRoaXMuaHR0cC5nZXQ8U2NJT3JkZXJEcmFmdD4oYCR7dGhpcy51cmxzLmFwaVVybH0vb3JkZXJzL29mZmVycy8ke2RyYWZ0SWR9YCkucGlwZShtYXAoKGRhdGEpID0+IG5ldyBTY09yZGVyRHJhZnQoZGF0YSkpKSxcbiAgICAgICAgICAgICAgICBsb2FkaW5nUGxhY2Vob2xkZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChjYWNoZWFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9mZmVyTWFwLnNldChkcmFmdElkLCBjYWNoZWRJdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjYWNoZWFibGUgJiYgIWNhY2hlZEl0ZW0uY2FjaGVkRGF0YUlzQWN0dWFsKCkpIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0udXBkYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGVkSXRlbS5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0Y3Qu9C10LzQtdC90YLQvtCyINC60L7QvNC80LXRgNGH0LXRgdC60L7Qs9C+INC/0YDQtdC00LvQvtC20LXQvdC40Y8v0YfQtdGA0L3QvtCy0LjQutCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC60L7QvNC80LXRgNGH0LXRgdC60L7Qs9C+INC/0YDQtdC00LvQvtC20LXQvdC40Y8v0YfQtdGA0L3QvtCy0LjQutCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJdGVtcyQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8U2NPcmRlckl0ZW1bXSB8IFNjT3JkZXJMb2FkaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCQoaWQpLnBpcGUobWFwKChkcmFmdCkgPT4gKGRyYWZ0ID09PSBsb2FkaW5nUGxhY2Vob2xkZXIgPyBsb2FkaW5nUGxhY2Vob2xkZXIgOiAoZHJhZnQgYXMgU2NPcmRlckRyYWZ0KS5wcm9kdWN0cykpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LTQsNC90L3Ri9C1INC60L7QvNC80LXRgNGH0LXRgdC60L7Qs9C+INC/0YDQtdC00LvQvtC20LXQvdC40Y8v0YfQtdGA0L3QvtCy0LjQutCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRyYWZ0SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LfQsNC/0LjRgdC4LlxuICAgICAqIEBwYXJhbSBwYXRjaCDQlNCw0L3QvdGL0LUg0LTQu9GPINC+0LHQvdC+0LLQu9C10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGUkKGRyYWZ0SWQ6IG51bWJlciwgcGF0Y2g6IFNjSVVwZGF0ZU9yZGVyRHJhZnRSZXF1ZXN0KTogT2JzZXJ2YWJsZTxTY09yZGVyRHJhZnQ+IHtcbiAgICAgICAgY29uc3QgY2FjaGVkSXRlbSA9IHRoaXMub2ZmZXJNYXAuZ2V0KGRyYWZ0SWQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8U2NJT3JkZXJEcmFmdD4oYCR7dGhpcy51cmxzLmFwaVVybH0vb3JkZXJzL29mZmVycy8ke2RyYWZ0SWR9YCwgcGF0Y2gpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKG9mZmVyRFRPKSA9PiBuZXcgU2NPcmRlckRyYWZ0KG9mZmVyRFRPKSksXG4gICAgICAgICAgICB0YXAoKG9mZmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0ub3JkZXJEcmFmdFVwZGF0ZWQsXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyBvZmZlcl9pZDogZHJhZnRJZCB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNhY2hlZEl0ZW0/LnNldFZhbHVlKG9mZmVyKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LrQvtC80LzQtdGA0YfQtdGB0LrQvtC1INC/0YDQtdC00LvQvtC20LXQvdC40LUv0YfQtdGA0L3QvtCy0LjQui5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZmZlcklkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC30LDQv9C40YHQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlJChvZmZlcklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L29yZGVycy9vZmZlcnMvJHtvZmZlcklkfWApLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLm9yZGVyRHJhZnREZWxldGVkLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsgb2ZmZXJfaWQ6IG9mZmVySWQgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLm9mZmVyTWFwLmRlbGV0ZShvZmZlcklkKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0LfQsNC60LDQtyDQvdCwINC+0YHQvdC+0LLQtSDQutC+0LzQvNC10YDRh9C10YHQutC+0LPQviDQv9GA0LXQtNC70L7QttC10L3QuNGPL9GH0LXRgNC90L7QstC40LrQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZmZlcklkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC30LDQv9C40YHQuC5cbiAgICAgKiBAcGFyYW0gZGF0YSDQlNCw0L3QvdGL0LUg0LfQsNC60LDQt9CwLlxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVPcmRlciQob2ZmZXJJZDogbnVtYmVyLCBkYXRhOiBTY0lOZXdPcmRlcik6IE9ic2VydmFibGU8U2NPcmRlclNob3J0W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFNjSU9yZGVyU2hvcnRbXT4oYCR7dGhpcy51cmxzLmFwaVVybH0vb3JkZXJzL29mZmVycy8ke29mZmVySWR9L2NyZWF0ZS1vcmRlcmAsIGRhdGEpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKG9yZGVycykgPT4gb3JkZXJzLm1hcCgoaXRlbSkgPT4gbmV3IFNjT3JkZXJTaG9ydChpdGVtKSkpLFxuICAgICAgICAgICAgdGFwKChvcmRlcnM6IFNjT3JkZXJTaG9ydFtdKSA9PiB7XG4gICAgICAgICAgICAgICAgb3JkZXJzLmZvckVhY2goKG9yZGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5vcmRlckNyZWF0ZWRGcm9tRHJhZnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsgb2ZmZXJfaWQ6IG9mZmVySWQsIG9yZGVyX2lkOiBvcmRlci5pZCB9LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlT3JkZXJlZFByb2R1Y3RzRnJvbUNhY2hlKG9mZmVySWQsIGRhdGEuaXRlbXMgPz8gW10pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9Cx0LjRgNCw0LXRgiDQt9Cw0LrQsNC30LDQvdC90YvQtSDQv9C+0LfQuNGG0LjQuCDQuNC3INC60Y3RiNCwINGH0LXRgNC90L7QstC40LrQsCDQu9C+0LrQsNC70YzQvdC+ICjRgdC10YDQstC10YAg0YHRgNCw0LfRgyDQv9C+0YHQu9C1INC30LDQutCw0LfQsCDQtdGJ0ZEg0LzQvtC20LXRgiDQstC10YDQvdGD0YLRjCDQuNGFINCyINGB0L/QuNGB0LrQtSkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2ZmZXJJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRh9C10YDQvdC+0LLQuNC60LAuXG4gICAgICogQHBhcmFtIG9yZGVyZWRJdGVtSWRzINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0Ysg0LfQsNC60LDQt9Cw0L3QvdGL0YUg0L/QvtC30LjRhtC40LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZW1vdmVPcmRlcmVkUHJvZHVjdHNGcm9tQ2FjaGUob2ZmZXJJZDogbnVtYmVyLCBvcmRlcmVkSXRlbUlkczogQXJyYXk8bnVtYmVyIHwgc3RyaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCBjYWNoZWRJdGVtID0gdGhpcy5vZmZlck1hcC5nZXQob2ZmZXJJZCk7XG5cbiAgICAgICAgaWYgKCFjYWNoZWRJdGVtIHx8IG9yZGVyZWRJdGVtSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3JkZXJlZElkcyA9IG5ldyBTZXQob3JkZXJlZEl0ZW1JZHMubWFwKFN0cmluZykpO1xuXG4gICAgICAgIGNhY2hlZEl0ZW0uaXRlbSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGRyYWZ0KSA9PiB7XG4gICAgICAgICAgICBpZiAoZHJhZnQgPT09IGxvYWRpbmdQbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY3VycmVudERyYWZ0ID0gZHJhZnQgYXMgU2NPcmRlckRyYWZ0O1xuICAgICAgICAgICAgY29uc3QgcmVtYWluaW5nUHJvZHVjdHMgPSBjdXJyZW50RHJhZnQucHJvZHVjdHMuZmlsdGVyKChwcm9kdWN0KSA9PiAhb3JkZXJlZElkcy5oYXMocHJvZHVjdC5pZCkpO1xuXG4gICAgICAgICAgICBpZiAocmVtYWluaW5nUHJvZHVjdHMubGVuZ3RoID09PSBjdXJyZW50RHJhZnQucHJvZHVjdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRHJhZnQgPSBuZXcgU2NPcmRlckRyYWZ0KGN1cnJlbnREcmFmdCk7XG4gICAgICAgICAgICB1cGRhdGVkRHJhZnQucHJvZHVjdHMgPSByZW1haW5pbmdQcm9kdWN0cztcbiAgICAgICAgICAgIHVwZGF0ZWREcmFmdC5zdW0gPSByZW1haW5pbmdQcm9kdWN0cy5yZWR1Y2UoKHN1bSwgcHJvZHVjdCkgPT4gc3VtICsgcHJvZHVjdC5jb3N0UnViLCAwKTtcblxuICAgICAgICAgICAgY2FjaGVkSXRlbS5zZXRWYWx1ZSh1cGRhdGVkRHJhZnQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQlNC+0LHQsNCy0LvRj9C10YIg0L/RgNC+0LTRg9C60YIg0LIg0LrQvtC80LzQtdGA0YfQtdGB0LrQvtC1INC/0YDQtdC00LvQvtC20LXQvdC40LUv0YfQtdGA0L3QvtCy0LjQui5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0RGF0YSDQlNCw0L3QvdGL0LUg0L/RgNC+0LTRg9C60YLQsCDQtNC70Y8g0LTQvtCx0LDQstC70LXQvdC40Y8uXG4gICAgICogQHBhcmFtIG9mZmVySWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LrQvtC80LzQtdGA0YfQtdGB0LrQvtCz0L4g0L/RgNC10LTQu9C+0LbQtdC90LjRjy/Rh9C10YDQvdC+0LLQuNC60LAuXG4gICAgICovXG4gICAgcHVibGljIGFkZFByb2R1Y3QkKHByb2R1Y3REYXRhOiBTY0lOZXdPcmRlckl0ZW1CYXNlLCBvZmZlcklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFNjT3JkZXJEcmFmdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8U2NJT3JkZXJEcmFmdD4oYCR7dGhpcy51cmxzLmFwaVVybH0vb3JkZXJzL29mZmVycy8ke29mZmVySWR9L3Byb2R1Y3RzYCwgcHJvZHVjdERhdGEpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKG9mZmVyRFRPKSA9PiBuZXcgU2NPcmRlckRyYWZ0KG9mZmVyRFRPKSksXG4gICAgICAgICAgICB0YXAoKG9mZmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub2ZmZXJNYXAuaGFzKG9mZmVySWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub2ZmZXJNYXAuZ2V0KG9mZmVySWQpPy5zZXRWYWx1ZShvZmZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNC30LzQtdC90Y/QtdGCINC/0YDQvtC00YPQutGCINCyINC60L7QvNC80LXRgNGH0LXRgdC60L7QvCDQv9GA0LXQtNC70L7QttC10L3QuNC4L9GH0LXRgNC90L7QstC40LrQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0L/RgNC+0LTRg9C60YLQsCDQsiDQutC+0YDQt9C40L3QtS5cbiAgICAgKiBAcGFyYW0gcGF0Y2gg0KfQsNGB0YLQuNGH0L3Ri9C1INC00LDQvdC90YvQtSDQtNC70Y8g0L7QsdC90L7QstC70LXQvdC40Y8uXG4gICAgICogQHBhcmFtIG9mZmVySWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LrQvtC80LzQtdGA0YfQtdGB0LrQvtCz0L4g0L/RgNC10LTQu9C+0LbQtdC90LjRjy/Rh9C10YDQvdC+0LLQuNC60LAuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVByb2R1Y3QkKHByb2R1Y3RJZDogc3RyaW5nLCBwYXRjaDogT21pdDxTY0lOZXdPcmRlckl0ZW1CYXNlLCAncHJvZHVjdElkJz4sIG9mZmVySWQ6IG51bWJlcik6IE9ic2VydmFibGU8U2NPcmRlckRyYWZ0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8U2NJT3JkZXJEcmFmdD4oYCR7dGhpcy51cmxzLmFwaVVybH0vb3JkZXJzL29mZmVycy8ke29mZmVySWR9L3Byb2R1Y3RzLyR7cHJvZHVjdElkfWAsIHBhdGNoKS5waXBlKFxuICAgICAgICAgICAgbWFwKChvZmZlckRUTykgPT4gbmV3IFNjT3JkZXJEcmFmdChvZmZlckRUTykpLFxuICAgICAgICAgICAgdGFwKChvZmZlcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9mZmVyTWFwLmhhcyhvZmZlcklkKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9mZmVyTWFwLmdldChvZmZlcklkKT8uc2V0VmFsdWUob2ZmZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0L/RgNC+0LTRg9C60YIg0LjQtyDQutC+0LzQvNC10YDRh9C10YHQutC+0LPQviDQv9GA0LXQtNC70L7QttC10L3QuNGPL9GH0LXRgNC90L7QstC40LrQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtINCj0LTQsNC70Y/QtdC80LDRjyDQv9C+0LfQuNGG0LjRjy5cbiAgICAgKiBAcGFyYW0gb2ZmZXJJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQutC+0LzQvNC10YDRh9C10YHQutC+0LPQviDQv9GA0LXQtNC70L7QttC10L3QuNGPL9GH0LXRgNC90L7QstC40LrQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlUHJvZHVjdCQoaXRlbTogU2NPcmRlckl0ZW0sIG9mZmVySWQ6IG51bWJlcik6IE9ic2VydmFibGU8U2NPcmRlckRyYWZ0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPFNjSU9yZGVyRHJhZnQ+KGAke3RoaXMudXJscy5hcGlVcmx9L29yZGVycy9vZmZlcnMvJHtvZmZlcklkfS9wcm9kdWN0cy8ke2l0ZW0uaWR9YCkucGlwZShcbiAgICAgICAgICAgIG1hcCgob2ZmZXJEVE8pID0+IG5ldyBTY09yZGVyRHJhZnQob2ZmZXJEVE8pKSxcbiAgICAgICAgICAgIHRhcCgob2ZmZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vZmZlck1hcC5oYXMob2ZmZXJJZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vZmZlck1hcC5nZXQob2ZmZXJJZCk/LnNldFZhbHVlKG9mZmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItZHJhZnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL29yZGVyL3NlcnZpY2VzL3NjLW9yZGVyLWRyYWZ0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBTzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBa0IsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFFckY7O0dBRUc7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBb0M3Qjs7T0FFRztJQUNIO1FBdENBOztXQUVHO1FBQ2MsU0FBSSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2RDs7V0FFRztRQUNjLFNBQUksR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFD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bUhBQXBCLG9CQUFvQixjQUZqQixNQUFNOzs0RkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cblxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2NhcnQnO1xuaW1wb3J0IHsgU2NDYWNoZWRJdGVtIH0gZnJvbSAnLi4vLi4vY2F0YWxvZy9jbGFzc2VzL3NjLWNhY2hlZC1pdGVtJztcbmltcG9ydCB7IFNjSVVwZGF0ZUludGVydmFsLCBTY0lVcmxzIH0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7IFNjTnVtYmVySGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVycy9zYy1udW1iZXItaGVscGVyJztcbmltcG9ydCB7IFNjSVBhZ2luYXRlIH0gZnJvbSAnLi4vLi4vcGFnaW5hdGlvbic7XG5pbXBvcnQgeyBTQ19VUERBVEVfSU5URVJWQUwsIFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xuaW1wb3J0IHsgU2NVc2VyIH0gZnJvbSAnLi4vLi4vdXNlci9kdG8vc2MtdXNlcic7XG5pbXBvcnQgeyBTQ19VU0VSX0lORk8gfSBmcm9tICcuLi8uLi91c2VyL3Rva2Vucy9zYy11c2VyLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY1VzZXJNZXRyaWthR29hbHNFbnVtLCBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYSc7XG5pbXBvcnQgeyBTY09yZGVyRHJhZnQsIFNjT3JkZXJEcmFmdFNob3J0LCBTY09yZGVyU2hvcnQgfSBmcm9tICcuLi9jbGFzc2VzJztcbmltcG9ydCB7IFNjT3JkZXJJdGVtIH0gZnJvbSAnLi4vY2xhc3Nlcy9zYy1vcmRlci1pdGVtJztcbmltcG9ydCB7IFNjSU9yZGVyRHJhZnQsIFNjSU9yZGVyRHJhZnRTaG9ydCwgU2NJT3JkZXJFZGl0b3JMb2FkZXIsIFNjSU9yZGVyU2hvcnQgfSBmcm9tICcuLi9pbnRlcm5hbCc7XG5pbXBvcnQgeyBTY0lOZXdPcmRlciB9IGZyb20gJy4uL2ludGVybmFsL3NjLWktbmV3LW9yZGVyJztcbmltcG9ydCB7IFNjSU5ld09yZGVyRHJhZnRSZXF1ZXN0IH0gZnJvbSAnLi4vaW50ZXJuYWwvc2MtaS1uZXctb3JkZXItZHJhZnQtcmVxdWVzdCc7XG5pbXBvcnQgeyBTY0lOZXdPcmRlckl0ZW1CYXNlIH0gZnJvbSAnLi4vaW50ZXJuYWwvc2MtaS1uZXctb3JkZXItaXRlbS1iYXNlJztcbmltcG9ydCB7IFNjSVVwZGF0ZU9yZGVyRHJhZnRSZXF1ZXN0IH0gZnJvbSAnLi4vaW50ZXJuYWwvc2MtaS11cGRhdGUtb3JkZXItb3JkZXItcmVxdWVzdCc7XG5pbXBvcnQgeyBsb2FkaW5nUGxhY2Vob2xkZXIsIFNjT3JkZXJMb2FkaW5nIH0gZnJvbSAnLi4vdG9rZW5zL3NjLW9yZGVyLWxvYWRlci50b2tlbic7XG5cbi8qKlxuICog0JTQsNC90L3Ri9C1INC+INGB0LXRgNCy0LjRgdC1INC60L7QvNC80LXRgNGH0LXRgdC60LjRhSDQv9GA0LXQtNC70L7QttC10L3QuNC5INC4INGH0LXRgNC90L7QstC40LrQvtCyINC30LDQutCw0LfQvtCyLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY09yZGVyRHJhZnRzU2VydmljZSBpbXBsZW1lbnRzIFNjSU9yZGVyRWRpdG9yTG9hZGVyPFNjT3JkZXJJdGVtLCBTY09yZGVyRHJhZnQ+IHtcbiAgICAvKipcbiAgICAgKiBIVFRQLdC60LvQuNC10L3Rgi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YHRgdGL0LvQvtC6INC/0YDQuNC70L7QttC10L3QuNGPLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsczogU2NJVXJscyA9IGluamVjdChTQ19VUkxTKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQtNCw0L3QvdGL0YUg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlciQ6IE9ic2VydmFibGU8U2NVc2VyPiA9IGluamVjdChTQ19VU0VSX0lORk8pO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdGC0LXRgNCy0LDQu9GLINC+0LHQvdC+0LLQu9C10L3QuNGPINC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVwZGF0ZUludGVydmFsOiBTY0lVcGRhdGVJbnRlcnZhbCA9IGluamVjdChTQ19VUERBVEVfSU5URVJWQUwpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0LrQvtGA0LfQuNC90L7QuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBTY0NhcnRTZXJ2aWNlID0gaW5qZWN0KFNjQ2FydFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgdCx0L7RgNCwINC80LXRgtGA0LjQuiDQviDQtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyTWV0cmlrYVNlcnZpY2U6IFNjVXNlck1ldHJpa2FTZXJ2aWNlID0gaW5qZWN0KFNjVXNlck1ldHJpa2FTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCa0L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LrRjdGI0LjRgNC+0LLQsNC90L3Ri9GFINC60L7QvNC80LXRgNGH0LXRgdC60LjRhSDQv9GA0LXQtNC70L7QttC10L3QuNC5L9GH0LXRgNC90L7QstC40LrQvtCyINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9mZmVyTWFwOiBNYXA8bnVtYmVyLCBTY0NhY2hlZEl0ZW08U2NPcmRlckRyYWZ0LCBTY09yZGVyTG9hZGluZz4+ID0gbmV3IE1hcDxudW1iZXIsIFNjQ2FjaGVkSXRlbTxTY09yZGVyRHJhZnQsIFNjT3JkZXJMb2FkaW5nPj4oKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NPcmRlckRyYWZ0c1NlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy51c2VyJC5waXBlKGZpbHRlcigodXNlcikgPT4gdXNlci5pc0d1ZXN0KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub2ZmZXJNYXAuY2xlYXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INC60L7QvNC80LXRgNGH0LXRgdC60LjRhSDQv9GA0LXQtNC70L7QttC10L3QuNC5L9GH0LXRgNC90L7QstC40LrQvtCyINGBINC/0LDQs9C40L3QsNGG0LjQtdC5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhcmFtcyDQn9Cw0YDQsNC80LXRgtGA0Ysg0LfQsNC/0YDQvtGB0LAg0L/QvtC70YPRh9C10L3QuNGPINGB0L/QuNGB0LrQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TGlzdCQocGFyYW1zOiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxTY0lQYWdpbmF0ZTxTY09yZGVyRHJhZnRTaG9ydD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2NJUGFnaW5hdGU8U2NJT3JkZXJEcmFmdFNob3J0Pj4oYCR7dGhpcy51cmxzLmFwaVVybH0vb3JkZXJzL29mZmVyc2AsIHsgcGFyYW1zOiBwYXJhbXMgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgob2ZmZXJzUGFnaW5hdGVEVE8pID0+IHtcbiAgICAgICAgICAgICAgICBvZmZlcnNQYWdpbmF0ZURUTy5kYXRhID0gb2ZmZXJzUGFnaW5hdGVEVE8uZGF0YS5tYXAoKGl0ZW0pID0+IG5ldyBTY09yZGVyRHJhZnRTaG9ydChpdGVtKSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gb2ZmZXJzUGFnaW5hdGVEVE8gYXMgU2NJUGFnaW5hdGU8U2NPcmRlckRyYWZ0U2hvcnQ+O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0ZHRgiDQvdC+0LLQvtC1INC60L7QvNC80LXRgNGH0LXRgdC60L7QtSDQv9GA0LXQtNC70L7QttC10L3QuNC1L9GH0LXRgNC90L7QstC40Log0LfQsNC60LDQt9CwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGEg0JTQsNC90L3Ri9C1INC00LvRjyDRgdC+0LfQtNCw0L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGUkKGRhdGE6IFNjSU5ld09yZGVyRHJhZnRSZXF1ZXN0KTogT2JzZXJ2YWJsZTxTY09yZGVyRHJhZnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFNjSU9yZGVyRHJhZnQ+KGAke3RoaXMudXJscy5hcGlVcmx9L29yZGVycy9vZmZlcnNgLCBkYXRhKS5waXBlKFxuICAgICAgICAgICAgbWFwKChvZmZlckRUTykgPT4gbmV3IFNjT3JkZXJEcmFmdChvZmZlckRUTykpLFxuICAgICAgICAgICAgdGFwKChvZmZlcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLm9yZGVyRHJhZnRDcmVhdGVkLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsgb2ZmZXJfaWQ6IG9mZmVyLmlkIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0U2VydmljZS51cGRhdGVDYXJ0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vZmZlck1hcC5zZXQob2ZmZXIuaWQsIG5ldyBTY0NhY2hlZEl0ZW0odGhpcy51cGRhdGVJbnRlcnZhbC5vcmRlckRhdGEsIG9mKG9mZmVyKSwgbG9hZGluZ1BsYWNlaG9sZGVyKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0L7Qu9C90YPRjiDQuNC90YTQvtGA0LzQsNGG0LjRjiDQviDQutC+0LzQvNC10YDRh9C10YHQutC+0Lwg0L/RgNC10LTQu9C+0LbQtdC90LjQuC/Rh9C10YDQvdC+0LLQuNC60LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZHJhZnRJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQt9Cw0L/QuNGB0LguXG4gICAgICogQHBhcmFtIGNhY2hlYWJsZSDQn9GA0LjQt9C90LDQuiDQstC+0LfQvNC+0LbQvdC+0YHRgtC4INC/0L7Qu9GD0YfQtdC90LjRjyDQuNC3INC60Y3RiNC40YDQvtCy0LDQvdC90YvRhSDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHVibGljIGdldCQoZHJhZnRJZDogbnVtYmVyLCBjYWNoZWFibGU6IGJvb2xlYW4gPSB0cnVlKTogT2JzZXJ2YWJsZTxTY09yZGVyRHJhZnQgfCBTY09yZGVyTG9hZGluZz4ge1xuICAgICAgICBsZXQgY2FjaGVkSXRlbSA9IHRoaXMub2ZmZXJNYXAuZ2V0KGRyYWZ0SWQpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbSA9IG5ldyBTY0NhY2hlZEl0ZW0oXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVJbnRlcnZhbC5vcmRlckRhdGEsXG4gICAgICAgICAgICAgICAgdGhpcy5odHRwLmdldDxTY0lPcmRlckRyYWZ0PihgJHt0aGlzLnVybHMuYXBpVXJsfS9vcmRlcnMvb2ZmZXJzLyR7ZHJhZnRJZH1gKS5waXBlKG1hcCgoZGF0YSkgPT4gbmV3IFNjT3JkZXJEcmFmdChkYXRhKSkpLFxuICAgICAgICAgICAgICAgIGxvYWRpbmdQbGFjZWhvbGRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGNhY2hlYWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub2ZmZXJNYXAuc2V0KGRyYWZ0SWQsIGNhY2hlZEl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNhY2hlYWJsZSAmJiAhY2FjaGVkSXRlbS5jYWNoZWREYXRhSXNBY3R1YWwoKSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbS51cGRhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYWNoZWRJdGVtLml0ZW0kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDRjdC70LXQvNC10L3RgtC+0LIg0LrQvtC80LzQtdGA0YfQtdGB0LrQvtCz0L4g0L/RgNC10LTQu9C+0LbQtdC90LjRjy/Rh9C10YDQvdC+0LLQuNC60LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LrQvtC80LzQtdGA0YfQtdGB0LrQvtCz0L4g0L/RgNC10LTQu9C+0LbQtdC90LjRjy/Rh9C10YDQvdC+0LLQuNC60LAuXG4gICAgICovXG4gICAgcHVibGljIGdldEl0ZW1zJChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTY09yZGVySXRlbVtdIHwgU2NPcmRlckxvYWRpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0JChpZCkucGlwZShtYXAoKGRyYWZ0KSA9PiAoZHJhZnQgPT09IGxvYWRpbmdQbGFjZWhvbGRlciA/IGxvYWRpbmdQbGFjZWhvbGRlciA6IChkcmFmdCBhcyBTY09yZGVyRHJhZnQpLnByb2R1Y3RzKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDQtNCw0L3QvdGL0LUg0LrQvtC80LzQtdGA0YfQtdGB0LrQvtCz0L4g0L/RgNC10LTQu9C+0LbQtdC90LjRjy/Rh9C10YDQvdC+0LLQuNC60LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZHJhZnRJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQt9Cw0L/QuNGB0LguXG4gICAgICogQHBhcmFtIHBhdGNoINCU0LDQvdC90YvQtSDQtNC70Y8g0L7QsdC90L7QstC70LXQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZSQoZHJhZnRJZDogbnVtYmVyLCBwYXRjaDogU2NJVXBkYXRlT3JkZXJEcmFmdFJlcXVlc3QpOiBPYnNlcnZhYmxlPFNjT3JkZXJEcmFmdD4ge1xuICAgICAgICBjb25zdCBjYWNoZWRJdGVtID0gdGhpcy5vZmZlck1hcC5nZXQoZHJhZnRJZCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxTY0lPcmRlckRyYWZ0PihgJHt0aGlzLnVybHMuYXBpVXJsfS9vcmRlcnMvb2ZmZXJzLyR7ZHJhZnRJZH1gLCBwYXRjaCkucGlwZShcbiAgICAgICAgICAgIG1hcCgob2ZmZXJEVE8pID0+IG5ldyBTY09yZGVyRHJhZnQob2ZmZXJEVE8pKSxcbiAgICAgICAgICAgIHRhcCgob2ZmZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5vcmRlckRyYWZ0VXBkYXRlZCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7IG9mZmVyX2lkOiBkcmFmdElkIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY2FjaGVkSXRlbT8uc2V0VmFsdWUob2ZmZXIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQutC+0LzQvNC10YDRh9C10YHQutC+0LUg0L/RgNC10LTQu9C+0LbQtdC90LjQtS/Rh9C10YDQvdC+0LLQuNC6LlxuICAgICAqXG4gICAgICogQHBhcmFtIG9mZmVySWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LfQsNC/0LjRgdC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGUkKG9mZmVySWQ6IG51bWJlcik6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vb3JkZXJzL29mZmVycy8ke29mZmVySWR9YCkucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0ub3JkZXJEcmFmdERlbGV0ZWQsXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyBvZmZlcl9pZDogb2ZmZXJJZCB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMub2ZmZXJNYXAuZGVsZXRlKG9mZmVySWQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0ZHRgiDQt9Cw0LrQsNC3INC90LAg0L7RgdC90L7QstC1INC60L7QvNC80LXRgNGH0LXRgdC60L7Qs9C+INC/0YDQtdC00LvQvtC20LXQvdC40Y8v0YfQtdGA0L3QvtCy0LjQutCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9mZmVySWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LfQsNC/0LjRgdC4LlxuICAgICAqIEBwYXJhbSBkYXRhINCU0LDQvdC90YvQtSDQt9Cw0LrQsNC30LAuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZU9yZGVyJChvZmZlcklkOiBudW1iZXIsIGRhdGE6IFNjSU5ld09yZGVyKTogT2JzZXJ2YWJsZTxTY09yZGVyU2hvcnRbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8U2NJT3JkZXJTaG9ydFtdPihgJHt0aGlzLnVybHMuYXBpVXJsfS9vcmRlcnMvb2ZmZXJzLyR7b2ZmZXJJZH0vY3JlYXRlLW9yZGVyYCwgZGF0YSkucGlwZShcbiAgICAgICAgICAgIG1hcCgob3JkZXJzKSA9PiBvcmRlcnMubWFwKChpdGVtKSA9PiBuZXcgU2NPcmRlclNob3J0KGl0ZW0pKSksXG4gICAgICAgICAgICB0YXAoKG9yZGVyczogU2NPcmRlclNob3J0W10pID0+IHtcbiAgICAgICAgICAgICAgICBvcmRlcnMuZm9yRWFjaCgob3JkZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLm9yZGVyQ3JlYXRlZEZyb21EcmFmdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyBvZmZlcl9pZDogb2ZmZXJJZCwgb3JkZXJfaWQ6IG9yZGVyLmlkIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVPcmRlcmVkUHJvZHVjdHNGcm9tQ2FjaGUob2ZmZXJJZCwgZGF0YS5pdGVtcyA/PyBbXSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LHQuNGA0LDQtdGCINC30LDQutCw0LfQsNC90L3Ri9C1INC/0L7Qt9C40YbQuNC4INC40Lcg0LrRjdGI0LAg0YfQtdGA0L3QvtCy0LjQutCwINC70L7QutCw0LvRjNC90L4gKNGB0LXRgNCy0LXRgCDRgdGA0LDQt9GDINC/0L7RgdC70LUg0LfQsNC60LDQt9CwINC10YnRkSDQvNC+0LbQtdGCINCy0LXRgNC90YPRgtGMINC40YUg0LIg0YHQv9C40YHQutC1KS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZmZlcklkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGH0LXRgNC90L7QstC40LrQsC5cbiAgICAgKiBAcGFyYW0gb3JkZXJlZEl0ZW1JZHMg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRiyDQt9Cw0LrQsNC30LDQvdC90YvRhSDQv9C+0LfQuNGG0LjQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlbW92ZU9yZGVyZWRQcm9kdWN0c0Zyb21DYWNoZShvZmZlcklkOiBudW1iZXIsIG9yZGVyZWRJdGVtSWRzOiBBcnJheTxudW1iZXIgfCBzdHJpbmc+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhY2hlZEl0ZW0gPSB0aGlzLm9mZmVyTWFwLmdldChvZmZlcklkKTtcblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0gfHwgb3JkZXJlZEl0ZW1JZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvcmRlcmVkSWRzID0gbmV3IFNldChvcmRlcmVkSXRlbUlkcy5tYXAoU3RyaW5nKSk7XG5cbiAgICAgICAgY2FjaGVkSXRlbS5pdGVtJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoZHJhZnQpID0+IHtcbiAgICAgICAgICAgIGlmIChkcmFmdCA9PT0gbG9hZGluZ1BsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RHJhZnQgPSBkcmFmdCBhcyBTY09yZGVyRHJhZnQ7XG4gICAgICAgICAgICBjb25zdCByZW1haW5pbmdQcm9kdWN0cyA9IGN1cnJlbnREcmFmdC5wcm9kdWN0cy5maWx0ZXIoKHByb2R1Y3QpID0+ICFvcmRlcmVkSWRzLmhhcyhwcm9kdWN0LmlkKSk7XG5cbiAgICAgICAgICAgIGlmIChyZW1haW5pbmdQcm9kdWN0cy5sZW5ndGggPT09IGN1cnJlbnREcmFmdC5wcm9kdWN0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREcmFmdCA9IG5ldyBTY09yZGVyRHJhZnQoY3VycmVudERyYWZ0KTtcbiAgICAgICAgICAgIHVwZGF0ZWREcmFmdC5wcm9kdWN0cyA9IHJlbWFpbmluZ1Byb2R1Y3RzO1xuICAgICAgICAgICAgdXBkYXRlZERyYWZ0LnN1bSA9IFNjTnVtYmVySGVscGVyLnJvdW5kTW9uZXkocmVtYWluaW5nUHJvZHVjdHMucmVkdWNlKChzdW0sIHByb2R1Y3QpID0+IHN1bSArIHByb2R1Y3QuY29zdFJ1YiwgMCkpO1xuXG4gICAgICAgICAgICBjYWNoZWRJdGVtLnNldFZhbHVlKHVwZGF0ZWREcmFmdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCU0L7QsdCw0LLQu9GP0LXRgiDQv9GA0L7QtNGD0LrRgiDQsiDQutC+0LzQvNC10YDRh9C10YHQutC+0LUg0L/RgNC10LTQu9C+0LbQtdC90LjQtS/Rh9C10YDQvdC+0LLQuNC6LlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3REYXRhINCU0LDQvdC90YvQtSDQv9GA0L7QtNGD0LrRgtCwINC00LvRjyDQtNC+0LHQsNCy0LvQtdC90LjRjy5cbiAgICAgKiBAcGFyYW0gb2ZmZXJJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQutC+0LzQvNC10YDRh9C10YHQutC+0LPQviDQv9GA0LXQtNC70L7QttC10L3QuNGPL9GH0LXRgNC90L7QstC40LrQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkUHJvZHVjdCQocHJvZHVjdERhdGE6IFNjSU5ld09yZGVySXRlbUJhc2UsIG9mZmVySWQ6IG51bWJlcik6IE9ic2VydmFibGU8U2NPcmRlckRyYWZ0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxTY0lPcmRlckRyYWZ0PihgJHt0aGlzLnVybHMuYXBpVXJsfS9vcmRlcnMvb2ZmZXJzLyR7b2ZmZXJJZH0vcHJvZHVjdHNgLCBwcm9kdWN0RGF0YSkucGlwZShcbiAgICAgICAgICAgIG1hcCgob2ZmZXJEVE8pID0+IG5ldyBTY09yZGVyRHJhZnQob2ZmZXJEVE8pKSxcbiAgICAgICAgICAgIHRhcCgob2ZmZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vZmZlck1hcC5oYXMob2ZmZXJJZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vZmZlck1hcC5nZXQob2ZmZXJJZCk/LnNldFZhbHVlKG9mZmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCY0LfQvNC10L3Rj9C10YIg0L/RgNC+0LTRg9C60YIg0LIg0LrQvtC80LzQtdGA0YfQtdGB0LrQvtC8INC/0YDQtdC00LvQvtC20LXQvdC40Lgv0YfQtdGA0L3QvtCy0LjQutC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3RJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQv9GA0L7QtNGD0LrRgtCwINCyINC60L7RgNC30LjQvdC1LlxuICAgICAqIEBwYXJhbSBwYXRjaCDQp9Cw0YHRgtC40YfQvdGL0LUg0LTQsNC90L3Ri9C1INC00LvRjyDQvtCx0L3QvtCy0LvQtdC90LjRjy5cbiAgICAgKiBAcGFyYW0gb2ZmZXJJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQutC+0LzQvNC10YDRh9C10YHQutC+0LPQviDQv9GA0LXQtNC70L7QttC10L3QuNGPL9GH0LXRgNC90L7QstC40LrQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlUHJvZHVjdCQocHJvZHVjdElkOiBzdHJpbmcsIHBhdGNoOiBPbWl0PFNjSU5ld09yZGVySXRlbUJhc2UsICdwcm9kdWN0SWQnPiwgb2ZmZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTY09yZGVyRHJhZnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxTY0lPcmRlckRyYWZ0PihgJHt0aGlzLnVybHMuYXBpVXJsfS9vcmRlcnMvb2ZmZXJzLyR7b2ZmZXJJZH0vcHJvZHVjdHMvJHtwcm9kdWN0SWR9YCwgcGF0Y2gpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKG9mZmVyRFRPKSA9PiBuZXcgU2NPcmRlckRyYWZ0KG9mZmVyRFRPKSksXG4gICAgICAgICAgICB0YXAoKG9mZmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub2ZmZXJNYXAuaGFzKG9mZmVySWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub2ZmZXJNYXAuZ2V0KG9mZmVySWQpPy5zZXRWYWx1ZShvZmZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQv9GA0L7QtNGD0LrRgiDQuNC3INC60L7QvNC80LXRgNGH0LXRgdC60L7Qs9C+INC/0YDQtdC00LvQvtC20LXQvdC40Y8v0YfQtdGA0L3QvtCy0LjQutCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGl0ZW0g0KPQtNCw0LvRj9C10LzQsNGPINC/0L7Qt9C40YbQuNGPLlxuICAgICAqIEBwYXJhbSBvZmZlcklkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC60L7QvNC80LXRgNGH0LXRgdC60L7Qs9C+INC/0YDQtdC00LvQvtC20LXQvdC40Y8v0YfQtdGA0L3QvtCy0LjQutCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGVQcm9kdWN0JChpdGVtOiBTY09yZGVySXRlbSwgb2ZmZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTY09yZGVyRHJhZnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8U2NJT3JkZXJEcmFmdD4oYCR7dGhpcy51cmxzLmFwaVVybH0vb3JkZXJzL29mZmVycy8ke29mZmVySWR9L3Byb2R1Y3RzLyR7aXRlbS5pZH1gKS5waXBlKFxuICAgICAgICAgICAgbWFwKChvZmZlckRUTykgPT4gbmV3IFNjT3JkZXJEcmFmdChvZmZlckRUTykpLFxuICAgICAgICAgICAgdGFwKChvZmZlcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9mZmVyTWFwLmhhcyhvZmZlcklkKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9mZmVyTWFwLmdldChvZmZlcklkKT8uc2V0VmFsdWUob2ZmZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -1,4 +1,5 @@
1
1
  export * from './dto';
2
2
  export * from './enums';
3
3
  export * from './services';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3JlZmVyZW5jZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2R0byc7XG5leHBvcnQgKiBmcm9tICcuL2VudW1zJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMnO1xuIl19
4
+ export * from './sc-rub-precision.providers';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3JlZmVyZW5jZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHRvJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjLXJ1Yi1wcmVjaXNpb24ucHJvdmlkZXJzJztcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { APP_INITIALIZER, makeEnvironmentProviders } from '@angular/core';
2
+ import { catchError, EMPTY, ignoreElements, tap } from 'rxjs';
3
+ import { ScNumberHelper } from '../helpers/sc-number-helper';
4
+ import { ScReferencesService } from './services';
5
+ /**
6
+ * Возвращает загрузку точности рубля из справочника валют при старте приложения.
7
+ *
8
+ * @param referencesService Сервис справочников.
9
+ */
10
+ function loadRubPrecision(referencesService) {
11
+ return () => referencesService.currencies$.pipe(tap((currencies) => {
12
+ ScNumberHelper.setRubPrecision(currencies.find((currency) => currency.signature === 'RUB')?.precision);
13
+ }), ignoreElements(), catchError(() => EMPTY));
14
+ }
15
+ /**
16
+ * Возвращает провайдеры загрузки точности рубля из справочника валют при старте приложения.
17
+ * По этой точности {@link ScNumberHelper} округляет и выводит рублёвые суммы.
18
+ */
19
+ export function provideRubPrecision() {
20
+ return makeEnvironmentProviders([{ provide: APP_INITIALIZER, multi: true, deps: [ScReferencesService], useFactory: loadRubPrecision }]);
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcnViLXByZWNpc2lvbi5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3JlZmVyZW5jZXMvc2MtcnViLXByZWNpc2lvbi5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBd0Isd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpEOzs7O0dBSUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLGlCQUFzQztJQUM1RCxPQUFPLEdBQUcsRUFBRSxDQUNSLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzlCLEdBQUcsQ0FBQyxDQUFDLFVBQXlCLEVBQUUsRUFBRTtRQUM5QixjQUFjLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDM0csQ0FBQyxDQUFDLEVBQ0YsY0FBYyxFQUFFLEVBQ2hCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FDMUIsQ0FBQztBQUNWLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CO0lBQy9CLE9BQU8sd0JBQXdCLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1SSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBFbnZpcm9ubWVudFByb3ZpZGVycywgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBFTVBUWSwgaWdub3JlRWxlbWVudHMsIE9ic2VydmFibGUsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY051bWJlckhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvc2MtbnVtYmVyLWhlbHBlcic7XG5pbXBvcnQgeyBTY0lDdXJyZW5jeSB9IGZyb20gJy4vZHRvJztcbmltcG9ydCB7IFNjUmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcblxuLyoqXG4gKiDQktC+0LfQstGA0LDRidCw0LXRgiDQt9Cw0LPRgNGD0LfQutGDINGC0L7Rh9C90L7RgdGC0Lgg0YDRg9Cx0LvRjyDQuNC3INGB0L/RgNCw0LLQvtGH0L3QuNC60LAg0LLQsNC70Y7RgiDQv9GA0Lgg0YHRgtCw0YDRgtC1INC/0YDQuNC70L7QttC10L3QuNGPLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2VzU2VydmljZSDQodC10YDQstC40YEg0YHQv9GA0LDQstC+0YfQvdC40LrQvtCyLlxuICovXG5mdW5jdGlvbiBsb2FkUnViUHJlY2lzaW9uKHJlZmVyZW5jZXNTZXJ2aWNlOiBTY1JlZmVyZW5jZXNTZXJ2aWNlKTogKCkgPT4gT2JzZXJ2YWJsZTxuZXZlcj4ge1xuICAgIHJldHVybiAoKSA9PlxuICAgICAgICByZWZlcmVuY2VzU2VydmljZS5jdXJyZW5jaWVzJC5waXBlKFxuICAgICAgICAgICAgdGFwKChjdXJyZW5jaWVzOiBTY0lDdXJyZW5jeVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgU2NOdW1iZXJIZWxwZXIuc2V0UnViUHJlY2lzaW9uKGN1cnJlbmNpZXMuZmluZCgoY3VycmVuY3kpID0+IGN1cnJlbmN5LnNpZ25hdHVyZSA9PT0gJ1JVQicpPy5wcmVjaXNpb24pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBpZ25vcmVFbGVtZW50cygpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBFTVBUWSlcbiAgICAgICAgKTtcbn1cblxuLyoqXG4gKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9GA0L7QstCw0LnQtNC10YDRiyDQt9Cw0LPRgNGD0LfQutC4INGC0L7Rh9C90L7RgdGC0Lgg0YDRg9Cx0LvRjyDQuNC3INGB0L/RgNCw0LLQvtGH0L3QuNC60LAg0LLQsNC70Y7RgiDQv9GA0Lgg0YHRgtCw0YDRgtC1INC/0YDQuNC70L7QttC10L3QuNGPLlxuICog0J/QviDRjdGC0L7QuSDRgtC+0YfQvdC+0YHRgtC4IHtAbGluayBTY051bWJlckhlbHBlcn0g0L7QutGA0YPQs9C70Y/QtdGCINC4INCy0YvQstC+0LTQuNGCINGA0YPQsdC70ZHQstGL0LUg0YHRg9C80LzRiy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVSdWJQcmVjaXNpb24oKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW3sgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLCBtdWx0aTogdHJ1ZSwgZGVwczogW1NjUmVmZXJlbmNlc1NlcnZpY2VdLCB1c2VGYWN0b3J5OiBsb2FkUnViUHJlY2lzaW9uIH1dKTtcbn1cbiJdfQ==