@sendbird/uikit-utils 2.4.1 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/hooks/index.js +3 -30
  3. package/lib/commonjs/hooks/index.js.map +1 -1
  4. package/lib/commonjs/hooks/react-native.js +2 -11
  5. package/lib/commonjs/hooks/react-native.js.map +1 -1
  6. package/lib/commonjs/index.js +0 -42
  7. package/lib/commonjs/index.js.map +1 -1
  8. package/lib/commonjs/sendbird/attrs.js +8 -11
  9. package/lib/commonjs/sendbird/attrs.js.map +1 -1
  10. package/lib/commonjs/sendbird/channel.js +0 -16
  11. package/lib/commonjs/sendbird/channel.js.map +1 -1
  12. package/lib/commonjs/sendbird/message.js +3 -34
  13. package/lib/commonjs/sendbird/message.js.map +1 -1
  14. package/lib/commonjs/sendbird/user.js +0 -2
  15. package/lib/commonjs/sendbird/user.js.map +1 -1
  16. package/lib/commonjs/shared/arrayToMap.js +0 -6
  17. package/lib/commonjs/shared/arrayToMap.js.map +1 -1
  18. package/lib/commonjs/shared/bufferedRequest.js +5 -26
  19. package/lib/commonjs/shared/bufferedRequest.js.map +1 -1
  20. package/lib/commonjs/shared/file.js +11 -28
  21. package/lib/commonjs/shared/file.js.map +1 -1
  22. package/lib/commonjs/shared/index.js +3 -7
  23. package/lib/commonjs/shared/index.js.map +1 -1
  24. package/lib/commonjs/shared/logger.js +3 -22
  25. package/lib/commonjs/shared/logger.js.map +1 -1
  26. package/lib/commonjs/shared/regex.js +2 -9
  27. package/lib/commonjs/shared/regex.js.map +1 -1
  28. package/lib/commonjs/ui-format/common.js +6 -18
  29. package/lib/commonjs/ui-format/common.js.map +1 -1
  30. package/lib/commonjs/ui-format/groupChannel.js +0 -15
  31. package/lib/commonjs/ui-format/groupChannel.js.map +1 -1
  32. package/lib/commonjs/ui-format/openChannel.js +0 -4
  33. package/lib/commonjs/ui-format/openChannel.js.map +1 -1
  34. package/lib/module/hooks/index.js +3 -7
  35. package/lib/module/hooks/index.js.map +1 -1
  36. package/lib/module/hooks/react-native.js +2 -2
  37. package/lib/module/hooks/react-native.js.map +1 -1
  38. package/lib/module/index.js.map +1 -1
  39. package/lib/module/sendbird/attrs.js +6 -9
  40. package/lib/module/sendbird/attrs.js.map +1 -1
  41. package/lib/module/sendbird/channel.js +0 -1
  42. package/lib/module/sendbird/channel.js.map +1 -1
  43. package/lib/module/sendbird/message.js +3 -17
  44. package/lib/module/sendbird/message.js.map +1 -1
  45. package/lib/module/sendbird/user.js.map +1 -1
  46. package/lib/module/shared/arrayToMap.js +0 -4
  47. package/lib/module/shared/arrayToMap.js.map +1 -1
  48. package/lib/module/shared/bufferedRequest.js +5 -24
  49. package/lib/module/shared/bufferedRequest.js.map +1 -1
  50. package/lib/module/shared/file.js +11 -16
  51. package/lib/module/shared/file.js.map +1 -1
  52. package/lib/module/shared/index.js +3 -3
  53. package/lib/module/shared/index.js.map +1 -1
  54. package/lib/module/shared/logger.js +3 -21
  55. package/lib/module/shared/logger.js.map +1 -1
  56. package/lib/module/shared/regex.js +3 -2
  57. package/lib/module/shared/regex.js.map +1 -1
  58. package/lib/module/ui-format/common.js +6 -9
  59. package/lib/module/ui-format/common.js.map +1 -1
  60. package/lib/module/ui-format/groupChannel.js +0 -7
  61. package/lib/module/ui-format/groupChannel.js.map +1 -1
  62. package/lib/module/ui-format/openChannel.js.map +1 -1
  63. package/package.json +11 -7
@@ -1 +1 @@
1
- {"version":3,"names":["EXTENSION_MIME_MAP","imageExtRegex","audioExtRegex","videoExtRegex","getFileType","extOrType","indexOf","type","split","match","getDownscaleSize","origin","resizing","ratio","maxWidth","width","maxHeight","height","Math","min","normalizeFileName","fileName","extension","_extension","toLowerCase","_filename","hasExtension","lastIndexOf","length","parseMimeType","mimeType","fullType","parts","subtype","parameters","part","name","value","trim","getFileExtensionFromMime","MIME_EXTENSION_MAP","Object","entries","reduce","acc","key","getMimeFromFileExtension","ext","getFileExtension","filePath","pathWithoutParams","idx","result","slice","getFileExtensionFromUri","uri","fetch","then","response","headers","get","isImage","shouldCompressImage","mime","compressionEnabled","Boolean"],"sources":["file.ts"],"sourcesContent":["const EXTENSION_MIME_MAP = {\n // Image\n 'jpeg': 'image/jpeg',\n 'jpg': 'image/jpeg',\n 'png': 'image/png',\n 'gif': 'image/gif',\n 'webp': 'image/webp',\n 'svg': 'image/svg+xml',\n\n // Video\n '3gp': 'video/3gpp',\n 'mp4': 'video/mp4',\n 'mpeg': 'video/mpeg',\n 'ogv': 'video/ogg',\n 'video/quicktime': 'mov',\n 'webm': 'video/webm',\n 'avi': 'video/x-msvideo',\n\n // Audio\n 'aac': 'audio/aac',\n 'mid': 'audio/midi',\n 'mp3': 'audio/mpeg',\n 'ogg': 'audio/ogg',\n 'wav': 'audio/wav',\n 'weba': 'audio/webm',\n\n // Files\n 'txt': 'text/plain',\n 'pdf': 'application/pdf',\n 'doc': 'application/msword',\n 'docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'xls': 'application/vnd.ms-excel',\n 'xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'ppt': 'application/vnd.ms-powerpoint',\n 'pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'zip': 'application/zip',\n 'json': 'application/json',\n 'gzip': 'application/x-gzip',\n} as Record<string, string>;\n\nexport const imageExtRegex = /jpeg|jpg|png|webp|gif/i;\nexport const audioExtRegex = /3gp|aac|aax|act|aiff|flac|gsm|m4a|m4b|m4p|tta|wma|mp3|webm|wav/i;\nexport const videoExtRegex = /mov|vod|mp4|avi/i;\nexport const getFileType = (extOrType: string) => {\n if (extOrType.indexOf('/') > -1) {\n const type = extOrType.split('/')[0];\n if (type === 'video') return 'video';\n if (type === 'audio') return 'audio';\n if (type === 'image') return 'image';\n return 'file';\n }\n\n if (extOrType.match(imageExtRegex)) return 'image';\n if (extOrType.match(audioExtRegex)) return 'audio';\n if (extOrType.match(videoExtRegex)) return 'video';\n return 'file';\n};\n\n/**\n * Calculates the downscaled size of an image while preserving its aspect ratio.\n *\n * @param {Object} origin - The original size object with `width` and `height` properties.\n * @param {Object} resizing - The resizing object with optional `width` and `height` properties.\n * @returns {Object} - A new size object with the downscaled `width` and `height` properties.\n * @example\n * ```ts\n * getDownscaleSize({ width: 1200, height: 800 }, { width: 600 }); // returns { width: 600, height: 400 }\n * ```\n */\ntype Size = { width: number; height: number };\nexport function getDownscaleSize(origin: Size, resizing: Partial<Size>) {\n let ratio: number;\n\n const maxWidth = resizing.width || origin.width,\n maxHeight = resizing.height || origin.height;\n\n if (origin.width <= maxWidth && origin.height <= maxHeight) {\n ratio = 1;\n } else if (origin.width > maxWidth && origin.height <= maxHeight) {\n ratio = maxWidth / origin.width;\n } else if (origin.width <= maxWidth && origin.height > maxHeight) {\n ratio = maxHeight / origin.height;\n } else {\n ratio = Math.min(maxWidth / origin.width, maxHeight / origin.height);\n }\n\n return { width: origin.width * ratio, height: origin.height * ratio };\n}\n\n/**\n * Normalize a file name by ensuring it has the given extension, if it doesn't already.\n *\n * @param {string} fileName - The file name to normalize.\n * @param {string} extension - The desired extension, without a leading period.\n * @returns {string} - The normalized file name, with the extension.\n */\nexport function normalizeFileName(fileName: string, extension: string) {\n if (!extension) return fileName;\n\n // .extension\n let _extension = extension.toLowerCase();\n if (_extension.indexOf('.') !== 0) {\n _extension = '.' + _extension;\n }\n\n // filename.extension | filename\n const _filename = fileName.toLowerCase();\n const hasExtension = _filename.lastIndexOf(_extension) === _filename.length - _extension.length;\n if (!hasExtension) {\n // filename.extension\n return fileName + _extension;\n } else {\n // filename.extension\n return fileName;\n }\n}\n\n/**\n * Parses a MIME type string into its components.\n *\n * @param mimeType - The MIME type string to parse.\n * @returns An object containing the type, subtype, and parameters of the MIME type.\n */\ntype MimeType = { type: string; subtype: string; parameters: Record<string, string> };\nexport function parseMimeType(mimeType: string): MimeType {\n const [fullType, ...parts] = mimeType.split(';');\n const [type, subtype] = fullType.split('/');\n const parameters: MimeType['parameters'] = {};\n\n for (const part of parts) {\n const [name, value] = part.trim().split('=');\n parameters[name] = value;\n }\n\n return { type, subtype, parameters };\n}\n\n/**\n * Returns the file extension based on the MIME type.\n *\n * @param {string | null | undefined} mimeType - The MIME type to look up.\n * @returns {string} - The file extension for the given MIME type, or an empty string if no matching file extension was found.\n */\nexport function getFileExtensionFromMime(mimeType?: string | null): string {\n if (!mimeType) return '';\n const MIME_EXTENSION_MAP = Object.entries(EXTENSION_MIME_MAP).reduce((acc, [key, value]) => {\n acc[value] = key;\n return acc;\n }, {} as Record<string, string>);\n return MIME_EXTENSION_MAP[mimeType.toLowerCase()] || '';\n}\n\n/**\n * Returns the MIME type based on the file extension.\n *\n * @param {string | null | undefined} ext - The file extension to look up.\n * @returns {string} - The MIME type for the given file extension, or an empty string if no matching MIME type was found.\n */\nexport function getMimeFromFileExtension(ext?: string | null) {\n if (!ext) return '';\n return EXTENSION_MIME_MAP[ext.toLowerCase()] || '';\n}\n\n/**\n * Returns the file extension of a file path.\n *\n * @param {string} filePath - The file path to extract the extension from.\n * @returns {string} - The file extension, or an empty string if the file path does not have an extension.\n */\nexport function getFileExtension(filePath: string) {\n const pathWithoutParams = filePath.split('?')[0];\n\n const idx = pathWithoutParams.lastIndexOf('.');\n if (idx === -1) return '';\n\n const result = pathWithoutParams.slice(idx - pathWithoutParams.length).toLowerCase();\n if (result === '.') return '';\n else return result;\n}\n\nexport function getFileExtensionFromUri(uri: string) {\n return fetch(uri).then((response) => response.headers.get('content-type'));\n}\n\nexport function isImage(filePath: string, mimeType?: string) {\n const type = getFileType(mimeType || getFileExtension(filePath));\n return type === 'image';\n}\n\nexport function shouldCompressImage(mime: string, compressionEnabled = true) {\n const extension = getFileExtensionFromMime(mime);\n return Boolean(extension.match(/jpg|jpeg|png/i) && compressionEnabled);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,MAAMA,kBAAkB,GAAG;EACzB;EACA,QAAQ,YAFiB;EAGzB,OAAO,YAHkB;EAIzB,OAAO,WAJkB;EAKzB,OAAO,WALkB;EAMzB,QAAQ,YANiB;EAOzB,OAAO,eAPkB;EASzB;EACA,OAAO,YAVkB;EAWzB,OAAO,WAXkB;EAYzB,QAAQ,YAZiB;EAazB,OAAO,WAbkB;EAczB,mBAAmB,KAdM;EAezB,QAAQ,YAfiB;EAgBzB,OAAO,iBAhBkB;EAkBzB;EACA,OAAO,WAnBkB;EAoBzB,OAAO,YApBkB;EAqBzB,OAAO,YArBkB;EAsBzB,OAAO,WAtBkB;EAuBzB,OAAO,WAvBkB;EAwBzB,QAAQ,YAxBiB;EA0BzB;EACA,OAAO,YA3BkB;EA4BzB,OAAO,iBA5BkB;EA6BzB,OAAO,oBA7BkB;EA8BzB,QAAQ,yEA9BiB;EA+BzB,OAAO,0BA/BkB;EAgCzB,QAAQ,mEAhCiB;EAiCzB,OAAO,+BAjCkB;EAkCzB,QAAQ,2EAlCiB;EAmCzB,OAAO,iBAnCkB;EAoCzB,QAAQ,kBApCiB;EAqCzB,QAAQ;AArCiB,CAA3B;AAwCO,MAAMC,aAAa,GAAG,wBAAtB;;AACA,MAAMC,aAAa,GAAG,iEAAtB;;AACA,MAAMC,aAAa,GAAG,kBAAtB;;;AACA,MAAMC,WAAW,GAAIC,SAAD,IAAuB;EAChD,IAAIA,SAAS,CAACC,OAAV,CAAkB,GAAlB,IAAyB,CAAC,CAA9B,EAAiC;IAC/B,MAAMC,IAAI,GAAGF,SAAS,CAACG,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAb;IACA,IAAID,IAAI,KAAK,OAAb,EAAsB,OAAO,OAAP;IACtB,IAAIA,IAAI,KAAK,OAAb,EAAsB,OAAO,OAAP;IACtB,IAAIA,IAAI,KAAK,OAAb,EAAsB,OAAO,OAAP;IACtB,OAAO,MAAP;EACD;;EAED,IAAIF,SAAS,CAACI,KAAV,CAAgBR,aAAhB,CAAJ,EAAoC,OAAO,OAAP;EACpC,IAAII,SAAS,CAACI,KAAV,CAAgBP,aAAhB,CAAJ,EAAoC,OAAO,OAAP;EACpC,IAAIG,SAAS,CAACI,KAAV,CAAgBN,aAAhB,CAAJ,EAAoC,OAAO,OAAP;EACpC,OAAO,MAAP;AACD,CAbM;AAeP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAEO,SAASO,gBAAT,CAA0BC,MAA1B,EAAwCC,QAAxC,EAAiE;EACtE,IAAIC,KAAJ;EAEA,MAAMC,QAAQ,GAAGF,QAAQ,CAACG,KAAT,IAAkBJ,MAAM,CAACI,KAA1C;EAAA,MACEC,SAAS,GAAGJ,QAAQ,CAACK,MAAT,IAAmBN,MAAM,CAACM,MADxC;;EAGA,IAAIN,MAAM,CAACI,KAAP,IAAgBD,QAAhB,IAA4BH,MAAM,CAACM,MAAP,IAAiBD,SAAjD,EAA4D;IAC1DH,KAAK,GAAG,CAAR;EACD,CAFD,MAEO,IAAIF,MAAM,CAACI,KAAP,GAAeD,QAAf,IAA2BH,MAAM,CAACM,MAAP,IAAiBD,SAAhD,EAA2D;IAChEH,KAAK,GAAGC,QAAQ,GAAGH,MAAM,CAACI,KAA1B;EACD,CAFM,MAEA,IAAIJ,MAAM,CAACI,KAAP,IAAgBD,QAAhB,IAA4BH,MAAM,CAACM,MAAP,GAAgBD,SAAhD,EAA2D;IAChEH,KAAK,GAAGG,SAAS,GAAGL,MAAM,CAACM,MAA3B;EACD,CAFM,MAEA;IACLJ,KAAK,GAAGK,IAAI,CAACC,GAAL,CAASL,QAAQ,GAAGH,MAAM,CAACI,KAA3B,EAAkCC,SAAS,GAAGL,MAAM,CAACM,MAArD,CAAR;EACD;;EAED,OAAO;IAAEF,KAAK,EAAEJ,MAAM,CAACI,KAAP,GAAeF,KAAxB;IAA+BI,MAAM,EAAEN,MAAM,CAACM,MAAP,GAAgBJ;EAAvD,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASO,iBAAT,CAA2BC,QAA3B,EAA6CC,SAA7C,EAAgE;EACrE,IAAI,CAACA,SAAL,EAAgB,OAAOD,QAAP,CADqD,CAGrE;;EACA,IAAIE,UAAU,GAAGD,SAAS,CAACE,WAAV,EAAjB;;EACA,IAAID,UAAU,CAACjB,OAAX,CAAmB,GAAnB,MAA4B,CAAhC,EAAmC;IACjCiB,UAAU,GAAG,MAAMA,UAAnB;EACD,CAPoE,CASrE;;;EACA,MAAME,SAAS,GAAGJ,QAAQ,CAACG,WAAT,EAAlB;;EACA,MAAME,YAAY,GAAGD,SAAS,CAACE,WAAV,CAAsBJ,UAAtB,MAAsCE,SAAS,CAACG,MAAV,GAAmBL,UAAU,CAACK,MAAzF;;EACA,IAAI,CAACF,YAAL,EAAmB;IACjB;IACA,OAAOL,QAAQ,GAAGE,UAAlB;EACD,CAHD,MAGO;IACL;IACA,OAAOF,QAAP;EACD;AACF;AAED;AACA;AACA;AACA;AACA;AACA;;;AAEO,SAASQ,aAAT,CAAuBC,QAAvB,EAAmD;EACxD,MAAM,CAACC,QAAD,EAAW,GAAGC,KAAd,IAAuBF,QAAQ,CAACtB,KAAT,CAAe,GAAf,CAA7B;EACA,MAAM,CAACD,IAAD,EAAO0B,OAAP,IAAkBF,QAAQ,CAACvB,KAAT,CAAe,GAAf,CAAxB;EACA,MAAM0B,UAAkC,GAAG,EAA3C;;EAEA,KAAK,MAAMC,IAAX,IAAmBH,KAAnB,EAA0B;IACxB,MAAM,CAACI,IAAD,EAAOC,KAAP,IAAgBF,IAAI,CAACG,IAAL,GAAY9B,KAAZ,CAAkB,GAAlB,CAAtB;IACA0B,UAAU,CAACE,IAAD,CAAV,GAAmBC,KAAnB;EACD;;EAED,OAAO;IAAE9B,IAAF;IAAQ0B,OAAR;IAAiBC;EAAjB,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASK,wBAAT,CAAkCT,QAAlC,EAAoE;EACzE,IAAI,CAACA,QAAL,EAAe,OAAO,EAAP;EACf,MAAMU,kBAAkB,GAAGC,MAAM,CAACC,OAAP,CAAe1C,kBAAf,EAAmC2C,MAAnC,CAA0C,CAACC,GAAD,WAAuB;IAAA,IAAjB,CAACC,GAAD,EAAMR,KAAN,CAAiB;IAC1FO,GAAG,CAACP,KAAD,CAAH,GAAaQ,GAAb;IACA,OAAOD,GAAP;EACD,CAH0B,EAGxB,EAHwB,CAA3B;EAIA,OAAOJ,kBAAkB,CAACV,QAAQ,CAACN,WAAT,EAAD,CAAlB,IAA8C,EAArD;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASsB,wBAAT,CAAkCC,GAAlC,EAAuD;EAC5D,IAAI,CAACA,GAAL,EAAU,OAAO,EAAP;EACV,OAAO/C,kBAAkB,CAAC+C,GAAG,CAACvB,WAAJ,EAAD,CAAlB,IAAyC,EAAhD;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASwB,gBAAT,CAA0BC,QAA1B,EAA4C;EACjD,MAAMC,iBAAiB,GAAGD,QAAQ,CAACzC,KAAT,CAAe,GAAf,EAAoB,CAApB,CAA1B;EAEA,MAAM2C,GAAG,GAAGD,iBAAiB,CAACvB,WAAlB,CAA8B,GAA9B,CAAZ;EACA,IAAIwB,GAAG,KAAK,CAAC,CAAb,EAAgB,OAAO,EAAP;EAEhB,MAAMC,MAAM,GAAGF,iBAAiB,CAACG,KAAlB,CAAwBF,GAAG,GAAGD,iBAAiB,CAACtB,MAAhD,EAAwDJ,WAAxD,EAAf;EACA,IAAI4B,MAAM,KAAK,GAAf,EAAoB,OAAO,EAAP,CAApB,KACK,OAAOA,MAAP;AACN;;AAEM,SAASE,uBAAT,CAAiCC,GAAjC,EAA8C;EACnD,OAAOC,KAAK,CAACD,GAAD,CAAL,CAAWE,IAAX,CAAiBC,QAAD,IAAcA,QAAQ,CAACC,OAAT,CAAiBC,GAAjB,CAAqB,cAArB,CAA9B,CAAP;AACD;;AAEM,SAASC,OAAT,CAAiBZ,QAAjB,EAAmCnB,QAAnC,EAAsD;EAC3D,MAAMvB,IAAI,GAAGH,WAAW,CAAC0B,QAAQ,IAAIkB,gBAAgB,CAACC,QAAD,CAA7B,CAAxB;EACA,OAAO1C,IAAI,KAAK,OAAhB;AACD;;AAEM,SAASuD,mBAAT,CAA6BC,IAA7B,EAAsE;EAAA,IAA3BC,kBAA2B,uEAAN,IAAM;EAC3E,MAAM1C,SAAS,GAAGiB,wBAAwB,CAACwB,IAAD,CAA1C;EACA,OAAOE,OAAO,CAAC3C,SAAS,CAACb,KAAV,CAAgB,eAAhB,KAAoCuD,kBAArC,CAAd;AACD"}
1
+ {"version":3,"names":["EXTENSION_MIME_MAP","imageExtRegex","exports","audioExtRegex","videoExtRegex","getFileType","extOrType","indexOf","type","split","match","getDownscaleSize","origin","resizing","ratio","maxWidth","width","maxHeight","height","Math","min","normalizeFileName","fileName","extension","_extension","toLowerCase","_filename","hasExtension","lastIndexOf","length","parseMimeType","mimeType","fullType","parts","subtype","parameters","part","name","value","trim","getFileExtensionFromMime","MIME_EXTENSION_MAP","Object","entries","reduce","acc","_ref","key","getMimeFromFileExtension","ext","getFileExtension","filePath","pathWithoutParams","idx","result","slice","getFileExtensionFromUri","uri","fetch","then","response","headers","get","isImage","shouldCompressImage","mime","compressionEnabled","arguments","undefined","Boolean"],"sources":["file.ts"],"sourcesContent":["const EXTENSION_MIME_MAP = {\n // Image\n 'jpeg': 'image/jpeg',\n 'jpg': 'image/jpeg',\n 'png': 'image/png',\n 'gif': 'image/gif',\n 'webp': 'image/webp',\n 'svg': 'image/svg+xml',\n\n // Video\n '3gp': 'video/3gpp',\n 'mp4': 'video/mp4',\n 'mpeg': 'video/mpeg',\n 'ogv': 'video/ogg',\n 'video/quicktime': 'mov',\n 'webm': 'video/webm',\n 'avi': 'video/x-msvideo',\n\n // Audio\n 'aac': 'audio/aac',\n 'mid': 'audio/midi',\n 'mp3': 'audio/mpeg',\n 'ogg': 'audio/ogg',\n 'wav': 'audio/wav',\n 'weba': 'audio/webm',\n\n // Files\n 'txt': 'text/plain',\n 'pdf': 'application/pdf',\n 'doc': 'application/msword',\n 'docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'xls': 'application/vnd.ms-excel',\n 'xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'ppt': 'application/vnd.ms-powerpoint',\n 'pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'zip': 'application/zip',\n 'json': 'application/json',\n 'gzip': 'application/x-gzip',\n} as Record<string, string>;\n\nexport const imageExtRegex = /jpeg|jpg|png|webp|gif/i;\nexport const audioExtRegex = /3gp|aac|aax|act|aiff|flac|gsm|m4a|m4b|m4p|tta|wma|mp3|webm|wav/i;\nexport const videoExtRegex = /mov|vod|mp4|avi/i;\nexport const getFileType = (extOrType: string) => {\n if (extOrType.indexOf('/') > -1) {\n const type = extOrType.split('/')[0];\n if (type === 'video') return 'video';\n if (type === 'audio') return 'audio';\n if (type === 'image') return 'image';\n return 'file';\n }\n\n if (extOrType.match(imageExtRegex)) return 'image';\n if (extOrType.match(audioExtRegex)) return 'audio';\n if (extOrType.match(videoExtRegex)) return 'video';\n return 'file';\n};\n\n/**\n * Calculates the downscaled size of an image while preserving its aspect ratio.\n *\n * @param {Object} origin - The original size object with `width` and `height` properties.\n * @param {Object} resizing - The resizing object with optional `width` and `height` properties.\n * @returns {Object} - A new size object with the downscaled `width` and `height` properties.\n * @example\n * ```ts\n * getDownscaleSize({ width: 1200, height: 800 }, { width: 600 }); // returns { width: 600, height: 400 }\n * ```\n */\ntype Size = { width: number; height: number };\nexport function getDownscaleSize(origin: Size, resizing: Partial<Size>) {\n let ratio: number;\n\n const maxWidth = resizing.width || origin.width,\n maxHeight = resizing.height || origin.height;\n\n if (origin.width <= maxWidth && origin.height <= maxHeight) {\n ratio = 1;\n } else if (origin.width > maxWidth && origin.height <= maxHeight) {\n ratio = maxWidth / origin.width;\n } else if (origin.width <= maxWidth && origin.height > maxHeight) {\n ratio = maxHeight / origin.height;\n } else {\n ratio = Math.min(maxWidth / origin.width, maxHeight / origin.height);\n }\n\n return { width: origin.width * ratio, height: origin.height * ratio };\n}\n\n/**\n * Normalize a file name by ensuring it has the given extension, if it doesn't already.\n *\n * @param {string} fileName - The file name to normalize.\n * @param {string} extension - The desired extension, without a leading period.\n * @returns {string} - The normalized file name, with the extension.\n */\nexport function normalizeFileName(fileName: string, extension: string) {\n if (!extension) return fileName;\n\n // .extension\n let _extension = extension.toLowerCase();\n if (_extension.indexOf('.') !== 0) {\n _extension = '.' + _extension;\n }\n\n // filename.extension | filename\n const _filename = fileName.toLowerCase();\n const hasExtension = _filename.lastIndexOf(_extension) === _filename.length - _extension.length;\n if (!hasExtension) {\n // filename.extension\n return fileName + _extension;\n } else {\n // filename.extension\n return fileName;\n }\n}\n\n/**\n * Parses a MIME type string into its components.\n *\n * @param mimeType - The MIME type string to parse.\n * @returns An object containing the type, subtype, and parameters of the MIME type.\n */\ntype MimeType = { type: string; subtype: string; parameters: Record<string, string> };\nexport function parseMimeType(mimeType: string): MimeType {\n const [fullType, ...parts] = mimeType.split(';');\n const [type, subtype] = fullType.split('/');\n const parameters: MimeType['parameters'] = {};\n\n for (const part of parts) {\n const [name, value] = part.trim().split('=');\n parameters[name] = value;\n }\n\n return { type, subtype, parameters };\n}\n\n/**\n * Returns the file extension based on the MIME type.\n *\n * @param {string | null | undefined} mimeType - The MIME type to look up.\n * @returns {string} - The file extension for the given MIME type, or an empty string if no matching file extension was found.\n */\nexport function getFileExtensionFromMime(mimeType?: string | null): string {\n if (!mimeType) return '';\n const MIME_EXTENSION_MAP = Object.entries(EXTENSION_MIME_MAP).reduce((acc, [key, value]) => {\n acc[value] = key;\n return acc;\n }, {} as Record<string, string>);\n return MIME_EXTENSION_MAP[mimeType.toLowerCase()] || '';\n}\n\n/**\n * Returns the MIME type based on the file extension.\n *\n * @param {string | null | undefined} ext - The file extension to look up.\n * @returns {string} - The MIME type for the given file extension, or an empty string if no matching MIME type was found.\n */\nexport function getMimeFromFileExtension(ext?: string | null) {\n if (!ext) return '';\n return EXTENSION_MIME_MAP[ext.toLowerCase()] || '';\n}\n\n/**\n * Returns the file extension of a file path.\n *\n * @param {string} filePath - The file path to extract the extension from.\n * @returns {string} - The file extension, or an empty string if the file path does not have an extension.\n */\nexport function getFileExtension(filePath: string) {\n const pathWithoutParams = filePath.split('?')[0];\n\n const idx = pathWithoutParams.lastIndexOf('.');\n if (idx === -1) return '';\n\n const result = pathWithoutParams.slice(idx - pathWithoutParams.length).toLowerCase();\n if (result === '.') return '';\n else return result;\n}\n\nexport function getFileExtensionFromUri(uri: string) {\n return fetch(uri).then((response) => response.headers.get('content-type'));\n}\n\nexport function isImage(filePath: string, mimeType?: string) {\n const type = getFileType(mimeType || getFileExtension(filePath));\n return type === 'image';\n}\n\nexport function shouldCompressImage(mime: string, compressionEnabled = true) {\n const extension = getFileExtensionFromMime(mime);\n return Boolean(extension.match(/jpg|jpeg|png/i) && compressionEnabled);\n}\n"],"mappings":"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"}
@@ -7,30 +7,28 @@ exports.conditionChaining = conditionChaining;
7
7
  exports.hash = hash;
8
8
  exports.pick = pick;
9
9
  exports.replace = replace;
10
-
11
10
  /**
12
11
  * Converts a given string to a hashed string.
13
12
  * */
14
13
  function hash(str) {
15
14
  return String(Math.abs(str.split('').reduce((a, c) => (a << 5) - a + c.charCodeAt(0) | 0, 0)));
16
15
  }
16
+
17
17
  /**
18
18
  * Replace a specific range of text in the string with another text.
19
19
  * */
20
-
21
-
22
20
  function replace(str, start, end, text) {
23
21
  return str.slice(0, start) + text + str.slice(end);
24
22
  }
23
+
25
24
  /**
26
25
  * Returns the value corresponding to the first true index of a given condition array.
27
26
  * */
28
-
29
-
30
27
  function conditionChaining(conditions, values) {
31
28
  const idx = conditions.findIndex(state => Boolean(state));
32
29
  return idx > -1 ? values[idx] : values[values.length - 1];
33
30
  }
31
+
34
32
  /**
35
33
  * Returns a new object with only the specified keys from the input object.
36
34
  *
@@ -42,8 +40,6 @@ function conditionChaining(conditions, values) {
42
40
  * pick({ a: 1, b: '2', c: true }, ['a', 'c']); // returns { a: 1, c: true }
43
41
  * ```
44
42
  */
45
-
46
-
47
43
  function pick(obj, keys) {
48
44
  return keys.reduce((pickedObj, key) => {
49
45
  pickedObj[key] = obj[key];
@@ -1 +1 @@
1
- {"version":3,"names":["hash","str","String","Math","abs","split","reduce","a","c","charCodeAt","replace","start","end","text","slice","conditionChaining","conditions","values","idx","findIndex","state","Boolean","length","pick","obj","keys","pickedObj","key"],"sources":["index.ts"],"sourcesContent":["/**\n * Converts a given string to a hashed string.\n * */\nexport function hash(str: string) {\n return String(Math.abs(str.split('').reduce((a, c) => ((a << 5) - a + c.charCodeAt(0)) | 0, 0)));\n}\n\n/**\n * Replace a specific range of text in the string with another text.\n * */\nexport function replace(str: string, start: number, end: number, text: string) {\n return str.slice(0, start) + text + str.slice(end);\n}\n\n/**\n * Returns the value corresponding to the first true index of a given condition array.\n * */\nexport function conditionChaining<T, V>(conditions: T[], values: V[]) {\n const idx = conditions.findIndex((state) => Boolean(state));\n return idx > -1 ? values[idx] : values[values.length - 1];\n}\n\n/**\n * Returns a new object with only the specified keys from the input object.\n *\n * @param {Object} obj - The input object to pick keys from.\n * @param {Array<string>} keys - An array of keys to pick from the input object.\n * @returns {Object} - A new object containing only the specified keys from the input object.\n * @example\n * ```ts\n * pick({ a: 1, b: '2', c: true }, ['a', 'c']); // returns { a: 1, c: true }\n * ```\n */\nexport function pick<T extends { [key: string]: unknown }, Keys extends keyof T>(obj: T, keys: Keys[]) {\n return keys.reduce((pickedObj, key) => {\n pickedObj[key] = obj[key];\n return pickedObj;\n }, {} as { [key in Keys]: T[key] });\n}\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACO,SAASA,IAAT,CAAcC,GAAd,EAA2B;EAChC,OAAOC,MAAM,CAACC,IAAI,CAACC,GAAL,CAASH,GAAG,CAACI,KAAJ,CAAU,EAAV,EAAcC,MAAd,CAAqB,CAACC,CAAD,EAAIC,CAAJ,KAAW,CAACD,CAAC,IAAI,CAAN,IAAWA,CAAX,GAAeC,CAAC,CAACC,UAAF,CAAa,CAAb,CAAhB,GAAmC,CAAlE,EAAqE,CAArE,CAAT,CAAD,CAAb;AACD;AAED;AACA;AACA;;;AACO,SAASC,OAAT,CAAiBT,GAAjB,EAA8BU,KAA9B,EAA6CC,GAA7C,EAA0DC,IAA1D,EAAwE;EAC7E,OAAOZ,GAAG,CAACa,KAAJ,CAAU,CAAV,EAAaH,KAAb,IAAsBE,IAAtB,GAA6BZ,GAAG,CAACa,KAAJ,CAAUF,GAAV,CAApC;AACD;AAED;AACA;AACA;;;AACO,SAASG,iBAAT,CAAiCC,UAAjC,EAAkDC,MAAlD,EAA+D;EACpE,MAAMC,GAAG,GAAGF,UAAU,CAACG,SAAX,CAAsBC,KAAD,IAAWC,OAAO,CAACD,KAAD,CAAvC,CAAZ;EACA,OAAOF,GAAG,GAAG,CAAC,CAAP,GAAWD,MAAM,CAACC,GAAD,CAAjB,GAAyBD,MAAM,CAACA,MAAM,CAACK,MAAP,GAAgB,CAAjB,CAAtC;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,IAAT,CAA0EC,GAA1E,EAAkFC,IAAlF,EAAgG;EACrG,OAAOA,IAAI,CAACnB,MAAL,CAAY,CAACoB,SAAD,EAAYC,GAAZ,KAAoB;IACrCD,SAAS,CAACC,GAAD,CAAT,GAAiBH,GAAG,CAACG,GAAD,CAApB;IACA,OAAOD,SAAP;EACD,CAHM,EAGJ,EAHI,CAAP;AAID"}
1
+ {"version":3,"names":["hash","str","String","Math","abs","split","reduce","a","c","charCodeAt","replace","start","end","text","slice","conditionChaining","conditions","values","idx","findIndex","state","Boolean","length","pick","obj","keys","pickedObj","key"],"sources":["index.ts"],"sourcesContent":["/**\n * Converts a given string to a hashed string.\n * */\nexport function hash(str: string) {\n return String(Math.abs(str.split('').reduce((a, c) => ((a << 5) - a + c.charCodeAt(0)) | 0, 0)));\n}\n\n/**\n * Replace a specific range of text in the string with another text.\n * */\nexport function replace(str: string, start: number, end: number, text: string) {\n return str.slice(0, start) + text + str.slice(end);\n}\n\n/**\n * Returns the value corresponding to the first true index of a given condition array.\n * */\nexport function conditionChaining<T, V>(conditions: T[], values: V[]) {\n const idx = conditions.findIndex((state) => Boolean(state));\n return idx > -1 ? values[idx] : values[values.length - 1];\n}\n\n/**\n * Returns a new object with only the specified keys from the input object.\n *\n * @param {Object} obj - The input object to pick keys from.\n * @param {Array<string>} keys - An array of keys to pick from the input object.\n * @returns {Object} - A new object containing only the specified keys from the input object.\n * @example\n * ```ts\n * pick({ a: 1, b: '2', c: true }, ['a', 'c']); // returns { a: 1, c: true }\n * ```\n */\nexport function pick<T extends { [key: string]: unknown }, Keys extends keyof T>(obj: T, keys: Keys[]) {\n return keys.reduce((pickedObj, key) => {\n pickedObj[key] = obj[key];\n return pickedObj;\n }, {} as { [key in Keys]: T[key] });\n}\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACO,SAASA,IAAIA,CAACC,GAAW,EAAE;EAChC,OAAOC,MAAM,CAACC,IAAI,CAACC,GAAG,CAACH,GAAG,CAACI,KAAK,CAAC,EAAE,CAAC,CAACC,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAM,CAACD,CAAC,IAAI,CAAC,IAAIA,CAAC,GAAGC,CAAC,CAACC,UAAU,CAAC,CAAC,CAAC,GAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClG;;AAEA;AACA;AACA;AACO,SAASC,OAAOA,CAACT,GAAW,EAAEU,KAAa,EAAEC,GAAW,EAAEC,IAAY,EAAE;EAC7E,OAAOZ,GAAG,CAACa,KAAK,CAAC,CAAC,EAAEH,KAAK,CAAC,GAAGE,IAAI,GAAGZ,GAAG,CAACa,KAAK,CAACF,GAAG,CAAC;AACpD;;AAEA;AACA;AACA;AACO,SAASG,iBAAiBA,CAAOC,UAAe,EAAEC,MAAW,EAAE;EACpE,MAAMC,GAAG,GAAGF,UAAU,CAACG,SAAS,CAAEC,KAAK,IAAKC,OAAO,CAACD,KAAK,CAAC,CAAC;EAC3D,OAAOF,GAAG,GAAG,CAAC,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC,GAAGD,MAAM,CAACA,MAAM,CAACK,MAAM,GAAG,CAAC,CAAC;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,IAAIA,CAA6DC,GAAM,EAAEC,IAAY,EAAE;EACrG,OAAOA,IAAI,CAACnB,MAAM,CAAC,CAACoB,SAAS,EAAEC,GAAG,KAAK;IACrCD,SAAS,CAACC,GAAG,CAAC,GAAGH,GAAG,CAACG,GAAG,CAAC;IACzB,OAAOD,SAAS;EAClB,CAAC,EAAE,CAAC,CAAC,CAA8B;AACrC"}
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Logger = void 0;
7
-
8
7
  /* eslint-disable no-console */
8
+
9
9
  const LogLevelEnum = {
10
10
  'none': 0,
11
11
  'log': 1,
@@ -14,7 +14,6 @@ const LogLevelEnum = {
14
14
  'info': 4,
15
15
  'debug': 5
16
16
  };
17
-
18
17
  const createLogger = function () {
19
18
  let level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'warn';
20
19
  let _logLevel = level;
@@ -23,74 +22,56 @@ const createLogger = function () {
23
22
  setTitle(title) {
24
23
  _title = title;
25
24
  },
26
-
27
25
  setLogLevel(lv) {
28
26
  _logLevel = lv;
29
27
  },
30
-
31
28
  getLogLevel() {
32
29
  return _logLevel;
33
30
  },
34
-
35
31
  log() {
36
32
  if (LogLevelEnum[_logLevel] < LogLevelEnum.log) return LogLevelEnum.none;
37
-
38
33
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
39
34
  args[_key] = arguments[_key];
40
35
  }
41
-
42
36
  console.log(_title, ...args);
43
37
  return LogLevelEnum[_logLevel];
44
38
  },
45
-
46
39
  error() {
47
40
  if (LogLevelEnum[_logLevel] < LogLevelEnum.error) return LogLevelEnum.none;
48
-
49
41
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
50
42
  args[_key2] = arguments[_key2];
51
43
  }
52
-
53
44
  console.error(_title, ...args);
54
45
  return LogLevelEnum[_logLevel];
55
46
  },
56
-
57
47
  warn() {
58
48
  if (LogLevelEnum[_logLevel] < LogLevelEnum.warn) return LogLevelEnum.none;
59
-
60
49
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
61
50
  args[_key3] = arguments[_key3];
62
51
  }
63
-
64
52
  console.warn(_title, ...args);
65
53
  return LogLevelEnum[_logLevel];
66
54
  },
67
-
68
55
  info() {
69
56
  if (LogLevelEnum[_logLevel] < LogLevelEnum.info) return LogLevelEnum.none;
70
-
71
57
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
72
58
  args[_key4] = arguments[_key4];
73
59
  }
74
-
75
60
  console.info(_title, ...args);
76
61
  return LogLevelEnum[_logLevel];
77
62
  },
78
-
79
63
  debug() {
80
64
  if (LogLevelEnum[_logLevel] < LogLevelEnum.debug) return LogLevelEnum.none;
81
-
82
65
  for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
83
66
  args[_key5] = arguments[_key5];
84
67
  }
85
-
86
68
  console.log(_title, ...args);
87
69
  return LogLevelEnum[_logLevel];
88
70
  }
89
-
90
71
  };
91
72
  };
92
-
93
- const Logger = { ...createLogger(),
73
+ const Logger = {
74
+ ...createLogger(),
94
75
  LogLevelEnum,
95
76
  create: createLogger
96
77
  };
@@ -1 +1 @@
1
- {"version":3,"names":["LogLevelEnum","createLogger","level","_logLevel","_title","setTitle","title","setLogLevel","lv","getLogLevel","log","none","args","console","error","warn","info","debug","Logger","create"],"sources":["logger.ts"],"sourcesContent":["/* eslint-disable no-console */\n\nconst LogLevelEnum = {\n 'none': 0,\n 'log': 1,\n 'error': 2,\n 'warn': 3,\n 'info': 4,\n 'debug': 5,\n};\ntype LogLevel = keyof typeof LogLevelEnum;\n\nconst createLogger = (level: LogLevel = 'warn') => {\n let _logLevel = level;\n let _title = '[UIKit]';\n\n return {\n setTitle(title: string) {\n _title = title;\n },\n setLogLevel(lv: LogLevel) {\n _logLevel = lv;\n },\n getLogLevel() {\n return _logLevel;\n },\n log(...args: unknown[]) {\n if (LogLevelEnum[_logLevel] < LogLevelEnum.log) return LogLevelEnum.none;\n console.log(_title, ...args);\n return LogLevelEnum[_logLevel];\n },\n error(...args: unknown[]) {\n if (LogLevelEnum[_logLevel] < LogLevelEnum.error) return LogLevelEnum.none;\n console.error(_title, ...args);\n return LogLevelEnum[_logLevel];\n },\n warn(...args: unknown[]) {\n if (LogLevelEnum[_logLevel] < LogLevelEnum.warn) return LogLevelEnum.none;\n console.warn(_title, ...args);\n return LogLevelEnum[_logLevel];\n },\n info(...args: unknown[]) {\n if (LogLevelEnum[_logLevel] < LogLevelEnum.info) return LogLevelEnum.none;\n console.info(_title, ...args);\n return LogLevelEnum[_logLevel];\n },\n debug(...args: unknown[]) {\n if (LogLevelEnum[_logLevel] < LogLevelEnum.debug) return LogLevelEnum.none;\n console.log(_title, ...args);\n return LogLevelEnum[_logLevel];\n },\n };\n};\n\nexport const Logger = {\n ...createLogger(),\n LogLevelEnum,\n create: createLogger,\n};\n"],"mappings":";;;;;;;AAAA;AAEA,MAAMA,YAAY,GAAG;EACnB,QAAQ,CADW;EAEnB,OAAO,CAFY;EAGnB,SAAS,CAHU;EAInB,QAAQ,CAJW;EAKnB,QAAQ,CALW;EAMnB,SAAS;AANU,CAArB;;AAUA,MAAMC,YAAY,GAAG,YAA8B;EAAA,IAA7BC,KAA6B,uEAAX,MAAW;EACjD,IAAIC,SAAS,GAAGD,KAAhB;EACA,IAAIE,MAAM,GAAG,SAAb;EAEA,OAAO;IACLC,QAAQ,CAACC,KAAD,EAAgB;MACtBF,MAAM,GAAGE,KAAT;IACD,CAHI;;IAILC,WAAW,CAACC,EAAD,EAAe;MACxBL,SAAS,GAAGK,EAAZ;IACD,CANI;;IAOLC,WAAW,GAAG;MACZ,OAAON,SAAP;IACD,CATI;;IAULO,GAAG,GAAqB;MACtB,IAAIV,YAAY,CAACG,SAAD,CAAZ,GAA0BH,YAAY,CAACU,GAA3C,EAAgD,OAAOV,YAAY,CAACW,IAApB;;MAD1B,kCAAjBC,IAAiB;QAAjBA,IAAiB;MAAA;;MAEtBC,OAAO,CAACH,GAAR,CAAYN,MAAZ,EAAoB,GAAGQ,IAAvB;MACA,OAAOZ,YAAY,CAACG,SAAD,CAAnB;IACD,CAdI;;IAeLW,KAAK,GAAqB;MACxB,IAAId,YAAY,CAACG,SAAD,CAAZ,GAA0BH,YAAY,CAACc,KAA3C,EAAkD,OAAOd,YAAY,CAACW,IAApB;;MAD1B,mCAAjBC,IAAiB;QAAjBA,IAAiB;MAAA;;MAExBC,OAAO,CAACC,KAAR,CAAcV,MAAd,EAAsB,GAAGQ,IAAzB;MACA,OAAOZ,YAAY,CAACG,SAAD,CAAnB;IACD,CAnBI;;IAoBLY,IAAI,GAAqB;MACvB,IAAIf,YAAY,CAACG,SAAD,CAAZ,GAA0BH,YAAY,CAACe,IAA3C,EAAiD,OAAOf,YAAY,CAACW,IAApB;;MAD1B,mCAAjBC,IAAiB;QAAjBA,IAAiB;MAAA;;MAEvBC,OAAO,CAACE,IAAR,CAAaX,MAAb,EAAqB,GAAGQ,IAAxB;MACA,OAAOZ,YAAY,CAACG,SAAD,CAAnB;IACD,CAxBI;;IAyBLa,IAAI,GAAqB;MACvB,IAAIhB,YAAY,CAACG,SAAD,CAAZ,GAA0BH,YAAY,CAACgB,IAA3C,EAAiD,OAAOhB,YAAY,CAACW,IAApB;;MAD1B,mCAAjBC,IAAiB;QAAjBA,IAAiB;MAAA;;MAEvBC,OAAO,CAACG,IAAR,CAAaZ,MAAb,EAAqB,GAAGQ,IAAxB;MACA,OAAOZ,YAAY,CAACG,SAAD,CAAnB;IACD,CA7BI;;IA8BLc,KAAK,GAAqB;MACxB,IAAIjB,YAAY,CAACG,SAAD,CAAZ,GAA0BH,YAAY,CAACiB,KAA3C,EAAkD,OAAOjB,YAAY,CAACW,IAApB;;MAD1B,mCAAjBC,IAAiB;QAAjBA,IAAiB;MAAA;;MAExBC,OAAO,CAACH,GAAR,CAAYN,MAAZ,EAAoB,GAAGQ,IAAvB;MACA,OAAOZ,YAAY,CAACG,SAAD,CAAnB;IACD;;EAlCI,CAAP;AAoCD,CAxCD;;AA0CO,MAAMe,MAAM,GAAG,EACpB,GAAGjB,YAAY,EADK;EAEpBD,YAFoB;EAGpBmB,MAAM,EAAElB;AAHY,CAAf"}
1
+ {"version":3,"names":["LogLevelEnum","createLogger","level","arguments","length","undefined","_logLevel","_title","setTitle","title","setLogLevel","lv","getLogLevel","log","none","_len","args","Array","_key","console","error","_len2","_key2","warn","_len3","_key3","info","_len4","_key4","debug","_len5","_key5","Logger","create","exports"],"sources":["logger.ts"],"sourcesContent":["/* eslint-disable no-console */\n\nconst LogLevelEnum = {\n 'none': 0,\n 'log': 1,\n 'error': 2,\n 'warn': 3,\n 'info': 4,\n 'debug': 5,\n};\ntype LogLevel = keyof typeof LogLevelEnum;\n\nconst createLogger = (level: LogLevel = 'warn') => {\n let _logLevel = level;\n let _title = '[UIKit]';\n\n return {\n setTitle(title: string) {\n _title = title;\n },\n setLogLevel(lv: LogLevel) {\n _logLevel = lv;\n },\n getLogLevel() {\n return _logLevel;\n },\n log(...args: unknown[]) {\n if (LogLevelEnum[_logLevel] < LogLevelEnum.log) return LogLevelEnum.none;\n console.log(_title, ...args);\n return LogLevelEnum[_logLevel];\n },\n error(...args: unknown[]) {\n if (LogLevelEnum[_logLevel] < LogLevelEnum.error) return LogLevelEnum.none;\n console.error(_title, ...args);\n return LogLevelEnum[_logLevel];\n },\n warn(...args: unknown[]) {\n if (LogLevelEnum[_logLevel] < LogLevelEnum.warn) return LogLevelEnum.none;\n console.warn(_title, ...args);\n return LogLevelEnum[_logLevel];\n },\n info(...args: unknown[]) {\n if (LogLevelEnum[_logLevel] < LogLevelEnum.info) return LogLevelEnum.none;\n console.info(_title, ...args);\n return LogLevelEnum[_logLevel];\n },\n debug(...args: unknown[]) {\n if (LogLevelEnum[_logLevel] < LogLevelEnum.debug) return LogLevelEnum.none;\n console.log(_title, ...args);\n return LogLevelEnum[_logLevel];\n },\n };\n};\n\nexport const Logger = {\n ...createLogger(),\n LogLevelEnum,\n create: createLogger,\n};\n"],"mappings":";;;;;;AAAA;;AAEA,MAAMA,YAAY,GAAG;EACnB,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,CAAC;EACR,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,CAAC;EACT,OAAO,EAAE;AACX,CAAC;AAGD,MAAMC,YAAY,GAAG,SAAAA,CAAA,EAA8B;EAAA,IAA7BC,KAAe,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,MAAM;EAC5C,IAAIG,SAAS,GAAGJ,KAAK;EACrB,IAAIK,MAAM,GAAG,SAAS;EAEtB,OAAO;IACLC,QAAQA,CAACC,KAAa,EAAE;MACtBF,MAAM,GAAGE,KAAK;IAChB,CAAC;IACDC,WAAWA,CAACC,EAAY,EAAE;MACxBL,SAAS,GAAGK,EAAE;IAChB,CAAC;IACDC,WAAWA,CAAA,EAAG;MACZ,OAAON,SAAS;IAClB,CAAC;IACDO,GAAGA,CAAA,EAAqB;MACtB,IAAIb,YAAY,CAACM,SAAS,CAAC,GAAGN,YAAY,CAACa,GAAG,EAAE,OAAOb,YAAY,CAACc,IAAI;MAAC,SAAAC,IAAA,GAAAZ,SAAA,CAAAC,MAAA,EADpEY,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAf,SAAA,CAAAe,IAAA;MAAA;MAETC,OAAO,CAACN,GAAG,CAACN,MAAM,EAAE,GAAGS,IAAI,CAAC;MAC5B,OAAOhB,YAAY,CAACM,SAAS,CAAC;IAChC,CAAC;IACDc,KAAKA,CAAA,EAAqB;MACxB,IAAIpB,YAAY,CAACM,SAAS,CAAC,GAAGN,YAAY,CAACoB,KAAK,EAAE,OAAOpB,YAAY,CAACc,IAAI;MAAC,SAAAO,KAAA,GAAAlB,SAAA,CAAAC,MAAA,EADpEY,IAAI,OAAAC,KAAA,CAAAI,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAJN,IAAI,CAAAM,KAAA,IAAAnB,SAAA,CAAAmB,KAAA;MAAA;MAEXH,OAAO,CAACC,KAAK,CAACb,MAAM,EAAE,GAAGS,IAAI,CAAC;MAC9B,OAAOhB,YAAY,CAACM,SAAS,CAAC;IAChC,CAAC;IACDiB,IAAIA,CAAA,EAAqB;MACvB,IAAIvB,YAAY,CAACM,SAAS,CAAC,GAAGN,YAAY,CAACuB,IAAI,EAAE,OAAOvB,YAAY,CAACc,IAAI;MAAC,SAAAU,KAAA,GAAArB,SAAA,CAAAC,MAAA,EADpEY,IAAI,OAAAC,KAAA,CAAAO,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAJT,IAAI,CAAAS,KAAA,IAAAtB,SAAA,CAAAsB,KAAA;MAAA;MAEVN,OAAO,CAACI,IAAI,CAAChB,MAAM,EAAE,GAAGS,IAAI,CAAC;MAC7B,OAAOhB,YAAY,CAACM,SAAS,CAAC;IAChC,CAAC;IACDoB,IAAIA,CAAA,EAAqB;MACvB,IAAI1B,YAAY,CAACM,SAAS,CAAC,GAAGN,YAAY,CAAC0B,IAAI,EAAE,OAAO1B,YAAY,CAACc,IAAI;MAAC,SAAAa,KAAA,GAAAxB,SAAA,CAAAC,MAAA,EADpEY,IAAI,OAAAC,KAAA,CAAAU,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAJZ,IAAI,CAAAY,KAAA,IAAAzB,SAAA,CAAAyB,KAAA;MAAA;MAEVT,OAAO,CAACO,IAAI,CAACnB,MAAM,EAAE,GAAGS,IAAI,CAAC;MAC7B,OAAOhB,YAAY,CAACM,SAAS,CAAC;IAChC,CAAC;IACDuB,KAAKA,CAAA,EAAqB;MACxB,IAAI7B,YAAY,CAACM,SAAS,CAAC,GAAGN,YAAY,CAAC6B,KAAK,EAAE,OAAO7B,YAAY,CAACc,IAAI;MAAC,SAAAgB,KAAA,GAAA3B,SAAA,CAAAC,MAAA,EADpEY,IAAI,OAAAC,KAAA,CAAAa,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAJf,IAAI,CAAAe,KAAA,IAAA5B,SAAA,CAAA4B,KAAA;MAAA;MAEXZ,OAAO,CAACN,GAAG,CAACN,MAAM,EAAE,GAAGS,IAAI,CAAC;MAC5B,OAAOhB,YAAY,CAACM,SAAS,CAAC;IAChC;EACF,CAAC;AACH,CAAC;AAEM,MAAM0B,MAAM,GAAG;EACpB,GAAG/B,YAAY,EAAE;EACjBD,YAAY;EACZiC,MAAM,EAAEhC;AACV,CAAC;AAACiC,OAAA,CAAAF,MAAA,GAAAA,MAAA"}
@@ -4,10 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.urlRegexStrict = exports.urlRegexRough = exports.replaceWithRegex = exports.replaceUrlAsComponents = exports.phoneRegex = exports.newLineRegex = exports.emailRegex = exports.createMentionTemplateRegex = void 0;
7
-
8
7
  // For iOS 12 backwards compatibility
9
8
  require('string.prototype.matchall').shim();
10
-
11
9
  const urlRegexStrict = /(https?:\/\/|www\.)[-a-zA-Z0-9@:%._+~#=]{1,256}\.(xn--)?[a-z0-9-]{2,20}\b([-a-zA-Z0-9@:%_+[\],.~#?&/=]*[-a-zA-Z0-9@:%_+\]~#?&/=])*/g;
12
10
  exports.urlRegexStrict = urlRegexStrict;
13
11
  const urlRegexRough = /(https?:\/\/|www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/g;
@@ -18,8 +16,9 @@ const emailRegex = /\S+@\S+\.\S+/;
18
16
  exports.emailRegex = emailRegex;
19
17
  const newLineRegex = /\r\n|\r|\n/g;
20
18
  exports.newLineRegex = newLineRegex;
19
+ const createMentionTemplateRegex = trigger => new RegExp(`(${trigger}[{])(.*?)([}])`, 'g');
21
20
 
22
- const createMentionTemplateRegex = trigger => new RegExp(`(${trigger}[{])(.*?)([}])`, 'g'); // const cases = [
21
+ // const cases = [
23
22
  // {
24
23
  // type: 'urlStrict',
25
24
  // regex: urlRegexStrict,
@@ -37,10 +36,7 @@ const createMentionTemplateRegex = trigger => new RegExp(`(${trigger}[{])(.*?)([
37
36
  // regex: urlRegexStrict,
38
37
  // },
39
38
  // ];
40
-
41
-
42
39
  exports.createMentionTemplateRegex = createMentionTemplateRegex;
43
-
44
40
  const replaceWithRegex = (text, regex, replacer, keyPrefix) => {
45
41
  const matches = [...text.matchAll(regex)];
46
42
  const founds = matches.map(value => {
@@ -80,9 +76,7 @@ const replaceWithRegex = (text, regex, replacer, keyPrefix) => {
80
76
  });
81
77
  return items;
82
78
  };
83
-
84
79
  exports.replaceWithRegex = replaceWithRegex;
85
-
86
80
  const replaceUrlAsComponents = (originText, replacer, strict) => {
87
81
  const matches = [...originText.matchAll(strict ? urlRegexStrict : urlRegexRough)];
88
82
  const founds = matches.map(value => {
@@ -112,6 +106,5 @@ const replaceUrlAsComponents = (originText, replacer, strict) => {
112
106
  });
113
107
  return items;
114
108
  };
115
-
116
109
  exports.replaceUrlAsComponents = replaceUrlAsComponents;
117
110
  //# sourceMappingURL=regex.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["require","shim","urlRegexStrict","urlRegexRough","phoneRegex","emailRegex","newLineRegex","createMentionTemplateRegex","trigger","RegExp","replaceWithRegex","text","regex","replacer","keyPrefix","matches","matchAll","founds","map","value","start","index","end","length","groups","matchIndex","items","cursor","forEach","restText","pop","head","slice","mid","match","tail","push","replaceUrlAsComponents","originText","strict"],"sources":["regex.ts"],"sourcesContent":["// For iOS 12 backwards compatibility\nrequire('string.prototype.matchall').shim();\n\nexport const urlRegexStrict =\n /(https?:\\/\\/|www\\.)[-a-zA-Z0-9@:%._+~#=]{1,256}\\.(xn--)?[a-z0-9-]{2,20}\\b([-a-zA-Z0-9@:%_+[\\],.~#?&/=]*[-a-zA-Z0-9@:%_+\\]~#?&/=])*/g;\nexport const urlRegexRough =\n /(https?:\\/\\/|www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/g;\nexport const phoneRegex = /[+]?[(]?[0-9]{3}[)]?[-\\s.]?[0-9]{3}[-\\s.]?[0-9]{4,7}/;\nexport const emailRegex = /\\S+@\\S+\\.\\S+/;\nexport const newLineRegex = /\\r\\n|\\r|\\n/g;\n\nexport const createMentionTemplateRegex = (trigger: string) => new RegExp(`(${trigger}[{])(.*?)([}])`, 'g');\n\n// const cases = [\n// {\n// type: 'urlStrict',\n// regex: urlRegexStrict,\n// },\n// {\n// type: 'urlRough',\n// regex: urlRegexStrict,\n// },\n// {\n// type: 'email',\n// regex: emailRegex,\n// },\n// {\n// type: 'phone',\n// regex: urlRegexStrict,\n// },\n// ];\n\nexport const replaceWithRegex = <T>(\n text: string,\n regex: RegExp,\n replacer: (params: {\n match: string;\n groups: string[];\n matchIndex: number | undefined;\n index: number;\n keyPrefix: string;\n }) => T,\n keyPrefix: string,\n) => {\n const matches = [...text.matchAll(regex)];\n const founds = matches.map((value) => {\n const text = value[0];\n const start = value.index ?? 0;\n const end = start + text.length;\n return { text, start, end, groups: value, matchIndex: value.index };\n });\n\n const items: Array<T | string> = [text];\n let cursor = 0;\n founds.forEach(({ text, start, end, groups, matchIndex }, index) => {\n const restText = items.pop() as string;\n const head = restText.slice(0, start - cursor);\n const mid = replacer({ match: text, groups, matchIndex, index, keyPrefix });\n const tail = restText.slice(end - cursor);\n items.push(head, mid, tail);\n cursor = end;\n });\n return items;\n};\n\nexport const replaceUrlAsComponents = <T>(originText: string, replacer: (url: string) => T, strict?: boolean) => {\n const matches = [...originText.matchAll(strict ? urlRegexStrict : urlRegexRough)];\n const founds = matches.map((value) => {\n const text = value[0];\n const start = value.index ?? 0;\n const end = start + text.length;\n return { text, start, end };\n });\n\n const items: Array<string | T> = [originText];\n let cursor = 0;\n founds.forEach(({ text, start, end }) => {\n const restText = items.pop() as string;\n const head = restText.slice(0, start - cursor);\n const mid = replacer(text);\n const tail = restText.slice(end - cursor);\n items.push(head, mid, tail);\n cursor = end;\n });\n return items;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["require","shim","urlRegexStrict","exports","urlRegexRough","phoneRegex","emailRegex","newLineRegex","createMentionTemplateRegex","trigger","RegExp","replaceWithRegex","text","regex","replacer","keyPrefix","matches","matchAll","founds","map","value","start","index","end","length","groups","matchIndex","items","cursor","forEach","_ref","restText","pop","head","slice","mid","match","tail","push","replaceUrlAsComponents","originText","strict","_ref2"],"sources":["regex.ts"],"sourcesContent":["// For iOS 12 backwards compatibility\nrequire('string.prototype.matchall').shim();\n\nexport const urlRegexStrict =\n /(https?:\\/\\/|www\\.)[-a-zA-Z0-9@:%._+~#=]{1,256}\\.(xn--)?[a-z0-9-]{2,20}\\b([-a-zA-Z0-9@:%_+[\\],.~#?&/=]*[-a-zA-Z0-9@:%_+\\]~#?&/=])*/g;\nexport const urlRegexRough =\n /(https?:\\/\\/|www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/g;\nexport const phoneRegex = /[+]?[(]?[0-9]{3}[)]?[-\\s.]?[0-9]{3}[-\\s.]?[0-9]{4,7}/;\nexport const emailRegex = /\\S+@\\S+\\.\\S+/;\nexport const newLineRegex = /\\r\\n|\\r|\\n/g;\n\nexport const createMentionTemplateRegex = (trigger: string) => new RegExp(`(${trigger}[{])(.*?)([}])`, 'g');\n\n// const cases = [\n// {\n// type: 'urlStrict',\n// regex: urlRegexStrict,\n// },\n// {\n// type: 'urlRough',\n// regex: urlRegexStrict,\n// },\n// {\n// type: 'email',\n// regex: emailRegex,\n// },\n// {\n// type: 'phone',\n// regex: urlRegexStrict,\n// },\n// ];\n\nexport const replaceWithRegex = <T>(\n text: string,\n regex: RegExp,\n replacer: (params: {\n match: string;\n groups: string[];\n matchIndex: number | undefined;\n index: number;\n keyPrefix: string;\n }) => T,\n keyPrefix: string,\n) => {\n const matches = [...text.matchAll(regex)];\n const founds = matches.map((value) => {\n const text = value[0];\n const start = value.index ?? 0;\n const end = start + text.length;\n return { text, start, end, groups: value, matchIndex: value.index };\n });\n\n const items: Array<T | string> = [text];\n let cursor = 0;\n founds.forEach(({ text, start, end, groups, matchIndex }, index) => {\n const restText = items.pop() as string;\n const head = restText.slice(0, start - cursor);\n const mid = replacer({ match: text, groups, matchIndex, index, keyPrefix });\n const tail = restText.slice(end - cursor);\n items.push(head, mid, tail);\n cursor = end;\n });\n return items;\n};\n\nexport const replaceUrlAsComponents = <T>(originText: string, replacer: (url: string) => T, strict?: boolean) => {\n const matches = [...originText.matchAll(strict ? urlRegexStrict : urlRegexRough)];\n const founds = matches.map((value) => {\n const text = value[0];\n const start = value.index ?? 0;\n const end = start + text.length;\n return { text, start, end };\n });\n\n const items: Array<string | T> = [originText];\n let cursor = 0;\n founds.forEach(({ text, start, end }) => {\n const restText = items.pop() as string;\n const head = restText.slice(0, start - cursor);\n const mid = replacer(text);\n const tail = restText.slice(end - cursor);\n items.push(head, mid, tail);\n cursor = end;\n });\n return items;\n};\n"],"mappings":"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"}
@@ -4,14 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.truncatedCount = exports.truncate = exports.getMessageTimeFormat = exports.getDateSeparatorFormat = void 0;
7
-
8
7
  var _dateFns = require("date-fns");
9
-
10
8
  const defaultOpts = {
11
9
  mode: 'mid',
12
10
  maxLen: 40,
13
11
  separator: '...'
14
12
  };
13
+
15
14
  /**
16
15
  * String truncate util
17
16
  * @param {string} str
@@ -21,10 +20,10 @@ const defaultOpts = {
21
20
  * @param {string} opts.separator default "..."
22
21
  * @returns {string}
23
22
  * */
24
-
25
23
  const truncate = function (str) {
26
24
  let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOpts;
27
- const options = { ...defaultOpts,
25
+ const options = {
26
+ ...defaultOpts,
28
27
  ...opts
29
28
  };
30
29
  const {
@@ -33,23 +32,20 @@ const truncate = function (str) {
33
32
  separator
34
33
  } = options;
35
34
  if (str.length <= maxLen) return str;
36
-
37
35
  if (mode === 'head') {
38
36
  return separator + str.slice(-maxLen);
39
37
  }
40
-
41
38
  if (mode === 'mid') {
42
39
  const lead = Math.ceil(maxLen / 2);
43
40
  const trail = Math.floor(maxLen / 2);
44
41
  return str.slice(0, lead) + separator + str.slice(-trail);
45
42
  }
46
-
47
43
  if (mode === 'tail') {
48
44
  return str.slice(0, maxLen) + separator;
49
45
  }
50
-
51
46
  throw new Error('Invalid truncate mode: ' + mode);
52
47
  };
48
+
53
49
  /**
54
50
  * Count truncate util
55
51
  * If count exceed the limit, it comes in the form of "MAX+"
@@ -59,16 +55,14 @@ const truncate = function (str) {
59
55
  * @param {string} MAX_SUFFIX default +
60
56
  * @returns {string}
61
57
  * */
62
-
63
-
64
58
  exports.truncate = truncate;
65
-
66
59
  const truncatedCount = function (count) {
67
60
  let MAX = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 99;
68
61
  let MAX_SUFFIX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '+';
69
62
  if (count >= MAX) return `${MAX}${MAX_SUFFIX}`;
70
63
  return `${count}`;
71
64
  };
65
+
72
66
  /**
73
67
  * Messages date separator format
74
68
  *
@@ -76,10 +70,7 @@ const truncatedCount = function (count) {
76
70
  * @param {Locale} [locale]
77
71
  * @returns {string}
78
72
  * */
79
-
80
-
81
73
  exports.truncatedCount = truncatedCount;
82
-
83
74
  const getDateSeparatorFormat = (date, locale) => {
84
75
  if ((0, _dateFns.isThisYear)(date)) return (0, _dateFns.format)(date, 'MMM dd, yyyy', {
85
76
  locale
@@ -88,6 +79,7 @@ const getDateSeparatorFormat = (date, locale) => {
88
79
  locale
89
80
  });
90
81
  };
82
+
91
83
  /**
92
84
  * Message time format
93
85
  *
@@ -95,15 +87,11 @@ const getDateSeparatorFormat = (date, locale) => {
95
87
  * @param {Locale} [locale]
96
88
  * @returns {string}
97
89
  * */
98
-
99
-
100
90
  exports.getDateSeparatorFormat = getDateSeparatorFormat;
101
-
102
91
  const getMessageTimeFormat = (date, locale) => {
103
92
  return (0, _dateFns.format)(date, 'p', {
104
93
  locale
105
94
  });
106
95
  };
107
-
108
96
  exports.getMessageTimeFormat = getMessageTimeFormat;
109
97
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["defaultOpts","mode","maxLen","separator","truncate","str","opts","options","length","slice","lead","Math","ceil","trail","floor","Error","truncatedCount","count","MAX","MAX_SUFFIX","getDateSeparatorFormat","date","locale","isThisYear","format","getMessageTimeFormat"],"sources":["common.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport { format, isThisYear } from 'date-fns';\n\ntype TruncateMode = 'head' | 'mid' | 'tail';\ntype TruncateOption = { mode: TruncateMode; maxLen: number; separator: string };\nconst defaultOpts: TruncateOption = { mode: 'mid', maxLen: 40, separator: '...' };\n\n/**\n * String truncate util\n * @param {string} str\n * @param {Object} opts Options for truncate\n * @param {'head' | 'mid' | 'tail'} opts.mode default \"mid\"\n * @param {number} opts.maxLen default 40\n * @param {string} opts.separator default \"...\"\n * @returns {string}\n * */\nexport const truncate = (str: string, opts: Partial<TruncateOption> = defaultOpts): string => {\n const options = { ...defaultOpts, ...opts };\n const { maxLen, mode, separator } = options;\n\n if (str.length <= maxLen) return str;\n\n if (mode === 'head') {\n return separator + str.slice(-maxLen);\n }\n\n if (mode === 'mid') {\n const lead = Math.ceil(maxLen / 2);\n const trail = Math.floor(maxLen / 2);\n return str.slice(0, lead) + separator + str.slice(-trail);\n }\n\n if (mode === 'tail') {\n return str.slice(0, maxLen) + separator;\n }\n\n throw new Error('Invalid truncate mode: ' + mode);\n};\n\n/**\n * Count truncate util\n * If count exceed the limit, it comes in the form of \"MAX+\"\n *\n * @param {number} count\n * @param {number} MAX default 99\n * @param {string} MAX_SUFFIX default +\n * @returns {string}\n * */\nexport const truncatedCount = (count: number, MAX = 99, MAX_SUFFIX = '+') => {\n if (count >= MAX) return `${MAX}${MAX_SUFFIX}`;\n return `${count}`;\n};\n\n/**\n * Messages date separator format\n *\n * @param {Date} date\n * @param {Locale} [locale]\n * @returns {string}\n * */\nexport const getDateSeparatorFormat = (date: Date, locale?: Locale): string => {\n if (isThisYear(date)) return format(date, 'MMM dd, yyyy', { locale });\n return format(date, 'E, MMM dd', { locale });\n};\n\n/**\n * Message time format\n *\n * @param {Date} date\n * @param {Locale} [locale]\n * @returns {string}\n * */\nexport const getMessageTimeFormat = (date: Date, locale?: Locale): string => {\n return format(date, 'p', { locale });\n};\n"],"mappings":";;;;;;;AACA;;AAIA,MAAMA,WAA2B,GAAG;EAAEC,IAAI,EAAE,KAAR;EAAeC,MAAM,EAAE,EAAvB;EAA2BC,SAAS,EAAE;AAAtC,CAApC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,MAAMC,QAAQ,GAAG,UAACC,GAAD,EAAsE;EAAA,IAAxDC,IAAwD,uEAAxBN,WAAwB;EAC5F,MAAMO,OAAO,GAAG,EAAE,GAAGP,WAAL;IAAkB,GAAGM;EAArB,CAAhB;EACA,MAAM;IAAEJ,MAAF;IAAUD,IAAV;IAAgBE;EAAhB,IAA8BI,OAApC;EAEA,IAAIF,GAAG,CAACG,MAAJ,IAAcN,MAAlB,EAA0B,OAAOG,GAAP;;EAE1B,IAAIJ,IAAI,KAAK,MAAb,EAAqB;IACnB,OAAOE,SAAS,GAAGE,GAAG,CAACI,KAAJ,CAAU,CAACP,MAAX,CAAnB;EACD;;EAED,IAAID,IAAI,KAAK,KAAb,EAAoB;IAClB,MAAMS,IAAI,GAAGC,IAAI,CAACC,IAAL,CAAUV,MAAM,GAAG,CAAnB,CAAb;IACA,MAAMW,KAAK,GAAGF,IAAI,CAACG,KAAL,CAAWZ,MAAM,GAAG,CAApB,CAAd;IACA,OAAOG,GAAG,CAACI,KAAJ,CAAU,CAAV,EAAaC,IAAb,IAAqBP,SAArB,GAAiCE,GAAG,CAACI,KAAJ,CAAU,CAACI,KAAX,CAAxC;EACD;;EAED,IAAIZ,IAAI,KAAK,MAAb,EAAqB;IACnB,OAAOI,GAAG,CAACI,KAAJ,CAAU,CAAV,EAAaP,MAAb,IAAuBC,SAA9B;EACD;;EAED,MAAM,IAAIY,KAAJ,CAAU,4BAA4Bd,IAAtC,CAAN;AACD,CArBM;AAuBP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,MAAMe,cAAc,GAAG,UAACC,KAAD,EAA+C;EAAA,IAA/BC,GAA+B,uEAAzB,EAAyB;EAAA,IAArBC,UAAqB,uEAAR,GAAQ;EAC3E,IAAIF,KAAK,IAAIC,GAAb,EAAkB,OAAQ,GAAEA,GAAI,GAAEC,UAAW,EAA3B;EAClB,OAAQ,GAAEF,KAAM,EAAhB;AACD,CAHM;AAKP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,MAAMG,sBAAsB,GAAG,CAACC,IAAD,EAAaC,MAAb,KAAyC;EAC7E,IAAI,IAAAC,mBAAA,EAAWF,IAAX,CAAJ,EAAsB,OAAO,IAAAG,eAAA,EAAOH,IAAP,EAAa,cAAb,EAA6B;IAAEC;EAAF,CAA7B,CAAP;EACtB,OAAO,IAAAE,eAAA,EAAOH,IAAP,EAAa,WAAb,EAA0B;IAAEC;EAAF,CAA1B,CAAP;AACD,CAHM;AAKP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,MAAMG,oBAAoB,GAAG,CAACJ,IAAD,EAAaC,MAAb,KAAyC;EAC3E,OAAO,IAAAE,eAAA,EAAOH,IAAP,EAAa,GAAb,EAAkB;IAAEC;EAAF,CAAlB,CAAP;AACD,CAFM"}
1
+ {"version":3,"names":["_dateFns","require","defaultOpts","mode","maxLen","separator","truncate","str","opts","arguments","length","undefined","options","slice","lead","Math","ceil","trail","floor","Error","exports","truncatedCount","count","MAX","MAX_SUFFIX","getDateSeparatorFormat","date","locale","isThisYear","format","getMessageTimeFormat"],"sources":["common.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport { format, isThisYear } from 'date-fns';\n\ntype TruncateMode = 'head' | 'mid' | 'tail';\ntype TruncateOption = { mode: TruncateMode; maxLen: number; separator: string };\nconst defaultOpts: TruncateOption = { mode: 'mid', maxLen: 40, separator: '...' };\n\n/**\n * String truncate util\n * @param {string} str\n * @param {Object} opts Options for truncate\n * @param {'head' | 'mid' | 'tail'} opts.mode default \"mid\"\n * @param {number} opts.maxLen default 40\n * @param {string} opts.separator default \"...\"\n * @returns {string}\n * */\nexport const truncate = (str: string, opts: Partial<TruncateOption> = defaultOpts): string => {\n const options = { ...defaultOpts, ...opts };\n const { maxLen, mode, separator } = options;\n\n if (str.length <= maxLen) return str;\n\n if (mode === 'head') {\n return separator + str.slice(-maxLen);\n }\n\n if (mode === 'mid') {\n const lead = Math.ceil(maxLen / 2);\n const trail = Math.floor(maxLen / 2);\n return str.slice(0, lead) + separator + str.slice(-trail);\n }\n\n if (mode === 'tail') {\n return str.slice(0, maxLen) + separator;\n }\n\n throw new Error('Invalid truncate mode: ' + mode);\n};\n\n/**\n * Count truncate util\n * If count exceed the limit, it comes in the form of \"MAX+\"\n *\n * @param {number} count\n * @param {number} MAX default 99\n * @param {string} MAX_SUFFIX default +\n * @returns {string}\n * */\nexport const truncatedCount = (count: number, MAX = 99, MAX_SUFFIX = '+') => {\n if (count >= MAX) return `${MAX}${MAX_SUFFIX}`;\n return `${count}`;\n};\n\n/**\n * Messages date separator format\n *\n * @param {Date} date\n * @param {Locale} [locale]\n * @returns {string}\n * */\nexport const getDateSeparatorFormat = (date: Date, locale?: Locale): string => {\n if (isThisYear(date)) return format(date, 'MMM dd, yyyy', { locale });\n return format(date, 'E, MMM dd', { locale });\n};\n\n/**\n * Message time format\n *\n * @param {Date} date\n * @param {Locale} [locale]\n * @returns {string}\n * */\nexport const getMessageTimeFormat = (date: Date, locale?: Locale): string => {\n return format(date, 'p', { locale });\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAIA,MAAMC,WAA2B,GAAG;EAAEC,IAAI,EAAE,KAAK;EAAEC,MAAM,EAAE,EAAE;EAAEC,SAAS,EAAE;AAAM,CAAC;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,QAAQ,GAAG,SAAAA,CAACC,GAAW,EAA0D;EAAA,IAAxDC,IAA6B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGP,WAAW;EAC/E,MAAMU,OAAO,GAAG;IAAE,GAAGV,WAAW;IAAE,GAAGM;EAAK,CAAC;EAC3C,MAAM;IAAEJ,MAAM;IAAED,IAAI;IAAEE;EAAU,CAAC,GAAGO,OAAO;EAE3C,IAAIL,GAAG,CAACG,MAAM,IAAIN,MAAM,EAAE,OAAOG,GAAG;EAEpC,IAAIJ,IAAI,KAAK,MAAM,EAAE;IACnB,OAAOE,SAAS,GAAGE,GAAG,CAACM,KAAK,CAAC,CAACT,MAAM,CAAC;EACvC;EAEA,IAAID,IAAI,KAAK,KAAK,EAAE;IAClB,MAAMW,IAAI,GAAGC,IAAI,CAACC,IAAI,CAACZ,MAAM,GAAG,CAAC,CAAC;IAClC,MAAMa,KAAK,GAAGF,IAAI,CAACG,KAAK,CAACd,MAAM,GAAG,CAAC,CAAC;IACpC,OAAOG,GAAG,CAACM,KAAK,CAAC,CAAC,EAAEC,IAAI,CAAC,GAAGT,SAAS,GAAGE,GAAG,CAACM,KAAK,CAAC,CAACI,KAAK,CAAC;EAC3D;EAEA,IAAId,IAAI,KAAK,MAAM,EAAE;IACnB,OAAOI,GAAG,CAACM,KAAK,CAAC,CAAC,EAAET,MAAM,CAAC,GAAGC,SAAS;EACzC;EAEA,MAAM,IAAIc,KAAK,CAAC,yBAAyB,GAAGhB,IAAI,CAAC;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAiB,OAAA,CAAAd,QAAA,GAAAA,QAAA;AASO,MAAMe,cAAc,GAAG,SAAAA,CAACC,KAAa,EAAiC;EAAA,IAA/BC,GAAG,GAAAd,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IAAEe,UAAU,GAAAf,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EACtE,IAAIa,KAAK,IAAIC,GAAG,EAAE,OAAQ,GAAEA,GAAI,GAAEC,UAAW,EAAC;EAC9C,OAAQ,GAAEF,KAAM,EAAC;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANAF,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAOO,MAAMI,sBAAsB,GAAGA,CAACC,IAAU,EAAEC,MAAe,KAAa;EAC7E,IAAI,IAAAC,mBAAU,EAACF,IAAI,CAAC,EAAE,OAAO,IAAAG,eAAM,EAACH,IAAI,EAAE,cAAc,EAAE;IAAEC;EAAO,CAAC,CAAC;EACrE,OAAO,IAAAE,eAAM,EAACH,IAAI,EAAE,WAAW,EAAE;IAAEC;EAAO,CAAC,CAAC;AAC9C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANAP,OAAA,CAAAK,sBAAA,GAAAA,sBAAA;AAOO,MAAMK,oBAAoB,GAAGA,CAACJ,IAAU,EAAEC,MAAe,KAAa;EAC3E,OAAO,IAAAE,eAAM,EAACH,IAAI,EAAE,GAAG,EAAE;IAAEC;EAAO,CAAC,CAAC;AACtC,CAAC;AAACP,OAAA,CAAAU,oBAAA,GAAAA,oBAAA"}
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getGroupChannelTitle = exports.getGroupChannelPreviewTime = exports.getGroupChannelLastMessage = void 0;
7
-
8
7
  var _dateFns = require("date-fns");
9
-
10
8
  var _common = require("./common");
11
-
12
9
  const getGroupChannelTitle = function (currentUserId, channel) {
13
10
  let EMPTY_USERNAME = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '(No name)';
14
11
  let NO_MEMBERS = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '(No members)';
@@ -27,12 +24,9 @@ const getGroupChannelTitle = function (currentUserId, channel) {
27
24
  return nickname || EMPTY_USERNAME;
28
25
  }).join(', ');
29
26
  };
30
-
31
27
  exports.getGroupChannelTitle = getGroupChannelTitle;
32
-
33
28
  const getGroupChannelPreviewTime = (channel, locale) => {
34
29
  var _channel$lastMessage;
35
-
36
30
  const timestamp = ((_channel$lastMessage = channel.lastMessage) === null || _channel$lastMessage === void 0 ? void 0 : _channel$lastMessage.createdAt) || channel.joinedAt * 1000 || channel.createdAt;
37
31
  if ((0, _dateFns.isToday)(timestamp)) return (0, _dateFns.format)(timestamp, 'p', {
38
32
  locale
@@ -45,18 +39,14 @@ const getGroupChannelPreviewTime = (channel, locale) => {
45
39
  locale
46
40
  });
47
41
  };
48
-
49
42
  exports.getGroupChannelPreviewTime = getGroupChannelPreviewTime;
50
-
51
43
  const getGroupChannelLastMessage = function (channel) {
52
44
  let EMPTY_MESSAGE = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
53
45
  let MAX_LEN = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 15;
54
46
  const message = channel.lastMessage;
55
47
  if (!message) return EMPTY_MESSAGE;
56
-
57
48
  if (message.isFileMessage()) {
58
49
  const extIdx = message.name.lastIndexOf('.');
59
-
60
50
  if (extIdx > -1) {
61
51
  const file = message.name.slice(0, extIdx);
62
52
  const ext = message.name.slice(extIdx);
@@ -64,22 +54,17 @@ const getGroupChannelLastMessage = function (channel) {
64
54
  maxLen: MAX_LEN
65
55
  }) + ext;
66
56
  }
67
-
68
57
  return (0, _common.truncate)(message.name, {
69
58
  maxLen: MAX_LEN
70
59
  });
71
60
  }
72
-
73
61
  if (message.isUserMessage()) {
74
62
  return message.message ?? EMPTY_MESSAGE;
75
63
  }
76
-
77
64
  if (message.isAdminMessage()) {
78
65
  return message.message ?? EMPTY_MESSAGE;
79
66
  }
80
-
81
67
  return EMPTY_MESSAGE;
82
68
  };
83
-
84
69
  exports.getGroupChannelLastMessage = getGroupChannelLastMessage;
85
70
  //# sourceMappingURL=groupChannel.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getGroupChannelTitle","currentUserId","channel","EMPTY_USERNAME","NO_MEMBERS","DEFAULT_CHANNEL_NAME","name","memberCount","members","filter","userId","map","nickname","join","getGroupChannelPreviewTime","locale","timestamp","lastMessage","createdAt","joinedAt","isToday","format","isYesterday","isThisYear","getGroupChannelLastMessage","EMPTY_MESSAGE","MAX_LEN","message","isFileMessage","extIdx","lastIndexOf","file","slice","ext","truncate","maxLen","isUserMessage","isAdminMessage"],"sources":["groupChannel.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport { format, isThisYear, isToday, isYesterday } from 'date-fns';\n\nimport type { SendbirdGroupChannel } from '../types';\nimport { truncate } from './common';\n\nexport const getGroupChannelTitle = (\n currentUserId: string,\n channel: SendbirdGroupChannel,\n EMPTY_USERNAME = '(No name)',\n NO_MEMBERS = '(No members)',\n DEFAULT_CHANNEL_NAME = 'Group Channel',\n) => {\n if (channel.name !== DEFAULT_CHANNEL_NAME && channel.name !== '') return channel.name;\n if (channel.memberCount === 1) return NO_MEMBERS;\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => nickname || EMPTY_USERNAME)\n .join(', ');\n};\n\nexport const getGroupChannelPreviewTime = (channel: SendbirdGroupChannel, locale?: Locale) => {\n const timestamp = channel.lastMessage?.createdAt || channel.joinedAt * 1000 || channel.createdAt;\n\n if (isToday(timestamp)) return format(timestamp, 'p', { locale });\n if (isYesterday(timestamp)) return 'Yesterday';\n if (isThisYear(timestamp)) return format(timestamp, 'MMM dd', { locale });\n\n return format(timestamp, 'yyyy/MM/dd', { locale });\n};\n\nexport const getGroupChannelLastMessage = (channel: SendbirdGroupChannel, EMPTY_MESSAGE = '', MAX_LEN = 15) => {\n const message = channel.lastMessage;\n if (!message) return EMPTY_MESSAGE;\n\n if (message.isFileMessage()) {\n const extIdx = message.name.lastIndexOf('.');\n if (extIdx > -1) {\n const file = message.name.slice(0, extIdx);\n const ext = message.name.slice(extIdx);\n return truncate(file, { maxLen: MAX_LEN }) + ext;\n }\n\n return truncate(message.name, { maxLen: MAX_LEN });\n }\n\n if (message.isUserMessage()) {\n return message.message ?? EMPTY_MESSAGE;\n }\n\n if (message.isAdminMessage()) {\n return message.message ?? EMPTY_MESSAGE;\n }\n\n return EMPTY_MESSAGE;\n};\n"],"mappings":";;;;;;;AACA;;AAGA;;AAEO,MAAMA,oBAAoB,GAAG,UAClCC,aADkC,EAElCC,OAFkC,EAM/B;EAAA,IAHHC,cAGG,uEAHc,WAGd;EAAA,IAFHC,UAEG,uEAFU,cAEV;EAAA,IADHC,oBACG,uEADoB,eACpB;EACH,IAAIH,OAAO,CAACI,IAAR,KAAiBD,oBAAjB,IAAyCH,OAAO,CAACI,IAAR,KAAiB,EAA9D,EAAkE,OAAOJ,OAAO,CAACI,IAAf;EAClE,IAAIJ,OAAO,CAACK,WAAR,KAAwB,CAA5B,EAA+B,OAAOH,UAAP;EAC/B,OAAOF,OAAO,CAACM,OAAR,CACJC,MADI,CACG;IAAA,IAAC;MAAEC;IAAF,CAAD;IAAA,OAAgBA,MAAM,KAAKT,aAA3B;EAAA,CADH,EAEJU,GAFI,CAEA;IAAA,IAAC;MAAEC;IAAF,CAAD;IAAA,OAAkBA,QAAQ,IAAIT,cAA9B;EAAA,CAFA,EAGJU,IAHI,CAGC,IAHD,CAAP;AAID,CAbM;;;;AAeA,MAAMC,0BAA0B,GAAG,CAACZ,OAAD,EAAgCa,MAAhC,KAAoD;EAAA;;EAC5F,MAAMC,SAAS,GAAG,yBAAAd,OAAO,CAACe,WAAR,8EAAqBC,SAArB,KAAkChB,OAAO,CAACiB,QAAR,GAAmB,IAArD,IAA6DjB,OAAO,CAACgB,SAAvF;EAEA,IAAI,IAAAE,gBAAA,EAAQJ,SAAR,CAAJ,EAAwB,OAAO,IAAAK,eAAA,EAAOL,SAAP,EAAkB,GAAlB,EAAuB;IAAED;EAAF,CAAvB,CAAP;EACxB,IAAI,IAAAO,oBAAA,EAAYN,SAAZ,CAAJ,EAA4B,OAAO,WAAP;EAC5B,IAAI,IAAAO,mBAAA,EAAWP,SAAX,CAAJ,EAA2B,OAAO,IAAAK,eAAA,EAAOL,SAAP,EAAkB,QAAlB,EAA4B;IAAED;EAAF,CAA5B,CAAP;EAE3B,OAAO,IAAAM,eAAA,EAAOL,SAAP,EAAkB,YAAlB,EAAgC;IAAED;EAAF,CAAhC,CAAP;AACD,CARM;;;;AAUA,MAAMS,0BAA0B,GAAG,UAACtB,OAAD,EAAqE;EAAA,IAArCuB,aAAqC,uEAArB,EAAqB;EAAA,IAAjBC,OAAiB,uEAAP,EAAO;EAC7G,MAAMC,OAAO,GAAGzB,OAAO,CAACe,WAAxB;EACA,IAAI,CAACU,OAAL,EAAc,OAAOF,aAAP;;EAEd,IAAIE,OAAO,CAACC,aAAR,EAAJ,EAA6B;IAC3B,MAAMC,MAAM,GAAGF,OAAO,CAACrB,IAAR,CAAawB,WAAb,CAAyB,GAAzB,CAAf;;IACA,IAAID,MAAM,GAAG,CAAC,CAAd,EAAiB;MACf,MAAME,IAAI,GAAGJ,OAAO,CAACrB,IAAR,CAAa0B,KAAb,CAAmB,CAAnB,EAAsBH,MAAtB,CAAb;MACA,MAAMI,GAAG,GAAGN,OAAO,CAACrB,IAAR,CAAa0B,KAAb,CAAmBH,MAAnB,CAAZ;MACA,OAAO,IAAAK,gBAAA,EAASH,IAAT,EAAe;QAAEI,MAAM,EAAET;MAAV,CAAf,IAAsCO,GAA7C;IACD;;IAED,OAAO,IAAAC,gBAAA,EAASP,OAAO,CAACrB,IAAjB,EAAuB;MAAE6B,MAAM,EAAET;IAAV,CAAvB,CAAP;EACD;;EAED,IAAIC,OAAO,CAACS,aAAR,EAAJ,EAA6B;IAC3B,OAAOT,OAAO,CAACA,OAAR,IAAmBF,aAA1B;EACD;;EAED,IAAIE,OAAO,CAACU,cAAR,EAAJ,EAA8B;IAC5B,OAAOV,OAAO,CAACA,OAAR,IAAmBF,aAA1B;EACD;;EAED,OAAOA,aAAP;AACD,CAxBM"}
1
+ {"version":3,"names":["_dateFns","require","_common","getGroupChannelTitle","currentUserId","channel","EMPTY_USERNAME","arguments","length","undefined","NO_MEMBERS","DEFAULT_CHANNEL_NAME","name","memberCount","members","filter","_ref","userId","map","_ref2","nickname","join","exports","getGroupChannelPreviewTime","locale","_channel$lastMessage","timestamp","lastMessage","createdAt","joinedAt","isToday","format","isYesterday","isThisYear","getGroupChannelLastMessage","EMPTY_MESSAGE","MAX_LEN","message","isFileMessage","extIdx","lastIndexOf","file","slice","ext","truncate","maxLen","isUserMessage","isAdminMessage"],"sources":["groupChannel.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport { format, isThisYear, isToday, isYesterday } from 'date-fns';\n\nimport type { SendbirdGroupChannel } from '../types';\nimport { truncate } from './common';\n\nexport const getGroupChannelTitle = (\n currentUserId: string,\n channel: SendbirdGroupChannel,\n EMPTY_USERNAME = '(No name)',\n NO_MEMBERS = '(No members)',\n DEFAULT_CHANNEL_NAME = 'Group Channel',\n) => {\n if (channel.name !== DEFAULT_CHANNEL_NAME && channel.name !== '') return channel.name;\n if (channel.memberCount === 1) return NO_MEMBERS;\n return channel.members\n .filter(({ userId }) => userId !== currentUserId)\n .map(({ nickname }) => nickname || EMPTY_USERNAME)\n .join(', ');\n};\n\nexport const getGroupChannelPreviewTime = (channel: SendbirdGroupChannel, locale?: Locale) => {\n const timestamp = channel.lastMessage?.createdAt || channel.joinedAt * 1000 || channel.createdAt;\n\n if (isToday(timestamp)) return format(timestamp, 'p', { locale });\n if (isYesterday(timestamp)) return 'Yesterday';\n if (isThisYear(timestamp)) return format(timestamp, 'MMM dd', { locale });\n\n return format(timestamp, 'yyyy/MM/dd', { locale });\n};\n\nexport const getGroupChannelLastMessage = (channel: SendbirdGroupChannel, EMPTY_MESSAGE = '', MAX_LEN = 15) => {\n const message = channel.lastMessage;\n if (!message) return EMPTY_MESSAGE;\n\n if (message.isFileMessage()) {\n const extIdx = message.name.lastIndexOf('.');\n if (extIdx > -1) {\n const file = message.name.slice(0, extIdx);\n const ext = message.name.slice(extIdx);\n return truncate(file, { maxLen: MAX_LEN }) + ext;\n }\n\n return truncate(message.name, { maxLen: MAX_LEN });\n }\n\n if (message.isUserMessage()) {\n return message.message ?? EMPTY_MESSAGE;\n }\n\n if (message.isAdminMessage()) {\n return message.message ?? EMPTY_MESSAGE;\n }\n\n return EMPTY_MESSAGE;\n};\n"],"mappings":"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"}
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getOpenChannelTitle = exports.getOpenChannelParticipants = void 0;
7
-
8
7
  const getOpenChannelTitle = function (channel) {
9
8
  let DEFAULT_CHANNEL_NAME = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Open Channel';
10
9
  const trimmedChannelName = channel.name.trim();
11
10
  if (trimmedChannelName === '') return DEFAULT_CHANNEL_NAME;
12
11
  return trimmedChannelName;
13
12
  };
14
-
15
13
  exports.getOpenChannelTitle = getOpenChannelTitle;
16
-
17
14
  const getOpenChannelParticipants = channel => {
18
15
  return `${channel.participantCount} participants`;
19
16
  };
20
-
21
17
  exports.getOpenChannelParticipants = getOpenChannelParticipants;
22
18
  //# sourceMappingURL=openChannel.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getOpenChannelTitle","channel","DEFAULT_CHANNEL_NAME","trimmedChannelName","name","trim","getOpenChannelParticipants","participantCount"],"sources":["openChannel.ts"],"sourcesContent":["import type { SendbirdOpenChannel } from '../types';\n\nexport const getOpenChannelTitle = (channel: SendbirdOpenChannel, DEFAULT_CHANNEL_NAME = 'Open Channel') => {\n const trimmedChannelName = channel.name.trim();\n if (trimmedChannelName === '') return DEFAULT_CHANNEL_NAME;\n return trimmedChannelName;\n};\n\nexport const getOpenChannelParticipants = (channel: SendbirdOpenChannel) => {\n return `${channel.participantCount} participants`;\n};\n"],"mappings":";;;;;;;AAEO,MAAMA,mBAAmB,GAAG,UAACC,OAAD,EAAyE;EAAA,IAA1CC,oBAA0C,uEAAnB,cAAmB;EAC1G,MAAMC,kBAAkB,GAAGF,OAAO,CAACG,IAAR,CAAaC,IAAb,EAA3B;EACA,IAAIF,kBAAkB,KAAK,EAA3B,EAA+B,OAAOD,oBAAP;EAC/B,OAAOC,kBAAP;AACD,CAJM;;;;AAMA,MAAMG,0BAA0B,GAAIL,OAAD,IAAkC;EAC1E,OAAQ,GAAEA,OAAO,CAACM,gBAAiB,eAAnC;AACD,CAFM"}
1
+ {"version":3,"names":["getOpenChannelTitle","channel","DEFAULT_CHANNEL_NAME","arguments","length","undefined","trimmedChannelName","name","trim","exports","getOpenChannelParticipants","participantCount"],"sources":["openChannel.ts"],"sourcesContent":["import type { SendbirdOpenChannel } from '../types';\n\nexport const getOpenChannelTitle = (channel: SendbirdOpenChannel, DEFAULT_CHANNEL_NAME = 'Open Channel') => {\n const trimmedChannelName = channel.name.trim();\n if (trimmedChannelName === '') return DEFAULT_CHANNEL_NAME;\n return trimmedChannelName;\n};\n\nexport const getOpenChannelParticipants = (channel: SendbirdOpenChannel) => {\n return `${channel.participantCount} participants`;\n};\n"],"mappings":";;;;;;AAEO,MAAMA,mBAAmB,GAAG,SAAAA,CAACC,OAA4B,EAA4C;EAAA,IAA1CC,oBAAoB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,cAAc;EACrG,MAAMG,kBAAkB,GAAGL,OAAO,CAACM,IAAI,CAACC,IAAI,EAAE;EAC9C,IAAIF,kBAAkB,KAAK,EAAE,EAAE,OAAOJ,oBAAoB;EAC1D,OAAOI,kBAAkB;AAC3B,CAAC;AAACG,OAAA,CAAAT,mBAAA,GAAAA,mBAAA;AAEK,MAAMU,0BAA0B,GAAIT,OAA4B,IAAK;EAC1E,OAAQ,GAAEA,OAAO,CAACU,gBAAiB,eAAc;AACnD,CAAC;AAACF,OAAA,CAAAC,0BAAA,GAAAA,0BAAA"}