Description
Component for managing a single conditional color section
Example
Outputs
|
conditionChange
|
Type : any
|
|
|
|
deleteSection
|
Type : void
|
|
|
Methods
|
onConditionsChange
|
onConditionsChange(updatedConditions: any)
|
|
|
Handle conditions change from the conditions editor
Parameters :
| Name |
Type |
Optional |
| updatedConditions |
any
|
No
|
|
import {
Component,
input,
output,
ChangeDetectionStrategy,
} from "@angular/core";
import { MatButtonModule } from "@angular/material/button";
import { MatTooltipModule } from "@angular/material/tooltip";
import { FontAwesomeModule } from "@fortawesome/angular-fontawesome";
import { ColorMapping, EntityConstructor } from "app/core/entity/model/entity";
import { ColorInputComponent } from "#src/app/core/common-components/color-input/color-input.component";
import { ConditionsEditorComponent } from "app/core/common-components/conditions-editor/conditions-editor.component";
/**
* Component for managing a single conditional color section
*/
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
selector: "app-conditional-color-section",
templateUrl: "./conditional-color-section.component.html",
styleUrls: ["./conditional-color-section.component.scss"],
imports: [
MatButtonModule,
MatTooltipModule,
FontAwesomeModule,
ColorInputComponent,
ConditionsEditorComponent,
],
})
export class ConditionalColorSectionComponent {
section = input.required<ColorMapping>();
entityConstructor = input.required<EntityConstructor>();
colorChange = output<string>();
deleteSection = output<void>();
conditionChange = output<any>();
/**
* Handle conditions change from the conditions editor
*/
onConditionsChange(updatedConditions: any): void {
this.conditionChange.emit(updatedConditions);
}
}
<div class="conditional-section flex-column border-regular">
<div class="section-header flex-row">
<app-color-input
[value]="section().color"
label="Conditional Color"
i18n-label
(valueChange)="colorChange.emit($event)"
></app-color-input>
<button
mat-icon-button
type="button"
color="warn"
(click)="deleteSection.emit()"
matTooltip="Delete conditional color section"
i18n-matTooltip
>
<fa-icon icon="trash"></fa-icon>
</button>
</div>
<app-conditions-editor
[conditions]="section().condition"
[entityConstructor]="entityConstructor()"
(conditionsChange)="onConditionsChange($event)"
></app-conditions-editor>
</div>
.conditional-section {
background-color: transparent;
border-radius: 8px;
.section-header {
justify-content: space-between;
}
}
Legend
Html element with directive