src/app/core/admin/admin-entity/admin-entity-general-settings/conditional-color-config/conditional-color-section/conditional-color-section.component.ts

Description

Component for managing a single conditional color section

Example

Metadata

Relationships

Depends on

Index

Methods
Inputs
Outputs

Inputs

entityConstructor
Type : EntityConstructor
Required :  true
section
Type : ColorMapping
Required :  true

Outputs

colorChange
Type : string
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
Returns : void
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-color-section.component.scss

.conditional-section {
  background-color: transparent;
  border-radius: 8px;

  .section-header {
    justify-content: space-between;
  }
}
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""