@universis/common
Version:
Universis - common directives and services
1,242 lines (1,234 loc) • 54.7 kB
JavaScript
import { __extends, __awaiter, __generator } from 'tslib';
import { Input, EventEmitter, Component, ElementRef, ViewEncapsulation, Renderer2, NgModule } from '@angular/core';
import { ActivatedRoute, Router, RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
var ButtonTypes = {
ok: {
buttonText: 'OK',
buttonClass: 'btn btn-indigo',
buttonDisabled: false
},
cancel: {
buttonText: 'Cancel',
buttonClass: 'btn btn-gray-100',
buttonDisabled: false
},
yes: {
buttonText: 'Yes',
buttonClass: 'btn btn-primary',
buttonDisabled: false
},
no: {
buttonText: 'No',
buttonClass: 'btn btn-gray-100',
buttonDisabled: false
},
abort: {
buttonText: 'Abort',
buttonClass: 'btn btn-danger',
buttonDisabled: false
},
retry: {
buttonText: 'Retry',
buttonClass: 'btn btn-primary',
buttonDisabled: false
},
ignore: {
buttonText: 'Ignore',
buttonClass: 'btn btn-warning',
buttonDisabled: false
},
previous: {
buttonText: 'Previous',
buttonClass: 'btn btn-gray-100',
buttonDisabled: false
},
next: {
buttonText: 'Next',
buttonClass: 'btn btn-theme',
buttonDisabled: false
}
};
var RouterModal = /** @class */ (function () {
function RouterModal(router, activatedRoute) {
this.router = router;
this.activatedRoute = activatedRoute;
this.modalChanges = new EventEmitter();
//
}
Object.defineProperty(RouterModal.prototype, "modalTitle", {
/**
* Gets or modal window title
*/
get: function () {
return this._modalTitle;
},
set: function (value) {
this._modalTitle = value;
this.modalChanges.emit({
modalTitle: this._modalTitle,
modalClass: this._modalClass,
});
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModal.prototype, "modalClass", {
/**
* Gets or sets modal window additional class
*/
get: function () {
return this._modalClass;
},
set: function (value) {
this._modalClass = value;
this.modalChanges.emit({
modalTitle: this._modalTitle,
modalClass: this._modalClass,
});
},
enumerable: true,
configurable: true
});
/**
* Closes modal window
*/
RouterModal.prototype.close = function (navigationExtras) {
var _this = this;
return this.router.navigate([
{
outlets: {
modal: null
}
}
], {
relativeTo: this.activatedRoute.parent,
}).then(function (navigationEnd) {
if (navigationEnd && navigationExtras) {
if (_this.activatedRoute.parent && _this.activatedRoute.parent.component) {
var finalNavigationExtras = Object.assign({
relativeTo: _this.activatedRoute.parent
}, navigationExtras);
return _this.router.navigate(['.'], finalNavigationExtras);
}
}
return Promise.resolve(navigationEnd);
});
};
RouterModal.propDecorators = {
modalTitle: [{ type: Input }],
modalClass: [{ type: Input }]
};
return RouterModal;
}());
var RouterModalYesNo = /** @class */ (function (_super) {
__extends(RouterModalYesNo, _super);
function RouterModalYesNo() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.buttonChanges = new EventEmitter();
_this._yesButtonText = ButtonTypes.yes.buttonText;
_this._yesButtonClass = ButtonTypes.yes.buttonClass;
_this._noButtonText = ButtonTypes.no.buttonText;
_this._noButtonClass = ButtonTypes.no.buttonClass;
_this._yesButtonDisabled = ButtonTypes.yes.buttonDisabled;
_this._noButtonDisabled = ButtonTypes.no.buttonDisabled;
return _this;
}
Object.defineProperty(RouterModalYesNo.prototype, "yesButtonState", {
get: function () {
return {
yes: {
buttonText: this._yesButtonText,
buttonClass: this._yesButtonClass,
buttonDisabled: this._yesButtonDisabled
}
};
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalYesNo.prototype, "noButtonState", {
get: function () {
return {
no: {
buttonText: this._noButtonText,
buttonClass: this._noButtonClass,
buttonDisabled: this._noButtonDisabled
}
};
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalYesNo.prototype, "yesButtonText", {
get: function () {
return this._yesButtonText;
},
set: function (value) {
this._yesButtonText = value;
this.buttonChanges.emit(this.yesButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalYesNo.prototype, "yesButtonClass", {
get: function () {
return this._yesButtonClass;
},
set: function (value) {
this._yesButtonClass = value;
this.buttonChanges.emit(this.yesButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalYesNo.prototype, "noButtonText", {
get: function () {
return this._noButtonText;
},
set: function (value) {
this._noButtonText = value;
this.buttonChanges.emit(this.noButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalYesNo.prototype, "noButtonClass", {
get: function () {
return this._noButtonClass;
},
set: function (value) {
this._noButtonClass = value;
this.buttonChanges.emit(this.noButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalYesNo.prototype, "yesButtonDisabled", {
get: function () {
return this._yesButtonDisabled;
},
set: function (value) {
this._yesButtonDisabled = value;
this.buttonChanges.emit(this.yesButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalYesNo.prototype, "noButtonDisabled", {
get: function () {
return this._noButtonDisabled;
},
set: function (value) {
this._noButtonDisabled = value;
this.buttonChanges.emit(this.noButtonState);
},
enumerable: true,
configurable: true
});
RouterModalYesNo.propDecorators = {
yesButtonText: [{ type: Input }],
yesButtonClass: [{ type: Input }],
noButtonText: [{ type: Input }],
noButtonClass: [{ type: Input }],
yesButtonDisabled: [{ type: Input }],
noButtonDisabled: [{ type: Input }]
};
return RouterModalYesNo;
}(RouterModal));
// noinspection JSUnusedGlobalSymbols
var RouterModalYesNoCancel = /** @class */ (function (_super) {
__extends(RouterModalYesNoCancel, _super);
function RouterModalYesNoCancel() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this._cancelButtonText = ButtonTypes.cancel.buttonText;
_this._cancelButtonClass = ButtonTypes.cancel.buttonClass;
_this._cancelButtonDisabled = ButtonTypes.cancel.buttonDisabled;
return _this;
}
Object.defineProperty(RouterModalYesNoCancel.prototype, "cancelButtonState", {
get: function () {
return {
cancel: {
buttonText: this._cancelButtonText,
buttonClass: this._cancelButtonClass,
buttonDisabled: this._cancelButtonDisabled
}
};
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalYesNoCancel.prototype, "cancelButtonText", {
get: function () {
return this._cancelButtonText;
},
set: function (value) {
this._cancelButtonText = value;
this.buttonChanges.emit(this.cancelButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalYesNoCancel.prototype, "cancelButtonClass", {
get: function () {
return this._cancelButtonClass;
},
set: function (value) {
this._cancelButtonClass = value;
this.buttonChanges.emit(this.cancelButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalYesNoCancel.prototype, "cancelButtonDisabled", {
get: function () {
return this._cancelButtonDisabled;
},
set: function (value) {
this._cancelButtonDisabled = value;
this.buttonChanges.emit(this.cancelButtonState);
},
enumerable: true,
configurable: true
});
RouterModalYesNoCancel.propDecorators = {
cancelButtonText: [{ type: Input }],
cancelButtonClass: [{ type: Input }],
cancelButtonDisabled: [{ type: Input }]
};
return RouterModalYesNoCancel;
}(RouterModalYesNo));
var RouterModalOkCancel = /** @class */ (function (_super) {
__extends(RouterModalOkCancel, _super);
function RouterModalOkCancel() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.buttonChanges = new EventEmitter();
_this._okButtonText = ButtonTypes.ok.buttonText;
_this._okButtonClass = ButtonTypes.ok.buttonClass;
_this._cancelButtonText = ButtonTypes.cancel.buttonText;
_this._cancelButtonClass = ButtonTypes.cancel.buttonClass;
_this._okButtonDisabled = ButtonTypes.ok.buttonDisabled;
_this._cancelButtonDisabled = ButtonTypes.cancel.buttonDisabled;
return _this;
}
Object.defineProperty(RouterModalOkCancel.prototype, "okButtonState", {
get: function () {
return {
ok: {
buttonText: this._okButtonText,
buttonClass: this._okButtonClass,
buttonDisabled: this._okButtonDisabled
}
};
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalOkCancel.prototype, "cancelButtonState", {
get: function () {
return {
cancel: {
buttonText: this._cancelButtonText,
buttonClass: this._cancelButtonClass,
buttonDisabled: this._cancelButtonDisabled
}
};
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalOkCancel.prototype, "okButtonText", {
get: function () {
return this._okButtonText;
},
set: function (value) {
this._okButtonText = value;
this.buttonChanges.emit(this.okButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalOkCancel.prototype, "okButtonClass", {
get: function () {
return this._okButtonClass;
},
set: function (value) {
this._okButtonClass = value;
this.buttonChanges.emit(this.okButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalOkCancel.prototype, "cancelButtonText", {
get: function () {
return this._cancelButtonText;
},
set: function (value) {
this._cancelButtonText = value;
this.buttonChanges.emit(this.cancelButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalOkCancel.prototype, "cancelButtonClass", {
get: function () {
return this._cancelButtonClass;
},
set: function (value) {
this._cancelButtonClass = value;
this.buttonChanges.emit(this.cancelButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalOkCancel.prototype, "okButtonDisabled", {
get: function () {
return this._okButtonDisabled;
},
set: function (value) {
this._okButtonDisabled = value;
this.buttonChanges.emit(this.okButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalOkCancel.prototype, "cancelButtonDisabled", {
get: function () {
return this._cancelButtonDisabled;
},
set: function (value) {
this._cancelButtonDisabled = value;
this.buttonChanges.emit(this.cancelButtonState);
},
enumerable: true,
configurable: true
});
RouterModalOkCancel.propDecorators = {
okButtonText: [{ type: Input }],
okButtonClass: [{ type: Input }],
cancelButtonText: [{ type: Input }],
cancelButtonClass: [{ type: Input }],
okButtonDisabled: [{ type: Input }],
cancelButtonDisabled: [{ type: Input }]
};
return RouterModalOkCancel;
}(RouterModal));
var RouterModalAbortRetryIgnore = /** @class */ (function (_super) {
__extends(RouterModalAbortRetryIgnore, _super);
function RouterModalAbortRetryIgnore() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.buttonChanges = new EventEmitter();
// abort button (start)
_this._abortButtonText = ButtonTypes.abort.buttonText;
_this._abortButtonClass = ButtonTypes.abort.buttonClass;
_this._abortButtonDisabled = ButtonTypes.abort.buttonDisabled;
// abort button (end)
// retry button (start)
_this._retryButtonText = ButtonTypes.retry.buttonText;
_this._retryButtonClass = ButtonTypes.retry.buttonClass;
_this._retryButtonDisabled = ButtonTypes.retry.buttonDisabled;
// retry button (end)
// ignore button (start)
_this._ignoreButtonText = ButtonTypes.ignore.buttonText;
_this._ignoreButtonClass = ButtonTypes.ignore.buttonClass;
_this._ignoreButtonDisabled = ButtonTypes.ignore.buttonDisabled;
return _this;
}
Object.defineProperty(RouterModalAbortRetryIgnore.prototype, "abortButtonState", {
get: function () {
return {
abort: {
buttonText: this._abortButtonText,
buttonClass: this._abortButtonClass,
buttonDisabled: this._abortButtonDisabled
}
};
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalAbortRetryIgnore.prototype, "retryButtonState", {
get: function () {
return {
retry: {
buttonText: this._retryButtonText,
buttonClass: this._retryButtonClass,
buttonDisabled: this._retryButtonDisabled
}
};
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalAbortRetryIgnore.prototype, "ignoreButtonState", {
get: function () {
return {
ignore: {
buttonText: this._ignoreButtonText,
buttonClass: this._ignoreButtonClass,
buttonDisabled: this._ignoreButtonDisabled
}
};
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalAbortRetryIgnore.prototype, "abortButtonText", {
get: function () {
return this._abortButtonText;
},
set: function (value) {
this._abortButtonText = value;
this.buttonChanges.emit(this.abortButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalAbortRetryIgnore.prototype, "abortButtonClass", {
get: function () {
return this._abortButtonClass;
},
set: function (value) {
this._abortButtonClass = value;
this.buttonChanges.emit(this.abortButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalAbortRetryIgnore.prototype, "abortButtonDisabled", {
get: function () {
return this._abortButtonDisabled;
},
set: function (value) {
this._abortButtonDisabled = value;
this.buttonChanges.emit(this.abortButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalAbortRetryIgnore.prototype, "retryButtonText", {
get: function () {
return this._retryButtonText;
},
set: function (value) {
this._retryButtonText = value;
this.buttonChanges.emit(this.retryButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalAbortRetryIgnore.prototype, "retryButtonClass", {
get: function () {
return this._retryButtonClass;
},
set: function (value) {
this._retryButtonClass = value;
this.buttonChanges.emit(this.retryButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalAbortRetryIgnore.prototype, "retryButtonDisabled", {
get: function () {
return this._retryButtonDisabled;
},
set: function (value) {
this._retryButtonDisabled = value;
this.buttonChanges.emit(this.retryButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalAbortRetryIgnore.prototype, "ignoreButtonText", {
get: function () {
return this._ignoreButtonText;
},
set: function (value) {
this._ignoreButtonText = value;
this.buttonChanges.emit(this.ignoreButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalAbortRetryIgnore.prototype, "ignoreButtonClass", {
get: function () {
return this._ignoreButtonClass;
},
set: function (value) {
this._ignoreButtonClass = value;
this.buttonChanges.emit(this.ignoreButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalAbortRetryIgnore.prototype, "ignoreButtonDisabled", {
get: function () {
return this._ignoreButtonDisabled;
},
set: function (value) {
this._ignoreButtonDisabled = value;
this.buttonChanges.emit(this.ignoreButtonState);
},
enumerable: true,
configurable: true
});
RouterModalAbortRetryIgnore.propDecorators = {
abortButtonText: [{ type: Input }],
abortButtonClass: [{ type: Input }],
abortButtonDisabled: [{ type: Input }],
retryButtonText: [{ type: Input }],
retryButtonClass: [{ type: Input }],
retryButtonDisabled: [{ type: Input }],
ignoreButtonText: [{ type: Input }],
ignoreButtonClass: [{ type: Input }],
ignoreButtonDisabled: [{ type: Input }]
};
return RouterModalAbortRetryIgnore;
}(RouterModal));
// noinspection JSUnusedGlobalSymbols
var RouterModalPreviousNextCancel = /** @class */ (function (_super) {
__extends(RouterModalPreviousNextCancel, _super);
function RouterModalPreviousNextCancel() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.buttonChanges = new EventEmitter();
_this._previousButtonText = ButtonTypes.previous.buttonText;
_this._previousButtonClass = ButtonTypes.previous.buttonClass;
_this._previousButtonDisabled = ButtonTypes.previous.buttonDisabled;
_this._nextButtonText = ButtonTypes.next.buttonText;
_this._nextButtonClass = ButtonTypes.next.buttonClass;
_this._nextButtonDisabled = ButtonTypes.next.buttonDisabled;
_this._cancelButtonText = ButtonTypes.cancel.buttonText;
_this._cancelButtonClass = ButtonTypes.cancel.buttonClass;
_this._cancelButtonDisabled = ButtonTypes.cancel.buttonDisabled;
return _this;
}
Object.defineProperty(RouterModalPreviousNextCancel.prototype, "previousButtonState", {
get: function () {
return {
previous: {
buttonText: this._previousButtonText,
buttonClass: this._previousButtonClass,
buttonDisabled: this._previousButtonDisabled
}
};
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalPreviousNextCancel.prototype, "nextButtonState", {
get: function () {
return {
next: {
buttonText: this._nextButtonText,
buttonClass: this._nextButtonClass,
buttonDisabled: this._nextButtonDisabled
}
};
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalPreviousNextCancel.prototype, "cancelButtonState", {
get: function () {
return {
cancel: {
buttonText: this._cancelButtonText,
buttonClass: this._cancelButtonClass,
buttonDisabled: this._cancelButtonDisabled
}
};
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalPreviousNextCancel.prototype, "previousButtonText", {
get: function () {
return this._previousButtonText;
},
set: function (value) {
this._previousButtonText = value;
this.buttonChanges.emit(this.previousButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalPreviousNextCancel.prototype, "previousButtonClass", {
get: function () {
return this._previousButtonClass;
},
set: function (value) {
this._previousButtonClass = value;
this.buttonChanges.emit(this.previousButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalPreviousNextCancel.prototype, "previousButtonDisabled", {
get: function () {
return this._previousButtonDisabled;
},
set: function (value) {
this._previousButtonDisabled = value;
this.buttonChanges.emit(this.previousButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalPreviousNextCancel.prototype, "nextButtonText", {
get: function () {
return this._nextButtonText;
},
set: function (value) {
this._nextButtonText = value;
this.buttonChanges.emit(this.nextButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalPreviousNextCancel.prototype, "nextButtonClass", {
get: function () {
return this._nextButtonClass;
},
set: function (value) {
this._nextButtonClass = value;
this.buttonChanges.emit(this.nextButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalPreviousNextCancel.prototype, "nextButtonDisabled", {
get: function () {
return this._nextButtonDisabled;
},
set: function (value) {
this._nextButtonDisabled = value;
this.buttonChanges.emit(this.nextButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalPreviousNextCancel.prototype, "cancelButtonText", {
get: function () {
return this._cancelButtonText;
},
set: function (value) {
this._cancelButtonText = value;
this.buttonChanges.emit(this.cancelButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalPreviousNextCancel.prototype, "cancelButtonClass", {
get: function () {
return this._cancelButtonClass;
},
set: function (value) {
this._cancelButtonClass = value;
this.buttonChanges.emit(this.cancelButtonState);
},
enumerable: true,
configurable: true
});
Object.defineProperty(RouterModalPreviousNextCancel.prototype, "cancelButtonDisabled", {
get: function () {
return this._cancelButtonDisabled;
},
set: function (value) {
this._cancelButtonDisabled = value;
this.buttonChanges.emit(this.cancelButtonState);
},
enumerable: true,
configurable: true
});
RouterModalPreviousNextCancel.propDecorators = {
previousButtonText: [{ type: Input }],
previousButtonClass: [{ type: Input }],
previousButtonDisabled: [{ type: Input }],
nextButtonText: [{ type: Input }],
nextButtonClass: [{ type: Input }],
nextButtonDisabled: [{ type: Input }],
cancelButtonText: [{ type: Input }],
cancelButtonClass: [{ type: Input }],
cancelButtonDisabled: [{ type: Input }]
};
return RouterModalPreviousNextCancel;
}(RouterModal));
var RouterModalComponent = /** @class */ (function () {
function RouterModalComponent(_element, _activatedRoute, _router, _renderer) {
this._element = _element;
this._activatedRoute = _activatedRoute;
this._router = _router;
this._renderer = _renderer;
this.waiting = false;
this.modalTitle = '';
// this properties are here as inputs in order to have a way to customize text and class of each button
this.okButtonText = ButtonTypes.ok.buttonText;
this.okButtonClass = ButtonTypes.ok.buttonClass;
this.cancelButtonText = ButtonTypes.cancel.buttonText;
this.cancelButtonClass = ButtonTypes.cancel.buttonClass;
this.yesButtonText = ButtonTypes.yes.buttonText;
this.yesButtonClass = ButtonTypes.yes.buttonClass;
this.noButtonText = ButtonTypes.no.buttonText;
this.noButtonClass = ButtonTypes.no.buttonClass;
this.abortButtonText = ButtonTypes.abort.buttonText;
this.abortButtonClass = ButtonTypes.abort.buttonClass;
this.retryButtonText = ButtonTypes.retry.buttonText;
this.retryButtonClass = ButtonTypes.retry.buttonClass;
this.ignoreButtonText = ButtonTypes.ignore.buttonText;
this.ignoreButtonClass = ButtonTypes.ignore.buttonClass;
this.previousButtonText = ButtonTypes.previous.buttonText;
this.previousButtonClass = ButtonTypes.previous.buttonClass;
this.nextButtonText = ButtonTypes.next.buttonText;
this.nextButtonClass = ButtonTypes.next.buttonClass;
// default instance buttons
this.instanceButtons = {
ok: null,
cancel: null,
yes: null,
no: null,
abort: null,
retry: null,
ignore: null,
previous: null,
next: null
};
}
RouterModalComponent.prototype.cancel = function () {
return __awaiter(this, void 0, void 0, function () {
var err_1;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 6, , 7]);
if (!this.componentReference) return [3 /*break*/, 5];
// set waiting
this.waiting = true;
if (!(typeof this.componentReference.cancel === 'function')) return [3 /*break*/, 2];
// do cancel
return [4 /*yield*/, this.componentReference.cancel()];
case 1:
// do cancel
_a.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this._router.navigate(['../'], { relativeTo: this._activatedRoute })];
case 3:
_a.sent();
_a.label = 4;
case 4:
// unset waiting
this.waiting = false;
_a.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
err_1 = _a.sent();
this.waiting = false;
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
});
};
RouterModalComponent.prototype.ok = function () {
return __awaiter(this, void 0, void 0, function () {
var err_2;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 6, , 7]);
if (!this.componentReference) return [3 /*break*/, 5];
// set waiting
this.waiting = true;
if (!(typeof this.componentReference.ok === 'function')) return [3 /*break*/, 2];
// do submit
return [4 /*yield*/, this.componentReference.ok()];
case 1:
// do submit
_a.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this._router.navigate(['../'], { relativeTo: this._activatedRoute })];
case 3:
_a.sent();
_a.label = 4;
case 4:
// unset waiting
this.waiting = false;
_a.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
err_2 = _a.sent();
this.waiting = false;
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
});
};
RouterModalComponent.prototype.abort = function () {
return __awaiter(this, void 0, void 0, function () {
var err_3;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 6, , 7]);
if (!this.componentReference) return [3 /*break*/, 5];
// set waiting
this.waiting = true;
if (!(typeof this.componentReference.abort === 'function')) return [3 /*break*/, 2];
// do submit
return [4 /*yield*/, this.componentReference.abort()];
case 1:
// do submit
_a.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this._router.navigate(['../'], { relativeTo: this._activatedRoute })];
case 3:
_a.sent();
_a.label = 4;
case 4:
// unset waiting
this.waiting = false;
_a.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
err_3 = _a.sent();
this.waiting = false;
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
});
};
RouterModalComponent.prototype.retry = function () {
return __awaiter(this, void 0, void 0, function () {
var err_4;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 6, , 7]);
if (!this.componentReference) return [3 /*break*/, 5];
// set waiting
this.waiting = true;
if (!(typeof this.componentReference.retry === 'function')) return [3 /*break*/, 2];
// do submit
return [4 /*yield*/, this.componentReference.retry()];
case 1:
// do submit
_a.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this._router.navigate(['../'], { relativeTo: this._activatedRoute })];
case 3:
_a.sent();
_a.label = 4;
case 4:
// unset waiting
this.waiting = false;
_a.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
err_4 = _a.sent();
this.waiting = false;
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
});
};
RouterModalComponent.prototype.ignore = function () {
return __awaiter(this, void 0, void 0, function () {
var err_5;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 6, , 7]);
if (!this.componentReference) return [3 /*break*/, 5];
// set waiting
this.waiting = true;
if (!(typeof this.componentReference.ignore === 'function')) return [3 /*break*/, 2];
// do submit
return [4 /*yield*/, this.componentReference.ignore()];
case 1:
// do submit
_a.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this._router.navigate(['../'], { relativeTo: this._activatedRoute })];
case 3:
_a.sent();
_a.label = 4;
case 4:
// unset waiting
this.waiting = false;
_a.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
err_5 = _a.sent();
this.waiting = false;
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
});
};
RouterModalComponent.prototype.previous = function () {
return __awaiter(this, void 0, void 0, function () {
var err_6;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 6, , 7]);
if (!this.componentReference) return [3 /*break*/, 5];
// set waiting
this.waiting = true;
if (!(typeof this.componentReference.previous === 'function')) return [3 /*break*/, 2];
// do submit
return [4 /*yield*/, this.componentReference.previous()];
case 1:
// do submit
_a.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this._router.navigate(['../'], { relativeTo: this._activatedRoute })];
case 3:
_a.sent();
_a.label = 4;
case 4:
// unset waiting
this.waiting = false;
_a.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
err_6 = _a.sent();
this.waiting = false;
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
});
};
RouterModalComponent.prototype.next = function () {
return __awaiter(this, void 0, void 0, function () {
var err_7;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 6, , 7]);
if (!this.componentReference) return [3 /*break*/, 5];
// set waiting
this.waiting = true;
if (!(typeof this.componentReference.next === 'function')) return [3 /*break*/, 2];
// do submit
return [4 /*yield*/, this.componentReference.next()];
case 1:
// do submit
_a.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this._router.navigate(['../'], { relativeTo: this._activatedRoute })];
case 3:
_a.sent();
_a.label = 4;
case 4:
// unset waiting
this.waiting = false;
_a.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
err_7 = _a.sent();
this.waiting = false;
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
});
};
RouterModalComponent.prototype.yes = function () {
return __awaiter(this, void 0, void 0, function () {
var err_8;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 6, , 7]);
if (!this.componentReference) return [3 /*break*/, 5];
// set waiting
this.waiting = true;
if (!(typeof this.componentReference.yes === 'function')) return [3 /*break*/, 2];
// do submit
return [4 /*yield*/, this.componentReference.yes()];
case 1:
// do submit
_a.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this._router.navigate(['../'], { relativeTo: this._activatedRoute })];
case 3:
_a.sent();
_a.label = 4;
case 4:
// unset waiting
this.waiting = false;
_a.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
err_8 = _a.sent();
this.waiting = false;
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
});
};
RouterModalComponent.prototype.no = function () {
return __awaiter(this, void 0, void 0, function () {
var err_9;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 6, , 7]);
if (!this.componentReference) return [3 /*break*/, 5];
// set waiting
this.waiting = true;
if (!(typeof this.componentReference.no === 'function')) return [3 /*break*/, 2];
// do submit
return [4 /*yield*/, this.componentReference.no()];
case 1:
// do submit
_a.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this._router.navigate(['../'], { relativeTo: this._activatedRoute })];
case 3:
_a.sent();
_a.label = 4;
case 4:
// unset waiting
this.waiting = false;
_a.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
err_9 = _a.sent();
this.waiting = false;
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
});
};
RouterModalComponent.prototype.onActivate = function (event) {
var _this = this;
this.componentReference = event;
// get router outlet component
if (this.componentReference) {
if (this.componentReference.buttonChanges) {
// subscribe for any button changes
this.componentButtonChanges = this.componentReference.buttonChanges
.subscribe(function (buttonChange) {
if (buttonChange) {
// assign button changes
Object.assign(_this.instanceButtons, buttonChange);
}
});
}
if (this.componentReference.modalChanges) {
// get modal changes
this.componentModalChanges = this.componentReference.modalChanges.subscribe(function (modalChanges) {
_this.modalInstanceTitle = modalChanges.modalTitle;
if (modalChanges.modalClass) {
_this.modalInstanceClass = modalChanges.modalClass;
}
});
}
// get title
this.modalInstanceTitle = this.componentReference.modalTitle;
// get class
this.modalInstanceClass = this.componentReference.modalClass;
// hold this to validate buttons
var hasAtLeastOneButton_1 = false;
this.instanceButtons = {
ok: null,
cancel: null,
yes: null,
no: null,
abort: null,
retry: null,
ignore: null,
previous: null,
next: null
};
// enumerate button types
Object.keys(ButtonTypes).forEach(function (key) {
// search if component has a method with the same name
if (typeof _this.componentReference[key] === 'function') {
// enable button
_this.instanceButtons[key] = Object.assign({}, ButtonTypes[key]);
hasAtLeastOneButton_1 = true;
var buttonTextProperty = key + "ButtonText";
if (_this.componentReference.hasOwnProperty(buttonTextProperty)) {
_this.instanceButtons[key].buttonText = _this.componentReference[buttonTextProperty];
}
else {
// get property from this component
_this.instanceButtons[key].buttonText = _this[buttonTextProperty];
}
var buttonClassProperty = key + "ButtonClass";
if (_this.componentReference.hasOwnProperty(buttonClassProperty)) {
_this.instanceButtons[key].buttonClass = _this.componentReference[buttonClassProperty];
}
else {
// get property from this component
_this.instanceButtons[key].buttonClass = _this[buttonClassProperty];
}
}
});
if (!hasAtLeastOneButton_1) {
// there are no buttons, so add only ok
this.instanceButtons.ok = Object.assign({}, ButtonTypes.ok);
}
}
var backdropElement = this._element.nativeElement.querySelector('.modal-backdrop');
this._element.nativeElement.querySelector('.bd-modal').classList.remove('d-none');
this._renderer.addClass(document.body, 'overflow-hidden');
this._renderer.addClass(document.body, 'pr-3');
// add large modal default styles
// this operation adds scrolling to modal container
// in cases where modal overflows the height of the container
var modalElement = this._element.nativeElement.querySelector('.modal');
if (modalElement) {
modalElement.style.setProperty('overflow-x', 'hidden');
modalElement.style.setProperty('overflow-y', 'auto');
}
if (backdropElement) {
// remove d-none
backdropElement.classList.remove('d-none');
// add show
backdropElement.classList.add('show');
}
return false;
};
// noinspection JSUnusedLocalSymbols
RouterModalComponent.prototype.onDeactivate = function (event) {
if (this.componentModalChanges) {
this.componentModalChanges.unsubscribe();
this.componentModalChanges = null;
}
if (this.componentButtonChanges) {
this.componentButtonChanges.unsubscribe();
this.componentButtonChanges = null;
}
// restore properties
this.modalInstanceTitle = this.modalTitle;
this.modalInstanceClass = this.modalClass;
this.componentReference = null;
var backdropElement = this._element.nativeElement.querySelector('.modal-backdrop');
this._element.nativeElement.querySelector('.bd-modal').classList.add('d-none');
this._renderer.removeClass(document.body, 'overflow-hidden');
this._renderer.removeClass(document.body, 'pr-3');
if (backdropElement) {
// remove show
backdropElement.classList.remove('show');
// add d-none
backdropElement.classList.add('d-none');
}
return false;
};
RouterModalComponent.decorators = [
{ type: Component, args: [{
// tslint:disable-next-line:component-selector
selector: 'router-modal',
template: "\n <div class=\"bd-modal d-none\">\n <div class=\"modal-backdrop fade d-none\"></div>\n <div class=\"modal\" tabindex=\"-1\" role=\"dialog\" [ngClass]=\"{ 'modal-waiting': waiting }\">\n <div class=\"modal-dialog\" [ngClass]=\"modalInstanceClass\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\" *ngIf=\"modalInstanceTitle\">\n <h5 class=\"modal-title\">{{modalInstanceTitle | translate}}</h5>\n <button *ngIf=\"instanceButtons.cancel\" [disabled]=\"waiting || instanceButtons.cancel.buttonDisabled\" (click)=\"cancel()\"\n type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Cancel\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <router-outlet (activate)=\"onActivate($event)\" (deactivate)=\"onDeactivate($event)\" name=\"modal\"></router-outlet>\n </div>\n <div class=\"modal-footer justify-content-end\">\n <button *ngIf=\"instanceButtons.previous\" [disabled]=\"waiting || instanceButtons.previous.buttonDisabled\" (click)=\"previous()\"\n type=\"button\" [ngClass]=\"instanceButtons.previous.buttonClass\">\n {{instanceButtons.previous.buttonText | translate}}\n </button>\n <button *ngIf=\"instanceButtons.ok\" [disabled]=\"waiting || instanceButtons.ok.buttonDisabled\" (click)=\"ok()\"\n type=\"button\" [ngClass]=\"instanceButtons.ok.buttonClass\">\n {{instanceButtons.ok.buttonText | translate}}\n </button>\n <button *ngIf=\"instanceButtons.yes\" [disabled]=\"waiting || instanceButtons.yes.buttonDisabled\"\n (click)=\"yes()\" type=\"button\" [ngClass]=\"instanceBut