1{"version":3,"file":"sortObject.js","names":["sortObject","obj","compareFn","Object","keys","sort","reduce","acc","key","sortObjWithOrder","order","sorted","sortWithOrder","groupOrder","Set","concat","length","shift","index","indexOf","item","splice","push","reverseSortString","a","b"],"sources":["../../src/utils/sortObject.ts"],"sourcesContent":["export function sortObject<T extends Record<string, any> = Record<string, any>>(\n  obj: T,\n  compareFn?: (a: string, b: string) => number\n): T {\n  return Object.keys(obj)\n    .sort(compareFn)\n    .reduce(\n      (acc, key) => ({\n        ...acc,\n        [key]: obj[key],\n      }),\n      {}\n    ) as T;\n}\n\nexport function sortObjWithOrder<T extends Record<string, any> = Record<string, any>>(\n  obj: T,\n  order: string[]\n): T {\n  const sorted = sortWithOrder(Object.keys(obj), order);\n\n  return sorted.reduce(\n    (acc, key) => ({\n      ...acc,\n      [key]: obj[key],\n    }),\n    {}\n  ) as T;\n}\n\nexport function sortWithOrder(obj: string[], order: string[]): string[] {\n  const groupOrder = [...new Set(order.concat(obj))];\n  const sorted: string[] = [];\n\n  while (groupOrder.length) {\n    const key = groupOrder.shift()!;\n    const index = obj.indexOf(key);\n    if (index > -1) {\n      const [item] = obj.splice(index, 1);\n      sorted.push(item);\n    }\n  }\n\n  return sorted;\n}\n\nexport const reverseSortString = (a: string, b: string) => {\n  if (a < b) return 1;\n  if (a > b) return -1;\n  return 0;\n};\n"],"mappings":";;;;;;;;;;AAAO,SAASA,UAAT,CACLC,GADK,EAELC,SAFK,EAGF;EACH,OAAOC,MAAM,CAACC,IAAP,CAAYH,GAAZ,EACJI,IADI,CACCH,SADD,EAEJI,MAFI,CAGH,CAACC,GAAD,EAAMC,GAAN,MAAe,EACb,GAAGD,GADU;IAEb,CAACC,GAAD,GAAOP,GAAG,CAACO,GAAD;EAFG,CAAf,CAHG,EAOH,EAPG,CAAP;AASD;;AAEM,SAASC,gBAAT,CACLR,GADK,EAELS,KAFK,EAGF;EACH,MAAMC,MAAM,GAAGC,aAAa,CAACT,MAAM,CAACC,IAAP,CAAYH,GAAZ,CAAD,EAAmBS,KAAnB,CAA5B;EAEA,OAAOC,MAAM,CAACL,MAAP,CACL,CAACC,GAAD,EAAMC,GAAN,MAAe,EACb,GAAGD,GADU;IAEb,CAACC,GAAD,GAAOP,GAAG,CAACO,GAAD;EAFG,CAAf,CADK,EAKL,EALK,CAAP;AAOD;;AAEM,SAASI,aAAT,CAAuBX,GAAvB,EAAsCS,KAAtC,EAAiE;EACtE,MAAMG,UAAU,GAAG,CAAC,GAAG,IAAIC,GAAJ,CAAQJ,KAAK,CAACK,MAAN,CAAad,GAAb,CAAR,CAAJ,CAAnB;EACA,MAAMU,MAAgB,GAAG,EAAzB;;EAEA,OAAOE,UAAU,CAACG,MAAlB,EAA0B;IACxB,MAAMR,GAAG,GAAGK,UAAU,CAACI,KAAX,EAAZ;IACA,MAAMC,KAAK,GAAGjB,GAAG,CAACkB,OAAJ,CAAYX,GAAZ,CAAd;;IACA,IAAIU,KAAK,GAAG,CAAC,CAAb,EAAgB;MACd,MAAM,CAACE,IAAD,IAASnB,GAAG,CAACoB,MAAJ,CAAWH,KAAX,EAAkB,CAAlB,CAAf;MACAP,MAAM,CAACW,IAAP,CAAYF,IAAZ;IACD;EACF;;EAED,OAAOT,MAAP;AACD;;AAEM,MAAMY,iBAAiB,GAAG,CAACC,CAAD,EAAYC,CAAZ,KAA0B;EACzD,IAAID,CAAC,GAAGC,CAAR,EAAW,OAAO,CAAP;EACX,IAAID,CAAC,GAAGC,CAAR,EAAW,OAAO,CAAC,CAAR;EACX,OAAO,CAAP;AACD,CAJM"}