UNPKG

@cause-911/devextreme

Version:

Run `npm install @cause-911/devextreme --save` to add this library to your project

247 lines 22 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, EventEmitter, Input, NgZone, Output } from '@angular/core'; import { TranslateService } from '@cause-911/core'; export class CausePopupConfirmComponent { /** * @param {?} zone * @param {?} translate */ constructor(zone, translate) { this.zone = zone; this.translate = translate; this.title = ''; this.text = ''; this.showTitle = false; this.visibleChange = new EventEmitter(); this.ok = new EventEmitter(); this.cancel = new EventEmitter(); this.done = new EventEmitter(); this.barItems = { ['ok']: { widget: 'dxButton', location: 'center', visible: true, options: { text: '' }, toolbar: 'bottom', parent: this, onClick: CausePopupConfirmComponent.onOkClick }, ['cancel']: { widget: 'dxButton', location: 'center', visible: true, options: { text: '' }, toolbar: 'bottom', parent: this, onClick: CausePopupConfirmComponent.onCancelClick }, ['close']: { widget: 'dxButton', location: 'center', visible: true, options: { text: '' }, toolbar: 'bottom', parent: this, onClick: CausePopupConfirmComponent.onCancelClick }, ['save']: { widget: 'dxButton', location: 'center', visible: true, options: { text: '' }, toolbar: 'bottom', parent: this, onClick: CausePopupConfirmComponent.onOkClick }, ['yes']: { widget: 'dxButton', location: 'center', visible: true, options: { text: '' }, toolbar: 'bottom', parent: this, onClick: CausePopupConfirmComponent.onOkClick }, ['no']: { widget: 'dxButton', location: 'center', visible: true, options: { text: '' }, toolbar: 'bottom', parent: this, onClick: CausePopupConfirmComponent.onCancelClick } }; this.botomToolbarItems = [this.barItems.ok]; this.translationKeyParent = 'devextreme.popupconfirm'; this.translationKeys = ['buttonsave', 'buttonok', 'buttoncancel', 'buttonyes', 'buttonno', 'buttonclose']; this.types = { ok: 'ok', cancel: 'cancel', close: 'close', yesno: 'yesno', okcancel: 'okcancel', okclose: 'okclose', savecancel: 'savecancel' }; } /** * @param {?} name * @return {?} */ set type(name) { switch (name) { case this.types.cancel: this.botomToolbarItems = [this.barItems.cancel]; break; case this.types.close: this.botomToolbarItems = [this.barItems.close]; break; case this.types.yesno: this.botomToolbarItems = [this.barItems.yes, this.barItems.no]; break; case this.types.okcancel: this.botomToolbarItems = [this.barItems.ok, this.barItems.cancel]; break; case this.types.okclose: this.botomToolbarItems = [this.barItems.ok, this.barItems.close]; break; case this.types.savecancel: this.botomToolbarItems = [this.barItems.save, this.barItems.cancel]; break; default: this.botomToolbarItems = [this.barItems.ok]; break; } } /** * @param {?} e * @return {?} */ static onOkClick(e) { e.itemData.parent.ok.emit(); e.itemData.parent.done.emit(true); } /** * @param {?} e * @return {?} */ static onCancelClick(e) { e.itemData.parent.cancel.emit(); e.itemData.parent.done.emit(false); } /** * @return {?} */ ngOnInit() { this.getTranslations(); } /** * @return {?} */ getTranslations() { /** @type {?} */ const keys = this.translationKeys.map((/** * @param {?} key * @return {?} */ key => [this.translationKeyParent, key].join('.'))); this.translate.get(keys).subscribe((/** * @param {?} translations * @return {?} */ translations => { this.initBarText(translations); })); } /** * @return {?} */ onVisibleChange() { this.visibleChange.emit(this.visible); } /** * @param {?} translations * @return {?} */ initBarText(translations) { this.barItems.ok.options.text = translations[[this.translationKeyParent, 'buttonok'].join('.')]; this.barItems.cancel.options.text = translations[[this.translationKeyParent, 'buttoncancel'].join('.')]; this.barItems.save.options.text = translations[[this.translationKeyParent, 'buttonsave'].join('.')]; this.barItems.yes.options.text = translations[[this.translationKeyParent, 'buttonyes'].join('.')]; this.barItems.no.options.text = translations[[this.translationKeyParent, 'buttonno'].join('.')]; this.barItems.close.options.text = translations[[this.translationKeyParent, 'buttonclose'].join('.')]; } /** * @return {?} */ popupHidden() { this.visible = false; this.onVisibleChange(); } } CausePopupConfirmComponent.decorators = [ { type: Component, args: [{ selector: 'cause-popup-confirm', template: "<div>\n <dx-popup\n class=\"popup\"\n [showTitle]=\"showTitle\"\n [title]=\"title\"\n height=\"auto\"\n width=\"auto\"\n [dragEnabled]=\"false\"\n [showCloseButton]=\"true\"\n [closeOnOutsideClick]=\"false\"\n [(visible)]=\"visible\"\n [toolbarItems]=\"botomToolbarItems\"\n (onHidden)=\"popupHidden()\">\n <div>{{text}}</div>\n <ng-content></ng-content>\n </dx-popup>\n</div>\n", styles: [""] }] } ]; /** @nocollapse */ CausePopupConfirmComponent.ctorParameters = () => [ { type: NgZone }, { type: TranslateService } ]; CausePopupConfirmComponent.propDecorators = { title: [{ type: Input }], text: [{ type: Input }], showTitle: [{ type: Input }], type: [{ type: Input }], visible: [{ type: Input }], visibleChange: [{ type: Output }], ok: [{ type: Output }], cancel: [{ type: Output }], done: [{ type: Output }] }; if (false) { /** @type {?} */ CausePopupConfirmComponent.prototype.title; /** @type {?} */ CausePopupConfirmComponent.prototype.text; /** @type {?} */ CausePopupConfirmComponent.prototype.showTitle; /** @type {?} */ CausePopupConfirmComponent.prototype.visible; /** @type {?} */ CausePopupConfirmComponent.prototype.visibleChange; /** @type {?} */ CausePopupConfirmComponent.prototype.ok; /** @type {?} */ CausePopupConfirmComponent.prototype.cancel; /** @type {?} */ CausePopupConfirmComponent.prototype.done; /** @type {?} */ CausePopupConfirmComponent.prototype.barItems; /** @type {?} */ CausePopupConfirmComponent.prototype.botomToolbarItems; /** @type {?} */ CausePopupConfirmComponent.prototype.translationKeyParent; /** @type {?} */ CausePopupConfirmComponent.prototype.translationKeys; /** @type {?} */ CausePopupConfirmComponent.prototype.types; /** * @type {?} * @private */ CausePopupConfirmComponent.prototype.zone; /** * @type {?} * @private */ CausePopupConfirmComponent.prototype.translate; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F1c2UtcG9wdXAtY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY2F1c2UtOTExL2RldmV4dHJlbWUvIiwic291cmNlcyI6WyJsaWIvY2F1c2UtcG9wdXAtY29uZmlybS9jYXVzZS1wb3B1cC1jb25maXJtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFPakQsTUFBTSxPQUFPLDBCQUEwQjs7Ozs7SUF5SHJDLFlBQW9CLElBQVksRUFBVSxTQUEyQjtRQUFqRCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUF4SDVELFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsY0FBUyxHQUFHLEtBQUssQ0FBQztRQThCakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTVDLE9BQUUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzlCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2xDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTdDLGFBQVEsR0FBUTtZQUNkLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLFVBQVU7Z0JBQ2xCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixPQUFPLEVBQUUsSUFBSTtnQkFDYixPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFDO2dCQUNuQixPQUFPLEVBQUUsUUFBUTtnQkFDakIsTUFBTSxFQUFFLElBQUk7Z0JBQ1osT0FBTyxFQUFFLDBCQUEwQixDQUFDLFNBQVM7YUFDOUM7WUFDRCxDQUFDLFFBQVEsQ0FB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Q0FRRTs7Ozs7SUFZVSwwQ0FBb0I7Ozs7O0lBQUUsK0NBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nWm9uZSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGNhdXNlLTkxMS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2F1c2UtcG9wdXAtY29uZmlybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXVzZS1wb3B1cC1jb25maXJtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2F1c2UtcG9wdXAtY29uZmlybS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhdXNlUG9wdXBDb25maXJtQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgdGV4dCA9ICcnO1xuICBASW5wdXQoKSBzaG93VGl0bGUgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgdHlwZShuYW1lOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgdGhpcy50eXBlcy5jYW5jZWwgOlxuICAgICAgICB0aGlzLmJvdG9tVG9vbGJhckl0ZW1zID0gW3RoaXMuYmFySXRlbXMuY2FuY2VsXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIHRoaXMudHlwZXMuY2xvc2UgOlxuICAgICAgICB0aGlzLmJvdG9tVG9vbGJhckl0ZW1zID0gW3RoaXMuYmFySXRlbXMuY2xvc2VdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgdGhpcy50eXBlcy55ZXNubyA6XG4gICAgICAgIHRoaXMuYm90b21Ub29sYmFySXRlbXMgPSBbdGhpcy5iYXJJdGVtcy55ZXMsIHRoaXMuYmFySXRlbXMubm9dO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgdGhpcy50eXBlcy5va2NhbmNlbCA6XG4gICAgICAgIHRoaXMuYm90b21Ub29sYmFySXRlbXMgPSBbdGhpcy5iYXJJdGVtcy5vaywgdGhpcy5iYXJJdGVtcy5jYW5jZWxdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgdGhpcy50eXBlcy5va2Nsb3NlIDpcbiAgICAgICAgdGhpcy5ib3RvbVRvb2xiYXJJdGVtcyA9IFt0aGlzLmJhckl0ZW1zLm9rLCB0aGlzLmJhckl0ZW1zLmNsb3NlXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIHRoaXMudHlwZXMuc2F2ZWNhbmNlbCA6XG4gICAgICAgIHRoaXMuYm90b21Ub29sYmFySXRlbXMgPSBbdGhpcy5iYXJJdGVtcy5zYXZlLCB0aGlzLmJhckl0ZW1zLmNhbmNlbF07XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5ib3RvbVRvb2xiYXJJdGVtcyA9IFt0aGlzLmJhckl0ZW1zLm9rXTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cblxuICBASW5wdXQoKSB2aXNpYmxlOiBib29sZWFuO1xuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAT3V0cHV0KCkgb2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBkb25lID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGJhckl0ZW1zOiBhbnkgPSB7XG4gICAgWydvayddOiB7XG4gICAgICB3aWRnZXQ6ICdkeEJ1dHRvbicsXG4gICAgICBsb2NhdGlvbjogJ2NlbnRlcicsXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgb3B0aW9uczoge3RleHQ6ICcnfSxcbiAgICAgIHRvb2xiYXI6ICdib3R0b20nLFxuICAgICAgcGFyZW50OiB0aGlzLFxuICAgICAgb25DbGljazogQ2F1c2VQb3B1cENvbmZpcm1Db21wb25lbnQub25Pa0NsaWNrXG4gICAgfSxcbiAgICBbJ2NhbmNlbCddOiB7XG4gICAgICB3aWRnZXQ6ICdkeEJ1dHRvbicsXG4gICAgICBsb2NhdGlvbjogJ2NlbnRlcicsXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgb3B0aW9uczoge3RleHQ6ICcnfSxcbiAgICAgIHRvb2xiYXI6ICdib3R0b20nLFxuICAgICAgcGFyZW50OiB0aGlzLFxuICAgICAgb25DbGljazogQ2F1c2VQb3B1cENvbmZpcm1Db21wb25lbnQub25DYW5jZWxDbGlja1xuICAgIH0sXG4gICAgWydjbG9zZSddOiB7XG4gICAgICB3aWRnZXQ6ICdkeEJ1dHRvbicsXG4gICAgICBsb2NhdGlvbjogJ2NlbnRlcicsXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgb3B0aW9uczoge3RleHQ6ICcnfSxcbiAgICAgIHRvb2xiYXI6ICdib3R0b20nLFxuICAgICAgcGFyZW50OiB0aGlzLFxuICAgICAgb25DbGljazogQ2F1c2VQb3B1cENvbmZpcm1Db21wb25lbnQub25DYW5jZWxDbGlja1xuICAgIH0sXG4gICAgWydzYXZlJ106IHtcbiAgICAgIHdpZGdldDogJ2R4QnV0dG9uJyxcbiAgICAgIGxvY2F0aW9uOiAnY2VudGVyJyxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICBvcHRpb25zOiB7dGV4dDogJyd9LFxuICAgICAgdG9vbGJhcjogJ2JvdHRvbScsXG4gICAgICBwYXJlbnQ6IHRoaXMsXG4gICAgICBvbkNsaWNrOiBDYXVzZVBvcHVwQ29uZmlybUNvbXBvbmVudC5vbk9rQ2xpY2tcbiAgICB9LFxuICAgIFsneWVzJ106IHtcbiAgICAgIHdpZGdldDogJ2R4QnV0dG9uJyxcbiAgICAgIGxvY2F0aW9uOiAnY2VudGVyJyxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICBvcHRpb25zOiB7dGV4dDogJyd9LFxuICAgICAgdG9vbGJhcjogJ2JvdHRvbScsXG4gICAgICBwYXJlbnQ6IHRoaXMsXG4gICAgICBvbkNsaWNrOiBDYXVzZVBvcHVwQ29uZmlybUNvbXBvbmVudC5vbk9rQ2xpY2tcbiAgICB9LFxuICAgIFsnbm8nXToge1xuICAgICAgd2lkZ2V0OiAnZHhCdXR0b24nLFxuICAgICAgbG9jYXRpb246ICdjZW50ZXInLFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgIG9wdGlvbnM6IHt0ZXh0OiAnJ30sXG4gICAgICB0b29sYmFyOiAnYm90dG9tJyxcbiAgICAgIHBhcmVudDogdGhpcyxcbiAgICAgIG9uQ2xpY2s6IENhdXNlUG9wdXBDb25maXJtQ29tcG9uZW50Lm9uQ2FuY2VsQ2xpY2tcbiAgICB9XG4gIH07XG5cbiAgYm90b21Ub29sYmFySXRlbXMgPSBbdGhpcy5iYXJJdGVtcy5va107XG5cbiAgdHJhbnNsYXRpb25LZXlQYXJlbnQgPSAnZGV2ZXh0cmVtZS5wb3B1cGNvbmZpcm0nO1xuICB0cmFuc2xhdGlvbktleXMgPSBbJ2J1dHRvbnNhdmUnLCAnYnV0dG9ub2snLCAnYnV0dG9uY2FuY2VsJywgJ2J1dHRvbnllcycsICdidXR0b25ubycsICdidXR0b25jbG9zZSddO1xuXG4gIHR5cGVzID0ge1xuICAgIG9rOiAnb2snLFxuICAgIGNhbmNlbDogJ2NhbmNlbCcsXG4gICAgY2xvc2U6ICdjbG9zZScsXG4gICAgeWVzbm86ICd5ZXNubycsXG4gICAgb2tjYW5jZWw6ICdva2NhbmNlbCcsXG4gICAgb2tjbG9zZTogJ29rY2xvc2UnLFxuICAgIHNhdmVjYW5jZWw6ICdzYXZlY2FuY2VsJ1xuICB9O1xuXG4gIHN0YXRpYyBvbk9rQ2xpY2soZSkge1xuICAgIGUuaXRlbURhdGEucGFyZW50Lm9rLmVtaXQoKTtcbiAgICBlLml0ZW1EYXRhLnBhcmVudC5kb25lLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBzdGF0aWMgb25DYW5jZWxDbGljayhlKSB7XG4gICAgZS5pdGVtRGF0YS5wYXJlbnQuY2FuY2VsLmVtaXQoKTtcbiAgICBlLml0ZW1EYXRhLnBhcmVudC5kb25lLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUsIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdldFRyYW5zbGF0aW9ucygpO1xuICB9XG5cbiAgZ2V0VHJhbnNsYXRpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IGtleXMgPSB0aGlzLnRyYW5zbGF0aW9uS2V5cy5tYXAoa2V5ID0+IFt0aGlzLnRyYW5zbGF0aW9uS2V5UGFyZW50LCBrZXldLmpvaW4oJy4nKSk7XG4gICAgdGhpcy50cmFuc2xhdGUuZ2V0KGtleXMpLnN1YnNjcmliZSh0cmFuc2xhdGlvbnMgPT4ge1xuICAgICAgdGhpcy5pbml0QmFyVGV4dCh0cmFuc2xhdGlvbnMpO1xuICAgIH0pO1xuICB9XG5cbiAgb25WaXNpYmxlQ2hhbmdlKCkge1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMudmlzaWJsZSk7XG4gIH1cblxuICBpbml0QmFyVGV4dCh0cmFuc2xhdGlvbnM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5iYXJJdGVtcy5vay5vcHRpb25zLnRleHQgPSB0cmFuc2xhdGlvbnNbW3RoaXMudHJhbnNsYXRpb25LZXlQYXJlbnQsICdidXR0b25vayddLmpvaW4oJy4nKV07XG4gICAgdGhpcy5iYXJJdGVtcy5jYW5jZWwub3B0aW9ucy50ZXh0ID0gdHJhbnNsYXRpb25zW1t0aGlzLnRyYW5zbGF0aW9uS2V5UGFyZW50LCAnYnV0dG9uY2FuY2VsJ10uam9pbignLicpXTtcbiAgICB0aGlzLmJhckl0ZW1zLnNhdmUub3B0aW9ucy50ZXh0ID0gdHJhbnNsYXRpb25zW1t0aGlzLnRyYW5zbGF0aW9uS2V5UGFyZW50LCAnYnV0dG9uc2F2ZSddLmpvaW4oJy4nKV07XG4gICAgdGhpcy5iYXJJdGVtcy55ZXMub3B0aW9ucy50ZXh0ID0gdHJhbnNsYXRpb25zW1t0aGlzLnRyYW5zbGF0aW9uS2V5UGFyZW50LCAnYnV0dG9ueWVzJ10uam9pbignLicpXTtcbiAgICB0aGlzLmJhckl0ZW1zLm5vLm9wdGlvbnMudGV4dCA9IHRyYW5zbGF0aW9uc1tbdGhpcy50cmFuc2xhdGlvbktleVBhcmVudCwgJ2J1dHRvbm5vJ10uam9pbignLicpXTtcbiAgICB0aGlzLmJhckl0ZW1zLmNsb3NlLm9wdGlvbnMudGV4dCA9IHRyYW5zbGF0aW9uc1tbdGhpcy50cmFuc2xhdGlvbktleVBhcmVudCwgJ2J1dHRvbmNsb3NlJ10uam9pbignLicpXTtcbiAgfVxuXG4gIHBvcHVwSGlkZGVuKCkge1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMub25WaXNpYmxlQ2hhbmdlKCk7XG4gIH1cblxufVxuIl19