{"version":3,"file":"default-spotlight-filter.mjs","sources":["../src/default-spotlight-filter.ts"],"sourcesContent":["import type {\n  SpotlightActionData,\n  SpotlightActionGroupData,\n  SpotlightActions,\n  SpotlightFilterFunction,\n} from './Spotlight';\n\nfunction getKeywords(keywords: string | string[] | undefined) {\n  if (Array.isArray(keywords)) {\n    return keywords\n      .map((keyword) => keyword.trim())\n      .join(',')\n      .toLowerCase()\n      .trim();\n  }\n\n  if (typeof keywords === 'string') {\n    return keywords.toLowerCase().trim();\n  }\n\n  return '';\n}\n\nfunction getFlatActions(data: SpotlightActions[]) {\n  return data.reduce<SpotlightActionData[]>((acc, item) => {\n    if ('actions' in item) {\n      return [...acc, ...item.actions.map((action) => ({ ...action, group: item.group }))];\n    }\n\n    return [...acc, item];\n  }, []);\n}\n\nfunction flatActionsToGroups(data: SpotlightActionData[]) {\n  const groups: Record<string, { pushed: boolean; data: SpotlightActionGroupData }> = {};\n  const result: SpotlightActions[] = [];\n\n  data.forEach((action) => {\n    if (action.group) {\n      if (!groups[action.group]) {\n        groups[action.group] = { pushed: false, data: { group: action.group, actions: [] } };\n      }\n\n      groups[action.group].data.actions.push(action);\n\n      if (!groups[action.group].pushed) {\n        groups[action.group].pushed = true;\n        result.push(groups[action.group].data);\n      }\n    } else {\n      result.push(action);\n    }\n  });\n\n  return result;\n}\n\nexport const defaultSpotlightFilter: SpotlightFilterFunction = (_query, data) => {\n  const query = _query.trim().toLowerCase();\n  const priorityMatrix: SpotlightActionData[][] = [[], []];\n  const flatActions = getFlatActions(data);\n  flatActions.forEach((item) => {\n    if (item.label?.toLowerCase().includes(query)) {\n      priorityMatrix[0].push(item);\n    } else if (\n      item.description?.toLowerCase().includes(query) ||\n      getKeywords(item.keywords).includes(query)\n    ) {\n      priorityMatrix[1].push(item);\n    }\n  });\n\n  return flatActionsToGroups(priorityMatrix.flat());\n};\n"],"names":["getKeywords","keywords","Array","isArray","map","keyword","trim","join","toLowerCase","getFlatActions","data","reduce","acc","item","actions","action","group","flatActionsToGroups","groups","result","forEach","pushed","push","defaultSpotlightFilter","_query","query","priorityMatrix","flatActions","label","includes","description","flat"],"mappings":"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"}