_postal_search.js 2.16 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: 1,
        // location: 0,
        threshold: 0.2,
        // 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 {

            var results = fuse.search($(this).val());

            for(var i = 0;i < results.length;++i) {

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

        }

    });
 
}( jQuery ));