@clr/angular
Version:
Angular components for Clarity
57 lines • 6.67 kB
JavaScript
/*
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
* This software is released under MIT license.
* The full license information can be found in LICENSE in the root directory of this project.
*/
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export var ClrFormLayout;
(function (ClrFormLayout) {
ClrFormLayout["VERTICAL"] = "vertical";
ClrFormLayout["HORIZONTAL"] = "horizontal";
ClrFormLayout["COMPACT"] = "compact";
})(ClrFormLayout || (ClrFormLayout = {}));
export class LayoutService {
constructor() {
this.minLabelSize = 1;
this.maxLabelSize = 12;
this.layout = ClrFormLayout.HORIZONTAL;
// This is basically a replacement for Object.values(), which IE11 and Node <9 don't support :(
// String enums cannot be reverse-mapped, meaning ClrFormLayout['COMPACT'] does not return 'compact' so
// this exists to deal with this little caveat to get the list of the values as an array.
this.layoutValues = Object.keys(ClrFormLayout).map(key => ClrFormLayout[key]);
this._labelSize = 2;
}
get labelSize() {
return this._labelSize;
}
set labelSize(size) {
if (this.labelSizeIsValid(size)) {
this._labelSize = size;
}
}
get layoutClass() {
return `clr-form-${this.layout}`;
}
isVertical() {
return this.layout === ClrFormLayout.VERTICAL;
}
isHorizontal() {
return this.layout === ClrFormLayout.HORIZONTAL;
}
isCompact() {
return this.layout === ClrFormLayout.COMPACT;
}
isValid(layout) {
return this.layoutValues.indexOf(layout) > -1;
}
labelSizeIsValid(labelSize) {
return Number.isInteger(labelSize) && labelSize >= this.minLabelSize && labelSize <= this.maxLabelSize;
}
}
LayoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
LayoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LayoutService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LayoutService, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9jb21tb24vcHJvdmlkZXJzL2xheW91dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQyxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLHNDQUFxQixDQUFBO0lBQ3JCLDBDQUF5QixDQUFBO0lBQ3pCLG9DQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QjtBQUdELE1BQU0sT0FBTyxhQUFhO0lBRDFCO1FBRVcsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFM0IsV0FBTSxHQUEyQixhQUFhLENBQUMsVUFBVSxDQUFDO1FBRTFELCtGQUErRjtRQUMvRix1R0FBdUc7UUFDdkcseUZBQXlGO1FBQ2pGLGlCQUFZLEdBQWEsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBRSxhQUFxQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUcsZUFBVSxHQUFHLENBQUMsQ0FBQztLQWtDeEI7SUFoQ0MsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxJQUFZO1FBQ3hCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sWUFBWSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQUMsVUFBVSxDQUFDO0lBQ2xELENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDL0MsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN6RyxDQUFDOzswR0EzQ1UsYUFBYTs4R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGVudW0gQ2xyRm9ybUxheW91dCB7XG4gIFZFUlRJQ0FMID0gJ3ZlcnRpY2FsJyxcbiAgSE9SSVpPTlRBTCA9ICdob3Jpem9udGFsJyxcbiAgQ09NUEFDVCA9ICdjb21wYWN0Jyxcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExheW91dFNlcnZpY2Uge1xuICByZWFkb25seSBtaW5MYWJlbFNpemUgPSAxO1xuICByZWFkb25seSBtYXhMYWJlbFNpemUgPSAxMjtcblxuICBsYXlvdXQ6IENsckZvcm1MYXlvdXQgfCBzdHJpbmcgPSBDbHJGb3JtTGF5b3V0LkhPUklaT05UQUw7XG5cbiAgLy8gVGhpcyBpcyBiYXNpY2FsbHkgYSByZXBsYWNlbWVudCBmb3IgT2JqZWN0LnZhbHVlcygpLCB3aGljaCBJRTExIGFuZCBOb2RlIDw5IGRvbid0IHN1cHBvcnQgOihcbiAgLy8gU3RyaW5nIGVudW1zIGNhbm5vdCBiZSByZXZlcnNlLW1hcHBlZCwgbWVhbmluZyBDbHJGb3JtTGF5b3V0WydDT01QQUNUJ10gZG9lcyBub3QgcmV0dXJuICdjb21wYWN0JyBzb1xuICAvLyB0aGlzIGV4aXN0cyB0byBkZWFsIHdpdGggdGhpcyBsaXR0bGUgY2F2ZWF0IHRvIGdldCB0aGUgbGlzdCBvZiB0aGUgdmFsdWVzIGFzIGFuIGFycmF5LlxuICBwcml2YXRlIGxheW91dFZhbHVlczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhDbHJGb3JtTGF5b3V0KS5tYXAoa2V5ID0+IChDbHJGb3JtTGF5b3V0IGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW2tleV0pO1xuICBwcml2YXRlIF9sYWJlbFNpemUgPSAyO1xuXG4gIGdldCBsYWJlbFNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGFiZWxTaXplO1xuICB9XG4gIHNldCBsYWJlbFNpemUoc2l6ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMubGFiZWxTaXplSXNWYWxpZChzaXplKSkge1xuICAgICAgdGhpcy5fbGFiZWxTaXplID0gc2l6ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgbGF5b3V0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNsci1mb3JtLSR7dGhpcy5sYXlvdXR9YDtcbiAgfVxuXG4gIGlzVmVydGljYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0ID09PSBDbHJGb3JtTGF5b3V0LlZFUlRJQ0FMO1xuICB9XG5cbiAgaXNIb3Jpem9udGFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxheW91dCA9PT0gQ2xyRm9ybUxheW91dC5IT1JJWk9OVEFMO1xuICB9XG5cbiAgaXNDb21wYWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxheW91dCA9PT0gQ2xyRm9ybUxheW91dC5DT01QQUNUO1xuICB9XG5cbiAgaXNWYWxpZChsYXlvdXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxheW91dFZhbHVlcy5pbmRleE9mKGxheW91dCkgPiAtMTtcbiAgfVxuXG4gIGxhYmVsU2l6ZUlzVmFsaWQobGFiZWxTaXplOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihsYWJlbFNpemUpICYmIGxhYmVsU2l6ZSA+PSB0aGlzLm1pbkxhYmVsU2l6ZSAmJiBsYWJlbFNpemUgPD0gdGhpcy5tYXhMYWJlbFNpemU7XG4gIH1cbn1cbiJdfQ==