@cause-911/devextreme
Version:
Run `npm install @cause-911/devextreme --save` to add this library to your project
247 lines • 22 kB
JavaScript
/**
* @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