Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 4x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core';
import { ContentPageletView } from 'ish-core/models/content-view/content-view.model';
import { CMSComponent } from 'ish-shared/cms/models/cms-component/cms-component.model';
@Component({
selector: 'ish-cms-container',
templateUrl: './cms-container.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class CMSContainerComponent implements CMSComponent, OnChanges {
@Input({ required: true }) pagelet: ContentPageletView;
contentSlotPagelets: string[] = [];
containerClasses = '';
ngOnChanges() {
let contentSlotPagelets = this.pagelet.slot('app_sf_base_cm:slot.container.content.pagelet2-Slot').pageletIDs;
Iif (this.pagelet.hasParam('UpperBound')) {
contentSlotPagelets = contentSlotPagelets.slice(0, this.pagelet.numberParam('UpperBound'));
}
this.contentSlotPagelets = contentSlotPagelets;
this.containerClasses = this.getGridCSS(this.pagelet.stringParam('Grid'));
this.containerClasses += this.pagelet.stringParam('CSSClass', '');
}
// eslint-disable-next-line complexity
private getGridCSS(grid: string): string {
let gridCSS = '';
if (grid) {
// transform an incoming string like "ExtraSmall:12,Small:6,Medium:4,Large:0" to a grid object
const gridObject = { ExtraSmall: 0, Small: 0, Medium: 0, Large: 0 };
grid.split(',').forEach(element => {
gridObject[element.split(':')[0] as keyof typeof gridObject] = Number(element.split(':')[1]);
});
// the 'hidden-__' classes replacement is not 100% compatible to Bootstrap 3
if (gridObject.ExtraSmall !== 0) {
gridCSS += gridObject.ExtraSmall !== -1 ? `col-${gridObject.ExtraSmall} ` : 'd-none d-md-block ';
}
if (gridObject.Small !== 0) {
gridCSS += gridObject.Small !== -1 ? `col-md-${gridObject.Small} ` : 'd-md-none d-lg-block ';
}
if (gridObject.Medium !== 0) {
gridCSS += gridObject.Medium !== -1 ? `col-lg-${gridObject.Medium} ` : 'd-lg-none d-xl-block ';
}
Iif (gridObject.Large !== 0) {
gridCSS += gridObject.Large !== -1 ? `col-xl-${gridObject.Large} ` : 'd-xl-none ';
}
// 'float-start' is added to get the similar styling as with Bootstrap 3
if (gridCSS !== '') {
gridCSS += 'float-start ';
}
}
return gridCSS;
}
}
|