@c8y/ngx-components 1017.0.31 → 1017.0.33
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.
- package/ecosystem/application-plugins/application-plugins.component.d.ts +54 -3
- package/ecosystem/application-plugins/plugin-list.component.d.ts +5 -3
- package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts +4 -2
- package/ecosystem/application-properties/application-properties.component.d.ts +5 -3
- package/ecosystem/packages/deploy-application/deploy-application.component.d.ts +5 -4
- package/ecosystem/packages/package-availability.service.d.ts +4 -2
- package/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.d.ts +4 -2
- package/ecosystem/shared/application-card.component.d.ts +5 -3
- package/ecosystem/shared/duplicate-application/duplicate-application-properties/duplicate-application-properties.component.d.ts +4 -2
- package/ecosystem/shared/ecosystem.model.d.ts +49 -0
- package/esm2020/core/help/help.component.mjs +3 -3
- package/esm2020/ecosystem/application-plugins/application-plugins.component.mjs +32 -9
- package/esm2020/ecosystem/application-plugins/plugin-list.component.mjs +18 -6
- package/esm2020/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.mjs +20 -5
- package/esm2020/ecosystem/application-properties/application-properties.component.mjs +13 -6
- package/esm2020/ecosystem/packages/deploy-application/deploy-application.component.mjs +20 -7
- package/esm2020/ecosystem/packages/package-availability.service.mjs +18 -5
- package/esm2020/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.mjs +43 -6
- package/esm2020/ecosystem/shared/application-card.component.mjs +28 -5
- package/esm2020/ecosystem/shared/duplicate-application/duplicate-application-properties/duplicate-application-properties.component.mjs +21 -8
- package/esm2020/ecosystem/shared/ecosystem.model.mjs +50 -1
- package/esm2020/operations/operations-list/operations-list-item.component.mjs +3 -3
- package/fesm2015/c8y-ngx-components-ecosystem-application-plugins.mjs +61 -12
- package/fesm2015/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-ecosystem-shared.mjs +90 -7
- package/fesm2015/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-ecosystem.mjs +143 -24
- package/fesm2015/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-operations-operations-list.mjs +2 -2
- package/fesm2015/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +2 -2
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem-application-plugins.mjs +61 -12
- package/fesm2020/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem-shared.mjs +90 -7
- package/fesm2020/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem.mjs +143 -24
- package/fesm2020/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-operations-operations-list.mjs +2 -2
- package/fesm2020/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +2 -2
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -39,6 +39,55 @@ var ERROR_TYPE;
|
|
|
39
39
|
ERROR_TYPE["INVALID_APPLICATION"] = "INVALID_APPLICATION";
|
|
40
40
|
ERROR_TYPE["MICROSERVICE_NAME_TOO_LONG"] = "MICROSERVICE_NAME_TOO_LONG";
|
|
41
41
|
})(ERROR_TYPE || (ERROR_TYPE = {}));
|
|
42
|
+
const PRODUCT_EXPERIENCE = {
|
|
43
|
+
APPLICATIONS: {
|
|
44
|
+
EVENTS: {
|
|
45
|
+
AVAILABILITY: 'availability',
|
|
46
|
+
APPLICATION_CARD: 'applicationCard',
|
|
47
|
+
APPLICATION_PROPERTIES: 'applicationProperties',
|
|
48
|
+
DEPLOY_APPLICATION: 'deployApplication',
|
|
49
|
+
DUPLICATE_APPLICATION: 'duplicateApplication',
|
|
50
|
+
INSTALLED_PLUGINS: 'installedPlugins',
|
|
51
|
+
PACKAGE_PLUGINS: 'packagePlugins',
|
|
52
|
+
PACKAGE_VERSIONS: 'packageVersions'
|
|
53
|
+
},
|
|
54
|
+
COMPONENTS: {
|
|
55
|
+
APPLICATION_CARD: 'application-card',
|
|
56
|
+
APPLICATION_PLUGINS: 'application-plugins',
|
|
57
|
+
APPLICATION_PROPERTIES: 'application-properties',
|
|
58
|
+
DEPLOY_APPLICATION: 'deploy-application',
|
|
59
|
+
DUPLICATE_APPLICATION_PROPERTIES: 'duplicate-application-properties',
|
|
60
|
+
PLUGIN_LIST: 'plugin-list',
|
|
61
|
+
PACKAGE_VERSIONS: 'package-versions-list',
|
|
62
|
+
UPDATE_PLUGIN_OF_APP: 'update-plugin-of-app'
|
|
63
|
+
},
|
|
64
|
+
ACTIONS: {
|
|
65
|
+
AVAILABILITY_CHANGE: 'availabilityChange',
|
|
66
|
+
CANCEL: 'cancel',
|
|
67
|
+
CLONE: 'clone',
|
|
68
|
+
CHANGE_PLUGIN_VERSION: 'changePluginVersion',
|
|
69
|
+
DELETE: 'delete',
|
|
70
|
+
DOWNLOAD: 'download',
|
|
71
|
+
DEPLOY_APPLICATION: 'deployApplication',
|
|
72
|
+
EDIT: 'edit',
|
|
73
|
+
INSTALL_PLUGIN: 'installPlugin',
|
|
74
|
+
INSTALL_PLUGINS: 'installPlugins',
|
|
75
|
+
SELECT_VERSION: 'selectVersion',
|
|
76
|
+
SET_AS_LATEST: 'setAsLatest',
|
|
77
|
+
UPDATE_AVAILABLE: 'updateAvailable',
|
|
78
|
+
UPLOAD: 'upload'
|
|
79
|
+
},
|
|
80
|
+
RESULTS: {
|
|
81
|
+
DEPLOYED: 'deployed',
|
|
82
|
+
DUPLICATED: 'duplicated',
|
|
83
|
+
PLUGIN_INSTALLED: 'pluginInstalled',
|
|
84
|
+
PLUGIN_REMOVED: 'pluginRemoved',
|
|
85
|
+
PLUGIN_VERSION_CHANGED: 'pluginVersionChanged',
|
|
86
|
+
SERVER_FAILURE: 'serverFailure',
|
|
87
|
+
SUCCESS: 'success'
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
};
|
|
42
91
|
|
|
43
92
|
const ERROR_MESSAGES = {
|
|
44
93
|
[ERROR_TYPE.TYPE_VALIDATION]: gettext('Wrong file format. Expected a *.zip file with a valid manifest.'),
|
|
@@ -784,13 +833,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
784
833
|
}] } });
|
|
785
834
|
|
|
786
835
|
class ApplicationCardComponent {
|
|
787
|
-
constructor(applicationService, ecosystemService, alertService, router, wizardModalService, alert) {
|
|
836
|
+
constructor(applicationService, ecosystemService, alertService, router, wizardModalService, alert, gainsightService) {
|
|
788
837
|
this.applicationService = applicationService;
|
|
789
838
|
this.ecosystemService = ecosystemService;
|
|
790
839
|
this.alertService = alertService;
|
|
791
840
|
this.router = router;
|
|
792
841
|
this.wizardModalService = wizardModalService;
|
|
793
842
|
this.alert = alert;
|
|
843
|
+
this.gainsightService = gainsightService;
|
|
844
|
+
this.CURRENT_LOCATION = location.href;
|
|
794
845
|
this.canEdit = true;
|
|
795
846
|
this.onAppDeleted = new EventEmitter();
|
|
796
847
|
this.onAppCloned = new EventEmitter();
|
|
@@ -829,6 +880,11 @@ class ApplicationCardComponent {
|
|
|
829
880
|
this.isMicroservice
|
|
830
881
|
? this.router.navigateByUrl(`/microservices/${this.app.id}`)
|
|
831
882
|
: this.router.navigateByUrl(`/ecosystem/application/${this.app.id}`);
|
|
883
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.APPLICATION_CARD, {
|
|
884
|
+
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_CARD,
|
|
885
|
+
action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.EDIT,
|
|
886
|
+
url: this.CURRENT_LOCATION
|
|
887
|
+
});
|
|
832
888
|
}
|
|
833
889
|
openApp() {
|
|
834
890
|
this.ecosystemService.openApp(this.app);
|
|
@@ -838,10 +894,20 @@ class ApplicationCardComponent {
|
|
|
838
894
|
try {
|
|
839
895
|
yield this.ecosystemService.deleteApp(this.app);
|
|
840
896
|
this.onAppDeleted.emit();
|
|
897
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.APPLICATION_CARD, {
|
|
898
|
+
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_CARD,
|
|
899
|
+
action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.DELETE,
|
|
900
|
+
url: this.CURRENT_LOCATION
|
|
901
|
+
});
|
|
841
902
|
}
|
|
842
903
|
catch (ex) {
|
|
843
904
|
if (ex) {
|
|
844
905
|
this.alertService.addServerFailure(ex);
|
|
906
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.APPLICATION_CARD, {
|
|
907
|
+
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_CARD,
|
|
908
|
+
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.SERVER_FAILURE,
|
|
909
|
+
url: this.CURRENT_LOCATION
|
|
910
|
+
});
|
|
845
911
|
}
|
|
846
912
|
}
|
|
847
913
|
});
|
|
@@ -864,6 +930,11 @@ class ApplicationCardComponent {
|
|
|
864
930
|
modalRef.content.onClose.subscribe(() => {
|
|
865
931
|
this.onAppCloned.next();
|
|
866
932
|
});
|
|
933
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.APPLICATION_CARD, {
|
|
934
|
+
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_CARD,
|
|
935
|
+
action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.CLONE,
|
|
936
|
+
url: this.CURRENT_LOCATION
|
|
937
|
+
});
|
|
867
938
|
});
|
|
868
939
|
}
|
|
869
940
|
isOwnedByManagement() {
|
|
@@ -889,12 +960,12 @@ class ApplicationCardComponent {
|
|
|
889
960
|
});
|
|
890
961
|
}
|
|
891
962
|
}
|
|
892
|
-
ApplicationCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ApplicationCardComponent, deps: [{ token: i3.ApplicationService }, { token: EcosystemService }, { token: i2.AlertService }, { token: i4.Router }, { token: i2.WizardModalService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
963
|
+
ApplicationCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ApplicationCardComponent, deps: [{ token: i3.ApplicationService }, { token: EcosystemService }, { token: i2.AlertService }, { token: i4.Router }, { token: i2.WizardModalService }, { token: i2.AlertService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component });
|
|
893
964
|
ApplicationCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ApplicationCardComponent, selector: "c8y-application-card", inputs: { app: "app", canEdit: "canEdit" }, outputs: { onAppDeleted: "onAppDeleted", onAppCloned: "onAppCloned" }, ngImport: i0, template: "<div class=\"card pointer card--d-col\" *ngIf=\"!isFeature\">\n <div (click)=\"detail()\" class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i *ngIf=\"isPackage\" c8yIcon=\"big-parcel\"></i>\n <i *ngIf=\"isMicroservice\" c8yIcon=\"microchip\"></i>\n <i *ngIf=\"isExternal\" c8yIcon=\"globe1\"></i>\n </div>\n <div>\n <p class=\"e2e-appCardName text-medium\" title=\"{{ app | humanizeAppName | async }}\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n [tooltip]=\"'Update available' | translate\"\n c8yIcon=\"exclamation-triangle\"\n class=\"text-warning m-l-4\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div (click)=\"detail()\" class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div *ngIf=\"app.description || app.manifest?.description\" class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div\n *ngIf=\"!app.label\"\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n >\n <span [ngClass]=\"appState.class\" class=\"label\">\n {{ isUnpacked ? ('Unpacked' | translate) : (appState.label | translate) }}\n </span>\n </div>\n <div\n *ngIf=\"app.label\"\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n >\n <span [ngClass]=\"appState.class\" class=\"label text-warning\">\n {{ isOwnedByManagementTenant ? app.label : ('COMMUNITY' | translate) }}\n </span>\n </div>\n <div class=\"card-footer no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <div class=\"p-b-16 card-hidden-list\"></div>\n <button\n (click)=\"openApp(); $event.stopPropagation()\"\n *ngIf=\"canOpenInBrowser\"\n [disabled]=\"disableOpenInBrowser\"\n class=\"btn btn-sm btn-default\"\n [title]=\"openButtonTitle | translate\"\n >\n <i c8yIcon=\"external-link\" class=\"m-r-4\"></i>\n {{ 'Open' | translate }}\n </button>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n </div>\n <div class=\"p-r-40 card-hidden-grid\"></div>\n <div *ngIf=\"canEdit || canOpenInBrowser || canDelete\" class=\"card-actions m-t-0\">\n <div class=\"dropdown\" dropdown>\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n dropdownToggle\n title=\"{{ 'Settings' | translate }}\"\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right\">\n <li *ngIf=\"canEdit\">\n <button (click)=\"detail()\" title=\"{{ 'Edit' | translate }}\">\n <i c8yIcon=\"pencil\" class=\"m-r-4\"></i>\n {{ 'Edit' | translate }}\n </button>\n </li>\n <ng-container *c8yIfAllowed=\"['ROLE_APPLICATION_MANAGEMENT_ADMIN']\">\n <li>\n <button\n (click)=\"delete()\"\n type=\"button\"\n [title]=\"canDelete ? ('Delete' | translate) : (CANNOT_DELETE_HINT | translate)\"\n [disabled]=\"!canDelete\"\n >\n <i c8yIcon=\"delete\" class=\"m-r-4\"></i>\n {{ 'Delete' | translate }}\n </button>\n </li>\n <li *ngIf=\"canClone\">\n <button\n *ngIf=\"isPackage\"\n (click)=\"clone()\"\n type=\"button\"\n [title]=\"'Clone`package`' | translate\"\n >\n <i c8yIcon=\"copy\" class=\"m-r-4\"></i>\n {{ 'Clone`package`' | translate }}\n </button>\n <button\n *ngIf=\"!isPackage\"\n (click)=\"clone()\"\n type=\"button\"\n [title]=\"'Clone`application`' | translate\"\n >\n <i c8yIcon=\"copy\" class=\"m-r-4\"></i>\n {{ 'Clone`application`' | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</div>\n\n<button (click)=\"detail()\" class=\"card pointer card--d-col\" *ngIf=\"isFeature\">\n <div class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i c8yIcon=\"tab\"></i>\n </div>\n <div>\n <p class=\"e2e-appCardName text-medium\" title=\"{{ app | humanizeAppName | async }}\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n [tooltip]=\"'Update available' | translate\"\n c8yIcon=\"exclamation-triangle\"\n class=\"text-warning m-l-4\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div *ngIf=\"app.description || app.manifest?.description\" class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <span [ngClass]=\"appState.class\" class=\"label\">\n {{ isUnpacked ? ('Unpacked' | translate) : (appState.label | translate) }}\n </span>\n </div>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n</button>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.IfAllowedDirective, selector: "[c8yIfAllowed]", inputs: ["c8yIfAllowed", "c8yIfAllowedAllowAny"] }, { kind: "component", type: i2.AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i7.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: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.HumanizeAppNamePipe, name: "humanizeAppName" }] });
|
|
894
965
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ApplicationCardComponent, decorators: [{
|
|
895
966
|
type: Component,
|
|
896
967
|
args: [{ selector: 'c8y-application-card', template: "<div class=\"card pointer card--d-col\" *ngIf=\"!isFeature\">\n <div (click)=\"detail()\" class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i *ngIf=\"isPackage\" c8yIcon=\"big-parcel\"></i>\n <i *ngIf=\"isMicroservice\" c8yIcon=\"microchip\"></i>\n <i *ngIf=\"isExternal\" c8yIcon=\"globe1\"></i>\n </div>\n <div>\n <p class=\"e2e-appCardName text-medium\" title=\"{{ app | humanizeAppName | async }}\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n [tooltip]=\"'Update available' | translate\"\n c8yIcon=\"exclamation-triangle\"\n class=\"text-warning m-l-4\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div (click)=\"detail()\" class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div *ngIf=\"app.description || app.manifest?.description\" class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div\n *ngIf=\"!app.label\"\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n >\n <span [ngClass]=\"appState.class\" class=\"label\">\n {{ isUnpacked ? ('Unpacked' | translate) : (appState.label | translate) }}\n </span>\n </div>\n <div\n *ngIf=\"app.label\"\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n >\n <span [ngClass]=\"appState.class\" class=\"label text-warning\">\n {{ isOwnedByManagementTenant ? app.label : ('COMMUNITY' | translate) }}\n </span>\n </div>\n <div class=\"card-footer no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <div class=\"p-b-16 card-hidden-list\"></div>\n <button\n (click)=\"openApp(); $event.stopPropagation()\"\n *ngIf=\"canOpenInBrowser\"\n [disabled]=\"disableOpenInBrowser\"\n class=\"btn btn-sm btn-default\"\n [title]=\"openButtonTitle | translate\"\n >\n <i c8yIcon=\"external-link\" class=\"m-r-4\"></i>\n {{ 'Open' | translate }}\n </button>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n </div>\n <div class=\"p-r-40 card-hidden-grid\"></div>\n <div *ngIf=\"canEdit || canOpenInBrowser || canDelete\" class=\"card-actions m-t-0\">\n <div class=\"dropdown\" dropdown>\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n dropdownToggle\n title=\"{{ 'Settings' | translate }}\"\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right\">\n <li *ngIf=\"canEdit\">\n <button (click)=\"detail()\" title=\"{{ 'Edit' | translate }}\">\n <i c8yIcon=\"pencil\" class=\"m-r-4\"></i>\n {{ 'Edit' | translate }}\n </button>\n </li>\n <ng-container *c8yIfAllowed=\"['ROLE_APPLICATION_MANAGEMENT_ADMIN']\">\n <li>\n <button\n (click)=\"delete()\"\n type=\"button\"\n [title]=\"canDelete ? ('Delete' | translate) : (CANNOT_DELETE_HINT | translate)\"\n [disabled]=\"!canDelete\"\n >\n <i c8yIcon=\"delete\" class=\"m-r-4\"></i>\n {{ 'Delete' | translate }}\n </button>\n </li>\n <li *ngIf=\"canClone\">\n <button\n *ngIf=\"isPackage\"\n (click)=\"clone()\"\n type=\"button\"\n [title]=\"'Clone`package`' | translate\"\n >\n <i c8yIcon=\"copy\" class=\"m-r-4\"></i>\n {{ 'Clone`package`' | translate }}\n </button>\n <button\n *ngIf=\"!isPackage\"\n (click)=\"clone()\"\n type=\"button\"\n [title]=\"'Clone`application`' | translate\"\n >\n <i c8yIcon=\"copy\" class=\"m-r-4\"></i>\n {{ 'Clone`application`' | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</div>\n\n<button (click)=\"detail()\" class=\"card pointer card--d-col\" *ngIf=\"isFeature\">\n <div class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i c8yIcon=\"tab\"></i>\n </div>\n <div>\n <p class=\"e2e-appCardName text-medium\" title=\"{{ app | humanizeAppName | async }}\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n [tooltip]=\"'Update available' | translate\"\n c8yIcon=\"exclamation-triangle\"\n class=\"text-warning m-l-4\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div *ngIf=\"app.description || app.manifest?.description\" class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <span [ngClass]=\"appState.class\" class=\"label\">\n {{ isUnpacked ? ('Unpacked' | translate) : (appState.label | translate) }}\n </span>\n </div>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n</button>\n" }]
|
|
897
|
-
}], ctorParameters: function () { return [{ type: i3.ApplicationService }, { type: EcosystemService }, { type: i2.AlertService }, { type: i4.Router }, { type: i2.WizardModalService }, { type: i2.AlertService }]; }, propDecorators: { app: [{
|
|
968
|
+
}], ctorParameters: function () { return [{ type: i3.ApplicationService }, { type: EcosystemService }, { type: i2.AlertService }, { type: i4.Router }, { type: i2.WizardModalService }, { type: i2.AlertService }, { type: i2.GainsightService }]; }, propDecorators: { app: [{
|
|
898
969
|
type: Input
|
|
899
970
|
}], canEdit: [{
|
|
900
971
|
type: Input
|
|
@@ -1056,10 +1127,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
1056
1127
|
}] } });
|
|
1057
1128
|
|
|
1058
1129
|
class DuplicateApplicationPropertiesComponent {
|
|
1059
|
-
constructor(bsModalRef, ecosystemService, applicationService) {
|
|
1130
|
+
constructor(bsModalRef, ecosystemService, applicationService, gainsightService) {
|
|
1060
1131
|
this.bsModalRef = bsModalRef;
|
|
1061
1132
|
this.ecosystemService = ecosystemService;
|
|
1062
1133
|
this.applicationService = applicationService;
|
|
1134
|
+
this.gainsightService = gainsightService;
|
|
1135
|
+
this.CURRENT_LOCATION = location.href;
|
|
1063
1136
|
this.isFirstStep = false;
|
|
1064
1137
|
this.duplicatedApp = new EventEmitter();
|
|
1065
1138
|
this.disableForm = false;
|
|
@@ -1083,10 +1156,20 @@ class DuplicateApplicationPropertiesComponent {
|
|
|
1083
1156
|
delete clonedApp.type;
|
|
1084
1157
|
yield this.updateApp(clonedApp);
|
|
1085
1158
|
this.inProgress = false;
|
|
1159
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.DUPLICATE_APPLICATION, {
|
|
1160
|
+
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.DUPLICATE_APPLICATION_PROPERTIES,
|
|
1161
|
+
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.DUPLICATED,
|
|
1162
|
+
url: this.CURRENT_LOCATION
|
|
1163
|
+
});
|
|
1086
1164
|
});
|
|
1087
1165
|
}
|
|
1088
1166
|
cancel() {
|
|
1089
1167
|
this.bsModalRef.hide();
|
|
1168
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.DUPLICATE_APPLICATION, {
|
|
1169
|
+
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.DUPLICATE_APPLICATION_PROPERTIES,
|
|
1170
|
+
action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.CANCEL,
|
|
1171
|
+
url: this.CURRENT_LOCATION
|
|
1172
|
+
});
|
|
1090
1173
|
}
|
|
1091
1174
|
back() {
|
|
1092
1175
|
this.stepper.previous();
|
|
@@ -1143,12 +1226,12 @@ class DuplicateApplicationPropertiesComponent {
|
|
|
1143
1226
|
});
|
|
1144
1227
|
}
|
|
1145
1228
|
}
|
|
1146
|
-
DuplicateApplicationPropertiesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DuplicateApplicationPropertiesComponent, deps: [{ token: i1$1.BsModalRef }, { token: EcosystemService }, { token: i3.ApplicationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1229
|
+
DuplicateApplicationPropertiesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DuplicateApplicationPropertiesComponent, deps: [{ token: i1$1.BsModalRef }, { token: EcosystemService }, { token: i3.ApplicationService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1147
1230
|
DuplicateApplicationPropertiesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DuplicateApplicationPropertiesComponent, selector: "c8y-duplicate-application-properties", inputs: { stepper: "stepper", existingApps: "existingApps", selectedApp: "selectedApp", isFirstStep: "isFirstStep" }, outputs: { duplicatedApp: "duplicatedApp" }, viewQueries: [{ propertyName: "applicationPropertiesForm", first: true, predicate: ApplicationPropertiesFormComponent, descendants: true }], ngImport: i0, template: "<p\n class=\"p-16 text-center text-medium separator-bottom sticky-top bg-level-0 fit-w\"\n *ngIf=\"!inProgress\"\n>\n {{ 'Provide application details' | translate }}\n</p>\n\n<ng-container *ngIf=\"!inProgress\">\n <label class=\"c8y-switch\" *ngIf=\"isSubscribedApp$ | async\">\n <input type=\"checkbox\" [(ngModel)]=\"disableForm\" (change)=\"getAppConfig()\" />\n <span></span> {{ 'Overrule subscribed application' | translate }}\n </label>\n\n <c8y-application-properties-form\n [application]=\"newAppConfig\"\n class=\"d-block fit-w\"\n [disabled]=\"disableForm\"\n ></c8y-application-properties-form>\n</ng-container>\n<c8y-progress-bar\n *ngIf=\"inProgress\"\n [message]=\"'Duplicating\u2026' | translate\"\n class=\"text-center d-block\"\n></c8y-progress-bar>\n\n<c8y-wizard-footer>\n <button\n *ngIf=\"!isFirstStep\"\n (click)=\"back()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Back' | translate }}\"\n >\n {{ 'Back' | translate }}\n </button>\n <button (click)=\"cancel()\" class=\"btn btn-default\" title=\"{{ 'Cancel' | translate }}\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n (click)=\"duplicateApp()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-primary\"\n type=\"button\"\n title=\"{{ 'Duplicate' | translate }}\"\n >\n {{ 'Duplicate' | translate }}\n </button>\n</c8y-wizard-footer>\n", dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ProgressBarComponent, selector: "c8y-progress-bar", inputs: ["message", "progress"] }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.WizardFooterComponent, selector: "c8y-wizard-footer" }, { kind: "component", type: ApplicationPropertiesFormComponent, selector: "c8y-application-properties-form", inputs: ["application", "disabled"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }] });
|
|
1148
1231
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DuplicateApplicationPropertiesComponent, decorators: [{
|
|
1149
1232
|
type: Component,
|
|
1150
1233
|
args: [{ selector: 'c8y-duplicate-application-properties', template: "<p\n class=\"p-16 text-center text-medium separator-bottom sticky-top bg-level-0 fit-w\"\n *ngIf=\"!inProgress\"\n>\n {{ 'Provide application details' | translate }}\n</p>\n\n<ng-container *ngIf=\"!inProgress\">\n <label class=\"c8y-switch\" *ngIf=\"isSubscribedApp$ | async\">\n <input type=\"checkbox\" [(ngModel)]=\"disableForm\" (change)=\"getAppConfig()\" />\n <span></span> {{ 'Overrule subscribed application' | translate }}\n </label>\n\n <c8y-application-properties-form\n [application]=\"newAppConfig\"\n class=\"d-block fit-w\"\n [disabled]=\"disableForm\"\n ></c8y-application-properties-form>\n</ng-container>\n<c8y-progress-bar\n *ngIf=\"inProgress\"\n [message]=\"'Duplicating\u2026' | translate\"\n class=\"text-center d-block\"\n></c8y-progress-bar>\n\n<c8y-wizard-footer>\n <button\n *ngIf=\"!isFirstStep\"\n (click)=\"back()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Back' | translate }}\"\n >\n {{ 'Back' | translate }}\n </button>\n <button (click)=\"cancel()\" class=\"btn btn-default\" title=\"{{ 'Cancel' | translate }}\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n (click)=\"duplicateApp()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-primary\"\n type=\"button\"\n title=\"{{ 'Duplicate' | translate }}\"\n >\n {{ 'Duplicate' | translate }}\n </button>\n</c8y-wizard-footer>\n" }]
|
|
1151
|
-
}], ctorParameters: function () { return [{ type: i1$1.BsModalRef }, { type: EcosystemService }, { type: i3.ApplicationService }]; }, propDecorators: { stepper: [{
|
|
1234
|
+
}], ctorParameters: function () { return [{ type: i1$1.BsModalRef }, { type: EcosystemService }, { type: i3.ApplicationService }, { type: i2.GainsightService }]; }, propDecorators: { stepper: [{
|
|
1152
1235
|
type: Input
|
|
1153
1236
|
}], existingApps: [{
|
|
1154
1237
|
type: Input
|
|
@@ -1385,5 +1468,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
1385
1468
|
* Generated bundle index. Do not edit.
|
|
1386
1469
|
*/
|
|
1387
1470
|
|
|
1388
|
-
export { APP_STATE, AddApplicationComponent, ApplicationCardComponent, ApplicationPropertiesFormComponent, DuplicateApplicationComponent, DuplicateApplicationListComponent, DuplicateApplicationPropertiesComponent, ERROR_MESSAGES, ERROR_TYPE, EcosystemService, PackageVersionSelectComponent, SharedEcosystemModule, UploadArchiveComponent, Wizards, packageProperties };
|
|
1471
|
+
export { APP_STATE, AddApplicationComponent, ApplicationCardComponent, ApplicationPropertiesFormComponent, DuplicateApplicationComponent, DuplicateApplicationListComponent, DuplicateApplicationPropertiesComponent, ERROR_MESSAGES, ERROR_TYPE, EcosystemService, PRODUCT_EXPERIENCE, PackageVersionSelectComponent, SharedEcosystemModule, UploadArchiveComponent, Wizards, packageProperties };
|
|
1389
1472
|
//# sourceMappingURL=c8y-ngx-components-ecosystem-shared.mjs.map
|