UNPKG

stimulsoft-forms

Version:
132 lines 17.2 kB
import Color from "../../system/Color"; import { Enum } from "../../system/Enum"; import { StiHorizontalAlignment, StiThousandSeparator } from "../../system/enums"; import StiFormObject from "../base/StiFormObject"; export class StiTotalsFieldItem extends StiFormObject { setDefaultValues() { this.value = 0; } get value() { return this._value !== undefined ? this._value : this.expression; } set value(value) { this._value = value; } get decimalDigits() { return this._decimalDigits; } set decimalDigits(value) { if (value <= 0) { this._decimalDigits = 0; } else { this._decimalDigits = value; } } get eValue() { return this.header; } set eValue(value) { this.header = value; } get eFont() { return this.eParent.font; } set eFont(value) { this.eParent.font = value; } get eColor() { return this.headerColor; } set eColor(value) { this.headerColor = value; } constructor(header, expression, form) { super(); this._decimalDigits = 2; this.prefix = ""; this.suffix = ""; this.thousandSeparator = StiThousandSeparator.None; this.name = ""; this.headerAlignment = StiHorizontalAlignment.Right; this.headerColor = Color.black(); this.valueAlignment = StiHorizontalAlignment.Right; this.header = header; this.expression = expression; if (form) { this.thousandSeparator = form.settings.thousandSeparator; this.decimalDigits = form.settings.decimalDigits; } } haveBackgoundColor() { return false; } get eContentAlignment() { return this.headerAlignment; } set eContentAlignment(value) { this.headerAlignment = value; } haveContentAlignment() { return true; } haveVerticalAlignment() { return false; } htmlStyle() { return this.eParent ? `${this.eFont.htmlStyle()};color:${this.eColor.toHtmlColor()}` : ""; } saveToJsonObject(options) { let jObject = super.saveToJsonObject(options); jObject.addPropertyString("Header", this.header); jObject.addPropertyString("Name", this.name); jObject.addPropertyEnum("HeaderAlignment", StiHorizontalAlignment, this.headerAlignment); jObject.addPropertyEnum("ValueAlignment", StiHorizontalAlignment, this.valueAlignment); jObject.addPropertyColor("HeaderColor", this.headerColor); jObject.addPropertyString("Expression", this.expression); jObject.addPropertyString("Prefix", this.prefix); jObject.addPropertyString("Suffix", this.suffix); jObject.addPropertyNumber("DecimalDigits", this.decimalDigits); jObject.addPropertyEnum("ThousandSeparator", StiThousandSeparator, this.thousandSeparator); return jObject; } loadFromJsonObject(json) { super.loadFromJsonObject(json); for (let property of json.properties()) { switch (property.name) { case "Header": this.header = property.value; break; case "HeaderAlignment": this.headerAlignment = Enum.parse(StiHorizontalAlignment, property.value); break; case "ValueAlignment": this.valueAlignment = Enum.parse(StiHorizontalAlignment, property.value); break; case "HeaderColor": this.headerColor = new Color(); this.headerColor.deserializeFromString(property.value); break; case "Expression": this.expression = property.value; break; case "ThousandSeparator": this.thousandSeparator = Enum.parse(StiThousandSeparator, property.value); break; case "DecimalDigits": this.decimalDigits = property.value; break; case "Prefix": this.prefix = property.value; break; case "Suffix": this.suffix = property.value; break; case "Name": this.name = property.value; break; } } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RpVG90YWxzRmllbGRJdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RpbXVsc29mdC1mb3Jtcy9zcmMvbGliL2VsZW1lbnRzL3RhYmxlL1N0aVRvdGFsc0ZpZWxkSXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxvQkFBb0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJbEYsT0FBTyxhQUFhLE1BQU0sdUJBQXVCLENBQUM7QUFJbEQsTUFBTSxPQUFPLGtCQUNYLFNBQVEsYUFBYTtJQWlCckIsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUNELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDbkUsQ0FBQztJQUVELElBQVcsS0FBSyxDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxhQUFhLENBQUMsS0FBYTtRQUM3QixJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUks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QUFRLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3ZELE1BQU07Z0JBQ1IsS0FBSyxZQUFZO29CQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztvQkFDakMsTUFBTTtnQkFDUixLQUFLLG1CQUFtQjtvQkFDdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMxRSxNQUFNO2dCQUNSLEtBQUssZUFBZTtvQkFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO29CQUNwQyxNQUFNO2dCQUNSLEtBQUssUUFBUTtvQkFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7b0JBQzdCLE1BQU07Z0JBQ1IsS0FBSyxRQUFRO29CQUNYLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztvQkFDN0IsTUFBTTtnQkFDUixLQUFLLE1BQU07b0JBQ1QsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO29CQUMzQixNQUFNO1lBQ1YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29sb3IgZnJvbSBcIi4uLy4uL3N5c3RlbS9Db2xvclwiO1xyXG5pbXBvcnQgeyBFbnVtIH0gZnJvbSBcIi4uLy4uL3N5c3RlbS9FbnVtXCI7XHJcbmltcG9ydCB7IFN0aUhvcml6b250YWxBbGlnbm1lbnQsIFN0aVRob3VzYW5kU2VwYXJhdG9yIH0gZnJvbSBcIi4uLy4uL3N5c3RlbS9lbnVtc1wiO1xyXG5pbXBvcnQgeyBGb250IH0gZnJvbSBcIi4uLy4uL3N5c3RlbS9Gb250XCI7XHJcbmltcG9ydCB7IFN0aUVkaXRhYmxlQ29udGVudCwgU3RpRm9ybWF0dGVkRWxlbWVudCwgU3RpVmFsdWVFbGVtZW50IH0gZnJvbSBcIi4uLy4uL3N5c3RlbS9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCBTdGlKc29uIGZyb20gXCIuLi8uLi9zeXN0ZW0vU3RpSnNvblwiO1xyXG5pbXBvcnQgU3RpRm9ybU9iamVjdCBmcm9tIFwiLi4vYmFzZS9TdGlGb3JtT2JqZWN0XCI7XHJcbmltcG9ydCB7IFN0aUZvcm0gfSBmcm9tIFwiLi4vU3RpRm9ybVwiO1xyXG5pbXBvcnQgeyBTdGlUYWJsZUVsZW1lbnQgfSBmcm9tIFwiLi4vU3RpVGFibGVFbGVtZW50XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgU3RpVG90YWxzRmllbGRJdGVtXHJcbiAgZXh0ZW5kcyBTdGlGb3JtT2JqZWN0XHJcbiAgaW1wbGVtZW50cyBTdGlFZGl0YWJsZUNvbnRlbnQsIFN0aVZhbHVlRWxlbWVudCwgU3RpRm9ybWF0dGVkRWxlbWVudCB7XHJcbiAgcHJpdmF0ZSBfZGVjaW1hbERpZ2l0czogbnVtYmVyID0gMjtcclxuICBlUGFyZW50PzogU3RpVGFibGVFbGVtZW50O1xyXG4gIHB1YmxpYyBwcmVmaXg6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHN1ZmZpeDogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgdGhvdXNhbmRTZXBhcmF0b3I6IFN0aVRob3VzYW5kU2VwYXJhdG9yID0gU3RpVGhvdXNhbmRTZXBhcmF0b3IuTm9uZTtcclxuICBwdWJsaWMgX3ZhbHVlOiBhbnk7XHJcbiAgcHVibGljIG5hbWUgPSBcIlwiO1xyXG4gIHB1YmxpYyBmb3JtOiBTdGlGb3JtO1xyXG4gIHB1YmxpYyBoZWFkZXJBbGlnbm1lbnQ6IFN0aUhvcml6b250YWxBbGlnbm1lbnQgPSBTdGlIb3Jpem9udGFsQWxpZ25tZW50LlJpZ2h0O1xyXG4gIHB1YmxpYyBoZWFkZXJDb2xvcjogQ29sb3IgPSBDb2xvci5ibGFjaygpO1xyXG4gIHB1YmxpYyB2YWx1ZUFsaWdubWVudDogU3RpSG9yaXpvbnRhbEFsaWdubWVudCA9IFN0aUhvcml6b250YWxBbGlnbm1lbnQuUmlnaHQ7XHJcbiAgcHVibGljIGhlYWRlcjogc3RyaW5nO1xyXG4gIHB1YmxpYyBleHByZXNzaW9uOiBzdHJpbmc7XHJcblxyXG5cclxuICBzZXREZWZhdWx0VmFsdWVzKCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IDA7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZSAhPT0gdW5kZWZpbmVkID8gdGhpcy5fdmFsdWUgOiB0aGlzLmV4cHJlc3Npb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgZGVjaW1hbERpZ2l0cygpIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWNpbWFsRGlnaXRzO1xyXG4gIH1cclxuICBzZXQgZGVjaW1hbERpZ2l0cyh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBpZiAodmFsdWUgPD0gMCkge1xyXG4gICAgICB0aGlzLl9kZWNpbWFsRGlnaXRzID0gMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2RlY2ltYWxEaWdpdHMgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBlVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmhlYWRlcjtcclxuICB9XHJcblxyXG4gIHNldCBlVmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5oZWFkZXIgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBlRm9udCgpOiBGb250IHtcclxuICAgIHJldHVybiB0aGlzLmVQYXJlbnQuZm9udDtcclxuICB9XHJcblxyXG4gIHNldCBlRm9udCh2YWx1ZTogRm9udCkge1xyXG4gICAgdGhpcy5lUGFyZW50LmZvbnQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBlQ29sb3IoKTogQ29sb3Ige1xyXG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyQ29sb3I7XHJcbiAgfVxyXG5cclxuICBzZXQgZUNvbG9yKHZhbHVlOiBDb2xvcikge1xyXG4gICAgdGhpcy5oZWFkZXJDb2xvciA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZUJhY2tncm91bmRDb2xvcjogQ29sb3I7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGhlYWRlcjogc3RyaW5nLCBleHByZXNzaW9uOiBzdHJpbmcsIGZvcm0/OiBTdGlGb3JtKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5oZWFkZXIgPSBoZWFkZXI7XHJcbiAgICB0aGlzLmV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xyXG5cclxuICAgIGlmIChmb3JtKSB7XHJcbiAgICAgIHRoaXMudGhvdXNhbmRTZXBhcmF0b3IgPSBmb3JtLnNldHRpbmdzLnRob3VzYW5kU2VwYXJhdG9yO1xyXG4gICAgICB0aGlzLmRlY2ltYWxEaWdpdHMgPSBmb3JtLnNldHRpbmdzLmRlY2ltYWxEaWdpdHM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYXZlQmFja2dvdW5kQ29sb3IoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGdldCBlQ29udGVudEFsaWdubWVudCgpOiBTdGlIb3Jpem9udGFsQWxpZ25tZW50IHtcclxuICAgIHJldHVybiB0aGlzLmhlYWRlckFsaWdubWVudDtcclxuICB9XHJcbiAgc2V0IGVDb250ZW50QWxpZ25tZW50KHZhbHVlOiBTdGlIb3Jpem9udGFsQWxpZ25tZW50KSB7XHJcbiAgICB0aGlzLmhlYWRlckFsaWdubWVudCA9IHZhbHVlO1xyXG4gIH1cclxuICBoYXZlQ29udGVudEFsaWdubWVudCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBoYXZlVmVydGljYWxBbGlnbm1lbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGh0bWxTdHlsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZVBhcmVudCA/IGAke3RoaXMuZUZvbnQuaHRtbFN0eWxlKCl9O2NvbG9yOiR7dGhpcy5lQ29sb3IudG9IdG1sQ29sb3IoKX1gIDogXCJcIjtcclxuICB9XHJcblxyXG4gIHNhdmVUb0pzb25PYmplY3Qob3B0aW9uczogYW55KTogU3RpSnNvbiB7XHJcbiAgICBsZXQgak9iamVjdCA9IHN1cGVyLnNhdmVUb0pzb25PYmplY3Qob3B0aW9ucyk7XHJcbiAgICBqT2JqZWN0LmFkZFByb3BlcnR5U3RyaW5nKFwiSGVhZGVyXCIsIHRoaXMuaGVhZGVyKTtcclxuICAgIGpPYmplY3QuYWRkUHJvcGVydHlTdHJpbmcoXCJOYW1lXCIsIHRoaXMubmFtZSk7XHJcbiAgICBqT2JqZWN0LmFkZFByb3BlcnR5RW51bShcIkhlYWRlckFsaWdubWVudFwiLCBTdGlIb3Jpem9udGFsQWxpZ25tZW50LCB0aGlzLmhlYWRlckFsaWdubWVudCk7XHJcbiAgICBqT2JqZWN0LmFkZFByb3BlcnR5RW51bShcIlZhbHVlQWxpZ25tZW50XCIsIFN0aUhvcml6b250YWxBbGlnbm1lbnQsIHRoaXMudmFsdWVBbGlnbm1lbnQpO1xyXG4gICAgak9iamVjdC5hZGRQcm9wZXJ0eUNvbG9yKFwiSGVhZGVyQ29sb3JcIiwgdGhpcy5oZWFkZXJDb2xvcik7XHJcbiAgICBqT2JqZWN0LmFkZFByb3BlcnR5U3RyaW5nKFwiRXhwcmVzc2lvblwiLCB0aGlzLmV4cHJlc3Npb24pO1xyXG4gICAgak9iamVjdC5hZGRQcm9wZXJ0eVN0cmluZyhcIlByZWZpeFwiLCB0aGlzLnByZWZpeCk7XHJcbiAgICBqT2JqZWN0LmFkZFByb3BlcnR5U3RyaW5nKFwiU3VmZml4XCIsIHRoaXMuc3VmZml4KTtcclxuICAgIGpPYmplY3QuYWRkUHJvcGVydHlOdW1iZXIoXCJEZWNpbWFsRGlnaXRzXCIsIHRoaXMuZGVjaW1hbERpZ2l0cyk7XHJcbiAgICBqT2JqZWN0LmFkZFByb3BlcnR5RW51bShcIlRob3VzYW5kU2VwYXJhdG9yXCIsIFN0aVRob3VzYW5kU2VwYXJhdG9yLCB0aGlzLnRob3VzYW5kU2VwYXJhdG9yKTtcclxuICAgIHJldHVybiBqT2JqZWN0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvYWRGcm9tSnNvbk9iamVjdChqc29uOiBTdGlKc29uKSB7XHJcbiAgICBzdXBlci5sb2FkRnJvbUpzb25PYmplY3QoanNvbik7XHJcbiAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiBqc29uLnByb3BlcnRpZXMoKSkge1xyXG4gICAgICBzd2l0Y2ggKHByb3BlcnR5Lm5hbWUpIHtcclxuICAgICAgICBjYXNlIFwiSGVhZGVyXCI6XHJcbiAgICAgICAgICB0aGlzLmhlYWRlciA9IHByb3BlcnR5LnZhbHVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIkhlYWRlckFsaWdubWVudFwiOlxyXG4gICAgICAgICAgdGhpcy5oZWFkZXJBbGlnbm1lbnQgPSBFbnVtLnBhcnNlKFN0aUhvcml6b250YWxBbGlnbm1lbnQsIHByb3BlcnR5LnZhbHVlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJWYWx1ZUFsaWdubWVudFwiOlxyXG4gICAgICAgICAgdGhpcy52YWx1ZUFsaWdubWVudCA9IEVudW0ucGFyc2UoU3RpSG9yaXpvbnRhbEFsaWdubWVudCwgcHJvcGVydHkudmFsdWUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIkhlYWRlckNvbG9yXCI6XHJcbiAgICAgICAgICB0aGlzLmhlYWRlckNvbG9yID0gbmV3IENvbG9yKCk7XHJcbiAgICAgICAgICB0aGlzLmhlYWRlckNvbG9yLmRlc2VyaWFsaXplRnJvbVN0cmluZyhwcm9wZXJ0eS52YWx1ZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiRXhwcmVzc2lvblwiOlxyXG4gICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gcHJvcGVydHkudmFsdWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiVGhvdXNhbmRTZXBhcmF0b3JcIjpcclxuICAgICAgICAgIHRoaXMudGhvdXNhbmRTZXBhcmF0b3IgPSBFbnVtLnBhcnNlKFN0aVRob3VzYW5kU2VwYXJhdG9yLCBwcm9wZXJ0eS52YWx1ZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiRGVjaW1hbERpZ2l0c1wiOlxyXG4gICAgICAgICAgdGhpcy5kZWNpbWFsRGlnaXRzID0gcHJvcGVydHkudmFsdWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiUHJlZml4XCI6XHJcbiAgICAgICAgICB0aGlzLnByZWZpeCA9IHByb3BlcnR5LnZhbHVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIlN1ZmZpeFwiOlxyXG4gICAgICAgICAgdGhpcy5zdWZmaXggPSBwcm9wZXJ0eS52YWx1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJOYW1lXCI6XHJcbiAgICAgICAgICB0aGlzLm5hbWUgPSBwcm9wZXJ0eS52YWx1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==