UNPKG

ng-zorro-antd-mobile

Version:

An enterprise-class mobile UI components based on Ant Design and Angular

244 lines (243 loc) 17.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Directive, Input, Output, EventEmitter, HostListener, ViewContainerRef, ElementRef, Injector, ComponentFactoryResolver, Renderer2 } from '@angular/core'; import { PickerComponent } from './picker.component'; import { PickerOptions } from './picker-options.provider'; var PickerDirective = /** @class */ (function () { function PickerDirective(_viewContainerRef, _elm, _defaultOptions, _cfr, _renderer) { this._viewContainerRef = _viewContainerRef; this._elm = _elm; this._defaultOptions = _defaultOptions; this._cfr = _cfr; this._renderer = _renderer; this._eventListeners = []; this.onVisibleChange = new EventEmitter(true); this.onPickerChange = new EventEmitter(); this.onOk = new EventEmitter(); this.onDismiss = new EventEmitter(); } /** * @return {?} */ PickerDirective.prototype.togglePicker = /** * @return {?} */ function () { if (!this.picker) { this.showPicker(); } else { this.hidePicker(); } }; /** * @return {?} */ PickerDirective.prototype.ngOnInit = /** * @return {?} */ function () { this.onVisibleChange.emit(false); }; /** * @param {?} changes * @return {?} */ PickerDirective.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { if (changes["isOpen"]) { if (changes["isOpen"].currentValue === true) { this.showPicker(); } else { this.hidePicker(); } } }; /** * @return {?} */ PickerDirective.prototype.ngOnDestroy = /** * @return {?} */ function () { this.hidePicker(); }; /** * @param {?} event * @return {?} */ PickerDirective.prototype.onDocumentClick = /** * @param {?} event * @return {?} */ function (event) { if (this.picker && !this._elm.nativeElement.contains(event.target) && !this.picker.location.nativeElement.contains(event.target)) { this.hidePicker(); } }; /** * @return {?} */ PickerDirective.prototype.showPicker = /** * @return {?} */ function () { var _this = this; if (!this.picker) { setTimeout(function () { _this._eventListeners = [ _this._renderer.listen('document', 'click', function (event) { return _this.onDocumentClick(event); }), _this._renderer.listen('document', 'touchend', function (event) { return _this.onDocumentClick(event); }) ]; }); /** @type {?} */ var options_1 = new PickerOptions(); Object.assign(options_1, this._defaultOptions, { hidePicker: function (event) { _this.hidePicker(); } }); /** @type {?} */ var optionalParams = [ 'data', 'value', 'cols', 'mask', 'title', 'okText', 'dismissText', 'disabled', 'cascade', 'appendToBody', 'indicatorStyle', 'onOk', 'onPickerChange' ]; optionalParams.forEach(function (param) { if (typeof _this[param] !== 'undefined') { (/** @type {?} */ (options_1))[param] = _this[param]; } }); /** @type {?} */ var componentFactory = this._cfr.resolveComponentFactory(PickerComponent); /** @type {?} */ var childInjector = Injector.create([ { provide: PickerOptions, useValue: options_1 } ]); this.picker = this._viewContainerRef.createComponent(componentFactory, this._viewContainerRef.length, childInjector); if (options_1.appendToBody) { document.body.appendChild(this.picker.location.nativeElement); } this.onVisibleChange.emit(true); } }; /** * @return {?} */ PickerDirective.prototype.hidePicker = /** * @return {?} */ function () { if (this.picker) { this.picker.destroy(); delete this.picker; this.onVisibleChange.emit(false); this._eventListeners.forEach(function (fn) { return fn(); }); this._eventListeners = []; } }; PickerDirective.decorators = [ { type: Directive, args: [{ selector: '[Picker], [nzm-picker]' },] } ]; /** @nocollapse */ PickerDirective.ctorParameters = function () { return [ { type: ViewContainerRef }, { type: ElementRef }, { type: PickerOptions }, { type: ComponentFactoryResolver }, { type: Renderer2 } ]; }; PickerDirective.propDecorators = { data: [{ type: Input }], value: [{ type: Input }], cols: [{ type: Input }], mask: [{ type: Input }], title: [{ type: Input }], visible: [{ type: Input }], okText: [{ type: Input }], dismissText: [{ type: Input }], disabled: [{ type: Input }], cascade: [{ type: Input }], appendToBody: [{ type: Input }], indicatorStyle: [{ type: Input }], onVisibleChange: [{ type: Output }], onPickerChange: [{ type: Output }], onOk: [{ type: Output }], onDismiss: [{ type: Output }], togglePicker: [{ type: HostListener, args: ['click',] }] }; return PickerDirective; }()); export { PickerDirective }; if (false) { /** @type {?} */ PickerDirective.prototype.picker; /** @type {?} */ PickerDirective.prototype._eventListeners; /** @type {?} */ PickerDirective.prototype.data; /** @type {?} */ PickerDirective.prototype.value; /** @type {?} */ PickerDirective.prototype.cols; /** @type {?} */ PickerDirective.prototype.mask; /** @type {?} */ PickerDirective.prototype.title; /** @type {?} */ PickerDirective.prototype.visible; /** @type {?} */ PickerDirective.prototype.okText; /** @type {?} */ PickerDirective.prototype.dismissText; /** @type {?} */ PickerDirective.prototype.disabled; /** @type {?} */ PickerDirective.prototype.cascade; /** @type {?} */ PickerDirective.prototype.appendToBody; /** @type {?} */ PickerDirective.prototype.indicatorStyle; /** @type {?} */ PickerDirective.prototype.onVisibleChange; /** @type {?} */ PickerDirective.prototype.onPickerChange; /** @type {?} */ PickerDirective.prototype.onOk; /** @type {?} */ PickerDirective.prototype.onDismiss; /** @type {?} */ PickerDirective.prototype._viewContainerRef; /** @type {?} */ PickerDirective.prototype._elm; /** @type {?} */ PickerDirective.prototype._defaultOptions; /** @type {?} */ PickerDirective.prototype._cfr; /** @type {?} */ PickerDirective.prototype._renderer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQtbW9iaWxlLyIsInNvdXJjZXMiOlsicGlja2VyL3BpY2tlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLGdCQUFnQixFQUdoQixVQUFVLEVBR1YsUUFBUSxFQUNSLHdCQUF3QixFQUN4QixTQUFTLEVBR1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7SUFtRHhELHlCQUNVLG1CQUNBLE1BQ0EsaUJBQ0EsTUFDQTtRQUpBLHNCQUFpQixHQUFqQixpQkFBaUI7UUFDakIsU0FBSSxHQUFKLElBQUk7UUFDSixvQkFBZSxHQUFmLGVBQWU7UUFDZixTQUFJLEdBQUosSUFBSTtRQUNKLGNBQVMsR0FBVCxTQUFTOytCQWpEMEIsRUFBRTsrQkEyQk4sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDOzhCQUUzQixJQUFJLFlBQVksRUFBRTtvQkFFNUIsSUFBSSxZQUFZLEVBQUU7eUJBRWIsSUFBSSxZQUFZLEVBQUU7S0FpQjdDOzs7O0lBZEosc0NBQVk7OztJQURaO1FBRUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7S0FDRjs7OztJQVVELGtDQUFROzs7SUFBUjtRQUNFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2xDOzs7OztJQUVELHFDQUFXOzs7O0lBQVgsVUFBWSxPQUFzQjtRQUNoQyxJQUFJLE9BQU8s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SSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDOzs7OztJQUdLLG9DQUFVOzs7O1FBQ2hCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQUEsRUFBRSxJQUFJLE9BQUEsRUFBRSxFQUFFLEVBQUosQ0FBSSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7U0FDM0I7OztnQkFuSkosU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7aUJBQ25DOzs7O2dCQWpCQyxnQkFBZ0I7Z0JBR2hCLFVBQVU7Z0JBVUgsYUFBYTtnQkFOcEIsd0JBQXdCO2dCQUN4QixTQUFTOzs7dUJBY1IsS0FBSzt3QkFFTCxLQUFLO3VCQUVMLEtBQUs7dUJBRUwsS0FBSzt3QkFFTCxLQUFLOzBCQUVMLEtBQUs7eUJBRUwsS0FBSzs4QkFFTCxLQUFLOzJCQUVMLEtBQUs7MEJBRUwsS0FBSzsrQkFFTCxLQUFLO2lDQUVMLEtBQUs7a0NBRUwsTUFBTTtpQ0FFTixNQUFNO3VCQUVOLE1BQU07NEJBRU4sTUFBTTsrQkFHTixZQUFZLFNBQUMsT0FBTzs7MEJBN0R2Qjs7U0F3QmEsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbXBvbmVudFJlZixcbiAgT25EZXN0cm95LFxuICBFbGVtZW50UmVmLFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgSW5qZWN0b3IsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgUmVuZGVyZXIyLFxuICBDb21wb25lbnRGYWN0b3J5LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBpY2tlck9wdGlvbnMgfSBmcm9tICcuL3BpY2tlci1vcHRpb25zLnByb3ZpZGVyJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW1BpY2tlcl0sIFtuem0tcGlja2VyXSdcbn0pXG5leHBvcnQgY2xhc3MgUGlja2VyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gIHBpY2tlcjogQ29tcG9uZW50UmVmPFBpY2tlckNvbXBvbmVudD47XG4gIHByaXZhdGUgX2V2ZW50TGlzdGVuZXJzOiBBcnJheTwoKSA9PiB2b2lkPiA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGRhdGE6IEFycmF5PGFueT47XG4gIEBJbnB1dCgpXG4gIHZhbHVlOiBBcnJheTxhbnk+O1xuICBASW5wdXQoKVxuICBjb2xzOiBOdW1iZXI7XG4gIEBJbnB1dCgpXG4gIG1hc2s6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHZpc2libGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIG9rVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKVxuICBkaXNtaXNzVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgY2FzY2FkZTogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgYXBwZW5kVG9Cb2R5OiBib29sZWFuO1xuICBASW5wdXQoKVxuICBpbmRpY2F0b3JTdHlsZTogb2JqZWN0O1xuICBAT3V0cHV0KClcbiAgb25WaXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKHRydWUpO1xuICBAT3V0cHV0KClcbiAgb25QaWNrZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgb25PazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKVxuICBvbkRpc21pc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgdG9nZ2xlUGlja2VyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5waWNrZXIpIHtcbiAgICAgIHRoaXMuc2hvd1BpY2tlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhpZGVQaWNrZXIoKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgX2VsbTogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9kZWZhdWx0T3B0aW9uczogUGlja2VyT3B0aW9ucyxcbiAgICBwcml2YXRlIF9jZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uVmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcy5pc09wZW4pIHtcbiAgICAgIGlmIChjaGFuZ2VzLmlzT3Blbi5jdXJyZW50VmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgdGhpcy5zaG93UGlja2VyKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhpZGVQaWNrZXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmhpZGVQaWNrZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMucGlja2VyICYmXG4gICAgICAhdGhpcy5fZWxtLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJlxuICAgICAgIXRoaXMucGlja2VyLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICkge1xuICAgICAgdGhpcy5oaWRlUGlja2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG93UGlja2VyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5waWNrZXIpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLl9ldmVudExpc3RlbmVycyA9IFtcbiAgICAgICAgICB0aGlzLl9yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgKGV2ZW50OiBFdmVudCkgPT4gdGhpcy5vbkRvY3VtZW50Q2xpY2soZXZlbnQpKSxcbiAgICAgICAgICB0aGlzLl9yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ3RvdWNoZW5kJywgKGV2ZW50OiBFdmVudCkgPT4gdGhpcy5vbkRvY3VtZW50Q2xpY2soZXZlbnQpKVxuICAgICAgICBdO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBuZXcgUGlja2VyT3B0aW9ucygpO1xuICAgICAgT2JqZWN0LmFzc2lnbihvcHRpb25zLCB0aGlzLl9kZWZhdWx0T3B0aW9ucywge1xuICAgICAgICBoaWRlUGlja2VyOiAoZXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLmhpZGVQaWNrZXIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG9wdGlvbmFsUGFyYW1zOiBBcnJheTxrZXlvZiBQaWNrZXJEaXJlY3RpdmU+ID0gW1xuICAgICAgICAnZGF0YScsXG4gICAgICAgICd2YWx1ZScsXG4gICAgICAgICdjb2xzJyxcbiAgICAgICAgJ21hc2snLFxuICAgICAgICAndGl0bGUnLFxuICAgICAgICAnb2tUZXh0JyxcbiAgICAgICAgJ2Rpc21pc3NUZXh0JyxcbiAgICAgICAgJ2Rpc2FibGVkJyxcbiAgICAgICAgJ2Nhc2NhZGUnLFxuICAgICAgICAnYXBwZW5kVG9Cb2R5JyxcbiAgICAgICAgJ2luZGljYXRvclN0eWxlJyxcbiAgICAgICAgJ29uT2snLFxuICAgICAgICAnb25QaWNrZXJDaGFuZ2UnXG4gICAgICBdO1xuICAgICAgb3B0aW9uYWxQYXJhbXMuZm9yRWFjaChwYXJhbSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpc1twYXJhbV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgKG9wdGlvbnMgYXMgYW55KVtwYXJhbV0gPSB0aGlzW3BhcmFtXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PFBpY2tlckNvbXBvbmVudD4gPSB0aGlzLl9jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoUGlja2VyQ29tcG9uZW50KTtcbiAgICAgIGNvbnN0IGNoaWxkSW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogUGlja2VyT3B0aW9ucyxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9uc1xuICAgICAgICB9XG4gICAgICBdKTtcbiAgICAgIHRoaXMucGlja2VyID0gdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgIGNvbXBvbmVudEZhY3RvcnksXG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYubGVuZ3RoLFxuICAgICAgICBjaGlsZEluamVjdG9yXG4gICAgICApO1xuICAgICAgaWYgKG9wdGlvbnMuYXBwZW5kVG9Cb2R5KSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5waWNrZXIubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9uVmlzaWJsZUNoYW5nZS5lbWl0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlkZVBpY2tlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5waWNrZXIpIHtcbiAgICAgIHRoaXMucGlja2VyLmRlc3Ryb3koKTtcbiAgICAgIGRlbGV0ZSB0aGlzLnBpY2tlcjtcbiAgICAgIHRoaXMub25WaXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgdGhpcy5fZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaChmbiA9PiBmbigpKTtcbiAgICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJzID0gW107XG4gICAgfVxuICB9XG59XG4iXX0=