@clr/angular
Version:
Angular components for Clarity
52 lines • 6.85 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, 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==