{"version":3,"file":"sort-controller.mjs","sources":["../../../../packages/components-wc/src/subject/sort-controller.ts"],"sourcesContent":["import type { SubjectLikeItem } from './pagination'\n\nexport function moveSubjectItem(items: SubjectLikeItem[], fromIndex: number, toIndex: number): SubjectLikeItem[] {\n  if (fromIndex === toIndex || fromIndex < 0 || toIndex < 0 || fromIndex >= items.length || toIndex >= items.length) {\n    return items.map(item => ({ ...item }))\n  }\n\n  const next = items.map(item => ({ ...item }))\n  const [moved] = next.splice(fromIndex, 1)\n  next.splice(toIndex, 0, moved)\n  return next\n}\n\nexport function reorderSubjects(items: SubjectLikeItem[], orderedIds: string[]): SubjectLikeItem[] {\n  if (!orderedIds.length) {\n    return items.map(item => ({ ...item }))\n  }\n\n  const itemMap = new Map<string, SubjectLikeItem>()\n  const next: SubjectLikeItem[] = []\n\n  items.forEach((item) => {\n    if (item.customId) {\n      itemMap.set(String(item.customId), { ...item })\n    }\n  })\n\n  orderedIds.forEach((id) => {\n    const item = itemMap.get(String(id))\n    if (!item) {\n      return\n    }\n    next.push(item)\n    itemMap.delete(String(id))\n  })\n\n  items.forEach((item) => {\n    if (!item.customId || itemMap.has(String(item.customId))) {\n      next.push(itemMap.get(String(item.customId)) || { ...item })\n      itemMap.delete(String(item.customId))\n    }\n  })\n\n  return next\n}\n"],"names":["moveSubjectItem","items","fromIndex","toIndex","length","map","item","next","moved","splice","reorderSubjects","orderedIds","itemMap","Map","forEach","customId","set","String","id","get","push","delete","has"],"mappings":"AAEO,SAASA,EAAgBC,EAA0BC,EAAmBC,GAC3E,GAAID,IAAcC,GAAWD,EAAY,GAAKC,EAAU,GAAKD,GAAaD,EAAMG,QAAUD,GAAWF,EAAMG,OACzG,OAAOH,EAAMI,IAAIC,IAAA,IAAcA,KAGjC,MAAMC,EAAON,EAAMI,YAAkBC,MAC9BE,GAASD,EAAKE,OAAOP,EAAW,GAEvC,OADAK,EAAKE,OAAON,EAAS,EAAGK,GACjBD,CACT,CAEO,SAASG,EAAgBT,EAA0BU,GACxD,IAAKA,EAAWP,OACd,OAAOH,EAAMI,IAAIC,IAAA,IAAcA,KAGjC,MAAMM,MAAcC,IACdN,EAA0B,GAwBhC,OAtBAN,EAAMa,QAASR,IACTA,EAAKS,UACPH,EAAQI,IAAIC,OAAOX,EAAKS,UAAW,IAAKT,MAI5CK,EAAWG,QAASI,IAClB,MAAMZ,EAAOM,EAAQO,IAAIF,OAAOC,IAC3BZ,IAGLC,EAAKa,KAAKd,GACVM,EAAQS,OAAOJ,OAAOC,OAGxBjB,EAAMa,QAASR,IACRA,EAAKS,WAAYH,EAAQU,IAAIL,OAAOX,EAAKS,aAC5CR,EAAKa,KAAKR,EAAQO,IAAIF,OAAOX,EAAKS,YAAc,IAAKT,IACrDM,EAAQS,OAAOJ,OAAOX,EAAKS,cAIxBR,CACT"}