_postal_search.js 2.5 KB
import Fuse from 'fuse.js'
// import DataTable from 'datatables.net-dt';

(function( $ ) {


    var list = JSON.parse($('.postal-search-data').val());

    const fuseOptions = {
        // isCaseSensitive: false,
        // includeScore: false,
        // shouldSort: true,
        // includeMatches: false,
        // findAllMatches: false,
         minMatchCharLength: 3,
        // location: 0,
        threshold: 0.0,
        // distance: 100,
        // useExtendedSearch: false,
        // ignoreLocation: false,
        // ignoreFieldNorm: false,
        // fieldNormWeight: 1,
        keys: [
            "GEOKEY"
        ]
    };

    const fuse = new Fuse(list, fuseOptions);

    // var table = new DataTable('.postal-search-results',
    // {
    //     responsive: true,
    //     paging:true,
    //     "lengthMenu":-1,
    //     "oLanguage": {
    //         "sSearch": "Enter Full Postal Code:"
    //     }
    // }
    // );
    
    // $('.search-postal-preferred').on('change', function() {
    //     var preferred = $(this).find('option:selected').val();
    //     $('.postal-search-results tr').removeClass('hidden');
    //     if(preferred == 'YES' || preferred == 'NO') {
    //         $('.postal-search-results tr').each(function() {
    //             if(!$(this).hasClass('header')) {
    //                 var _preferred = $(this).data('preferred');
    //                 if(preferred != _preferred) {
    //                     $(this).addClass('hidden');
    //                 }
    //             }
    //         });
    //     }
    // });

    $('.postal-code-search').on('keyup', function() {

        if($(this).val().length < 3) {
            $('.preferred').val('');
        } else {

            $('.preferred').val('NOT KNOWN');

            var search_val = $(this).val().replace(/ /g,'');

            var results = fuse.search(search_val);
            if(results.length <= 3) {
                console.log("LENGTH == " + results.length);
                for(var i = 0;i < results.length;++i) {

           
                    if(results[i].item['PREFERRED'] == 'YES') {
                        console.log(results[i].item);
                        $('.preferred').val('YES');
                    } else if(results[i].item['PREFERRED'] == 'NO') {
                        $('.preferred').val('NO');
                    } else {
                        $('.preferred').val('NOT AVAILABLE');
                    }
                    
            }
            

        }

        }

    });
 
}( jQuery ));