var KretaDateTimeHelper = (function () { var kretaDateTimeHelper = function () {}; kretaDateTimeHelper.getKendoDatePickerData = function (datePickerId) { var datePicker = $('#' + datePickerId); var datePickerData = datePicker.data('kendoDatePicker'); return datePickerData; }; kretaDateTimeHelper.compare = function (lhsDate, rhsDate) { var lhs = kendo.parseDate(lhsDate).getTime(); var rhs = kendo.parseDate(rhsDate).getTime(); return lhs < rhs ? -1 : lhs === rhs ? 0 : 1; }; kretaDateTimeHelper.validateDate = function (e) { var id = e.attr('id'); var val = e.val().replace(/\s/g, ''); var parsedDate = kendo.parseDate(val); if (parsedDate == null) { const kendoDatePicker = $('#' + id).data('kendoDatePicker'); if (typeof kendoDatePicker !== 'undefined') { kendoDatePicker.value(''); return; } const kendoTimePicker = $('#' + id).data('kendoTimePicker'); if (typeof kendoTimePicker !== 'undefined') { kendoTimePicker.value(''); return; } } }; kretaDateTimeHelper.validateDateTime = function (e) { var id = e.attr('id'); var val = e.val().replace(/\s/g, ''); var parsedDate = kendo.parseDate(val); if (parsedDate == null) { $('#' + id) .data('kendoDateTimePicker') .value(''); } }; kretaDateTimeHelper.validateTime = function (e) { var id = e.attr('id'); var value = e.val().replace(/\s/g, ''); var parsedDate = kendo.parseDate(value); if (parsedDate == null) { $('#' + id) .data('kendoTimePicker') .value(e.attr('value')); } }; kretaDateTimeHelper.getDate = function (datePickerId) { return kretaDateTimeHelper.getKendoDatePickerData(datePickerId).value(); }; kretaDateTimeHelper.setDate = function (datePickerId, value) { var parsedDate = kendo.parseDate(value); kretaDateTimeHelper.getKendoDatePickerData(datePickerId).value(parsedDate); }; kretaDateTimeHelper.setToday = function (datePickerId) { var newDate = new Date(); kretaDateTimeHelper.setDate(datePickerId, newDate); }; kretaDateTimeHelper.clear = function (datePickerId) { kretaDateTimeHelper.getKendoDatePickerData(datePickerId).value(null); }; kretaDateTimeHelper.SetMaskedTimepicker = function () { $("input[data-role='maskedtimepicker']").kendoMaskedTextBox({ mask: '12:34', rules: { 1: /[0-2]/, 2: /[0-9]/, 3: /[0-5]/, 4: /[0-9]/ } }); var timePicker = $("input[data-role='maskedtimepicker']"); timePicker.on('focusout mouseleave', function () { kretaDateTimeHelper.validateTime($(this)); }); $("input[data-role='maskedtimepicker']").each(function () { kretaDateTimeHelper.validateTime($(this)); }); }; kretaDateTimeHelper.SetTimepicker = function () { $("input[data-role='timepicker']").kendoMaskedTextBox({ mask: '12:34', rules: { 1: /[0-2]/, 2: /[0-9]/, 3: /[0-5]/, 4: /[0-9]/ } }); var timePicker = $("input[data-role='timepicker']"); timePicker.on('focusout mouseleave', function () { kretaDateTimeHelper.validateTime($(this)); }); $("input[data-role='timepicker']").each(function () { kretaDateTimeHelper.validateTime($(this)); }); }; kretaDateTimeHelper.SetMaskedTimepickerById = function (id) { $('#' + id).kendoMaskedTimePicker(); var el = document.getElementById(id); if (el) { el.style.width = null; } $('#' + id).kendoMaskedTextBox({ mask: '12:34', rules: { 1: /[0-2]/, 2: /[0-9]/, 3: /[0-5]/, 4: /[0-9]/ } }); $('#' + id).on('focusout mouseleave', function () { kretaDateTimeHelper.validateTime($(this)); }); $('#' + id).each(function () { kretaDateTimeHelper.validateTime($(this)); }); }; return kretaDateTimeHelper; })();