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"}