UNPKG

altinn-designsystem

Version:

Altinn Design system based on Pattern Lab.

56 lines (47 loc) 1.66 kB
/* globals compareTo */ var sortListAlphanumerically = function(src, sortIndex) { var $list = $(src).closest('.a-list-container').find('.a-list'); var rows = $list.find('li:not(.a-list-header)'); var reverse; var active = $(src).hasClass('a-active'); if (!active) { $(src).closest('.a-list-container').find('.a-list-sortHeader').removeClass('a-active') .removeClass('a-js-reverse-sort'); $(src).addClass('a-active'); } else { $(src).toggleClass('a-js-reverse-sort'); } reverse = $(src).hasClass('a-js-reverse-sort'); rows.sort(function(a, b) { var A = $($($($(a).children()[0]).children()[sortIndex]).find('.a-js-sortValue')[0]).text() .toUpperCase(); var B = $($($($(b).children()[0]).children()[sortIndex]).find('.a-js-sortValue')[0]).text() .toUpperCase(); return reverse ? compareTo(B, A) : compareTo(A, B); }); $.each(rows, function(index, row) { if ($(row).find('.a-js-sortValue').length > 0) { $list.append(row); } }); // handles load more row $.each(rows, function(index, row) { if ($(row).find('.a-js-sortValue').length === 0) { $list.append(row); } }); }; var defaultListSort = function() { $('.a-list-container').each(function() { var sortHeader = $(this).find('.a-list-sortHeader')[0]; var index = $(sortHeader).index(); sortListAlphanumerically(sortHeader, index); }); }; var addListSortHandler = function() { $('.a-list-sortHeader').on('click', function() { var index = $(this).index(); sortListAlphanumerically(this, index); }); defaultListSort(); };