"use strict";App.Components.WorkingPlanExceptionsModal=function(){function resetModal(){$addBreak.prop("disabled",!1),$date.val(""),$start.val(""),$end.val(""),$breaks.find("tbody").html(renderNoBreaksRow()),$isNonWorkingDay.prop("checked",!1),toggleFieldsByNonWorkingDay(!1)}function renderNoBreaksRow(){return $("\n \n \n ".concat(lang("no_breaks"),"\n \n \n "))}function toggleFieldsByNonWorkingDay(isNonWorkingDay){$start.prop("disabled",isNonWorkingDay).toggleClass("text-decoration-line-through",isNonWorkingDay),$end.prop("disabled",isNonWorkingDay).toggleClass("text-decoration-line-through",isNonWorkingDay),$addBreak.prop("disabled",isNonWorkingDay),$breaks.find("button").prop("disabled",isNonWorkingDay),$breaks.toggleClass("text-decoration-line-through",isNonWorkingDay)}function validate(){$modal.find(".is-invalid").removeClass("is-invalid");var date=App.Utils.UI.getDateTimePickerValue($date);date||$date.addClass("is-invalid");var start=App.Utils.UI.getDateTimePickerValue($start);start||$start.addClass("is-invalid");var end=App.Utils.UI.getDateTimePickerValue($end);return end||$end.addClass("is-invalid"),!$modal.find(".is-invalid").length}function onModalHidden(){resetModal()}function getBreaks(){var breaks=[];return $breaks.find("tbody tr").not(".no-breaks-row").each(function(index,tr){var $tr=$(tr);if($tr.find("input:text").length)return!0;var start=$tr.find(".working-plan-exceptions-break-start").text(),end=$tr.find(".working-plan-exceptions-break-end").text();breaks.push({start:moment(start,"regular"===vars("time_format")?"h:mm a":"HH:mm").format("HH:mm"),end:moment(end,"regular"===vars("time_format")?"h:mm a":"HH:mm").format("HH:mm")})}),breaks.sort(function(break1,break2){return break1.start.localeCompare(break2.start)}),breaks}function onSaveClick(){if(deferred&&validate()){var date=moment(App.Utils.UI.getDateTimePickerValue($date)).format("YYYY-MM-DD"),isNonWorkingDay=$isNonWorkingDay.prop("checked"),workingPlanException=isNonWorkingDay?null:{start:moment(App.Utils.UI.getDateTimePickerValue($start)).format("HH:mm"),end:moment(App.Utils.UI.getDateTimePickerValue($end)).format("HH:mm"),breaks:getBreaks()};deferred.resolve(date,workingPlanException),$modal.modal("hide"),resetModal()}}function editableTimeCell($target){$target.editable(function(value){return value},{event:"edit",height:"30px",submit:$("