new Fuse( subjects .filter((s) => { if (restrainToYearTier) return s.yearTier === restrainToYearTier; if (restrainToMajorUid) return s.majors.some((m) => m.uid === restrainToMajorUid); return true; }) .map((s) => ({ ...s, })), { keys: [ 'name', 'uid', 'shortName', 'majors.name', 'minors.name', 'majors.shortName', 'minors.shortName', ], }, ) .search(q) .map((r) => r.item)} bind:object bind:value={uid} valueKey="uid" labelKey="name" > {item.shortName || item.name} ยท {item.yearTier}A {item.forApprentices ? 'FISA ' : ''}{item.majors.map((s) => s.shortName).join(', ')} {#if item.minors.length > 0}({item.minors.map((s) => s.shortName).join(', ')}){/if}