@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
JavaScript
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