Repository URL to install this package:
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ApplicationSelectorComboBoxComponent } from './../../../../components/UI/selectors/application-selector-combobox-component';
import { DomainSelectorComboBoxComponent } from './../../../../components/UI/selectors/domain-selector-combobox-component';
import { Component, ViewChild, EventEmitter, Output } from '@angular/core';
import { NGXLogger } from 'web-console-core';
/** @type {?} */
var LOG_TAG = '[WebContentUpdateDialogComponent]';
/**
* @record
*/
export function UpdateDialogResult() { }
if (false) {
/** @type {?} */
UpdateDialogResult.prototype.domain;
/** @type {?} */
UpdateDialogResult.prototype.application;
/** @type {?} */
UpdateDialogResult.prototype.context;
/** @type {?} */
UpdateDialogResult.prototype.bundleVersion;
/** @type {?} */
UpdateDialogResult.prototype.bundleName;
}
var WebContentUpdateDialogComponent = /** @class */ (function () {
function WebContentUpdateDialogComponent(logger) {
this.logger = logger;
this.contextEditingWarningDisplay = false;
this.confirm = new EventEmitter();
this.cancel = new EventEmitter();
}
/**
* @return {?}
*/
WebContentUpdateDialogComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.logger.debug(LOG_TAG, 'Initializing...');
};
/**
* @param {?} bundleName
* @param {?} bundleVersion
* @param {?} domain
* @param {?} application
* @param {?} context
* @return {?}
*/
WebContentUpdateDialogComponent.prototype.show = /**
* @param {?} bundleName
* @param {?} bundleVersion
* @param {?} domain
* @param {?} application
* @param {?} context
* @return {?}
*/
function (bundleName, bundleVersion, domain, application, context) {
this.logger.debug(LOG_TAG, 'show called for: ', bundleName, bundleVersion, domain, application, context);
this.prepare(bundleName, bundleVersion, domain, application, context);
this.display = true;
this.dirty = false;
};
/**
* @return {?}
*/
WebContentUpdateDialogComponent.prototype.hide = /**
* @return {?}
*/
function () {
this.display = false;
};
/**
* @private
* @param {?} bundleName
* @param {?} bundleVersion
* @param {?} domain
* @param {?} application
* @param {?} context
* @return {?}
*/
WebContentUpdateDialogComponent.prototype.prepare = /**
* @private
* @param {?} bundleName
* @param {?} bundleVersion
* @param {?} domain
* @param {?} application
* @param {?} context
* @return {?}
*/
function (bundleName, bundleVersion, domain, application, context) {
this.logger.debug(LOG_TAG, 'prepare called for: ', bundleName, bundleVersion, domain, application, context);
// fill the fields
this.domain = domain;
this.application = application;
this.context = context ? '/' + context : undefined;
this.bundleName = bundleName;
this.bundleVersion = bundleVersion;
if (domain) {
this.domainSelector.selectedDomainName = domain;
}
else {
this.domainSelector.selectedDomain = null;
}
if (application) {
this.applicationSelector.selectedApplicationName = application;
}
else {
this.applicationSelector.selectedApplication = null;
}
};
/**
* @return {?}
*/
WebContentUpdateDialogComponent.prototype.onCancel = /**
* @return {?}
*/
function () {
this.display = false;
this.cancel.emit();
};
/**
* @return {?}
*/
WebContentUpdateDialogComponent.prototype.onConfirm = /**
* @return {?}
*/
function () {
this.display = false;
this.confirm.emit({
application: this.selectedApplication.name,
bundleName: this.bundleName,
bundleVersion: this.bundleVersion,
domain: this.selectedDomain.name,
context: this.context
});
};
/**
* @return {?}
*/
WebContentUpdateDialogComponent.prototype.onRemove = /**
* @return {?}
*/
function () {
this.display = false;
this.confirm.emit({
application: undefined,
bundleName: this.bundleName,
bundleVersion: this.bundleVersion,
domain: undefined,
context: undefined
});
};
/**
* @return {?}
*/
WebContentUpdateDialogComponent.prototype.onContextChange = /**
* @return {?}
*/
function () {
this.dirty = true;
};
WebContentUpdateDialogComponent.decorators = [
{ type: Component, args: [{
selector: 'wa-webcontent-update-dialog',
template: "<p-dialog\n #updateDialog\n [(visible)]=\"display\"\n [modal]=\"true\"\n [responsive]=\"true\"\n [style]=\"{ width: '450px', minWidth: '400px' }\"\n [minY]=\"70\"\n [baseZIndex]=\"10000\"\n>\n <p-header> Update Web Content </p-header>\n\n <label class=\"switch-control-label\"> \n Domain\n</label>\n <wc-domain-selector-combobox #domainSelector [(ngModel)]=\"selectedDomain\" [disabled]=\"domain?true:null\"></wc-domain-selector-combobox>\n\n <label class=\"switch-control-label\"> \n Application\n </label>\n <wc-application-selector-combobox #applicationSelector [domain]=\"(selectedDomain ? selectedDomain.name : null)\" [(ngModel)]=\"selectedApplication\" [disabled]=\"application?true:null\"></wc-application-selector-combobox>\n\n<kendo-textbox-container\nfloatingLabel=\"Context\"\nstyle=\"width: 100%;\"\n>\n<input kendoTextBox [(ngModel)]=\"context\" required (keydown)=\"onContextChange()\"/>\n</kendo-textbox-container>\n<label class=\"warning-label\" *ngIf=\"contextEditingWarningDisplay\">Invalid Context</label>\n\n<p-footer>\n <kendo-buttongroup look=\"flat\">\n <button kendoButton [toggleable]=\"false\" (click)=\"onCancel();\">Cancel</button>\n <button kendoButton [toggleable]=\"false\" [primary]=\"true\" (click)=\"onConfirm();\">Update</button>\n <button kendoButton [disabled]=\"(context&&!dirty)?false:true\" [toggleable]=\"false\" [primary]=\"true\" (click)=\"onRemove();\">Remove</button>\n </kendo-buttongroup>\n</p-footer>\n\n</p-dialog>\n",
styles: [""]
}] }
];
/** @nocollapse */
WebContentUpdateDialogComponent.ctorParameters = function () { return [
{ type: NGXLogger }
]; };
WebContentUpdateDialogComponent.propDecorators = {
confirm: [{ type: Output }],
cancel: [{ type: Output }],
domainSelector: [{ type: ViewChild, args: ['domainSelector',] }],
applicationSelector: [{ type: ViewChild, args: ['applicationSelector',] }]
};
return WebContentUpdateDialogComponent;
}());
export { WebContentUpdateDialogComponent };
if (false) {
/** @type {?} */
WebContentUpdateDialogComponent.prototype.bundleName;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.bundleVersion;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.display;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.domain;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.application;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.context;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.dirty;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.selectedDomain;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.selectedApplication;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.contextEditingWarningDisplay;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.confirm;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.cancel;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.domainSelector;
/** @type {?} */
WebContentUpdateDialogComponent.prototype.applicationSelector;
/**
* @type {?}
* @private
*/
WebContentUpdateDialogComponent.prototype.logger;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViY29udGVudC11cGRhdGUtZGlhbG9nLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbW90aWYtd2ViLWFkbWluLWNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VjdGlvbnMvV2ViQ29udGVudC9jb21wb25lbnRzL2RpYWxvZy93ZWJjb250ZW50LXVwZGF0ZS1kaWFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLCtFQUErRSxDQUFDO0FBQ3JJLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQzNILE9BQU8sRUFBRSxTQUFTLEVBQWlCLFNBQVMsRUFBeUIsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0lBR3ZDLE9BQU8sR0FBRyxtQ0FBbUM7Ozs7QUFFbkQsd0NBTUM7OztJQUxHLG9DQUFlOztJQUNmLHlDQUFvQjs7SUFDcEIscUNBQWdCOztJQUNoQiwyQ0FBc0I7O0lBQ3RCLHdDQUFtQjs7QUFHdkI7SUEwQkkseUNBQW9CLE1BQWlCO1FBQWpCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFSckMsaUNBQTRCLEdBQUcsS0FBSyxDQUFDO1FBRTNCLFlBQU8sR0FBcUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvRCxXQUFNLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7SUFLbEIsQ0FBQzs7OztJQUV6QyxrREFBUTs7O0lBQVI7UUFDSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDOzs7Ozs7Ozs7SUFFTSw4Q0FBSTs7Ozs7Ozs7SUFBWCxVQUFZLFVBQWtCLEVBQUUsYUFBcUIsRUFBRSxNQUFjLEVBQUUsV0FBbUIsRUFBRSxPQUFlO1FBQ3ZHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8s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QkFqQlEsU0FBUzs7OzBCQWlDYixNQUFNO3lCQUNOLE1BQU07aUNBRU4sU0FBUyxTQUFDLGdCQUFnQjtzQ0FDMUIsU0FBUyxTQUFDLHFCQUFxQjs7SUFxRXBDLHNDQUFDO0NBQUEsQUE3RkQsSUE2RkM7U0F4RlksK0JBQStCOzs7SUFFeEMscURBQW1COztJQUNuQix3REFBc0I7O0lBQ3RCLGtEQUFpQjs7SUFDakIsaURBQWU7O0lBQ2Ysc0RBQW9COztJQUNwQixrREFBZ0I7O0lBQ2hCLGdEQUFlOztJQUVmLHlEQUFvQjs7SUFDcEIsOERBQXlCOztJQUV6Qix1RUFBcUM7O0lBRXJDLGtEQUF5RTs7SUFDekUsaURBQTBEOztJQUUxRCx5REFBNEU7O0lBQzVFLDhEQUEyRjs7Ozs7SUFFL0UsaURBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25TZWxlY3RvckNvbWJvQm94Q29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL1VJL3NlbGVjdG9ycy9hcHBsaWNhdGlvbi1zZWxlY3Rvci1jb21ib2JveC1jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9tYWluU2VsZWN0b3JDb21ib0JveENvbXBvbmVudCB9IGZyb20gJy4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9VSS9zZWxlY3RvcnMvZG9tYWluLXNlbGVjdG9yLWNvbWJvYm94LWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdYTG9nZ2VyIH0gZnJvbSAnd2ViLWNvbnNvbGUtY29yZSc7XG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvY29tcGlsZXJfZmFjYWRlX2ludGVyZmFjZSc7XG5cbmNvbnN0IExPR19UQUcgPSAnW1dlYkNvbnRlbnRVcGRhdGVEaWFsb2dDb21wb25lbnRdJztcblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVEaWFsb2dSZXN1bHQge1xuICAgIGRvbWFpbjogc3RyaW5nO1xuICAgIGFwcGxpY2F0aW9uOiBzdHJpbmc7XG4gICAgY29udGV4dDogc3RyaW5nO1xuICAgIGJ1bmRsZVZlcnNpb246IHN0cmluZztcbiAgICBidW5kbGVOYW1lOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnd2Etd2ViY29udGVudC11cGRhdGUtZGlhbG9nJyxcbiAgICBzdHlsZVVybHM6IFsnLi93ZWJjb250ZW50LXVwZGF0ZS1kaWFsb2cuc2NzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnLi93ZWJjb250ZW50LXVwZGF0ZS1kaWFsb2cuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV2ViQ29udGVudFVwZGF0ZURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBidW5kbGVOYW1lOiBzdHJpbmc7XG4gICAgYnVuZGxlVmVyc2lvbjogc3RyaW5nO1xuICAgIGRpc3BsYXk6IGJvb2xlYW47XG4gICAgZG9tYWluOiBzdHJpbmc7XG4gICAgYXBwbGljYXRpb246IHN0cmluZztcbiAgICBjb250ZXh0OiBzdHJpbmc7XG4gICAgZGlydHk6IGJvb2xlYW47XG5cbiAgICBzZWxlY3RlZERvbWFpbjogYW55O1xuICAgIHNlbGVjdGVkQXBwbGljYXRpb246IGFueTtcblxuICAgIGNvbnRleHRFZGl0aW5nV2FybmluZ0Rpc3BsYXkgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBjb25maXJtOiBFdmVudEVtaXR0ZXI8VXBkYXRlRGlhbG9nUmVzdWx0PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgY2FuY2VsOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKCdkb21haW5TZWxlY3RvcicpIGRvbWFpblNlbGVjdG9yOkRvbWFpblNlbGVjdG9yQ29tYm9Cb3hDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnYXBwbGljYXRpb25TZWxlY3RvcicpIGFwcGxpY2F0aW9uU2VsZWN0b3I6QXBwbGljYXRpb25TZWxlY3RvckNvbWJvQm94Q29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2dnZXI6IE5HWExvZ2dlcikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhMT0dfVEFHLCAnSW5pdGlhbGl6aW5nLi4uJyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3coYnVuZGxlTmFtZTogc3RyaW5nLCBidW5kbGVWZXJzaW9uOiBzdHJpbmcsIGRvbWFpbjogc3RyaW5nLCBhcHBsaWNhdGlvbjogc3RyaW5nLCBjb250ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoTE9HX1RBRywgJ3Nob3cgY2FsbGVkIGZvcjogJyxidW5kbGVOYW1lLCBidW5kbGVWZXJzaW9uLCBkb21haW4sIGFwcGxpY2F0aW9uLCBjb250ZXh0KTtcbiAgICAgICAgdGhpcy5wcmVwYXJlKGJ1bmRsZU5hbWUsIGJ1bmRsZVZlcnNpb24sIGRvbWFpbiwgYXBwbGljYXRpb24sIGNvbnRleHQpO1xuICAgICAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xuICAgICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGhpZGUoKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJlcGFyZShidW5kbGVOYW1lOiBzdHJpbmcsIGJ1bmRsZVZlcnNpb246IHN0cmluZywgZG9tYWluOiBzdHJpbmcsIGFwcGxpY2F0aW9uOiBzdHJpbmcsIGNvbnRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhMT0dfVEFHLCAncHJlcGFyZSBjYWxsZWQgZm9yOiAnLCBidW5kbGVOYW1lLCBidW5kbGVWZXJzaW9uLCBkb21haW4sIGFwcGxpY2F0aW9uLCBjb250ZXh0KTtcbiAgICAgICAgLy8gZmlsbCB0aGUgZmllbGRzXG4gICAgICAgIHRoaXMuZG9tYWluID0gZG9tYWluO1xuICAgICAgICB0aGlzLmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb247XG4gICAgICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQgPyAnLycgKyBjb250ZXh0IDogdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmJ1bmRsZU5hbWUgPSBidW5kbGVOYW1lO1xuICAgICAgICB0aGlzLmJ1bmRsZVZlcnNpb24gPSBidW5kbGVWZXJzaW9uO1xuICAgICAgICBpZiAoZG9tYWluKXtcbiAgICAgICAgICAgIHRoaXMuZG9tYWluU2VsZWN0b3Iuc2VsZWN0ZWREb21haW5OYW1lID0gZG9tYWluO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kb21haW5TZWxlY3Rvci5zZWxlY3RlZERvbWFpbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFwcGxpY2F0aW9uKXtcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25TZWxlY3Rvci5zZWxlY3RlZEFwcGxpY2F0aW9uTmFtZSA9IGFwcGxpY2F0aW9uO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvblNlbGVjdG9yLnNlbGVjdGVkQXBwbGljYXRpb24gPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzcGxheSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25Db25maXJtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb25maXJtLmVtaXQoe1xuICAgICAgICAgICAgYXBwbGljYXRpb24gOiB0aGlzLnNlbGVjdGVkQXBwbGljYXRpb24ubmFtZSxcbiAgICAgICAgICAgIGJ1bmRsZU5hbWU6IHRoaXMuYnVuZGxlTmFtZSxcbiAgICAgICAgICAgIGJ1bmRsZVZlcnNpb24gOiB0aGlzLmJ1bmRsZVZlcnNpb24sXG4gICAgICAgICAgICBkb21haW4gOiB0aGlzLnNlbGVjdGVkRG9tYWluLm5hbWUsXG4gICAgICAgICAgICBjb250ZXh0IDogdGhpcy5jb250ZXh0XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb25maXJtLmVtaXQoe1xuICAgICAgICAgICAgYXBwbGljYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBidW5kbGVOYW1lOiB0aGlzLmJ1bmRsZU5hbWUsXG4gICAgICAgICAgICBidW5kbGVWZXJzaW9uIDogdGhpcy5idW5kbGVWZXJzaW9uLFxuICAgICAgICAgICAgZG9tYWluIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY29udGV4dCA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xuICAgIH1cbn0iXX0=