cfc-ds
Version:
Design System do Conselho Federal de Contabilidade baseado no govbr-ds
59 lines • 6.67 kB
JavaScript
import { Directive, Input } from '@angular/core';
import * as i0 from "@angular/core";
export class ControllerDirective {
el;
directiveName;
directiveNames;
applyDirective;
applyDirectives;
constructor(el) {
this.el = el;
}
ngOnChanges() {
this.controlDirectives();
}
controlDirectives() {
if (this.applyDirective && this.directiveName) {
this.updateDirective(this.applyDirective, this.directiveName);
}
else {
this.updateDirectives();
}
}
updateDirective(directiveFlag, directiveName) {
if ((typeof directiveFlag === 'boolean' && directiveFlag) || (typeof directiveFlag === 'string' && directiveFlag === 'true')) {
this.el.nativeElement.setAttribute(directiveName, '');
}
else {
this.el.nativeElement.removeAttribute(directiveName);
}
}
updateDirectives() {
if (!this.directiveNames)
return;
if (Array.isArray(this.directiveNames)) {
this.directiveNames.forEach((directiveName, index) => {
if (this.applyDirectives && Array.isArray(this.applyDirectives)) {
this.updateDirective(this.applyDirectives[index], directiveName);
}
});
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ControllerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ControllerDirective, selector: "[cfcDirectiveController]", inputs: { directiveName: "directiveName", directiveNames: "directiveNames", applyDirective: "applyDirective", applyDirectives: "applyDirectives" }, usesOnChanges: true, ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ControllerDirective, decorators: [{
type: Directive,
args: [{
selector: '[cfcDirectiveController]'
}]
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { directiveName: [{
type: Input
}], directiveNames: [{
type: Input
}], applyDirective: [{
type: Input
}], applyDirectives: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZmMtZHMvc3JjL2xpYi9kaXJlY3RpdmVzL2NvbnRyb2xsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDOztBQUt4RSxNQUFNLE9BQU8sbUJBQW1CO0lBT3BCO0lBTkQsYUFBYSxDQUFVO0lBQ3ZCLGNBQWMsQ0FBWTtJQUMxQixjQUFjLENBQVc7SUFDekIsZUFBZSxDQUFhO0lBRXJDLFlBQ1UsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7SUFDcEIsQ0FBQztJQUVMLFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFFSCxDQUFDO0lBRU8sZUFBZSxDQUFDLGFBQStCLEVBQUUsYUFBcUI7UUFDNUUsSUFBSSxDQUFDLE9BQU8sYUFBYSxLQUFLLFNBQVMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sYUFBYSxLQUFLLFFBQVEsSUFBSSxhQUFhLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM3SCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU87UUFDakMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBcUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDbkUsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7b0JBQ2hFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDbkUsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7d0dBeENVLG1CQUFtQjs0RkFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3JDOytFQUVVLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2NmY0RpcmVjdGl2ZUNvbnRyb2xsZXJdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udHJvbGxlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgZGlyZWN0aXZlTmFtZT86IHN0cmluZztcclxuICBASW5wdXQoKSBkaXJlY3RpdmVOYW1lcz86IHN0cmluZ1tdO1xyXG4gIEBJbnB1dCgpIGFwcGx5RGlyZWN0aXZlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBhcHBseURpcmVjdGl2ZXM/OiBib29sZWFuW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICApIHsgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udHJvbERpcmVjdGl2ZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udHJvbERpcmVjdGl2ZXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hcHBseURpcmVjdGl2ZSAmJiB0aGlzLmRpcmVjdGl2ZU5hbWUpIHtcclxuICAgICAgdGhpcy51cGRhdGVEaXJlY3RpdmUodGhpcy5hcHBseURpcmVjdGl2ZSwgdGhpcy5kaXJlY3RpdmVOYW1lKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudXBkYXRlRGlyZWN0aXZlcygpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRGlyZWN0aXZlKGRpcmVjdGl2ZUZsYWc6IHN0cmluZyB8IGJvb2xlYW4sIGRpcmVjdGl2ZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKCh0eXBlb2YgZGlyZWN0aXZlRmxhZyA9PT0gJ2Jvb2xlYW4nICYmIGRpcmVjdGl2ZUZsYWcpIHx8ICh0eXBlb2YgZGlyZWN0aXZlRmxhZyA9PT0gJ3N0cmluZycgJiYgZGlyZWN0aXZlRmxhZyA9PT0gJ3RydWUnKSkge1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKGRpcmVjdGl2ZU5hbWUsICcnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoZGlyZWN0aXZlTmFtZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZURpcmVjdGl2ZXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZGlyZWN0aXZlTmFtZXMpIHJldHVybjtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGlyZWN0aXZlTmFtZXMpKSB7XHJcbiAgICAgIHRoaXMuZGlyZWN0aXZlTmFtZXMuZm9yRWFjaCgoZGlyZWN0aXZlTmFtZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuYXBwbHlEaXJlY3RpdmVzICYmIEFycmF5LmlzQXJyYXkodGhpcy5hcHBseURpcmVjdGl2ZXMpKSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZURpcmVjdGl2ZSh0aGlzLmFwcGx5RGlyZWN0aXZlc1tpbmRleF0sIGRpcmVjdGl2ZU5hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=