ion-cleave-directive
Version:
A cleaveJS package ready to use on Ionic
166 lines (157 loc) • 12.8 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('tslib'), require('@angular/core'), require('@angular/forms'), require('cleave.js')) :
typeof define === 'function' && define.amd ? define('ion-cleave-directive', ['exports', 'tslib', '@angular/core', '@angular/forms', 'cleave.js'], factory) :
(factory((global['ion-cleave-directive'] = {}),global.tslib,global.ng.core,global.ng.forms,null));
}(this, (function (exports,tslib_1,core,forms,Cleave) { 'use strict';
Cleave = Cleave && Cleave.hasOwnProperty('default') ? Cleave['default'] : Cleave;
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var IonCleaveDirective = (function () {
function IonCleaveDirective(elementRef, valueAccessors) {
this.elementRef = elementRef;
this.valueAccessors = valueAccessors;
}
Object.defineProperty(IonCleaveDirective.prototype, "cleave", {
set: /**
* @param {?} cleave
* @return {?}
*/ function (cleave) {
this._cleave = cleave;
this.setCleave();
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
IonCleaveDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
if (!this.valueAccessors) {
console.warn('Note: The cleave directive should be used with the ngModel, formControl or formControlName directives.');
return;
}
if (this.valueAccessors.length) {
this._valueAccessor = this.valueAccessors[0];
this._writeValue = this._valueAccessor.writeValue;
this._valueAccessor.writeValue = function (value) {
if (_this._writeValue) {
_this._writeValue.call(_this._valueAccessor, value);
}
_this.setCleave();
};
}
};
/**
* @return {?}
*/
IonCleaveDirective.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
if (this._valueAccessor && this._writeValue) {
this._valueAccessor.writeValue = this._writeValue;
}
if (this._cleaveInstance) {
this._cleaveInstance.destroy();
}
};
/**
* @param {?} value
* @return {?}
*/
IonCleaveDirective.prototype.onInput = /**
* @param {?} value
* @return {?}
*/
function (value) {
this._value = value;
};
/**
* @return {?}
*/
IonCleaveDirective.prototype.setCleave = /**
* @return {?}
*/
function () {
var _this = this;
if (this._cleaveInstance) {
this._cleaveInstance.destroy();
}
var /** @type {?} */ el = this.elementRef.nativeElement;
this._cleaveInstance = new Cleave(el, tslib_1.__assign({}, this._cleave, { onValueChanged: function (_a) {
var target = _a.target;
if (target.value !== _this._value) {
_this.dispatchEvent(el, 'input');
}
} }));
// hack for model -> view cleave
setTimeout(function () { return _this.dispatchEvent(el, 'input'); }, 0);
};
/**
* @param {?} el
* @param {?} eventType
* @return {?}
*/
IonCleaveDirective.prototype.dispatchEvent = /**
* @param {?} el
* @param {?} eventType
* @return {?}
*/
function (el, eventType) {
var /** @type {?} */ event = document.createEvent('Event');
event.initEvent(eventType, false, false);
el.dispatchEvent(event);
};
IonCleaveDirective.decorators = [
{ type: core.Directive, args: [{
selector: 'ion-input[cleave],textarea[cleave],input[cleave]',
},] },
];
/** @nocollapse */
IonCleaveDirective.ctorParameters = function () {
return [
{ type: core.ElementRef, },
{ type: Array, decorators: [{ type: core.Inject, args: [forms.NG_VALUE_ACCESSOR,] }, { type: core.Optional },] },
];
};
IonCleaveDirective.propDecorators = {
"cleave": [{ type: core.Input },],
"onInput": [{ type: core.HostListener, args: ['input', ['$event.target.value'],] },],
};
return IonCleaveDirective;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var IonCleaveDirectiveModule = (function () {
function IonCleaveDirectiveModule() {
}
IonCleaveDirectiveModule.decorators = [
{ type: core.NgModule, args: [{
imports: [],
declarations: [IonCleaveDirective],
exports: [IonCleaveDirective],
},] },
];
return IonCleaveDirectiveModule;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
exports.IonCleaveDirective = IonCleaveDirective;
exports.IonCleaveDirectiveModule = IonCleaveDirectiveModule;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNsZWF2ZS1kaXJlY3RpdmUudW1kLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9uZ3gtY2xlYXZlLWRpcmVjdGl2ZS9uZ3gtY2xlYXZlLmRpcmVjdGl2ZS50cyIsIm5nOi8vbmd4LWNsZWF2ZS1kaXJlY3RpdmUvbmd4LWNsZWF2ZS1kaXJlY3RpdmUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCBDbGVhdmUgZnJvbSAnY2xlYXZlLmpzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW5wdXRbY2xlYXZlXSx0ZXh0YXJlYVtjbGVhdmVdJyxcbn0pXG5leHBvcnQgY2xhc3MgTmd4Q2xlYXZlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHNldCBjbGVhdmUgKGNsZWF2ZTogYW55KSB7XG5cbiAgICB0aGlzLl9jbGVhdmUgPSBjbGVhdmU7XG5cbiAgICB0aGlzLnNldENsZWF2ZSgpO1xuXG4gIH1cblxuICBwcml2YXRlIF9jbGVhdmU6IGFueTtcbiAgcHJpdmF0ZSBfY2xlYXZlSW5zdGFuY2U6IENsZWF2ZTtcbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfdmFsdWVBY2Nlc3NvcjogQ29udHJvbFZhbHVlQWNjZXNzb3I7XG4gIHByaXZhdGUgX3dyaXRlVmFsdWU6ICh2YWx1ZSkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvciAoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoTkdfVkFMVUVfQUNDRVNTT1IpIEBPcHRpb25hbCgpIHByaXZhdGUgdmFsdWVBY2Nlc3NvcnM6IENvbnRyb2xWYWx1ZUFjY2Vzc29yW10sXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQgKCkge1xuXG4gICAgaWYgKCF0aGlzLnZhbHVlQWNjZXNzb3JzKSB7XG5cbiAgICAgIGNvbnNvbGUud2FybignTm90ZTogVGhlIGNsZWF2ZSBkaXJlY3RpdmUgc2hvdWxkIGJlIHVzZWQgd2l0aCB0aGUgbmdNb2RlbCwgZm9ybUNvbnRyb2wgb3IgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZXMuJyk7XG5cbiAgICAgIHJldHVybjtcblxuICAgIH1cblxuICAgIGlmICh0aGlzLnZhbHVlQWNjZXNzb3JzLmxlbmd0aCkge1xuXG4gICAgICB0aGlzLl92YWx1ZUFjY2Vzc29yID0gdGhpcy52YWx1ZUFjY2Vzc29yc1swXTtcblxuICAgICAgdGhpcy5fd3JpdGVWYWx1ZSA9IHRoaXMuX3ZhbHVlQWNjZXNzb3Iud3JpdGVWYWx1ZTtcbiAgICAgIHRoaXMuX3ZhbHVlQWNjZXNzb3Iud3JpdGVWYWx1ZSA9ICh2YWx1ZSkgPT4ge1xuXG4gICAgICAgIGlmICh0aGlzLl93cml0ZVZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5fd3JpdGVWYWx1ZS5jYWxsKHRoaXMuX3ZhbHVlQWNjZXNzb3IsIHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0Q2xlYXZlKCk7XG5cbiAgICAgIH07XG5cbiAgICB9XG5cbiAgfVxuXG4gIG5nT25EZXN0cm95ICgpIHtcblxuICAgIGlmICh0aGlzLl92YWx1ZUFjY2Vzc29yICYmIHRoaXMuX3dyaXRlVmFsdWUpIHtcblxuICAgICAgdGhpcy5fdmFsdWVBY2Nlc3Nvci53cml0ZVZhbHVlID0gdGhpcy5fd3JpdGVWYWx1ZTtcblxuICAgIH1cblxuICAgIGlmICh0aGlzLl9jbGVhdmVJbnN0YW5jZSkge1xuXG4gICAgICB0aGlzLl9jbGVhdmVJbnN0YW5jZS5kZXN0cm95KCk7XG5cbiAgICB9XG5cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQudGFyZ2V0LnZhbHVlJ10pXG4gIG9uSW5wdXQgKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcblxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG5cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2xlYXZlICgpIHtcblxuICAgIGlmICh0aGlzLl9jbGVhdmVJbnN0YW5jZSkge1xuXG4gICAgICB0aGlzLl9jbGVhdmVJbnN0YW5jZS5kZXN0cm95KCk7XG5cbiAgICB9XG5cbiAgICBjb25zdCBlbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuX2NsZWF2ZUluc3RhbmNlID0gbmV3IENsZWF2ZShlbCwge1xuICAgICAgLi4udGhpcy5fY2xlYXZlLFxuICAgICAgb25WYWx1ZUNoYW5nZWQ6ICh7IHRhcmdldCB9KSA9PiB7XG4gICAgICAgIGlmICh0YXJnZXQudmFsdWUgIT09IHRoaXMuX3ZhbHVlKSB7XG5cbiAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZWwsICdpbnB1dCcpO1xuXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBoYWNrIGZvciBtb2RlbCAtPiB2aWV3IGNsZWF2ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5kaXNwYXRjaEV2ZW50KGVsLCAnaW5wdXQnKSwgMCk7XG5cbiAgfVxuXG4gIHByaXZhdGUgZGlzcGF0Y2hFdmVudCAoZWwsIGV2ZW50VHlwZSkge1xuXG4gICAgY29uc3QgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKTtcbiAgICBldmVudC5pbml0RXZlbnQoZXZlbnRUeXBlLCBmYWxzZSwgZmFsc2UpO1xuICAgIGVsLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuXG4gIH1cblxufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neENsZWF2ZURpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LWNsZWF2ZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbTmd4Q2xlYXZlRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW05neENsZWF2ZURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5neENsZWF2ZURpcmVjdGl2ZU1vZHVsZSB7XG59XG4iXSwibmFtZXMiOlsiRGlyZWN0aXZlIiwiRWxlbWVudFJlZiIsIkluamVjdCIsIk5HX1ZBTFVFX0FDQ0VTU09SIiwiT3B0aW9uYWwiLCJJbnB1dCIsIkhvc3RMaXN0ZW5lciIsIk5nTW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O1FBb0NFLDRCQUNVLFlBQ3VDO1lBRHZDLGVBQVUsR0FBVixVQUFVO1lBQzZCLG1CQUFjLEdBQWQsY0FBYztTQUU5RDs4QkFsQlksc0NBQU07Ozs7MEJBQUUsTUFBVztnQkFFOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBRXRCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzs7Ozs7Ozs7UUFnQm5CLHFDQUFROzs7WUFBUjtnQkFBQSxpQkEyQkM7Z0JBekJDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO29CQUV4QixPQUFPLENBQUMsSUFBSSxDQUFDLHdHQUF3RyxDQUFDLENBQUM7b0JBRXZILE9BQU87aUJBRVI7Z0JBRUQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRTtvQkFFOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUU3QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUNsRCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsR0FBRyxVQUFDLEtBQUs7d0JBRXJDLElBQUksS0FBSSxDQUFDLFdBQVcsRUFBRTs0QkFDcEIsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQzt5QkFDbkQ7d0JBRUQsS0FBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO3FCQUVsQixDQUFDO2lCQUVIO2FBRUY7Ozs7UUFFRCx3Q0FBVzs7O1lBQVg7Z0JBRUUsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7b0JBRTNDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7aUJBRW5EO2dCQUVELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtvQkFFeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFFaEM7YUFFRjs7Ozs7UUFHRCxvQ0FBTzs7OztzQkFBRSxLQUFhO2dCQUVwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQzs7Ozs7UUFJZCxzQ0FBUzs7Ozs7Z0JBRWYsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO29CQUV4QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUVoQztnQkFFRCxxQkFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBRSx1QkFDL0IsSUFBSSxDQUFDLE9BQU8sSUFDZixjQUFjLEVBQUUsVUFBQyxFQUFVOzRCQUFSLGtCQUFNO3dCQUN2QixJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssS0FBSSxDQUFDLE1BQU0sRUFBRTs0QkFFaEMsS0FBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7eUJBRWpDO3FCQUNGLElBQ0QsQ0FBQzs7Z0JBR0gsVUFBVSxDQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBQSxFQUFFLENBQUMsQ0FBQyxDQUFDOzs7Ozs7O1FBSS9DLDBDQUFhOzs7OztzQkFBRSxFQUFFLEVBQUUsU0FBUztnQkFFbEMscUJBQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzVDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDekMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQzs7O29CQTFHM0JBLGNBQVMsU0FBQzt3QkFDVCxRQUFRLEVBQUUsZ0NBQWdDO3FCQUMzQzs7Ozs7d0JBakJDQyxlQUFVO29EQW9DUEMsV0FBTSxTQUFDQyx1QkFBaUIsY0FBR0MsYUFBUTs7OzsrQkFoQnJDQyxVQUFLO2dDQWlFTEMsaUJBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzs7aUNBdkZoRDs7Ozs7OztBQ0FBOzs7O29CQUdDQyxhQUFRLFNBQUM7d0JBQ1IsT0FBTyxFQUFFLEVBQUU7d0JBQ1gsWUFBWSxFQUFFLENBQUMsa0JBQWtCLENBQUM7d0JBQ2xDLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO3FCQUM5Qjs7dUNBUEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==