@c8y/ngx-components 1022.33.0 → 1022.34.0
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/branding/shared/branding-tab.factory.d.ts +1 -1
- package/branding/shared/branding-tab.factory.d.ts.map +1 -1
- package/branding/shared/data/branding.type.d.ts +3 -2
- package/branding/shared/data/branding.type.d.ts.map +1 -1
- package/branding/shared/lazy/add-branding-modal/add-branding-modal.component.d.ts.map +1 -1
- package/branding/shared/lazy/apply-branding-to-app-modal/apply-branding-to-app-modal.component.d.ts.map +1 -1
- package/branding/shared/lazy/branding/branding.component.d.ts.map +1 -1
- package/branding/shared/lazy/branding-assets/branding-assets.component.d.ts +25 -0
- package/branding/shared/lazy/branding-assets/branding-assets.component.d.ts.map +1 -0
- package/branding/shared/lazy/branding-theme-form/branding-theme-form.component.d.ts +1 -0
- package/branding/shared/lazy/branding-theme-form/branding-theme-form.component.d.ts.map +1 -1
- package/branding/shared/lazy/index.d.ts +1 -0
- package/branding/shared/lazy/index.d.ts.map +1 -1
- package/branding/shared/shared-branding.module.d.ts +12 -4
- package/branding/shared/shared-branding.module.d.ts.map +1 -1
- package/core/clipboard/clipboard.service.d.ts +8 -2
- package/core/clipboard/clipboard.service.d.ts.map +1 -1
- package/core/common/files.service.d.ts +5 -1
- package/core/common/files.service.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +5 -1
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +15 -6
- package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +101 -28
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared.mjs +98 -40
- package/fesm2022/c8y-ngx-components-branding-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +143 -41
- package/fesm2022/c8y-ngx-components-static-assets-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +10 -6
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/locales.pot +33 -0
- package/package.json +1 -1
- package/static-assets/modal/index.d.ts +1 -0
- package/static-assets/modal/index.d.ts.map +1 -1
- package/static-assets/modal/static-asset-main-type.pipe.d.ts +10 -0
- package/static-assets/modal/static-asset-main-type.pipe.d.ts.map +1 -0
- package/static-assets/modal/static-assets-file-list/static-assets-file-list.component.d.ts +31 -0
- package/static-assets/modal/static-assets-file-list/static-assets-file-list.component.d.ts.map +1 -0
- package/static-assets/modal/static-assets-modal.component.d.ts +2 -14
- package/static-assets/modal/static-assets-modal.component.d.ts.map +1 -1
|
@@ -7,7 +7,8 @@ import { map, startWith, switchMap, shareReplay, distinctUntilChanged, filter, t
|
|
|
7
7
|
import * as i2$1 from '@angular/router';
|
|
8
8
|
import { RouterLink, RouterOutlet } from '@angular/router';
|
|
9
9
|
import * as i3 from '@c8y/ngx-components';
|
|
10
|
-
import {
|
|
10
|
+
import { ModalComponent, C8yTranslatePipe, C8yTranslateDirective, ListItemComponent, ListItemIconComponent, ListItemCheckboxComponent, AppIconComponent, ListItemBodyComponent, HumanizeAppNamePipe, CoreModule, BuiltInActionType, Status, BreadcrumbComponent, BreadcrumbItemComponent, TitleComponent, HelpComponent, ActionBarItemComponent, IconDirective, EmptyStateComponent, LoadingComponent, DataGridComponent, gettext as gettext$1, GENERIC_FILE_TYPE, ColorInputComponent } from '@c8y/ngx-components';
|
|
11
|
+
import { gettext } from '@c8y/ngx-components/gettext';
|
|
11
12
|
import * as i1 from '@c8y/client';
|
|
12
13
|
import { ApplicationType } from '@c8y/client';
|
|
13
14
|
import { saveAs } from 'file-saver';
|
|
@@ -15,18 +16,19 @@ import * as i3$1 from '@c8y/ngx-components/static-assets/data';
|
|
|
15
16
|
import * as i1$3 from 'ngx-bootstrap/modal';
|
|
16
17
|
import * as i2 from '@angular/forms';
|
|
17
18
|
import { ReactiveFormsModule, FormsModule, FormControl } from '@angular/forms';
|
|
18
|
-
import * as
|
|
19
|
-
import { NgIf,
|
|
19
|
+
import * as i5 from '@angular/common';
|
|
20
|
+
import { NgIf, AsyncPipe, NgForOf } from '@angular/common';
|
|
20
21
|
import { uniqBy, cloneDeep } from 'lodash-es';
|
|
21
22
|
import * as i1$1 from '@c8y/ngx-components/branding/shared/lazy/add-branding-modal';
|
|
22
|
-
import { gettext } from '@c8y/ngx-components/gettext';
|
|
23
23
|
import * as i1$4 from 'ngx-bootstrap/popover';
|
|
24
24
|
import { PopoverModule } from 'ngx-bootstrap/popover';
|
|
25
|
-
import * as i4
|
|
25
|
+
import * as i4 from 'ngx-bootstrap/collapse';
|
|
26
26
|
import { CollapseModule } from 'ngx-bootstrap/collapse';
|
|
27
27
|
import { StaticAssetsFilePickerComponent } from '@c8y/ngx-components/static-assets';
|
|
28
28
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
29
29
|
import { EditorComponent } from '@c8y/ngx-components/editor';
|
|
30
|
+
import { StaticAssetsFileListComponent } from '@c8y/ngx-components/static-assets/modal';
|
|
31
|
+
import * as i2$2 from '@ngx-translate/core';
|
|
30
32
|
|
|
31
33
|
class ApplyBrandingToAppService {
|
|
32
34
|
constructor(apps) {
|
|
@@ -98,11 +100,25 @@ class ApplyBrandingToAppModalComponent {
|
|
|
98
100
|
return this.formBuilder.group(tagsFormMap);
|
|
99
101
|
}
|
|
100
102
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ApplyBrandingToAppModalComponent, deps: [{ token: ApplyBrandingToAppService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
101
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: ApplyBrandingToAppModalComponent, isStandalone: true, selector: "c8y-apply-branding-to-app-modal", inputs: { currentTags: "currentTags" }, ngImport: i0, template: "<c8y-modal\n [title]=\"'Apply branding to apps' | translate\"\n [disabled]=\"!form || form.invalid || !brandableApps.length\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Save' }\"\n>\n <ng-container c8y-modal-title>\n <span c8yIcon=\"palette\"></span>\n </ng-container>\n <c8y-list-group\n class=\"m-b-0 no-border-last\"\n *ngIf=\"form\"\n [formGroup]=\"form\"\n >\n <c8y-li>\n <p\n class=\"text-center text-medium\"\n *ngIf=\"numberOfSelectedApps$ | async as numberOfApps; else noapps\"\n translate\n >\n {{ numberOfApps }} apps selected for branding\n </p>\n <ng-template #noapps>\n <p\n class=\"text-center text-medium\"\n translate\n >\n No apps selected for branding\n </p>\n </ng-template>\n </c8y-li>\n <c8y-li *ngFor=\"let app of brandableApps\">\n <c8y-li-icon>\n <c8y-app-icon\n class=\"icon-40\"\n [app]=\"app\"\n ></c8y-app-icon>\n </c8y-li-icon>\n <c8y-li-checkbox\n [attr.data-cy]=\"'branding-apply-branding-to-app-checkbox-' + app.contextPath\"\n [formControlName]=\"app.contextPath\"\n ></c8y-li-checkbox>\n <c8y-li-body class=\"p-t-8 d-block\">{{ app | humanizeAppName | async }}</c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n</c8y-modal>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "
|
|
103
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: ApplyBrandingToAppModalComponent, isStandalone: true, selector: "c8y-apply-branding-to-app-modal", inputs: { currentTags: "currentTags" }, ngImport: i0, template: "<c8y-modal\n [title]=\"'Apply branding to apps' | translate\"\n [disabled]=\"!form || form.invalid || !brandableApps.length\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Save' }\"\n>\n <ng-container c8y-modal-title>\n <span c8yIcon=\"palette\"></span>\n </ng-container>\n <c8y-list-group\n class=\"m-b-0 no-border-last\"\n *ngIf=\"form\"\n [formGroup]=\"form\"\n >\n <c8y-li>\n <p\n class=\"text-center text-medium\"\n *ngIf=\"numberOfSelectedApps$ | async as numberOfApps; else noapps\"\n translate\n >\n {{ numberOfApps }} apps selected for branding\n </p>\n <ng-template #noapps>\n <p\n class=\"text-center text-medium\"\n translate\n >\n No apps selected for branding\n </p>\n </ng-template>\n </c8y-li>\n <c8y-li *ngFor=\"let app of brandableApps\">\n <c8y-li-icon>\n <c8y-app-icon\n class=\"icon-40\"\n [app]=\"app\"\n ></c8y-app-icon>\n </c8y-li-icon>\n <c8y-li-checkbox\n [attr.data-cy]=\"'branding-apply-branding-to-app-checkbox-' + app.contextPath\"\n [formControlName]=\"app.contextPath\"\n ></c8y-li-checkbox>\n <c8y-li-body class=\"p-t-8 d-block\">{{ app | humanizeAppName | async }}</c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n</c8y-modal>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "component", type: AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "pipe", type: HumanizeAppNamePipe, name: "humanizeAppName" }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
102
104
|
}
|
|
103
105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ApplyBrandingToAppModalComponent, decorators: [{
|
|
104
106
|
type: Component,
|
|
105
|
-
args: [{ selector: 'c8y-apply-branding-to-app-modal', standalone: true, imports: [
|
|
107
|
+
args: [{ selector: 'c8y-apply-branding-to-app-modal', standalone: true, imports: [
|
|
108
|
+
NgIf,
|
|
109
|
+
AsyncPipe,
|
|
110
|
+
ReactiveFormsModule,
|
|
111
|
+
ModalComponent,
|
|
112
|
+
C8yTranslatePipe,
|
|
113
|
+
C8yTranslateDirective,
|
|
114
|
+
ListItemComponent,
|
|
115
|
+
ListItemIconComponent,
|
|
116
|
+
ListItemCheckboxComponent,
|
|
117
|
+
AppIconComponent,
|
|
118
|
+
ListItemBodyComponent,
|
|
119
|
+
HumanizeAppNamePipe,
|
|
120
|
+
NgForOf
|
|
121
|
+
], template: "<c8y-modal\n [title]=\"'Apply branding to apps' | translate\"\n [disabled]=\"!form || form.invalid || !brandableApps.length\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Save' }\"\n>\n <ng-container c8y-modal-title>\n <span c8yIcon=\"palette\"></span>\n </ng-container>\n <c8y-list-group\n class=\"m-b-0 no-border-last\"\n *ngIf=\"form\"\n [formGroup]=\"form\"\n >\n <c8y-li>\n <p\n class=\"text-center text-medium\"\n *ngIf=\"numberOfSelectedApps$ | async as numberOfApps; else noapps\"\n translate\n >\n {{ numberOfApps }} apps selected for branding\n </p>\n <ng-template #noapps>\n <p\n class=\"text-center text-medium\"\n translate\n >\n No apps selected for branding\n </p>\n </ng-template>\n </c8y-li>\n <c8y-li *ngFor=\"let app of brandableApps\">\n <c8y-li-icon>\n <c8y-app-icon\n class=\"icon-40\"\n [app]=\"app\"\n ></c8y-app-icon>\n </c8y-li-icon>\n <c8y-li-checkbox\n [attr.data-cy]=\"'branding-apply-branding-to-app-checkbox-' + app.contextPath\"\n [formControlName]=\"app.contextPath\"\n ></c8y-li-checkbox>\n <c8y-li-body class=\"p-t-8 d-block\">{{ app | humanizeAppName | async }}</c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n</c8y-modal>\n" }]
|
|
106
122
|
}], ctorParameters: () => [{ type: ApplyBrandingToAppService }, { type: i2.FormBuilder }], propDecorators: { currentTags: [{
|
|
107
123
|
type: Input
|
|
108
124
|
}] } });
|
|
@@ -346,7 +362,7 @@ class BrandingComponent {
|
|
|
346
362
|
{
|
|
347
363
|
type: 'preview',
|
|
348
364
|
icon: 'external-link',
|
|
349
|
-
text: gettext
|
|
365
|
+
text: gettext('Open preview'),
|
|
350
366
|
callback: async (entry, _reload) => {
|
|
351
367
|
this.brandings.openPreviewForBranding(entry.name);
|
|
352
368
|
}
|
|
@@ -354,7 +370,7 @@ class BrandingComponent {
|
|
|
354
370
|
{
|
|
355
371
|
type: 'duplicate',
|
|
356
372
|
icon: 'copy',
|
|
357
|
-
text: gettext
|
|
373
|
+
text: gettext('Duplicate'),
|
|
358
374
|
callback: async (entry, _reload) => {
|
|
359
375
|
await this.duplicateVersion(entry);
|
|
360
376
|
this.refresh();
|
|
@@ -363,7 +379,7 @@ class BrandingComponent {
|
|
|
363
379
|
{
|
|
364
380
|
type: 'apply-to-app',
|
|
365
381
|
icon: 'form',
|
|
366
|
-
text: gettext
|
|
382
|
+
text: gettext('Apply to specific apps'),
|
|
367
383
|
callback: async (entry, _reload) => {
|
|
368
384
|
await this.applyToApps(entry);
|
|
369
385
|
this.refresh();
|
|
@@ -372,7 +388,7 @@ class BrandingComponent {
|
|
|
372
388
|
{
|
|
373
389
|
type: 'set-as-default',
|
|
374
390
|
icon: 'globe1',
|
|
375
|
-
text: gettext
|
|
391
|
+
text: gettext('Set as global'),
|
|
376
392
|
showIf: (entry) => {
|
|
377
393
|
if (entry.tags?.includes('latest')) {
|
|
378
394
|
return false;
|
|
@@ -381,7 +397,7 @@ class BrandingComponent {
|
|
|
381
397
|
},
|
|
382
398
|
callback: async (entry, _reload) => {
|
|
383
399
|
try {
|
|
384
|
-
await this.confirmModal.confirm(gettext
|
|
400
|
+
await this.confirmModal.confirm(gettext('Set as global branding'), gettext('Are you sure that you want to set this variant as the global branding? By doing so, this variant will be applied to all apps that do not have a specific branding applied. Do you want to proceed?'), Status.INFO);
|
|
385
401
|
}
|
|
386
402
|
catch {
|
|
387
403
|
// did not confirm
|
|
@@ -401,7 +417,7 @@ class BrandingComponent {
|
|
|
401
417
|
},
|
|
402
418
|
callback: async (entry, _reload) => {
|
|
403
419
|
try {
|
|
404
|
-
await this.confirmModal.confirm(gettext
|
|
420
|
+
await this.confirmModal.confirm(gettext('Delete branding variant'), gettext('You are about to delete this branding variant. This action cannot be undone. Do you want to proceed?'), Status.DANGER);
|
|
405
421
|
}
|
|
406
422
|
catch {
|
|
407
423
|
// did not confirm
|
|
@@ -418,13 +434,13 @@ class BrandingComponent {
|
|
|
418
434
|
this.columns = [
|
|
419
435
|
{
|
|
420
436
|
name: 'name',
|
|
421
|
-
header: gettext
|
|
437
|
+
header: gettext('Name'),
|
|
422
438
|
path: 'name',
|
|
423
439
|
filterable: true,
|
|
424
440
|
cellRendererComponent: BrandingNameCellRendererComponent
|
|
425
441
|
},
|
|
426
442
|
{
|
|
427
|
-
name: gettext
|
|
443
|
+
name: gettext('Applied to`Applications a branding applies to (table column header)`'),
|
|
428
444
|
path: 'tags',
|
|
429
445
|
filterable: false,
|
|
430
446
|
cellCSSClassName: 'small',
|
|
@@ -433,13 +449,13 @@ class BrandingComponent {
|
|
|
433
449
|
},
|
|
434
450
|
{
|
|
435
451
|
name: 'owner',
|
|
436
|
-
header: gettext
|
|
452
|
+
header: gettext('Owner'),
|
|
437
453
|
path: 'owner',
|
|
438
454
|
filterable: false
|
|
439
455
|
},
|
|
440
456
|
{
|
|
441
457
|
name: 'lastUpdated',
|
|
442
|
-
header: gettext
|
|
458
|
+
header: gettext('Last updated'),
|
|
443
459
|
path: 'lastUpdated',
|
|
444
460
|
filterable: false
|
|
445
461
|
}
|
|
@@ -455,7 +471,7 @@ class BrandingComponent {
|
|
|
455
471
|
}), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
456
472
|
}
|
|
457
473
|
async deleteAllBrandings(publicOptions) {
|
|
458
|
-
const result = await this.confirmModal.confirm(gettext
|
|
474
|
+
const result = await this.confirmModal.confirm(gettext('Delete all branding variants'), gettext(`<p class="m-b-8">
|
|
459
475
|
This action will permanently remove all custom branding variants. Your tenant will revert
|
|
460
476
|
to the default branding.
|
|
461
477
|
</p>
|
|
@@ -465,7 +481,7 @@ class BrandingComponent {
|
|
|
465
481
|
</p>
|
|
466
482
|
<p>
|
|
467
483
|
Are you sure you want to continue?
|
|
468
|
-
</p>`), Status.DANGER, { cancel: gettext
|
|
484
|
+
</p>`), Status.DANGER, { cancel: gettext('Cancel'), ok: gettext('Delete all') });
|
|
469
485
|
if (result === false || (typeof result === 'object' && !result.confirmed)) {
|
|
470
486
|
return;
|
|
471
487
|
}
|
|
@@ -530,7 +546,7 @@ class BrandingComponent {
|
|
|
530
546
|
return this.router.navigate([brandingName, 'edit'], { relativeTo: this.activatedRoute });
|
|
531
547
|
}
|
|
532
548
|
async getStartedUsingBranding() {
|
|
533
|
-
const result = await this.confirmModal.confirm(gettext
|
|
549
|
+
const result = await this.confirmModal.confirm(gettext(`Get started using branding variants`), gettext(`<p class="m-b-8">Confirming this action creates two branding variants:</p>
|
|
534
550
|
<ul class="m-b-8 p-l-16">
|
|
535
551
|
<li>A default copy of your current global branding</li>
|
|
536
552
|
<li>Your new customizable variant.</li>
|
|
@@ -596,11 +612,25 @@ class BrandingComponent {
|
|
|
596
612
|
}
|
|
597
613
|
}
|
|
598
614
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BrandingComponent, deps: [{ token: i1$2.StoreBrandingService }, { token: i2$1.ActivatedRoute }, { token: i3.AppStateService }, { token: i1.ApplicationService }, { token: i3.ZipService }, { token: i3$1.StaticAssetsService }, { token: i2$1.Router }, { token: i1$3.BsModalService }, { token: i3.ModalService }, { token: i1$2.BrandingVersionService }, { token: i1$1.AddBrandingModalService }, { token: i3.AlertService }, { token: BrandingImportModalService }, { token: i1$2.BrandingTrackingService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
599
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BrandingComponent, isStandalone: true, selector: "c8y-branding", ngImport: i0, template: "<c8y-title translate>Branding</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"'Settings' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n [path]=\"'/branding-editor'\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<ng-container *ngIf=\"availableBrandingVariants$ | async as brandingVariant; else loading\">\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"30\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"addNewVersion()\"\n data-cy=\"branding-add-branding-variant\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add variant</span>\n </button>\n </c8y-action-bar-item>\n <c8y-action-bar-item\n [placement]=\"'right'\"\n [priority]=\"20\"\n >\n <button\n class=\"btn btn-link\"\n data-cy=\"branding-import-branding\"\n (click)=\"importBranding()\"\n >\n <i [c8yIcon]=\"'data-import'\"></i>\n <span translate>Import variant</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"10\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"deleteAllBrandings(brandingVariant.publicOptions)\"\n data-cy=\"branding-remove-all-brandings\"\n >\n <i [c8yIcon]=\"'trash-o'\"></i>\n <span translate>Delete all variants</span>\n </button>\n </c8y-action-bar-item>\n\n <div class=\"content-fullpage d-flex d-col border-top\">\n <c8y-data-grid\n [title]=\"'Branding variants' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"brandingVariant.variants\"\n >\n <c8y-ui-empty-state\n [icon]=\"'palette'\"\n [title]=\"'No branding variants' | translate\"\n [subtitle]=\"\n 'Personalize your experience with a theme-able interface. Create a unique look that aligns with your brand identity.'\n | translate\n \"\n *ngIf=\"!brandingVariant.publicOptions\"\n [horizontal]=\"false\"\n >\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-get-started-using-branding\"\n (click)=\"getStartedUsingBranding()\"\n translate\n >\n Add branding variant\n </button>\n </c8y-ui-empty-state>\n </c8y-data-grid>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <c8y-loading></c8y-loading>\n</ng-template>\n", dependencies: [{ kind: "
|
|
615
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BrandingComponent, isStandalone: true, selector: "c8y-branding", ngImport: i0, template: "<c8y-title translate>Branding</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"'Settings' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Variants' | translate\"\n [path]=\"'/branding-editor/variants'\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<ng-container *ngIf=\"availableBrandingVariants$ | async as brandingVariant; else loading\">\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"30\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"addNewVersion()\"\n data-cy=\"branding-add-branding-variant\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add variant</span>\n </button>\n </c8y-action-bar-item>\n <c8y-action-bar-item\n [placement]=\"'right'\"\n [priority]=\"20\"\n >\n <button\n class=\"btn btn-link\"\n data-cy=\"branding-import-branding\"\n (click)=\"importBranding()\"\n >\n <i [c8yIcon]=\"'data-import'\"></i>\n <span translate>Import variant</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"10\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"deleteAllBrandings(brandingVariant.publicOptions)\"\n data-cy=\"branding-remove-all-brandings\"\n >\n <i [c8yIcon]=\"'trash-o'\"></i>\n <span translate>Delete all variants</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-help [src]=\"'/docs/enterprise-tenant/customization/#to-configure-branding-settings'\"></c8y-help>\n\n <div class=\"content-fullpage d-flex d-col border-top\">\n <c8y-data-grid\n [title]=\"'Branding variants' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"brandingVariant.variants\"\n >\n <c8y-ui-empty-state\n [icon]=\"'palette'\"\n [title]=\"'No branding variants' | translate\"\n [subtitle]=\"\n 'Personalize your experience with a theme-able interface. Create a unique look that aligns with your brand identity.'\n | translate\n \"\n *ngIf=\"!brandingVariant.publicOptions\"\n [horizontal]=\"false\"\n >\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-get-started-using-branding\"\n (click)=\"getStartedUsingBranding()\"\n translate\n >\n Add branding variant\n </button>\n </c8y-ui-empty-state>\n </c8y-data-grid>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <c8y-loading></c8y-loading>\n</ng-template>\n", dependencies: [{ kind: "component", type: BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "component", type: DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
|
|
600
616
|
}
|
|
601
617
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BrandingComponent, decorators: [{
|
|
602
618
|
type: Component,
|
|
603
|
-
args: [{ selector: 'c8y-branding', standalone: true, imports: [
|
|
619
|
+
args: [{ selector: 'c8y-branding', standalone: true, imports: [
|
|
620
|
+
BreadcrumbComponent,
|
|
621
|
+
BreadcrumbItemComponent,
|
|
622
|
+
TitleComponent,
|
|
623
|
+
HelpComponent,
|
|
624
|
+
ActionBarItemComponent,
|
|
625
|
+
IconDirective,
|
|
626
|
+
C8yTranslateDirective,
|
|
627
|
+
C8yTranslatePipe,
|
|
628
|
+
EmptyStateComponent,
|
|
629
|
+
LoadingComponent,
|
|
630
|
+
DataGridComponent,
|
|
631
|
+
NgIf,
|
|
632
|
+
AsyncPipe
|
|
633
|
+
], template: "<c8y-title translate>Branding</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"'Settings' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Variants' | translate\"\n [path]=\"'/branding-editor/variants'\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<ng-container *ngIf=\"availableBrandingVariants$ | async as brandingVariant; else loading\">\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"30\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"addNewVersion()\"\n data-cy=\"branding-add-branding-variant\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add variant</span>\n </button>\n </c8y-action-bar-item>\n <c8y-action-bar-item\n [placement]=\"'right'\"\n [priority]=\"20\"\n >\n <button\n class=\"btn btn-link\"\n data-cy=\"branding-import-branding\"\n (click)=\"importBranding()\"\n >\n <i [c8yIcon]=\"'data-import'\"></i>\n <span translate>Import variant</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"10\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"deleteAllBrandings(brandingVariant.publicOptions)\"\n data-cy=\"branding-remove-all-brandings\"\n >\n <i [c8yIcon]=\"'trash-o'\"></i>\n <span translate>Delete all variants</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-help [src]=\"'/docs/enterprise-tenant/customization/#to-configure-branding-settings'\"></c8y-help>\n\n <div class=\"content-fullpage d-flex d-col border-top\">\n <c8y-data-grid\n [title]=\"'Branding variants' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"brandingVariant.variants\"\n >\n <c8y-ui-empty-state\n [icon]=\"'palette'\"\n [title]=\"'No branding variants' | translate\"\n [subtitle]=\"\n 'Personalize your experience with a theme-able interface. Create a unique look that aligns with your brand identity.'\n | translate\n \"\n *ngIf=\"!brandingVariant.publicOptions\"\n [horizontal]=\"false\"\n >\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-get-started-using-branding\"\n (click)=\"getStartedUsingBranding()\"\n translate\n >\n Add branding variant\n </button>\n </c8y-ui-empty-state>\n </c8y-data-grid>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <c8y-loading></c8y-loading>\n</ng-template>\n" }]
|
|
604
634
|
}], ctorParameters: () => [{ type: i1$2.StoreBrandingService }, { type: i2$1.ActivatedRoute }, { type: i3.AppStateService }, { type: i1.ApplicationService }, { type: i3.ZipService }, { type: i3$1.StaticAssetsService }, { type: i2$1.Router }, { type: i1$3.BsModalService }, { type: i3.ModalService }, { type: i1$2.BrandingVersionService }, { type: i1$1.AddBrandingModalService }, { type: i3.AlertService }, { type: BrandingImportModalService }, { type: i1$2.BrandingTrackingService }] });
|
|
605
635
|
|
|
606
636
|
class BrandingFormComponent {
|
|
@@ -685,7 +715,7 @@ class BrandingFormComponent {
|
|
|
685
715
|
this.messageBannerService.showBanner();
|
|
686
716
|
}
|
|
687
717
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BrandingFormComponent, deps: [{ token: i2.FormBuilder }, { token: i3.MessageBannerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
688
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BrandingFormComponent, isStandalone: true, selector: "c8y-branding-form", host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div\n class=\"inner-scroll\"\n [formGroup]=\"formGroup\"\n>\n <!-- Title & Favicon-->\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4 class=\"text-normal text-right text-left-xs m-b-16\">\n {{ 'Title & favicon' | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div\n class=\"row p-t-16 p-b-16\"\n [formGroupName]=\"'genericApplicationOptions'\"\n >\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"globalTitle\"\n translate\n >\n Title\n </label>\n <input\n class=\"form-control\"\n id=\"globalTitle\"\n name=\"globalTitle\"\n type=\"text\"\n formControlName=\"globalTitle\"\n />\n <c8y-messages\n [helpMessage]=\"'Title to display in the browser tab' | translate\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <c8y-form-group>\n <label translate>Favicon</label>\n <c8y-static-assets-file-picker\n name=\"faviconUrl\"\n [supportedFileExtensions]=\"['ico']\"\n [isCSSURL]=\"false\"\n formControlName=\"faviconUrl\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.ico'\"></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"card-block separator-top\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Dark theme\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <c8y-form-group class=\"m-b-32 p-t-8 m-t-4\">\n <label class=\"c8y-switch\">\n <input\n class=\"form-control\"\n name=\"darkThemeAvailable\"\n type=\"checkbox\"\n formControlName=\"darkThemeAvailable\"\n />\n <span></span>\n <span translate>Enable dark theme support</span>\n </label>\n </c8y-form-group>\n </div>\n </div>\n <!-- Typography -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Typography\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'baseTypography'\"\n >\n <legend translate>Base typography</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"font-url\"\n translate\n >\n Fonts URL\n </label>\n <input\n class=\"form-control\"\n id=\"font-url\"\n placeholder=\"{{\n 'e.g. {{ example }}' | translate : { example: 'https://fonts.googleapis.com/css?family=Roboto:400,500,700' }\n }}\"\n type=\"text\"\n formControlName=\"font-url\"\n />\n <c8y-messages [helpMessage]=\"'The Google fonts URL' | translate\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"font-family-base\"\n for=\"font-family-base\"\n translate\n >\n Base font stack\n </label>\n <input\n class=\"form-control\"\n id=\"font-family-base\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate : {example: '"Roboto", Arial, sans-serif'} }}\"\n name=\"font-family-base\"\n type=\"text\"\n formControlName=\"font-family-base\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'headingsAndNavigatorTypography'\"\n >\n <legend>{{ 'Headings & navigator' | translate }}</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"font-family-headings\"\n for=\"font-family-headings\"\n translate\n >\n Headings font stack\n </label>\n <input\n class=\"form-control\"\n id=\"font-family-headings\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate : {example: '"Roboto", Arial, sans-serif'} }}\"\n type=\"text\"\n formControlName=\"font-family-headings\"\n />\n <c8y-messages\n [helpMessage]=\"\n 'Leave empty to use the same font as the base font stack' | translate\n \"\n ></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-font-family\"\n translate\n >\n Navigator font stack\n </label>\n <div class=\"form-control-static\">\n <label class=\"c8y-radio radio-inline\">\n <input\n name=\"navigator-font-family\"\n type=\"radio\"\n formControlName=\"navigator-font-family\"\n [value]=\"'var(--font-family-base)'\"\n />\n <span></span>\n <span translate>Match base font stack</span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"Radio Two\"\n >\n <input\n name=\"navigator-font-family\"\n type=\"radio\"\n formControlName=\"navigator-font-family\"\n [value]=\"'var(--font-family-headings)'\"\n />\n <span></span>\n <span translate>Match headings font stack</span>\n </label>\n </div>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Cookie banner -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Cookie banner\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'cookieBanner'\"\n >\n <legend translate>Cookie banner</legend>\n <label class=\"c8y-switch\">\n <input\n class=\"form-control\"\n name=\"cookieBannerEnabled\"\n type=\"checkbox\"\n [ngModelOptions]=\"{ standalone: true }\"\n [ngModel]=\"!formGroup.value.cookieBanner.cookieBannerDisabled\"\n (ngModelChange)=\"cockieBannerChange($event)\"\n />\n <span></span>\n <span translate>Enable cookie banner</span>\n </label>\n\n <div\n class=\"collapse\"\n [collapse]=\"formGroup.value.cookieBanner.cookieBannerDisabled\"\n [isAnimated]=\"true\"\n >\n <div\n class=\"row\"\n style=\"min-height: 227px\"\n >\n <ng-container *ngIf=\"formGroup.value.cookieBanner.cookieBannerDisabled !== true\">\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"cookieBannerTitle\"\n translate\n >\n Title\n </label>\n <input\n class=\"form-control\"\n id=\"cookieBannerTitle\"\n name=\"cookieBannerTitle\"\n type=\"text\"\n formControlName=\"cookieBannerTitle\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"policyUrl\"\n translate\n >\n Link to privacy policy\n </label>\n <input\n class=\"form-control\"\n id=\"policyUrl\"\n name=\"policyUrl\"\n type=\"text\"\n formControlName=\"policyUrl\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"policyVersion\"\n translate\n >\n Version of privacy policy\n </label>\n <input\n class=\"form-control\"\n id=\"policyVersion\"\n name=\"policyVersion\"\n type=\"text\"\n formControlName=\"policyVersion\"\n />\n <c8y-messages\n [helpMessage]=\"\n 'Changing the version of the privacy policy invalidates already existing cookie consents.'\n | translate\n \"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"cookieBannerText\"\n translate\n >\n Text\n </label>\n <textarea\n class=\"form-control\"\n id=\"cookieBannerText\"\n name=\"cookieBannerText\"\n rows=\"8\"\n formControlName=\"cookieBannerText\"\n ></textarea>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </ng-container>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Message banner -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Message banner\n </h4>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'messageBanner'\"\n >\n <legend translate>Message banner</legend>\n\n <label class=\"c8y-switch\">\n <input\n class=\"form-control\"\n name=\"messageBannerEnabled\"\n type=\"checkbox\"\n formControlName=\"messageBannerEnabled\"\n />\n <span></span>\n <span translate>Enable message banner</span>\n </label>\n <div\n class=\"collapse\"\n [collapse]=\"!formGroup.value.messageBanner.messageBannerEnabled\"\n [isAnimated]=\"true\"\n >\n <div class=\"d-flex a-i-center gap-8 p-t-16 p-b-16\">\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>{{ 'Message type' | translate }}</legend>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Info' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"info\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-info icon-16 m-r-4\"\n c8yIcon=\"info-circle\"\n ></i>\n Info\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Warning' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"warning\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-warning icon-16 m-r-4\"\n c8yIcon=\"warning\"\n ></i>\n {{ 'Warning' | translate }}\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Danger' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"danger\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-danger icon-16 m-r-4\"\n c8yIcon=\"exclamation-circle\"\n ></i>\n {{ 'Danger' | translate }}\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Success' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"success\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-success icon-16 m-r-4\"\n c8yIcon=\"check-circle\"\n ></i>\n {{ 'Success' | translate }}\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'System' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"system\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span>\n <i\n class=\"text-primary icon-16 m-r4\"\n c8yIcon=\"wrench\"\n ></i>\n {{ 'System' | translate }}\n </span>\n </label>\n </fieldset>\n </div>\n\n <c8y-form-group\n class=\"m-b-32 p-b-32\"\n [style]=\"{ height: '300px' }\"\n *ngIf=\"formGroup.value.messageBanner.messageBannerEnabled\"\n >\n <label\n for=\"messageBannerContent\"\n translate\n >\n Message content\n </label>\n <c8y-editor\n class=\"flex-grow form-control\"\n style=\"height: 100%\"\n formControlName=\"messageBannerContent\"\n [editorOptions]=\"{language: 'markdown'}\"\n monacoEditorMarkerValidator\n ></c8y-editor>\n <c8y-messages\n [helpMessage]=\"messageBannerHelp | translate: messageBannerHelpParams\"\n ></c8y-messages>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"previewBanner()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"eye\"\n ></i>\n <span translate>Preview banner</span>\n </button>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i3.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i3.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CollapseModule }, { kind: "directive", type: i4$1.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "component", type: StaticAssetsFilePickerComponent, selector: "c8y-static-assets-file-picker", inputs: ["isCSSURL", "staticAssetType", "supportedFileExtensions", "layout", "size"] }, { kind: "component", type: EditorComponent, selector: "c8y-editor", inputs: ["editorOptions", "theme"], outputs: ["editorInit"] }] }); }
|
|
718
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BrandingFormComponent, isStandalone: true, selector: "c8y-branding-form", host: { classAttribute: "d-contents" }, ngImport: i0, template: "<c8y-help [src]=\"'/docs/enterprise-tenant/customization/#generic-tab'\"></c8y-help>\n\n<div\n class=\"inner-scroll\"\n [formGroup]=\"formGroup\"\n>\n <!-- Title & Favicon-->\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4 class=\"text-normal text-right text-left-xs m-b-16\">\n {{ 'Title & favicon' | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div\n class=\"row p-t-16 p-b-16\"\n [formGroupName]=\"'genericApplicationOptions'\"\n >\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"globalTitle\"\n translate\n >\n Title\n </label>\n <input\n class=\"form-control\"\n id=\"globalTitle\"\n name=\"globalTitle\"\n type=\"text\"\n formControlName=\"globalTitle\"\n />\n <c8y-messages\n [helpMessage]=\"'Title to display in the browser tab' | translate\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <c8y-form-group>\n <label translate>Favicon</label>\n <c8y-static-assets-file-picker\n name=\"faviconUrl\"\n [supportedFileExtensions]=\"['ico']\"\n [isCSSURL]=\"false\"\n formControlName=\"faviconUrl\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.ico' | translate\"></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"card-block separator-top\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Dark theme\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <c8y-form-group class=\"m-b-32 p-t-8 m-t-4\">\n <label class=\"c8y-switch\">\n <input\n class=\"form-control\"\n name=\"darkThemeAvailable\"\n type=\"checkbox\"\n formControlName=\"darkThemeAvailable\"\n />\n <span></span>\n <span translate>Enable dark theme support</span>\n </label>\n </c8y-form-group>\n </div>\n </div>\n <!-- Typography -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Typography\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'baseTypography'\"\n >\n <legend translate>Base typography</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"font-url\"\n translate\n >\n Fonts URL\n </label>\n <input\n class=\"form-control\"\n id=\"font-url\"\n placeholder=\"{{\n 'e.g. {{ example }}' | translate : { example: 'https://fonts.googleapis.com/css?family=Roboto:400,500,700' }\n }}\"\n type=\"text\"\n formControlName=\"font-url\"\n />\n <c8y-messages [helpMessage]=\"'The Google fonts URL' | translate\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"font-family-base\"\n for=\"font-family-base\"\n translate\n >\n Base font stack\n </label>\n <input\n class=\"form-control\"\n id=\"font-family-base\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate : {example: '"Roboto", Arial, sans-serif'} }}\"\n name=\"font-family-base\"\n type=\"text\"\n formControlName=\"font-family-base\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'headingsAndNavigatorTypography'\"\n >\n <legend>{{ 'Headings & navigator' | translate }}</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"font-family-headings\"\n for=\"font-family-headings\"\n translate\n >\n Headings font stack\n </label>\n <input\n class=\"form-control\"\n id=\"font-family-headings\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate : {example: '"Roboto", Arial, sans-serif'} }}\"\n type=\"text\"\n formControlName=\"font-family-headings\"\n />\n <c8y-messages\n [helpMessage]=\"\n 'Leave empty to use the same font as the base font stack' | translate\n \"\n ></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-font-family\"\n translate\n >\n Navigator font stack\n </label>\n <div class=\"form-control-static\">\n <label class=\"c8y-radio radio-inline\">\n <input\n name=\"navigator-font-family\"\n type=\"radio\"\n formControlName=\"navigator-font-family\"\n [value]=\"'var(--font-family-base)'\"\n />\n <span></span>\n <span translate>Match base font stack</span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"Radio Two\"\n >\n <input\n name=\"navigator-font-family\"\n type=\"radio\"\n formControlName=\"navigator-font-family\"\n [value]=\"'var(--font-family-headings)'\"\n />\n <span></span>\n <span translate>Match headings font stack</span>\n </label>\n </div>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Cookie banner -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Cookie banner\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'cookieBanner'\"\n >\n <legend translate>Cookie banner</legend>\n <label class=\"c8y-switch\">\n <input\n class=\"form-control\"\n name=\"cookieBannerEnabled\"\n type=\"checkbox\"\n [ngModelOptions]=\"{ standalone: true }\"\n [ngModel]=\"!formGroup.value.cookieBanner.cookieBannerDisabled\"\n (ngModelChange)=\"cockieBannerChange($event)\"\n />\n <span></span>\n <span translate>Enable cookie banner</span>\n </label>\n\n <div\n class=\"collapse\"\n [collapse]=\"formGroup.value.cookieBanner.cookieBannerDisabled\"\n [isAnimated]=\"true\"\n >\n <div\n class=\"row\"\n style=\"min-height: 227px\"\n >\n <ng-container *ngIf=\"formGroup.value.cookieBanner.cookieBannerDisabled !== true\">\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"cookieBannerTitle\"\n translate\n >\n Title\n </label>\n <input\n class=\"form-control\"\n id=\"cookieBannerTitle\"\n name=\"cookieBannerTitle\"\n type=\"text\"\n formControlName=\"cookieBannerTitle\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"policyUrl\"\n translate\n >\n Link to privacy policy\n </label>\n <input\n class=\"form-control\"\n id=\"policyUrl\"\n name=\"policyUrl\"\n type=\"text\"\n formControlName=\"policyUrl\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"policyVersion\"\n translate\n >\n Version of privacy policy\n </label>\n <input\n class=\"form-control\"\n id=\"policyVersion\"\n name=\"policyVersion\"\n type=\"text\"\n formControlName=\"policyVersion\"\n />\n <c8y-messages\n [helpMessage]=\"\n 'Changing the version of the privacy policy invalidates already existing cookie consents.'\n | translate\n \"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"cookieBannerText\"\n translate\n >\n Text\n </label>\n <textarea\n class=\"form-control\"\n id=\"cookieBannerText\"\n name=\"cookieBannerText\"\n rows=\"8\"\n formControlName=\"cookieBannerText\"\n ></textarea>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </ng-container>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Message banner -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Message banner\n </h4>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'messageBanner'\"\n >\n <legend translate>Message banner</legend>\n\n <label class=\"c8y-switch\">\n <input\n class=\"form-control\"\n name=\"messageBannerEnabled\"\n type=\"checkbox\"\n formControlName=\"messageBannerEnabled\"\n />\n <span></span>\n <span translate>Enable message banner</span>\n </label>\n <div\n class=\"collapse\"\n [collapse]=\"!formGroup.value.messageBanner.messageBannerEnabled\"\n [isAnimated]=\"true\"\n >\n <div class=\"d-flex a-i-center gap-8 p-t-16 p-b-16\">\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>{{ 'Message type' | translate }}</legend>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Info' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"info\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-info icon-16 m-r-4\"\n c8yIcon=\"info-circle\"\n ></i>\n Info\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Warning' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"warning\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-warning icon-16 m-r-4\"\n c8yIcon=\"warning\"\n ></i>\n {{ 'Warning' | translate }}\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Danger' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"danger\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-danger icon-16 m-r-4\"\n c8yIcon=\"exclamation-circle\"\n ></i>\n {{ 'Danger' | translate }}\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Success' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"success\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-success icon-16 m-r-4\"\n c8yIcon=\"check-circle\"\n ></i>\n {{ 'Success' | translate }}\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'System' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"system\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span>\n <i\n class=\"text-primary icon-16 m-r4\"\n c8yIcon=\"wrench\"\n ></i>\n {{ 'System' | translate }}\n </span>\n </label>\n </fieldset>\n </div>\n\n <c8y-form-group\n class=\"m-b-32 p-b-32\"\n [style]=\"{ height: '300px' }\"\n *ngIf=\"formGroup.value.messageBanner.messageBannerEnabled\"\n >\n <label\n for=\"messageBannerContent\"\n translate\n >\n Message content\n </label>\n <c8y-editor\n class=\"flex-grow form-control\"\n style=\"height: 100%\"\n formControlName=\"messageBannerContent\"\n [editorOptions]=\"{language: 'markdown'}\"\n monacoEditorMarkerValidator\n ></c8y-editor>\n <c8y-messages\n [helpMessage]=\"messageBannerHelp | translate: messageBannerHelpParams\"\n ></c8y-messages>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"previewBanner()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"eye\"\n ></i>\n <span translate>Preview banner</span>\n </button>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i3.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i3.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i3.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CollapseModule }, { kind: "directive", type: i4.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "component", type: StaticAssetsFilePickerComponent, selector: "c8y-static-assets-file-picker", inputs: ["isCSSURL", "staticAssetType", "supportedFileExtensions", "layout", "size"] }, { kind: "component", type: EditorComponent, selector: "c8y-editor", inputs: ["editorOptions", "theme"], outputs: ["editorInit"] }] }); }
|
|
689
719
|
}
|
|
690
720
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BrandingFormComponent, decorators: [{
|
|
691
721
|
type: Component,
|
|
@@ -695,7 +725,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
695
725
|
CollapseModule,
|
|
696
726
|
StaticAssetsFilePickerComponent,
|
|
697
727
|
EditorComponent
|
|
698
|
-
], template: "<div\n class=\"inner-scroll\"\n [formGroup]=\"formGroup\"\n>\n <!-- Title & Favicon-->\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4 class=\"text-normal text-right text-left-xs m-b-16\">\n {{ 'Title & favicon' | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div\n class=\"row p-t-16 p-b-16\"\n [formGroupName]=\"'genericApplicationOptions'\"\n >\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"globalTitle\"\n translate\n >\n Title\n </label>\n <input\n class=\"form-control\"\n id=\"globalTitle\"\n name=\"globalTitle\"\n type=\"text\"\n formControlName=\"globalTitle\"\n />\n <c8y-messages\n [helpMessage]=\"'Title to display in the browser tab' | translate\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <c8y-form-group>\n <label translate>Favicon</label>\n <c8y-static-assets-file-picker\n name=\"faviconUrl\"\n [supportedFileExtensions]=\"['ico']\"\n [isCSSURL]=\"false\"\n formControlName=\"faviconUrl\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.ico'\"></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"card-block separator-top\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Dark theme\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <c8y-form-group class=\"m-b-32 p-t-8 m-t-4\">\n <label class=\"c8y-switch\">\n <input\n class=\"form-control\"\n name=\"darkThemeAvailable\"\n type=\"checkbox\"\n formControlName=\"darkThemeAvailable\"\n />\n <span></span>\n <span translate>Enable dark theme support</span>\n </label>\n </c8y-form-group>\n </div>\n </div>\n <!-- Typography -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Typography\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'baseTypography'\"\n >\n <legend translate>Base typography</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"font-url\"\n translate\n >\n Fonts URL\n </label>\n <input\n class=\"form-control\"\n id=\"font-url\"\n placeholder=\"{{\n 'e.g. {{ example }}' | translate : { example: 'https://fonts.googleapis.com/css?family=Roboto:400,500,700' }\n }}\"\n type=\"text\"\n formControlName=\"font-url\"\n />\n <c8y-messages [helpMessage]=\"'The Google fonts URL' | translate\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"font-family-base\"\n for=\"font-family-base\"\n translate\n >\n Base font stack\n </label>\n <input\n class=\"form-control\"\n id=\"font-family-base\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate : {example: '"Roboto", Arial, sans-serif'} }}\"\n name=\"font-family-base\"\n type=\"text\"\n formControlName=\"font-family-base\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'headingsAndNavigatorTypography'\"\n >\n <legend>{{ 'Headings & navigator' | translate }}</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"font-family-headings\"\n for=\"font-family-headings\"\n translate\n >\n Headings font stack\n </label>\n <input\n class=\"form-control\"\n id=\"font-family-headings\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate : {example: '"Roboto", Arial, sans-serif'} }}\"\n type=\"text\"\n formControlName=\"font-family-headings\"\n />\n <c8y-messages\n [helpMessage]=\"\n 'Leave empty to use the same font as the base font stack' | translate\n \"\n ></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-font-family\"\n translate\n >\n Navigator font stack\n </label>\n <div class=\"form-control-static\">\n <label class=\"c8y-radio radio-inline\">\n <input\n name=\"navigator-font-family\"\n type=\"radio\"\n formControlName=\"navigator-font-family\"\n [value]=\"'var(--font-family-base)'\"\n />\n <span></span>\n <span translate>Match base font stack</span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"Radio Two\"\n >\n <input\n name=\"navigator-font-family\"\n type=\"radio\"\n formControlName=\"navigator-font-family\"\n [value]=\"'var(--font-family-headings)'\"\n />\n <span></span>\n <span translate>Match headings font stack</span>\n </label>\n </div>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Cookie banner -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Cookie banner\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'cookieBanner'\"\n >\n <legend translate>Cookie banner</legend>\n <label class=\"c8y-switch\">\n <input\n class=\"form-control\"\n name=\"cookieBannerEnabled\"\n type=\"checkbox\"\n [ngModelOptions]=\"{ standalone: true }\"\n [ngModel]=\"!formGroup.value.cookieBanner.cookieBannerDisabled\"\n (ngModelChange)=\"cockieBannerChange($event)\"\n />\n <span></span>\n <span translate>Enable cookie banner</span>\n </label>\n\n <div\n class=\"collapse\"\n [collapse]=\"formGroup.value.cookieBanner.cookieBannerDisabled\"\n [isAnimated]=\"true\"\n >\n <div\n class=\"row\"\n style=\"min-height: 227px\"\n >\n <ng-container *ngIf=\"formGroup.value.cookieBanner.cookieBannerDisabled !== true\">\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"cookieBannerTitle\"\n translate\n >\n Title\n </label>\n <input\n class=\"form-control\"\n id=\"cookieBannerTitle\"\n name=\"cookieBannerTitle\"\n type=\"text\"\n formControlName=\"cookieBannerTitle\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"policyUrl\"\n translate\n >\n Link to privacy policy\n </label>\n <input\n class=\"form-control\"\n id=\"policyUrl\"\n name=\"policyUrl\"\n type=\"text\"\n formControlName=\"policyUrl\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"policyVersion\"\n translate\n >\n Version of privacy policy\n </label>\n <input\n class=\"form-control\"\n id=\"policyVersion\"\n name=\"policyVersion\"\n type=\"text\"\n formControlName=\"policyVersion\"\n />\n <c8y-messages\n [helpMessage]=\"\n 'Changing the version of the privacy policy invalidates already existing cookie consents.'\n | translate\n \"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"cookieBannerText\"\n translate\n >\n Text\n </label>\n <textarea\n class=\"form-control\"\n id=\"cookieBannerText\"\n name=\"cookieBannerText\"\n rows=\"8\"\n formControlName=\"cookieBannerText\"\n ></textarea>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </ng-container>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Message banner -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Message banner\n </h4>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'messageBanner'\"\n >\n <legend translate>Message banner</legend>\n\n <label class=\"c8y-switch\">\n <input\n class=\"form-control\"\n name=\"messageBannerEnabled\"\n type=\"checkbox\"\n formControlName=\"messageBannerEnabled\"\n />\n <span></span>\n <span translate>Enable message banner</span>\n </label>\n <div\n class=\"collapse\"\n [collapse]=\"!formGroup.value.messageBanner.messageBannerEnabled\"\n [isAnimated]=\"true\"\n >\n <div class=\"d-flex a-i-center gap-8 p-t-16 p-b-16\">\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>{{ 'Message type' | translate }}</legend>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Info' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"info\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-info icon-16 m-r-4\"\n c8yIcon=\"info-circle\"\n ></i>\n Info\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Warning' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"warning\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-warning icon-16 m-r-4\"\n c8yIcon=\"warning\"\n ></i>\n {{ 'Warning' | translate }}\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Danger' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"danger\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-danger icon-16 m-r-4\"\n c8yIcon=\"exclamation-circle\"\n ></i>\n {{ 'Danger' | translate }}\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Success' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"success\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-success icon-16 m-r-4\"\n c8yIcon=\"check-circle\"\n ></i>\n {{ 'Success' | translate }}\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'System' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"system\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span>\n <i\n class=\"text-primary icon-16 m-r4\"\n c8yIcon=\"wrench\"\n ></i>\n {{ 'System' | translate }}\n </span>\n </label>\n </fieldset>\n </div>\n\n <c8y-form-group\n class=\"m-b-32 p-b-32\"\n [style]=\"{ height: '300px' }\"\n *ngIf=\"formGroup.value.messageBanner.messageBannerEnabled\"\n >\n <label\n for=\"messageBannerContent\"\n translate\n >\n Message content\n </label>\n <c8y-editor\n class=\"flex-grow form-control\"\n style=\"height: 100%\"\n formControlName=\"messageBannerContent\"\n [editorOptions]=\"{language: 'markdown'}\"\n monacoEditorMarkerValidator\n ></c8y-editor>\n <c8y-messages\n [helpMessage]=\"messageBannerHelp | translate: messageBannerHelpParams\"\n ></c8y-messages>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"previewBanner()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"eye\"\n ></i>\n <span translate>Preview banner</span>\n </button>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
728
|
+
], template: "<c8y-help [src]=\"'/docs/enterprise-tenant/customization/#generic-tab'\"></c8y-help>\n\n<div\n class=\"inner-scroll\"\n [formGroup]=\"formGroup\"\n>\n <!-- Title & Favicon-->\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4 class=\"text-normal text-right text-left-xs m-b-16\">\n {{ 'Title & favicon' | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div\n class=\"row p-t-16 p-b-16\"\n [formGroupName]=\"'genericApplicationOptions'\"\n >\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"globalTitle\"\n translate\n >\n Title\n </label>\n <input\n class=\"form-control\"\n id=\"globalTitle\"\n name=\"globalTitle\"\n type=\"text\"\n formControlName=\"globalTitle\"\n />\n <c8y-messages\n [helpMessage]=\"'Title to display in the browser tab' | translate\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <c8y-form-group>\n <label translate>Favicon</label>\n <c8y-static-assets-file-picker\n name=\"faviconUrl\"\n [supportedFileExtensions]=\"['ico']\"\n [isCSSURL]=\"false\"\n formControlName=\"faviconUrl\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.ico' | translate\"></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"card-block separator-top\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Dark theme\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <c8y-form-group class=\"m-b-32 p-t-8 m-t-4\">\n <label class=\"c8y-switch\">\n <input\n class=\"form-control\"\n name=\"darkThemeAvailable\"\n type=\"checkbox\"\n formControlName=\"darkThemeAvailable\"\n />\n <span></span>\n <span translate>Enable dark theme support</span>\n </label>\n </c8y-form-group>\n </div>\n </div>\n <!-- Typography -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Typography\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'baseTypography'\"\n >\n <legend translate>Base typography</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"font-url\"\n translate\n >\n Fonts URL\n </label>\n <input\n class=\"form-control\"\n id=\"font-url\"\n placeholder=\"{{\n 'e.g. {{ example }}' | translate : { example: 'https://fonts.googleapis.com/css?family=Roboto:400,500,700' }\n }}\"\n type=\"text\"\n formControlName=\"font-url\"\n />\n <c8y-messages [helpMessage]=\"'The Google fonts URL' | translate\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"font-family-base\"\n for=\"font-family-base\"\n translate\n >\n Base font stack\n </label>\n <input\n class=\"form-control\"\n id=\"font-family-base\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate : {example: '"Roboto", Arial, sans-serif'} }}\"\n name=\"font-family-base\"\n type=\"text\"\n formControlName=\"font-family-base\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'headingsAndNavigatorTypography'\"\n >\n <legend>{{ 'Headings & navigator' | translate }}</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"font-family-headings\"\n for=\"font-family-headings\"\n translate\n >\n Headings font stack\n </label>\n <input\n class=\"form-control\"\n id=\"font-family-headings\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate : {example: '"Roboto", Arial, sans-serif'} }}\"\n type=\"text\"\n formControlName=\"font-family-headings\"\n />\n <c8y-messages\n [helpMessage]=\"\n 'Leave empty to use the same font as the base font stack' | translate\n \"\n ></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-font-family\"\n translate\n >\n Navigator font stack\n </label>\n <div class=\"form-control-static\">\n <label class=\"c8y-radio radio-inline\">\n <input\n name=\"navigator-font-family\"\n type=\"radio\"\n formControlName=\"navigator-font-family\"\n [value]=\"'var(--font-family-base)'\"\n />\n <span></span>\n <span translate>Match base font stack</span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"Radio Two\"\n >\n <input\n name=\"navigator-font-family\"\n type=\"radio\"\n formControlName=\"navigator-font-family\"\n [value]=\"'var(--font-family-headings)'\"\n />\n <span></span>\n <span translate>Match headings font stack</span>\n </label>\n </div>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Cookie banner -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Cookie banner\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'cookieBanner'\"\n >\n <legend translate>Cookie banner</legend>\n <label class=\"c8y-switch\">\n <input\n class=\"form-control\"\n name=\"cookieBannerEnabled\"\n type=\"checkbox\"\n [ngModelOptions]=\"{ standalone: true }\"\n [ngModel]=\"!formGroup.value.cookieBanner.cookieBannerDisabled\"\n (ngModelChange)=\"cockieBannerChange($event)\"\n />\n <span></span>\n <span translate>Enable cookie banner</span>\n </label>\n\n <div\n class=\"collapse\"\n [collapse]=\"formGroup.value.cookieBanner.cookieBannerDisabled\"\n [isAnimated]=\"true\"\n >\n <div\n class=\"row\"\n style=\"min-height: 227px\"\n >\n <ng-container *ngIf=\"formGroup.value.cookieBanner.cookieBannerDisabled !== true\">\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"cookieBannerTitle\"\n translate\n >\n Title\n </label>\n <input\n class=\"form-control\"\n id=\"cookieBannerTitle\"\n name=\"cookieBannerTitle\"\n type=\"text\"\n formControlName=\"cookieBannerTitle\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"policyUrl\"\n translate\n >\n Link to privacy policy\n </label>\n <input\n class=\"form-control\"\n id=\"policyUrl\"\n name=\"policyUrl\"\n type=\"text\"\n formControlName=\"policyUrl\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"policyVersion\"\n translate\n >\n Version of privacy policy\n </label>\n <input\n class=\"form-control\"\n id=\"policyVersion\"\n name=\"policyVersion\"\n type=\"text\"\n formControlName=\"policyVersion\"\n />\n <c8y-messages\n [helpMessage]=\"\n 'Changing the version of the privacy policy invalidates already existing cookie consents.'\n | translate\n \"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-32\">\n <label\n for=\"cookieBannerText\"\n translate\n >\n Text\n </label>\n <textarea\n class=\"form-control\"\n id=\"cookieBannerText\"\n name=\"cookieBannerText\"\n rows=\"8\"\n formControlName=\"cookieBannerText\"\n ></textarea>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </ng-container>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Message banner -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Message banner\n </h4>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset\n class=\"c8y-fieldset p-24\"\n [formGroupName]=\"'messageBanner'\"\n >\n <legend translate>Message banner</legend>\n\n <label class=\"c8y-switch\">\n <input\n class=\"form-control\"\n name=\"messageBannerEnabled\"\n type=\"checkbox\"\n formControlName=\"messageBannerEnabled\"\n />\n <span></span>\n <span translate>Enable message banner</span>\n </label>\n <div\n class=\"collapse\"\n [collapse]=\"!formGroup.value.messageBanner.messageBannerEnabled\"\n [isAnimated]=\"true\"\n >\n <div class=\"d-flex a-i-center gap-8 p-t-16 p-b-16\">\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>{{ 'Message type' | translate }}</legend>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Info' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"info\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-info icon-16 m-r-4\"\n c8yIcon=\"info-circle\"\n ></i>\n Info\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Warning' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"warning\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-warning icon-16 m-r-4\"\n c8yIcon=\"warning\"\n ></i>\n {{ 'Warning' | translate }}\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Danger' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"danger\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-danger icon-16 m-r-4\"\n c8yIcon=\"exclamation-circle\"\n ></i>\n {{ 'Danger' | translate }}\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Success' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"success\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span class=\"d-flex a-i-center\">\n <i\n class=\"text-success icon-16 m-r-4\"\n c8yIcon=\"check-circle\"\n ></i>\n {{ 'Success' | translate }}\n </span>\n </label>\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'System' | translate }}\"\n >\n <input\n type=\"radio\"\n value=\"system\"\n formControlName=\"messageBannerType\"\n />\n <span></span>\n <span>\n <i\n class=\"text-primary icon-16 m-r4\"\n c8yIcon=\"wrench\"\n ></i>\n {{ 'System' | translate }}\n </span>\n </label>\n </fieldset>\n </div>\n\n <c8y-form-group\n class=\"m-b-32 p-b-32\"\n [style]=\"{ height: '300px' }\"\n *ngIf=\"formGroup.value.messageBanner.messageBannerEnabled\"\n >\n <label\n for=\"messageBannerContent\"\n translate\n >\n Message content\n </label>\n <c8y-editor\n class=\"flex-grow form-control\"\n style=\"height: 100%\"\n formControlName=\"messageBannerContent\"\n [editorOptions]=\"{language: 'markdown'}\"\n monacoEditorMarkerValidator\n ></c8y-editor>\n <c8y-messages\n [helpMessage]=\"messageBannerHelp | translate: messageBannerHelpParams\"\n ></c8y-messages>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"previewBanner()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"eye\"\n ></i>\n <span translate>Preview banner</span>\n </button>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
699
729
|
}], ctorParameters: () => [{ type: i2.FormBuilder }, { type: i3.MessageBannerService }] });
|
|
700
730
|
|
|
701
731
|
const formStructure = {
|
|
@@ -1106,11 +1136,11 @@ class BrandingThemeFormComponent {
|
|
|
1106
1136
|
return this.addDarkThemePrefix ? 'dark-' : '';
|
|
1107
1137
|
}
|
|
1108
1138
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BrandingThemeFormComponent, deps: [{ token: i2$1.ActivatedRoute }, { token: i2.FormBuilder }, { token: i3.FilesService }, { token: i1$2.BrandingShadesService }, { token: i3.ThemeSwitcherService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1109
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BrandingThemeFormComponent, isStandalone: true, selector: "c8y-branding-theme-form", host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div\n class=\"inner-scroll\"\n [formGroup]=\"formGroup\"\n>\n <!-- Logos -->\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Logos\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Brand logo</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"brand-logo-img\"\n translate\n >\n Brand logo file\n </label>\n <c8y-static-assets-file-picker\n name=\"brand-logo-img\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"true\"\n size=\"150\"\n formControlName=\"brand-logo-img\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg'\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"brand-logo-img-height\"\n for=\"brand-logo-img-height\"\n translate\n >\n Brand logo height\n </label>\n <input\n class=\"form-control\"\n id=\"brand-logo-img-height\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: '50' } }}\"\n name=\"brand-logo-img-height\"\n type=\"number\"\n formControlName=\"brand-logo-img-height\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px'\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Navigator logo</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-platform-logo\"\n translate\n >\n Navigator logo file\n </label>\n <c8y-static-assets-file-picker\n name=\"navigator-platform-logo\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"true\"\n size=\"150\"\n formControlName=\"navigator-platform-logo\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg'\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-platform-logo-height\"\n for=\"navigator-platform-logo-height\"\n translate\n >\n Navigator logo height\n </label>\n <input\n class=\"form-control\"\n id=\"navigator-platform-logo-height\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: '50' } }}\"\n name=\"navigator-platform-logo-height\"\n type=\"number\"\n [min]=\"1\"\n formControlName=\"navigator-platform-logo-height\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px'\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Brand colors -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.brandColors.label | translate}}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ formStructure.brandColors.brandColors.label | translate}}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of formStructure.brandColors.brandColors.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-8\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ formStructure.brandColors.shades.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let colorColumn of formStructure.brandColors.shades.colorColumn\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n data-cy=\"branding-reset-shades-button\"\n (click)=\"regenerateShadesBasedOnPrimaryColor()\"\n [disabled]=\"!(resetShadesButtonEnabled$ | async)\"\n >\n <i [c8yIcon]=\"'reset'\"></i>\n <span translate>Reset shades</span>\n </button>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Status colors -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.statusColors.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subCategory of formStructure.statusColors.subCategories\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ subCategory.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subCategory.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Generic -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Generic\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Generic colors</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"body-background-color\"\n for=\"body-background-color\"\n translate\n >\n Body background color\n </label>\n <c8y-color-input\n name=\"body-background-color\"\n formControlName=\"body-background-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"text-color\"\n for=\"text-color\"\n translate\n >\n Text color\n </label>\n <c8y-color-input\n name=\"text-color\"\n formControlName=\"text-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"text-muted\"\n for=\"text-muted\"\n translate\n >\n Text muted color\n </label>\n <c8y-color-input\n name=\"text-muted\"\n formControlName=\"text-muted\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Interactive</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"link-color\"\n for=\"link-color\"\n translate\n >\n Link color\n </label>\n <c8y-color-input\n name=\"link-color\"\n formControlName=\"link-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"link-hover-color\"\n for=\"link-hover-color\"\n translate\n >\n Link hover color\n </label>\n <c8y-color-input\n name=\"link-hover-color\"\n formControlName=\"link-hover-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"btn-border-radius-base\"\n for=\"btn-border-radius-base\"\n translate\n >\n Button border-radius\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. 4' | translate }}\"\n name=\"btn-border-radius-base\"\n type=\"number\"\n formControlName=\"btn-border-radius-base\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px'\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Action bar -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.actionBar.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset class=\"c8y-fieldset p-24\" *ngFor=\"let colorColumn of formStructure.actionBar.colorColumns\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subColorColumn of colorColumn.colorColumns\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subColorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Main header -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.mainHeader.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset class=\"c8y-fieldset p-24\" *ngFor=\"let colorColumn of formStructure.mainHeader.colorColumns\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subColorColumn of colorColumn.colorColumns\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subColorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Navigator -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.navigator.label }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-4\" *ngFor=\"let colorColumn of formStructure.navigator.colorColumns\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Right drawer -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.rightDrawer.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let colorColumn of formStructure.rightDrawer.colorColumns\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "directive", type: i3.MinValidationDirective, selector: "[min]", inputs: ["min"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "component", type: i3.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i3.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i3.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.ColorInputComponent, selector: "c8y-color-input" }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: StaticAssetsFilePickerComponent, selector: "c8y-static-assets-file-picker", inputs: ["isCSSURL", "staticAssetType", "supportedFileExtensions", "layout", "size"] }] }); }
|
|
1139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BrandingThemeFormComponent, isStandalone: true, selector: "c8y-branding-theme-form", host: { classAttribute: "d-contents" }, ngImport: i0, template: "<c8y-help [src]=\"'/docs/enterprise-tenant/customization/#light-dark-theme-tab'\"></c8y-help>\n\n<div\n class=\"inner-scroll\"\n [formGroup]=\"formGroup\"\n>\n <!-- Logos -->\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Logos\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Brand logo</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"brand-logo-img\"\n translate\n >\n Brand logo file\n </label>\n <c8y-static-assets-file-picker\n name=\"brand-logo-img\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"true\"\n [size]=\"150\"\n formControlName=\"brand-logo-img\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg' | translate\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"brand-logo-img-height\"\n for=\"brand-logo-img-height\"\n translate\n >\n Brand logo height\n </label>\n <input\n class=\"form-control\"\n id=\"brand-logo-img-height\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: '50' } }}\"\n name=\"brand-logo-img-height\"\n type=\"number\"\n formControlName=\"brand-logo-img-height\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px' | translate\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Navigator logo</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-platform-logo\"\n translate\n >\n Navigator logo file\n </label>\n <c8y-static-assets-file-picker\n name=\"navigator-platform-logo\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"true\"\n [size]=\"150\"\n formControlName=\"navigator-platform-logo\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg' | translate\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-platform-logo-height\"\n for=\"navigator-platform-logo-height\"\n translate\n >\n Navigator logo height\n </label>\n <input\n class=\"form-control\"\n id=\"navigator-platform-logo-height\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: '50' } }}\"\n name=\"navigator-platform-logo-height\"\n type=\"number\"\n [min]=\"1\"\n formControlName=\"navigator-platform-logo-height\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px' | translate\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Login image</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"login-platform-animation-img\"\n translate\n >\n Login image file\n </label>\n <c8y-static-assets-file-picker\n name=\"login-platform-animation-img\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"false\"\n [size]=\"150\"\n formControlName=\"login-platform-animation-img\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg' | translate\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Brand colors -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.brandColors.label | translate}}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ formStructure.brandColors.brandColors.label | translate}}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of formStructure.brandColors.brandColors.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-8\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ formStructure.brandColors.shades.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let colorColumn of formStructure.brandColors.shades.colorColumn\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n data-cy=\"branding-reset-shades-button\"\n (click)=\"regenerateShadesBasedOnPrimaryColor()\"\n [disabled]=\"!(resetShadesButtonEnabled$ | async)\"\n >\n <i [c8yIcon]=\"'reset'\"></i>\n <span translate>Reset shades</span>\n </button>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Status colors -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.statusColors.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subCategory of formStructure.statusColors.subCategories\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ subCategory.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subCategory.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Generic -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Generic\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Generic colors</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"body-background-color\"\n for=\"body-background-color\"\n translate\n >\n Body background color\n </label>\n <c8y-color-input\n name=\"body-background-color\"\n formControlName=\"body-background-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"text-color\"\n for=\"text-color\"\n translate\n >\n Text color\n </label>\n <c8y-color-input\n name=\"text-color\"\n formControlName=\"text-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"text-muted\"\n for=\"text-muted\"\n translate\n >\n Text muted color\n </label>\n <c8y-color-input\n name=\"text-muted\"\n formControlName=\"text-muted\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Interactive</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"link-color\"\n for=\"link-color\"\n translate\n >\n Link color\n </label>\n <c8y-color-input\n name=\"link-color\"\n formControlName=\"link-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"link-hover-color\"\n for=\"link-hover-color\"\n translate\n >\n Link hover color\n </label>\n <c8y-color-input\n name=\"link-hover-color\"\n formControlName=\"link-hover-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"btn-border-radius-base\"\n for=\"btn-border-radius-base\"\n translate\n >\n Button border-radius\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. 4' | translate }}\"\n name=\"btn-border-radius-base\"\n type=\"number\"\n formControlName=\"btn-border-radius-base\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px' | translate\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Action bar -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.actionBar.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset class=\"c8y-fieldset p-24\" *ngFor=\"let colorColumn of formStructure.actionBar.colorColumns\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subColorColumn of colorColumn.colorColumns\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subColorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Main header -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.mainHeader.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset class=\"c8y-fieldset p-24\" *ngFor=\"let colorColumn of formStructure.mainHeader.colorColumns\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subColorColumn of colorColumn.colorColumns\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subColorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Navigator -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.navigator.label }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-4\" *ngFor=\"let colorColumn of formStructure.navigator.colorColumns\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Right drawer -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.rightDrawer.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let colorColumn of formStructure.rightDrawer.colorColumns\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "directive", type: i3.MinValidationDirective, selector: "[min]", inputs: ["min"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "component", type: i3.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i3.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i3.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i3.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.ColorInputComponent, selector: "c8y-color-input" }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: StaticAssetsFilePickerComponent, selector: "c8y-static-assets-file-picker", inputs: ["isCSSURL", "staticAssetType", "supportedFileExtensions", "layout", "size"] }] }); }
|
|
1110
1140
|
}
|
|
1111
1141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BrandingThemeFormComponent, decorators: [{
|
|
1112
1142
|
type: Component,
|
|
1113
|
-
args: [{ selector: 'c8y-branding-theme-form', standalone: true, host: { class: 'd-contents' }, imports: [CoreModule, FormsModule, StaticAssetsFilePickerComponent, ColorInputComponent], template: "<div\n class=\"inner-scroll\"\n [formGroup]=\"formGroup\"\n>\n <!-- Logos -->\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Logos\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Brand logo</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"brand-logo-img\"\n translate\n >\n Brand logo file\n </label>\n <c8y-static-assets-file-picker\n name=\"brand-logo-img\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"true\"\n size=\"150\"\n formControlName=\"brand-logo-img\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg'\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"brand-logo-img-height\"\n for=\"brand-logo-img-height\"\n translate\n >\n Brand logo height\n </label>\n <input\n class=\"form-control\"\n id=\"brand-logo-img-height\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: '50' } }}\"\n name=\"brand-logo-img-height\"\n type=\"number\"\n formControlName=\"brand-logo-img-height\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px'\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Navigator logo</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-platform-logo\"\n translate\n >\n Navigator logo file\n </label>\n <c8y-static-assets-file-picker\n name=\"navigator-platform-logo\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"true\"\n size=\"150\"\n formControlName=\"navigator-platform-logo\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg'\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-platform-logo-height\"\n for=\"navigator-platform-logo-height\"\n translate\n >\n Navigator logo height\n </label>\n <input\n class=\"form-control\"\n id=\"navigator-platform-logo-height\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: '50' } }}\"\n name=\"navigator-platform-logo-height\"\n type=\"number\"\n [min]=\"1\"\n formControlName=\"navigator-platform-logo-height\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px'\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Brand colors -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.brandColors.label | translate}}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ formStructure.brandColors.brandColors.label | translate}}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of formStructure.brandColors.brandColors.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-8\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ formStructure.brandColors.shades.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let colorColumn of formStructure.brandColors.shades.colorColumn\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n data-cy=\"branding-reset-shades-button\"\n (click)=\"regenerateShadesBasedOnPrimaryColor()\"\n [disabled]=\"!(resetShadesButtonEnabled$ | async)\"\n >\n <i [c8yIcon]=\"'reset'\"></i>\n <span translate>Reset shades</span>\n </button>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Status colors -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.statusColors.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subCategory of formStructure.statusColors.subCategories\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ subCategory.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subCategory.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Generic -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Generic\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Generic colors</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"body-background-color\"\n for=\"body-background-color\"\n translate\n >\n Body background color\n </label>\n <c8y-color-input\n name=\"body-background-color\"\n formControlName=\"body-background-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"text-color\"\n for=\"text-color\"\n translate\n >\n Text color\n </label>\n <c8y-color-input\n name=\"text-color\"\n formControlName=\"text-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"text-muted\"\n for=\"text-muted\"\n translate\n >\n Text muted color\n </label>\n <c8y-color-input\n name=\"text-muted\"\n formControlName=\"text-muted\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Interactive</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"link-color\"\n for=\"link-color\"\n translate\n >\n Link color\n </label>\n <c8y-color-input\n name=\"link-color\"\n formControlName=\"link-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"link-hover-color\"\n for=\"link-hover-color\"\n translate\n >\n Link hover color\n </label>\n <c8y-color-input\n name=\"link-hover-color\"\n formControlName=\"link-hover-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"btn-border-radius-base\"\n for=\"btn-border-radius-base\"\n translate\n >\n Button border-radius\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. 4' | translate }}\"\n name=\"btn-border-radius-base\"\n type=\"number\"\n formControlName=\"btn-border-radius-base\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px'\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Action bar -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.actionBar.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset class=\"c8y-fieldset p-24\" *ngFor=\"let colorColumn of formStructure.actionBar.colorColumns\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subColorColumn of colorColumn.colorColumns\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subColorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Main header -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.mainHeader.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset class=\"c8y-fieldset p-24\" *ngFor=\"let colorColumn of formStructure.mainHeader.colorColumns\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subColorColumn of colorColumn.colorColumns\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subColorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Navigator -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.navigator.label }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-4\" *ngFor=\"let colorColumn of formStructure.navigator.colorColumns\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Right drawer -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.rightDrawer.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let colorColumn of formStructure.rightDrawer.colorColumns\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
1143
|
+
args: [{ selector: 'c8y-branding-theme-form', standalone: true, host: { class: 'd-contents' }, imports: [CoreModule, FormsModule, StaticAssetsFilePickerComponent, ColorInputComponent], template: "<c8y-help [src]=\"'/docs/enterprise-tenant/customization/#light-dark-theme-tab'\"></c8y-help>\n\n<div\n class=\"inner-scroll\"\n [formGroup]=\"formGroup\"\n>\n <!-- Logos -->\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Logos\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Brand logo</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"brand-logo-img\"\n translate\n >\n Brand logo file\n </label>\n <c8y-static-assets-file-picker\n name=\"brand-logo-img\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"true\"\n [size]=\"150\"\n formControlName=\"brand-logo-img\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg' | translate\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"brand-logo-img-height\"\n for=\"brand-logo-img-height\"\n translate\n >\n Brand logo height\n </label>\n <input\n class=\"form-control\"\n id=\"brand-logo-img-height\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: '50' } }}\"\n name=\"brand-logo-img-height\"\n type=\"number\"\n formControlName=\"brand-logo-img-height\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px' | translate\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Navigator logo</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-platform-logo\"\n translate\n >\n Navigator logo file\n </label>\n <c8y-static-assets-file-picker\n name=\"navigator-platform-logo\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"true\"\n [size]=\"150\"\n formControlName=\"navigator-platform-logo\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg' | translate\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-platform-logo-height\"\n for=\"navigator-platform-logo-height\"\n translate\n >\n Navigator logo height\n </label>\n <input\n class=\"form-control\"\n id=\"navigator-platform-logo-height\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: '50' } }}\"\n name=\"navigator-platform-logo-height\"\n type=\"number\"\n [min]=\"1\"\n formControlName=\"navigator-platform-logo-height\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px' | translate\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Login image</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"login-platform-animation-img\"\n translate\n >\n Login image file\n </label>\n <c8y-static-assets-file-picker\n name=\"login-platform-animation-img\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"false\"\n [size]=\"150\"\n formControlName=\"login-platform-animation-img\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg' | translate\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Brand colors -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.brandColors.label | translate}}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ formStructure.brandColors.brandColors.label | translate}}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of formStructure.brandColors.brandColors.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-8\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ formStructure.brandColors.shades.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let colorColumn of formStructure.brandColors.shades.colorColumn\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n data-cy=\"branding-reset-shades-button\"\n (click)=\"regenerateShadesBasedOnPrimaryColor()\"\n [disabled]=\"!(resetShadesButtonEnabled$ | async)\"\n >\n <i [c8yIcon]=\"'reset'\"></i>\n <span translate>Reset shades</span>\n </button>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Status colors -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.statusColors.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subCategory of formStructure.statusColors.subCategories\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ subCategory.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subCategory.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Generic -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Generic\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Generic colors</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"body-background-color\"\n for=\"body-background-color\"\n translate\n >\n Body background color\n </label>\n <c8y-color-input\n name=\"body-background-color\"\n formControlName=\"body-background-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"text-color\"\n for=\"text-color\"\n translate\n >\n Text color\n </label>\n <c8y-color-input\n name=\"text-color\"\n formControlName=\"text-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"text-muted\"\n for=\"text-muted\"\n translate\n >\n Text muted color\n </label>\n <c8y-color-input\n name=\"text-muted\"\n formControlName=\"text-muted\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Interactive</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"link-color\"\n for=\"link-color\"\n translate\n >\n Link color\n </label>\n <c8y-color-input\n name=\"link-color\"\n formControlName=\"link-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"link-hover-color\"\n for=\"link-hover-color\"\n translate\n >\n Link hover color\n </label>\n <c8y-color-input\n name=\"link-hover-color\"\n formControlName=\"link-hover-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"btn-border-radius-base\"\n for=\"btn-border-radius-base\"\n translate\n >\n Button border-radius\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. 4' | translate }}\"\n name=\"btn-border-radius-base\"\n type=\"number\"\n formControlName=\"btn-border-radius-base\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px' | translate\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Action bar -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.actionBar.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset class=\"c8y-fieldset p-24\" *ngFor=\"let colorColumn of formStructure.actionBar.colorColumns\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subColorColumn of colorColumn.colorColumns\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subColorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Main header -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.mainHeader.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset class=\"c8y-fieldset p-24\" *ngFor=\"let colorColumn of formStructure.mainHeader.colorColumns\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subColorColumn of colorColumn.colorColumns\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subColorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Navigator -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.navigator.label }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-4\" *ngFor=\"let colorColumn of formStructure.navigator.colorColumns\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Right drawer -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.rightDrawer.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let colorColumn of formStructure.rightDrawer.colorColumns\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
1114
1144
|
}], ctorParameters: () => [{ type: i2$1.ActivatedRoute }, { type: i2.FormBuilder }, { type: i3.FilesService }, { type: i1$2.BrandingShadesService }, { type: i3.ThemeSwitcherService }] });
|
|
1115
1145
|
|
|
1116
1146
|
class EditBrandingRouterOutletComponent {
|
|
@@ -1233,16 +1263,59 @@ class EditBrandingRouterOutletComponent {
|
|
|
1233
1263
|
});
|
|
1234
1264
|
}
|
|
1235
1265
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: EditBrandingRouterOutletComponent, deps: [{ token: i2$1.ActivatedRoute }, { token: i1$2.StoreBrandingService }, { token: i2$1.Router }, { token: i3.AlertService }, { token: i1$2.ApplyBrandingLocallyService }, { token: i3.AppStateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1236
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: EditBrandingRouterOutletComponent, isStandalone: true, selector: "c8y-edit-branding-router-outlet", ngImport: i0, template: "<c8y-title>{{ brandingName$ | async }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"'Settings' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n [path]=\"'/branding-editor'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"brandingName$ | async\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card card--fullpage content-fullpage\">\n <div class=\"card-header separator\">\n <div class=\"card-title\">{{ brandingName$ | async }} \u2014 {{ tabName$ | async | translate }}</div>\n </div>\n <router-outlet\n class=\"d-contents\"\n (activate)=\"routeActivated($event)\"\n ></router-outlet>\n\n <div class=\"card-footer separator\">\n <!-- footer content -->\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-cancel\"\n (click)=\"cancel()\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-primary\"\n data-cy=\"branding-save\"\n [disabled]=\"formControl.invalid\"\n (click)=\"saveBranding()\"\n translate\n >\n Save\n </button>\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-save-as\"\n [disabled]=\"formControl.invalid\"\n (click)=\"openPreview()\"\n translate\n >\n Open preview\n </button>\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-set-as-latest\"\n (click)=\"markAsActive()\"\n [disabled]=\"isGlobalBranding$ | async\"\n translate\n >\n Set as global\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: i3.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i3.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type:
|
|
1266
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: EditBrandingRouterOutletComponent, isStandalone: true, selector: "c8y-edit-branding-router-outlet", ngImport: i0, template: "<c8y-title>{{ brandingName$ | async }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"'Settings' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n [path]=\"'/branding-editor'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"brandingName$ | async\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card card--fullpage content-fullpage\">\n <div class=\"card-header separator\">\n <div class=\"card-title\">{{ brandingName$ | async }} \u2014 {{ tabName$ | async | translate }}</div>\n </div>\n <router-outlet\n class=\"d-contents\"\n (activate)=\"routeActivated($event)\"\n ></router-outlet>\n\n <div class=\"card-footer separator\">\n <!-- footer content -->\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-cancel\"\n (click)=\"cancel()\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-primary\"\n data-cy=\"branding-save\"\n [disabled]=\"formControl.invalid\"\n (click)=\"saveBranding()\"\n translate\n >\n Save\n </button>\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-save-as\"\n [disabled]=\"formControl.invalid\"\n (click)=\"openPreview()\"\n translate\n >\n Open preview\n </button>\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-set-as-latest\"\n (click)=\"markAsActive()\"\n [disabled]=\"isGlobalBranding$ | async\"\n translate\n >\n Set as global\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: i3.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i3.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "component", type: i3.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }] }); }
|
|
1237
1267
|
}
|
|
1238
1268
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: EditBrandingRouterOutletComponent, decorators: [{
|
|
1239
1269
|
type: Component,
|
|
1240
1270
|
args: [{ selector: 'c8y-edit-branding-router-outlet', standalone: true, imports: [RouterOutlet, CoreModule], template: "<c8y-title>{{ brandingName$ | async }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"'Settings' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n [path]=\"'/branding-editor'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"brandingName$ | async\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card card--fullpage content-fullpage\">\n <div class=\"card-header separator\">\n <div class=\"card-title\">{{ brandingName$ | async }} \u2014 {{ tabName$ | async | translate }}</div>\n </div>\n <router-outlet\n class=\"d-contents\"\n (activate)=\"routeActivated($event)\"\n ></router-outlet>\n\n <div class=\"card-footer separator\">\n <!-- footer content -->\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-cancel\"\n (click)=\"cancel()\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-primary\"\n data-cy=\"branding-save\"\n [disabled]=\"formControl.invalid\"\n (click)=\"saveBranding()\"\n translate\n >\n Save\n </button>\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-save-as\"\n [disabled]=\"formControl.invalid\"\n (click)=\"openPreview()\"\n translate\n >\n Open preview\n </button>\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-set-as-latest\"\n (click)=\"markAsActive()\"\n [disabled]=\"isGlobalBranding$ | async\"\n translate\n >\n Set as global\n </button>\n </div>\n</div>\n" }]
|
|
1241
1271
|
}], ctorParameters: () => [{ type: i2$1.ActivatedRoute }, { type: i1$2.StoreBrandingService }, { type: i2$1.Router }, { type: i3.AlertService }, { type: i1$2.ApplyBrandingLocallyService }, { type: i3.AppStateService }] });
|
|
1242
1272
|
|
|
1273
|
+
class BrandingAssetsComponent {
|
|
1274
|
+
constructor(clipboard, filesService, translate) {
|
|
1275
|
+
this.clipboard = clipboard;
|
|
1276
|
+
this.filesService = filesService;
|
|
1277
|
+
this.translate = translate;
|
|
1278
|
+
this.filterOptions = [
|
|
1279
|
+
{
|
|
1280
|
+
label: gettext('All'),
|
|
1281
|
+
value: []
|
|
1282
|
+
},
|
|
1283
|
+
{
|
|
1284
|
+
label: gettext('Images'),
|
|
1285
|
+
value: this.filesService.mapGenericFileTypesToExtensions([GENERIC_FILE_TYPE.IMAGE])
|
|
1286
|
+
},
|
|
1287
|
+
{
|
|
1288
|
+
label: gettext('Fonts'),
|
|
1289
|
+
value: this.filesService.mapGenericFileTypesToExtensions([GENERIC_FILE_TYPE.FONT])
|
|
1290
|
+
}
|
|
1291
|
+
];
|
|
1292
|
+
this.supportedFileExtensions = this.filterOptions[0].value;
|
|
1293
|
+
}
|
|
1294
|
+
onItemSelected(file) {
|
|
1295
|
+
const successMessage = this.translate.instant(gettext('Copied asset file path to clipboard. You can use it e.g. in custom CSS.'));
|
|
1296
|
+
this.clipboard.writeText(file.path, { success: successMessage });
|
|
1297
|
+
}
|
|
1298
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BrandingAssetsComponent, deps: [{ token: i3.ClipboardService }, { token: i3.FilesService }, { token: i2$2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1299
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BrandingAssetsComponent, isStandalone: true, selector: "c8y-branding-assets", ngImport: i0, template: "<c8y-title translate>Branding assets</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"'Settings' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'files'\"\n [label]=\"'Branding assets' | translate\"\n [path]=\"'/branding-editor/assets'\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'left'\">\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n [(ngModel)]=\"supportedFileExtensions\"\n >\n <option\n *ngFor=\"let filterOption of filterOptions\"\n [ngValue]=\"filterOption.value\"\n >\n {{ filterOption.label | translate }}\n </option>\n </select>\n </div>\n</c8y-action-bar-item>\n\n<div class=\"card content-fullpage\">\n <c8y-static-assets-file-list\n [supportedFileExtensions]=\"supportedFileExtensions\"\n (itemSelected)=\"onItemSelected($event)\"\n ></c8y-static-assets-file-list>\n</div>\n", dependencies: [{ kind: "component", type: StaticAssetsFileListComponent, selector: "c8y-static-assets-file-list", inputs: ["inModalView", "assetType", "supportedFileExtensions", "layout"], outputs: ["itemSelected"] }, { 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: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
1300
|
+
}
|
|
1301
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BrandingAssetsComponent, decorators: [{
|
|
1302
|
+
type: Component,
|
|
1303
|
+
args: [{ selector: 'c8y-branding-assets', standalone: true, imports: [
|
|
1304
|
+
StaticAssetsFileListComponent,
|
|
1305
|
+
TitleComponent,
|
|
1306
|
+
BreadcrumbComponent,
|
|
1307
|
+
BreadcrumbItemComponent,
|
|
1308
|
+
C8yTranslateDirective,
|
|
1309
|
+
C8yTranslatePipe,
|
|
1310
|
+
ActionBarItemComponent,
|
|
1311
|
+
NgForOf,
|
|
1312
|
+
FormsModule
|
|
1313
|
+
], template: "<c8y-title translate>Branding assets</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"'Settings' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'files'\"\n [label]=\"'Branding assets' | translate\"\n [path]=\"'/branding-editor/assets'\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'left'\">\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n [(ngModel)]=\"supportedFileExtensions\"\n >\n <option\n *ngFor=\"let filterOption of filterOptions\"\n [ngValue]=\"filterOption.value\"\n >\n {{ filterOption.label | translate }}\n </option>\n </select>\n </div>\n</c8y-action-bar-item>\n\n<div class=\"card content-fullpage\">\n <c8y-static-assets-file-list\n [supportedFileExtensions]=\"supportedFileExtensions\"\n (itemSelected)=\"onItemSelected($event)\"\n ></c8y-static-assets-file-list>\n</div>\n" }]
|
|
1314
|
+
}], ctorParameters: () => [{ type: i3.ClipboardService }, { type: i3.FilesService }, { type: i2$2.TranslateService }] });
|
|
1315
|
+
|
|
1243
1316
|
/**
|
|
1244
1317
|
* Generated bundle index. Do not edit.
|
|
1245
1318
|
*/
|
|
1246
1319
|
|
|
1247
|
-
export { ApplyBrandingToAppService, BrandingComponent, BrandingFormComponent, BrandingImportModalComponent, BrandingImportModalService, BrandingTagsCellRendererComponent, BrandingTagsHeaderCellRendererComponent, BrandingThemeFormComponent, EditBrandingRouterOutletComponent };
|
|
1320
|
+
export { ApplyBrandingToAppService, BrandingAssetsComponent, BrandingComponent, BrandingFormComponent, BrandingImportModalComponent, BrandingImportModalService, BrandingTagsCellRendererComponent, BrandingTagsHeaderCellRendererComponent, BrandingThemeFormComponent, EditBrandingRouterOutletComponent };
|
|
1248
1321
|
//# sourceMappingURL=c8y-ngx-components-branding-shared-lazy.mjs.map
|