@snabcentr/client-core 3.23.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 { TuiDay } from '@taiga-ui/cdk';
2
+ import { ScNumberHelper } from '../../helpers/sc-number-helper';
2
3
  import { ScCatalogItem } from '../classes/sc-catalog-item';
3
4
  import { ScCategory } from './sc-category';
4
5
  /**
@@ -62,19 +63,19 @@ export class ScProduct extends ScCatalogItem {
62
63
  * Стоимость товара или услуги с валютой и единицей измерения.
63
64
  */
64
65
  get costString() {
65
- return this.cost ? `${this.cost.toLocaleString()} ${this.currency.symbol} / ${this.unit.name}` : '';
66
+ return this.cost ? `${ScNumberHelper.formatMoney(this.cost, this.currency.precision)} ${this.currency.symbol} / ${this.unit.name}` : '';
66
67
  }
67
68
  /**
68
69
  * Стоимость товара или услуги в рублях и с единицей измерения.
69
70
  */
70
71
  get costRubString() {
71
- return this.costRub ? `${this.costRub.toLocaleString()} ₽ / ${this.unit.name}` : '';
72
+ return this.costRub ? `${ScNumberHelper.formatMoney(this.costRub)} ₽ / ${this.unit.name}` : '';
72
73
  }
73
74
  /**
74
75
  * Стоимость товара или услуги с валютой и единицей измерения до применения скидки.
75
76
  */
76
77
  get discountCostString() {
77
- return this.discount?.oldCost ? `${this.discount.oldCost.toLocaleString()} ${this.currency.symbol} / ${this.unit.name}` : '';
78
+ return this.discount?.oldCost ? `${ScNumberHelper.formatMoney(this.discount.oldCost, this.currency.precision)} ${this.currency.symbol} / ${this.unit.name}` : '';
78
79
  }
79
80
  /**
80
81
  * Признак, что товар продаётся в рублях.
@@ -157,4 +158,4 @@ export class ScProduct extends ScCatalogItem {
157
158
  }
158
159
  }
159
160
  }
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9kdG8vc2MtcHJvZHVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUkzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVUsU0FBUSxhQUEwQjtJQThIckQ7Ozs7O09BS0c7SUFDSCxZQUFtQixJQUF1QixFQUFFLE1BQWMsQ0FBQztRQUN2RCxLQUFLLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBMUM3Qjs7V0FFRztRQUNJLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFPakM7O1dBRUc7UUFDSSxXQUFNLEdBQVksS0FBSyxDQUFDO1FBTy9COztXQUVHO1FBQ0ksbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFPdkM7O1dBRUc7UUFDSSx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFXeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVmLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxV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QUFtQjtRQUM1QyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsS0FBSyxTQUFTLENBQUM7SUFDeEcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxrQkFBa0IsQ0FBQyxTQUF1QjtRQUM3QyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzNELE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLG1CQUFtQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUscUJBQXFCLENBQUM7UUFFbkcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pELE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxrSkFBa0o7UUFDbEosTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV4RyxRQUFRLFFBQVEsRUFBRSxDQUFDO1lBQ2YsS0FBSyxDQUFDO2dCQUNGLE9BQU8sZUFBZSxDQUFDO1lBQzNCLEtBQUssQ0FBQztnQkFDRixPQUFPLGNBQWMsQ0FBQztZQUMxQixLQUFLLENBQUM7Z0JBQ0YsT0FBTyxtQkFBbUIsQ0FBQztZQUMvQjtnQkFDSSxPQUFPLGFBQWEsV0FBVyxFQUFFLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1aURheSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuXG5pbXBvcnQgeyBTY09yZGVySXRlbSB9IGZyb20gJy4uLy4uL29yZGVyL2NsYXNzZXMvc2Mtb3JkZXItaXRlbSc7XG5pbXBvcnQgeyBTY0lDdXJyZW5jeSB9IGZyb20gJy4uLy4uL3JlZmVyZW5jZXMvZHRvL3NjLWktY3VycmVuY3knO1xuaW1wb3J0IHsgU2NJUHJvZHVjdFVuaXQgfSBmcm9tICcuLi8uLi9yZWZlcmVuY2VzL2R0by9zYy1pLXByb2R1Y3QtdW5pdCc7XG5pbXBvcnQgeyBTY0lXYXJlaG91c2VTdG9ja0NvdW50IH0gZnJvbSAnLi4vLi4vd2FyZWhvdXNlL2R0by9zYy1pLXdhcmVob3VzZS1zdG9jay1jb3VudCc7XG5pbXBvcnQgeyBTY0lXYXJlaG91c2UgfSBmcm9tICcuLi8uLi93YXJlaG91c2UvZHRvL3NjLXdhcmVob3VzZSc7XG5pbXBvcnQgeyBTY0NhdGFsb2dJdGVtIH0gZnJvbSAnLi4vY2xhc3Nlcy9zYy1jYXRhbG9nLWl0ZW0nO1xuaW1wb3J0IHsgU2NJQ2F0ZWdvcnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjLWktY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NJUHJvZHVjdCB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2MtaS1wcm9kdWN0JztcbmltcG9ydCB7IFNjUHJpY2VIaXN0b3J5IH0gZnJvbSAnLi4vdHlwZXMvc2MtcHJpY2UtaGlzdG9yeSc7XG5pbXBvcnQgeyBTY0NhdGVnb3J5IH0gZnJvbSAnLi9zYy1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTY0lEaXNjb3VudCB9IGZyb20gJy4vc2MtaS1kaXNjb3VudCc7XG5pbXBvcnQgeyBTY0lQcm9kdWN0SW1hZ2VzIH0gZnJvbSAnLi9zYy1pLXByb2R1Y3QtaW1hZ2VzJztcblxuLyoqXG4gKiDQnNC+0LTQtdC70Ywg0LTQsNC90L3Ri9GFINGC0L7QstCw0YDQsC/Rg9GB0LvRg9Cz0LguXG4gKi9cbmV4cG9ydCBjbGFzcyBTY1Byb2R1Y3QgZXh0ZW5kcyBTY0NhdGFsb2dJdGVtPFNjSUNhdGVnb3J5PiBpbXBsZW1lbnRzIFNjSVByb2R1Y3Qge1xuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGlzSGlkZGVuOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgc3VwcGxpZXJTa3U/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBicmFuZD86IHN0cmluZyB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiDQoUBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNvc3Q/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBjb3N0UnViPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY29zdERhdGU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBjdXJyZW5jeTogU2NJQ3VycmVuY3k7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyB1bml0OiBTY0lQcm9kdWN0VW5pdDtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIG1pbkNvdW50PzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RvY2tDb3VudD86IFNjSVdhcmVob3VzZVN0b2NrQ291bnRbXTtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIG9uT3JkZXI/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgcGFjaz86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGlzRmF2b3JpdGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBpc1ByZXZpb3VzbHlPcmRlcmVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGltYWdlcz86IHJlYWRvbmx5IFNjSVByb2R1Y3RJbWFnZXNbXTtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNhdGVnb3JpZXM6IFNjSUNhdGVnb3J5W107XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBkaXNjb3VudD86IFNjSURpc2NvdW50O1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJpbWFyeUNhdGVnb3J5PzogU2NJQ2F0ZWdvcnk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDQvdCw0LvQuNGH0LjRjyDQuNC30L7QsdGA0LDQttC10L3QuNGPINGDINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzSW1hZ2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqINCe0LHRitC10LrRgiDRjdC70LXQvNC10L3RgtCwINC60L7RgNC30LjQvdGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBjYXJ0SXRlbT86IFNjT3JkZXJJdGVtO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRgtC+0LLQsNGAINC+0YLRgdGD0YLRgdGC0LLRg9C10YIuXG4gICAgICovXG4gICAgcHVibGljIGlzTnVsbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0J/QvtGA0Y/QtNC+0Log0YHQu9C10LTQvtCy0LDQvdC40Y8g0YLQvtCy0LDRgNCwINCyINGB0L/QuNGB0LrQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3JkOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INGC0L7QstCw0YAg0YHQutGA0YvQu9C4INGE0LjQu9GM0YLRgNC+0LwuXG4gICAgICovXG4gICAgcHVibGljIGlzSGlkZGVuRmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQmNGB0YLQvtGA0LjRjyDQuNC30LzQtdC90LXQvdC40Y8g0YbQtdC90Ysg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0LguXG4gICAgICovXG4gICAgcHVibGljIHByaWNlSGlzdG9yeT86IFNjUHJpY2VIaXN0b3J5O1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0Lgg0LjQs9C90L7RgNC40YDQvtCy0LDRgtGMINC/0YDQvtCy0LXRgNC60YMg0LzQuNC90LjQvNCw0LvRjNC90L7Qs9C+INC60L7Qu9C40YfQtdGB0YLQstCwINC4INC60YDQsNGC0L3QvtGB0YLQuCDQv9GA0Lgg0LTQvtCx0LDQstC70LXQvdC40Lgg0YLQvtCy0LDRgNCwINCyINC60L7RgNC30LjQvdGDINC4INGB0L7Qt9C00LDQvdC40Lgg0LfQsNC60LDQt9CwLlxuICAgICAqL1xuICAgIHB1YmxpYyBpZ25vcmVNaW5Db3VudENoZWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjUHJvZHVjdH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0YSDQlNCw0L3QvdGL0LUg0L4g0L/RgNC+0LTRg9C60YLQtS5cbiAgICAgKiBAcGFyYW0gb3JkINCf0L7RgNGP0LTQvtC6INGB0LvQtdC00L7QstCw0L3QuNGPINC/0YDQvtC00YPQutGC0LAg0LIg0YHQv9C40YHQutC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhOiBTY0lQcm9kdWN0IHwgbnVsbCwgb3JkOiBudW1iZXIgPSAwKSB7XG4gICAgICAgIHN1cGVyKGRhdGEgPz8gdW5kZWZpbmVkKTtcblxuICAgICAgICB0aGlzLmlzSGlkZGVuID0gZGF0YT8uaXNIaWRkZW4gPz8gZmFsc2U7XG4gICAgICAgIHRoaXMub3JkID0gb3JkO1xuXG4gICAgICAgIGlmIChkYXRhID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmlzTnVsbCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSAn0KLQvtCy0LDRgCDQvdC1INC90LDQudC00LXQvSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmltYWdlID0gZGF0YS5pbWFnZXM/LmZpbmQoKGltZykgPT4gaW1nLmlzRGVmYXVsdCk/LmltYWdlID8/IGRhdGEucHJvcGVydGllcz8uaW1hZ2U7XG5cbiAgICAgICAgICAgIHRoaXMuc3VwcGxpZXJTa3UgPSBkYXRhLnN1cHBsaWVyU2t1O1xuICAgICAgICAgICAgdGhpcy5icmFuZCA9IGRhdGEuYnJhbmQ7XG4gICAgICAgICAgICB0aGlzLmNvc3QgPSBkYXRhLmNvc3Q7XG4gICAgICAgICAgICB0aGlzLmNvc3RSdWIgPSBkYXRhLmNvc3RSdWI7XG4gICAgICAgICAgICB0aGlzLmNvc3REYXRlID0gZGF0YS5jb3N0RGF0ZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVuY3kgPSBkYXRhLmN1cnJlbmN5O1xuICAgICAgICAgICAgdGhpcy51bml0ID0gZGF0YS51bml0O1xuICAgICAgICAgICAgdGhpcy5taW5Db3VudCA9IGRhdGEubWluQ291bnQ7XG4gICAgICAgICAgICB0aGlzLnN0b2NrQ291bnQgPSBkYXRhLnN0b2NrQ291bnQ7XG4gICAgICAgICAgICB0aGlzLm9uT3JkZXIgPSBkYXRhLm9uT3JkZXI7XG4gICAgICAgICAgICB0aGlzLnBhY2sgPSBkYXRhLnBhY2s7XG4gICAgICAgICAgICB0aGlzLmlzRmF2b3JpdGUgPSBCb29sZWFuKGRhdGEuaXNGYXZvcml0ZSk7XG4gICAgICAgICAgICB0aGlzLmlzUHJldmlvdXNseU9yZGVyZWQgPSBkYXRhLmlzUHJldmlvdXNseU9yZGVyZWQ7XG4gICAgICAgICAgICB0aGlzLmhhc0ltYWdlID0gKGRhdGEuaW1hZ2VzICYmIGRhdGEuaW1hZ2VzLmxlbmd0aCA+IDApID8/IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pbWFnZXMgPSBkYXRhLmltYWdlcz8uc2xpY2UoKS5zb3J0KChpbWcxLCBpbWcyKSA9PiBOdW1iZXIoaW1nMi5pc0RlZmF1bHQpIC0gTnVtYmVyKGltZzEuaXNEZWZhdWx0KSk7XG4gICAgICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSBkYXRhLmNhdGVnb3JpZXMubWFwKChjYXRlZ29yeSkgPT4gbmV3IFNjQ2F0ZWdvcnkoY2F0ZWdvcnkpKTtcbiAgICAgICAgICAgIHRoaXMucHJpbWFyeUNhdGVnb3J5ID0gdGhpcy5jYXRlZ29yaWVzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaXNQcmltYXJ5KTtcbiAgICAgICAgICAgIHRoaXMuaWdub3JlTWluQ291bnRDaGVjayA9IGRhdGEucHJvcGVydGllcz8uaWdub3JlTWluQ291bnRDaGVjayA/PyB0aGlzLnByb3BlcnRpZXM/Lmlnbm9yZU1pbkNvdW50Q2hlY2sgPz8gdGhpcy5pZ25vcmVNaW5Db3VudENoZWNrO1xuICAgICAgICAgICAgdGhpcy5kaXNjb3VudCA9IGRhdGEuZGlzY291bnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0YEg0LLQsNC70Y7RgtC+0Lkg0Lgg0LXQtNC40L3QuNGG0LXQuSDQuNC30LzQtdGA0LXQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIGdldCBjb3N0U3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvc3QgPyBgJHt0aGlzLmNvc3QudG9Mb2NhbGVTdHJpbmcoKX0gJHt0aGlzLmN1cnJlbmN5LnN5bWJvbH0gLyAke3RoaXMudW5pdC5uYW1lfWAgOiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0LIg0YDRg9Cx0LvRj9GFINC4INGBINC10LTQuNC90LjRhtC10Lkg0LjQt9C80LXRgNC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgY29zdFJ1YlN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3N0UnViID8gYCR7dGhpcy5jb3N0UnViLnRvTG9jYWxlU3RyaW5nKCl9IOKCvSAvICR7dGhpcy51bml0Lm5hbWV9YCA6ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0YLQvtC40LzQvtGB0YLRjCDRgtC+0LLQsNGA0LAg0LjQu9C4INGD0YHQu9GD0LPQuCDRgSDQstCw0LvRjtGC0L7QuSDQuCDQtdC00LjQvdC40YbQtdC5INC40LfQvNC10YDQtdC90LjRjyDQtNC+INC/0YDQuNC80LXQvdC10L3QuNGPINGB0LrQuNC00LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRpc2NvdW50Q29zdFN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNjb3VudD8ub2xkQ29zdCA/IGAke3RoaXMuZGlzY291bnQub2xkQ29zdC50b0xvY2FsZVN0cmluZygpfSAke3RoaXMuY3VycmVuY3kuc3ltYm9sfSAvICR7dGhpcy51bml0Lm5hbWV9YCA6ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0YLQvtCy0LDRgCDQv9GA0L7QtNCw0ZHRgtGB0Y8g0LIg0YDRg9Cx0LvRj9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcHJpY2VJblJ1YigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVuY3kuc3ltYm9sID09PSAn4oK9JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+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=
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9kdG8vc2MtcHJvZHVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU1oRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQzs7R0FFRztBQUNILE1BQU0sT0FBTyxTQUFVLFNBQVEsYUFBMEI7SUE4SHJEOzs7OztPQUtHO0lBQ0gsWUFBbUIsSUFBdUIsRUFBRSxNQUFjLENBQUM7UUFDdkQsS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQztRQTFDN0I7O1dBRUc7UUFDSSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBT2pDOztXQUVHO1FBQ0ksV0FBTSxHQUFZLEtBQUssQ0FBQztRQU8vQjs7V0FFRztRQUNJLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBT3ZDOztXQUVHO1FBQ0ksd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBV3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDeEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFFZixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FB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LFdBQVcsRUFBRSxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUdWlEYXkgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcblxuaW1wb3J0IHsgU2NOdW1iZXJIZWxwZXIgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3NjLW51bWJlci1oZWxwZXInO1xuaW1wb3J0IHsgU2NPcmRlckl0ZW0gfSBmcm9tICcuLi8uLi9vcmRlci9jbGFzc2VzL3NjLW9yZGVyLWl0ZW0nO1xuaW1wb3J0IHsgU2NJQ3VycmVuY3kgfSBmcm9tICcuLi8uLi9yZWZlcmVuY2VzL2R0by9zYy1pLWN1cnJlbmN5JztcbmltcG9ydCB7IFNjSVByb2R1Y3RVbml0IH0gZnJvbSAnLi4vLi4vcmVmZXJlbmNlcy9kdG8vc2MtaS1wcm9kdWN0LXVuaXQnO1xuaW1wb3J0IHsgU2NJV2FyZWhvdXNlU3RvY2tDb3VudCB9IGZyb20gJy4uLy4uL3dhcmVob3VzZS9kdG8vc2MtaS13YXJlaG91c2Utc3RvY2stY291bnQnO1xuaW1wb3J0IHsgU2NJV2FyZWhvdXNlIH0gZnJvbSAnLi4vLi4vd2FyZWhvdXNlL2R0by9zYy13YXJlaG91c2UnO1xuaW1wb3J0IHsgU2NDYXRhbG9nSXRlbSB9IGZyb20gJy4uL2NsYXNzZXMvc2MtY2F0YWxvZy1pdGVtJztcbmltcG9ydCB7IFNjSUNhdGVnb3J5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjSVByb2R1Y3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjLWktcHJvZHVjdCc7XG5pbXBvcnQgeyBTY1ByaWNlSGlzdG9yeSB9IGZyb20gJy4uL3R5cGVzL3NjLXByaWNlLWhpc3RvcnknO1xuaW1wb3J0IHsgU2NDYXRlZ29yeSB9IGZyb20gJy4vc2MtY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NJRGlzY291bnQgfSBmcm9tICcuL3NjLWktZGlzY291bnQnO1xuaW1wb3J0IHsgU2NJUHJvZHVjdEltYWdlcyB9IGZyb20gJy4vc2MtaS1wcm9kdWN0LWltYWdlcyc7XG5cbi8qKlxuICog0JzQvtC00LXQu9GMINC00LDQvdC90YvRhSDRgtC+0LLQsNGA0LAv0YPRgdC70YPQs9C4LlxuICovXG5leHBvcnQgY2xhc3MgU2NQcm9kdWN0IGV4dGVuZHMgU2NDYXRhbG9nSXRlbTxTY0lDYXRlZ29yeT4gaW1wbGVtZW50cyBTY0lQcm9kdWN0IHtcbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBpc0hpZGRlbjogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHN1cHBsaWVyU2t1Pzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYnJhbmQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICog0KFAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBjb3N0PzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY29zdFJ1Yj86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNvc3REYXRlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY3VycmVuY3k6IFNjSUN1cnJlbmN5O1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgdW5pdDogU2NJUHJvZHVjdFVuaXQ7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBtaW5Db3VudD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHN0b2NrQ291bnQ/OiBTY0lXYXJlaG91c2VTdG9ja0NvdW50W107XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBvbk9yZGVyPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHBhY2s/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBpc0Zhdm9yaXRlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmV2aW91c2x5T3JkZXJlZD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpbWFnZXM/OiByZWFkb25seSBTY0lQcm9kdWN0SW1hZ2VzW107XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBjYXRlZ29yaWVzOiBTY0lDYXRlZ29yeVtdO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzY291bnQ/OiBTY0lEaXNjb3VudDtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHByaW1hcnlDYXRlZ29yeT86IFNjSUNhdGVnb3J5O1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0L3QsNC70LjRh9C40Y8g0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDRgyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHVibGljIGhhc0ltYWdlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIg0Y3Qu9C10LzQtdC90YLQsCDQutC+0YDQt9C40L3Riy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2FydEl0ZW0/OiBTY09yZGVySXRlbTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0YLQvtCy0LDRgCDQvtGC0YHRg9GC0YHRgtCy0YPQtdGCLlxuICAgICAqL1xuICAgIHB1YmxpYyBpc051bGw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqINCf0L7RgNGP0LTQvtC6INGB0LvQtdC00L7QstCw0L3QuNGPINGC0L7QstCw0YDQsCDQsiDRgdC/0LjRgdC60LUuXG4gICAgICovXG4gICAgcHVibGljIG9yZDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINGH0YLQviDRgtC+0LLQsNGAINGB0LrRgNGL0LvQuCDRhNC40LvRjNGC0YDQvtC8LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc0hpZGRlbkZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0JjRgdGC0L7RgNC40Y8g0LjQt9C80LXQvdC10L3QuNGPINGG0LXQvdGLINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4LlxuICAgICAqL1xuICAgIHB1YmxpYyBwcmljZUhpc3Rvcnk/OiBTY1ByaWNlSGlzdG9yeTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INC90LXQvtCx0YXQvtC00LjQvNC+0YHRgtC4INC40LPQvdC+0YDQuNGA0L7QstCw0YLRjCDQv9GA0L7QstC10YDQutGDINC80LjQvdC40LzQsNC70YzQvdC+0LPQviDQutC+0LvQuNGH0LXRgdGC0LLQsCDQuCDQutGA0LDRgtC90L7RgdGC0Lgg0L/RgNC4INC00L7QsdCw0LLQu9C10L3QuNC4INGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3RgyDQuCDRgdC+0LfQtNCw0L3QuNC4INC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaWdub3JlTWluQ291bnRDaGVjazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1Byb2R1Y3R9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGEg0JTQsNC90L3Ri9C1INC+INC/0YDQvtC00YPQutGC0LUuXG4gICAgICogQHBhcmFtIG9yZCDQn9C+0YDRj9C00L7QuiDRgdC70LXQtNC+0LLQsNC90LjRjyDQv9GA0L7QtNGD0LrRgtCwINCyINGB0L/QuNGB0LrQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogU2NJUHJvZHVjdCB8IG51bGwsIG9yZDogbnVtYmVyID0gMCkge1xuICAgICAgICBzdXBlcihkYXRhID8/IHVuZGVmaW5lZCk7XG5cbiAgICAgICAgdGhpcy5pc0hpZGRlbiA9IGRhdGE/LmlzSGlkZGVuID8/IGZhbHNlO1xuICAgICAgICB0aGlzLm9yZCA9IG9yZDtcblxuICAgICAgICBpZiAoZGF0YSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5pc051bGwgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gJ9Ci0L7QstCw0YAg0L3QtSDQvdCw0LnQtNC10L0nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbWFnZSA9IGRhdGEuaW1hZ2VzPy5maW5kKChpbWcpID0+IGltZy5pc0RlZmF1bHQpPy5pbWFnZSA/PyBkYXRhLnByb3BlcnRpZXM/LmltYWdlO1xuXG4gICAgICAgICAgICB0aGlzLnN1cHBsaWVyU2t1ID0gZGF0YS5zdXBwbGllclNrdTtcbiAgICAgICAgICAgIHRoaXMuYnJhbmQgPSBkYXRhLmJyYW5kO1xuICAgICAgICAgICAgdGhpcy5jb3N0ID0gZGF0YS5jb3N0O1xuICAgICAgICAgICAgdGhpcy5jb3N0UnViID0gZGF0YS5jb3N0UnViO1xuICAgICAgICAgICAgdGhpcy5jb3N0RGF0ZSA9IGRhdGEuY29zdERhdGU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5ID0gZGF0YS5jdXJyZW5jeTtcbiAgICAgICAgICAgIHRoaXMudW5pdCA9IGRhdGEudW5pdDtcbiAgICAgICAgICAgIHRoaXMubWluQ291bnQgPSBkYXRhLm1pbkNvdW50O1xuICAgICAgICAgICAgdGhpcy5zdG9ja0NvdW50ID0gZGF0YS5zdG9ja0NvdW50O1xuICAgICAgICAgICAgdGhpcy5vbk9yZGVyID0gZGF0YS5vbk9yZGVyO1xuICAgICAgICAgICAgdGhpcy5wYWNrID0gZGF0YS5wYWNrO1xuICAgICAgICAgICAgdGhpcy5pc0Zhdm9yaXRlID0gQm9vbGVhbihkYXRhLmlzRmF2b3JpdGUpO1xuICAgICAgICAgICAgdGhpcy5pc1ByZXZpb3VzbHlPcmRlcmVkID0gZGF0YS5pc1ByZXZpb3VzbHlPcmRlcmVkO1xuICAgICAgICAgICAgdGhpcy5oYXNJbWFnZSA9IChkYXRhLmltYWdlcyAmJiBkYXRhLmltYWdlcy5sZW5ndGggPiAwKSA/PyBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VzID0gZGF0YS5pbWFnZXM/LnNsaWNlKCkuc29ydCgoaW1nMSwgaW1nMikgPT4gTnVtYmVyKGltZzIuaXNEZWZhdWx0KSAtIE51bWJlcihpbWcxLmlzRGVmYXVsdCkpO1xuICAgICAgICAgICAgdGhpcy5jYXRlZ29yaWVzID0gZGF0YS5jYXRlZ29yaWVzLm1hcCgoY2F0ZWdvcnkpID0+IG5ldyBTY0NhdGVnb3J5KGNhdGVnb3J5KSk7XG4gICAgICAgICAgICB0aGlzLnByaW1hcnlDYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcmllcy5maW5kKChpdGVtKSA9PiBpdGVtLmlzUHJpbWFyeSk7XG4gICAgICAgICAgICB0aGlzLmlnbm9yZU1pbkNvdW50Q2hlY2sgPSBkYXRhLnByb3BlcnRpZXM/Lmlnbm9yZU1pbkNvdW50Q2hlY2sgPz8gdGhpcy5wcm9wZXJ0aWVzPy5pZ25vcmVNaW5Db3VudENoZWNrID8/IHRoaXMuaWdub3JlTWluQ291bnRDaGVjaztcbiAgICAgICAgICAgIHRoaXMuZGlzY291bnQgPSBkYXRhLmRpc2NvdW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHRgtC+0LjQvNC+0YHRgtGMINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4INGBINCy0LDQu9GO0YLQvtC5INC4INC10LTQuNC90LjRhtC10Lkg0LjQt9C80LXRgNC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgY29zdFN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3N0ID8gYCR7U2NOdW1iZXJIZWxwZXIuZm9ybWF0TW9uZXkodGhpcy5jb3N0LCB0aGlzLmN1cnJlbmN5LnByZWNpc2lvbil9ICR7dGhpcy5jdXJyZW5jeS5zeW1ib2x9IC8gJHt0aGlzLnVuaXQubmFtZX1gIDogJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHRgtC+0LjQvNC+0YHRgtGMINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4INCyINGA0YPQsdC70Y/RhSDQuCDRgSDQtdC00LjQvdC40YbQtdC5INC40LfQvNC10YDQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGNvc3RSdWJTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29zdFJ1YiA/IGAke1NjTnVtYmVySGVscGVyLmZvcm1hdE1vbmV5KHRoaXMuY29zdFJ1Yil9IOKCvSAvICR7dGhpcy51bml0Lm5hbWV9YCA6ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0YLQvtC40LzQvtGB0YLRjCDRgtC+0LLQsNGA0LAg0LjQu9C4INGD0YHQu9GD0LPQuCDRgSDQstCw0LvRjtGC0L7QuSDQuCDQtdC00LjQvdC40YbQtdC5INC40LfQvNC10YDQtdC90LjRjyDQtNC+INC/0YDQuNC80LXQvdC10L3QuNGPINGB0LrQuNC00LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRpc2NvdW50Q29zdFN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNjb3VudD8ub2xkQ29zdCA/IGAke1NjTnVtYmVySGVscGVyLmZvcm1hdE1vbmV5KHRoaXMuZGlzY291bnQub2xkQ29zdCwgdGhpcy5jdXJyZW5jeS5wcmVjaXNpb24pfSAke3RoaXMuY3VycmVuY3kuc3ltYm9sfSAvICR7dGhpcy51bml0Lm5hbWV9YCA6ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0YLQvtCy0LDRgCDQv9GA0L7QtNCw0ZHRgtGB0Y8g0LIg0YDRg9Cx0LvRj9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcHJpY2VJblJ1YigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVuY3kuc3ltYm9sID09PSAn4oK9JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+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,4 +1,5 @@
1
1
  export * from './sc-image-helper';
2
2
  export * from './sc-units-helper';
3
3
  export * from './sc-get-current-route';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2hlbHBlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NjLWltYWdlLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL3NjLXVuaXRzLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL3NjLWdldC1jdXJyZW50LXJvdXRlJztcbiJdfQ==
4
+ export * from './sc-number-helper';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2hlbHBlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2MtaW1hZ2UtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtdW5pdHMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtZ2V0LWN1cnJlbnQtcm91dGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1udW1iZXItaGVscGVyJztcbiJdfQ==
@@ -0,0 +1,210 @@
1
+ import { tuiRound } from '@taiga-ui/cdk';
2
+ import { tuiFormatNumber } from '@taiga-ui/core';
3
+ /**
4
+ * Класс-помощник для работы с дробными числами.
5
+ *
6
+ * Округляет с учётом погрешности дробной арифметики, считает кратность шагу и задаёт настройки вывода чисел.
7
+ */
8
+ export class ScNumberHelper {
9
+ /**
10
+ * Наибольшее количество знаков после запятой в проценте на экране.
11
+ */
12
+ static { this.percentDisplayFractionDigits = 2; }
13
+ /**
14
+ * Наибольшее количество знаков после запятой в площади, м².
15
+ */
16
+ static { this.areaFractionDigits = 4; }
17
+ /**
18
+ * Количество знаков после запятой в географических координатах.
19
+ */
20
+ static { this.coordinateFractionDigits = 6; }
21
+ /**
22
+ * Количество значащих цифр, до которого обрезается погрешность дробной арифметики.
23
+ */
24
+ static { this.significantDigits = 12; }
25
+ /**
26
+ * Допустимая погрешность сравнения дробных чисел.
27
+ */
28
+ static { this.epsilon = 0.000001; }
29
+ /**
30
+ * Настройки вывода площади.
31
+ */
32
+ static { this.areaFormat = {
33
+ precision: ScNumberHelper.areaFractionDigits,
34
+ decimalSeparator: ',',
35
+ decimalMode: 'not-zero',
36
+ rounding: 'round',
37
+ }; }
38
+ /**
39
+ * Настройки вывода целых чисел.
40
+ */
41
+ static { this.integerFormat = {
42
+ precision: 0,
43
+ rounding: 'round',
44
+ }; }
45
+ /**
46
+ * Настройки вывода процентов.
47
+ */
48
+ static { this.percentFormat = {
49
+ precision: ScNumberHelper.percentDisplayFractionDigits,
50
+ decimalSeparator: ',',
51
+ decimalMode: 'not-zero',
52
+ rounding: 'round',
53
+ }; }
54
+ /**
55
+ * Настройки вывода денежных сумм по точности валюты.
56
+ */
57
+ static { this.moneyFormatsByPrecision = new Map(); }
58
+ /**
59
+ * Точность рубля из справочника валют ({@link ScICurrency.precision}) или undefined, если справочник не загружен.
60
+ */
61
+ static get rubPrecision() {
62
+ return ScNumberHelper.rubPrecisionValue;
63
+ }
64
+ /**
65
+ * Возвращает количество знаков после запятой в указанном числе с учётом экспоненциальной записи.
66
+ *
67
+ * @param value Число, для которого нужно определить количество знаков после запятой.
68
+ */
69
+ static getDecimalsCount(value) {
70
+ if (!Number.isFinite(value) || Number.isInteger(value)) {
71
+ return 0;
72
+ }
73
+ const [mantissa, exponent] = value.toString().split('e');
74
+ const mantissaParts = mantissa.split('.');
75
+ const decimals = mantissaParts.length > 1 ? mantissaParts[1].length : 0;
76
+ return Math.max(decimals - (Number(exponent) || 0), 0);
77
+ }
78
+ /**
79
+ * Возвращает число без погрешности дробной арифметики.
80
+ *
81
+ * @param value Число с возможной погрешностью.
82
+ */
83
+ static normalize(value) {
84
+ return Number.isFinite(value) ? Number(value.toPrecision(ScNumberHelper.significantDigits)) : value;
85
+ }
86
+ /**
87
+ * Возвращает значение, округлённое до указанного количества знаков после запятой.
88
+ *
89
+ * @param value Округляемое значение.
90
+ * @param fractionDigits Количество знаков после запятой.
91
+ */
92
+ static round(value, fractionDigits) {
93
+ return tuiRound(value, fractionDigits);
94
+ }
95
+ /**
96
+ * Запоминает точность рубля из справочника валют.
97
+ *
98
+ * @param precision Точность рубля ({@link ScICurrency.precision}).
99
+ */
100
+ static setRubPrecision(precision) {
101
+ ScNumberHelper.rubPrecisionValue = precision;
102
+ }
103
+ /**
104
+ * Возвращает денежную сумму, округлённую до точности валюты.
105
+ *
106
+ * Без известной точности убирает только погрешность дробной арифметики.
107
+ *
108
+ * @param value Денежная сумма.
109
+ * @param precision Точность валюты суммы ({@link ScICurrency.precision}), по умолчанию точность рубля.
110
+ */
111
+ static roundMoney(value, precision = ScNumberHelper.rubPrecision) {
112
+ return precision === undefined ? ScNumberHelper.normalize(value) : ScNumberHelper.round(value, precision);
113
+ }
114
+ /**
115
+ * Возвращает географическую координату, округлённую до точности хранения.
116
+ *
117
+ * @param value Координата.
118
+ */
119
+ static roundCoordinate(value) {
120
+ return ScNumberHelper.round(value, ScNumberHelper.coordinateFractionDigits);
121
+ }
122
+ /**
123
+ * Возвращает произведение значения на шаг, округлённое до точности множителей.
124
+ *
125
+ * @param value Множитель, обычно количество.
126
+ * @param step Шаг.
127
+ */
128
+ static multiplyByStep(value, step) {
129
+ return ScNumberHelper.round(value * step, ScNumberHelper.getDecimalsCount(step) + ScNumberHelper.getDecimalsCount(value));
130
+ }
131
+ /**
132
+ * Возвращает частное от деления значения на шаг без погрешности дробной арифметики.
133
+ *
134
+ * @param value Делимое, обычно длина или количество.
135
+ * @param step Шаг.
136
+ */
137
+ static divideByStep(value, step) {
138
+ return ScNumberHelper.withoutNegativeZero(ScNumberHelper.normalize(value / step));
139
+ }
140
+ /**
141
+ * Возвращает сумму значения и шага, округлённую до точности слагаемых.
142
+ *
143
+ * @param value Значение.
144
+ * @param step Шаг.
145
+ */
146
+ static addStep(value, step) {
147
+ return ScNumberHelper.round(value + step, Math.max(ScNumberHelper.getDecimalsCount(value), ScNumberHelper.getDecimalsCount(step)));
148
+ }
149
+ /**
150
+ * Возвращает остаток от деления значения на шаг без погрешности дробной арифметики.
151
+ *
152
+ * @param value Значение.
153
+ * @param step Шаг.
154
+ */
155
+ static remainder(value, step) {
156
+ const quotient = Math.floor(ScNumberHelper.divideByStep(value, step));
157
+ return ScNumberHelper.round(value - quotient * step, Math.max(ScNumberHelper.getDecimalsCount(value), ScNumberHelper.getDecimalsCount(step)));
158
+ }
159
+ /**
160
+ * Возвращает значение, приведённое к ближайшему кратному шагу, с точностью шага.
161
+ *
162
+ * @param value Значение.
163
+ * @param step Шаг.
164
+ */
165
+ static snapToStep(value, step) {
166
+ return ScNumberHelper.multiplyByStep(Math.round(ScNumberHelper.divideByStep(value, step)), step);
167
+ }
168
+ /**
169
+ * Возвращает признак того, что значение кратно шагу с учётом погрешности дробной арифметики.
170
+ *
171
+ * @param value Значение.
172
+ * @param step Шаг.
173
+ */
174
+ static isMultipleOf(value, step) {
175
+ const quotient = value / step;
176
+ return Math.abs(quotient - Math.round(quotient)) < ScNumberHelper.epsilon;
177
+ }
178
+ /**
179
+ * Возвращает настройки вывода денежной суммы с числом знаков после запятой, равным точности валюты.
180
+ *
181
+ * @param precision Точность валюты суммы ({@link ScICurrency.precision}), по умолчанию точность рубля.
182
+ */
183
+ static getMoneyFormat(precision = ScNumberHelper.rubPrecision) {
184
+ const formatPrecision = precision ?? Number.POSITIVE_INFINITY;
185
+ let format = ScNumberHelper.moneyFormatsByPrecision.get(formatPrecision);
186
+ if (!format) {
187
+ format = { precision: formatPrecision, decimalSeparator: ',', decimalMode: 'always', rounding: 'round' };
188
+ ScNumberHelper.moneyFormatsByPrecision.set(formatPrecision, format);
189
+ }
190
+ return format;
191
+ }
192
+ /**
193
+ * Возвращает денежную сумму в виде строки с разделителями разрядов и числом знаков после запятой, равным точности валюты.
194
+ *
195
+ * @param value Денежная сумма.
196
+ * @param precision Точность валюты суммы ({@link ScICurrency.precision}), по умолчанию точность рубля.
197
+ */
198
+ static formatMoney(value, precision = ScNumberHelper.rubPrecision) {
199
+ return tuiFormatNumber(ScNumberHelper.roundMoney(value, precision), ScNumberHelper.getMoneyFormat(precision));
200
+ }
201
+ /**
202
+ * Возвращает число, в котором отрицательный ноль заменён на ноль.
203
+ *
204
+ * @param value Число.
205
+ */
206
+ static withoutNegativeZero(value) {
207
+ return value === 0 ? 0 : value;
208
+ }
209
+ }
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbnVtYmVyLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvaGVscGVycy9zYy1udW1iZXItaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBMkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDdkI7O09BRUc7YUFDb0IsaUNBQTRCLEdBQUcsQ0FBQyxDQUFDO0lBRXhEOztPQUVHO2FBQ29CLHVCQUFrQixHQUFHLENBQUMsQ0FBQztJQUU5Qzs7T0FFRzthQUNvQiw2QkFBd0IsR0FBRyxDQUFDLENBQUM7SUFFcEQ7O09BRUc7YUFDb0Isc0JBQWlCLEdBQUcsRUFBRSxDQUFDO0lBRTlDOztPQUVHO2FBQ29CLFlBQU8sR0FBRyxRQUFRLENBQUM7SUFFMUM7O09BRUc7YUFDb0IsZUFBVSxHQUFxQztRQUNsRSxTQUFTLEVBQUUsY0FBYyxDQUFDLGtCQUFrQjtRQUM1QyxnQkFBZ0IsRUFBRSxHQUFHO1FBQ3JCLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLFFBQVEsRUFBRSxPQUFPO0tBQ3BCLENBQUM7SUFFRjs7T0FFRzthQUNvQixrQkFBYSxHQUFxQztRQUNyRSxTQUFTLEVBQUUsQ0FBQztRQUNaLFFBQVEsRUFBRSxPQUFPO0tBQ3BCLENBQUM7SUFFRjs7T0FFRzthQUNvQixrQkFBYSxHQUFxQztRQUNyRSxTQUFTLEVBQUUsY0FBYyxDQUFDLDRCQUE0QjtRQUN0RCxnQkFBZ0IsRUFBRSxHQUFHO1FBQ3JCLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLFFBQVEsRUFBRSxPQUFPO0tBQ3BCLENBQUM7SUFFRjs7T0FFRzthQUNxQiw0QkFBdUIsR0FBRyxJQUFJLEdBQUcsRUFBNEMsQ0FBQztJQU90Rzs7T0FFRztJQUNJLE1BQU0sS0FBSyxZ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LENBQUM7UUFDOUQsSUFBSSxNQUFNLEdBQUcsY0FBYyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV6RSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDVixNQUFNLEdBQUcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUN6RyxjQUFjLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFhLEVBQUUsWUFBZ0MsY0FBYyxDQUFDLFlBQVk7UUFDaEcsT0FBTyxlQUFlLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUUsY0FBYyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQWE7UUFDNUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHVpUm91bmQgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IHR1aUZvcm1hdE51bWJlciwgVHVpTnVtYmVyRm9ybWF0U2V0dGluZ3MgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbi8qKlxuICog0JrQu9Cw0YHRgS3Qv9C+0LzQvtGJ0L3QuNC6INC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0LTRgNC+0LHQvdGL0LzQuCDRh9C40YHQu9Cw0LzQuC5cbiAqXG4gKiDQntC60YDRg9Cz0LvRj9C10YIg0YEg0YPRh9GR0YLQvtC8INC/0L7Qs9GA0LXRiNC90L7RgdGC0Lgg0LTRgNC+0LHQvdC+0Lkg0LDRgNC40YTQvNC10YLQuNC60LgsINGB0YfQuNGC0LDQtdGCINC60YDQsNGC0L3QvtGB0YLRjCDRiNCw0LPRgyDQuCDQt9Cw0LTQsNGR0YIg0L3QsNGB0YLRgNC+0LnQutC4INCy0YvQstC+0LTQsCDRh9C40YHQtdC7LlxuICovXG5leHBvcnQgY2xhc3MgU2NOdW1iZXJIZWxwZXIge1xuICAgIC8qKlxuICAgICAqINCd0LDQuNCx0L7Qu9GM0YjQtdC1INC60L7Qu9C40YfQtdGB0YLQstC+INC30L3QsNC60L7QsiDQv9C+0YHQu9C1INC30LDQv9GP0YLQvtC5INCyINC/0YDQvtGG0LXQvdGC0LUg0L3QsCDRjdC60YDQsNC90LUuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBwZXJjZW50RGlzcGxheUZyYWN0aW9uRGlnaXRzID0gMjtcblxuICAgIC8qKlxuICAgICAqINCd0LDQuNCx0L7Qu9GM0YjQtdC1INC60L7Qu9C40YfQtdGB0YLQstC+INC30L3QsNC60L7QsiDQv9C+0YHQu9C1INC30LDQv9GP0YLQvtC5INCyINC/0LvQvtGJ0LDQtNC4LCDQvMKyLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgYXJlYUZyYWN0aW9uRGlnaXRzID0gNDtcblxuICAgIC8qKlxuICAgICAqINCa0L7Qu9C40YfQtdGB0YLQstC+INC30L3QsNC60L7QsiDQv9C+0YHQu9C1INC30LDQv9GP0YLQvtC5INCyINCz0LXQvtCz0YDQsNGE0LjRh9C10YHQutC40YUg0LrQvtC+0YDQtNC40L3QsNGC0LDRhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGNvb3JkaW5hdGVGcmFjdGlvbkRpZ2l0cyA9IDY7XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0LvQuNGH0LXRgdGC0LLQviDQt9C90LDRh9Cw0YnQuNGFINGG0LjRhNGALCDQtNC+INC60L7RgtC+0YDQvtCz0L4g0L7QsdGA0LXQt9Cw0LXRgtGB0Y8g0L/QvtCz0YDQtdGI0L3QvtGB0YLRjCDQtNGA0L7QsdC90L7QuSDQsNGA0LjRhNC80LXRgtC40LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHNpZ25pZmljYW50RGlnaXRzID0gMTI7XG5cbiAgICAvKipcbiAgICAgKiDQlNC+0L/Rg9GB0YLQuNC80LDRjyDQv9C+0LPRgNC10YjQvdC+0YHRgtGMINGB0YDQsNCy0L3QtdC90LjRjyDQtNGA0L7QsdC90YvRhSDRh9C40YHQtdC7LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXBzaWxvbiA9IDAuMDAwMDAxO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNGB0YLRgNC+0LnQutC4INCy0YvQstC+0LTQsCDQv9C70L7RidCw0LTQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGFyZWFGb3JtYXQ6IFBhcnRpYWw8VHVpTnVtYmVyRm9ybWF0U2V0dGluZ3M+ID0ge1xuICAgICAgICBwcmVjaXNpb246IFNjTnVtYmVySGVscGVyLmFyZWFGcmFjdGlvbkRpZ2l0cyxcbiAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJywnLFxuICAgICAgICBkZWNpbWFsTW9kZTogJ25vdC16ZXJvJyxcbiAgICAgICAgcm91bmRpbmc6ICdyb3VuZCcsXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqINCd0LDRgdGC0YDQvtC50LrQuCDQstGL0LLQvtC00LAg0YbQtdC70YvRhSDRh9C40YHQtdC7LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgaW50ZWdlckZvcm1hdDogUGFydGlhbDxUdWlOdW1iZXJGb3JtYXRTZXR0aW5ncz4gPSB7XG4gICAgICAgIHByZWNpc2lvbjogMCxcbiAgICAgICAgcm91bmRpbmc6ICdyb3VuZCcsXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqINCd0LDRgdGC0YDQvtC50LrQuCDQstGL0LLQvtC00LAg0L/RgNC+0YbQtdC90YLQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcGVyY2VudEZvcm1hdDogUGFydGlhbDxUdWlOdW1iZXJGb3JtYXRTZXR0aW5ncz4gPSB7XG4gICAgICAgIHByZWNpc2lvbjogU2NOdW1iZXJIZWxwZXIucGVyY2VudERpc3BsYXlGcmFjdGlvbkRpZ2l0cyxcbiAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJywnLFxuICAgICAgICBkZWNpbWFsTW9kZTogJ25vdC16ZXJvJyxcbiAgICAgICAgcm91bmRpbmc6ICdyb3VuZCcsXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqINCd0LDRgdGC0YDQvtC50LrQuCDQstGL0LLQvtC00LAg0LTQtdC90LXQttC90YvRhSDRgdGD0LzQvCDQv9C+INGC0L7Rh9C90L7RgdGC0Lgg0LLQsNC70Y7RgtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IG1vbmV5Rm9ybWF0c0J5UHJlY2lzaW9uID0gbmV3IE1hcDxudW1iZXIsIFBhcnRpYWw8VHVpTnVtYmVyRm9ybWF0U2V0dGluZ3M+PigpO1xuXG4gICAgLyoqXG4gICAgICog0KLQvtGH0L3QvtGB0YLRjCDRgNGD0LHQu9GPINC40Lcg0YHQv9GA0LDQstC+0YfQvdC40LrQsCDQstCw0LvRjtGCLlxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIHJ1YlByZWNpc2lvblZhbHVlPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0KLQvtGH0L3QvtGB0YLRjCDRgNGD0LHQu9GPINC40Lcg0YHQv9GA0LDQstC+0YfQvdC40LrQsCDQstCw0LvRjtGCICh7QGxpbmsgU2NJQ3VycmVuY3kucHJlY2lzaW9ufSkg0LjQu9C4IHVuZGVmaW5lZCwg0LXRgdC70Lgg0YHQv9GA0LDQstC+0YfQvdC40Log0L3QtSDQt9Cw0LPRgNGD0LbQtdC9LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IHJ1YlByZWNpc2lvbigpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gU2NOdW1iZXJIZWxwZXIucnViUHJlY2lzaW9uVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrQvtC70LjRh9C10YHRgtCy0L4g0LfQvdCw0LrQvtCyINC/0L7RgdC70LUg0LfQsNC/0Y/RgtC+0Lkg0LIg0YPQutCw0LfQsNC90L3QvtC8INGH0LjRgdC70LUg0YEg0YPRh9GR0YLQvtC8INGN0LrRgdC/0L7QvdC10L3RhtC40LDQu9GM0L3QvtC5INC30LDQv9C40YHQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSDQp9C40YHQu9C+LCDQtNC70Y8g0LrQvtGC0L7RgNC+0LPQviDQvdGD0LbQvdC+INC+0L/RgNC10LTQtdC70LjRgtGMINC60L7Qu9C40YfQtdGB0YLQstC+INC30L3QsNC60L7QsiDQv9C+0YHQu9C1INC30LDQv9GP0YLQvtC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0RGVjaW1hbHNDb3VudCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpIHx8IE51bWJlci5pc0ludGVnZXIodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFttYW50aXNzYSwgZXhwb25lbnRdID0gdmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnZScpO1xuICAgICAgICBjb25zdCBtYW50aXNzYVBhcnRzID0gbWFudGlzc2Euc3BsaXQoJy4nKTtcbiAgICAgICAgY29uc3QgZGVjaW1hbHMgPSBtYW50aXNzYVBhcnRzLmxlbmd0aCA+IDEgPyBtYW50aXNzYVBhcnRzWzFdLmxlbmd0aCA6IDA7XG5cbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KGRlY2ltYWxzIC0gKE51bWJlcihleHBvbmVudCkgfHwgMCksIDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGH0LjRgdC70L4g0LHQtdC3INC/0L7Qs9GA0LXRiNC90L7RgdGC0Lgg0LTRgNC+0LHQvdC+0Lkg0LDRgNC40YTQvNC10YLQuNC60LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUg0KfQuNGB0LvQviDRgSDQstC+0LfQvNC+0LbQvdC+0Lkg0L/QvtCz0YDQtdGI0L3QvtGB0YLRjNGOLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbm9ybWFsaXplKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKHZhbHVlKSA/IE51bWJlcih2YWx1ZS50b1ByZWNpc2lvbihTY051bWJlckhlbHBlci5zaWduaWZpY2FudERpZ2l0cykpIDogdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LfQvdCw0YfQtdC90LjQtSwg0L7QutGA0YPQs9C70ZHQvdC90L7QtSDQtNC+INGD0LrQsNC30LDQvdC90L7Qs9C+INC60L7Qu9C40YfQtdGB0YLQstCwINC30L3QsNC60L7QsiDQv9C+0YHQu9C1INC30LDQv9GP0YLQvtC5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlINCe0LrRgNGD0LPQu9GP0LXQvNC+0LUg0LfQvdCw0YfQtdC90LjQtS5cbiAgICAgKiBAcGFyYW0gZnJhY3Rpb25EaWdpdHMg0JrQvtC70LjRh9C10YHRgtCy0L4g0LfQvdCw0LrQvtCyINC/0L7RgdC70LUg0LfQsNC/0Y/RgtC+0LkuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByb3VuZCh2YWx1ZTogbnVtYmVyLCBmcmFjdGlvbkRpZ2l0czogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR1aVJvdW5kKHZhbHVlLCBmcmFjdGlvbkRpZ2l0cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JfQsNC/0L7QvNC40L3QsNC10YIg0YLQvtGH0L3QvtGB0YLRjCDRgNGD0LHQu9GPINC40Lcg0YHQv9GA0LDQstC+0YfQvdC40LrQsCDQstCw0LvRjtGCLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByZWNpc2lvbiDQotC+0YfQvdC+0YHRgtGMINGA0YPQsdC70Y8gKHtAbGluayBTY0lDdXJyZW5jeS5wcmVjaXNpb259KS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHNldFJ1YlByZWNpc2lvbihwcmVjaXNpb246IG51bWJlciB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgICAgICBTY051bWJlckhlbHBlci5ydWJQcmVjaXNpb25WYWx1ZSA9IHByZWNpc2lvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQtNC10L3QtdC20L3Rg9GOINGB0YPQvNC80YMsINC+0LrRgNGD0LPQu9GR0L3QvdGD0Y4g0LTQviDRgtC+0YfQvdC+0YHRgtC4INCy0LDQu9GO0YLRiy5cbiAgICAgKlxuICAgICAqINCR0LXQtyDQuNC30LLQtdGB0YLQvdC+0Lkg0YLQvtGH0L3QvtGB0YLQuCDRg9Cx0LjRgNCw0LXRgiDRgtC+0LvRjNC60L4g0L/QvtCz0YDQtdGI0L3QvtGB0YLRjCDQtNGA0L7QsdC90L7QuSDQsNGA0LjRhNC80LXRgtC40LrQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSDQlNC10L3QtdC20L3QsNGPINGB0YPQvNC80LAuXG4gICAgICogQHBhcmFtIHByZWNpc2lvbiDQotC+0YfQvdC+0YHRgtGMINCy0LDQu9GO0YLRiyDRgdGD0LzQvNGLICh7QGxpbmsgU2NJQ3VycmVuY3kucHJlY2lzaW9ufSksINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINGC0L7Rh9C90L7RgdGC0Ywg0YDRg9Cx0LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJvdW5kTW9uZXkodmFsdWU6IG51bWJlciwgcHJlY2lzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQgPSBTY051bWJlckhlbHBlci5ydWJQcmVjaXNpb24pOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcHJlY2lzaW9uID09PSB1bmRlZmluZWQgPyBTY051bWJlckhlbHBlci5ub3JtYWxpemUodmFsdWUpIDogU2NOdW1iZXJIZWxwZXIucm91bmQodmFsdWUsIHByZWNpc2lvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LPQtdC+0LPRgNCw0YTQuNGH0LXRgdC60YPRjiDQutC+0L7RgNC00LjQvdCw0YLRgywg0L7QutGA0YPQs9C70ZHQvdC90YPRjiDQtNC+INGC0L7Rh9C90L7RgdGC0Lgg0YXRgNCw0L3QtdC90LjRjy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSDQmtC+0L7RgNC00LjQvdCw0YLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJvdW5kQ29vcmRpbmF0ZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIFNjTnVtYmVySGVscGVyLnJvdW5kKHZhbHVlLCBTY051bWJlckhlbHBlci5jb29yZGluYXRlRnJhY3Rpb25EaWdpdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0YDQvtC40LfQstC10LTQtdC90LjQtSDQt9C90LDRh9C10L3QuNGPINC90LAg0YjQsNCzLCDQvtC60YDRg9Cz0LvRkdC90L3QvtC1INC00L4g0YLQvtGH0L3QvtGB0YLQuCDQvNC90L7QttC40YLQtdC70LXQuS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSDQnNC90L7QttC40YLQtdC70YwsINC+0LHRi9GH0L3QviDQutC+0LvQuNGH0LXRgdGC0LLQvi5cbiAgICAgKiBAcGFyYW0gc3RlcCDQqNCw0LMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtdWx0aXBseUJ5U3RlcCh2YWx1ZTogbnVtYmVyLCBzdGVwOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gU2NOdW1iZXJIZWxwZXIucm91bmQodmFsdWUgKiBzdGVwLCBTY051bWJlckhlbHBlci5nZXREZWNpbWFsc0NvdW50KHN0ZXApICsgU2NOdW1iZXJIZWxwZXIuZ2V0RGVjaW1hbHNDb3VudCh2YWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGH0LDRgdGC0L3QvtC1INC+0YIg0LTQtdC70LXQvdC40Y8g0LfQvdCw0YfQtdC90LjRjyDQvdCwINGI0LDQsyDQsdC10Lcg0L/QvtCz0YDQtdGI0L3QvtGB0YLQuCDQtNGA0L7QsdC90L7QuSDQsNGA0LjRhNC80LXRgtC40LrQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSDQlNC10LvQuNC80L7QtSwg0L7QsdGL0YfQvdC+INC00LvQuNC90LAg0LjQu9C4INC60L7Qu9C40YfQtdGB0YLQstC+LlxuICAgICAqIEBwYXJhbSBzdGVwINCo0LDQsy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGRpdmlkZUJ5U3RlcCh2YWx1ZTogbnVtYmVyLCBzdGVwOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gU2NOdW1iZXJIZWxwZXIud2l0aG91dE5lZ2F0aXZlWmVybyhTY051bWJlckhlbHBlci5ub3JtYWxpemUodmFsdWUgLyBzdGVwKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHRg9C80LzRgyDQt9C90LDRh9C10L3QuNGPINC4INGI0LDQs9CwLCDQvtC60YDRg9Cz0LvRkdC90L3Rg9GOINC00L4g0YLQvtGH0L3QvtGB0YLQuCDRgdC70LDQs9Cw0LXQvNGL0YUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUg0JfQvdCw0YfQtdC90LjQtS5cbiAgICAgKiBAcGFyYW0gc3RlcCDQqNCw0LMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBhZGRTdGVwKHZhbHVlOiBudW1iZXIsIHN0ZXA6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBTY051bWJlckhlbHBlci5yb3VuZCh2YWx1ZSArIHN0ZXAsIE1hdGgubWF4KFNjTnVtYmVySGVscGVyLmdldERlY2ltYWxzQ291bnQodmFsdWUpLCBTY051bWJlckhlbHBlci5nZXREZWNpbWFsc0NvdW50KHN0ZXApKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L7RgdGC0LDRgtC+0Log0L7RgiDQtNC10LvQtdC90LjRjyDQt9C90LDRh9C10L3QuNGPINC90LAg0YjQsNCzINCx0LXQtyDQv9C+0LPRgNC10YjQvdC+0YHRgtC4INC00YDQvtCx0L3QvtC5INCw0YDQuNGE0LzQtdGC0LjQutC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlINCX0L3QsNGH0LXQvdC40LUuXG4gICAgICogQHBhcmFtIHN0ZXAg0KjQsNCzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVtYWluZGVyKHZhbHVlOiBudW1iZXIsIHN0ZXA6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHF1b3RpZW50ID0gTWF0aC5mbG9vcihTY051bWJlckhlbHBlci5kaXZpZGVCeVN0ZXAodmFsdWUsIHN0ZXApKTtcblxuICAgICAgICByZXR1cm4gU2NOdW1iZXJIZWxwZXIucm91bmQodmFsdWUgLSBxdW90aWVudCAqIHN0ZXAsIE1hdGgubWF4KFNjTnVtYmVySGVscGVyLmdldERlY2ltYWxzQ291bnQodmFsdWUpLCBTY051bWJlckhlbHBlci5nZXREZWNpbWFsc0NvdW50KHN0ZXApKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LfQvdCw0YfQtdC90LjQtSwg0L/RgNC40LLQtdC00ZHQvdC90L7QtSDQuiDQsdC70LjQttCw0LnRiNC10LzRgyDQutGA0LDRgtC90L7QvNGDINGI0LDQs9GDLCDRgSDRgtC+0YfQvdC+0YHRgtGM0Y4g0YjQsNCz0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUg0JfQvdCw0YfQtdC90LjQtS5cbiAgICAgKiBAcGFyYW0gc3RlcCDQqNCw0LMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzbmFwVG9TdGVwKHZhbHVlOiBudW1iZXIsIHN0ZXA6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBTY051bWJlckhlbHBlci5tdWx0aXBseUJ5U3RlcChNYXRoLnJvdW5kKFNjTnVtYmVySGVscGVyLmRpdmlkZUJ5U3RlcCh2YWx1ZSwgc3RlcCkpLCBzdGVwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INC30L3QsNGH0LXQvdC40LUg0LrRgNCw0YLQvdC+INGI0LDQs9GDINGBINGD0YfRkdGC0L7QvCDQv9C+0LPRgNC10YjQvdC+0YHRgtC4INC00YDQvtCx0L3QvtC5INCw0YDQuNGE0LzQtdGC0LjQutC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlINCX0L3QsNGH0LXQvdC40LUuXG4gICAgICogQHBhcmFtIHN0ZXAg0KjQsNCzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNNdWx0aXBsZU9mKHZhbHVlOiBudW1iZXIsIHN0ZXA6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBxdW90aWVudCA9IHZhbHVlIC8gc3RlcDtcblxuICAgICAgICByZXR1cm4gTWF0aC5hYnMocXVvdGllbnQgLSBNYXRoLnJvdW5kKHF1b3RpZW50KSkgPCBTY051bWJlckhlbHBlci5lcHNpbG9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC90LDRgdGC0YDQvtC50LrQuCDQstGL0LLQvtC00LAg0LTQtdC90LXQttC90L7QuSDRgdGD0LzQvNGLINGBINGH0LjRgdC70L7QvCDQt9C90LDQutC+0LIg0L/QvtGB0LvQtSDQt9Cw0L/Rj9GC0L7QuSwg0YDQsNCy0L3Ri9C8INGC0L7Rh9C90L7RgdGC0Lgg0LLQsNC70Y7RgtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByZWNpc2lvbiDQotC+0YfQvdC+0YHRgtGMINCy0LDQu9GO0YLRiyDRgdGD0LzQvNGLICh7QGxpbmsgU2NJQ3VycmVuY3kucHJlY2lzaW9ufSksINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINGC0L7Rh9C90L7RgdGC0Ywg0YDRg9Cx0LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldE1vbmV5Rm9ybWF0KHByZWNpc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkID0gU2NOdW1iZXJIZWxwZXIucnViUHJlY2lzaW9uKTogUGFydGlhbDxUdWlOdW1iZXJGb3JtYXRTZXR0aW5ncz4ge1xuICAgICAgICBjb25zdCBmb3JtYXRQcmVjaXNpb24gPSBwcmVjaXNpb24gPz8gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgICAgICBsZXQgZm9ybWF0ID0gU2NOdW1iZXJIZWxwZXIubW9uZXlGb3JtYXRzQnlQcmVjaXNpb24uZ2V0KGZvcm1hdFByZWNpc2lvbik7XG5cbiAgICAgICAgaWYgKCFmb3JtYXQpIHtcbiAgICAgICAgICAgIGZvcm1hdCA9IHsgcHJlY2lzaW9uOiBmb3JtYXRQcmVjaXNpb24sIGRlY2ltYWxTZXBhcmF0b3I6ICcsJywgZGVjaW1hbE1vZGU6ICdhbHdheXMnLCByb3VuZGluZzogJ3JvdW5kJyB9O1xuICAgICAgICAgICAgU2NOdW1iZXJIZWxwZXIubW9uZXlGb3JtYXRzQnlQcmVjaXNpb24uc2V0KGZvcm1hdFByZWNpc2lvbiwgZm9ybWF0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtYXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LTQtdC90LXQttC90YPRjiDRgdGD0LzQvNGDINCyINCy0LjQtNC1INGB0YLRgNC+0LrQuCDRgSDRgNCw0LfQtNC10LvQuNGC0LXQu9GP0LzQuCDRgNCw0LfRgNGP0LTQvtCyINC4INGH0LjRgdC70L7QvCDQt9C90LDQutC+0LIg0L/QvtGB0LvQtSDQt9Cw0L/Rj9GC0L7QuSwg0YDQsNCy0L3Ri9C8INGC0L7Rh9C90L7RgdGC0Lgg0LLQsNC70Y7RgtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlINCU0LXQvdC10LbQvdCw0Y8g0YHRg9C80LzQsC5cbiAgICAgKiBAcGFyYW0gcHJlY2lzaW9uINCi0L7Rh9C90L7RgdGC0Ywg0LLQsNC70Y7RgtGLINGB0YPQvNC80YsgKHtAbGluayBTY0lDdXJyZW5jeS5wcmVjaXNpb259KSwg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0YLQvtGH0L3QvtGB0YLRjCDRgNGD0LHQu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZm9ybWF0TW9uZXkodmFsdWU6IG51bWJlciwgcHJlY2lzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQgPSBTY051bWJlckhlbHBlci5ydWJQcmVjaXNpb24pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdHVpRm9ybWF0TnVtYmVyKFNjTnVtYmVySGVscGVyLnJvdW5kTW9uZXkodmFsdWUsIHByZWNpc2lvbiksIFNjTnVtYmVySGVscGVyLmdldE1vbmV5Rm9ybWF0KHByZWNpc2lvbikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGH0LjRgdC70L4sINCyINC60L7RgtC+0YDQvtC8INC+0YLRgNC40YbQsNGC0LXQu9GM0L3Ri9C5INC90L7Qu9GMINC30LDQvNC10L3RkdC9INC90LAg0L3QvtC70YwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUg0KfQuNGB0LvQvi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpYyB3aXRob3V0TmVnYXRpdmVaZXJvKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IDAgPyAwIDogdmFsdWU7XG4gICAgfVxufVxuIl19
@@ -1,3 +1,4 @@
1
+ import { ScNumberHelper } from '../../helpers/sc-number-helper';
1
2
  /**
2
3
  * Данные о стоимости доставки.
3
4
  */
@@ -11,9 +12,9 @@ export class ScDeliveryCost {
11
12
  constructor(deliveryCost, deliveryDate) {
12
13
  if (deliveryCost.freeShippingTerms?.minOrdersSum !== undefined && deliveryCost.freeShippingTerms.currentOrdersSum !== undefined) {
13
14
  this.freeShippingTerms = { minOrdersSum: deliveryCost.freeShippingTerms.minOrdersSum, currentOrdersSum: deliveryCost.freeShippingTerms.currentOrdersSum };
14
- this.message = `Для оформления бесплатной доставки сумма заказов на ${deliveryDate} должна быть более ${this.freeShippingTerms.minOrdersSum.toLocaleString()} руб.<br>
15
- Текущая сумма заказов составляет ${this.freeShippingTerms.currentOrdersSum.toLocaleString()} руб`;
15
+ this.message = `Для оформления бесплатной доставки сумма заказов на ${deliveryDate} должна быть более ${ScNumberHelper.formatMoney(this.freeShippingTerms.minOrdersSum)} руб.<br>
16
+ Текущая сумма заказов составляет ${ScNumberHelper.formatMoney(this.freeShippingTerms.currentOrdersSum)} руб`;
16
17
  }
17
18
  }
18
19
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZGVsaXZlcnktY29zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvb3JkZXIvY2xhc3Nlcy9zYy1kZWxpdmVyeS1jb3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUEwQnZCOzs7OztPQUtHO0lBQ0gsWUFBbUIsWUFBZ0MsRUFBRSxZQUFvQjtRQUNyRSxJQUFJLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLEtBQUssU0FBUyxJQUFJLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5SCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxSixJQUFJLENBQUMsT0FBTyxHQUFHLHVEQUF1RCxZQUFZLHNCQUFzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRTttREFDckgsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUM7UUFDMUcsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjSURlbGl2ZXJ5Q29zdERUTyB9IGZyb20gJy4uL2ludGVybmFsJztcblxuLyoqXG4gKiDQlNCw0L3QvdGL0LUg0L4g0YHRgtC+0LjQvNC+0YHRgtC4INC00L7RgdGC0LDQstC60LguXG4gKi9cbmV4cG9ydCBjbGFzcyBTY0RlbGl2ZXJ5Q29zdCB7XG4gICAgLyoqXG4gICAgICog0JTQsNC90L3Ri9C1INC+INCx0LXRgdC/0LvQsNGC0L3QvtC5INC00L7RgdGC0LDQstC60LUuXG4gICAgICovXG4gICAgcHVibGljIGZyZWVTaGlwcGluZ1Rlcm1zPzoge1xuICAgICAgICAvKipcbiAgICAgICAgICog0JzQuNC90LjQvNCw0LvRjNC90LDRjyDRgdGD0LzQvNCwINCx0LXRgdC/0LvQsNGC0L3QvtC5INC00L7RgdGC0LDQstC60LguXG4gICAgICAgICAqL1xuICAgICAgICBtaW5PcmRlcnNTdW06IG51bWJlcjtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J7QsdGJ0LDRjyDRgdGD0LzQvNCwINCy0YHQtdGFINGC0LXQutGD0YnQuNGFINC30LDQutCw0LfQvtCyINC4INC60L7RgNC30LjQvdGLLlxuICAgICAgICAgKi9cbiAgICAgICAgY3VycmVudE9yZGVyc1N1bTogbnVtYmVyO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiDQodGE0L7RgNC80LjRgNC+0LLQsNC90L3QvtC1INGB0L7QvtCx0YnQtdC90LjQtSDRgSDQtNCw0L3QvdGL0LzQuCDQviDQtNC+0YHRgtCw0LLQutC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICog0KHRhNC+0YDQvNC40YDQvtCy0LDQvdC90L7QtSDRgdC+0L7QsdGJ0LXQvdC40LUg0L7QsSDQvtGI0LjQsdC60LUuXG4gICAgICovXG4gICAgcHVibGljIGVycm9yTWVzc2FnZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NEZWxpdmVyeUNvc3R9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGRlbGl2ZXJ5Q29zdCDQlNCw0L3QvdGL0LUg0L4g0YHRgtC+0LjQvNC+0YHRgtC4INC00L7RgdGC0LDQstC60LggKERUTykuXG4gICAgICogQHBhcmFtIGRlbGl2ZXJ5RGF0ZSDQlNCw0YLQsCDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihkZWxpdmVyeUNvc3Q6IFNjSURlbGl2ZXJ5Q29zdERUTywgZGVsaXZlcnlEYXRlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGRlbGl2ZXJ5Q29zdC5mcmVlU2hpcHBpbmdUZXJtcz8ubWluT3JkZXJzU3VtICE9PSB1bmRlZmluZWQgJiYgZGVsaXZlcnlDb3N0LmZyZWVTaGlwcGluZ1Rlcm1zLmN1cnJlbnRPcmRlcnNTdW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5mcmVlU2hpcHBpbmdUZXJtcyA9IHsgbWluT3JkZXJzU3VtOiBkZWxpdmVyeUNvc3QuZnJlZVNoaXBwaW5nVGVybXMubWluT3JkZXJzU3VtLCBjdXJyZW50T3JkZXJzU3VtOiBkZWxpdmVyeUNvc3QuZnJlZVNoaXBwaW5nVGVybXMuY3VycmVudE9yZGVyc1N1bSB9O1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gYNCU0LvRjyDQvtGE0L7RgNC80LvQtdC90LjRjyDQsdC10YHQv9C70LDRgtC90L7QuSDQtNC+0YHRgtCw0LLQutC4INGB0YPQvNC80LAg0LfQsNC60LDQt9C+0LIg0L3QsCAke2RlbGl2ZXJ5RGF0ZX0g0LTQvtC70LbQvdCwINCx0YvRgtGMINCx0L7Qu9C10LUgJHt0aGlzLmZyZWVTaGlwcGluZ1Rlcm1zLm1pbk9yZGVyc1N1bS50b0xvY2FsZVN0cmluZygpfSDRgNGD0LEuPGJyPlxuICAgICAgICAgICAgICAgINCi0LXQutGD0YnQsNGPINGB0YPQvNC80LAg0LfQsNC60LDQt9C+0LIg0YHQvtGB0YLQsNCy0LvRj9C10YIgJHt0aGlzLmZyZWVTaGlwcGluZ1Rlcm1zLmN1cnJlbnRPcmRlcnNTdW0udG9Mb2NhbGVTdHJpbmcoKX0g0YDRg9CxYDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZGVsaXZlcnktY29zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvb3JkZXIvY2xhc3Nlcy9zYy1kZWxpdmVyeS1jb3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdoRTs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBMEJ2Qjs7Ozs7T0FLRztJQUNILFlBQW1CLFlBQWdDLEVBQUUsWUFBb0I7UUFDckUsSUFBSSxZQUFZLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxLQUFLLFNBQVMsSUFBSSxZQUFZLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUgsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUosSUFBSSxDQUFDLE9BQU8sR0FBRyx1REFBdUQsWUFBWSxzQkFBc0IsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDO21EQUNoSSxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDckgsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjTnVtYmVySGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVycy9zYy1udW1iZXItaGVscGVyJztcbmltcG9ydCB7IFNjSURlbGl2ZXJ5Q29zdERUTyB9IGZyb20gJy4uL2ludGVybmFsJztcblxuLyoqXG4gKiDQlNCw0L3QvdGL0LUg0L4g0YHRgtC+0LjQvNC+0YHRgtC4INC00L7RgdGC0LDQstC60LguXG4gKi9cbmV4cG9ydCBjbGFzcyBTY0RlbGl2ZXJ5Q29zdCB7XG4gICAgLyoqXG4gICAgICog0JTQsNC90L3Ri9C1INC+INCx0LXRgdC/0LvQsNGC0L3QvtC5INC00L7RgdGC0LDQstC60LUuXG4gICAgICovXG4gICAgcHVibGljIGZyZWVTaGlwcGluZ1Rlcm1zPzoge1xuICAgICAgICAvKipcbiAgICAgICAgICog0JzQuNC90LjQvNCw0LvRjNC90LDRjyDRgdGD0LzQvNCwINCx0LXRgdC/0LvQsNGC0L3QvtC5INC00L7RgdGC0LDQstC60LguXG4gICAgICAgICAqL1xuICAgICAgICBtaW5PcmRlcnNTdW06IG51bWJlcjtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J7QsdGJ0LDRjyDRgdGD0LzQvNCwINCy0YHQtdGFINGC0LXQutGD0YnQuNGFINC30LDQutCw0LfQvtCyINC4INC60L7RgNC30LjQvdGLLlxuICAgICAgICAgKi9cbiAgICAgICAgY3VycmVudE9yZGVyc1N1bTogbnVtYmVyO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiDQodGE0L7RgNC80LjRgNC+0LLQsNC90L3QvtC1INGB0L7QvtCx0YnQtdC90LjQtSDRgSDQtNCw0L3QvdGL0LzQuCDQviDQtNC+0YHRgtCw0LLQutC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICog0KHRhNC+0YDQvNC40YDQvtCy0LDQvdC90L7QtSDRgdC+0L7QsdGJ0LXQvdC40LUg0L7QsSDQvtGI0LjQsdC60LUuXG4gICAgICovXG4gICAgcHVibGljIGVycm9yTWVzc2FnZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NEZWxpdmVyeUNvc3R9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGRlbGl2ZXJ5Q29zdCDQlNCw0L3QvdGL0LUg0L4g0YHRgtC+0LjQvNC+0YHRgtC4INC00L7RgdGC0LDQstC60LggKERUTykuXG4gICAgICogQHBhcmFtIGRlbGl2ZXJ5RGF0ZSDQlNCw0YLQsCDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihkZWxpdmVyeUNvc3Q6IFNjSURlbGl2ZXJ5Q29zdERUTywgZGVsaXZlcnlEYXRlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGRlbGl2ZXJ5Q29zdC5mcmVlU2hpcHBpbmdUZXJtcz8ubWluT3JkZXJzU3VtICE9PSB1bmRlZmluZWQgJiYgZGVsaXZlcnlDb3N0LmZyZWVTaGlwcGluZ1Rlcm1zLmN1cnJlbnRPcmRlcnNTdW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5mcmVlU2hpcHBpbmdUZXJtcyA9IHsgbWluT3JkZXJzU3VtOiBkZWxpdmVyeUNvc3QuZnJlZVNoaXBwaW5nVGVybXMubWluT3JkZXJzU3VtLCBjdXJyZW50T3JkZXJzU3VtOiBkZWxpdmVyeUNvc3QuZnJlZVNoaXBwaW5nVGVybXMuY3VycmVudE9yZGVyc1N1bSB9O1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gYNCU0LvRjyDQvtGE0L7RgNC80LvQtdC90LjRjyDQsdC10YHQv9C70LDRgtC90L7QuSDQtNC+0YHRgtCw0LLQutC4INGB0YPQvNC80LAg0LfQsNC60LDQt9C+0LIg0L3QsCAke2RlbGl2ZXJ5RGF0ZX0g0LTQvtC70LbQvdCwINCx0YvRgtGMINCx0L7Qu9C10LUgJHtTY051bWJlckhlbHBlci5mb3JtYXRNb25leSh0aGlzLmZyZWVTaGlwcGluZ1Rlcm1zLm1pbk9yZGVyc1N1bSl9INGA0YPQsS48YnI+XG4gICAgICAgICAgICAgICAg0KLQtdC60YPRidCw0Y8g0YHRg9C80LzQsCDQt9Cw0LrQsNC30L7QsiDRgdC+0YHRgtCw0LLQu9GP0LXRgiAke1NjTnVtYmVySGVscGVyLmZvcm1hdE1vbmV5KHRoaXMuZnJlZVNoaXBwaW5nVGVybXMuY3VycmVudE9yZGVyc1N1bSl9INGA0YPQsWA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
+ import { ScNumberHelper } from '../../helpers/sc-number-helper';
1
2
  /**
2
3
  * Базовые данные о заказе.
3
4
  */
@@ -16,7 +17,7 @@ export class ScOrderBase {
16
17
  * @inheritDoc
17
18
  */
18
19
  getSumStr() {
19
- return this.sum && this.sum > 0 ? `${this.sum.toLocaleString()} ₽` : '-';
20
+ return this.sum && this.sum > 0 ? `${ScNumberHelper.formatMoney(this.sum)} ₽` : '-';
20
21
  }
21
22
  /**
22
23
  * @inheritDoc
@@ -25,4 +26,4 @@ export class ScOrderBase {
25
26
  return this.sum === 0 ? 'Цена требует уточнения' : '';
26
27
  }
27
28
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvb3JkZXIvY2xhc3Nlcy9zYy1vcmRlci1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFnQnBCOzs7O09BSUc7SUFDSCxZQUFtQixJQUFrQjtRQUNqQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzdFLENBQUM7SUFFRDs7T0FFRztJQUNJLGFBQWE7UUFDaEIsT0FBTyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY0lPcmRlckJhc2UgfSBmcm9tICcuLi9pbnRlcm5hbC9zYy1pLW9yZGVyLWJhc2UnO1xuXG4vKipcbiAqINCR0LDQt9C+0LLRi9C1INC00LDQvdC90YvQtSDQviDQt9Cw0LrQsNC30LUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTY09yZGVyQmFzZSBpbXBsZW1lbnRzIFNjSU9yZGVyQmFzZSB7XG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgaWQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZWRBdDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgc3VtOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjT3JkZXJCYXNlfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhINCU0LDQvdC90YvQtSDQtNC70Y8g0L/QtdGA0LLQvtC90LDRh9Cw0LvRjNC90L7QuSDQuNC90LjRhtC40LDQu9C40LfQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogU2NJT3JkZXJCYXNlKSB7XG4gICAgICAgIHRoaXMuaWQgPSBkYXRhLmlkO1xuICAgICAgICB0aGlzLmNyZWF0ZWRBdCA9IGRhdGEuY3JlYXRlZEF0O1xuICAgICAgICB0aGlzLnN1bSA9IGRhdGEuc3VtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGdldFN1bVN0cigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zdW0gJiYgdGhpcy5zdW0gPiAwID8gYCR7dGhpcy5zdW0udG9Mb2NhbGVTdHJpbmcoKX0g4oK9YCA6ICctJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRTdW1NZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1bSA9PT0gMCA/ICfQptC10L3QsCDRgtGA0LXQsdGD0LXRgiDRg9GC0L7Rh9C90LXQvdC40Y8nIDogJyc7XG4gICAgfVxufVxuIl19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvb3JkZXIvY2xhc3Nlcy9zYy1vcmRlci1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdoRTs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBZ0JwQjs7OztPQUlHO0lBQ0gsWUFBbUIsSUFBa0I7UUFDakMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUztRQUNaLE9BQU8sSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDeEYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzFELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjTnVtYmVySGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVycy9zYy1udW1iZXItaGVscGVyJztcbmltcG9ydCB7IFNjSU9yZGVyQmFzZSB9IGZyb20gJy4uL2ludGVybmFsL3NjLWktb3JkZXItYmFzZSc7XG5cbi8qKlxuICog0JHQsNC30L7QstGL0LUg0LTQsNC90L3Ri9C1INC+INC30LDQutCw0LfQtS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNjT3JkZXJCYXNlIGltcGxlbWVudHMgU2NJT3JkZXJCYXNlIHtcbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBpZDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlZEF0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBzdW06IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NPcmRlckJhc2V9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGEg0JTQsNC90L3Ri9C1INC00LvRjyDQv9C10YDQstC+0L3QsNGH0LDQu9GM0L3QvtC5INC40L3QuNGG0LjQsNC70LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhOiBTY0lPcmRlckJhc2UpIHtcbiAgICAgICAgdGhpcy5pZCA9IGRhdGEuaWQ7XG4gICAgICAgIHRoaXMuY3JlYXRlZEF0ID0gZGF0YS5jcmVhdGVkQXQ7XG4gICAgICAgIHRoaXMuc3VtID0gZGF0YS5zdW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0U3VtU3RyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1bSAmJiB0aGlzLnN1bSA+IDAgPyBgJHtTY051bWJlckhlbHBlci5mb3JtYXRNb25leSh0aGlzLnN1bSl9IOKCvWAgOiAnLSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0U3VtTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zdW0gPT09IDAgPyAn0KbQtdC90LAg0YLRgNC10LHRg9C10YIg0YPRgtC+0YfQvdC10L3QuNGPJyA6ICcnO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,3 +1,4 @@
1
+ import { ScNumberHelper } from '../../helpers/sc-number-helper';
1
2
  import { ScOrderItem } from './sc-order-item';
2
3
  /**
3
4
  * Данные о коммерческом предложении/черновике заказа.
@@ -24,7 +25,7 @@ export class ScOrderDraft {
24
25
  * @inheritDoc
25
26
  */
26
27
  getSumStr() {
27
- return this.sum > 0 ? `${this.sum.toLocaleString()} ₽` : '-';
28
+ return this.sum > 0 ? `${ScNumberHelper.formatMoney(this.sum)} ₽` : '-';
28
29
  }
29
30
  /**
30
31
  * @inheritDoc
@@ -56,4 +57,4 @@ export class ScOrderDraft {
56
57
  this.type = offer.type;
57
58
  }
58
59
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItZHJhZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL29yZGVyL2NsYXNzZXMvc2Mtb3JkZXItZHJhZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFvQ3JCOzs7O09BSUc7SUFDSCxZQUFtQixJQUFtQjtRQVZ0Qzs7V0FFRztRQUNLLG1CQUFjLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQVF0QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUztRQUNaLE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRDs7T0FFRztJQUNJLGtCQUFrQixDQUFDLFFBQWdCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxLQUFtQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNJLHdCQUF3QixDQUFDLEtBQXdCO1FBQ3BELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NPcmRlckRyYWZ0VHlwZSB9IGZyb20gJy4uL2VudW1zL3NjLW9yZGVyLWRyYWZ0LXR5cGUnO1xuaW1wb3J0IHsgU2NJT3JkZXJEcmFmdCB9IGZyb20gJy4uL2ludGVybmFsJztcbmltcG9ydCB7IFNjT3JkZXJEcmFmdFNob3J0IH0gZnJvbSAnLi9zYy1vcmRlci1kcmFmdC1zaG9ydCc7XG5pbXBvcnQgeyBTY09yZGVySXRlbSB9IGZyb20gJy4vc2Mtb3JkZXItaXRlbSc7XG5cbi8qKlxuICog0JTQsNC90L3Ri9C1INC+INC60L7QvNC80LXRgNGH0LXRgdC60L7QvCDQv9GA0LXQtNC70L7QttC10L3QuNC4L9GH0LXRgNC90L7QstC40LrQtSDQt9Cw0LrQsNC30LAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTY09yZGVyRHJhZnQgaW1wbGVtZW50cyBTY0lPcmRlckRyYWZ0IHtcbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBpZDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgbmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHR5cGU6IFNjT3JkZXJEcmFmdFR5cGU7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVkQXQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHN1bTogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvZHVjdHM6IFNjT3JkZXJJdGVtW107XG5cbiAgICAvKipcbiAgICAgKiDQlNCw0YLQsCDQv9C+0YHQu9C10LTQvdC10LPQviDQvtCx0L3QvtCy0LvQtdC90LjRjyDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBsYXN0VXBkYXRlRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjT3JkZXJEcmFmdH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0YSDQlNCw0L3QvdGL0LUg0LTQu9GPINC/0LXRgNCy0L7QvdCw0YfQsNC70YzQvdC+0Lkg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IFNjSU9yZGVyRHJhZnQpIHtcbiAgICAgICAgdGhpcy5pZCA9IGRhdGEuaWQ7XG4gICAgICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICAgICAgdGhpcy50eXBlID0gZGF0YS50eXBlO1xuICAgICAgICB0aGlzLmNyZWF0ZWRBdCA9IGRhdGEuY3JlYXRlZEF0O1xuICAgICAgICB0aGlzLnN1bSA9IGRhdGEuc3VtO1xuICAgICAgICB0aGlzLnByb2R1Y3RzID0gZGF0YS5wcm9kdWN0cy5tYXAoKGl0ZW0pID0+IG5ldyBTY09yZGVySXRlbShpdGVtKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0U3VtU3RyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1bSA+IDAgPyBgJHt0aGlzLnN1bS50b0xvY2FsZVN0cmluZygpfSDigr1gIDogJy0nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGdldFN1bU1lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VtID09PSAwID8gJ9Cm0LXQvdCwINGC0YDQtdCx0YPQtdGCINGD0YLQvtGH0L3QtdC90LjRjycgOiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBjYWNoZWREYXRhSXNBY3R1YWwobGlmZVRpbWU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXN0VXBkYXRlRGF0ZS5nZXRUaW1lKCkgPj0gRGF0ZS5ub3coKSAtIGxpZmVUaW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZURhdGEob2ZmZXI6IFNjT3JkZXJEcmFmdCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hbWUgPSBvZmZlci5uYW1lO1xuICAgICAgICB0aGlzLnR5cGUgPSBvZmZlci50eXBlO1xuICAgICAgICB0aGlzLnN1bSA9IG9mZmVyLnN1bTtcbiAgICAgICAgdGhpcy5wcm9kdWN0cyA9IG9mZmVyLnByb2R1Y3RzO1xuICAgICAgICB0aGlzLmxhc3RVcGRhdGVEYXRlID0gbmV3IERhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVEYXRhRnJvbVNob3J0T2ZmZXIob2ZmZXI6IFNjT3JkZXJEcmFmdFNob3J0KTogdm9pZCB7XG4gICAgICAgIHRoaXMubmFtZSA9IG9mZmVyLm5hbWU7XG4gICAgICAgIHRoaXMudHlwZSA9IG9mZmVyLnR5cGU7XG4gICAgfVxufVxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItZHJhZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL29yZGVyL2NsYXNzZXMvc2Mtb3JkZXItZHJhZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSWhFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBb0NyQjs7OztPQUlHO0lBQ0gsWUFBbUIsSUFBbUI7UUFWdEM7O1dBRUc7UUFDSyxtQkFBYyxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFRdEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxhQUFhO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksa0JBQWtCLENBQUMsUUFBZ0I7UUFDdEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDbEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEtBQW1CO1FBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksd0JBQXdCLENBQUMsS0FBd0I7UUFDcEQsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY051bWJlckhlbHBlciB9IGZyb20gJy4uLy4uL2hlbHBlcnMvc2MtbnVtYmVyLWhlbHBlcic7XG5pbXBvcnQgeyBTY09yZGVyRHJhZnRUeXBlIH0gZnJvbSAnLi4vZW51bXMvc2Mtb3JkZXItZHJhZnQtdHlwZSc7XG5pbXBvcnQgeyBTY0lPcmRlckRyYWZ0IH0gZnJvbSAnLi4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgU2NPcmRlckRyYWZ0U2hvcnQgfSBmcm9tICcuL3NjLW9yZGVyLWRyYWZ0LXNob3J0JztcbmltcG9ydCB7IFNjT3JkZXJJdGVtIH0gZnJvbSAnLi9zYy1vcmRlci1pdGVtJztcblxuLyoqXG4gKiDQlNCw0L3QvdGL0LUg0L4g0LrQvtC80LzQtdGA0YfQtdGB0LrQvtC8INC/0YDQtdC00LvQvtC20LXQvdC40Lgv0YfQtdGA0L3QvtCy0LjQutC1INC30LDQutCw0LfQsC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNjT3JkZXJEcmFmdCBpbXBsZW1lbnRzIFNjSU9yZGVyRHJhZnQge1xuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGlkOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBuYW1lPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgdHlwZTogU2NPcmRlckRyYWZ0VHlwZTtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZWRBdDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgc3VtOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBwcm9kdWN0czogU2NPcmRlckl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqINCU0LDRgtCwINC/0L7RgdC70LXQtNC90LXQs9C+INC+0LHQvdC+0LLQu9C10L3QuNGPINC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGxhc3RVcGRhdGVEYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NPcmRlckRyYWZ0fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhINCU0LDQvdC90YvQtSDQtNC70Y8g0L/QtdGA0LLQvtC90LDRh9Cw0LvRjNC90L7QuSDQuNC90LjRhtC40LDQu9C40LfQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogU2NJT3JkZXJEcmFmdCkge1xuICAgICAgICB0aGlzLmlkID0gZGF0YS5pZDtcbiAgICAgICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgICAgICB0aGlzLnR5cGUgPSBkYXRhLnR5cGU7XG4gICAgICAgIHRoaXMuY3JlYXRlZEF0ID0gZGF0YS5jcmVhdGVkQXQ7XG4gICAgICAgIHRoaXMuc3VtID0gZGF0YS5zdW07XG4gICAgICAgIHRoaXMucHJvZHVjdHMgPSBkYXRhLnByb2R1Y3RzLm1hcCgoaXRlbSkgPT4gbmV3IFNjT3JkZXJJdGVtKGl0ZW0pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRTdW1TdHIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VtID4gMCA/IGAke1NjTnVtYmVySGVscGVyLmZvcm1hdE1vbmV5KHRoaXMuc3VtKX0g4oK9YCA6ICctJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRTdW1NZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1bSA9PT0gMCA/ICfQptC10L3QsCDRgtGA0LXQsdGD0LXRgiDRg9GC0L7Rh9C90LXQvdC40Y8nIDogJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY2FjaGVkRGF0YUlzQWN0dWFsKGxpZmVUaW1lOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFzdFVwZGF0ZURhdGUuZ2V0VGltZSgpID49IERhdGUubm93KCkgLSBsaWZlVGltZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVEYXRhKG9mZmVyOiBTY09yZGVyRHJhZnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYW1lID0gb2ZmZXIubmFtZTtcbiAgICAgICAgdGhpcy50eXBlID0gb2ZmZXIudHlwZTtcbiAgICAgICAgdGhpcy5zdW0gPSBvZmZlci5zdW07XG4gICAgICAgIHRoaXMucHJvZHVjdHMgPSBvZmZlci5wcm9kdWN0cztcbiAgICAgICAgdGhpcy5sYXN0VXBkYXRlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlRGF0YUZyb21TaG9ydE9mZmVyKG9mZmVyOiBTY09yZGVyRHJhZnRTaG9ydCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hbWUgPSBvZmZlci5uYW1lO1xuICAgICAgICB0aGlzLnR5cGUgPSBvZmZlci50eXBlO1xuICAgIH1cbn1cbiJdfQ==
@@ -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==