{
  "version": 3,
  "sources": ["../../src/filesize/index.tsx"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf, _x } from '@wordpress/i18n';\nimport type { Field } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport type { MediaItem } from '../types';\n\nconst KB_IN_BYTES = 1024;\nconst MB_IN_BYTES = 1024 * KB_IN_BYTES;\nconst GB_IN_BYTES = 1024 * MB_IN_BYTES;\nconst TB_IN_BYTES = 1024 * GB_IN_BYTES;\nconst PB_IN_BYTES = 1024 * TB_IN_BYTES;\nconst EB_IN_BYTES = 1024 * PB_IN_BYTES;\nconst ZB_IN_BYTES = 1024 * EB_IN_BYTES;\nconst YB_IN_BYTES = 1024 * ZB_IN_BYTES;\n\nfunction getBytesString(\n\tbytes: number,\n\tunitSymbol: string,\n\tdecimals = 2\n): string {\n\treturn sprintf(\n\t\t// translators: 1: Actual bytes of a file. 2: The unit symbol (e.g. MB).\n\t\t_x( '%1$s %2$s', 'file size' ),\n\t\tbytes.toLocaleString( undefined, {\n\t\t\tminimumFractionDigits: 0,\n\t\t\tmaximumFractionDigits: decimals,\n\t\t} ),\n\t\tunitSymbol\n\t);\n}\n\n/**\n * Converts bytes to a human-readable file size string with a specified number of decimal places.\n *\n * This logic is comparable to core's `size_format()` function.\n *\n * @param bytes    The size in bytes.\n * @param decimals The number of decimal places to include in the result.\n * @return         The human-readable file size string.\n */\nfunction formatFileSize( bytes: number, decimals = 2 ): string {\n\tif ( bytes === 0 ) {\n\t\treturn getBytesString( 0, _x( 'B', 'unit symbol' ), decimals );\n\t}\n\tconst quant = {\n\t\t/* translators: Unit symbol for yottabyte. */\n\t\t[ _x( 'YB', 'unit symbol' ) ]: YB_IN_BYTES,\n\t\t/* translators: Unit symbol for zettabyte. */\n\t\t[ _x( 'ZB', 'unit symbol' ) ]: ZB_IN_BYTES,\n\t\t/* translators: Unit symbol for exabyte. */\n\t\t[ _x( 'EB', 'unit symbol' ) ]: EB_IN_BYTES,\n\t\t/* translators: Unit symbol for petabyte. */\n\t\t[ _x( 'PB', 'unit symbol' ) ]: PB_IN_BYTES,\n\t\t/* translators: Unit symbol for terabyte. */\n\t\t[ _x( 'TB', 'unit symbol' ) ]: TB_IN_BYTES,\n\t\t/* translators: Unit symbol for gigabyte. */\n\t\t[ _x( 'GB', 'unit symbol' ) ]: GB_IN_BYTES,\n\t\t/* translators: Unit symbol for megabyte. */\n\t\t[ _x( 'MB', 'unit symbol' ) ]: MB_IN_BYTES,\n\t\t/* translators: Unit symbol for kilobyte. */\n\t\t[ _x( 'KB', 'unit symbol' ) ]: KB_IN_BYTES,\n\t\t/* translators: Unit symbol for byte. */\n\t\t[ _x( 'B', 'unit symbol' ) ]: 1,\n\t};\n\n\tfor ( const [ unit, mag ] of Object.entries( quant ) ) {\n\t\tif ( bytes >= mag ) {\n\t\t\treturn getBytesString( bytes / mag, unit, decimals );\n\t\t}\n\t}\n\n\treturn ''; // Fallback in case no unit matches, though this should not happen.\n}\n\nconst filesizeField: Partial< Field< MediaItem > > = {\n\tid: 'filesize',\n\ttype: 'text',\n\tlabel: __( 'File size' ),\n\tgetValue: ( { item }: { item: MediaItem } ) =>\n\t\titem?.media_details?.filesize\n\t\t\t? formatFileSize( item?.media_details?.filesize )\n\t\t\t: '',\n\tisVisible: ( item: MediaItem ) => {\n\t\treturn !! item?.media_details?.filesize;\n\t},\n\tenableSorting: false,\n\tfilterBy: false,\n\treadOnly: true,\n};\n\nexport default filesizeField;\n"],
  "mappings": ";AAGA,SAAS,IAAI,SAAS,UAAU;AAQhC,IAAM,cAAc;AACpB,IAAM,cAAc,OAAO;AAC3B,IAAM,cAAc,OAAO;AAC3B,IAAM,cAAc,OAAO;AAC3B,IAAM,cAAc,OAAO;AAC3B,IAAM,cAAc,OAAO;AAC3B,IAAM,cAAc,OAAO;AAC3B,IAAM,cAAc,OAAO;AAE3B,SAAS,eACR,OACA,YACA,WAAW,GACF;AACT,SAAO;AAAA;AAAA,IAEN,GAAI,aAAa,WAAY;AAAA,IAC7B,MAAM,eAAgB,QAAW;AAAA,MAChC,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,IACxB,CAAE;AAAA,IACF;AAAA,EACD;AACD;AAWA,SAAS,eAAgB,OAAe,WAAW,GAAY;AAC9D,MAAK,UAAU,GAAI;AAClB,WAAO,eAAgB,GAAG,GAAI,KAAK,aAAc,GAAG,QAAS;AAAA,EAC9D;AACA,QAAM,QAAQ;AAAA;AAAA,IAEb,CAAE,GAAI,MAAM,aAAc,CAAE,GAAG;AAAA;AAAA,IAE/B,CAAE,GAAI,MAAM,aAAc,CAAE,GAAG;AAAA;AAAA,IAE/B,CAAE,GAAI,MAAM,aAAc,CAAE,GAAG;AAAA;AAAA,IAE/B,CAAE,GAAI,MAAM,aAAc,CAAE,GAAG;AAAA;AAAA,IAE/B,CAAE,GAAI,MAAM,aAAc,CAAE,GAAG;AAAA;AAAA,IAE/B,CAAE,GAAI,MAAM,aAAc,CAAE,GAAG;AAAA;AAAA,IAE/B,CAAE,GAAI,MAAM,aAAc,CAAE,GAAG;AAAA;AAAA,IAE/B,CAAE,GAAI,MAAM,aAAc,CAAE,GAAG;AAAA;AAAA,IAE/B,CAAE,GAAI,KAAK,aAAc,CAAE,GAAG;AAAA,EAC/B;AAEA,aAAY,CAAE,MAAM,GAAI,KAAK,OAAO,QAAS,KAAM,GAAI;AACtD,QAAK,SAAS,KAAM;AACnB,aAAO,eAAgB,QAAQ,KAAK,MAAM,QAAS;AAAA,IACpD;AAAA,EACD;AAEA,SAAO;AACR;AAEA,IAAM,gBAA+C;AAAA,EACpD,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,OAAO,GAAI,WAAY;AAAA,EACvB,UAAU,CAAE,EAAE,KAAK,MAClB,MAAM,eAAe,WAClB,eAAgB,MAAM,eAAe,QAAS,IAC9C;AAAA,EACJ,WAAW,CAAE,SAAqB;AACjC,WAAO,CAAC,CAAE,MAAM,eAAe;AAAA,EAChC;AAAA,EACA,eAAe;AAAA,EACf,UAAU;AAAA,EACV,UAAU;AACX;AAEA,IAAO,mBAAQ;",
  "names": []
}
