JSFiddle - React, Tailwind, and code Playground

by jimyu

JavaScript

/******************Data converter*********************/
function getQueryParams(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null) return "";
    else return results[1];
}

Date.compare=function(d1, d2){
    var date1=moment(d1,"DD/MM/YYYY");
    var date2=moment(d2,"DD/MM/YYYY");
    return date2>date1;
}



/*********************Datepicker**********************/
ko.bindingHandlers.date = {
    update: function (element, valueAccessor, allBindingsAccessor) {
        var value = valueAccessor(), allBindings = allBindingsAccessor();
        var valueUnwrapped = ko.utils.unwrapObservable(value);

        var d = "";
        if (valueUnwrapped) {
            var m = /Date\([\d+-]+\)/gi.exec(valueUnwrapped);
            if (m) {
                var date = eval("new " + m[0]);
                //Only handles not null date
                if (date > new Date(0)) {
                    var day = date.getDate() > 9 ? date.getDate() : "0" + date.getDate();
                    var month = date.getMonth() + 1 > 9 ? date.getMonth() + 1 : "0" + (date.getMonth() + 1);
                    d = day + '/' + month + '/' + date.getFullYear();
                }
            }
        }
        $(element).text(d);
    }
}; 

ko.bindingHandlers.datepicker = {
    init: function (element, valueAccessor, allBindingsAccessor) {
        $(element).datepicker({
            dateFormat: "dd/mm/yy",
            changeYear: true,
            changeMonth: true
        });

        //handle the field changing
        ko.utils.registerEventHandler(element, "change", function () {
            var observable = valueAccessor();
            observable($(element).datepicker("getDate"));
        });

        //handle disposal (if KO removes by the template binding)
        ko.utils.domNodeDisposal.addDisposeCallback(element,...