function ajaxPost(n,t){var i=$.cookie(window.authCookieKeyName);return new Promise(function(r,u){$.ajax({type:"POST",url:n,beforeSend:function(n){n.setRequestHeader("Authorization","Bearer "+i)},data:t||{}}).done(function(n){return r(n)}).fail(function(n){var t=jQuery.parseJSON(n.responseText).Message;return t&&t.length&&typeof t=="string"&&toastr.error(t),u(t)})})}function ajaxGet(n,t){var i=$.cookie(window.authCookieKeyName);return new Promise(function(r,u){$.ajax({type:"GET",url:n,beforeSend:function(n){n.setRequestHeader("Authorization","Bearer "+i)},data:t||{}}).done(function(n){return r(n)}).fail(function(n){var t=jQuery.parseJSON(n.responseText).Message;return t&&t.length&&typeof t=="string"&&toastr.error(t),u(t)})})}function bindColumnEvents(n){n.unbind("columnResize");n.unbind("columnReorder");n.bind("columnResize",handleColumnResize);n.bind("columnReorder",function(t){handleColumnReordered(t,n)});n.dataSource.bind("change",function(t){handleColumnFiltered(t,n)})}function handleClonedProfile(n,t){if(n.clonedProfile){showClonedProfileToast(n.name);var i=$(`.columnProfilesBtn[data-gridcode="${t.gridCode}"]`);i.attr("title",n.name);initialiseTooltip(i);t.unidentifiedColumns&&t.unidentifiedColumns.length&&n.columns&&n.columns.length&&(n.columns=t.unidentifiedColumns.concat(n.columns));processTemplateAndSpecialFormatColumns(n.columns,t.clientSideColumns);t.currentProfile=n;bindGrid(t,n)}}function showClonedProfileToast(n){toastr.info(`Automatically created profile '${n}'.`)}function getGridCode(n){var t=$(n).attr("id");return $(`.columnProfilesBtn[data-target="#${t}"]`).attr("data-gridcode")}function getConsistentValueForCompare(n){return n===undefined||n===null?null:typeof n=="string"&&n==="[]"?null:typeof n=="string"&&n==="{}"?null:n.length?typeof n=="object"&&!Object.keys(n).length?null:n:null}function handleColumnFiltered(n,t){var r=t.getOptions(),i={filters:r.dataSource.filter?JSON.stringify(r.dataSource.filter):null,sort:r.dataSource.sort?JSON.stringify(r.dataSource.sort):null,gridProfileId:t.currentProfile.gridProfileId};i.sort=getConsistentValueForCompare(i.sort);t.currentProfile.sort=getConsistentValueForCompare(t.currentProfile.sort);i.filters=getConsistentValueForCompare(i.filters);t.currentProfile.filters=getConsistentValueForCompare(t.currentProfile.filters);(i.filters!==t.currentProfile.filters||i.sort!==t.currentProfile.sort)&&(t.currentProfile.sort=i.sort,t.currentProfile.filters=i.filters,ajaxPost("/api/columnProfile/updateFilters",i).then(function(n){handleClonedProfile(n,t)}))}function handleColumnReordered(n,t){var i=t.unidentifiedColumns&&t.unidentifiedColumns.length||0,r={column:n.column,newIndex:n.newIndex-i,oldIndex:n.oldIndex-i,forceCloneProfile:!0};if(t.unidentifiedColumns&&t.unidentifiedColumns.length&&n.newIndex<t.unidentifiedColumns.length){console.log("Illegal reorder - attempted move of business column BEFORE unidentified column (e.g. checkbox)");setTimeout(function(){t.reorderColumn(n.oldIndex,t.columns[n.newIndex])},0);return}if(n.column.stickyPosition!==undefined&&typeof n.column.stickyPosition=="number"){console.log("Illegal reorder - attempted move of unidentified column (e.g. checkbox) AFTER a business column");setTimeout(function(){t.reorderColumn(n.oldIndex,t.columns[n.newIndex])},0);return}ajaxPost("/api/columnProfile/reorderColumn",r).then(function(t){console.log("successfully reordred column",r.column);handleClonedProfile(t,n.sender)})}function handleColumnResize(n){if(n&&n.sender&&n.sender.element&&n.column.stickyPosition===undefined){var i=getGridCode(n.sender.element),t={column:n.column,gridCode:i,forceCloneProfile:!0};ajaxPost("/api/columnProfile/updateColumn",t).then(function(i){console.log(`Successfully updated column ${t.column.field}`);handleClonedProfile(i,n.sender)}).catch(function(n){console.log(n)})}}function refreshGrid(n,t){var r=$("#gridProfileTable").data("kendoGrid"),f=$("body").find(`button[data-gridcode='${t}']`).attr("data-target"),e=$(f).data("kendoGrid"),i=e.currentProfile.isColumnProfileAdmin,u=new kendo.data.DataSource({type:"JSON",transport:{read:{url:`/api/columnProfile/getColumns/${n}`,beforeSend:function(n){n.setRequestHeader("Authorization","Bearer "+authCookie)}},update:{dataType:"json",type:"POST",contentType:"application/json",url:function(){return"/api/columnProfile/updateColumn"},beforeSend:function(n){n.setRequestHeader("Authorization","Bearer "+authCookie)},complete:function(i){i.responseJSON&&i.responseJSON.clonedProfile?(refreshGrid(i.responseJSON.gridProfileId,t),r.currentProfile=i.responseJSON,showClonedProfileToast(i.responseJSON.name),$("#gridProfileDropdown").data("kendoDropDownList").dataSource.read()):refreshGrid(n,t)}},parameterMap:function(n,t){return t==="update"&&(n={column:n}),kendo.stringify(n)}},schema:{model:{id:"gridColumnId",fields:{gridColumnId:{editable:!1,nullable:!0},title:{validation:{required:i,minLength:function(n){var t=2;return i?$(".customTitle").val().length<t?(n.attr("data-minlength-msg",`Custom Title requires at least ${t} characters.`),console.log("INVALID",n.val()),!1):!0:!0},maxLength:function(n){var t=60;return i?$(".customTitle").val().length>t?(n.attr("data-maxlength-msg",`The maximum length for Custom Title is ${t} characters.`),!1):!0:!0}}},unformattedWidth:{type:"number",validation:{required:!0}},displayName:{validation:{required:!0}}}}},batch:!1,pageSize:9999});r.setDataSource(u);u.read()}function initGridProfileDropdown(n){return new Promise(function(t,i){$("#gridProfileDropdown").kendoDropDownList({dataTextField:"Name",dataValueField:"GridProfileId",valueTemplate:'<span class="selected-value">#=Name#<\/span>',template:"#=Name#",dataSource:{type:"JSON",serverFiltering:!1,transport:{read:function(r){ajaxGet(`/api/columnProfile/getGridProfiles/${n}`).then(function(i){var u=i.findIndex(n=>n.Selected),f;return r.success(i),$("#gridProfileDropdown").data("kendoDropDownList").select(u),i[u].IsDeleteable?$(".deleteBtn").show():$(".deleteBtn").hide(),i[u].IsEditable?$(".editBtn").show():$(".editBtn").hide(),refreshGrid(i[u].GridProfileId,n),f=i.find(n=>n.GridProfileId===i[u].ParentId),f?($("#clonedFromProfileName").text(f.UnformattedName),$(".clonedFromText").show()):$(".clonedFromText").hide(),$("#gridProfileDropdown").attr("data-gridcode",n),$("#gridProfileDropdown").data("kendoDropDownList").enable(!0),t(n)}).catch(function(n){return r.error(n),i(n)})}}},change:function(){var n=this.value(),t=$("#gridProfileDropdown").data("kendoDropDownList");t.enable(!1);ajaxPost(`/api/columnProfile/selectProfile/${n}`).then(function(){$("#gridProfileDropdown").data("kendoDropDownList").dataSource.read()}).catch(function(n){console.log(n)})}})})}function visibilityDropDownEditor(n,t,i){var u=i.currentProfile.isColumnProfileAdmin,r=[{value:1,displayValue:"Visible"},{value:2,displayValue:"Hidden"}];u&&r.push({value:3,displayValue:"None"});$('<input required name="'+t.field+'"/>').appendTo(n).kendoDropDownList({autoBind:!1,dataTextField:"displayValue",dataValueField:"value",dataSource:new kendo.data.DataSource({data:r})})}function initGrid(n){var t=$("#gridProfileTable").data("kendoGrid"),h=$("body").find(`button[data-gridcode='${n}']`).attr("data-target"),r=$(h).data("kendoGrid"),c=r.currentProfile.isColumnProfileAdmin,i=[],u,f,e,o,s;i.push({command:[{name:"edit",iconClass:"fa fa-pencil columnProfilesPencil",text:{edit:"",cancel:"",update:""}}],width:"50px"});c?(u={field:"originalTitle",title:"Original Title",editor:function(n,t){$(`<div>${t.model.originalTitle}</div>`).appendTo(n)}},f={field:"title",title:"Custom Title",editor:function(n){$('<input data-value-update="input" type="text" class="k-input k-textbox customTitle" name="Custom Title" required="required" data-bind="value:title">').appendTo(n)}},i.push(u),i.push(f)):(e={field:"title",title:"Title",editor:function(n,t){$(`<div>${t.model&&t.model.title}</div>`).appendTo(n)}},i.push(e));o={field:"unformattedWidth",title:"Width",template:"#=width#",editor:function(n){$('<input maxlength="4" id="widthInput" data-type="number" data-value-update="keyup" data-bind="value:width, events: { keypress: onkeypressEvent }"/>').appendTo(n).kendoNumericTextBox({min:30,max:1200,format:"#",decimals:0,spin:function(n){n.sender.trigger("change")}});var t=$("#widthInput").data("kendoNumericTextBox");t.element.on("keyup",function(n){var i=n.target.value;t.value(i);t.trigger("change")})}};s={field:"displayId",title:"Display",width:"180px",editor:function(n,t){visibilityDropDownEditor(n,t,r)},template:"#=displayName#"};i.push(o);i.push(s);t&&(t.destroy(),$("#gridProfileTable").empty());t=$("#gridProfileTable").kendoGrid({autoBind:!0,scrollable:!1,filterable:!1,pageable:!1,editable:{mode:"inline"},save:function(n){console.log(n)},columns:i}).data("kendoGrid");t.table.kendoSortable({filter:">tbody >tr",ignore:"input",autoScroll:!0,hint:function(n){var t=$('<table class="k-grid k-widget"><\/table>');return t.append(n.clone()),t.css("opacity",.8),t},cursor:"move",placeholder:function(){return $('<tr colspan="3" class="placeholder"><\/tr>')},change:function(i){var f=t.dataSource.skip(),h=i.oldIndex+f,e=i.newIndex+f,c=t.dataSource.data(),u=t.dataSource.getByUid(i.item.data("uid")),o,s;t.dataSource.remove(u);t.dataSource.insert(e,u);o={field:u.field,gridColumnId:u.gridColumnId};s={column:o,gridCode:n,newIndex:e,oldIndex:h};ajaxPost("/api/columnProfile/reorderColumn",s).then(function(t){t.clonedProfile&&(refreshGrid(t.gridProfileId,n),r.currentProfile=t,showClonedProfileToast(t.name),$("#gridProfileDropdown").data("kendoDropDownList").dataSource.read())})}})}function initUserGroupMultiSelect(n){var r=$("#columnProfilesModal").attr("data-targetgridid"),u=$(r).data("kendoGrid"),t,i;u.currentProfile.isColumnProfileAdmin&&(t=$(`.userGroupDrowndownWrapper #${n}`).data("kendoMultiSelect"),t&&(t.destroy(),$(`#${n}`).parents(".userGroupDrowndownWrapper").empty().html(`<select id="${n}" multiple></select>`)),i=$("#gridProfileDropdown").data("kendoDropDownList").value(),$(`.userGroupDrowndownWrapper #${n}`).kendoMultiSelect({dataTextField:"UserGroupName",dataValueField:"UserGroupId",dataSource:{type:"JSON",transport:{read:{url:`/api/columnProfile/getRoles/${i}`,beforeSend:function(n){n.setRequestHeader("Authorization","Bearer "+authCookie)},complete:function(t){var i=t.responseJSON.filter(n=>n.Selected).map(n=>n.UserGroupId);$(`#${n}`).data("kendoMultiSelect").value(i)}}}}}))}function showGridScreen(){$("#columnProfilesModalContent").show();$("#addOrEditColumnProfileContent").hide();$("#cloneColumnProfileContent").hide();$("#deleteColumnProfileContent").hide()}function showEditProfileScreen(){initUserGroupMultiSelect("addOrEditProfileUserGroupSelect");$("#columnProfilesModalContent").hide();$("#addOrEditColumnProfileContent").show();$(".gridProfileRoleSelectContainer").show();$(".gridProfileValidationError").text("");$("#addOrEditColumnProfileNameInput").off("keydown");var n=$("#gridProfileDropdown").data("kendoDropDownList").text();n=n.replace("♛","");$("#addOrEditColumnProfileNameInput").val(n).focus()}function showCloneProfileScreen(){initUserGroupMultiSelect("cloneProfileUserGroupSelect");$("#columnProfilesModalContent").hide();$("#cloneColumnProfileContent").show();$(".gridProfileRoleSelectContainer").show();$(".gridProfileValidationError").text("");$("#cloneColumnProfileNameInput").off("keydown");var n=getClonedProfileName();$("#cloneColumnProfileNameInput").val(n).focus()}function getClonedProfileName(){var n=$("#gridProfileDropdown").data("kendoDropDownList").text();return(n||(n=""),n=n.replace("♛",""),n&&n.indexOf("_CLONED")>-1)?n:n+"_CLONED"}function showDeleteProfileScreen(){$("#columnProfilesModalContent").hide();$("#deleteColumnProfileContent").show();var n=$("#gridProfileDropdown").data("kendoDropDownList").text();$("#deleteProfileName").text(n)}function initialiseTooltip(n,t,i){var r,u,f;if(destroyTooltips(n,t),r=n,t&&(r=n.find(t)),u={autoHide:!0,position:"top"},i)for(f in i)u[f]=i[f];return r.kendoTooltip(u).data("kendoTooltip")}function getColumnsWithoutProfile(n,t,i){return i.autoBind=!0,t&&t.length&&(n=t.concat(n)),i.setOptions({columns:n}),i.dataSource.read(),{columns:n}}function initColumnProfile(n,t,i){var r,e,l,u,h,a;if(!n)throw"initColumnProfile - 'kendoGridId' is a required prop";if(!t)throw"initColumnProfile - 'columns' is a required prop.";if(!i)throw"initColumnProfile - 'kendoFunc' is a required prop.";if(typeof i!="function")throw"initColumnProfile - 'kendoFunc' must be a function.";i();var o=$(n).attr("id"),s=$(`.columnProfilesBtn[data-target="#${o}"]`).attr("data-gridcode"),c=[...t],f=[];for(r=0;r<t.length;r++)if(t[r].field&&!t[r].title&&(console.log(`Title could not be derived for ${t[r].field}. Setting title to field value. Full column data: ${JSON.stringify(t[r].field)}`),t[r].title=t[r].field),!t[r].field||!t[r].title||t[r].persisted){if(t[r].stickyPosition=r,r>0&&t[r-1].field&&(!t[r].field||!t[r].hidden&&t[r].menu&&!t[r].title))throw`Column error at index ${r} (${JSON.stringify(t[r])}) - Unidentified columns (e.g. empty titles, checkboxes, etc) can only be shown at the start. Remove this column or shift it to the beginning.`;f.push(t[r])}t=t.filter(n=>n.field&&n.title&&n.title!=="&nbsp;");e={};for(let n=0;n<t.length;n++)e[t[n].field]||(e[t[n].field]=t[n]);if(t=Object.keys(e).map(function(n){return e[n]}),l={gridCode:s,columns:t},u=$(n).data("kendoGrid"),u||console.log(`Could not find a kendo grid with id ${n}`),h=$("#tempDisableGridColumnProfiles").val(),a=h==="1"||h==="true",a)return getColumnsWithoutProfile(t,f,u);ajaxPost("/api/columnProfile/initColumnProfile",l).then(function(n){var r,i;if(u){if(n.columns&&n.columns.length&&f&&f.length&&(n.columns=f.concat(n.columns)),processTemplateAndSpecialFormatColumns(n.columns,c),n.baseProfileRequired)return toastr.warning(`Base profile does not exist for grid with Code: ${s}. Please request an Admin to set up an initial profile for this grid targeting your user group.`),getColumnsWithoutProfile(t,f,u);if(u.options.autoBind)throw"initColumnProfile - autoBind must be set to false. Please update your configuration.";if(u.columns&&u.columns.length)throw"initColumnProfile - Don't manually set 'columns' property on grid. Let column profiles do this for you";r=$(`.columnProfilesBtn[data-target="#${o}"]`);r.closest($(".profileHidden")).removeClass("profileHidden");i=$(`.columnProfilesBtn[data-target="#${o}"]`);i.attr("title",n.name);initialiseTooltip(i);u.gridCode=s;u.currentProfile=n;u.unidentifiedColumns=f;u.clientSideColumns=c;bindGrid(u,n);u.bind()}}).catch(function(n){return console.log(n),getColumnsWithoutProfile(t,f,u)})}var processTemplateAndSpecialFormatColumns,bindGrid,initialiseCommonConfirmationWindow;$(function(){function t(n){var t=60,i=3;return n.length?n.length>t?`Profile Name can't be longer than ${t} characters.`:n.length<i?`Profile Name must be at least ${i} characters.`:null:"Profile Name is a required field."}function n(){var r=!0,u,i;$(".addOrEditColumnProfileNameValidationMessage").text("");u=$("#addOrEditColumnProfileNameInput").val();i=t(u);i&&($(".addOrEditColumnProfileNameValidationMessage").text(i),r=!1);$("#addOrEditColumnProfileNameInput").off("keydown").on("keydown",function(){n()});return r}function i(){var r=!0,u,i;$(".cloneColumnProfileNameValidationMessage").text("");u=$("#cloneColumnProfileNameInput").val();i=t(u);i&&($(".cloneColumnProfileNameValidationMessage").text(i),r=!1);$("#cloneColumnProfileNameInput").off("keydown").on("keydown",function(){n()});return r}$(".columnProfilesBtn").on("click",n=>{var i=$(n.currentTarget).attr("data-gridcode"),t=$(n.currentTarget).attr("data-target"),r;if(!i)throw"data-gridcode is a required attribute on element with class name .columnProfilesBtn";if(r=$(n.currentTarget).attr("data-modaltitle"),!r)throw"data-modaltitle is a required attribute on element with class name .columnProfilesBtn";if($("#gridProfileTitle").text(r),!t)throw"data-target is a required attribute on element with class name .columnProfilesBtn";$("#columnProfilesModal").attr("data-targetgridid",t);$(".backBtn").click();$("#columnProfilesModal").on("hidden.bs.modal",function(){var r,i;$(this).off("hidden.bs.modal");r=$("#gridProfileDropdown").data("kendoDropDownList").value();$(t).loader();i=$(t).data("kendoGrid");ajaxGet(`/api/columnProfile/getGridProfile/${r}`).then(function(t){var r=$(n.currentTarget);r.attr("title",t.name);initialiseTooltip(r);i.unidentifiedColumns&&i.unidentifiedColumns.length&&t.columns&&t.columns.length&&(t.columns=i.unidentifiedColumns.concat(t.columns));processTemplateAndSpecialFormatColumns(t.columns,i.clientSideColumns);bindGrid(i,t)}).finally(function(){$.loader.close()})});$("#columnProfilesModal").modal({backdrop:"static",keyboard:!1});initGrid(i);initGridProfileDropdown(i)});$("#addOrEditProfileBtn").on("click",function(){var i=$("#gridProfileDropdown").data("kendoDropDownList"),t=$("#addOrEditProfileUserGroupSelect").data("kendoMultiSelect"),r={profileName:$("#addOrEditColumnProfileNameInput").val(),gridProfileId:i.value(),userGroupIds:t&&t.value()};n()&&($(".columnProfileLoader").show(),ajaxPost("/api/columnProfile/updateProfile",r).then(function(n){if(n.inError&&n.code==="PROFILE_NAME"){$(".addOrEditColumnProfileNameValidationMessage").text(n.message);return}var t=$("#gridProfileDropdown").attr("data-gridcode");initGridProfileDropdown(t).then(function(){showGridScreen()}).catch(function(n){console.log(n)})}).finally(function(){$(".columnProfileLoader").hide()}))});$("#cloneProfileBtn").on("click",function(){var t=$("#gridProfileDropdown").data("kendoDropDownList"),n=$("#cloneProfileUserGroupSelect").data("kendoMultiSelect"),r={profileName:$("#cloneColumnProfileNameInput").val(),gridProfileId:t.value(),userGroupIds:n&&n.value()};i()&&($(".columnProfileLoader").show(),ajaxPost("/api/columnProfile/cloneProfile",r).then(function(n){if(n.inError&&n.code==="PROFILE_NAME"){$(".cloneColumnProfileNameValidationMessage").text(n.message);return}var t=$("#gridProfileDropdown").attr("data-gridcode");initGridProfileDropdown(t).then(function(){showGridScreen()}).catch(function(n){console.log(n)})}).finally(function(){$(".columnProfileLoader").hide()}))});$("#deleteProfileBtn").on("click",function(){$(".columnProfileLoader").show();var n=$("#gridProfileDropdown").attr("data-gridcode"),t=$("#gridProfileDropdown").data("kendoDropDownList").value(),i={gridCode:n,gridProfileId:t};ajaxPost("/api/columnProfile/deleteGridProfile",i).then(function(){initGridProfileDropdown(n).then(function(){showGridScreen();$("#gridProfileDropdown").data("kendoDropDownList").dataSource.read()}).catch(function(n){console.log(n)})}).finally(function(){$(".columnProfileLoader").hide()})});$(".cloneBtn").on("click",function(){showCloneProfileScreen()});$(".editBtn").on("click",function(){showEditProfileScreen()});$(".backBtn").on("click",function(){showGridScreen()});$(".deleteBtn").on("click",function(){showDeleteProfileScreen()});$(".exitBtn").on("click",function(){$("#columnProfilesModal").modal("toggle")})});destroyTooltips=function(n,t){var i=n;t&&(i=n.find(t));i.each(function(){var n=$(this).data("kendoTooltip");n&&n.destroy()})};processTemplateAndSpecialFormatColumns=function(n,t){var u,r,i;if(n.length&&t.length)for(u=0;u<n.length;u++)r=n[u],i=t.find(n=>n.field===r.field),i&&(i.template&&!r.template&&(r.template=i.template),i.groupHeaderTemplate&&!r.groupHeaderTemplate&&(r.groupHeaderTemplate=i.groupHeaderTemplate),i.attributes&&!r.attributes&&(r.attributes=i.attributes),i.format&&!r.format&&(r.format=i.format),i.filterable&&(r.filterable=i.filterable))};bindGrid=function(n,t){n.currentProfile=t;n.setOptions({columns:t.columns});var i=t.filters&&JSON.parse(t.filters)||{},r=t.sort&&JSON.parse(t.sort)||{};n.dataSource.query({sort:r,filter:i,page:n.dataSource.page(),pageSize:n.dataSource.pageSize(),group:n.dataSource.group()});bindColumnEvents(n)};initialiseCommonConfirmationWindow=function(n){n.confirmationWindow={open:function(){$("#commonConfirmationModal").modal({backdrop:"static",keyboard:!0,center:!0})},close:function(){$("#commonConfirmationModal").modal("hide")},viewModel:kendo.observable({title:"",contentText:"",submitText:"Yes",cancelText:"No",submitVisible:!0,cancelVisible:!0,submit:function(){},cancel:function(){tripManifestViewModel.confirmationWindow.close()}}),setTitle:function(n){this.viewModel.set("title",n)},setContent:function(n){this.viewModel.set("contentText",n)},setOnSubmit:function(n){this.viewModel.set("submit",n)},setOnCancel:function(n){this.viewModel.set("cancel",n)},setSubmitVisible:function(n){this.viewModel.set("submitVisible",n)},setCancelVisible:function(n){this.viewModel.set("cancelVisible",n)},setSubmitText:function(n){this.viewModel.set("submitText",n)},setCancelText:function(n){this.viewModel.set("cancelText",n)},setHeaderText:function(n){this.viewModel.set("headerText",n)}};kendo.bind($("#commonConfirmationForm"),n.confirmationWindow.viewModel);n.confirmationWindow.setTitle("");n.confirmationWindow.setContent("");n.confirmationWindow.setSubmitVisible(!0);n.confirmationWindow.setCancelVisible(!0);n.confirmationWindow.setSubmitText("Yes");n.confirmationWindow.setCancelText("No");n.confirmationWindow.setOnSubmit(function(){});n.confirmationWindow.setOnCancel(function(){n.confirmationWindow.close()})}