UNPKG

@aurigma/design-atoms

Version:

Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.

67 lines 2.72 kB
import { NotImplementedException } from "@aurigma/design-atoms-model/Exception"; import { isEmpty } from "@aurigma/design-atoms-model"; export class Violation { isAvailableFor(item) { throw new NotImplementedException("Violation.ts: isAvailableFor is not implemented!"); } getViolationInfo(item, oldViolationInfo) { throw new NotImplementedException("Violation.ts: getViolationState is not implemented!"); } getStatePropertyName() { throw new NotImplementedException("Violation.ts: getAlias is not implemented!"); } getDataPropertyName() { throw new NotImplementedException("Violation.ts: getAlias is not implemented!"); } } Violation._computeTotalViolationState = (violationStates) => { if (isEmpty(violationStates) || violationStates.includes(ViolationState.None)) return ViolationState.None; const presentStates = violationStates.filter(s => s != null); if (presentStates.length === 0) return ViolationState.None; return Math.max(...presentStates); }; Violation.computeTotalViolationInfo = (violations, item, oldViolationInfo) => { const result = {}; let violationStates = []; let data = {}; let messages = []; violations.forEach(v => { if (v.isAvailableFor(item)) { const info = v.getViolationInfo(item, oldViolationInfo); violationStates.push(info.state); if (!isEmpty(info.message)) messages.push(info.message); if (info.data != null) { data[v.getDataPropertyName()] = info.data; } result[v.getStatePropertyName()] = info.state; } }); result.state = Violation._computeTotalViolationState(violationStates); result.data = data; result.messages = messages; return result; }; export class ViolationInfoResult { static get none() { return { state: ViolationState.None }; } static get good() { return { state: ViolationState.Good }; } } /** Results of preflight check. */ export var ViolationState; (function (ViolationState) { /** The preflight check was not performed, `0`. */ ViolationState[ViolationState["None"] = 0] = "None"; /** The preflight check is successful, `1`. */ ViolationState[ViolationState["Good"] = 1] = "Good"; /** The preflight check results in a warning, `2`. */ ViolationState[ViolationState["Warning"] = 2] = "Warning"; /** The preflight check results in an error, `3`. */ ViolationState[ViolationState["Bad"] = 3] = "Bad"; })(ViolationState || (ViolationState = {})); //# sourceMappingURL=Violation.js.map