ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
33 lines • 5.71 kB
JavaScript
import { Directive } from '@angular/core';
import { OSkeletonComponent } from './o-skeleton.component';
import { Util } from '../util/util';
import * as i0 from "@angular/core";
export class ORepeatableSkeletonComponent extends OSkeletonComponent {
getRows() {
const parentElement = this.getParentElement();
if (!parentElement) {
return [1];
}
const item = this.getSkeletonItemElement(parentElement);
let totalHeightItem = 0;
if (item) {
const itemComputedStyle = getComputedStyle(item);
const height = item.offsetHeight;
const marginBottom = parseFloat(itemComputedStyle.marginBottom);
const marginTop = parseFloat(itemComputedStyle.marginTop);
totalHeightItem = height + marginBottom + marginTop;
}
const availableHeight = parentElement?.offsetHeight - totalHeightItem;
if (!Util.isDefined(availableHeight) || availableHeight < 0) {
return [1];
}
return Array.from(new Array(Math.ceil(parentElement?.offsetHeight / totalHeightItem)), (x, i) => i + 1);
}
}
ORepeatableSkeletonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ORepeatableSkeletonComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
ORepeatableSkeletonComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ORepeatableSkeletonComponent, usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ORepeatableSkeletonComponent, decorators: [{
type: Directive,
args: [{}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1yZXBlYXRhYmxlLXNrZWxldG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL28tcmVwZWF0YWJsZS1za2VsZXRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUdwQyxNQUFNLE9BQWdCLDRCQUE2QixTQUFRLGtCQUFrQjtJQUszRSxPQUFPO1FBRUwsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFOUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDWjtRQUdELE1BQU0sSUFBSSxHQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV2RCxJQUFJLGVBQWUsR0FBVyxDQUFDLENBQUM7UUFFaEMsSUFBSSxJQUFJLEVBQUU7WUFFUixNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDakMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUcxRCxlQUFlLEdBQUcsTUFBTSxHQUFHLFlBQVksR0FBRyxTQUFTLENBQUM7U0FDckQ7UUFJRCxNQUFNLGVBQWUsR0FBRyxhQUFhLEVBQUUsWUFBWSxHQUFHLGVBQWUsQ0FBQztRQUN0RSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLEdBQUcsQ0FBQyxFQUFFO1lBQzNELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNaO1FBR0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFlBQVksR0FBRyxlQUFlLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRTFHLENBQUM7OzBIQXZDbUIsNEJBQTRCOzhHQUE1Qiw0QkFBNEI7NEZBQTVCLDRCQUE0QjtrQkFEakQsU0FBUzttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9Ta2VsZXRvbkNvbXBvbmVudCB9IGZyb20gJy4vby1za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uL3V0aWwvdXRpbCc7XG5cbkBEaXJlY3RpdmUoe30pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgT1JlcGVhdGFibGVTa2VsZXRvbkNvbXBvbmVudCBleHRlbmRzIE9Ta2VsZXRvbkNvbXBvbmVudCAge1xuXG4gIGFic3RyYWN0IGdldFBhcmVudEVsZW1lbnQoKTogSFRNTEVsZW1lbnQ7XG4gIGFic3RyYWN0IGdldFNrZWxldG9uSXRlbUVsZW1lbnQocGFyZW50RWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudDtcblxuICBnZXRSb3dzKCkge1xuXG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRoaXMuZ2V0UGFyZW50RWxlbWVudCgpO1xuXG4gICAgaWYgKCFwYXJlbnRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gWzFdO1xuICAgIH1cblxuICAgIC8qIGF2YWlsYWJsZSBwYXJlbnRIZWlnaHQgPSBwYXJlbnRFbGVtZW50IGhlaWdodCAgLSAoaGVhZGVyIHRhYmxlIGhlYWRlciBoZWlnaHQgKyBtYXJnaW4gYm90dG9tKSovXG4gICAgY29uc3QgaXRlbSA9dGhpcy5nZXRTa2VsZXRvbkl0ZW1FbGVtZW50KHBhcmVudEVsZW1lbnQpO1xuXG4gICAgbGV0IHRvdGFsSGVpZ2h0SXRlbTogbnVtYmVyID0gMDtcblxuICAgIGlmIChpdGVtKSB7XG4gICAgICAvLyBHZXQgdGhlIGVsZW1lbnQncyBkaW1lbnNpb25zIGFuZCBjb21wdXRlZCBzdHlsZXNcbiAgICAgIGNvbnN0IGl0ZW1Db21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShpdGVtKTtcbiAgICAgIGNvbnN0IGhlaWdodCA9IGl0ZW0ub2Zmc2V0SGVpZ2h0OyAvLyBIZWlnaHQgaW5jbHVkaW5nIHBhZGRpbmdcbiAgICAgIGNvbnN0IG1hcmdpbkJvdHRvbSA9IHBhcnNlRmxvYXQoaXRlbUNvbXB1dGVkU3R5bGUubWFyZ2luQm90dG9tKTsgLy8gQm90dG9tIG1hcmdpblxuICAgICAgY29uc3QgbWFyZ2luVG9wID0gcGFyc2VGbG9hdChpdGVtQ29tcHV0ZWRTdHlsZS5tYXJnaW5Ub3ApO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIHRvdGFsIHZlcnRpY2FsIHNwYWNlIHRha2VuIGJ5IHRoZSBpdGVtXG4gICAgICB0b3RhbEhlaWdodEl0ZW0gPSBoZWlnaHQgKyBtYXJnaW5Cb3R0b20gKyBtYXJnaW5Ub3A7XG4gICAgfVxuXG5cbiAgICAvLyBDYWxjdWxhdGUgdGhlIGF2YWlsYWJsZSBoZWlnaHQgaW4gdGhlIHBhcmVudCBjb250YWluZXIgKGV4Y2x1ZGluZyBvbmUgaXRlbSBoZWlnaHQpXG4gICAgY29uc3QgYXZhaWxhYmxlSGVpZ2h0ID0gcGFyZW50RWxlbWVudD8ub2Zmc2V0SGVpZ2h0IC0gdG90YWxIZWlnaHRJdGVtO1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQoYXZhaWxhYmxlSGVpZ2h0KSB8fCBhdmFpbGFibGVIZWlnaHQgPCAwKSB7XG4gICAgICByZXR1cm4gWzFdO1xuICAgIH1cblxuICAgIC8vIFJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBudW1iZXIgb2YgaXRlbXMgdGhhdCBjYW4gZml0IHdpdGhpbiB0aGUgcGFyZW50J3MgaGVpZ2h0XG4gICAgcmV0dXJuIEFycmF5LmZyb20obmV3IEFycmF5KE1hdGguY2VpbChwYXJlbnRFbGVtZW50Py5vZmZzZXRIZWlnaHQgLyB0b3RhbEhlaWdodEl0ZW0pKSwgKHgsIGkpID0+IGkgKyAxKTtcblxuICB9XG59XG4iXX0=