{"version":3,"sources":["../src/misc/relativeTime.ts"],"names":["TIME_SECTIONS","relativeTime","value","baseTime","options","units","now","before","after","assignObject","ms","msBase","msDiff","msIndex","x","result"],"mappings":";;;;AAWA,IAAMA,EAAgB,CAAC,GAAA,CAAK,GAAM,CAAA,IAAA,CAAQ,MAAS,MAAU,CAAA,MAAA,CAAW,OAAY,CAAA,MAAA,CAAO,gBAAgB,CAOpG,CAAA,SAASC,EAAaC,GAAoBC,CAAAA,CAAAA,CAAwBC,EAA6B,CAClG,GAAM,CAAE,KAAA,CAAAC,EAAM,GAAAC,CAAAA,CAAAA,CAAI,MAAAC,CAAAA,CAAAA,CAAO,MAAAC,CAAM,CAAA,CAAGC,CAAa,CAAA,CAC3C,MAAO,CAAC,QAAA,CAAI,eAAK,cAAK,CAAA,QAAA,CAAI,SAAI,cAAK,CAAA,QAAG,CACtC,CAAA,GAAA,CAAI,eACJ,MAAO,CAAA,qBAAA,CACP,KAAM,CAAA,qBACV,EAAEL,CAAO,CAAA,CACLM,CAAI,CAAA,OAAOR,KAAQ,QAAW,CAAA,IAAI,KAAKA,GAAK,CAAA,CAAE,SAAYA,CAAAA,GAAAA,CAAM,OAAQ,EAAA,CACxES,GAAWR,CAAoB,YAAA,IAAA,CAAQA,EAAY,OAAOA,CAAAA,EAAW,SAAY,IAAI,IAAA,CAAKA,CAAQ,CAAA,CAAI,IAAI,IAAQ,EAAA,OAAA,GAClHS,CAASF,CAAAA,CAAAA,CAAKC,EACdE,CAAUb,CAAAA,CAAAA,CAAc,SAAUc,CAAAA,CAAAA,EAAG,KAAK,GAAIF,CAAAA,CAAM,CAAKE,CAAAA,CAAC,EAAI,CAGlE,CAAA,GAFGD,CAAU,CAAA,CAAA,GAAGA,EAAU,CACvBA,CAAAA,CAAAA,CAAAA,CAAUb,EAAc,MAAO,CAAA,CAAA,GAAIa,EAAUb,CAAc,CAAA,MAAA,CAAO,CAClEY,CAAAA,CAAAA,CAAAA,CAAO,KAAQA,CAAO,CAAA,IAAA,CACrB,OAAON,CACL,CAAA,GAAGM,GAAQ,IAAM,CAAA,CACnB,IAAIG,CAAAA,CAAS,SAAS,MAAO,CAAA,IAAA,CAAK,IAAIH,CAAM,CAAA,CAAIZ,EAAca,CAAO,CAAC,CAAC,CAAA,CACvE,OAAON,CAAO,CAAA,OAAA,CAAQ,SAAUQ,CAAAA,CAAM,EAAE,OAAQ,CAAA,QAAA,CAASV,CAAMQ,CAAAA,CAAO,CAAC,CAC3E,CAAA,KAAK,CACD,IAAIE,CAAAA,CAAS,SAAS,MAAO,CAAA,IAAA,CAAK,GAAIH,CAAAA,CAAM,EAAIZ,CAAca,CAAAA,CAAO,CAAC,CAAC,CAAA,CACvE,OAAOL,CAAM,CAAA,OAAA,CAAQ,SAAUO,CAAAA,CAAM,EAAE,OAAQ,CAAA,QAAA,CAASV,EAAMQ,CAAO,CAAC,CAC1E,CACJ","file":"chunk-GZSYDDNJ.mjs","sourcesContent":["/**\n * \n * 返回相对时间描述\n * \n * baseTime\n * relativeTime(\"2022/12/22\") ==// 5分钟前\n */\n\nimport { assignObject } from \"../object/assignObject\"\n\n// 对应:秒,分钟,小时,天,周,月,年的毫秒数,月取30天，年取365天概数31536000000\nconst TIME_SECTIONS = [1000,60000,3600000,86400000,604800000,2592000000,31536000000,Number.MAX_SAFE_INTEGER]\nexport interface RelativeTimeOptions{\n    units?:string[]\n    now?:string\n    before?:string\n    after?:string\n}\nexport function relativeTime(value:Date | number,baseTime?:Date | number,options?:RelativeTimeOptions){    \n    const { units,now,before,after } =assignObject({\n        units: [\"秒\",\"分钟\",\"小时\",\"天\",\"周\",\"个月\",\"年\"],  //[\"seconds\",\"minutes\",\"hours\",\"days\",\"weeks\",\"months\",\"years\"]\n        now:\"刚刚\",\n        before:\"{value}{unit}前\",\n        after:\"{value}{unit}后\"\n    },options)\n    let ms =typeof(value)=='number' ? new Date(value).getTime() : value.getTime()\n    let msBase = ((baseTime instanceof Date) ? baseTime : (typeof(baseTime)=='number') ? new Date(baseTime) : new Date()).getTime()\n    let msDiff = ms - msBase\n    let msIndex = TIME_SECTIONS.findIndex(x=>Math.abs(msDiff) <  x) - 1   \n    if(msIndex < 0) msIndex = 0\n    if(msIndex > TIME_SECTIONS.length-1 ) msIndex = TIME_SECTIONS.length-1\n    if(msDiff<1000 && msDiff>-1000 ){\n        return now\n    }else if(msDiff<=-1000){// 之前\n        let result = parseInt(String(Math.abs(msDiff) / TIME_SECTIONS[msIndex]))\n        return before.replace(\"{value}\",result).replace(\"{unit}\",units[msIndex])\n    }else{// 之后\n        let result = parseInt(String(Math.abs(msDiff) / TIME_SECTIONS[msIndex]))\n        return after.replace(\"{value}\",result).replace(\"{unit}\",units[msIndex])\n    }\n}\n"]}