UNPKG

@cause-911/devextreme

Version:

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

190 lines 14.3 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'; export class CauseTextAreaLimitedComponent { constructor() { 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 {?} */ ngOnInit() { if (this.format === 'sms') { this.maxChar = 0; } } /** * @param {?} e * @return {?} */ changed(e) { this.value = e.value; this.valueChanged.emit(e); } /** * @return {?} */ getNumberOfSms() { if (!this.value) { return 0; } /** @type {?} */ const length = this.countSmsChars(this.value); /** @type {?} */ const charset = this.getCharset(this.value); /** @type {?} */ const perMessage = (length > this.messageLength[charset] ? this.multiMessageLength[charset] : this.messageLength[charset]); return Math.ceil(length / perMessage); } /** * @return {?} */ getNumberOfChar() { return `${this.value ? this.value.length : 0}/${this.maxChar}`; } /** * @private * @param {?} text * @return {?} */ countSmsChars(text) { /** @type {?} */ let length = text.length; /** @type {?} */ const charset = this.getCharset(text); if (charset === 'GSM7ext') { length += this.countGsm7bitExt(text); } return length; } /** * @private * @param {?} text * @return {?} */ countGsm7bitExt(text) { /** @type {?} */ let char2; /** @type {?} */ const chars = (/** * @return {?} */ () => { /** @type {?} */ let _i; /** @type {?} */ let _len; /** @type {?} */ let _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 {?} */ getCharset(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 = () => []; CauseTextAreaLimitedComponent.propDecorators = { textarea: [{ type: ViewChild, args: [DxTextAreaComponent, { static: false },] }], value: [{ type: Input }], maxChar: [{ type: Input }], format: [{ type: Input }], valueChanged: [{ type: Output }] }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F1c2UtdGV4dC1hcmVhLWxpbWl0ZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNhdXNlLTkxMS9kZXZleHRyZW1lLyIsInNvdXJjZXMiOlsibGliL2NhdXNlLXRleHQtYXJlYS1saW1pdGVkL2NhdXNlLXRleHQtYXJlYS1saW1pdGVkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFPdkQsTUFBTSxPQUFPLDZCQUE2QjtJQXdCdEM7UUF0QlMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFlBQU8sR0FBRyxHQUFHLENBQUM7UUFDZCxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBRWYsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBDLGlCQUFZLEdBQUcsd0lBQXdJLENBQUM7UUFDeEosb0JBQWUsR0FBRyxvQkFBb0IsQ0FBQztRQUN2QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN6RCxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNuRix5QkFBb0IsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDbkUsa0JBQWEsR0FBRztZQUNwQixJQUFJLEVBQUUsR0FBRztZQUNULE9BQU8sRUFBRSxHQUFHO1lBQ1osS0FBSyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBQ00sdUJBQWtCLEdBQUc7WUFDekIsSUFBSSxFQUFFLEdBQUc7WUFD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U0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLGllQUF1RDs7YUFFMUQ7Ozs7O3VCQUVJLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7b0JBQzlDLEtBQUs7c0JBQ0wsS0FBSztxQkFDTCxLQUFLOzJCQUVMLE1BQU07Ozs7SUFMUCxpREFBK0U7O0lBQy9FLDhDQUFvQjs7SUFDcEIsZ0RBQXVCOztJQUN2QiwrQ0FBeUI7O0lBRXpCLHFEQUE0Qzs7Ozs7SUFFNUMscURBQWdLOzs7OztJQUNoSyx3REFBK0M7Ozs7O0lBQy9DLHNEQUFpRTs7Ozs7SUFDakUseURBQTJGOzs7OztJQUMzRiw2REFBMkU7Ozs7O0lBQzNFLHNEQUlFOzs7OztJQUNGLDJEQUlFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEeFRleHRBcmVhQ29tcG9uZW50fSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NhdXNlLWR4LXRleHQtYXJlYS1saW1pdGVkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2F1c2UtdGV4dC1hcmVhLWxpbWl0ZWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhdXNlLXRleHQtYXJlYS1saW1pdGVkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2F1c2VUZXh0QXJlYUxpbWl0ZWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoRHhUZXh0QXJlYUNvbXBvbmVudCwge3N0YXRpYzogZmFsc2V9KSB0ZXh0YXJlYTogRHhUZXh0QXJlYUNvbXBvbmVudDtcbiAgICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuICAgIEBJbnB1dCgpIG1heENoYXIgPSAyMjU7XG4gICAgQElucHV0KCkgZm9ybWF0ID0gJ3RleHQnO1xuXG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByaXZhdGUgZ3NtN2JpdENoYXJzID0gJ0DCoyTCpcOow6nDucOsw7LDh1xcXFxuw5jDuFxcXFxyw4XDpc6UX86mzpPOm86pzqDOqM6jzpjOnsOGw6bDn8OJICFcXFxcXCIjwqQlJlxcJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P8KhQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrDhMOWw5HDnMKnwr9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5esOkw7bDscO8w6AnO1xuICAgIHByaXZhdGUgZ3NtN2JpdENoYXJzRXh0ID0gJ1xcXFxee31cXFxcXFxcXFxcXFxbflxcXFxdfOKCrCc7XG4gICAgcHJpdmF0ZSBnc203Yml0UmVnRXhwID0gUmVnRXhwKCdeWycgKyB0aGlzLmdzbTdiaXRDaGFycyArICddKiQnKTtcbiAgICBwcml2YXRlIGdzbTdiaXRFeHRSZWdFeHAgPSBSZWdFeHAoJ15bJyArIHRoaXMuZ3NtN2JpdENoYXJzICsgdGhpcy5nc203Yml0Q2hhcnNFeHQgKyAnXSokJyk7XG4gICAgcHJpdmF0ZSBnc203Yml0RXh0T25seVJlZ0V4cCA9IFJlZ0V4cCgnXlsnICsgdGhpcy5nc203Yml0Q2hhcnNFeHQgKyAnXSokJyk7XG4gICAgcHJpdmF0ZSBtZXNzYWdlTGVuZ3RoID0ge1xuICAgICAgICBHU003OiAxNjAsXG4gICAgICAgIEdTTTdleHQ6IDE2MCxcbiAgICAgICAgVVRGMTY6IDcwXG4gICAgfTtcbiAgICBwcml2YXRlIG11bHRpTWVzc2FnZUxlbmd0aCA9IHtcbiAgICAgICAgR1NNNzogMTUzLFxuICAgICAgICBHU003ZXh0OiAxNTMsXG4gICAgICAgIFVURjE2OiA2N1xuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnc21zJykge1xuICAgICAgICAgICAgdGhpcy5tYXhDaGFyID0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZWQoZSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gZS52YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZWQuZW1pdChlKTtcbiAgICB9XG5cbiAgICBnZXROdW1iZXJPZlNtcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuY291bnRTbXNDaGFycyh0aGlzLnZhbHVlKTtcbiAgICAgICAgY29uc3QgY2hhcnNldCA9IHRoaXMuZ2V0Q2hhcnNldCh0aGlzLnZhbHVlKTtcbiAgICAgICAgY29uc3QgcGVyTWVzc2FnZSA9IChsZW5ndGggPiB0aGlzLm1lc3NhZ2VMZW5ndGhbY2hhcnNldF0gPyB0aGlzLm11bHRpTWVzc2FnZUxlbmd0aFtjaGFyc2V0XSA6IHRoaXMubWVzc2FnZUxlbmd0aFtjaGFyc2V0XSk7XG5cbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChsZW5ndGggLyBwZXJNZXNzYWdlKTtcbiAgICB9XG5cbiAgICBnZXROdW1iZXJPZkNoYXIoKSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnZhbHVlID8gdGhpcy52YWx1ZS5sZW5ndGggOiAwfS8ke3RoaXMubWF4Q2hhcn1gO1xuICAgIH1cblxuICAgIHByaXZhdGUgY291bnRTbXNDaGFycyh0ZXh0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBsZXQgbGVuZ3RoID0gdGV4dC5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGNoYXJzZXQgPSB0aGlzLmdldENoYXJzZXQodGV4dCk7XG5cbiAgICAgICAgaWYgKGNoYXJzZXQgPT09ICdHU003ZXh0Jykge1xuICAgICAgICAgICAgbGVuZ3RoICs9IHRoaXMuY291bnRHc203Yml0RXh0KHRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvdW50R3NtN2JpdEV4dCh0ZXh0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBsZXQgY2hhcjI7XG4gICAgICAgIGNvbnN0IGNoYXJzID0gKCkgPT4ge1xuICAgICAgICAgICAgbGV0IF9pLCBfbGVuLCBfcmVzdWx0cztcbiAgICAgICAgICAgIF9yZXN1bHRzID0gW107XG4gICAgICAgICAgICBmb3IgKF9pID0gMCwgX2xlbiA9IHRleHQubGVuZ3RoOyBfaSA8IF9sZW47IF9pKyspIHtcbiAgICAgICAgICAgICAgICBjaGFyMiA9IHRleHRbX2ldO1xuICAgICAgICAgICAgICAgIGlmIChjaGFyMi5tYXRjaCh0aGlzLmdzbTdiaXRFeHRPbmx5UmVnRXhwKSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIF9yZXN1bHRzLnB1c2goY2hhcjIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVzdWx0cztcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gY2hhcnMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2hhcnNldCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKGZhbHNlKSB7XG4gICAgICAgICAgICBjYXNlIHRleHQubWF0Y2godGhpcy5nc203Yml0UmVnRXhwKSA9PSBudWxsOlxuICAgICAgICAgICAgICAgIHJldHVybiAnR1NNNyc7XG4gICAgICAgICAgICBjYXNlIHRleHQubWF0Y2godGhpcy5nc203Yml0RXh0UmVnRXhwKSA9PSBudWxsOlxuICAgICAgICAgICAgICAgIHJldHVybiAnR1NNN2V4dCc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnVVRGMTYnO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19