UNPKG

@clr/angular

Version:

Angular components for Clarity

52 lines 6.85 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, Optional } from '@angular/core'; import { CONTROL_STATE } from '../if-control-state/if-control-state.service'; import * as i0 from "@angular/core"; import * as i1 from "./layout.service"; const CLASS_ERROR = 'clr-error'; const CLASS_SUCCESS = 'clr-success'; export class ControlClassService { constructor(layoutService) { this.layoutService = layoutService; this.className = ''; } controlClass(state = CONTROL_STATE.NONE, grid = false, additional = '') { const controlClasses = [this.className, additional]; switch (state) { case CONTROL_STATE.VALID: controlClasses.push(CLASS_SUCCESS); break; case CONTROL_STATE.INVALID: controlClasses.push(CLASS_ERROR); break; } if (grid && this.layoutService && this.className.indexOf('clr-col') === -1) { controlClasses.push(`clr-col-md-${this.layoutService.maxLabelSize - this.layoutService.labelSize} clr-col-12`); } return controlClasses.join(' ').trim(); } // We want to remove the column classes from the input up to the container initControlClass(renderer, element) { if (element && element.className) { this.className = element.className; const klasses = element.className.split(' '); klasses.forEach(klass => { if (klass.startsWith('clr-col')) { renderer.removeClass(element, klass); } }); } } } ControlClassService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ControlClassService, deps: [{ token: i1.LayoutService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); ControlClassService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ControlClassService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ControlClassService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.LayoutService, decorators: [{ type: Optional }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1jbGFzcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvY29tbW9uL3Byb3ZpZGVycy9jb250cm9sLWNsYXNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBRzdFLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQztBQUNoQyxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUM7QUFHcEMsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUFnQyxhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUY1RCxjQUFTLEdBQUcsRUFBRSxDQUFDO0lBRWdELENBQUM7SUFFaEUsWUFBWSxDQUFDLFFBQXVCLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRSxVQUFVLEdBQUcsRUFBRTtRQUNuRixNQUFNLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFcEQsUUFBUSxLQUFLLEVBQUU7WUFDYixLQUFLLGFBQWEsQ0FBQyxLQUFLO2dCQUN0QixjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNuQyxNQUFNO1lBQ1IsS0FBSyxhQUFhLENBQUMsT0FBTztnQkFDeEIsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDakMsTUFBTTtTQUNUO1FBRUQsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUMxRSxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLGFBQWEsQ0FBQyxDQUFDO1NBQ2hIO1FBQ0QsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCwwRUFBMEU7SUFDMUUsZ0JBQWdCLENBQUMsUUFBbUIsRUFBRSxPQUFvQjtRQUN4RCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUNuQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN0QixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQy9CLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUN0QztZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztnSEFsQ1UsbUJBQW1CO29IQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7MEJBSUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDT05UUk9MX1NUQVRFIH0gZnJvbSAnLi4vaWYtY29udHJvbC1zdGF0ZS9pZi1jb250cm9sLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4vbGF5b3V0LnNlcnZpY2UnO1xuXG5jb25zdCBDTEFTU19FUlJPUiA9ICdjbHItZXJyb3InO1xuY29uc3QgQ0xBU1NfU1VDQ0VTUyA9ICdjbHItc3VjY2Vzcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb250cm9sQ2xhc3NTZXJ2aWNlIHtcbiAgY2xhc3NOYW1lID0gJyc7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlKSB7fVxuXG4gIGNvbnRyb2xDbGFzcyhzdGF0ZTogQ09OVFJPTF9TVEFURSA9IENPTlRST0xfU1RBVEUuTk9ORSwgZ3JpZCA9IGZhbHNlLCBhZGRpdGlvbmFsID0gJycpIHtcbiAgICBjb25zdCBjb250cm9sQ2xhc3NlcyA9IFt0aGlzLmNsYXNzTmFtZSwgYWRkaXRpb25hbF07XG5cbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlIENPTlRST0xfU1RBVEUuVkFMSUQ6XG4gICAgICAgIGNvbnRyb2xDbGFzc2VzLnB1c2goQ0xBU1NfU1VDQ0VTUyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDT05UUk9MX1NUQVRFLklOVkFMSUQ6XG4gICAgICAgIGNvbnRyb2xDbGFzc2VzLnB1c2goQ0xBU1NfRVJST1IpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoZ3JpZCAmJiB0aGlzLmxheW91dFNlcnZpY2UgJiYgdGhpcy5jbGFzc05hbWUuaW5kZXhPZignY2xyLWNvbCcpID09PSAtMSkge1xuICAgICAgY29udHJvbENsYXNzZXMucHVzaChgY2xyLWNvbC1tZC0ke3RoaXMubGF5b3V0U2VydmljZS5tYXhMYWJlbFNpemUgLSB0aGlzLmxheW91dFNlcnZpY2UubGFiZWxTaXplfSBjbHItY29sLTEyYCk7XG4gICAgfVxuICAgIHJldHVybiBjb250cm9sQ2xhc3Nlcy5qb2luKCcgJykudHJpbSgpO1xuICB9XG5cbiAgLy8gV2Ugd2FudCB0byByZW1vdmUgdGhlIGNvbHVtbiBjbGFzc2VzIGZyb20gdGhlIGlucHV0IHVwIHRvIHRoZSBjb250YWluZXJcbiAgaW5pdENvbnRyb2xDbGFzcyhyZW5kZXJlcjogUmVuZGVyZXIyLCBlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuY2xhc3NOYW1lKSB7XG4gICAgICB0aGlzLmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lO1xuICAgICAgY29uc3Qga2xhc3NlcyA9IGVsZW1lbnQuY2xhc3NOYW1lLnNwbGl0KCcgJyk7XG4gICAgICBrbGFzc2VzLmZvckVhY2goa2xhc3MgPT4ge1xuICAgICAgICBpZiAoa2xhc3Muc3RhcnRzV2l0aCgnY2xyLWNvbCcpKSB7XG4gICAgICAgICAgcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWxlbWVudCwga2xhc3MpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==