UNPKG

@cause-911/devextreme

Version:

Run `npm install @cause-911/devextreme --save` to add this library to your project

221 lines 15.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'; import { DxTextAreaComponent } from 'devextreme-angular'; var CauseTextAreaLimitedComponent = /** @class */ (function () { function CauseTextAreaLimitedComponent() { this.value = ''; this.maxChar = 225; this.format = 'text'; this.valueChanged = new EventEmitter(); this.gsm7bitChars = '@£$¥èéùìòÇ\\nØø\\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\\"#¤%&\'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà'; this.gsm7bitCharsExt = '\\^{}\\\\\\[~\\]|€'; this.gsm7bitRegExp = RegExp('^[' + this.gsm7bitChars + ']*$'); this.gsm7bitExtRegExp = RegExp('^[' + this.gsm7bitChars + this.gsm7bitCharsExt + ']*$'); this.gsm7bitExtOnlyRegExp = RegExp('^[' + this.gsm7bitCharsExt + ']*$'); this.messageLength = { GSM7: 160, GSM7ext: 160, UTF16: 70 }; this.multiMessageLength = { GSM7: 153, GSM7ext: 153, UTF16: 67 }; } /** * @return {?} */ CauseTextAreaLimitedComponent.prototype.ngOnInit = /** * @return {?} */ function () { if (this.format === 'sms') { this.maxChar = 0; } }; /** * @param {?} e * @return {?} */ CauseTextAreaLimitedComponent.prototype.changed = /** * @param {?} e * @return {?} */ function (e) { this.value = e.value; this.valueChanged.emit(e); }; /** * @return {?} */ CauseTextAreaLimitedComponent.prototype.getNumberOfSms = /** * @return {?} */ function () { if (!this.value) { return 0; } /** @type {?} */ var length = this.countSmsChars(this.value); /** @type {?} */ var charset = this.getCharset(this.value); /** @type {?} */ var perMessage = (length > this.messageLength[charset] ? this.multiMessageLength[charset] : this.messageLength[charset]); return Math.ceil(length / perMessage); }; /** * @return {?} */ CauseTextAreaLimitedComponent.prototype.getNumberOfChar = /** * @return {?} */ function () { return (this.value ? this.value.length : 0) + "/" + this.maxChar; }; /** * @private * @param {?} text * @return {?} */ CauseTextAreaLimitedComponent.prototype.countSmsChars = /** * @private * @param {?} text * @return {?} */ function (text) { /** @type {?} */ var length = text.length; /** @type {?} */ var charset = this.getCharset(text); if (charset === 'GSM7ext') { length += this.countGsm7bitExt(text); } return length; }; /** * @private * @param {?} text * @return {?} */ CauseTextAreaLimitedComponent.prototype.countGsm7bitExt = /** * @private * @param {?} text * @return {?} */ function (text) { var _this = this; /** @type {?} */ var char2; /** @type {?} */ var chars = (/** * @return {?} */ function () { /** @type {?} */ var _i; /** @type {?} */ var _len; /** @type {?} */ var _results; _results = []; for (_i = 0, _len = text.length; _i < _len; _i++) { char2 = text[_i]; if (char2.match(_this.gsm7bitExtOnlyRegExp) != null) { _results.push(char2); } } return _results; }); return chars.length; }; /** * @private * @param {?} text * @return {?} */ CauseTextAreaLimitedComponent.prototype.getCharset = /** * @private * @param {?} text * @return {?} */ function (text) { switch (false) { case text.match(this.gsm7bitRegExp) == null: return 'GSM7'; case text.match(this.gsm7bitExtRegExp) == null: return 'GSM7ext'; default: return 'UTF16'; } }; CauseTextAreaLimitedComponent.decorators = [ { type: Component, args: [{ selector: 'cause-dx-text-area-limited', template: "<dx-text-area\n [(value)]=\"value\"\n [maxLength]=\"maxChar\"\n minHeight=\"50\"\n valueChangeEvent=\"keyup\"\n [autoResizeEnabled]=\"true\"\n (onValueChanged)=\"changed($event)\">\n</dx-text-area>\n<div class=\"limit\">\n <span *ngIf=\"format === 'sms'\">{{'devextreme.numberOfSms' | translate}} : {{getNumberOfSms()}}</span>\n <span *ngIf=\"format === 'text'\">{{'devextreme.numberOfChar' | translate}} : {{getNumberOfChar()}}</span>\n</div>\n", styles: [".limit{color:#999;font-size:.8em;text-align:right}"] }] } ]; /** @nocollapse */ CauseTextAreaLimitedComponent.ctorParameters = function () { return []; }; CauseTextAreaLimitedComponent.propDecorators = { textarea: [{ type: ViewChild, args: [DxTextAreaComponent, { static: false },] }], value: [{ type: Input }], maxChar: [{ type: Input }], format: [{ type: Input }], valueChanged: [{ type: Output }] }; return CauseTextAreaLimitedComponent; }()); export { CauseTextAreaLimitedComponent }; if (false) { /** @type {?} */ CauseTextAreaLimitedComponent.prototype.textarea; /** @type {?} */ CauseTextAreaLimitedComponent.prototype.value; /** @type {?} */ CauseTextAreaLimitedComponent.prototype.maxChar; /** @type {?} */ CauseTextAreaLimitedComponent.prototype.format; /** @type {?} */ CauseTextAreaLimitedComponent.prototype.valueChanged; /** * @type {?} * @private */ CauseTextAreaLimitedComponent.prototype.gsm7bitChars; /** * @type {?} * @private */ CauseTextAreaLimitedComponent.prototype.gsm7bitCharsExt; /** * @type {?} * @private */ CauseTextAreaLimitedComponent.prototype.gsm7bitRegExp; /** * @type {?} * @private */ CauseTextAreaLimitedComponent.prototype.gsm7bitExtRegExp; /** * @type {?} * @private */ CauseTextAreaLimitedComponent.prototype.gsm7bitExtOnlyRegExp; /** * @type {?} * @private */ CauseTextAreaLimitedComponent.prototype.messageLength; /** * @type {?} * @private */ CauseTextAreaLimitedComponent.prototype.multiMessageLength; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F1c2UtdGV4dC1hcmVhLWxpbWl0ZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNhdXNlLTkxMS9kZXZleHRyZW1lLyIsInNvdXJjZXMiOlsibGliL2NhdXNlLXRleHQtYXJlYS1saW1pdGVkL2NhdXNlLXRleHQtYXJlYS1saW1pdGVkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQ7SUE2Qkk7UUF0QlMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFlBQU8sR0FBRyxHQUFHLENBQUM7UUFDZCxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBRWYsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBDLGlCQUFZLEdBQUcsd0lBQXdJLENBQUM7UUFDeEosb0JBQWUsR0FBRyxvQkFBb0IsQ0FBQztRQUN2QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN6RCxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNuRix5QkFBb0IsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDbkUsa0JBQWEsR0FBRztZQUNwQixJQUFJLEVBQUUsR0FBRztZQUNULE9BQU8sRUFBRSxHQUFHO1lBQ1osS0FBSyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBQ00sdUJBQWtCLEdBQUc7WUFDekIsSUFBSSxFQUFFLEdBQUc7WUFDVCxPQUFPLEVBQUUsR0FBRztZ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QjtnQkFDSSxPQUFPLE9BQU8sQ0FBQztTQUN0QjtJQUNMLENBQUM7O2dCQWhHSixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsaWVBQXVEOztpQkFFMUQ7Ozs7OzJCQUVJLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7d0JBQzlDLEtBQUs7MEJBQ0wsS0FBSzt5QkFDTCxLQUFLOytCQUVMLE1BQU07O0lBc0ZYLG9DQUFDO0NBQUEsQUFqR0QsSUFpR0M7U0E1RlksNkJBQTZCOzs7SUFDdEMsaURBQStFOztJQUMvRSw4Q0FBb0I7O0lBQ3BCLGdEQUF1Qjs7SUFDdkIsK0NBQXlCOztJQUV6QixxREFBNEM7Ozs7O0lBRTVDLHFEQUFnSzs7Ozs7SUFDaEssd0RBQStDOzs7OztJQUMvQyxzREFBaUU7Ozs7O0lBQ2pFLHlEQUEyRjs7Ozs7SUFDM0YsNkRBQTJFOzs7OztJQUMzRSxzREFJRTs7Ozs7SUFDRiwyREFJRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RHhUZXh0QXJlYUNvbXBvbmVudH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjYXVzZS1keC10ZXh0LWFyZWEtbGltaXRlZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhdXNlLXRleHQtYXJlYS1saW1pdGVkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYXVzZS10ZXh0LWFyZWEtbGltaXRlZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhdXNlVGV4dEFyZWFMaW1pdGVkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKER4VGV4dEFyZWFDb21wb25lbnQsIHtzdGF0aWM6IGZhbHNlfSkgdGV4dGFyZWE6IER4VGV4dEFyZWFDb21wb25lbnQ7XG4gICAgQElucHV0KCkgdmFsdWUgPSAnJztcbiAgICBASW5wdXQoKSBtYXhDaGFyID0gMjI1O1xuICAgIEBJbnB1dCgpIGZvcm1hdCA9ICd0ZXh0JztcblxuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcml2YXRlIGdzbTdiaXRDaGFycyA9ICdAwqMkwqXDqMOpw7nDrMOyw4dcXFxcbsOYw7hcXFxccsOFw6XOlF/Ops6TzpvOqc6gzqjOo86Yzp7DhsOmw5/DiSAhXFxcXFwiI8KkJSZcXCcoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj/CoUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaw4TDlsORw5zCp8K/YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXrDpMO2w7HDvMOgJztcbiAgICBwcml2YXRlIGdzbTdiaXRDaGFyc0V4dCA9ICdcXFxcXnt9XFxcXFxcXFxcXFxcW35cXFxcXXzigqwnO1xuICAgIHByaXZhdGUgZ3NtN2JpdFJlZ0V4cCA9IFJlZ0V4cCgnXlsnICsgdGhpcy5nc203Yml0Q2hhcnMgKyAnXSokJyk7XG4gICAgcHJpdmF0ZSBnc203Yml0RXh0UmVnRXhwID0gUmVnRXhwKCdeWycgKyB0aGlzLmdzbTdiaXRDaGFycyArIHRoaXMuZ3NtN2JpdENoYXJzRXh0ICsgJ10qJCcpO1xuICAgIHByaXZhdGUgZ3NtN2JpdEV4dE9ubHlSZWdFeHAgPSBSZWdFeHAoJ15bJyArIHRoaXMuZ3NtN2JpdENoYXJzRXh0ICsgJ10qJCcpO1xuICAgIHByaXZhdGUgbWVzc2FnZUxlbmd0aCA9IHtcbiAgICAgICAgR1NNNzogMTYwLFxuICAgICAgICBHU003ZXh0OiAxNjAsXG4gICAgICAgIFVURjE2OiA3MFxuICAgIH07XG4gICAgcHJpdmF0ZSBtdWx0aU1lc3NhZ2VMZW5ndGggPSB7XG4gICAgICAgIEdTTTc6IDE1MyxcbiAgICAgICAgR1NNN2V4dDogMTUzLFxuICAgICAgICBVVEYxNjogNjdcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ3NtcycpIHtcbiAgICAgICAgICAgIHRoaXMubWF4Q2hhciA9IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGFuZ2VkKGUpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGUudmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQoZSk7XG4gICAgfVxuXG4gICAgZ2V0TnVtYmVyT2ZTbXMoKSB7XG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsZW5ndGggPSB0aGlzLmNvdW50U21zQ2hhcnModGhpcy52YWx1ZSk7XG4gICAgICAgIGNvbnN0IGNoYXJzZXQgPSB0aGlzLmdldENoYXJzZXQodGhpcy52YWx1ZSk7XG4gICAgICAgIGNvbnN0IHBlck1lc3NhZ2UgPSAobGVuZ3RoID4gdGhpcy5tZXNzYWdlTGVuZ3RoW2NoYXJzZXRdID8gdGhpcy5tdWx0aU1lc3NhZ2VMZW5ndGhbY2hhcnNldF0gOiB0aGlzLm1lc3NhZ2VMZW5ndGhbY2hhcnNldF0pO1xuXG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwobGVuZ3RoIC8gcGVyTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgZ2V0TnVtYmVyT2ZDaGFyKCkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy52YWx1ZSA/IHRoaXMudmFsdWUubGVuZ3RoIDogMH0vJHt0aGlzLm1heENoYXJ9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvdW50U21zQ2hhcnModGV4dDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGxlbmd0aCA9IHRleHQubGVuZ3RoO1xuICAgICAgICBjb25zdCBjaGFyc2V0ID0gdGhpcy5nZXRDaGFyc2V0KHRleHQpO1xuXG4gICAgICAgIGlmIChjaGFyc2V0ID09PSAnR1NNN2V4dCcpIHtcbiAgICAgICAgICAgIGxlbmd0aCArPSB0aGlzLmNvdW50R3NtN2JpdEV4dCh0ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb3VudEdzbTdiaXRFeHQodGV4dDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGNoYXIyO1xuICAgICAgICBjb25zdCBjaGFycyA9ICgpID0+IHtcbiAgICAgICAgICAgIGxldCBfaSwgX2xlbiwgX3Jlc3VsdHM7XG4gICAgICAgICAgICBfcmVzdWx0cyA9IFtdO1xuICAgICAgICAgICAgZm9yIChfaSA9IDAsIF9sZW4gPSB0ZXh0Lmxlbmd0aDsgX2kgPCBfbGVuOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgY2hhcjIgPSB0ZXh0W19pXTtcbiAgICAgICAgICAgICAgICBpZiAoY2hhcjIubWF0Y2godGhpcy5nc203Yml0RXh0T25seVJlZ0V4cCkgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBfcmVzdWx0cy5wdXNoKGNoYXIyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3Jlc3VsdHM7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGNoYXJzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENoYXJzZXQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoIChmYWxzZSkge1xuICAgICAgICAgICAgY2FzZSB0ZXh0Lm1hdGNoKHRoaXMuZ3NtN2JpdFJlZ0V4cCkgPT0gbnVsbDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ0dTTTcnO1xuICAgICAgICAgICAgY2FzZSB0ZXh0Lm1hdGNoKHRoaXMuZ3NtN2JpdEV4dFJlZ0V4cCkgPT0gbnVsbDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ0dTTTdleHQnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1VURjE2JztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==