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

(function( $ ) {

     if($('.postal-search-data').val()) {

        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 ));