diff --git a/js/gamutable.es6.js b/js/gamutable.es6.js index 66e659b..900e775 100644 --- a/js/gamutable.es6.js +++ b/js/gamutable.es6.js @@ -27,8 +27,24 @@ const orderBy = (arr, props, orders) => props.reduce((acc, prop, i) => { if (acc === 0) { let [p1, p2] = orders && orders[i] === 'desc' ? [b[prop], a[prop]] : [a[prop], b[prop]]; + // passe en lowercase les String p1 = typeof p1 === 'string' ? p1.toLowerCase() : p1; p2 = typeof p2 === 'string' ? p2.toLowerCase() : p2; + + // Gestion du format de date + // transforme 03/11/2000 en 20001103 + let re = /^(\d{2,4})\/(\d{2})\/(\d{2,4})$/; + + let r1 = p1.match(re); + if (Array.isArray(r1)) { + p1 = r1[3] + r1[2] + r1[1]; + } + + let r2 = p2.match(re); + if (Array.isArray(r2)) { + p2 = r2[3] + r2[2] + r2[1]; + } + acc = p1 > p2 ? 1 : p1 < p2 ? -1 : 0; } return acc; diff --git a/js/gamutable.js b/js/gamutable.js index 48ded9a..2c79b40 100644 --- a/js/gamutable.js +++ b/js/gamutable.js @@ -41,10 +41,26 @@ var orderBy = function orderBy(arr, props, orders) { var _ref = orders && orders[i] === 'desc' ? [b[prop], a[prop]] : [a[prop], b[prop]], _ref2 = _slicedToArray(_ref, 2), p1 = _ref2[0], - p2 = _ref2[1]; + p2 = _ref2[1]; // passe en lowercase les String + p1 = typeof p1 === 'string' ? p1.toLowerCase() : p1; - p2 = typeof p2 === 'string' ? p2.toLowerCase() : p2; + p2 = typeof p2 === 'string' ? p2.toLowerCase() : p2; // Gestion du format de date + // transforme 03/11/2000 en 20001103 + + var re = /^(\d{2,4})\/(\d{2})\/(\d{2,4})$/; + var r1 = p1.match(re); + + if (Array.isArray(r1)) { + p1 = r1[3] + r1[2] + r1[1]; + } + + var r2 = p2.match(re); + + if (Array.isArray(r2)) { + p2 = r2[3] + r2[2] + r2[1]; + } + acc = p1 > p2 ? 1 : p1 < p2 ? -1 : 0; }