com.phloxui
Version:
PhloxUI Ng2+ Framework
159 lines (158 loc) • 15.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { AbstractPipeFormatter } from './AbstractPipeFormatter';
import { Option } from '../../decorator/Option.decorator';
import { TelephoneNo } from '../../component/model/TelephoneNo';
const /** @type {?} */ NAME = 'telno';
export class TelephoneNoFormatter extends AbstractPipeFormatter {
constructor() {
super(NAME);
this.setDefaultValues();
}
/**
* @return {?}
*/
setDefaultValues() {
if (this.countryCodePunctuator === null || typeof this.countryCodePunctuator === 'undefined') {
this.countryCodePunctuator = ' ';
}
if (this.extNoPunctuator === null || typeof this.extNoPunctuator === 'undefined') {
this.extNoPunctuator = '#';
}
}
/**
* @param {?} data
* @return {?}
*/
format(data) {
if (data === null || data === undefined || !(data instanceof TelephoneNo)) {
return data;
}
let /** @type {?} */ re = null;
let /** @type {?} */ telNo = /** @type {?} */ (data);
let /** @type {?} */ cc = telNo.countryCode;
if (cc !== null && cc !== '') {
re = cc;
}
let /** @type {?} */ sn = telNo.subscriberNo;
if (sn !== null && sn !== '') {
if (re !== null && re !== '') {
if (this.getCountryCodePunctuator() !== null && this.getCountryCodePunctuator() !== undefined) {
re += this.getCountryCodePunctuator() + sn;
}
else {
re += sn;
}
}
else {
re = sn;
}
}
let /** @type {?} */ ext = telNo.extNo;
if (ext !== null && ext !== '') {
if (re === null) {
re = '';
}
if (this.getExtNoPunctuator() !== null && this.getExtNoPunctuator() !== undefined) {
re += this.getExtNoPunctuator() + ext;
}
else {
re += ext;
}
}
return re;
}
/**
* @param {?} data
* @return {?}
*/
parse(data) {
if (data === null || typeof data === 'undefined') {
return null;
}
let /** @type {?} */ telNo = new TelephoneNo();
if (this.countryCodePunctuator) {
// If country code punctuator is specified, try to extract country code from data.
if (data.indexOf(this.countryCodePunctuator) >= 0) {
telNo.countryCode = data.substring(0, data.indexOf(this.countryCodePunctuator));
data = data.substring(data.indexOf(this.countryCodePunctuator) + 1);
}
}
if (this.extNoPunctuator) {
// If ext no punctuator is specified, try to extract ext no from data.
if (data.indexOf(this.extNoPunctuator) >= 0) {
telNo.extNo = data.substring(data.indexOf(this.extNoPunctuator) + 1);
data = data.substring(0, data.indexOf(this.extNoPunctuator));
}
}
telNo.subscriberNo = data;
return telNo;
}
/**
* @param {?} args
* @return {?}
*/
parseToOptions(args) {
let /** @type {?} */ countryCodePunctuator = undefined;
let /** @type {?} */ extNoPunctuator = undefined;
if (args !== null && typeof args !== 'undefined') {
if (args.length > 0) {
countryCodePunctuator = args[0];
}
if (args.length > 1) {
extNoPunctuator = args[1];
}
}
return {
countryCodePunctuator: countryCodePunctuator,
extNoPunctuator: extNoPunctuator
};
}
/**
* @return {?}
*/
getCountryCodePunctuator() {
return this.countryCodePunctuator;
}
/**
* @param {?} countryCodePunctuator
* @return {?}
*/
setCountryCodePunctuator(countryCodePunctuator) {
this.countryCodePunctuator = countryCodePunctuator;
}
/**
* @return {?}
*/
getExtNoPunctuator() {
return this.extNoPunctuator;
}
/**
* @param {?} extNoPunctuator
* @return {?}
*/
setExtNoPunctuator(extNoPunctuator) {
this.extNoPunctuator = extNoPunctuator;
}
}
TelephoneNoFormatter.NAME = NAME;
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], TelephoneNoFormatter.prototype, "countryCodePunctuator", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], TelephoneNoFormatter.prototype, "extNoPunctuator", void 0);
function TelephoneNoFormatter_tsickle_Closure_declarations() {
/** @type {?} */
TelephoneNoFormatter.NAME;
/** @type {?} */
TelephoneNoFormatter.prototype.countryCodePunctuator;
/** @type {?} */
TelephoneNoFormatter.prototype.extNoPunctuator;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVsZXBob25lTm9Gb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9zaGFyZS9mb3JtYXR0ZXIvVGVsZXBob25lTm9Gb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFLHVCQUFNLElBQUksR0FBVyxPQUFPLENBQUM7QUFFN0IsTUFBTSwyQkFBNEIsU0FBUSxxQkFBcUI7SUFTN0Q7UUFDRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFWixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztLQUN6Qjs7OztJQUVPLGdCQUFnQjtRQUN0QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztTQUNsQztRQUNELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDO1NBQzVCOzs7Ozs7SUFHSSxNQUFNLENBQUMsSUFBUztRQUNyQixFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksWUFBWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUUsTUFBTSxDQUFDLElBQUksQ0FBQztTQUNiO1FBRUQscUJBQUks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SUFHdkIsa0JBQWtCLENBQUMsZUFBdUI7UUFDL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7Ozs0QkE3SEgsSUFBSTs7SUFFekMsTUFBTSxFQUFFOzs7O0lBRVIsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RQaXBlRm9ybWF0dGVyIH0gZnJvbSAnLi9BYnN0cmFjdFBpcGVGb3JtYXR0ZXInO1xuaW1wb3J0IHsgT3B0aW9uIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9yL09wdGlvbi5kZWNvcmF0b3InO1xuaW1wb3J0IHsgVGVsZXBob25lTm8gfSBmcm9tICcuLi8uLi9jb21wb25lbnQvbW9kZWwvVGVsZXBob25lTm8nO1xuXG5jb25zdCBOQU1FOiBzdHJpbmcgPSAndGVsbm8nO1xuXG5leHBvcnQgY2xhc3MgVGVsZXBob25lTm9Gb3JtYXR0ZXIgZXh0ZW5kcyBBYnN0cmFjdFBpcGVGb3JtYXR0ZXIge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTkFNRTogc3RyaW5nID0gTkFNRTtcblxuICBAT3B0aW9uKClcbiAgcHJpdmF0ZSBjb3VudHJ5Q29kZVB1bmN0dWF0b3I6IHN0cmluZztcbiAgQE9wdGlvbigpXG4gIHByaXZhdGUgZXh0Tm9QdW5jdHVhdG9yOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoTkFNRSk7XG5cbiAgICB0aGlzLnNldERlZmF1bHRWYWx1ZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdFZhbHVlcygpIHtcbiAgICBpZiAodGhpcy5jb3VudHJ5Q29kZVB1bmN0dWF0b3IgPT09IG51bGwgfHwgdHlwZW9mIHRoaXMuY291bnRyeUNvZGVQdW5jdHVhdG9yID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5jb3VudHJ5Q29kZVB1bmN0dWF0b3IgPSAnICc7XG4gICAgfVxuICAgIGlmICh0aGlzLmV4dE5vUHVuY3R1YXRvciA9PT0gbnVsbCB8fCB0eXBlb2YgdGhpcy5leHROb1B1bmN0dWF0b3IgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLmV4dE5vUHVuY3R1YXRvciA9ICcjJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0KGRhdGE6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdW5kZWZpbmVkIHx8ICEoZGF0YSBpbnN0YW5jZW9mIFRlbGVwaG9uZU5vKSkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgbGV0IHJlOiBzdHJpbmcgPSBudWxsO1xuICAgIGxldCB0ZWxObzogVGVsZXBob25lTm8gPSBkYXRhIGFzIFRlbGVwaG9uZU5vO1xuXG4gICAgbGV0IGNjOiBzdHJpbmcgPSB0ZWxOby5jb3VudHJ5Q29kZTtcbiAgICBpZiAoY2MgIT09IG51bGwgJiYgY2MgIT09ICcnKSB7XG4gICAgICByZSA9IGNjO1xuICAgIH1cblxuICAgIGxldCBzbjogc3RyaW5nID0gdGVsTm8uc3Vic2NyaWJlck5vO1xuICAgIGlmIChzbiAhPT0gbnVsbCAmJiBzbiAhPT0gJycpIHtcbiAgICAgIGlmIChyZSAhPT0gbnVsbCAmJiByZSAhPT0gJycpIHtcbiAgICAgICAgaWYgKHRoaXMuZ2V0Q291bnRyeUNvZGVQdW5jdHVhdG9yKCkgIT09IG51bGwgJiYgdGhpcy5nZXRDb3VudHJ5Q29kZVB1bmN0dWF0b3IoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmUgKz0gdGhpcy5nZXRDb3VudHJ5Q29kZVB1bmN0dWF0b3IoKSArIHNuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlICs9IHNuO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZSA9IHNuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBleHQ6IHN0cmluZyA9IHRlbE5vLmV4dE5vO1xuICAgIGlmIChleHQgIT09IG51bGwgJiYgZXh0ICE9PSAnJykge1xuICAgICAgaWYgKHJlID09PSBudWxsKSB7XG4gICAgICAgIHJlID0gJyc7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmdldEV4dE5vUHVuY3R1YXRvcigpICE9PSBudWxsICYmIHRoaXMuZ2V0RXh0Tm9QdW5jdHVhdG9yKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZSArPSB0aGlzLmdldEV4dE5vUHVuY3R1YXRvcigpICsgZXh0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmUgKz0gZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZTtcbiAgfVxuXG4gIHB1YmxpYyBwYXJzZShkYXRhOiBzdHJpbmcpOiBUZWxlcGhvbmVObyB7XG4gICAgaWYgKGRhdGEgPT09IG51bGwgfHwgdHlwZW9mIGRhdGEgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgdGVsTm86IFRlbGVwaG9uZU5vID0gbmV3IFRlbGVwaG9uZU5vKCk7XG5cbiAgICBpZiAodGhpcy5jb3VudHJ5Q29kZVB1bmN0dWF0b3IpIHtcbiAgICAgIC8vIElmIGNvdW50cnkgY29kZSBwdW5jdHVhdG9yIGlzIHNwZWNpZmllZCwgdHJ5IHRvIGV4dHJhY3QgY291bnRyeSBjb2RlIGZyb20gZGF0YS5cbiAgICAgIGlmIChkYXRhLmluZGV4T2YodGhpcy5jb3VudHJ5Q29kZVB1bmN0dWF0b3IpID49IDApIHtcbiAgICAgICAgdGVsTm8uY291bnRyeUNvZGUgPSBkYXRhLnN1YnN0cmluZygwLCBkYXRhLmluZGV4T2YodGhpcy5jb3VudHJ5Q29kZVB1bmN0dWF0b3IpKTtcblxuICAgICAgICBkYXRhID0gZGF0YS5zdWJzdHJpbmcoZGF0YS5pbmRleE9mKHRoaXMuY291bnRyeUNvZGVQdW5jdHVhdG9yKSArIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5leHROb1B1bmN0dWF0b3IpIHtcbiAgICAgIC8vIElmIGV4dCBubyBwdW5jdHVhdG9yIGlzIHNwZWNpZmllZCwgdHJ5IHRvIGV4dHJhY3QgZXh0IG5vIGZyb20gZGF0YS5cbiAgICAgIGlmIChkYXRhLmluZGV4T2YodGhpcy5leHROb1B1bmN0dWF0b3IpID49IDApIHtcbiAgICAgICAgdGVsTm8uZXh0Tm8gPSBkYXRhLnN1YnN0cmluZyhkYXRhLmluZGV4T2YodGhpcy5leHROb1B1bmN0dWF0b3IpICsgMSk7XG5cbiAgICAgICAgZGF0YSA9IGRhdGEuc3Vic3RyaW5nKDAsIGRhdGEuaW5kZXhPZih0aGlzLmV4dE5vUHVuY3R1YXRvcikpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRlbE5vLnN1YnNjcmliZXJObyA9IGRhdGE7XG5cbiAgICByZXR1cm4gdGVsTm87XG4gIH1cblxuICBwdWJsaWMgcGFyc2VUb09wdGlvbnMoYXJnczogYW55W10pOiBhbnkge1xuICAgIGxldCBjb3VudHJ5Q29kZVB1bmN0dWF0b3I6IHN0cmluZyA9IHVuZGVmaW5lZDtcbiAgICBsZXQgZXh0Tm9QdW5jdHVhdG9yOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAoYXJncyAhPT0gbnVsbCAmJiB0eXBlb2YgYXJncyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGlmIChhcmdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY291bnRyeUNvZGVQdW5jdHVhdG9yID0gYXJnc1swXTtcbiAgICAgIH1cbiAgICAgIGlmIChhcmdzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZXh0Tm9QdW5jdHVhdG9yID0gYXJnc1sxXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgY291bnRyeUNvZGVQdW5jdHVhdG9yOiBjb3VudHJ5Q29kZVB1bmN0dWF0b3IsXG4gICAgICBleHROb1B1bmN0dWF0b3I6IGV4dE5vUHVuY3R1YXRvclxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0Q291bnRyeUNvZGVQdW5jdHVhdG9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY291bnRyeUNvZGVQdW5jdHVhdG9yO1xuICB9XG5cbiAgcHVibGljIHNldENvdW50cnlDb2RlUHVuY3R1YXRvcihjb3VudHJ5Q29kZVB1bmN0dWF0b3I6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY291bnRyeUNvZGVQdW5jdHVhdG9yID0gY291bnRyeUNvZGVQdW5jdHVhdG9yO1xuICB9XG5cbiAgcHVibGljIGdldEV4dE5vUHVuY3R1YXRvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmV4dE5vUHVuY3R1YXRvcjtcbiAgfVxuXG4gIHB1YmxpYyBzZXRFeHROb1B1bmN0dWF0b3IoZXh0Tm9QdW5jdHVhdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmV4dE5vUHVuY3R1YXRvciA9IGV4dE5vUHVuY3R1YXRvcjtcbiAgfVxufVxuIl19