UNPKG

@edugouvfr/ngx-dsfr

Version:

NgxDsfr est un portage Angular des éléments d'interface du Système de Design de l'État Français (DSFR).

67 lines 8.79 kB
import { convertMimeType2FileFormat } from '../../components/download/dsfr-mime.type'; const KILO_OCTETS = 1024; const MEGA_OCTETS = KILO_OCTETS * 1024; const GIGA_OCTETS = MEGA_OCTETS * 1024; /** * Construit le libellé de détail dans un composant de téléchargement lorsque ce libellé n'est pas fourni par le Dsfr * @param mimeType Type mime du fichier * @param sizeBytes Nombre d'octets * @param sizeUnit Unité utilisée dans la restitution * @return par exemple 'PDF - 10 octets' */ export function downloadDetail(mimeType, sizeBytes, sizeUnit) { return !sizeBytes ? convertMimeType2FileFormat(mimeType) || '' : convertMimeType2FileFormat(mimeType) + ' - ' + fileSizeToString(sizeBytes, sizeUnit); } /** * Retourne la taille sous forme de string sous forme de 'nombre unité' * @param bytes Taille à transformer exprimée en octets * @param sizeUnit Si true, l'unité sera en bytes (KB, MB, ... ) sinon en octets (ko, mo, ...) */ export function fileSizeToString(bytes, sizeUnit) { if (!bytes) return ''; const bytesUnit = sizeUnit === 'bytes'; let fileSize; let fileSizeUnit; if (bytes < KILO_OCTETS) { fileSize = bytes; fileSizeUnit = bytesUnit ? FileSizeUnit.BYTES : FileSizeUnit.OCTETS; } else if (bytes < MEGA_OCTETS) { fileSize = bytes / 1024; fileSizeUnit = bytesUnit ? FileSizeUnit.KB : FileSizeUnit.KO; } else if (bytes < GIGA_OCTETS) { fileSize = bytes / 1048576; fileSizeUnit = bytesUnit ? FileSizeUnit.MB : FileSizeUnit.MO; } else { fileSize = bytes / 1073741824; fileSizeUnit = bytesUnit ? FileSizeUnit.GB : FileSizeUnit.GO; } fileSize = Math.round(fileSize * 100) / 100; // since 1.8, les options régionales sont prise en compte pour les décimales //FIXME: ne devrait-ton pas transmettre la locale depuis l'extérieur de manière à pouvoir la transmettre depuis i18nService ? const localSize = fileSize.toLocaleString(); return localSize + ' ' + fileSizeUnit; } // -- Constantes d'unités de taille de fichier ------------------------------------------------------------------------- var FileSizeUnit; (function (FileSizeUnit) { FileSizeUnit["OCTETS"] = "octets"; FileSizeUnit["KO"] = "ko"; FileSizeUnit["MO"] = "Mo"; FileSizeUnit["GO"] = "Go"; FileSizeUnit["BYTES"] = "bytes"; FileSizeUnit["KB"] = "KB"; FileSizeUnit["MB"] = "MB"; FileSizeUnit["GB"] = "GB"; })(FileSizeUnit || (FileSizeUnit = {})); export var DsfrFileSizeUnitConst; (function (DsfrFileSizeUnitConst) { DsfrFileSizeUnitConst["BYTES"] = "bytes"; DsfrFileSizeUnitConst["OCTETS"] = "octets"; })(DsfrFileSizeUnitConst || (DsfrFileSizeUnitConst = {})); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1kc2ZyLWNvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvdXRpbHMvZmlsZS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV0RixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDekIsTUFBTSxXQUFXLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQztBQUN2QyxNQUFNLFdBQVcsR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBRXZDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBZ0IsRUFBRSxTQUE2QixFQUFFLFFBQTBCO0lBQ3hHLE9BQU8sQ0FBQyxTQUFTO1FBQ2YsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7UUFDNUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDM0YsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLFFBQTJCO0lBQ3pFLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFdEIsTUFBTSxTQUFTLEdBQUcsUUFBUSxLQUFLLE9BQU8sQ0FBQztJQUV2QyxJQUFJLFFBQWdCLENBQUM7SUFDckIsSUFBSSxZQUFvQixDQUFDO0lBRXpCLElBQUksS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ3hCLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBWSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUN0RSxDQUFDO1NBQU0sSUFBSSxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDL0IsUUFBUSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDeEIsWUFBWSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztJQUMvRCxDQUFDO1NBQU0sSUFBSSxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDL0IsUUFBUSxHQUFHLEtBQUssR0FBRyxPQUFPLENBQUM7UUFDM0IsWUFBWSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztJQUMvRCxDQUFDO1NBQU0sQ0FBQztRQUNOLFFBQVEsR0FBRyxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQzlCLFlBQVksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVELFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7SUFFNUMsNEVBQTRFO0lBQzVFLDZIQUE2SDtJQUM3SCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDNUMsT0FBTyxTQUFTLEdBQUcsR0FBRyxHQUFHLFlBQVksQ0FBQztBQUN4QyxDQUFDO0FBRUQsd0hBQXdIO0FBRXhILElBQUssWUFTSjtBQVRELFdBQUssWUFBWTtJQUNmLGlDQUFpQixDQUFBO0lBQ2pCLHlCQUFTLENBQUE7SUFDVCx5QkFBUyxDQUFBO0lBQ1QseUJBQVMsQ0FBQTtJQUNULCtCQUFlLENBQUE7SUFDZix5QkFBUyxDQUFBO0lBQ1QseUJBQVMsQ0FBQTtJQUNULHlCQUFTLENBQUE7QUFDWCxDQUFDLEVBVEksWUFBWSxLQUFaLFlBQVksUUFTaEI7QUFFRCxNQUFNLENBQU4sSUFBWSxxQkFHWDtBQUhELFdBQVkscUJBQXFCO0lBQy9CLHdDQUFlLENBQUE7SUFDZiwwQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSFcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUdoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnZlcnRNaW1lVHlwZTJGaWxlRm9ybWF0IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kb3dubG9hZC9kc2ZyLW1pbWUudHlwZSc7XG5cbmNvbnN0IEtJTE9fT0NURVRTID0gMTAyNDtcbmNvbnN0IE1FR0FfT0NURVRTID0gS0lMT19PQ1RFVFMgKiAxMDI0O1xuY29uc3QgR0lHQV9PQ1RFVFMgPSBNRUdBX09DVEVUUyAqIDEwMjQ7XG5cbi8qKlxuICogQ29uc3RydWl0IGxlIGxpYmVsbMOpIGRlIGTDqXRhaWwgZGFucyB1biBjb21wb3NhbnQgZGUgdMOpbMOpY2hhcmdlbWVudCBsb3JzcXVlIGNlIGxpYmVsbMOpIG4nZXN0IHBhcyBmb3VybmkgcGFyIGxlIERzZnJcbiAqIEBwYXJhbSBtaW1lVHlwZSBUeXBlIG1pbWUgZHUgZmljaGllclxuICogQHBhcmFtIHNpemVCeXRlcyBOb21icmUgZCdvY3RldHNcbiAqIEBwYXJhbSBzaXplVW5pdCBVbml0w6kgdXRpbGlzw6llIGRhbnMgbGEgcmVzdGl0dXRpb25cbiAqIEByZXR1cm4gcGFyIGV4ZW1wbGUgJ1BERiAtIDEwIG9jdGV0cydcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRGV0YWlsKG1pbWVUeXBlOiBzdHJpbmcsIHNpemVCeXRlczogbnVtYmVyIHwgdW5kZWZpbmVkLCBzaXplVW5pdDogRHNmckZpbGVTaXplVW5pdCk6IHN0cmluZyB7XG4gIHJldHVybiAhc2l6ZUJ5dGVzXG4gICAgPyBjb252ZXJ0TWltZVR5cGUyRmlsZUZvcm1hdChtaW1lVHlwZSkgfHwgJydcbiAgICA6IGNvbnZlcnRNaW1lVHlwZTJGaWxlRm9ybWF0KG1pbWVUeXBlKSArICcgLSAnICsgZmlsZVNpemVUb1N0cmluZyhzaXplQnl0ZXMsIHNpemVVbml0KTtcbn1cblxuLyoqXG4gKiBSZXRvdXJuZSBsYSB0YWlsbGUgc291cyBmb3JtZSBkZSBzdHJpbmcgc291cyBmb3JtZSBkZSAnbm9tYnJlIHVuaXTDqSdcbiAqIEBwYXJhbSBieXRlcyBUYWlsbGUgw6AgdHJhbnNmb3JtZXIgZXhwcmltw6llIGVuIG9jdGV0c1xuICogQHBhcmFtIHNpemVVbml0IFNpIHRydWUsIGwndW5pdMOpIHNlcmEgZW4gYnl0ZXMgKEtCLCBNQiwgLi4uICkgc2lub24gZW4gb2N0ZXRzIChrbywgbW8sIC4uLilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGVTaXplVG9TdHJpbmcoYnl0ZXM6IG51bWJlciwgc2l6ZVVuaXQ/OiBEc2ZyRmlsZVNpemVVbml0KTogc3RyaW5nIHtcbiAgaWYgKCFieXRlcykgcmV0dXJuICcnO1xuXG4gIGNvbnN0IGJ5dGVzVW5pdCA9IHNpemVVbml0ID09PSAnYnl0ZXMnO1xuXG4gIGxldCBmaWxlU2l6ZTogbnVtYmVyO1xuICBsZXQgZmlsZVNpemVVbml0OiBzdHJpbmc7XG5cbiAgaWYgKGJ5dGVzIDwgS0lMT19PQ1RFVFMpIHtcbiAgICBmaWxlU2l6ZSA9IGJ5dGVzO1xuICAgIGZpbGVTaXplVW5pdCA9IGJ5dGVzVW5pdCA/IEZpbGVTaXplVW5pdC5CWVRFUyA6IEZpbGVTaXplVW5pdC5PQ1RFVFM7XG4gIH0gZWxzZSBpZiAoYnl0ZXMgPCBNRUdBX09DVEVUUykge1xuICAgIGZpbGVTaXplID0gYnl0ZXMgLyAxMDI0O1xuICAgIGZpbGVTaXplVW5pdCA9IGJ5dGVzVW5pdCA/IEZpbGVTaXplVW5pdC5LQiA6IEZpbGVTaXplVW5pdC5LTztcbiAgfSBlbHNlIGlmIChieXRlcyA8IEdJR0FfT0NURVRTKSB7XG4gICAgZmlsZVNpemUgPSBieXRlcyAvIDEwNDg1NzY7XG4gICAgZmlsZVNpemVVbml0ID0gYnl0ZXNVbml0ID8gRmlsZVNpemVVbml0Lk1CIDogRmlsZVNpemVVbml0Lk1PO1xuICB9IGVsc2Uge1xuICAgIGZpbGVTaXplID0gYnl0ZXMgLyAxMDczNzQxODI0O1xuICAgIGZpbGVTaXplVW5pdCA9IGJ5dGVzVW5pdCA/IEZpbGVTaXplVW5pdC5HQiA6IEZpbGVTaXplVW5pdC5HTztcbiAgfVxuXG4gIGZpbGVTaXplID0gTWF0aC5yb3VuZChmaWxlU2l6ZSAqIDEwMCkgLyAxMDA7XG5cbiAgLy8gc2luY2UgMS44LCBsZXMgb3B0aW9ucyByw6lnaW9uYWxlcyBzb250IHByaXNlIGVuIGNvbXB0ZSBwb3VyIGxlcyBkw6ljaW1hbGVzXG4gIC8vRklYTUU6IG5lIGRldnJhaXQtdG9uIHBhcyB0cmFuc21ldHRyZSBsYSBsb2NhbGUgZGVwdWlzIGwnZXh0w6lyaWV1ciBkZSBtYW5pw6hyZSDDoCBwb3V2b2lyIGxhIHRyYW5zbWV0dHJlIGRlcHVpcyBpMThuU2VydmljZSA/XG4gIGNvbnN0IGxvY2FsU2l6ZSA9IGZpbGVTaXplLnRvTG9jYWxlU3RyaW5nKCk7XG4gIHJldHVybiBsb2NhbFNpemUgKyAnICcgKyBmaWxlU2l6ZVVuaXQ7XG59XG5cbi8vIC0tIENvbnN0YW50ZXMgZCd1bml0w6lzIGRlIHRhaWxsZSBkZSBmaWNoaWVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZW51bSBGaWxlU2l6ZVVuaXQge1xuICBPQ1RFVFMgPSAnb2N0ZXRzJyxcbiAgS08gPSAna28nLFxuICBNTyA9ICdNbycsXG4gIEdPID0gJ0dvJyxcbiAgQllURVMgPSAnYnl0ZXMnLFxuICBLQiA9ICdLQicsXG4gIE1CID0gJ01CJyxcbiAgR0IgPSAnR0InLFxufVxuXG5leHBvcnQgZW51bSBEc2ZyRmlsZVNpemVVbml0Q29uc3Qge1xuICBCWVRFUyA9ICdieXRlcycsXG4gIE9DVEVUUyA9ICdvY3RldHMnLFxufVxuXG5leHBvcnQgdHlwZSBEc2ZyRmlsZVNpemVVbml0ID0gYCR7RHNmckZpbGVTaXplVW5pdENvbnN0fWA7XG4iXX0=