UNPKG

ngx-editor-imageupload

Version:

WYSIWYG Editor for Angular Applications

55 lines 4.76 kB
/** * @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 {?} */ (control) => { /** @type {?} */ const parsedDocument = new DOMParser().parseFromString(control.value, 'text/html'); /** @type {?} */ let 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4bGVuZ3RoLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1lZGl0b3ItaW1hZ2V1cGxvYWQvIiwic291cmNlcyI6WyJhcHAvbmd4LWVkaXRvci92YWxpZGF0b3JzL21heGxlbmd0aC12YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBLHlDQUlDOzs7SUFIQyx1REFBNEI7O0lBQzVCLHVEQUE0Qjs7SUFDNUIsd0RBQTZCOzs7Ozs7O0FBRy9CLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLE9BQW9DO0lBQ3hGOzs7O0lBQU8sQ0FBQyxPQUF3QixFQUFpQyxFQUFFOztjQUMzRCxjQUFjLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUM7O1lBQzlFLFNBQVMsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFO1FBRW5ELHlCQUF5QjtRQUN6QixJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUM3QixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN6RDtRQUVELHVEQUF1RDtRQUN2RCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUM3QixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDakQ7UUFFRCx5QkFBeUI7UUFDekIsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUU7WUFDOUIsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsRUFBRTtZQUNoQyxPQUFPO2dCQUNMLFNBQVMsRUFBRTtvQkFDVCxhQUFhLEVBQUUsU0FBUztvQkFDeEIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2lCQUM3QjthQUNGLENBQUM7U0FDSDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmludGVyZmFjZSBJTWF4TGVuZ3RoVmFsaWRhdG9yT3B0aW9ucyB7XHJcbiAgZXhjbHVkZUxpbmVCcmVha3M/OiBib29sZWFuO1xyXG4gIGNvbmNhdFdoaXRlU3BhY2VzPzogYm9vbGVhbjtcclxuICBleGNsdWRlV2hpdGVTcGFjZXM/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTWF4TGVuZ3RoVmFsaWRhdG9yKG1heGxlbmd0aDogbnVtYmVyLCBvcHRpb25zPzogSU1heExlbmd0aFZhbGlkYXRvck9wdGlvbnMpIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcclxuICAgIGNvbnN0IHBhcnNlZERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhjb250cm9sLnZhbHVlLCAndGV4dC9odG1sJyk7XHJcbiAgICBsZXQgaW5uZXJUZXh0ID0gcGFyc2VkRG9jdW1lbnQuYm9keS5pbm5lclRleHQgfHwgJyc7XHJcblxyXG4gICAgLy8gcmVwbGFjZSBhbGwgbGluZWJyZWFrc1xyXG4gICAgaWYgKG9wdGlvbnMuZXhjbHVkZUxpbmVCcmVha3MpIHtcclxuICAgICAgaW5uZXJUZXh0ID0gaW5uZXJUZXh0LnJlcGxhY2UoLyhcXHJcXG5cXHR8XFxufFxcclxcdCkvZ20sICcnKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBjb25jYXQgbXVsdGlwbGUgd2hpdGVzcGFjZXMgaW50byBhIHNpbmdsZSB3aGl0ZXNwYWNlXHJcbiAgICBpZiAob3B0aW9ucy5jb25jYXRXaGl0ZVNwYWNlcykge1xyXG4gICAgICBpbm5lclRleHQgPSBpbm5lclRleHQucmVwbGFjZSgvKFxcc1xccyspL2dtLCAnICcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHJlbW92ZSBhbGwgd2hpdGVzcGFjZXNcclxuICAgIGlmIChvcHRpb25zLmV4Y2x1ZGVXaGl0ZVNwYWNlcykge1xyXG4gICAgICBpbm5lclRleHQgPSBpbm5lclRleHQucmVwbGFjZSgvKFxccykvZ20sICcnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaW5uZXJUZXh0Lmxlbmd0aCA+IG1heGxlbmd0aCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5neEVkaXRvcjoge1xyXG4gICAgICAgICAgYWxsb3dlZExlbmd0aDogbWF4bGVuZ3RoLFxyXG4gICAgICAgICAgdGV4dExlbmd0aDogaW5uZXJUZXh0Lmxlbmd0aFxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH07XHJcbn1cclxuIl19