@clr/angular
Version:
Angular components for Clarity
50 lines • 5.36 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 { Directive, Optional } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "./providers/control-id.service";
import * as i2 from "./providers/container-id.service";
export const CONTROL_SUFFIX = {
HELPER: 'helper',
ERROR: 'error',
SUCCESS: 'success',
NONE: null,
};
export class ClrAbstractControl {
constructor(controlIdService, containerIdService) {
this.controlIdService = controlIdService;
this.containerIdService = containerIdService;
/**
* Hold the suffix for the ID
*/
this.controlIdSuffix = 'abstract';
}
get id() {
/**
* The order of witch the id will be pick is:
* - Container ID (Wrapper arround multiple Controls like, Checkbox, Radio, ...)
* - Control ID (Single Control wrapper like Input, Textarea, Password, ...)
* - None
*/
if (this.containerIdService) {
return `${this.containerIdService.id}-${this.controlIdSuffix}`;
}
if (this.controlIdService) {
return `${this.controlIdService.id}-${this.controlIdSuffix}`;
}
return null;
}
}
ClrAbstractControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAbstractControl, deps: [{ token: i1.ControlIdService, optional: true }, { token: i2.ContainerIdService, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
ClrAbstractControl.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrAbstractControl, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAbstractControl, decorators: [{
type: Directive
}], ctorParameters: function () { return [{ type: i1.ControlIdService, decorators: [{
type: Optional
}] }, { type: i2.ContainerIdService, decorators: [{
type: Optional
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2NvbW1vbi9hYnN0cmFjdC1jb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUtwRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQXFDO0lBQzlELE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxPQUFPO0lBQ2QsT0FBTyxFQUFFLFNBQVM7SUFDbEIsSUFBSSxFQUFFLElBQUk7Q0FDWCxDQUFDO0FBR0YsTUFBTSxPQUFnQixrQkFBa0I7SUFNdEMsWUFDd0IsZ0JBQWtDLEVBQ2xDLGtCQUFzQztRQUR0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFQOUQ7O1dBRUc7UUFDSCxvQkFBZSxHQUFHLFVBQVUsQ0FBQztJQUsxQixDQUFDO0lBRUosSUFBSSxFQUFFO1FBQ0o7Ozs7O1dBS0c7UUFDSCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDaEU7UUFFRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDOUQ7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OytHQTNCbUIsa0JBQWtCO21HQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEdkMsU0FBUzs7MEJBUUwsUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb250YWluZXJJZFNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9jb250YWluZXItaWQuc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sSWRTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvY29udHJvbC1pZC5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IENPTlRST0xfU1VGRklYOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bGwgfSA9IHtcbiAgSEVMUEVSOiAnaGVscGVyJyxcbiAgRVJST1I6ICdlcnJvcicsXG4gIFNVQ0NFU1M6ICdzdWNjZXNzJyxcbiAgTk9ORTogbnVsbCxcbn07XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENsckFic3RyYWN0Q29udHJvbCB7XG4gIC8qKlxuICAgKiBIb2xkIHRoZSBzdWZmaXggZm9yIHRoZSBJRFxuICAgKi9cbiAgY29udHJvbElkU3VmZml4ID0gJ2Fic3RyYWN0JztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgY29udHJvbElkU2VydmljZTogQ29udHJvbElkU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgY29udGFpbmVySWRTZXJ2aWNlOiBDb250YWluZXJJZFNlcnZpY2VcbiAgKSB7fVxuXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIC8qKlxuICAgICAqIFRoZSBvcmRlciBvZiB3aXRjaCB0aGUgaWQgd2lsbCBiZSBwaWNrIGlzOlxuICAgICAqICAgLSBDb250YWluZXIgSUQgIChXcmFwcGVyIGFycm91bmQgbXVsdGlwbGUgQ29udHJvbHMgbGlrZSwgQ2hlY2tib3gsIFJhZGlvLCAuLi4pXG4gICAgICogICAtIENvbnRyb2wgSUQgKFNpbmdsZSBDb250cm9sIHdyYXBwZXIgbGlrZSBJbnB1dCwgVGV4dGFyZWEsIFBhc3N3b3JkLCAuLi4pXG4gICAgICogICAtIE5vbmVcbiAgICAgKi9cbiAgICBpZiAodGhpcy5jb250YWluZXJJZFNlcnZpY2UpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmNvbnRhaW5lcklkU2VydmljZS5pZH0tJHt0aGlzLmNvbnRyb2xJZFN1ZmZpeH1gO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2xJZFNlcnZpY2UpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWR9LSR7dGhpcy5jb250cm9sSWRTdWZmaXh9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19