feat(catalog): fetch options for partial variant selections
This commit is contained in:
@@ -5,6 +5,7 @@ import {
|
||||
effect,
|
||||
input,
|
||||
model,
|
||||
output,
|
||||
signal,
|
||||
untracked,
|
||||
} from '@angular/core';
|
||||
@@ -23,6 +24,11 @@ export interface VariantSelectorVariant {
|
||||
values: Record<string, VariantAttributeValue>;
|
||||
}
|
||||
|
||||
export interface VariantSelectorSelectionChange {
|
||||
values: Record<string, VariantAttributeValue>;
|
||||
selectedVariant: unknown;
|
||||
}
|
||||
|
||||
interface VariantSelectorOption {
|
||||
key: string;
|
||||
label: string;
|
||||
@@ -49,6 +55,7 @@ export class VariantSelectorComponent {
|
||||
readonly disabled = input(false);
|
||||
readonly compact = input(false);
|
||||
readonly autoSelectFirst = input(true);
|
||||
readonly selectionValuesChange = output<VariantSelectorSelectionChange>();
|
||||
|
||||
protected readonly selectedValues = signal<Record<string, VariantAttributeValue>>({});
|
||||
protected readonly compareValues = (
|
||||
@@ -143,6 +150,10 @@ export class VariantSelectorComponent {
|
||||
|
||||
this.selectedValues.set(values);
|
||||
this.selectedVariant.set(matchingVariant?.id ?? null);
|
||||
this.selectionValuesChange.emit({
|
||||
values: { ...values },
|
||||
selectedVariant: matchingVariant?.id ?? null,
|
||||
});
|
||||
}
|
||||
|
||||
private optionsFor(variants: VariantSelectorVariant[], key: string): VariantSelectorOption[] {
|
||||
|
||||
Reference in New Issue
Block a user