File

feature-libs/product/variants/components/variant-color-selector/product-variant-color-selector.component.ts

Metadata

changeDetection ChangeDetectionStrategy.OnPush
selector cx-product-variant-color-selector
templateUrl ./product-variant-color-selector.component.html

Index

Properties
Methods
Inputs

Constructor

constructor(routingService: RoutingService)
Parameters :
Name Type Optional
routingService RoutingService No

Inputs

product
Type : Product
variants
Type : BaseOption

Methods

changeColor
changeColor(code: string, name: string)
Parameters :
Name Type Optional
code string No
name string No
Returns : null
getVariantOptionValue
getVariantOptionValue(qualifiers: VariantOptionQualifier[])
Parameters :
Name Type Optional
qualifiers VariantOptionQualifier[] No
Returns : any

Properties

product
Type : Product
Decorators :
@Input()
variants
Type : BaseOption
Decorators :
@Input()
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import {
  BaseOption,
  Product,
  RoutingService,
  VariantOptionQualifier,
  VariantQualifier,
} from '@spartacus/core';

@Component({
  selector: 'cx-product-variant-color-selector',
  templateUrl: './product-variant-color-selector.component.html',
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class ProductVariantColorSelectorComponent {
  constructor(private routingService: RoutingService) {}

  @Input()
  product: Product;

  @Input()
  variants: BaseOption;

  changeColor(code: string, name: string): null {
    if (code) {
      this.routingService.go({
        cxRoute: 'product',
        params: { code, name },
      });
    }
    return null;
  }
  getVariantOptionValue(qualifiers: VariantOptionQualifier[]) {
    const obj = qualifiers.find((q) => q.qualifier === VariantQualifier.COLOR);
    return obj ? obj.value : '';
  }
}
<ng-container>
  <div class="variant-selector">
    <div class="variant-name">{{ 'productVariants.color' | cxTranslate }}:</div>

    <select
      (change)="changeColor($event.target.value, product?.name)"
      class="form-control variant-select"
    >
      <option
        *ngFor="let v of variants?.options"
        value="{{ v.code }}"
        [selected]="v.code === product?.code"
      >
        {{ getVariantOptionValue(v.variantOptionQualifiers) }}
      </option>
    </select>
  </div>
</ng-container>
Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""