@c8y/ngx-components 1023.14.186 → 1023.14.192

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../ecosystem/activity-log/activity-log.component.ts","../../ecosystem/application-properties/application-properties.component.ts","../../ecosystem/application-properties/application-properties.guard.ts","../../ecosystem/applications/add-external-applicaiton/add-external-application.component.ts","../../ecosystem/applications/add-web-application/add-web-application.component.ts","../../ecosystem/applications/application-list/application-list.component.ts","../../ecosystem/applications/install-from-package/install-from-package.component.ts","../../ecosystem/ecosystem-tabs.factory.ts","../../ecosystem/packages/package-changelog-tab/package-changelog-tab.component.ts","../../ecosystem/microservices/microservice-list.component.ts","../../ecosystem/microservices/add-microservice.component.ts","../../ecosystem/packages/package-list/packages-list.component.ts","../../ecosystem/packages/package-details/package-details.component.ts","../../ecosystem/packages/deploy-application/deploy-application.component.ts","../../ecosystem/packages/add-package.component.ts","../../ecosystem/features/feature-list.component.ts","../../ecosystem/packages/package-versions/packages-versions.component.ts","../../ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.ts","../../ecosystem/packages/package-versions/package-contents/contents-apps/contents-apps.component.ts","../../ecosystem/packages/package-versions/package-contents/packages-contents.component.ts","../../ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.ts","../../ecosystem/application-properties/subscription-modal/subscription-modal.component.ts","../../ecosystem/application-properties/update-application-modal/update-application-modal.component.ts","../../ecosystem/ecosystem.module.ts","../../ecosystem/packages/package.guard.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../ecosystem/activity-log/activity-log.component.ts","../../ecosystem/application-properties/application-properties.component.ts","../../ecosystem/application-properties/application-properties.guard.ts","../../ecosystem/applications/add-external-applicaiton/add-external-application.component.ts","../../ecosystem/applications/add-web-application/add-web-application.component.ts","../../ecosystem/applications/application-list/application-list.component.ts","../../ecosystem/applications/install-from-package/install-from-package.component.ts","../../ecosystem/ecosystem-tabs.factory.ts","../../ecosystem/packages/package-changelog-tab/package-changelog-tab.component.ts","../../ecosystem/microservices/microservice-list.component.ts","../../ecosystem/microservices/add-microservice.component.ts","../../ecosystem/packages/package-list/packages-list.component.ts","../../ecosystem/packages/package-details/package-details.component.ts","../../ecosystem/packages/deploy-application/deploy-application.component.ts","../../ecosystem/packages/add-package.component.ts","../../ecosystem/features/feature-list.component.ts","../../ecosystem/packages/package-versions/packages-versions.component.ts","../../ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.ts","../../ecosystem/packages/package-versions/package-contents/contents-apps/contents-apps.component.ts","../../ecosystem/packages/package-versions/package-contents/packages-contents.component.ts","../../ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.ts","../../ecosystem/application-properties/subscription-modal/subscription-modal.component.ts","../../ecosystem/application-properties/update-application-modal/update-application-modal.component.ts","../../ecosystem/ecosystem.module.ts","../../ecosystem/packages/package.guard.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import * as i2 from '@c8y/ngx-components';
4
4
  import { ListGroupComponent, ListItemTimelineComponent, ListItemComponent, ListItemIconComponent, ListItemBodyComponent, IconDirective, ListItemActionComponent, FormGroupComponent, LoadingComponent, C8yTranslatePipe, DatePipe, Status, PluginsService, PluginsExportScopes, ModalComponent, C8yTranslateDirective, ListItemFooterComponent, ListItemCollapseComponent, OperationResultComponent, Permissions, ViewContext, TitleComponent, BreadcrumbComponent, BreadcrumbItemComponent, AppIconComponent, TextareaAutoresizeDirective, PropertiesListComponent, RequiredInputPlaceholderDirective, MessagesComponent, MessageDirective, HumanizeAppNamePipe, WizardHeaderComponent, WizardBodyComponent, WizardFooterComponent, IfAllowedDirective, ActionBarItemComponent, ListDisplaySwitchComponent, HelpComponent, EmptyStateComponent, TypeaheadComponent, ForOfDirective, HighlightComponent, C8yStepper, PackageType, MarkdownToHtmlPipe, CoreModule, FormsModule as FormsModule$1, hookTab, hookRoute, hookWizard } from '@c8y/ngx-components';
5
5
  import * as i1 from '@c8y/ngx-components/ecosystem/shared';
6
6
  import { UploadArchiveComponent, packageProperties, PRODUCT_EXPERIENCE_ECOSYSTEM, AddApplicationComponent, defaultPackageAvailabilities, EcosystemWizards, ListFiltersComponent, ApplicationCardComponent, ApplicationPropertiesFormComponent, ERROR_TYPE, APP_STATE, PackageVersionSelectComponent, PACKAGE_TYPE_LABELS, TranslatePackageLabelPipe, defaultPackageTypes, defaultPackageContents, ArchivedFilterComponent, PackageChangelogComponent, SharedEcosystemModule } from '@c8y/ngx-components/ecosystem/shared';
7
- import { NgClass, NgIf, AsyncPipe, NgSwitch, NgSwitchCase, NgFor, NgStyle } from '@angular/common';
7
+ import { NgClass, NgIf, AsyncPipe, NgFor, NgStyle } from '@angular/common';
8
8
  import * as i3 from '@angular/forms';
9
9
  import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
10
10
  import * as i1$2 from '@angular/router';
@@ -644,13 +644,12 @@ class ApplicationPropertiesComponent {
644
644
  }
645
645
  }
646
646
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ApplicationPropertiesComponent, deps: [{ token: i1$2.ActivatedRoute }, { token: i1.EcosystemService }, { token: i1$2.Router }, { token: i3.FormBuilder }, { token: i4.ApplicationService }, { token: i2.AlertService }, { token: i4.InventoryService }, { token: i2.Permissions }, { token: i2.ModalService }, { token: i6.TranslateService }, { token: i1$1.BsModalService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
647
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: ApplicationPropertiesComponent, isStandalone: true, selector: "c8y-application-properties", ngImport: i0, template: "<c8y-title>{{ application | humanizeAppName | async }}</c8y-title>\n\n<c8y-breadcrumb *ngIf=\"!isMicroservice\">\n <c8y-breadcrumb-item\n [icon]=\"'c8y-atom'\"\n [label]=\"'Ecosystem' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-modules'\"\n [label]=\"'Applications' | translate\"\n [path]=\"'ecosystem/application/applications'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"breadcrumbConfig?.icon\"\n *ngIf=\"isFeature\"\n [label]=\"breadcrumbConfig?.label\"\n [path]=\"breadcrumbConfig?.path\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"application | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Properties' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-breadcrumb *ngIf=\"isMicroservice\">\n <c8y-breadcrumb-item\n [icon]=\"'c8y-atom'\"\n [label]=\"'Ecosystem' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"breadcrumbConfig?.icon\"\n [label]=\"breadcrumbConfig?.label\"\n [path]=\"breadcrumbConfig?.path\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"application | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Properties' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"row\">\n <div [ngClass]=\"{ 'col-md-8': !isActivityLogSupported, 'col-md-12': isActivityLogSupported }\">\n <div\n class=\"card content-fullpage\"\n *ngIf=\"application\"\n [ngClass]=\"{ 'd-grid grid__col--7-5--md': isActivityLogSupported }\"\n >\n <form\n class=\"d-flex d-col content-fullpage\"\n (ngSubmit)=\"formGroup.valid && save(formGroup.value)\"\n [formGroup]=\"formGroup\"\n novalidate\n >\n <div\n class=\"d-contents\"\n *ngIf=\"!isLoading\"\n >\n <div class=\"card-block separator-bottom large-padding flex-no-shrink\">\n <div class=\"d-flex-md a-i-start text-center text-left-md\">\n <c8y-app-icon\n class=\"icon-48\"\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"application\"\n [contextPath]=\"application.contextPath\"\n [name]=\"application.name\"\n ></c8y-app-icon>\n <i\n class=\"icon-48\"\n c8yIcon=\"big-parcel\"\n *ngIf=\"isPackage\"\n ></i>\n <i\n class=\"icon-48\"\n c8yIcon=\"tab\"\n *ngIf=\"isFeature\"\n ></i>\n <i\n class=\"icon-48\"\n c8yIcon=\"microchip\"\n *ngIf=\"isMicroservice\"\n ></i>\n <i\n class=\"icon-48\"\n c8yIcon=\"globe1\"\n *ngIf=\"isExternal\"\n ></i>\n\n <div class=\"p-t-md-16 p-l-md-16 p-r-md-32 flex-grow\">\n <p class=\"h4 text-medium m-b-8\">{{ application | humanizeAppName | async }}</p>\n <p *ngIf=\"!isOwner\">\n <em class=\"text-muted\">\n {{\n formGroup?.controls?.description?.value || (noDescriptionLabel | translate)\n }}\n </em>\n </p>\n <div\n class=\"form-group m-b-0\"\n *ngIf=\"isOwner\"\n >\n <label\n class=\"editable\"\n [ngClass]=\"{ updated: formGroup?.controls?.description?.dirty }\"\n >\n <textarea\n class=\"form-control no-resize\"\n placeholder=\"{{ noDescriptionLabel | translate }}\"\n name=\"description\"\n c8y-textarea-autoresize\n formControlName=\"description\"\n ></textarea>\n </label>\n </div>\n </div>\n <div class=\"text-right-md m-t-4\">\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n <div\n class=\"fit-w m-t-2\"\n *ngIf=\"application.manifest?.version\"\n data-cy=\"application-detail--version\"\n >\n <label\n class=\"text-label-small\"\n translate\n >\n Version:\n </label>\n <small class=\"p-l-4 text-bold\">{{ application.manifest?.version }}</small>\n </div>\n <div\n class=\"fit-w m-t-2\"\n *ngIf=\"!isUnpacked\"\n >\n <label\n class=\"text-label-small\"\n translate\n >\n Creation time:\n </label>\n <small class=\"p-l-4 text-bold\">\n {{ (binaryMo?.creationTime | c8yDate) || '---' }}\n </small>\n </div>\n <div class=\"m-t-8\">\n <button\n class=\"btn btn-default btn-sm\"\n [attr.aria-label]=\"\n 'There\\'s a newer version available, click to update' | translate\n \"\n tooltip=\"{{\n 'There\\'s a newer version available, click to update' | translate\n }}\"\n placement=\"top\"\n type=\"button\"\n *ngIf=\"isUpdateAvailable\"\n (click)=\"updateToLatestVersion()\"\n [delay]=\"300\"\n >\n <i [c8yIcon]=\"'installing-updates'\"></i>\n {{ 'Update available' | translate }}\n </button>\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Open' | translate }}\"\n type=\"button\"\n (click)=\"openApp(application)\"\n [disabled]=\"disableOpenInBrowser\"\n *ngIf=\"canOpenInBrowser\"\n >\n <i [c8yIcon]=\"'external-link'\"></i>\n {{ 'Open' | translate }}\n </button>\n <div *ngIf=\"canOpenInBrowser && disableOpenInBrowser\">\n <small\n class=\"text-muted\"\n translate\n >\n The application is overwritten by a custom application sharing the same path\n </small>\n </div>\n <span *ngIf=\"isCustomMicroservice\">\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Subscribe' | translate }}\"\n type=\"button\"\n (click)=\"subscribe()\"\n *ngIf=\"!isSubscribed\"\n >\n <i [c8yIcon]=\"'check-circle-o'\"></i>\n {{ 'Subscribe' | translate }}\n </button>\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Unsubscribe' | translate }}\"\n type=\"button\"\n (click)=\"unsubscribe()\"\n *ngIf=\"isSubscribed\"\n >\n <i [c8yIcon]=\"'minus-circle'\"></i>\n {{ 'Unsubscribe' | translate }}\n </button>\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll bg-level-0 flex-grow\">\n <div class=\"card-block large-padding\">\n <div\n class=\"row p-16\"\n *ngIf=\"isPackage\"\n >\n <c8y-properties-list\n icon=\"info\"\n [title]=\"'Package details' | translate\"\n [data]=\"application.manifest\"\n [properties]=\"packageProperties\"\n [emptyLabel]=\"'---'\"\n ></c8y-properties-list>\n </div>\n <div\n class=\"row p-16\"\n *ngIf=\"sourcePackage\"\n >\n <c8y-properties-list\n icon=\"info\"\n [title]=\"'Source package information' | translate\"\n [data]=\"sourcePackage.manifest\"\n [properties]=\"packageProperties\"\n [emptyLabel]=\"'---'\"\n ></c8y-properties-list>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-5\">\n <c8y-form-group>\n <label for=\"appId\">ID</label>\n <input\n class=\"form-control\"\n id=\"appId\"\n name=\"id\"\n type=\"text\"\n autocomplete=\"off\"\n [readonly]=\"true\"\n formControlName=\"id\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-7\">\n <c8y-form-group>\n <label>{{ 'Name' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. My application' | translate }}\"\n name=\"name\"\n type=\"text\"\n required\n [readonly]=\"!isOwner\"\n formControlName=\"name\"\n />\n </c8y-form-group>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-sm-5\">\n <c8y-form-group>\n <label>{{ 'Application key' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application-key' | translate }}\"\n name=\"key\"\n type=\"text\"\n required\n [readonly]=\"application.id || !isOwner\"\n formControlName=\"key\"\n />\n </c8y-form-group>\n </div>\n\n <div class=\"col-sm-7\" data-cy=\"application-detail--type\">\n <c8y-form-group>\n <label>{{ 'Type' | translate }}</label>\n <div>\n <div *ngIf=\"application.id\">\n <p class=\"form-control-static\">\n <i [c8yIcon]=\"iconMap[application.type]\"></i>\n <span>\n {{ application.type | translate }}\n </span>\n </p>\n </div>\n </div>\n </c8y-form-group>\n </div>\n </div>\n\n <div [ngSwitch]=\"application.type\">\n <div *ngSwitchCase=\"'HOSTED'\">\n <c8y-form-group>\n <label>{{ 'Path' | translate }}</label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/apps/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application`used in URL`' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n [readOnly]=\"application.id || !isOwner\"\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n </div>\n\n <div *ngSwitchCase=\"'MICROSERVICE'\">\n <c8y-form-group>\n <label>{{ 'Path' | translate }}</label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/service/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-microservice`used in URL`' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n [readOnly]=\"application.id || !isOwner\"\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n <div class=\"row\">\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n *ngIf=\"application.manifest.version\"\n data-cy=\"application-detail--version\"\n >\n <label>{{ 'Version' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.version }}\n </p>\n </div>\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n *ngIf=\"application.manifest.isolation\"\n data-cy=\"application-detail--isolation\"\n >\n <label>{{ 'Isolation' | translate }}</label>\n <p class=\"form-control-static\">\n <span *ngIf=\"singleTenant\">\n <i\n class=\"c8y-icon-duocolor h4\"\n [c8yIcon]=\"'c8y-enterprise'\"\n ></i>\n {{ 'Single tenant' | translate }}\n </span>\n <span *ngIf=\"!singleTenant\">\n <i\n class=\"c8y-icon-duocolor icon-32\"\n [c8yIcon]=\"'c8y-sub-tenants'\"\n ></i>\n {{ 'Multi tenant' | translate }}\n </span>\n </p>\n </div>\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n *ngIf=\"application.manifest.isolation\"\n data-cy=\"application-detail--billing-mode\"\n >\n <label>{{ 'Billing mode' | translate }}</label>\n <p class=\"form-control-static\">\n <span\n [tooltip]=\"'Resources usage assigned to: Owner' | translate\"\n *ngIf=\"subscription\"\n >\n {{ 'Subscription' | translate }}\n </span>\n <span\n [tooltip]=\"'Resources usage assigned to: Subscriber | translate'\"\n *ngIf=\"!subscription && singleTenant\"\n >\n {{ 'Resources' | translate }}\n </span>\n <span\n [tooltip]=\"'Resources usage assigned to: Owner' | translate\"\n *ngIf=\"!subscription && !singleTenant\"\n >\n {{ 'Resources' | translate }}\n </span>\n </p>\n </div>\n </div>\n\n <div\n class=\"legend form-block m-t-40\"\n *ngIf=\"application.manifest.provider\"\n >\n {{ 'Provider' | translate }}\n </div>\n <div\n class=\"list-inline\"\n *ngIf=\"application.manifest.provider\"\n data-cy=\"application-detail--provider\"\n >\n <div *ngIf=\"application.manifest.provider.name\">\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Name' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.name }}\n </p>\n </div>\n </div>\n <div *ngIf=\"application.manifest.provider.domain\">\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Domain' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.domain }}\n </p>\n </div>\n </div>\n <div *ngIf=\"application.manifest.provider.support\">\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Support' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.support }}\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'EXTERNAL'\">\n <c8y-form-group>\n <label>{{ 'External URL' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} http://www.example.com/\"\n name=\"externalUrl\"\n type=\"url\"\n required\n [pattern]=\"'^(?!javascript:).+'\"\n [readOnly]=\"!isOwner\"\n formControlName=\"externalUrl\"\n />\n <c8y-messages>\n <c8y-message\n [name]=\"'pattern'\"\n [text]=\"'Valid URL required.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div *ngIf=\"isOwner && !isCustomMicroservice\">\n <label>{{ 'Select icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </div>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"isCustomMicroservice\">\n <div\n class=\"d-contents\"\n *ngIf=\"!isLoading\"\n >\n <c8y-upload-archive\n [(application)]=\"application\"\n (refresh)=\"onNewArchive()\"\n ></c8y-upload-archive>\n </div>\n </ng-container>\n <div\n class=\"card-footer separator\"\n *ngIf=\"application && !!isOwner && hasAdminPermissions\"\n >\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-danger\"\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n (click)=\"delete()\"\n *ngIf=\"canDelete\"\n >\n {{ 'Delete' | translate }}\n </button>\n <button\n class=\"btn btn-primary btn-form\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n [disabled]=\"!application.type || formGroup.invalid || formGroup.pristine\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </form>\n\n <div\n class=\"content-fullpage d-flex d-col bg-level-1\"\n *ngIf=\"isActivityLogSupported\"\n >\n <div class=\"card-header separator\">\n <div\n class=\"card-title\"\n translate\n >\n Activity log\n </div>\n <div class=\"m-l-auto\">\n <button\n class=\"btn btn-link btn-sm\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"load()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': isLoading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n </div>\n </div>\n <div\n class=\"p-16 text-center\"\n *ngIf=\"isLoading\"\n >\n <c8y-loading></c8y-loading>\n </div>\n <c8y-activity-log\n class=\"d-contents\"\n *ngIf=\"!isLoading\"\n [hasAdminPermissions]=\"hasAdminPermissions\"\n [application]=\"application\"\n ></c8y-activity-log>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: TextareaAutoresizeDirective, selector: "[c8y-textarea-autoresize]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: PropertiesListComponent, selector: "c8y-properties-list", inputs: ["properties", "title", "icon", "data", "groups", "noParse", "emptyLabel"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: IconSelectorWrapperComponent, selector: "c8y-icon-selector-wrapper", inputs: ["canRemoveIcon", "selectedIcon", "iconSize"], outputs: ["onSelect"] }, { kind: "component", type: UploadArchiveComponent, selector: "c8y-upload-archive", inputs: ["application", "uploadNewVersion", "preUploadCallback"], outputs: ["applicationChange", "refresh"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "component", type: ActivityLogComponent, selector: "c8y-activity-log", inputs: ["application", "hasAdminPermissions"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: HumanizeAppNamePipe, name: "humanizeAppName" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }] }); }
647
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: ApplicationPropertiesComponent, isStandalone: true, selector: "c8y-application-properties", ngImport: i0, template: "<c8y-title>{{ application | humanizeAppName | async }}</c8y-title>\n\n@if (!isMicroservice) {\n <c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-atom'\"\n [label]=\"'Ecosystem' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-modules'\"\n [label]=\"'Applications' | translate\"\n [path]=\"'ecosystem/application/applications'\"\n ></c8y-breadcrumb-item>\n @if (isFeature) {\n <c8y-breadcrumb-item\n [icon]=\"breadcrumbConfig?.icon\"\n [label]=\"breadcrumbConfig?.label\"\n [path]=\"breadcrumbConfig?.path\"\n ></c8y-breadcrumb-item>\n }\n <c8y-breadcrumb-item [label]=\"application | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Properties' | translate\"></c8y-breadcrumb-item>\n </c8y-breadcrumb>\n}\n\n@if (isMicroservice) {\n <c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-atom'\"\n [label]=\"'Ecosystem' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"breadcrumbConfig?.icon\"\n [label]=\"breadcrumbConfig?.label\"\n [path]=\"breadcrumbConfig?.path\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"application | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Properties' | translate\"></c8y-breadcrumb-item>\n </c8y-breadcrumb>\n}\n\n<div class=\"row\">\n <div [ngClass]=\"{ 'col-md-8': !isActivityLogSupported, 'col-md-12': isActivityLogSupported }\">\n @if (application) {\n <div\n class=\"card content-fullpage\"\n [ngClass]=\"{ 'd-grid grid__col--7-5--md': isActivityLogSupported }\"\n >\n <form\n class=\"d-flex d-col content-fullpage\"\n (ngSubmit)=\"formGroup.valid && save(formGroup.value)\"\n [formGroup]=\"formGroup\"\n novalidate\n >\n @if (!isLoading) {\n <div class=\"d-contents\">\n <div class=\"card-block separator-bottom large-padding flex-no-shrink\">\n <div class=\"d-flex-md a-i-start text-center text-left-md\">\n @if (!isPackage && !isFeature && !isMicroservice && !isExternal) {\n <c8y-app-icon\n class=\"icon-48\"\n [app]=\"application\"\n [contextPath]=\"application.contextPath\"\n [name]=\"application.name\"\n ></c8y-app-icon>\n }\n @if (isPackage) {\n <i\n class=\"icon-48\"\n c8yIcon=\"big-parcel\"\n ></i>\n }\n @if (isFeature) {\n <i\n class=\"icon-48\"\n c8yIcon=\"tab\"\n ></i>\n }\n @if (isMicroservice) {\n <i\n class=\"icon-48\"\n c8yIcon=\"microchip\"\n ></i>\n }\n @if (isExternal) {\n <i\n class=\"icon-48\"\n c8yIcon=\"globe1\"\n ></i>\n }\n <div class=\"p-t-md-16 p-l-md-16 p-r-md-32 flex-grow\">\n <p class=\"h4 text-medium m-b-8\">{{ application | humanizeAppName | async }}</p>\n @if (!isOwner) {\n <p>\n <em class=\"text-muted\">\n {{\n formGroup?.controls?.description?.value ||\n (noDescriptionLabel | translate)\n }}\n </em>\n </p>\n }\n @if (isOwner) {\n <c8y-form-group>\n <label\n class=\"editable\"\n [ngClass]=\"{ updated: formGroup?.controls?.description?.dirty }\"\n >\n <textarea\n class=\"form-control no-resize\"\n placeholder=\"{{ noDescriptionLabel | translate }}\"\n name=\"description\"\n c8y-textarea-autoresize\n formControlName=\"description\"\n ></textarea>\n </label>\n </c8y-form-group>\n }\n </div>\n <div class=\"text-right-md m-t-4\">\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n @if (application.manifest?.version) {\n <div\n class=\"fit-w m-t-2\"\n data-cy=\"application-detail--version\"\n >\n <label\n class=\"text-label-small\"\n translate\n >\n Version:\n </label>\n <small class=\"p-l-4 text-bold\">{{ application.manifest?.version }}</small>\n </div>\n }\n @if (!isUnpacked) {\n <div class=\"fit-w m-t-2\">\n <label\n class=\"text-label-small\"\n translate\n >\n Creation time:\n </label>\n <small class=\"p-l-4 text-bold\">\n {{ (binaryMo?.creationTime | c8yDate) || '---' }}\n </small>\n </div>\n }\n <div class=\"m-t-8\">\n @if (isUpdateAvailable) {\n <button\n class=\"btn btn-default btn-sm\"\n [attr.aria-label]=\"\n 'There\\'s a newer version available, click to update' | translate\n \"\n tooltip=\"{{\n 'There\\'s a newer version available, click to update' | translate\n }}\"\n placement=\"top\"\n type=\"button\"\n (click)=\"updateToLatestVersion()\"\n [delay]=\"300\"\n >\n <i [c8yIcon]=\"'installing-updates'\"></i>\n {{ 'Update available' | translate }}\n </button>\n }\n @if (canOpenInBrowser) {\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Open' | translate }}\"\n type=\"button\"\n (click)=\"openApp(application)\"\n [disabled]=\"disableOpenInBrowser\"\n >\n <i [c8yIcon]=\"'external-link'\"></i>\n {{ 'Open' | translate }}\n </button>\n }\n @if (canOpenInBrowser && disableOpenInBrowser) {\n <div>\n <small\n class=\"text-muted\"\n translate\n >\n The application is overwritten by a custom application sharing the same\n path\n </small>\n </div>\n }\n @if (isCustomMicroservice) {\n <span>\n @if (!isSubscribed) {\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Subscribe' | translate }}\"\n type=\"button\"\n (click)=\"subscribe()\"\n >\n <i [c8yIcon]=\"'check-circle-o'\"></i>\n {{ 'Subscribe' | translate }}\n </button>\n }\n @if (isSubscribed) {\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Unsubscribe' | translate }}\"\n type=\"button\"\n (click)=\"unsubscribe()\"\n >\n <i [c8yIcon]=\"'minus-circle'\"></i>\n {{ 'Unsubscribe' | translate }}\n </button>\n }\n </span>\n }\n </div>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll bg-level-0 flex-grow\">\n <div class=\"card-block large-padding\">\n @if (isPackage) {\n <div class=\"row p-16\">\n <c8y-properties-list\n icon=\"info\"\n [title]=\"'Package details' | translate\"\n [data]=\"application.manifest\"\n [properties]=\"packageProperties\"\n [emptyLabel]=\"'---'\"\n ></c8y-properties-list>\n </div>\n }\n @if (sourcePackage) {\n <div class=\"row p-16\">\n <c8y-properties-list\n icon=\"info\"\n [title]=\"'Source package information' | translate\"\n [data]=\"sourcePackage.manifest\"\n [properties]=\"packageProperties\"\n [emptyLabel]=\"'---'\"\n ></c8y-properties-list>\n </div>\n }\n <div class=\"row\">\n <div class=\"col-sm-5\">\n <c8y-form-group>\n <label for=\"appId\">ID</label>\n <input\n class=\"form-control\"\n id=\"appId\"\n name=\"id\"\n type=\"text\"\n autocomplete=\"off\"\n [readonly]=\"true\"\n formControlName=\"id\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-7\">\n <c8y-form-group>\n <label>{{ 'Name' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. My application' | translate }}\"\n name=\"name\"\n type=\"text\"\n required\n [readonly]=\"!isOwner\"\n formControlName=\"name\"\n />\n </c8y-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-5\">\n <c8y-form-group>\n <label>{{ 'Application key' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application-key' | translate }}\"\n name=\"key\"\n type=\"text\"\n required\n [readonly]=\"application.id || !isOwner\"\n formControlName=\"key\"\n />\n </c8y-form-group>\n </div>\n <div\n class=\"col-sm-7\"\n data-cy=\"application-detail--type\"\n >\n <c8y-form-group>\n <label>{{ 'Type' | translate }}</label>\n <div>\n @if (application.id) {\n <div>\n <p class=\"form-control-static\">\n <i [c8yIcon]=\"iconMap[application.type]\"></i>\n <span>\n {{ application.type | translate }}\n </span>\n </p>\n </div>\n }\n </div>\n </c8y-form-group>\n </div>\n </div>\n <div>\n @switch (application.type) {\n @case ('HOSTED') {\n <div>\n <c8y-form-group>\n <label>{{ 'Path' | translate }}</label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/apps/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application`used in URL`' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n [readOnly]=\"application.id || !isOwner\"\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n </div>\n }\n @case ('MICROSERVICE') {\n <div>\n <c8y-form-group>\n <label>{{ 'Path' | translate }}</label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/service/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-microservice`used in URL`' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n [readOnly]=\"application.id || !isOwner\"\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n <div class=\"row\">\n @if (application.manifest.version) {\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n data-cy=\"application-detail--version\"\n >\n <label>{{ 'Version' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.version }}\n </p>\n </div>\n }\n @if (application.manifest.isolation) {\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n data-cy=\"application-detail--isolation\"\n >\n <label>{{ 'Isolation' | translate }}</label>\n <p class=\"form-control-static\">\n @if (singleTenant) {\n <span>\n <i\n class=\"c8y-icon-duocolor h4\"\n [c8yIcon]=\"'c8y-enterprise'\"\n ></i>\n {{ 'Single tenant' | translate }}\n </span>\n }\n @if (!singleTenant) {\n <span>\n <i\n class=\"c8y-icon-duocolor icon-32\"\n [c8yIcon]=\"'c8y-sub-tenants'\"\n ></i>\n {{ 'Multi tenant' | translate }}\n </span>\n }\n </p>\n </div>\n }\n @if (application.manifest.isolation) {\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n data-cy=\"application-detail--billing-mode\"\n >\n <label>{{ 'Billing mode' | translate }}</label>\n <p class=\"form-control-static\">\n @if (subscription) {\n <span\n [tooltip]=\"'Resources usage assigned to: Owner' | translate\"\n >\n {{ 'Subscription' | translate }}\n </span>\n }\n @if (!subscription && singleTenant) {\n <span\n [tooltip]=\"\n 'Resources usage assigned to: Subscriber | translate'\n \"\n >\n {{ 'Resources' | translate }}\n </span>\n }\n @if (!subscription && !singleTenant) {\n <span\n [tooltip]=\"'Resources usage assigned to: Owner' | translate\"\n >\n {{ 'Resources' | translate }}\n </span>\n }\n </p>\n </div>\n }\n </div>\n @if (application.manifest.provider) {\n <div class=\"legend form-block m-t-40\">\n {{ 'Provider' | translate }}\n </div>\n }\n @if (application.manifest.provider) {\n <div\n class=\"list-inline\"\n data-cy=\"application-detail--provider\"\n >\n @if (application.manifest.provider.name) {\n <div>\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Name' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.name }}\n </p>\n </div>\n </div>\n }\n @if (application.manifest.provider.domain) {\n <div>\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Domain' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.domain }}\n </p>\n </div>\n </div>\n }\n @if (application.manifest.provider.support) {\n <div>\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Support' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.support }}\n </p>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n @case ('EXTERNAL') {\n <div>\n <c8y-form-group>\n <label>{{ 'External URL' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} http://www.example.com/\"\n name=\"externalUrl\"\n type=\"url\"\n required\n [pattern]=\"'^(?!javascript:).+'\"\n [readOnly]=\"!isOwner\"\n formControlName=\"externalUrl\"\n />\n <c8y-messages>\n <c8y-message\n [name]=\"'pattern'\"\n [text]=\"'Valid URL required.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n }\n }\n </div>\n @if (isOwner && !isCustomMicroservice) {\n <div>\n <label>{{ 'Select icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </div>\n }\n </div>\n </div>\n @if (isCustomMicroservice) {\n @if (!isLoading) {\n <div class=\"d-contents\">\n <c8y-upload-archive\n [(application)]=\"application\"\n (refresh)=\"onNewArchive()\"\n ></c8y-upload-archive>\n </div>\n }\n }\n @if (application && !!isOwner && hasAdminPermissions) {\n <div class=\"card-footer separator\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n @if (canDelete) {\n <button\n class=\"btn btn-danger\"\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n (click)=\"delete()\"\n >\n {{ 'Delete' | translate }}\n </button>\n }\n <button\n class=\"btn btn-primary btn-form\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n [disabled]=\"!application.type || formGroup.invalid || formGroup.pristine\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n }\n </div>\n }\n </form>\n @if (isActivityLogSupported) {\n <div class=\"content-fullpage d-flex d-col bg-level-1\">\n <div class=\"card-header separator\">\n <div\n class=\"card-title\"\n translate\n >\n Activity log\n </div>\n <div class=\"m-l-auto\">\n <button\n class=\"btn btn-link btn-sm\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"load()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': isLoading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n </div>\n </div>\n @if (isLoading) {\n <div class=\"p-16 text-center\">\n <c8y-loading></c8y-loading>\n </div>\n }\n @if (!isLoading) {\n <c8y-activity-log\n class=\"d-contents\"\n [hasAdminPermissions]=\"hasAdminPermissions\"\n [application]=\"application\"\n ></c8y-activity-log>\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: TextareaAutoresizeDirective, selector: "[c8y-textarea-autoresize]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: PropertiesListComponent, selector: "c8y-properties-list", inputs: ["properties", "title", "icon", "data", "groups", "noParse", "emptyLabel"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: IconSelectorWrapperComponent, selector: "c8y-icon-selector-wrapper", inputs: ["canRemoveIcon", "selectedIcon", "iconSize"], outputs: ["onSelect"] }, { kind: "component", type: UploadArchiveComponent, selector: "c8y-upload-archive", inputs: ["application", "uploadNewVersion", "preUploadCallback"], outputs: ["applicationChange", "refresh"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "component", type: ActivityLogComponent, selector: "c8y-activity-log", inputs: ["application", "hasAdminPermissions"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: HumanizeAppNamePipe, name: "humanizeAppName" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }] }); }
648
648
  }
649
649
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ApplicationPropertiesComponent, decorators: [{
650
650
  type: Component,
651
651
  args: [{ selector: 'c8y-application-properties', imports: [
652
652
  TitleComponent,
653
- NgIf,
654
653
  BreadcrumbComponent,
655
654
  BreadcrumbItemComponent,
656
655
  NgClass,
@@ -664,8 +663,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
664
663
  PropertiesListComponent,
665
664
  FormGroupComponent,
666
665
  RequiredInputPlaceholderDirective,
667
- NgSwitch,
668
- NgSwitchCase,
669
666
  MessagesComponent,
670
667
  MessageDirective,
671
668
  IconSelectorWrapperComponent,
@@ -676,7 +673,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
676
673
  AsyncPipe,
677
674
  HumanizeAppNamePipe,
678
675
  DatePipe
679
- ], template: "<c8y-title>{{ application | humanizeAppName | async }}</c8y-title>\n\n<c8y-breadcrumb *ngIf=\"!isMicroservice\">\n <c8y-breadcrumb-item\n [icon]=\"'c8y-atom'\"\n [label]=\"'Ecosystem' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-modules'\"\n [label]=\"'Applications' | translate\"\n [path]=\"'ecosystem/application/applications'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"breadcrumbConfig?.icon\"\n *ngIf=\"isFeature\"\n [label]=\"breadcrumbConfig?.label\"\n [path]=\"breadcrumbConfig?.path\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"application | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Properties' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-breadcrumb *ngIf=\"isMicroservice\">\n <c8y-breadcrumb-item\n [icon]=\"'c8y-atom'\"\n [label]=\"'Ecosystem' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"breadcrumbConfig?.icon\"\n [label]=\"breadcrumbConfig?.label\"\n [path]=\"breadcrumbConfig?.path\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"application | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Properties' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"row\">\n <div [ngClass]=\"{ 'col-md-8': !isActivityLogSupported, 'col-md-12': isActivityLogSupported }\">\n <div\n class=\"card content-fullpage\"\n *ngIf=\"application\"\n [ngClass]=\"{ 'd-grid grid__col--7-5--md': isActivityLogSupported }\"\n >\n <form\n class=\"d-flex d-col content-fullpage\"\n (ngSubmit)=\"formGroup.valid && save(formGroup.value)\"\n [formGroup]=\"formGroup\"\n novalidate\n >\n <div\n class=\"d-contents\"\n *ngIf=\"!isLoading\"\n >\n <div class=\"card-block separator-bottom large-padding flex-no-shrink\">\n <div class=\"d-flex-md a-i-start text-center text-left-md\">\n <c8y-app-icon\n class=\"icon-48\"\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"application\"\n [contextPath]=\"application.contextPath\"\n [name]=\"application.name\"\n ></c8y-app-icon>\n <i\n class=\"icon-48\"\n c8yIcon=\"big-parcel\"\n *ngIf=\"isPackage\"\n ></i>\n <i\n class=\"icon-48\"\n c8yIcon=\"tab\"\n *ngIf=\"isFeature\"\n ></i>\n <i\n class=\"icon-48\"\n c8yIcon=\"microchip\"\n *ngIf=\"isMicroservice\"\n ></i>\n <i\n class=\"icon-48\"\n c8yIcon=\"globe1\"\n *ngIf=\"isExternal\"\n ></i>\n\n <div class=\"p-t-md-16 p-l-md-16 p-r-md-32 flex-grow\">\n <p class=\"h4 text-medium m-b-8\">{{ application | humanizeAppName | async }}</p>\n <p *ngIf=\"!isOwner\">\n <em class=\"text-muted\">\n {{\n formGroup?.controls?.description?.value || (noDescriptionLabel | translate)\n }}\n </em>\n </p>\n <div\n class=\"form-group m-b-0\"\n *ngIf=\"isOwner\"\n >\n <label\n class=\"editable\"\n [ngClass]=\"{ updated: formGroup?.controls?.description?.dirty }\"\n >\n <textarea\n class=\"form-control no-resize\"\n placeholder=\"{{ noDescriptionLabel | translate }}\"\n name=\"description\"\n c8y-textarea-autoresize\n formControlName=\"description\"\n ></textarea>\n </label>\n </div>\n </div>\n <div class=\"text-right-md m-t-4\">\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n <div\n class=\"fit-w m-t-2\"\n *ngIf=\"application.manifest?.version\"\n data-cy=\"application-detail--version\"\n >\n <label\n class=\"text-label-small\"\n translate\n >\n Version:\n </label>\n <small class=\"p-l-4 text-bold\">{{ application.manifest?.version }}</small>\n </div>\n <div\n class=\"fit-w m-t-2\"\n *ngIf=\"!isUnpacked\"\n >\n <label\n class=\"text-label-small\"\n translate\n >\n Creation time:\n </label>\n <small class=\"p-l-4 text-bold\">\n {{ (binaryMo?.creationTime | c8yDate) || '---' }}\n </small>\n </div>\n <div class=\"m-t-8\">\n <button\n class=\"btn btn-default btn-sm\"\n [attr.aria-label]=\"\n 'There\\'s a newer version available, click to update' | translate\n \"\n tooltip=\"{{\n 'There\\'s a newer version available, click to update' | translate\n }}\"\n placement=\"top\"\n type=\"button\"\n *ngIf=\"isUpdateAvailable\"\n (click)=\"updateToLatestVersion()\"\n [delay]=\"300\"\n >\n <i [c8yIcon]=\"'installing-updates'\"></i>\n {{ 'Update available' | translate }}\n </button>\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Open' | translate }}\"\n type=\"button\"\n (click)=\"openApp(application)\"\n [disabled]=\"disableOpenInBrowser\"\n *ngIf=\"canOpenInBrowser\"\n >\n <i [c8yIcon]=\"'external-link'\"></i>\n {{ 'Open' | translate }}\n </button>\n <div *ngIf=\"canOpenInBrowser && disableOpenInBrowser\">\n <small\n class=\"text-muted\"\n translate\n >\n The application is overwritten by a custom application sharing the same path\n </small>\n </div>\n <span *ngIf=\"isCustomMicroservice\">\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Subscribe' | translate }}\"\n type=\"button\"\n (click)=\"subscribe()\"\n *ngIf=\"!isSubscribed\"\n >\n <i [c8yIcon]=\"'check-circle-o'\"></i>\n {{ 'Subscribe' | translate }}\n </button>\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Unsubscribe' | translate }}\"\n type=\"button\"\n (click)=\"unsubscribe()\"\n *ngIf=\"isSubscribed\"\n >\n <i [c8yIcon]=\"'minus-circle'\"></i>\n {{ 'Unsubscribe' | translate }}\n </button>\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll bg-level-0 flex-grow\">\n <div class=\"card-block large-padding\">\n <div\n class=\"row p-16\"\n *ngIf=\"isPackage\"\n >\n <c8y-properties-list\n icon=\"info\"\n [title]=\"'Package details' | translate\"\n [data]=\"application.manifest\"\n [properties]=\"packageProperties\"\n [emptyLabel]=\"'---'\"\n ></c8y-properties-list>\n </div>\n <div\n class=\"row p-16\"\n *ngIf=\"sourcePackage\"\n >\n <c8y-properties-list\n icon=\"info\"\n [title]=\"'Source package information' | translate\"\n [data]=\"sourcePackage.manifest\"\n [properties]=\"packageProperties\"\n [emptyLabel]=\"'---'\"\n ></c8y-properties-list>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-5\">\n <c8y-form-group>\n <label for=\"appId\">ID</label>\n <input\n class=\"form-control\"\n id=\"appId\"\n name=\"id\"\n type=\"text\"\n autocomplete=\"off\"\n [readonly]=\"true\"\n formControlName=\"id\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-7\">\n <c8y-form-group>\n <label>{{ 'Name' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. My application' | translate }}\"\n name=\"name\"\n type=\"text\"\n required\n [readonly]=\"!isOwner\"\n formControlName=\"name\"\n />\n </c8y-form-group>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-sm-5\">\n <c8y-form-group>\n <label>{{ 'Application key' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application-key' | translate }}\"\n name=\"key\"\n type=\"text\"\n required\n [readonly]=\"application.id || !isOwner\"\n formControlName=\"key\"\n />\n </c8y-form-group>\n </div>\n\n <div class=\"col-sm-7\" data-cy=\"application-detail--type\">\n <c8y-form-group>\n <label>{{ 'Type' | translate }}</label>\n <div>\n <div *ngIf=\"application.id\">\n <p class=\"form-control-static\">\n <i [c8yIcon]=\"iconMap[application.type]\"></i>\n <span>\n {{ application.type | translate }}\n </span>\n </p>\n </div>\n </div>\n </c8y-form-group>\n </div>\n </div>\n\n <div [ngSwitch]=\"application.type\">\n <div *ngSwitchCase=\"'HOSTED'\">\n <c8y-form-group>\n <label>{{ 'Path' | translate }}</label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/apps/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application`used in URL`' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n [readOnly]=\"application.id || !isOwner\"\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n </div>\n\n <div *ngSwitchCase=\"'MICROSERVICE'\">\n <c8y-form-group>\n <label>{{ 'Path' | translate }}</label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/service/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-microservice`used in URL`' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n [readOnly]=\"application.id || !isOwner\"\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n <div class=\"row\">\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n *ngIf=\"application.manifest.version\"\n data-cy=\"application-detail--version\"\n >\n <label>{{ 'Version' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.version }}\n </p>\n </div>\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n *ngIf=\"application.manifest.isolation\"\n data-cy=\"application-detail--isolation\"\n >\n <label>{{ 'Isolation' | translate }}</label>\n <p class=\"form-control-static\">\n <span *ngIf=\"singleTenant\">\n <i\n class=\"c8y-icon-duocolor h4\"\n [c8yIcon]=\"'c8y-enterprise'\"\n ></i>\n {{ 'Single tenant' | translate }}\n </span>\n <span *ngIf=\"!singleTenant\">\n <i\n class=\"c8y-icon-duocolor icon-32\"\n [c8yIcon]=\"'c8y-sub-tenants'\"\n ></i>\n {{ 'Multi tenant' | translate }}\n </span>\n </p>\n </div>\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n *ngIf=\"application.manifest.isolation\"\n data-cy=\"application-detail--billing-mode\"\n >\n <label>{{ 'Billing mode' | translate }}</label>\n <p class=\"form-control-static\">\n <span\n [tooltip]=\"'Resources usage assigned to: Owner' | translate\"\n *ngIf=\"subscription\"\n >\n {{ 'Subscription' | translate }}\n </span>\n <span\n [tooltip]=\"'Resources usage assigned to: Subscriber | translate'\"\n *ngIf=\"!subscription && singleTenant\"\n >\n {{ 'Resources' | translate }}\n </span>\n <span\n [tooltip]=\"'Resources usage assigned to: Owner' | translate\"\n *ngIf=\"!subscription && !singleTenant\"\n >\n {{ 'Resources' | translate }}\n </span>\n </p>\n </div>\n </div>\n\n <div\n class=\"legend form-block m-t-40\"\n *ngIf=\"application.manifest.provider\"\n >\n {{ 'Provider' | translate }}\n </div>\n <div\n class=\"list-inline\"\n *ngIf=\"application.manifest.provider\"\n data-cy=\"application-detail--provider\"\n >\n <div *ngIf=\"application.manifest.provider.name\">\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Name' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.name }}\n </p>\n </div>\n </div>\n <div *ngIf=\"application.manifest.provider.domain\">\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Domain' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.domain }}\n </p>\n </div>\n </div>\n <div *ngIf=\"application.manifest.provider.support\">\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Support' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.support }}\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'EXTERNAL'\">\n <c8y-form-group>\n <label>{{ 'External URL' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} http://www.example.com/\"\n name=\"externalUrl\"\n type=\"url\"\n required\n [pattern]=\"'^(?!javascript:).+'\"\n [readOnly]=\"!isOwner\"\n formControlName=\"externalUrl\"\n />\n <c8y-messages>\n <c8y-message\n [name]=\"'pattern'\"\n [text]=\"'Valid URL required.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div *ngIf=\"isOwner && !isCustomMicroservice\">\n <label>{{ 'Select icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </div>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"isCustomMicroservice\">\n <div\n class=\"d-contents\"\n *ngIf=\"!isLoading\"\n >\n <c8y-upload-archive\n [(application)]=\"application\"\n (refresh)=\"onNewArchive()\"\n ></c8y-upload-archive>\n </div>\n </ng-container>\n <div\n class=\"card-footer separator\"\n *ngIf=\"application && !!isOwner && hasAdminPermissions\"\n >\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-danger\"\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n (click)=\"delete()\"\n *ngIf=\"canDelete\"\n >\n {{ 'Delete' | translate }}\n </button>\n <button\n class=\"btn btn-primary btn-form\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n [disabled]=\"!application.type || formGroup.invalid || formGroup.pristine\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </form>\n\n <div\n class=\"content-fullpage d-flex d-col bg-level-1\"\n *ngIf=\"isActivityLogSupported\"\n >\n <div class=\"card-header separator\">\n <div\n class=\"card-title\"\n translate\n >\n Activity log\n </div>\n <div class=\"m-l-auto\">\n <button\n class=\"btn btn-link btn-sm\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"load()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': isLoading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n </div>\n </div>\n <div\n class=\"p-16 text-center\"\n *ngIf=\"isLoading\"\n >\n <c8y-loading></c8y-loading>\n </div>\n <c8y-activity-log\n class=\"d-contents\"\n *ngIf=\"!isLoading\"\n [hasAdminPermissions]=\"hasAdminPermissions\"\n [application]=\"application\"\n ></c8y-activity-log>\n </div>\n </div>\n </div>\n</div>\n" }]
676
+ ], template: "<c8y-title>{{ application | humanizeAppName | async }}</c8y-title>\n\n@if (!isMicroservice) {\n <c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-atom'\"\n [label]=\"'Ecosystem' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-modules'\"\n [label]=\"'Applications' | translate\"\n [path]=\"'ecosystem/application/applications'\"\n ></c8y-breadcrumb-item>\n @if (isFeature) {\n <c8y-breadcrumb-item\n [icon]=\"breadcrumbConfig?.icon\"\n [label]=\"breadcrumbConfig?.label\"\n [path]=\"breadcrumbConfig?.path\"\n ></c8y-breadcrumb-item>\n }\n <c8y-breadcrumb-item [label]=\"application | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Properties' | translate\"></c8y-breadcrumb-item>\n </c8y-breadcrumb>\n}\n\n@if (isMicroservice) {\n <c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-atom'\"\n [label]=\"'Ecosystem' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"breadcrumbConfig?.icon\"\n [label]=\"breadcrumbConfig?.label\"\n [path]=\"breadcrumbConfig?.path\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"application | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Properties' | translate\"></c8y-breadcrumb-item>\n </c8y-breadcrumb>\n}\n\n<div class=\"row\">\n <div [ngClass]=\"{ 'col-md-8': !isActivityLogSupported, 'col-md-12': isActivityLogSupported }\">\n @if (application) {\n <div\n class=\"card content-fullpage\"\n [ngClass]=\"{ 'd-grid grid__col--7-5--md': isActivityLogSupported }\"\n >\n <form\n class=\"d-flex d-col content-fullpage\"\n (ngSubmit)=\"formGroup.valid && save(formGroup.value)\"\n [formGroup]=\"formGroup\"\n novalidate\n >\n @if (!isLoading) {\n <div class=\"d-contents\">\n <div class=\"card-block separator-bottom large-padding flex-no-shrink\">\n <div class=\"d-flex-md a-i-start text-center text-left-md\">\n @if (!isPackage && !isFeature && !isMicroservice && !isExternal) {\n <c8y-app-icon\n class=\"icon-48\"\n [app]=\"application\"\n [contextPath]=\"application.contextPath\"\n [name]=\"application.name\"\n ></c8y-app-icon>\n }\n @if (isPackage) {\n <i\n class=\"icon-48\"\n c8yIcon=\"big-parcel\"\n ></i>\n }\n @if (isFeature) {\n <i\n class=\"icon-48\"\n c8yIcon=\"tab\"\n ></i>\n }\n @if (isMicroservice) {\n <i\n class=\"icon-48\"\n c8yIcon=\"microchip\"\n ></i>\n }\n @if (isExternal) {\n <i\n class=\"icon-48\"\n c8yIcon=\"globe1\"\n ></i>\n }\n <div class=\"p-t-md-16 p-l-md-16 p-r-md-32 flex-grow\">\n <p class=\"h4 text-medium m-b-8\">{{ application | humanizeAppName | async }}</p>\n @if (!isOwner) {\n <p>\n <em class=\"text-muted\">\n {{\n formGroup?.controls?.description?.value ||\n (noDescriptionLabel | translate)\n }}\n </em>\n </p>\n }\n @if (isOwner) {\n <c8y-form-group>\n <label\n class=\"editable\"\n [ngClass]=\"{ updated: formGroup?.controls?.description?.dirty }\"\n >\n <textarea\n class=\"form-control no-resize\"\n placeholder=\"{{ noDescriptionLabel | translate }}\"\n name=\"description\"\n c8y-textarea-autoresize\n formControlName=\"description\"\n ></textarea>\n </label>\n </c8y-form-group>\n }\n </div>\n <div class=\"text-right-md m-t-4\">\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n @if (application.manifest?.version) {\n <div\n class=\"fit-w m-t-2\"\n data-cy=\"application-detail--version\"\n >\n <label\n class=\"text-label-small\"\n translate\n >\n Version:\n </label>\n <small class=\"p-l-4 text-bold\">{{ application.manifest?.version }}</small>\n </div>\n }\n @if (!isUnpacked) {\n <div class=\"fit-w m-t-2\">\n <label\n class=\"text-label-small\"\n translate\n >\n Creation time:\n </label>\n <small class=\"p-l-4 text-bold\">\n {{ (binaryMo?.creationTime | c8yDate) || '---' }}\n </small>\n </div>\n }\n <div class=\"m-t-8\">\n @if (isUpdateAvailable) {\n <button\n class=\"btn btn-default btn-sm\"\n [attr.aria-label]=\"\n 'There\\'s a newer version available, click to update' | translate\n \"\n tooltip=\"{{\n 'There\\'s a newer version available, click to update' | translate\n }}\"\n placement=\"top\"\n type=\"button\"\n (click)=\"updateToLatestVersion()\"\n [delay]=\"300\"\n >\n <i [c8yIcon]=\"'installing-updates'\"></i>\n {{ 'Update available' | translate }}\n </button>\n }\n @if (canOpenInBrowser) {\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Open' | translate }}\"\n type=\"button\"\n (click)=\"openApp(application)\"\n [disabled]=\"disableOpenInBrowser\"\n >\n <i [c8yIcon]=\"'external-link'\"></i>\n {{ 'Open' | translate }}\n </button>\n }\n @if (canOpenInBrowser && disableOpenInBrowser) {\n <div>\n <small\n class=\"text-muted\"\n translate\n >\n The application is overwritten by a custom application sharing the same\n path\n </small>\n </div>\n }\n @if (isCustomMicroservice) {\n <span>\n @if (!isSubscribed) {\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Subscribe' | translate }}\"\n type=\"button\"\n (click)=\"subscribe()\"\n >\n <i [c8yIcon]=\"'check-circle-o'\"></i>\n {{ 'Subscribe' | translate }}\n </button>\n }\n @if (isSubscribed) {\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Unsubscribe' | translate }}\"\n type=\"button\"\n (click)=\"unsubscribe()\"\n >\n <i [c8yIcon]=\"'minus-circle'\"></i>\n {{ 'Unsubscribe' | translate }}\n </button>\n }\n </span>\n }\n </div>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll bg-level-0 flex-grow\">\n <div class=\"card-block large-padding\">\n @if (isPackage) {\n <div class=\"row p-16\">\n <c8y-properties-list\n icon=\"info\"\n [title]=\"'Package details' | translate\"\n [data]=\"application.manifest\"\n [properties]=\"packageProperties\"\n [emptyLabel]=\"'---'\"\n ></c8y-properties-list>\n </div>\n }\n @if (sourcePackage) {\n <div class=\"row p-16\">\n <c8y-properties-list\n icon=\"info\"\n [title]=\"'Source package information' | translate\"\n [data]=\"sourcePackage.manifest\"\n [properties]=\"packageProperties\"\n [emptyLabel]=\"'---'\"\n ></c8y-properties-list>\n </div>\n }\n <div class=\"row\">\n <div class=\"col-sm-5\">\n <c8y-form-group>\n <label for=\"appId\">ID</label>\n <input\n class=\"form-control\"\n id=\"appId\"\n name=\"id\"\n type=\"text\"\n autocomplete=\"off\"\n [readonly]=\"true\"\n formControlName=\"id\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-7\">\n <c8y-form-group>\n <label>{{ 'Name' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. My application' | translate }}\"\n name=\"name\"\n type=\"text\"\n required\n [readonly]=\"!isOwner\"\n formControlName=\"name\"\n />\n </c8y-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-5\">\n <c8y-form-group>\n <label>{{ 'Application key' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application-key' | translate }}\"\n name=\"key\"\n type=\"text\"\n required\n [readonly]=\"application.id || !isOwner\"\n formControlName=\"key\"\n />\n </c8y-form-group>\n </div>\n <div\n class=\"col-sm-7\"\n data-cy=\"application-detail--type\"\n >\n <c8y-form-group>\n <label>{{ 'Type' | translate }}</label>\n <div>\n @if (application.id) {\n <div>\n <p class=\"form-control-static\">\n <i [c8yIcon]=\"iconMap[application.type]\"></i>\n <span>\n {{ application.type | translate }}\n </span>\n </p>\n </div>\n }\n </div>\n </c8y-form-group>\n </div>\n </div>\n <div>\n @switch (application.type) {\n @case ('HOSTED') {\n <div>\n <c8y-form-group>\n <label>{{ 'Path' | translate }}</label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/apps/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application`used in URL`' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n [readOnly]=\"application.id || !isOwner\"\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n </div>\n }\n @case ('MICROSERVICE') {\n <div>\n <c8y-form-group>\n <label>{{ 'Path' | translate }}</label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/service/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-microservice`used in URL`' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n [readOnly]=\"application.id || !isOwner\"\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n <div class=\"row\">\n @if (application.manifest.version) {\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n data-cy=\"application-detail--version\"\n >\n <label>{{ 'Version' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.version }}\n </p>\n </div>\n }\n @if (application.manifest.isolation) {\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n data-cy=\"application-detail--isolation\"\n >\n <label>{{ 'Isolation' | translate }}</label>\n <p class=\"form-control-static\">\n @if (singleTenant) {\n <span>\n <i\n class=\"c8y-icon-duocolor h4\"\n [c8yIcon]=\"'c8y-enterprise'\"\n ></i>\n {{ 'Single tenant' | translate }}\n </span>\n }\n @if (!singleTenant) {\n <span>\n <i\n class=\"c8y-icon-duocolor icon-32\"\n [c8yIcon]=\"'c8y-sub-tenants'\"\n ></i>\n {{ 'Multi tenant' | translate }}\n </span>\n }\n </p>\n </div>\n }\n @if (application.manifest.isolation) {\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n data-cy=\"application-detail--billing-mode\"\n >\n <label>{{ 'Billing mode' | translate }}</label>\n <p class=\"form-control-static\">\n @if (subscription) {\n <span\n [tooltip]=\"'Resources usage assigned to: Owner' | translate\"\n >\n {{ 'Subscription' | translate }}\n </span>\n }\n @if (!subscription && singleTenant) {\n <span\n [tooltip]=\"\n 'Resources usage assigned to: Subscriber | translate'\n \"\n >\n {{ 'Resources' | translate }}\n </span>\n }\n @if (!subscription && !singleTenant) {\n <span\n [tooltip]=\"'Resources usage assigned to: Owner' | translate\"\n >\n {{ 'Resources' | translate }}\n </span>\n }\n </p>\n </div>\n }\n </div>\n @if (application.manifest.provider) {\n <div class=\"legend form-block m-t-40\">\n {{ 'Provider' | translate }}\n </div>\n }\n @if (application.manifest.provider) {\n <div\n class=\"list-inline\"\n data-cy=\"application-detail--provider\"\n >\n @if (application.manifest.provider.name) {\n <div>\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Name' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.name }}\n </p>\n </div>\n </div>\n }\n @if (application.manifest.provider.domain) {\n <div>\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Domain' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.domain }}\n </p>\n </div>\n </div>\n }\n @if (application.manifest.provider.support) {\n <div>\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Support' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.support }}\n </p>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n @case ('EXTERNAL') {\n <div>\n <c8y-form-group>\n <label>{{ 'External URL' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} http://www.example.com/\"\n name=\"externalUrl\"\n type=\"url\"\n required\n [pattern]=\"'^(?!javascript:).+'\"\n [readOnly]=\"!isOwner\"\n formControlName=\"externalUrl\"\n />\n <c8y-messages>\n <c8y-message\n [name]=\"'pattern'\"\n [text]=\"'Valid URL required.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n }\n }\n </div>\n @if (isOwner && !isCustomMicroservice) {\n <div>\n <label>{{ 'Select icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </div>\n }\n </div>\n </div>\n @if (isCustomMicroservice) {\n @if (!isLoading) {\n <div class=\"d-contents\">\n <c8y-upload-archive\n [(application)]=\"application\"\n (refresh)=\"onNewArchive()\"\n ></c8y-upload-archive>\n </div>\n }\n }\n @if (application && !!isOwner && hasAdminPermissions) {\n <div class=\"card-footer separator\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n @if (canDelete) {\n <button\n class=\"btn btn-danger\"\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n (click)=\"delete()\"\n >\n {{ 'Delete' | translate }}\n </button>\n }\n <button\n class=\"btn btn-primary btn-form\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n [disabled]=\"!application.type || formGroup.invalid || formGroup.pristine\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n }\n </div>\n }\n </form>\n @if (isActivityLogSupported) {\n <div class=\"content-fullpage d-flex d-col bg-level-1\">\n <div class=\"card-header separator\">\n <div\n class=\"card-title\"\n translate\n >\n Activity log\n </div>\n <div class=\"m-l-auto\">\n <button\n class=\"btn btn-link btn-sm\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"load()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': isLoading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n </div>\n </div>\n @if (isLoading) {\n <div class=\"p-16 text-center\">\n <c8y-loading></c8y-loading>\n </div>\n }\n @if (!isLoading) {\n <c8y-activity-log\n class=\"d-contents\"\n [hasAdminPermissions]=\"hasAdminPermissions\"\n [application]=\"application\"\n ></c8y-activity-log>\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n" }]
680
677
  }], ctorParameters: () => [{ type: i1$2.ActivatedRoute }, { type: i1.EcosystemService }, { type: i1$2.Router }, { type: i3.FormBuilder }, { type: i4.ApplicationService }, { type: i2.AlertService }, { type: i4.InventoryService }, { type: i2.Permissions }, { type: i2.ModalService }, { type: i6.TranslateService }, { type: i1$1.BsModalService }, { type: i2.GainsightService }] });
681
678
 
682
679
  class ApplicationPropertiesGuard {