ngx-editor-imageupload
Version:
WYSIWYG Editor for Angular Applications
55 lines • 4.75 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @record
*/
function IMaxLengthValidatorOptions() { }
if (false) {
/** @type {?|undefined} */
IMaxLengthValidatorOptions.prototype.excludeLineBreaks;
/** @type {?|undefined} */
IMaxLengthValidatorOptions.prototype.concatWhiteSpaces;
/** @type {?|undefined} */
IMaxLengthValidatorOptions.prototype.excludeWhiteSpaces;
}
/**
* @param {?} maxlength
* @param {?=} options
* @return {?}
*/
export function MaxLengthValidator(maxlength, options) {
return (/**
* @param {?} control
* @return {?}
*/
function (control) {
/** @type {?} */
var parsedDocument = new DOMParser().parseFromString(control.value, 'text/html');
/** @type {?} */
var innerText = parsedDocument.body.innerText || '';
// replace all linebreaks
if (options.excludeLineBreaks) {
innerText = innerText.replace(/(\r\n\t|\n|\r\t)/gm, '');
}
// concat multiple whitespaces into a single whitespace
if (options.concatWhiteSpaces) {
innerText = innerText.replace(/(\s\s+)/gm, ' ');
}
// remove all whitespaces
if (options.excludeWhiteSpaces) {
innerText = innerText.replace(/(\s)/gm, '');
}
if (innerText.length > maxlength) {
return {
ngxEditor: {
allowedLength: maxlength,
textLength: innerText.length
}
};
}
return null;
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4bGVuZ3RoLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1lZGl0b3ItaW1hZ2V1cGxvYWQvIiwic291cmNlcyI6WyJhcHAvbmd4LWVkaXRvci92YWxpZGF0b3JzL21heGxlbmd0aC12YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBLHlDQUlDOzs7SUFIQyx1REFBNEI7O0lBQzVCLHVEQUE0Qjs7SUFDNUIsd0RBQTZCOzs7Ozs7O0FBRy9CLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLE9BQW9DO0lBQ3hGOzs7O0lBQU8sVUFBQyxPQUF3Qjs7WUFDeEIsY0FBYyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDOztZQUM5RSxTQUFTLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRTtRQUVuRCx5QkFBeUI7UUFDekIsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEVBQUU7WUFDN0IsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDekQ7UUFFRCx1REFBdUQ7UUFDdkQsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEVBQUU7WUFDN0IsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQseUJBQXlCO1FBQ3pCLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO1lBQzlCLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUM3QztRQUVELElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxTQUFTLEVBQUU7WUFDaEMsT0FBTztnQkFDTCxTQUFTLEVBQUU7b0JBQ1QsYUFBYSxFQUFFLFNBQVM7b0JBQ3hCLFVBQVUsRUFBRSxTQUFTLENBQUMsTUFBTTtpQkFDN0I7YUFDRixDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbnRlcmZhY2UgSU1heExlbmd0aFZhbGlkYXRvck9wdGlvbnMge1xyXG4gIGV4Y2x1ZGVMaW5lQnJlYWtzPzogYm9vbGVhbjtcclxuICBjb25jYXRXaGl0ZVNwYWNlcz86IGJvb2xlYW47XHJcbiAgZXhjbHVkZVdoaXRlU3BhY2VzPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIE1heExlbmd0aFZhbGlkYXRvcihtYXhsZW5ndGg6IG51bWJlciwgb3B0aW9ucz86IElNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zKSB7XHJcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICBjb25zdCBwYXJzZWREb2N1bWVudCA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoY29udHJvbC52YWx1ZSwgJ3RleHQvaHRtbCcpO1xyXG4gICAgbGV0IGlubmVyVGV4dCA9IHBhcnNlZERvY3VtZW50LmJvZHkuaW5uZXJUZXh0IHx8ICcnO1xyXG5cclxuICAgIC8vIHJlcGxhY2UgYWxsIGxpbmVicmVha3NcclxuICAgIGlmIChvcHRpb25zLmV4Y2x1ZGVMaW5lQnJlYWtzKSB7XHJcbiAgICAgIGlubmVyVGV4dCA9IGlubmVyVGV4dC5yZXBsYWNlKC8oXFxyXFxuXFx0fFxcbnxcXHJcXHQpL2dtLCAnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gY29uY2F0IG11bHRpcGxlIHdoaXRlc3BhY2VzIGludG8gYSBzaW5nbGUgd2hpdGVzcGFjZVxyXG4gICAgaWYgKG9wdGlvbnMuY29uY2F0V2hpdGVTcGFjZXMpIHtcclxuICAgICAgaW5uZXJUZXh0ID0gaW5uZXJUZXh0LnJlcGxhY2UoLyhcXHNcXHMrKS9nbSwgJyAnKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyByZW1vdmUgYWxsIHdoaXRlc3BhY2VzXHJcbiAgICBpZiAob3B0aW9ucy5leGNsdWRlV2hpdGVTcGFjZXMpIHtcclxuICAgICAgaW5uZXJUZXh0ID0gaW5uZXJUZXh0LnJlcGxhY2UoLyhcXHMpL2dtLCAnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlubmVyVGV4dC5sZW5ndGggPiBtYXhsZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuZ3hFZGl0b3I6IHtcclxuICAgICAgICAgIGFsbG93ZWRMZW5ndGg6IG1heGxlbmd0aCxcclxuICAgICAgICAgIHRleHRMZW5ndGg6IGlubmVyVGV4dC5sZW5ndGhcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9O1xyXG59XHJcbiJdfQ==