UNPKG

altinn-designsystem

Version:

Altinn Design system based on Pattern Lab.

140 lines (139 loc) 6.5 kB
/* globals $ */ var codeLookup = function() { var capIt = function(string) { return string.charAt(0).toUpperCase() + string.slice(1); }; var lastKeypress; var now; var iterate; var legend = $('.a-js-lookup').find('.a-legend'); var loader = $('.a-js-lookup').find('.modal-body').find('.a-loader'); var empty = $('.a-js-lookup').find('.a-js-noResults'); var container = $('.a-js-lookup').find('.modal-body').find('.a-radioButtons'); var check = function() { if ($('form').find('input[type=radio]:checked').length > 0) { $('form').find('button[type=submit]').removeAttr('disabled'); $('form').find('input[type=radio]').parent().removeClass('a-js-radioParentGray'); $('form').find('input[type=radio]:checked').parent() .addClass('a-js-radioParentGray'); } else { $('form').find('button[type=submit]').attr('disabled', 'disabled'); } }; var query; var base = container.html(); container.html(''); loader.hide(); empty.hide(); legend.hide(); if ($('.a-js-lookup').length > 0) { $('form').on('change', check); $.getJSON('../../data/ssb.json', function(data) { function createPath(dest, str) { var _str = str; var _dest = data[dest.parentCode]; if (_dest !== undefined) { if (dest.name === _dest.name) { return createPath(_dest, _str); } if (str.indexOf(_dest.name) !== -1) { return str; } _str = _dest.name + ' / ' + _str; return createPath(_dest, _str); } return str; } $('.a-js-lookup').find('input[type=text]').on('keypress', function() { lastKeypress = new Date().getTime(); iterate = true; loader.show(); legend.hide(); empty.hide(); container.html(''); check(); }); setInterval(function() { if ($('.a-js-lookup').find('input[type=text]').val() !== undefined) { query = $('.a-js-lookup').find('input[type=text]').val().toLowerCase(); } else { query = ''; } now = new Date().getTime(); if (query.length > 0 && (now - lastKeypress > 1500) && iterate) { iterate = false; Object.keys(data).forEach(function(item) { var method; var var1 = ' ' + query + ' '; var var2 = '-' + query + ' '; var var3 = ' ' + query + '-'; var var4 = ' ' + query; var var5 = query + ' '; var var6 = capIt(query); var re1 = new RegExp(var1, 'g'); var re2 = new RegExp(var2, 'g'); var re3 = new RegExp(var3, 'g'); var re4 = new RegExp(var4, 'g'); var re5 = new RegExp(var5, 'g'); var re6 = new RegExp(var6, 'g'); var out1 = ' <strong style="color:inherit">' + query + '</strong> '; var out2 = '-<strong style="color:inherit">' + query + '</strong> '; var out3 = ' <strong style="color:inherit">' + query + '</strong>-'; var out4 = ' <strong style="color:inherit">' + query + '</strong>'; var out5 = '<strong style="color:inherit">' + query + '</strong> '; var out6 = '<strong style="color:inherit">' + capIt(query) + '</strong>'; if ( ( data[item].name.toLowerCase().indexOf(var1) !== -1 || data[item].name.toLowerCase().indexOf(var2) !== -1 || data[item].name.toLowerCase().indexOf(var3) !== -1 || data[item].name.toLowerCase().indexOf(var4) !== -1 || data[item].name.toLowerCase().indexOf(var5) !== -1 || data[item].name.toLowerCase().indexOf(var6) !== -1 || data[item].shortName.toLowerCase().indexOf(var1) !== -1 || data[item].shortName.toLowerCase().indexOf(var2) !== -1 || data[item].shortName.toLowerCase().indexOf(var3) !== -1 || data[item].shortName.toLowerCase().indexOf(var4) !== -1 || data[item].shortName.toLowerCase().indexOf(var5) !== -1 || data[item].shortName.toLowerCase().indexOf(var6) !== -1 || data[item].notes.toLowerCase().indexOf(var1) !== -1 || data[item].notes.toLowerCase().indexOf(var2) !== -1 || data[item].notes.toLowerCase().indexOf(var3) !== -1 || data[item].notes.toLowerCase().indexOf(var4) !== -1 || data[item].notes.toLowerCase().indexOf(var5) !== -1 || data[item].notes.toLowerCase().indexOf(var6) !== -1 ) && data[item].level === 5 ) { if ( data[item].name.toLowerCase().indexOf(var1) !== -1 || data[item].name.toLowerCase().indexOf(var2) !== -1 || data[item].name.toLowerCase().indexOf(var3) !== -1 || data[item].name.toLowerCase().indexOf(var4) !== -1 || data[item].name.toLowerCase().indexOf(var5) !== -1 || data[item].name.toLowerCase().indexOf(var6) !== -1 ) { method = 'prepend'; } else { method = 'append'; } container[method](base .replace('%NAME%', data[item].name .replace(re1, out1) .replace(re2, out2) .replace(re3, out3) .replace(re4, out4) .replace(re5, out5) .replace(re6, out6) ) .replace('%DESCRIPTION%', data[item].notes .replace(re1, out1) .replace(re2, out2) .replace(re3, out3) .replace(re4, out4) .replace(re5, out5) .replace(re6, out6) ) .replace('%ID%', data[item].shortName) .replace('%PATH%', createPath(data[item], '') .replace(re1, out1) .replace(re2, out2) .replace(re3, out3) .replace(re4, out4) .replace(re5, out5) .replace(re6, out6) ) ); } }); loader.hide(); legend.show(); if (container.html() === '') { empty.show(); legend.hide(); } } }, 2000); }); } };