@c8y/ngx-components 1024.18.1 → 1024.18.9
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/fesm2022/c8y-ngx-components-actility-device-registration.mjs +1 -1
- package/fesm2022/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-asset-properties.mjs +67 -20
- package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs +75 -13
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +2 -4
- package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +6 -8
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +98 -19
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +4 -4
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +7 -7
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +5 -3
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +52 -7
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-file-preview.mjs +2 -2
- package/fesm2022/c8y-ngx-components-file-preview.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector.mjs +6 -6
- package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +1 -1
- package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operation-picker.mjs +2 -2
- package/fesm2022/c8y-ngx-components-operation-picker.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-register-device.mjs +4 -4
- package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +2 -3
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +2 -2
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +2 -2
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +2 -4
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +2 -3
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +1 -1
- package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +2 -2
- package/fesm2022/c8y-ngx-components-static-assets-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +3 -4
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-scada.mjs +10 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-scada.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs +4 -4
- package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +18 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-scada.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-scada.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +59 -19
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +3 -2
- package/locales/es.po +3 -3
- package/locales/fr.po +3 -3
- package/locales/ja_JP.po +2 -2
- package/locales/ko.po +3 -3
- package/locales/locales.pot +1 -1
- package/locales/nl.po +3 -3
- package/locales/pl.po +2 -3
- package/locales/pt_BR.po +2 -3
- package/locales/zh_CN.po +2 -2
- package/locales/zh_TW.po +3 -3
- package/package.json +1 -1
- package/types/c8y-ngx-components-asset-properties.d.ts +9 -1
- package/types/c8y-ngx-components-asset-properties.d.ts.map +1 -1
- package/types/c8y-ngx-components-assets-navigator.d.ts +30 -3
- package/types/c8y-ngx-components-assets-navigator.d.ts.map +1 -1
- package/types/c8y-ngx-components-branding-shared-lazy-add-branding-modal.d.ts.map +1 -1
- package/types/c8y-ngx-components-context-dashboard.d.ts +44 -1
- package/types/c8y-ngx-components-context-dashboard.d.ts.map +1 -1
- package/types/c8y-ngx-components-echart-models.d.ts +9 -0
- package/types/c8y-ngx-components-echart-models.d.ts.map +1 -1
- package/types/c8y-ngx-components-echart.d.ts +32 -5
- package/types/c8y-ngx-components-echart.d.ts.map +1 -1
- package/types/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.d.ts.map +1 -1
- package/types/c8y-ngx-components-widgets-implementations-datapoints-graph.d.ts +6 -0
- package/types/c8y-ngx-components-widgets-implementations-datapoints-graph.d.ts.map +1 -1
- package/types/c8y-ngx-components.d.ts +50 -2
- package/types/c8y-ngx-components.d.ts.map +1 -1
|
@@ -16901,6 +16901,12 @@ class ModalComponent {
|
|
|
16901
16901
|
* CSS classes for modal header.
|
|
16902
16902
|
*/
|
|
16903
16903
|
this.headerClasses = '';
|
|
16904
|
+
/**
|
|
16905
|
+
* Lets the modal content reach the dialog edges, for lists, tables, steppers and previews.
|
|
16906
|
+
* By default the body is inset by the same amount as the header and the footer, so that its
|
|
16907
|
+
* content lines up with the title.
|
|
16908
|
+
*/
|
|
16909
|
+
this.flushBody = false;
|
|
16904
16910
|
this._labels = { ok: gettext$1('OK'), cancel: gettext$1('Cancel') };
|
|
16905
16911
|
}
|
|
16906
16912
|
/**
|
|
@@ -16947,11 +16953,11 @@ class ModalComponent {
|
|
|
16947
16953
|
}
|
|
16948
16954
|
}
|
|
16949
16955
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ModalComponent, deps: [{ token: i1$6.BsModalRef, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16950
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: ModalComponent, isStandalone: true, selector: "c8y-modal", inputs: { disabled: "disabled", close: "close", dismiss: "dismiss", title: "title", body: "body", customFooter: "customFooter", headerClasses: "headerClasses", labels: "labels" }, outputs: { onDismiss: "onDismiss", onClose: "onClose" }, host: { listeners: { "document:keydown.enter": "onEnterKeyDown($event)" } }, ngImport: i0, template: "<div class=\"viewport-modal\">\n <div\n class=\"modal-header {{ headerClasses }}\"\n [ngClass]=\"{ separator: title }\"\n >\n <ng-content select=\"[c8y-modal-title]\"></ng-content>\n\n @if (title) {\n <div\n class=\"modal-title\"\n id=\"modal-title\"\n >\n {{ title | translate }}\n </div>\n }\n </div>\n\n <div\n class=\"modal-inner-scroll\"\n id=\"modal-body\"\n >\n <div
|
|
16956
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: ModalComponent, isStandalone: true, selector: "c8y-modal", inputs: { disabled: "disabled", close: "close", dismiss: "dismiss", title: "title", body: "body", customFooter: "customFooter", headerClasses: "headerClasses", flushBody: "flushBody", labels: "labels" }, outputs: { onDismiss: "onDismiss", onClose: "onClose" }, host: { listeners: { "document:keydown.enter": "onEnterKeyDown($event)" } }, ngImport: i0, template: "<div class=\"viewport-modal\">\n <div\n class=\"modal-header {{ headerClasses }}\"\n [ngClass]=\"{ separator: title }\"\n >\n <ng-content select=\"[c8y-modal-title]\"></ng-content>\n\n @if (title) {\n <div\n class=\"modal-title\"\n id=\"modal-title\"\n >\n {{ title | translate }}\n </div>\n }\n </div>\n\n <div\n class=\"modal-inner-scroll\"\n id=\"modal-body\"\n >\n <div\n [ngClass]=\"{\n 'modal-body': !customFooter,\n 'modal-body--flush': !customFooter && flushBody,\n 'd-contents': customFooter\n }\"\n >\n @if (title) {\n <p class=\"text-center text-break-word\">\n {{ body }}\n </p>\n }\n\n <ng-content></ng-content>\n </div>\n </div>\n\n <ng-content select=\"[c8y-modal-footer-custom]\"></ng-content>\n\n @if (!customFooter) {\n <div class=\"modal-footer\">\n <ng-content select=\"[c8y-modal-footer]\"></ng-content>\n\n @if (labels.cancel) {\n <button\n class=\"btn btn-default\"\n title=\"{{ labels.cancel | translate }}\"\n type=\"button\"\n data-cy=\"c8y-modal--dismiss\"\n (click)=\"_dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n }\n\n @if (labels.ok) {\n <button\n class=\"btn btn-primary\"\n title=\"{{ labels.ok | translate }}\"\n type=\"button\"\n data-cy=\"c8y-modal--confirm\"\n (click)=\"_close()\"\n [disabled]=\"disabled\"\n >\n {{ labels.ok | translate }}\n </button>\n }\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
16951
16957
|
}
|
|
16952
16958
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ModalComponent, decorators: [{
|
|
16953
16959
|
type: Component,
|
|
16954
|
-
args: [{ selector: 'c8y-modal', standalone: true, imports: [NgClass,
|
|
16960
|
+
args: [{ selector: 'c8y-modal', standalone: true, imports: [NgClass, C8yTranslatePipe], changeDetection: ChangeDetectionStrategy.Eager, template: "<div class=\"viewport-modal\">\n <div\n class=\"modal-header {{ headerClasses }}\"\n [ngClass]=\"{ separator: title }\"\n >\n <ng-content select=\"[c8y-modal-title]\"></ng-content>\n\n @if (title) {\n <div\n class=\"modal-title\"\n id=\"modal-title\"\n >\n {{ title | translate }}\n </div>\n }\n </div>\n\n <div\n class=\"modal-inner-scroll\"\n id=\"modal-body\"\n >\n <div\n [ngClass]=\"{\n 'modal-body': !customFooter,\n 'modal-body--flush': !customFooter && flushBody,\n 'd-contents': customFooter\n }\"\n >\n @if (title) {\n <p class=\"text-center text-break-word\">\n {{ body }}\n </p>\n }\n\n <ng-content></ng-content>\n </div>\n </div>\n\n <ng-content select=\"[c8y-modal-footer-custom]\"></ng-content>\n\n @if (!customFooter) {\n <div class=\"modal-footer\">\n <ng-content select=\"[c8y-modal-footer]\"></ng-content>\n\n @if (labels.cancel) {\n <button\n class=\"btn btn-default\"\n title=\"{{ labels.cancel | translate }}\"\n type=\"button\"\n data-cy=\"c8y-modal--dismiss\"\n (click)=\"_dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n }\n\n @if (labels.ok) {\n <button\n class=\"btn btn-primary\"\n title=\"{{ labels.ok | translate }}\"\n type=\"button\"\n data-cy=\"c8y-modal--confirm\"\n (click)=\"_close()\"\n [disabled]=\"disabled\"\n >\n {{ labels.ok | translate }}\n </button>\n }\n </div>\n }\n</div>\n" }]
|
|
16955
16961
|
}], ctorParameters: () => [{ type: i1$6.BsModalRef, decorators: [{
|
|
16956
16962
|
type: Optional
|
|
16957
16963
|
}] }], propDecorators: { onDismiss: [{
|
|
@@ -16972,6 +16978,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
|
|
|
16972
16978
|
type: Input
|
|
16973
16979
|
}], headerClasses: [{
|
|
16974
16980
|
type: Input
|
|
16981
|
+
}], flushBody: [{
|
|
16982
|
+
type: Input
|
|
16975
16983
|
}], labels: [{
|
|
16976
16984
|
type: Input
|
|
16977
16985
|
}], onEnterKeyDown: [{
|
|
@@ -21739,7 +21747,7 @@ class PasswordConfirmModalComponent {
|
|
|
21739
21747
|
this.modal._dismiss();
|
|
21740
21748
|
}
|
|
21741
21749
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PasswordConfirmModalComponent, deps: [{ token: i1.UserService }, { token: AppStateService }, { token: i1.FetchClient }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21742
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: PasswordConfirmModalComponent, isStandalone: true, selector: "c8y-password-confirm-modal", outputs: { passwordConfirmedEmitter: "passwordConfirmedEmitter" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true }], ngImport: i0, template: "<c8y-modal [customFooter]=\"true\" [title]=\"'Confirm your current password' | translate\" #modal>\r\n <form #confirmForm=\"ngForm\" (ngSubmit)=\"confirmForm.form.valid && passwordConfirm()\">\r\n <div class=\"d-block p-24 p-b-0\">\r\n <c8y-form-group [hasWarning]=\"true\">\r\n <label translate for=\"currentPassword\">Enter your password</label>\r\n <input\r\n id=\"currentPassword\"\r\n [(ngModel)]=\"password\"\r\n type=\"password\"\r\n name=\"password\"\r\n class=\"form-control\"\r\n placeholder=\"{{ 'Enter your password' | translate }}\"\r\n required\r\n />\r\n <c8y-messages>\r\n <c8y-message translate>\r\n Enter the password of the user that you are currently logged in with.\r\n </c8y-message>\r\n </c8y-messages>\r\n </c8y-form-group>\r\n </div>\r\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom\">\r\n <button\r\n title=\"{{ 'Cancel' | translate }}\"\r\n class=\"btn btn-default\"\r\n type=\"button\"\r\n (click)=\"cancel()\"\r\n >\r\n {{ 'Cancel' | translate }}\r\n </button>\r\n <button\r\n title=\"{{ 'Confirm' | translate }}\"\r\n class=\"btn btn-primary\"\r\n type=\"submit\"\r\n [disabled]=\"!confirmForm.form.valid || loading\"\r\n >\r\n {{ 'Confirm' | translate }}\r\n </button>\r\n </div>\r\n </form>\r\n</c8y-modal>\r\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "ngmodule", type: FormsModule$1 }, { kind: "directive", type: i1$7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$7.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: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
21750
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: PasswordConfirmModalComponent, isStandalone: true, selector: "c8y-password-confirm-modal", outputs: { passwordConfirmedEmitter: "passwordConfirmedEmitter" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true }], ngImport: i0, template: "<c8y-modal [customFooter]=\"true\" [title]=\"'Confirm your current password' | translate\" #modal>\r\n <form #confirmForm=\"ngForm\" (ngSubmit)=\"confirmForm.form.valid && passwordConfirm()\">\r\n <div class=\"d-block p-24 p-b-0\">\r\n <c8y-form-group [hasWarning]=\"true\">\r\n <label translate for=\"currentPassword\">Enter your password</label>\r\n <input\r\n id=\"currentPassword\"\r\n [(ngModel)]=\"password\"\r\n type=\"password\"\r\n name=\"password\"\r\n class=\"form-control\"\r\n placeholder=\"{{ 'Enter your password' | translate }}\"\r\n required\r\n />\r\n <c8y-messages>\r\n <c8y-message translate>\r\n Enter the password of the user that you are currently logged in with.\r\n </c8y-message>\r\n </c8y-messages>\r\n </c8y-form-group>\r\n </div>\r\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom\">\r\n <button\r\n title=\"{{ 'Cancel' | translate }}\"\r\n class=\"btn btn-default\"\r\n type=\"button\"\r\n (click)=\"cancel()\"\r\n >\r\n {{ 'Cancel' | translate }}\r\n </button>\r\n <button\r\n title=\"{{ 'Confirm' | translate }}\"\r\n class=\"btn btn-primary\"\r\n type=\"submit\"\r\n [disabled]=\"!confirmForm.form.valid || loading\"\r\n >\r\n {{ 'Confirm' | translate }}\r\n </button>\r\n </div>\r\n </form>\r\n</c8y-modal>\r\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "flushBody", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "ngmodule", type: FormsModule$1 }, { kind: "directive", type: i1$7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$7.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: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
21743
21751
|
}
|
|
21744
21752
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PasswordConfirmModalComponent, decorators: [{
|
|
21745
21753
|
type: Component,
|
|
@@ -21774,7 +21782,7 @@ class CurrentPasswordModalComponent {
|
|
|
21774
21782
|
this.modal.hide();
|
|
21775
21783
|
}
|
|
21776
21784
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: CurrentPasswordModalComponent, deps: [{ token: i1$6.BsModalRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21777
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: CurrentPasswordModalComponent, isStandalone: true, selector: "c8y-current-password-modal", outputs: { currentPasswordEmitter: "currentPasswordEmitter" }, ngImport: i0, template: "<c8y-modal [customFooter]=\"true\" [title]=\"'Confirm your current password' | translate\" #modal>\n <form #confirmForm=\"ngForm\" (ngSubmit)=\"confirmForm.form.valid && passwordConfirm()\">\n <div class=\"d-block p-24\">\n <c8y-form-group [hasWarning]=\"true\">\n <label translate for=\"currentPassword\">Enter your password</label>\n <input\n id=\"currentPassword\"\n [(ngModel)]=\"password\"\n type=\"password\"\n name=\"password\"\n class=\"form-control\"\n required\n />\n <c8y-messages>\n <c8y-message translate>\n The password of the user that you are currently logged in with.\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Confirm' | translate }}\"\n class=\"btn btn-primary\"\n [attr.data-cy]=\"'confirm-current-password-confirm-button'\"\n type=\"submit\"\n [disabled]=\"!confirmForm.form.valid\"\n >\n {{ 'Confirm' | translate }}\n </button>\n </div>\n </form>\n</c8y-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "ngmodule", type: FormsModule$1 }, { kind: "directive", type: i1$7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$7.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: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
21785
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: CurrentPasswordModalComponent, isStandalone: true, selector: "c8y-current-password-modal", outputs: { currentPasswordEmitter: "currentPasswordEmitter" }, ngImport: i0, template: "<c8y-modal [customFooter]=\"true\" [title]=\"'Confirm your current password' | translate\" #modal>\n <form #confirmForm=\"ngForm\" (ngSubmit)=\"confirmForm.form.valid && passwordConfirm()\">\n <div class=\"d-block p-24\">\n <c8y-form-group [hasWarning]=\"true\">\n <label translate for=\"currentPassword\">Enter your password</label>\n <input\n id=\"currentPassword\"\n [(ngModel)]=\"password\"\n type=\"password\"\n name=\"password\"\n class=\"form-control\"\n required\n />\n <c8y-messages>\n <c8y-message translate>\n The password of the user that you are currently logged in with.\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Confirm' | translate }}\"\n class=\"btn btn-primary\"\n [attr.data-cy]=\"'confirm-current-password-confirm-button'\"\n type=\"submit\"\n [disabled]=\"!confirmForm.form.valid\"\n >\n {{ 'Confirm' | translate }}\n </button>\n </div>\n </form>\n</c8y-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "flushBody", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "ngmodule", type: FormsModule$1 }, { kind: "directive", type: i1$7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$7.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: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
21778
21786
|
}
|
|
21779
21787
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: CurrentPasswordModalComponent, decorators: [{
|
|
21780
21788
|
type: Component,
|
|
@@ -22013,7 +22021,7 @@ class UserTotpSetupComponent {
|
|
|
22013
22021
|
this.modal.hide();
|
|
22014
22022
|
}
|
|
22015
22023
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: UserTotpSetupComponent, deps: [{ token: i1.UserService }, { token: ModalService }, { token: i1$6.BsModalRef }, { token: SimplifiedAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22016
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: UserTotpSetupComponent, isStandalone: true, selector: "c8y-user-totp-setup", ngImport: i0, template: "<c8y-modal\n [title]=\"'Set up two-factor authentication' | translate\"\n [headerClasses]=\"'dialog-header'\"\n [customFooter]=\"true\"\n>\n <ng-container c8y-modal-title>\n <span class=\"dlt-c8y-icon-phonelink-lock\"></span>\n </ng-container>\n\n <c8y-totp-setup></c8y-totp-setup>\n <c8y-totp-challenge [isModal]=\"true\" (onSuccess)=\"totpSetupVerified()\" (totpUnconfirmedEmitter)=\"close()\"></c8y-totp-challenge>\n</c8y-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: TotpSetupComponent, selector: "c8y-totp-setup" }, { kind: "component", type: TotpChallengeComponent, selector: "c8y-totp-challenge", inputs: ["verify", "loading", "hasError", "isModal"], outputs: ["onSuccess", "totpUnconfirmedEmitter"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
22024
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: UserTotpSetupComponent, isStandalone: true, selector: "c8y-user-totp-setup", ngImport: i0, template: "<c8y-modal\n [title]=\"'Set up two-factor authentication' | translate\"\n [headerClasses]=\"'dialog-header'\"\n [customFooter]=\"true\"\n>\n <ng-container c8y-modal-title>\n <span class=\"dlt-c8y-icon-phonelink-lock\"></span>\n </ng-container>\n\n <c8y-totp-setup></c8y-totp-setup>\n <c8y-totp-challenge [isModal]=\"true\" (onSuccess)=\"totpSetupVerified()\" (totpUnconfirmedEmitter)=\"close()\"></c8y-totp-challenge>\n</c8y-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "flushBody", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: TotpSetupComponent, selector: "c8y-totp-setup" }, { kind: "component", type: TotpChallengeComponent, selector: "c8y-totp-challenge", inputs: ["verify", "loading", "hasError", "isModal"], outputs: ["onSuccess", "totpUnconfirmedEmitter"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
22017
22025
|
}
|
|
22018
22026
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: UserTotpSetupComponent, decorators: [{
|
|
22019
22027
|
type: Component,
|
|
@@ -22863,7 +22871,7 @@ class UserEditModalComponent {
|
|
|
22863
22871
|
this.auth.updateCredentials(newCredentials);
|
|
22864
22872
|
}
|
|
22865
22873
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: UserEditModalComponent, deps: [{ token: i1$6.BsModalRef }, { token: i1.UserService }, { token: AppStateService }, { token: i1.BasicAuth }, { token: i1.FetchClient }, { token: AlertService }, { token: UserPreferencesService }, { token: ModalService }, { token: GainsightService }, { token: CookieBannerService }, { token: PasswordService }, { token: UserEngagementsService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22866
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: UserEditModalComponent, isStandalone: true, selector: "c8y-user-edit-modal", ngImport: i0, template: "<c8y-modal\n [title]=\"'Edit user' | translate\"\n [customFooter]=\"true\"\n (onDismiss)=\"onDismiss()\"\n>\n <c8y-user-edit\n [user]=\"ui.currentUser | async\"\n [loading]=\"loading\"\n [isUsageTrackingEnabled]=\"currentUsageTrackingState\"\n [isUserEngagementPreferenceEnabled]=\"currentUserEngagementPreferenceInitialState\"\n [showProductExperienceOptions]=\"showProductExperienceOptions\"\n [focusOnNewPassword]=\"passwordChange\"\n (onUsageTrackingChange)=\"onUsageTrackingChange($event)\"\n (onUserEngagementPreferenceChange)=\"onUserEngagementPreferenceChange($event)\"\n (onUser)=\"updateAndClose($event)\"\n (onCancel)=\"onDismiss()\"\n ></c8y-user-edit>\n</c8y-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: UserEditComponent, selector: "c8y-user-edit", inputs: ["loading", "user", "showProductExperienceOptions", "isUsageTrackingEnabled", "isUserEngagementPreferenceEnabled", "focusOnNewPassword"], outputs: ["onUser", "onUsageTrackingChange", "onUserEngagementPreferenceChange", "onCancel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
22874
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: UserEditModalComponent, isStandalone: true, selector: "c8y-user-edit-modal", ngImport: i0, template: "<c8y-modal\n [title]=\"'Edit user' | translate\"\n [customFooter]=\"true\"\n (onDismiss)=\"onDismiss()\"\n>\n <c8y-user-edit\n [user]=\"ui.currentUser | async\"\n [loading]=\"loading\"\n [isUsageTrackingEnabled]=\"currentUsageTrackingState\"\n [isUserEngagementPreferenceEnabled]=\"currentUserEngagementPreferenceInitialState\"\n [showProductExperienceOptions]=\"showProductExperienceOptions\"\n [focusOnNewPassword]=\"passwordChange\"\n (onUsageTrackingChange)=\"onUsageTrackingChange($event)\"\n (onUserEngagementPreferenceChange)=\"onUserEngagementPreferenceChange($event)\"\n (onUser)=\"updateAndClose($event)\"\n (onCancel)=\"onDismiss()\"\n ></c8y-user-edit>\n</c8y-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "flushBody", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: UserEditComponent, selector: "c8y-user-edit", inputs: ["loading", "user", "showProductExperienceOptions", "isUsageTrackingEnabled", "isUserEngagementPreferenceEnabled", "focusOnNewPassword"], outputs: ["onUser", "onUsageTrackingChange", "onUserEngagementPreferenceChange", "onCancel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
22867
22875
|
}
|
|
22868
22876
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: UserEditModalComponent, decorators: [{
|
|
22869
22877
|
type: Component,
|
|
@@ -33478,6 +33486,7 @@ class HelpComponent {
|
|
|
33478
33486
|
* @ignore
|
|
33479
33487
|
*/
|
|
33480
33488
|
this.isInit = false;
|
|
33489
|
+
this.isContextHelpAvailable$ = this.helpService.contextHelp.pipe(map(contextHelp => typeof contextHelp === 'string' ? !!contextHelp : contextHelp && docsService.isDocsEnabled()));
|
|
33481
33490
|
}
|
|
33482
33491
|
/**
|
|
33483
33492
|
* The component is shown by default and therefore breaks e2e test. This is
|
|
@@ -33491,18 +33500,12 @@ class HelpComponent {
|
|
|
33491
33500
|
* Builds the URL based on the src. The Base URL can be set in the application options docBaseUrl.
|
|
33492
33501
|
* @param src The source of the help on the guide.
|
|
33493
33502
|
* @param index This flag is used to call the index.json content of a guide. For example, "https://cumulocity.com/docs/cockpit/data-explorer/index.json".
|
|
33503
|
+
* @returns The URL of the documentation page, or `null` if documentation links are switched off.
|
|
33494
33504
|
*/
|
|
33495
33505
|
getUrl(src = '', index = false) {
|
|
33496
|
-
|
|
33497
|
-
|
|
33498
|
-
|
|
33499
|
-
typeof this.helpService.contextHelp.value === 'string'
|
|
33500
|
-
? new URL(this.docsService.getUrlWithDocsVersion(this.helpService.contextHelp.value))
|
|
33501
|
-
: new URL(this.docsService.getBaseUrl());
|
|
33502
|
-
}
|
|
33503
|
-
catch (error) {
|
|
33504
|
-
docsUrl = new URL(this.docsService.getBaseUrl());
|
|
33505
|
-
console.warn(error);
|
|
33506
|
+
const docsUrl = this.resolveBaseUrl();
|
|
33507
|
+
if (!docsUrl) {
|
|
33508
|
+
return null;
|
|
33506
33509
|
}
|
|
33507
33510
|
const [url, hashFragment] = src.split('#');
|
|
33508
33511
|
this.sectionHeading = hashFragment;
|
|
@@ -33547,6 +33550,43 @@ class HelpComponent {
|
|
|
33547
33550
|
this.icon = this.resolveIcon();
|
|
33548
33551
|
}
|
|
33549
33552
|
}
|
|
33553
|
+
/**
|
|
33554
|
+
* Resolves the base URL the help content is loaded from: either the one provided by the
|
|
33555
|
+
* `contextHelp` option, or the documentation base URL. Returns `null` if neither of them
|
|
33556
|
+
* yields a usable URL.
|
|
33557
|
+
*/
|
|
33558
|
+
resolveBaseUrl() {
|
|
33559
|
+
const contextHelp = this.helpService.contextHelp.value;
|
|
33560
|
+
if (typeof contextHelp === 'string' && contextHelp) {
|
|
33561
|
+
const contextHelpUrl = this.toAbsoluteUrl(this.docsService.getUrlWithDocsVersion(contextHelp));
|
|
33562
|
+
if (contextHelpUrl) {
|
|
33563
|
+
return contextHelpUrl;
|
|
33564
|
+
}
|
|
33565
|
+
console.warn(`Invalid contextHelp URL: "${contextHelp}", falling back to docsBaseUrl.`);
|
|
33566
|
+
}
|
|
33567
|
+
if (!this.docsService.isDocsEnabled()) {
|
|
33568
|
+
return null;
|
|
33569
|
+
}
|
|
33570
|
+
return this.toAbsoluteUrl(this.docsService.getBaseUrl());
|
|
33571
|
+
}
|
|
33572
|
+
/**
|
|
33573
|
+
* Turns a documentation base URL into an absolute one. A base URL relative to the host the
|
|
33574
|
+
* application is served from (`docsBaseUrl: '/'`, which `DocsService.getBaseUrl` trims to an
|
|
33575
|
+
* empty string) is resolved against that host. Returns `null` for anything that is not a valid
|
|
33576
|
+
* URL.
|
|
33577
|
+
*/
|
|
33578
|
+
toAbsoluteUrl(baseUrl) {
|
|
33579
|
+
if (isNil(baseUrl)) {
|
|
33580
|
+
return null;
|
|
33581
|
+
}
|
|
33582
|
+
const isRelativeToHost = baseUrl === '' || baseUrl.startsWith('/');
|
|
33583
|
+
try {
|
|
33584
|
+
return isRelativeToHost ? new URL(baseUrl, window.location.origin) : new URL(baseUrl);
|
|
33585
|
+
}
|
|
33586
|
+
catch {
|
|
33587
|
+
return null;
|
|
33588
|
+
}
|
|
33589
|
+
}
|
|
33550
33590
|
requestContent() {
|
|
33551
33591
|
const req = new XMLHttpRequest();
|
|
33552
33592
|
req.onreadystatechange = () => this.render(req);
|
|
@@ -33566,7 +33606,7 @@ class HelpComponent {
|
|
|
33566
33606
|
const icon = Array.from(document.querySelector('nav .active i').classList).find(classes => classes.startsWith('c8y-icon-') || classes.startsWith('dlt-c8y-icon-'));
|
|
33567
33607
|
return icon.replace('dlt-c8y-icon-', '').replace('c8y-icon-', 'c8y-');
|
|
33568
33608
|
}
|
|
33569
|
-
catch
|
|
33609
|
+
catch {
|
|
33570
33610
|
return 'life-saver';
|
|
33571
33611
|
}
|
|
33572
33612
|
}
|
|
@@ -33587,7 +33627,7 @@ class HelpComponent {
|
|
|
33587
33627
|
}
|
|
33588
33628
|
}
|
|
33589
33629
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: HelpComponent, deps: [{ token: DocsService }, { token: HelpService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33590
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: HelpComponent, isStandalone: true, selector: "c8y-help", inputs: { src: "src", isCollapsed: "isCollapsed", priority: "priority", icon: "icon" }, ngImport: i0, template: "@if (
|
|
33630
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: HelpComponent, isStandalone: true, selector: "c8y-help", inputs: { src: "src", isCollapsed: "isCollapsed", priority: "priority", icon: "icon" }, ngImport: i0, template: "@if (isContextHelpAvailable$ | async) {\n <c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-md-8\"\n [priority]=\"priority\"\n >\n <button\n class=\"btn-help hidden-xs\"\n [attr.aria-label]=\"'About this page' | translate\"\n tooltip=\"{{ 'About this page' | translate }}\"\n placement=\"left\"\n container=\"body\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n data-cy=\"help--help-btn\"\n [delay]=\"750\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n ></button>\n <button\n class=\"btn btn-link visible-xs\"\n title=\"{{ 'About this page' | translate }}\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n >\n <i\n class=\"text-info\"\n c8yIcon=\"help-outline\"\n ></i>\n {{ 'About this page' | translate }}\n </button>\n </c8y-action-bar-item>\n}\n\n<div\n class=\"c8y-help-drawer\"\n id=\"collapseHelp\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n data-cy=\"c8y-help--c8y-help-drawer-block\"\n >\n @if (isLoading) {\n <c8y-loading></c8y-loading>\n } @else {\n <div class=\"d-flex\">\n <i\n class=\"c8y-icon-duocolor icon-48\"\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n ></i>\n @if (!hasError) {\n <div class=\"p-l-16 flex-grow\">\n @if (\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n ) {\n <div class=\"alert alert-info m-b-16\">\n <button\n class=\"close\"\n [attr.aria-label]=\"'Close' | translate\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n }\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div\n class=\"help-content\"\n id=\"helpContent\"\n [innerHTML]=\"sectionContent\"\n data-cy=\"help--c8y-help-content\"\n ></div>\n </div>\n }\n\n @if (hasError) {\n <div class=\"p-l-16 p-t-16 flex-grow\">\n <h4\n class=\"text-bold m-b-16\"\n translate\n >\n Content couldn't be loaded.\n </h4>\n <div class=\"help-content\">\n <p translate>Check internet connection or reload page.</p>\n </div>\n </div>\n }\n </div>\n }\n </div>\n @if (!isLoading && !hasError) {\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n data-cy=\"c8y-help--c8y-help-drawer-footer\"\n >\n <button\n class=\"btn btn-default\"\n [title]=\"'Close help' | translate\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n data-cy=\"c8y-help--close-btn\"\n (click)=\"toggle()\"\n translate\n >\n Close\n </button>\n <a\n class=\"btn btn-primary\"\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n target=\"_blank\"\n data-cy=\"c8y-help--user-guide\"\n rel=\"noopener noreferrer\"\n >\n @if (!hasError) {\n <span translate>\n Open the\n <span>user documentation</span>\n </span>\n } @else {\n <span translate>\n Check the\n <span>user documentation</span>\n </span>\n }\n </a>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1$4.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: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: CollapseModule }, { kind: "directive", type: i2$3.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "progressLabel", "message"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
33591
33631
|
}
|
|
33592
33632
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: HelpComponent, decorators: [{
|
|
33593
33633
|
type: Component,
|
|
@@ -33602,7 +33642,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
|
|
|
33602
33642
|
C8yTranslateDirective,
|
|
33603
33643
|
C8yTranslatePipe,
|
|
33604
33644
|
AsyncPipe
|
|
33605
|
-
], changeDetection: ChangeDetectionStrategy.Eager, template: "@if (
|
|
33645
|
+
], changeDetection: ChangeDetectionStrategy.Eager, template: "@if (isContextHelpAvailable$ | async) {\n <c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-md-8\"\n [priority]=\"priority\"\n >\n <button\n class=\"btn-help hidden-xs\"\n [attr.aria-label]=\"'About this page' | translate\"\n tooltip=\"{{ 'About this page' | translate }}\"\n placement=\"left\"\n container=\"body\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n data-cy=\"help--help-btn\"\n [delay]=\"750\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n ></button>\n <button\n class=\"btn btn-link visible-xs\"\n title=\"{{ 'About this page' | translate }}\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n >\n <i\n class=\"text-info\"\n c8yIcon=\"help-outline\"\n ></i>\n {{ 'About this page' | translate }}\n </button>\n </c8y-action-bar-item>\n}\n\n<div\n class=\"c8y-help-drawer\"\n id=\"collapseHelp\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n data-cy=\"c8y-help--c8y-help-drawer-block\"\n >\n @if (isLoading) {\n <c8y-loading></c8y-loading>\n } @else {\n <div class=\"d-flex\">\n <i\n class=\"c8y-icon-duocolor icon-48\"\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n ></i>\n @if (!hasError) {\n <div class=\"p-l-16 flex-grow\">\n @if (\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n ) {\n <div class=\"alert alert-info m-b-16\">\n <button\n class=\"close\"\n [attr.aria-label]=\"'Close' | translate\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n }\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div\n class=\"help-content\"\n id=\"helpContent\"\n [innerHTML]=\"sectionContent\"\n data-cy=\"help--c8y-help-content\"\n ></div>\n </div>\n }\n\n @if (hasError) {\n <div class=\"p-l-16 p-t-16 flex-grow\">\n <h4\n class=\"text-bold m-b-16\"\n translate\n >\n Content couldn't be loaded.\n </h4>\n <div class=\"help-content\">\n <p translate>Check internet connection or reload page.</p>\n </div>\n </div>\n }\n </div>\n }\n </div>\n @if (!isLoading && !hasError) {\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n data-cy=\"c8y-help--c8y-help-drawer-footer\"\n >\n <button\n class=\"btn btn-default\"\n [title]=\"'Close help' | translate\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n data-cy=\"c8y-help--close-btn\"\n (click)=\"toggle()\"\n translate\n >\n Close\n </button>\n <a\n class=\"btn btn-primary\"\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n target=\"_blank\"\n data-cy=\"c8y-help--user-guide\"\n rel=\"noopener noreferrer\"\n >\n @if (!hasError) {\n <span translate>\n Open the\n <span>user documentation</span>\n </span>\n } @else {\n <span translate>\n Check the\n <span>user documentation</span>\n </span>\n }\n </a>\n </div>\n }\n</div>\n" }]
|
|
33606
33646
|
}], ctorParameters: () => [{ type: DocsService }, { type: HelpService }], propDecorators: { src: [{
|
|
33607
33647
|
type: Input
|
|
33608
33648
|
}], isCollapsed: [{
|