@blinkk/selective-edit
Version:
Selective structured text editor.
54 lines • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RequireRule = void 0;
const validationRules_1 = require("../validationRules");
const dataType_1 = require("../../utility/dataType");
class RequireRule extends validationRules_1.Rule {
constructor(config) {
super(config);
this.defaultMessage = 'Value is required. Cannot be empty.';
this.config = config;
}
/**
* Required rule makes the field required.
*/
get isRequired() {
return true;
}
validate(value) {
if (!value) {
return this.message;
}
// Handle required array values.
if (dataType_1.DataType.isArray(value)) {
if (value.length < 1) {
return this.message;
}
}
// Require that it be more than just whitespace.
try {
value = value.trim();
if (!value.length) {
return this.message;
}
}
catch (e) {
if (e instanceof TypeError) {
// Value type doesn't have a trim or length.
}
else {
throw e;
}
}
// Some fields a blank is not an empty value. Allow for setting
// alternative values that are also considered as being empty.
for (const alternativeEmpty of this.config.alternativeEmpties || []) {
if (value === alternativeEmpty) {
return this.message;
}
}
return null;
}
}
exports.RequireRule = RequireRule;
//# sourceMappingURL=require.js.map