UNPKG

@clr/angular

Version:

Angular components for Clarity

57 lines 6.67 kB
/* * 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==