input-mask-angular
Version:
Angular directive using ts-input-mask library
95 lines • 11 kB
JavaScript
import { Directive, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';
import { MaskedTextChangedListener } from 'ts-input-mask';
import { InputMaskOptions } from './input-mask-options';
import * as i0 from "@angular/core";
var InputMaskAngularDirective = /** @class */ (function () {
function InputMaskAngularDirective(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
this.maskFilled = new EventEmitter();
this.extractedValue = new EventEmitter();
this.formattedText = new EventEmitter();
this.placeholder = new EventEmitter();
this._options = new InputMaskOptions();
}
Object.defineProperty(InputMaskAngularDirective.prototype, "value", {
set: function (value) {
this._value = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(InputMaskAngularDirective.prototype, "primaryFormat", {
set: function (value) {
this._primaryFormat = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(InputMaskAngularDirective.prototype, "options", {
set: function (value) {
this._options = value;
},
enumerable: true,
configurable: true
});
InputMaskAngularDirective.prototype.ngOnInit = function () {
this.setupListener(this.elementRef.nativeElement);
};
InputMaskAngularDirective.prototype.setupListener = function (input) {
var _this = this;
if (!!this._primaryFormat) {
var emitChanges_1 = function (maskFilled, extractedValue, formattedText) {
_this.maskFilled.emit(maskFilled);
_this.extractedValue.emit(extractedValue);
_this.formattedText.emit(formattedText);
};
var listener = MaskedTextChangedListener.installOn(this._primaryFormat, input, new /** @class */ (function () {
function class_1() {
}
class_1.prototype.onTextChanged = function (maskFilled, extractedValue, formattedText) {
emitChanges_1(maskFilled, extractedValue, formattedText);
};
return class_1;
}())(), this._options.affineFormats, this._options.customNotations, this._options.affinityCalculationStrategy, this._options.autocomplete);
this.renderer.setProperty(input, 'placeholder', String(listener.placeholder()));
if (!!this._value) {
listener.setText(this._value);
}
this.placeholder.emit(String(listener.placeholder()));
}
else {
input.addEventListener('input', function () {
_this.extractedValue.emit(input.value);
});
}
};
/** @nocollapse */ InputMaskAngularDirective.ɵfac = function InputMaskAngularDirective_Factory(t) { return new (t || InputMaskAngularDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2)); };
/** @nocollapse */ InputMaskAngularDirective.ɵdir = i0.ɵɵdefineDirective({ type: InputMaskAngularDirective, selectors: [["input", "mask", ""]], inputs: { value: "value", primaryFormat: ["mask", "primaryFormat"], options: "options" }, outputs: { maskFilled: "maskFilled", extractedValue: "extractedValue", formattedText: "formattedText", placeholder: "placeholder" } });
return InputMaskAngularDirective;
}());
export { InputMaskAngularDirective };
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(InputMaskAngularDirective, [{
type: Directive,
args: [{
selector: 'input[mask]'
}]
}], function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, { maskFilled: [{
type: Output
}], extractedValue: [{
type: Output
}], formattedText: [{
type: Output
}], placeholder: [{
type: Output
}], value: [{
type: Input,
args: ['value']
}], primaryFormat: [{
type: Input,
args: ['mask']
}], options: [{
type: Input,
args: ['options']
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay1hbmd1bGFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lucHV0LW1hc2stYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9pbnB1dC1tYXNrLWFuZ3VsYXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBRXREO0lBU0UsbUNBQ1UsVUFBc0IsRUFDdEIsUUFBbUI7UUFEbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUFosZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ2hFLG1CQUFjLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbEUsa0JBQWEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNqRSxnQkFBVyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBb0J4RSxhQUFRLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztJQWQ1RCxDQUFDO0lBSUQsc0JBQW9CLDRDQUFLO2FBQXpCLFVBQTBCLEtBQWE7WUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQzs7O09BQUE7SUFJRCxzQkFBbUIsb0RBQWE7YUFBaEMsVUFBaUMsS0FBYTtZQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDOzs7T0FBQTtJQUlELHNCQUFzQiw4Q0FBTzthQUE3QixVQUE4QixLQUF1QjtZQUNuRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN4QixDQUFDOzs7T0FBQTtJQUVNLDRDQUFRLEdBQWY7UUFDRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLGlEQUFhLEdBQXJCLFVBQXNCLEtBQXVCO1FBQTdDLGlCQXNDQztRQXJDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3pCLElBQU0sYUFBVyxHQUFHLFVBQ2xCLFVBQW1CLEVBQ25CLGNBQXNCLEVBQ3RCLGFBQXFCO2dCQUVyQixLQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDakMsS0FBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ3pDLEtBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsQ0FBQztZQUNGLElBQU0sUUFBUSxHQUE4Qix5QkFBeUIsQ0FBQyxTQUFTLENBQzdFLElBQUksQ0FBQyxjQUFjLEVBQ25CLEtBQUssRUFDTDtnQkFBSTtnQkFRSixDQUFDO2dCQVBRLCtCQUFhLEdBQXBCLFVBQ0UsVUFBbUIsRUFDbkIsY0FBc0IsRUFDdEIsYUFBcUI7b0JBRXJCLGFBQVcsQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUN6RCxDQUFDO2dCQUNILGNBQUM7WUFBRCxDQUFDLEFBUkcsS0FRRCxFQUNILElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsRUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQzNCLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQy9CO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDdkQ7YUFBTTtZQUNMLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlCLEtBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztzR0F4RVUseUJBQXlCO2tFQUF6Qix5QkFBeUI7b0NBUHRDO0NBaUZDLEFBN0VELElBNkVDO1NBMUVZLHlCQUF5QjtrREFBekIseUJBQXlCO2NBSHJDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTthQUN4Qjs7a0JBRUUsTUFBTTs7a0JBQ04sTUFBTTs7a0JBQ04sTUFBTTs7a0JBQ04sTUFBTTs7a0JBVU4sS0FBSzttQkFBQyxPQUFPOztrQkFNYixLQUFLO21CQUFDLE1BQU07O2tCQU1aLEtBQUs7bUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWFza2VkVGV4dENoYW5nZWRMaXN0ZW5lcn0gZnJvbSAndHMtaW5wdXQtbWFzayc7XG5pbXBvcnQge0lucHV0TWFza09wdGlvbnN9IGZyb20gJy4vaW5wdXQtbWFzay1vcHRpb25zJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW5wdXRbbWFza10nXG59KVxuZXhwb3J0IGNsYXNzIElucHV0TWFza0FuZ3VsYXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBAT3V0cHV0KCkgcHVibGljIG1hc2tGaWxsZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBleHRyYWN0ZWRWYWx1ZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBmb3JtYXR0ZWRUZXh0OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgndmFsdWUnKSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9wcmltYXJ5Rm9ybWF0OiBzdHJpbmc7XG5cbiAgQElucHV0KCdtYXNrJykgc2V0IHByaW1hcnlGb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3ByaW1hcnlGb3JtYXQgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX29wdGlvbnM6IElucHV0TWFza09wdGlvbnMgPSBuZXcgSW5wdXRNYXNrT3B0aW9ucygpO1xuXG4gIEBJbnB1dCgnb3B0aW9ucycpIHNldCBvcHRpb25zKHZhbHVlOiBJbnB1dE1hc2tPcHRpb25zKSB7XG4gICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBMaXN0ZW5lcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwTGlzdGVuZXIoaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoISF0aGlzLl9wcmltYXJ5Rm9ybWF0KSB7XG4gICAgICBjb25zdCBlbWl0Q2hhbmdlcyA9IChcbiAgICAgICAgbWFza0ZpbGxlZDogYm9vbGVhbixcbiAgICAgICAgZXh0cmFjdGVkVmFsdWU6IHN0cmluZyxcbiAgICAgICAgZm9ybWF0dGVkVGV4dDogc3RyaW5nXG4gICAgICApOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5tYXNrRmlsbGVkLmVtaXQobWFza0ZpbGxlZCk7XG4gICAgICAgIHRoaXMuZXh0cmFjdGVkVmFsdWUuZW1pdChleHRyYWN0ZWRWYWx1ZSk7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVkVGV4dC5lbWl0KGZvcm1hdHRlZFRleHQpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGxpc3RlbmVyOiBNYXNrZWRUZXh0Q2hhbmdlZExpc3RlbmVyID0gTWFza2VkVGV4dENoYW5nZWRMaXN0ZW5lci5pbnN0YWxsT24oXG4gICAgICAgIHRoaXMuX3ByaW1hcnlGb3JtYXQsXG4gICAgICAgIGlucHV0LFxuICAgICAgICBuZXcgY2xhc3MgaW1wbGVtZW50cyBNYXNrZWRUZXh0Q2hhbmdlZExpc3RlbmVyLlZhbHVlTGlzdGVuZXIge1xuICAgICAgICAgIHB1YmxpYyBvblRleHRDaGFuZ2VkKFxuICAgICAgICAgICAgbWFza0ZpbGxlZDogYm9vbGVhbixcbiAgICAgICAgICAgIGV4dHJhY3RlZFZhbHVlOiBzdHJpbmcsXG4gICAgICAgICAgICBmb3JtYXR0ZWRUZXh0OiBzdHJpbmdcbiAgICAgICAgICApOiB2b2lkIHtcbiAgICAgICAgICAgIGVtaXRDaGFuZ2VzKG1hc2tGaWxsZWQsIGV4dHJhY3RlZFZhbHVlLCBmb3JtYXR0ZWRUZXh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0oKSxcbiAgICAgICAgdGhpcy5fb3B0aW9ucy5hZmZpbmVGb3JtYXRzLFxuICAgICAgICB0aGlzLl9vcHRpb25zLmN1c3RvbU5vdGF0aW9ucyxcbiAgICAgICAgdGhpcy5fb3B0aW9ucy5hZmZpbml0eUNhbGN1bGF0aW9uU3RyYXRlZ3ksXG4gICAgICAgIHRoaXMuX29wdGlvbnMuYXV0b2NvbXBsZXRlXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShpbnB1dCwgJ3BsYWNlaG9sZGVyJywgU3RyaW5nKGxpc3RlbmVyLnBsYWNlaG9sZGVyKCkpKTtcbiAgICAgIGlmICghIXRoaXMuX3ZhbHVlKSB7XG4gICAgICAgIGxpc3RlbmVyLnNldFRleHQodGhpcy5fdmFsdWUpO1xuICAgICAgfVxuICAgICAgdGhpcy5wbGFjZWhvbGRlci5lbWl0KFN0cmluZyhsaXN0ZW5lci5wbGFjZWhvbGRlcigpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4ge1xuICAgICAgICB0aGlzLmV4dHJhY3RlZFZhbHVlLmVtaXQoaW5wdXQudmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==