@engie-group/fluid-design-system-angular
Version:
Fluid Design System Angular
50 lines • 6.4 kB
JavaScript
import { ChangeDetectorRef, Directive, inject, Input } from '@angular/core';
import { ButtonComponent } from '../../button/button.component';
import { SearchComponent } from '../search.component';
import * as i0 from "@angular/core";
export class SearchButtonDirective {
constructor() {
this.button = inject(ButtonComponent, { self: true });
this.search = inject(SearchComponent, { host: true });
this.cdr = inject(ChangeDetectorRef);
this.isDisabled = false;
}
get searchScaleToButtonScale() {
const map = {
sm: 'small',
md: 'medium',
lg: 'large',
xl: 'xlarge'
};
return map[this.search.scale];
}
ngDoCheck() {
if (this.searchScaleToButtonScale !== this.button.size) {
this.button.size = this.searchScaleToButtonScale ?? 'medium';
this.cdr.markForCheck();
}
if (this.search.disabled && (this.search.disabled !== this.button.isDisabled)) {
this.button.isDisabled = this.search.disabled;
this.cdr.markForCheck();
}
if (!this.search.disabled && (this.isDisabled !== this.button.isDisabled)) {
this.button.isDisabled = this.isDisabled;
this.cdr.markForCheck();
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SearchButtonDirective, isStandalone: true, selector: "nj-button[njSearchButton]", inputs: { isDisabled: "isDisabled" }, host: { classAttribute: "nj-search__button" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchButtonDirective, decorators: [{
type: Directive,
args: [{
selector: 'nj-button[njSearchButton]',
standalone: true,
host: {
'class': 'nj-search__button'
}
}]
}], propDecorators: { isDisabled: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJ1dHRvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zZWFyY2gvZGlyZWN0aXZlcy9zZWFyY2gtYnV0dG9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFXLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRTlELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7QUFTcEQsTUFBTSxPQUFPLHFCQUFxQjtJQVBsQztRQVFVLFdBQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDL0MsV0FBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUMvQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFL0IsZUFBVSxHQUFHLEtBQUssQ0FBQztLQTRCN0I7SUExQkMsSUFBWSx3QkFBd0I7UUFDbEMsTUFBTSxHQUFHLEdBQWlEO1lBQ3hELEVBQUUsRUFBRSxPQUFPO1lBQ1gsRUFBRSxFQUFFLFFBQVE7WUFDWixFQUFFLEVBQUUsT0FBTztZQUNYLEVBQUUsRUFBRSxRQUFRO1NBQ2IsQ0FBQztRQUNGLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtZQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsd0JBQXdCLElBQUksUUFBUSxDQUFDO1lBQzdELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM3RSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3pFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7K0dBaENVLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQVBqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0osT0FBTyxFQUFFLG1CQUFtQjtxQkFDN0I7aUJBQ0Y7OEJBTVUsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRG9DaGVjaywgaW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0J1dHRvbkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtCdXR0b25TaXplfSBmcm9tICcuLi8uLi9idXR0b24vYnV0dG9uLm1vZGVsJztcbmltcG9ydCB7U2VhcmNoQ29tcG9uZW50fSBmcm9tICcuLi9zZWFyY2guY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbmotYnV0dG9uW25qU2VhcmNoQnV0dG9uXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnbmotc2VhcmNoX19idXR0b24nXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoQnV0dG9uRGlyZWN0aXZlIGltcGxlbWVudHMgRG9DaGVjayB7XG4gIHByaXZhdGUgYnV0dG9uID0gaW5qZWN0KEJ1dHRvbkNvbXBvbmVudCwge3NlbGY6IHRydWV9KTtcbiAgcHJpdmF0ZSBzZWFyY2ggPSBpbmplY3QoU2VhcmNoQ29tcG9uZW50LCB7aG9zdDogdHJ1ZX0pO1xuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgQElucHV0KCkgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgZ2V0IHNlYXJjaFNjYWxlVG9CdXR0b25TY2FsZSgpIHtcbiAgICBjb25zdCBtYXA6IFJlY29yZDx0eXBlb2YgdGhpcy5zZWFyY2guc2NhbGUsIEJ1dHRvblNpemU+ID0ge1xuICAgICAgc206ICdzbWFsbCcsXG4gICAgICBtZDogJ21lZGl1bScsXG4gICAgICBsZzogJ2xhcmdlJyxcbiAgICAgIHhsOiAneGxhcmdlJ1xuICAgIH07XG4gICAgcmV0dXJuIG1hcFt0aGlzLnNlYXJjaC5zY2FsZV07XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoU2NhbGVUb0J1dHRvblNjYWxlICE9PSB0aGlzLmJ1dHRvbi5zaXplKSB7XG4gICAgICB0aGlzLmJ1dHRvbi5zaXplID0gdGhpcy5zZWFyY2hTY2FsZVRvQnV0dG9uU2NhbGUgPz8gJ21lZGl1bSc7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWFyY2guZGlzYWJsZWQgJiYgKHRoaXMuc2VhcmNoLmRpc2FibGVkICE9PSB0aGlzLmJ1dHRvbi5pc0Rpc2FibGVkKSkge1xuICAgICAgdGhpcy5idXR0b24uaXNEaXNhYmxlZCA9IHRoaXMuc2VhcmNoLmRpc2FibGVkO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNlYXJjaC5kaXNhYmxlZCAmJiAodGhpcy5pc0Rpc2FibGVkICE9PSB0aGlzLmJ1dHRvbi5pc0Rpc2FibGVkKSkge1xuICAgICAgdGhpcy5idXR0b24uaXNEaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZDtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIl19