feat(catalog): fetch options for partial variant selections

This commit is contained in:
2026-08-14 09:43:47 -03:00
parent 0defe75adb
commit 15979874ce
3 changed files with 36 additions and 4 deletions

View File

@@ -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[] {