UNPKG

ion-cleave-directive

Version:

A cleaveJS package ready to use on Ionic

166 lines (157 loc) 12.8 kB
(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==