UNPKG

ddata-ui-input

Version:

DData UI Input module, components, models & services

70 lines 11.4 kB
import { DdataCoreModule, ValidatorService } from 'ddata-core'; export class InputHelperService { constructor() { this.validatorService = DdataCoreModule.InjectorInstance.get(ValidatorService); } validateField(model, field) { // handle missing validation rule if (!model.validationRules[field]) { console.error('Missing validation rule:' + field + ' from model: ' + model.constructor.name); return false; } const isValid = this.validatorService.validate(model[field], model.validationRules[field]); // if not valid & validation error is not set if (!isValid && !model.validationErrors.includes(field)) { model.validationErrors.push(field); return false; } // it's valid & validation error set - need remove if (model.validationErrors.includes(field)) { model.validationErrors.splice(model.validationErrors.indexOf(field), 1); } return true; } getTitle(model, field) { if (!model || !model.fields[field] || !model.fields[field].title) { console.error(`The model not contains the '${field}' field's title. You need to set in your model the fields.${field}.title field.`); return ''; } return model.fields[field].title; } getLabel(model, field) { if (!model || !model.fields[field] || !model.fields[field].label) { console.error(`The model not contains the '${field}' field's label. You need to set in your model the fields.${field}.label field.`); return ''; } return model.fields[field].label; } getPlaceholder(model, field) { if (!model || !model.fields[field] || !model.fields[field].placeholder) { console.error(`The model not contains the '${field}' field's placeholder. You need to set in your model the fields.${field}.placeholder field.`); return ''; } return model.fields[field].title; } getPrepend(model, field) { if (!model || !model.fields[field] || !model.fields[field].prepend) { return ''; } return model.fields[field].prepend; } getAppend(model, field) { if (!model || !model.fields[field] || !model.fields[field].append) { return ''; } return model.fields[field].append; } isRequired(model, field) { return model.validationRules[field].includes('required'); } randChars() { let result = ''; const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; const charactersLength = characters.length; for (let i = 0; i < 50; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtaGVscGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZGF0YS11aS1pbnB1dC9zcmMvbGliL3NlcnZpY2VzL2lucHV0L2hlbHBlci9pbnB1dC1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLGVBQWUsRUFBbUIsZ0JBQWdCLEVBQTZCLE1BQU0sWUFBWSxDQUFDO0FBRy9ILE1BQU0sT0FBTyxrQkFBa0I7SUFHN0I7UUFGQSxxQkFBZ0IsR0FBOEIsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBbUIsZ0JBQWdCLENBQUMsQ0FBQztJQUV2RyxDQUFDO0lBRWpCLGFBQWEsQ0FBQyxLQUFxRCxFQUFFLEtBQWE7UUFDaEYsaUNBQWlDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxHQUFHLGVBQWUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTdGLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLE9BQU8sR0FBWSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFcEcsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFbkMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELGtEQUFrRDtRQUNsRCxJQUFJLEtBQUssQ0FBQyxnQkFB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LElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFHO1lBQzNCLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQztTQUM1RTtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VNb2RlbEludGVyZmFjZSwgRGRhdGFDb3JlTW9kdWxlLCBGaWVsZHNJbnRlcmZhY2UsIFZhbGlkYXRvclNlcnZpY2UsIFZhbGlkYXRvclNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICdkZGF0YS1jb3JlJztcbmltcG9ydCB7IElucHV0SGVscGVyU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4vaW5wdXQtaGVscGVyLXNlcnZpY2UuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIElucHV0SGVscGVyU2VydmljZSBpbXBsZW1lbnRzIElucHV0SGVscGVyU2VydmljZUludGVyZmFjZSB7XG4gIHZhbGlkYXRvclNlcnZpY2U6IFZhbGlkYXRvclNlcnZpY2VJbnRlcmZhY2UgPSBEZGF0YUNvcmVNb2R1bGUuSW5qZWN0b3JJbnN0YW5jZS5nZXQ8VmFsaWRhdG9yU2VydmljZT4oVmFsaWRhdG9yU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICB2YWxpZGF0ZUZpZWxkKG1vZGVsOiBCYXNlTW9kZWxJbnRlcmZhY2U8YW55PiAmIEZpZWxkc0ludGVyZmFjZTxhbnk+LCBmaWVsZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgLy8gaGFuZGxlIG1pc3NpbmcgdmFsaWRhdGlvbiBydWxlXG4gICAgaWYgKCFtb2RlbC52YWxpZGF0aW9uUnVsZXNbZmllbGRdKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdNaXNzaW5nIHZhbGlkYXRpb24gcnVsZTonICsgZmllbGQgKyAnIGZyb20gbW9kZWw6ICcgKyBtb2RlbC5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzVmFsaWQ6IGJvb2xlYW4gPSB0aGlzLnZhbGlkYXRvclNlcnZpY2UudmFsaWRhdGUobW9kZWxbZmllbGRdLCBtb2RlbC52YWxpZGF0aW9uUnVsZXNbZmllbGRdKTtcblxuICAgIC8vIGlmIG5vdCB2YWxpZCAmIHZhbGlkYXRpb24gZXJyb3IgaXMgbm90IHNldFxuICAgIGlmICghaXNWYWxpZCAmJiAhbW9kZWwudmFsaWRhdGlvbkVycm9ycy5pbmNsdWRlcyhmaWVsZCkpIHtcbiAgICAgIG1vZGVsLnZhbGlkYXRpb25FcnJvcnMucHVzaChmaWVsZCk7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBpdCdzIHZhbGlkICYgdmFsaWRhdGlvbiBlcnJvciBzZXQgLSBuZWVkIHJlbW92ZVxuICAgIGlmIChtb2RlbC52YWxpZGF0aW9uRXJyb3JzLmluY2x1ZGVzKGZpZWxkKSkge1xuICAgICAgbW9kZWwudmFsaWRhdGlvbkVycm9ycy5zcGxpY2UoIG1vZGVsLnZhbGlkYXRpb25FcnJvcnMuaW5kZXhPZihmaWVsZCksIDEpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0VGl0bGUobW9kZWw6IEJhc2VNb2RlbEludGVyZmFjZTxhbnk+ICYgRmllbGRzSW50ZXJmYWNlPGFueT4sIGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghbW9kZWwgfHwgIW1vZGVsLmZpZWxkc1tmaWVsZF0gfHwgIW1vZGVsLmZpZWxkc1tmaWVsZF0udGl0bGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFRoZSBtb2RlbCBub3QgY29udGFpbnMgdGhlICcke2ZpZWxkfScgZmllbGQncyB0aXRsZS4gWW91IG5lZWQgdG8gc2V0IGluIHlvdXIgbW9kZWwgdGhlIGZpZWxkcy4ke2ZpZWxkfS50aXRsZSBmaWVsZC5gKTtcblxuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBtb2RlbC5maWVsZHNbZmllbGRdLnRpdGxlO1xuICB9XG5cbiAgZ2V0TGFiZWwobW9kZWw6IEJhc2VNb2RlbEludGVyZmFjZTxhbnk+ICYgRmllbGRzSW50ZXJmYWNlPGFueT4sIGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghbW9kZWwgfHwgIW1vZGVsLmZpZWxkc1tmaWVsZF0gfHwgIW1vZGVsLmZpZWxkc1tmaWVsZF0ubGFiZWwpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFRoZSBtb2RlbCBub3QgY29udGFpbnMgdGhlICcke2ZpZWxkfScgZmllbGQncyBsYWJlbC4gWW91IG5lZWQgdG8gc2V0IGluIHlvdXIgbW9kZWwgdGhlIGZpZWxkcy4ke2ZpZWxkfS5sYWJlbCBmaWVsZC5gKTtcblxuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBtb2RlbC5maWVsZHNbZmllbGRdLmxhYmVsO1xuICB9XG5cbiAgZ2V0UGxhY2Vob2xkZXIobW9kZWw6IEJhc2VNb2RlbEludGVyZmFjZTxhbnk+ICYgRmllbGRzSW50ZXJmYWNlPGFueT4sIGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghbW9kZWwgfHwgIW1vZGVsLmZpZWxkc1tmaWVsZF0gfHwgIW1vZGVsLmZpZWxkc1tmaWVsZF0ucGxhY2Vob2xkZXIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFRoZSBtb2RlbCBub3QgY29udGFpbnMgdGhlICcke2ZpZWxkfScgZmllbGQncyBwbGFjZWhvbGRlci4gWW91IG5lZWQgdG8gc2V0IGluIHlvdXIgbW9kZWwgdGhlIGZpZWxkcy4ke2ZpZWxkfS5wbGFjZWhvbGRlciBmaWVsZC5gKTtcblxuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBtb2RlbC5maWVsZHNbZmllbGRdLnRpdGxlO1xuICB9XG5cbiAgZ2V0UHJlcGVuZChtb2RlbDogQmFzZU1vZGVsSW50ZXJmYWNlPGFueT4gJiBGaWVsZHNJbnRlcmZhY2U8YW55PiwgZmllbGQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFtb2RlbCB8fCAhbW9kZWwuZmllbGRzW2ZpZWxkXSB8fCAhbW9kZWwuZmllbGRzW2ZpZWxkXS5wcmVwZW5kKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZGVsLmZpZWxkc1tmaWVsZF0ucHJlcGVuZDtcbiAgfVxuXG4gIGdldEFwcGVuZChtb2RlbDogQmFzZU1vZGVsSW50ZXJmYWNlPGFueT4gJiBGaWVsZHNJbnRlcmZhY2U8YW55PiwgZmllbGQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFtb2RlbCB8fCAhbW9kZWwuZmllbGRzW2ZpZWxkXSB8fCAhbW9kZWwuZmllbGRzW2ZpZWxkXS5hcHBlbmQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kZWwuZmllbGRzW2ZpZWxkXS5hcHBlbmQ7XG4gIH1cblxuICBpc1JlcXVpcmVkKG1vZGVsOiBCYXNlTW9kZWxJbnRlcmZhY2U8YW55PiAmIEZpZWxkc0ludGVyZmFjZTxhbnk+LCBmaWVsZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG1vZGVsLnZhbGlkYXRpb25SdWxlc1tmaWVsZF0uaW5jbHVkZXMoJ3JlcXVpcmVkJyk7XG4gIH1cblxuICByYW5kQ2hhcnMoKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG4gICAgY29uc3QgY2hhcmFjdGVyc0xlbmd0aCA9IGNoYXJhY3RlcnMubGVuZ3RoO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDsgaSsrICkge1xuICAgICAgIHJlc3VsdCArPSBjaGFyYWN0ZXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzTGVuZ3RoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19