{"version":3,"sources":["../../Scripts/application/application.grids.js","../../Scripts/application/application.init.js","../../Scripts/application/application.modals.js","../../Scripts/application/application.tabs.js","../../Scripts/application/application.visibility.js"],"names":["initGrids","$container","$","each","Grid","this","initialize","[object Object]","$grid","$content","find","contentUrl","data","initializeFilter","length","refresh","initializeContent","self","$filter","$filterForm","$filterSearchButton","$filterResetButton","$filterApplyButton","$advancedFilters","$advancedFiltersToggle","$filterPageNumber","filterPageNumberInitial","val","$filterDefaultPageSize","filterDefaultPageSize","$filterPageSize","on","e","originalEvent","submitter","preventDefault","showHtml","html","hasClass","collapse","filter","trigger","attr","prop","change","loadingTimeout","setTimeout","serialize","ajax","type","url","success","response","clearTimeout","initComponents","error","jqXHR","textStatus","errorThrown","Snackbar","show","text","initUIDefaults","fn","select2","defaults","set","Infinity","datetimepicker","Constructor","Default","extend","buttons","showToday","showClear","showClose","icons","time","date","up","down","previous","next","today","clear","close","toolbarPlacement","useCurrent","initUIComponent","initCustomControlSelect","initCustomControlCompanyPicker","initCustomControlTextarea","initCustomControlDatetime","initPopover","initVisibiliity","initModals","initTabs","selector","callback","$elements","index","element","$element","hasDisableNoResultsMessage","hasNoResultsMessage","hasNoResults","undefined","dropdownParent","language","noResults","evt","off","valid","id","ihsOwCode","dataType","delay","params","genericSearch","term","pageNumber","page","PageSize","processResults","results","items","map","item","name","pagination","more","metaData","isLastPage","cache","placeholder","templateResult","formatCompany","templateSelection","minimumInputLength","company","loading","autosize","format","popover","container","Modal","PR","prettyPrint","$toggle","$dialog","modalSize","dialogSize","onClick","$form","form","xhr","XMLHttpRequest","open","method","action","onreadystatechange","readyState","status","ajaxRedirect","getResponseHeader","ajaxRefreshTab","window","location","replace","tab","tabs","modal","responseText","send","FormData","removeClass","addClass","Tab","$tab","$tabToggle","tabUrl","lazyLoad","contentInitiallyLoaded","visibleIfId","$otherElement","updateVisibility","value","hide"],"mappings":"AAAA,SAASA,UAASC,GACdC,EAAA,kBAAqBD,GAAYE,KAAK,WACvB,IAAIC,KAAIF,EAAGG,OACjBC,qBAIPF,KAEFG,YAAWC,GACPH,KAAIG,MAASA,EAGjBD,aACIF,KAAII,SAAYJ,KAAIG,MAAOE,KAAI,iBAC/BL,KAAKM,WAAaN,KAAII,SAAUG,KAAI,oBAEpCP,KAAKQ,mBAEsC,IAAvCR,KAAII,SAAUC,KAAI,SAAUI,OAC5BT,KAAKU,UAELV,KAAKW,oBAIbT,mBACI,IAAIU,EAAOZ,KAEXA,KAAIa,QAAWb,KAAIG,MAAOE,KAAI,gBAC9BO,EAAIE,YAAeF,EAAIC,QAASR,KAAI,qBACpCO,EAAIG,oBAAuBH,EAAIC,QAASR,KAAI,8BAC5CO,EAAII,mBAAsBJ,EAAIC,QAASR,KAAI,6BAC3CO,EAAIK,mBAAsBL,EAAIC,QAASR,KAAI,6BAC3CO,EAAIM,iBAAoBN,EAAIC,QAASR,KAAI,0BACzCO,EAAIO,uBAA0BP,EAAIC,QAASR,KAAI,iCAC/CO,EAAIQ,kBAAqBR,EAAIC,QAASR,KAAI,eAC1CO,EAAKS,wBAA0BT,EAAIQ,kBAAmBE,MACtDV,EAAIW,uBAA0BX,EAAIC,QAASR,KAAI,oBAC/CO,EAAKY,sBAAwBZ,EAAIW,uBAAwBD,MACzDV,EAAIa,gBAAmBb,EAAIC,QAASR,KAAI,aAIxCO,EAAIE,YACCY,GAAE,SAAW,SAAUC,GAChBA,EAAEC,cAAcC,YAAcjB,EAAIG,oBAAqB,IACpDY,EAAEC,cAAcC,YAAcjB,EAAIK,mBAAoB,KAEzDU,EAAEG,iBACFlB,EAAIQ,kBAAmBE,IAAI,GAC3BV,EAAKF,aAIjB,IAAIqB,EAAW,+DAGfnB,EAAIO,uBAAwBa,KAAKD,GACjCnB,EAAIO,uBACCO,GAAE,QAAU,WACLd,EAAIM,iBAAkBe,SAAQ,iBAC9BrB,EAAIO,uBAAwBa,KAAKD,GAEjCnB,EAAIO,uBAAwBa,KARzB,8DAWPpB,EAAIM,iBAAkBgB,SAAQ,YAGtCtB,EAAII,mBACCU,GAAE,QAAU,WACTd,EAAIC,QAASR,KAAI,sBAAuBiB,IAAG,IAC3CV,EAAIC,QAASR,KAAI,wBAAyBiB,IAAG,IAC7CV,EAAIC,QAASR,KAAI,0BAA2BiB,IAAG,IAC/CV,EAAIC,QAASR,KAAI,2BAA4B8B,OAAM,6BAA8Bb,QAAQc,QAAO,UAChGxB,EAAIC,QAASR,KAAI,2BAA4B8B,OAAM,uBAAwBrC,KAAK,WAC5E,IAAIuC,EAAOxC,EAAEG,MAAMqC,KAAI,kCACH,IAATA,IAAsC,IAATA,EACpCxC,EAAEG,MAAMsB,IAAIe,GAAMD,QAAO,UAEzBvC,EAAEG,MAAMsC,KAAI,gBAAkB,GAAGC,WAIzC3B,EAAIQ,kBAAmBE,IAAIV,EAAKS,yBAChCT,EAAIa,gBAAiBH,IAAIV,EAAKY,uBAAuBe,SAErD3B,EAAKF,YAIjBR,oBACI,IAAIU,EAAOZ,KAEXY,EAAIR,SACCC,KAAI,gDACJqB,GAAE,QAAU,SAAUC,GACnBA,EAAEG,iBAEFlB,EAAIQ,kBAAmBE,IAAGzB,EAAGG,MAAMqC,KAAI,SACvCzB,EAAKF,YAIjBR,UACI,IAAIU,EAAOZ,KAIPwC,EAAiBC,WAAW,WAC5B7B,EAAIR,SAAU4B,KAJD,0HAKyB,IAAvChC,KAAII,SAAUC,KAAI,SAAUI,OAAe,EAAI,KAE9CF,EAAOK,EAAIE,YAAa4B,YAE5B7C,EAAE8C,MACEC,KAAM,OACNC,IAAKjC,EAAKN,WACVC,KAAMA,EACNuC,QAAS,SAAUC,GACfC,aAAaR,GACb5B,EAAIR,SAAU4B,KAAKe,GAEnBnC,EAAKD,oBACLsC,eAAerC,EAAIR,WAEvB8C,MAAO,SAAUC,EAAOC,EAAYC,GAChCL,aAAaR,GACb5B,EAAIR,SAAU4B,KArBP,sHAuBPsB,SAASC,MAAOC,KAAM,2BC7HtC,SAASC,iBAEL5D,EAAE6D,GAAGC,QAAQC,SAASC,IAAG,QAAU,aACnChE,EAAE6D,GAAGC,QAAQC,SAASC,IAAG,QAAU,QACnChE,EAAE6D,GAAGC,QAAQC,SAASC,IAAG,0BAA4BC,EAAAA,GAGrDjE,EAAE6D,GAAGK,eAAeC,YAAYC,QAAUpE,EAAEqE,UAAWrE,EAAE6D,GAAGK,eAAeC,YAAYC,SACnFE,SACIC,WAAW,EACXC,WAAW,EACXC,WAAW,GAEfC,OACIC,KAAM,eACNC,KAAM,kBACNC,GAAI,iBACJC,KAAM,mBACNC,SAAU,qBACVC,KAAM,sBACNC,MAAO,wBACPC,MAAO,mBACPC,MAAO,eAEXC,iBAAkB,MAClBC,YAAY,IAIpB,SAASjC,eAAcrD,GACnBuF,gBAAe,yBAA2BvF,EAAYwF,yBACtDD,gBAAe,iCAAmCvF,EAAYyF,gCAC9DF,gBAAe,2BAA6BvF,EAAY0F,2BACxDH,gBAAe,2BAA6BvF,EAAY2F,2BACxDJ,gBAAe,0BAA4BvF,EAAY4F,aACvDC,gBAAe7F,GACfD,UAASC,GACT8F,WAAU9F,GACV+F,SAAQ/F,GAGZ,SAASuF,gBAAgBS,EAAUhG,EAAYiG,GAC3C,IAAIC,EAAYjG,EAAE+F,EAAUhG,GAEzBkG,EAAWrF,OAAS,GACnBqF,EAAUhG,KAAK,SAAUiG,EAAOC,GAC5BH,EAAQhG,EAAGmG,GAAUpG,KAKjC,SAASwF,wBAAuBa,EAAWrG,GACvC,IAAIsG,EAA6BD,EAAS1F,KAAI,8BAC1C4F,EAAsBF,EAAS1F,KAAI,sBACnC6F,EAAeF,GAA8BC,EAC3C,WAAc,OAAOA,GAAuB,SAC5CE,EAENJ,EAAStC,SACL2C,eAAgB1G,EAChB2G,UACIC,UAAWJ,KAInBH,EAASvE,GAAE,gBAAkB,SAAU+E,GACnC5G,EAAEG,MAAM0B,GAAE,6BAA+B,SAAU+E,GAC/CA,EAAI3E,iBAEJjC,EAAEG,MAAM0G,IAAG,kCAInBT,EAASvE,GAAE,gBAAkB,SAAUC,GACnC9B,EAAEG,MAAM2G,UAIhB,SAAStB,+BAA8BY,EAAWrG,GAC9C,IAAIW,EAAO,KAEPqG,EAAKX,EAAS5D,KAAI,cACtB,GAAIuE,EAEIrG,IACAqG,GAAIA,EACJpD,KAAMyC,EAAS5D,KAAI,gBACnBwE,UAAWZ,EAAS5D,KAAI,yBAIhC4D,EAAStC,SACLpD,KAAMA,EACNoC,MACIE,IAAK,iCACLiE,SAAU,OACVC,MAAO,IACPxG,KAAM,SAAUyG,GACZ,OACIC,cAAeD,EAAOE,KACtBC,WAAYH,EAAOI,KACnBC,SAAU,KAGlBC,eAAgB,SAAU/G,EAAMyG,GAG5B,OAFAA,EAAOI,KAAOJ,EAAOI,MAAQ,GAIzBG,QAAShH,EAAKiH,MAAMC,IAAI,SAAUC,GAC9B,OACId,GAAIc,EAAKd,GACTpD,KAAMkE,EAAKC,KACXd,UAAWa,EAAKb,aAGxBe,YACIC,MAAOtH,EAAKuH,SAASC,cAIjCC,OAAO,GAEXC,YAAa,mBACbC,eAAgBC,cAChBC,kBAAmBD,cACnBE,mBAAoB,IAGxBpC,EAASvE,GAAE,gBAAkB,SAAU+E,GACnC5G,EAAEG,MAAM0B,GAAE,6BAA+B,SAAU+E,GAC/CA,EAAI3E,iBAEJjC,EAAEG,MAAM0G,IAAG,kCAInBT,EAASvE,GAAE,gBAAkB,SAAUC,GACnC9B,EAAEG,MAAM2G,UAIhB,SAASwB,cAAcG,GACnB,OAAIA,EAAQC,UAAYD,EAAQ1B,GACrB0B,EAAQ9E,KAGZ8E,EAAQ9E,KAAO,MAAQ8E,EAAQzB,UAG1C,SAASvB,0BAAyBW,EAAWrG,GACzC4I,SAAQvC,GAGZ,SAASV,0BAAyBU,EAAWrG,GACzCqG,EAASlC,gBACL0E,OAAQxC,EAAS1F,KAAI,2BAI7B,SAASiF,YAAWS,EAAWrG,GAC3BqG,EAASyC,SACLC,UAAW,OACXtE,WAAW,ICzKnB,SAASqB,WAAU9F,GACfC,EAAA,mBAAsBD,GAAYE,KAAK,WACvB,IAAI8I,MAAK/I,EAAGG,OAClBC,eDHdJ,EAAE,WACE4D,iBACAR,iBACA4F,GAAGC,sBCIDF,MAEF1I,YAAW6I,GACP/I,KAAI+I,QAAWA,EACf/I,KAAIJ,WAAcC,EAAA,oBAClBG,KAAII,SAAYP,EAAA,kBAChBG,KAAKM,WAAayI,EAAQxI,KAAI,aAC9BP,KAAIgJ,QAAWnJ,EAAA,iBAEf,IAAIoJ,EAAYF,EAAQxI,KAAI,cAC5BP,KAAKkJ,WAAaD,EACZ,SAAWA,EACX,GAGV/I,aACI,IAAIU,EAAOZ,KAEXA,KAAI+I,QACCrC,IAAG,SACHhF,GAAE,QAAU,SAAUC,GAAKf,EAAKuI,QAAQxH,KAGjDzB,oBACI,IAAIU,EAAOZ,KACXiD,eAAerC,EAAIR,UAEnBQ,EAAIwI,MAASxI,EAAIR,SAAUC,KAAI,QAE/BO,EAAIR,SACCC,KAAI,uBACJqB,GAAE,QAAU,WACT,IAAI2H,EAAOzI,EAAIwI,MAAO,GAClBE,EAAM,IAAIC,eACdD,EAAIE,KAAKH,EAAKI,OAAQJ,EAAKK,QAC3BJ,EAAIK,mBAAqB,WACrB,GAAuB,IAAnBL,EAAIM,YAAmC,MAAfN,EAAIO,OAAgB,CAC5C,IAAIC,EAAeR,EAAIS,kBAAiB,iBACpCC,EAAiBV,EAAIS,kBAAiB,oBAE1C,GAAqB,OAAjBD,EACAG,OAAOC,SAASC,QAAQL,QACrB,GAAuB,OAAnBE,EAAyB,CAChC,IAAII,EAAMC,KAAKL,GACXI,IACAA,EAAI1J,UACJE,EAAIhB,WAAY0K,MAAK,cAGzB1J,EAAIR,SAAU4B,KAAKsH,EAAIiB,cACvB3J,EAAKD,sBAIjB2I,EAAIkB,KAAK,IAAIC,SAASpB,MAIlCnJ,UACI,IAAIU,EAAOZ,KAIXY,EAAIoI,QAAS0B,cACb9J,EAAIoI,QAAS2B,SAAQ,gBAAmB/J,EAAKsI,YAE7CtI,EAAIR,SAAU4B,KANG,yHAOjBpB,EAAIhB,WAAY0K,MAAK,QAErBzK,EAAE8C,MACEC,KAAM,MACNC,IAAKjC,EAAKN,WACVwC,QAAS,SAAUC,GACfnC,EAAIR,SAAU4B,KAAKe,GACnBnC,EAAKD,qBAETuC,MAAO,SAAUC,EAAOC,EAAYC,GAChCzC,EAAIR,SAAU4B,KAhBP,sHAkBPsB,SAASC,MAAOC,KAAM,4BCpFtC,SAASmC,SAAQ/F,GACbC,EAAA,YAAeD,GAAYE,KAAK,WAC5B,IAAIsK,EAAM,IAAIQ,IAAG/K,EAAGG,OACpBoK,EAAInK,aACJoK,KAAKD,EAAIxD,IAAMwD,IANvBC,cAUMO,IAEF1K,YAAW2K,GACP7K,KAAI6K,KAAQA,EAGhB3K,aACI,IAAIU,EAAOZ,KAEXY,EAAKgG,GAAKhG,EAAIiK,KAAMxI,KAAI,MACxBzB,EAAIkK,WAAcjL,EAAA,8BAAkCe,EAAKgG,GAAK,MAC9DhG,EAAKmK,OAASnK,EAAIiK,KAAMtK,KAAI,WAC5BK,EAAKoK,SAAWpK,EAAIiK,KAAMtK,KAAI,iBAC9BK,EAAKqK,wBAAyB,EAE1BrK,EAAKmK,OACDnK,EAAIiK,KAAM5I,SAAQ,YAAerB,EAAKoK,SACtCpK,EAAKF,UAGLE,EAAIkK,WAAYpJ,GAAE,eAAiB,SAAUC,GACpCf,EAAKqK,wBACNrK,EAAKF,YAMjBE,EAAKqK,wBAAyB,EAItC/K,UACI,IAAIU,EAAOZ,KACXY,EAAKqK,wBAAyB,EAK9BrK,EAAIiK,KAAM7I,KAHO,yHAKjBnC,EAAE8C,MACEC,KAAM,MACNC,IAAKjC,EAAKmK,OACVjI,QAAS,SAAUC,GACfnC,EAAIiK,KAAM7I,KAAKe,GAEfE,eAAerC,EAAIiK,OAEvB3H,MAAO,SAAUC,EAAOC,EAAYC,GAChCzC,EAAIiK,KAAM7I,KAbH,sHAePsB,SAASC,MAAOC,KAAM,0BC9DtC,SAASiC,gBAAe7F,GACpBC,EAAA,uBAA0BD,GAAYE,KAAK,WACvC,IAAImG,EAAWpG,EAAEG,MACbkL,EAAcjF,EAAS1F,KAAI,iBAC3B4K,EAAgBtL,EAAA,IAAQqL,GAE5BE,iBAAgBnF,EAAWkF,EAAc7J,OAEzC6J,EAAc5I,OAAO,WACjB6I,iBAAgBnF,EAAWkF,EAAc7J,WAKrD,SAAS8J,iBAAgBnF,EAAWoF,GAE5BA,IADiBpF,EAAS1F,KAAI,oBAE9B0F,EAAS1C,OAET0C,EAASqF","file":"application.min.js","sourcesContent":["function initGrids($container) {\r\n $('.grid-container', $container).each(function () {\r\n var grid = new Grid($(this));\r\n grid.initialize();\r\n });\r\n};\r\n\r\nclass Grid {\r\n\r\n constructor($grid) {\r\n this.$grid = $grid;\r\n }\r\n\r\n initialize() {\r\n this.$content = this.$grid.find('.grid-content');\r\n this.contentUrl = this.$content.data('grid-content-url');\r\n\r\n this.initializeFilter();\r\n\r\n if (this.$content.find(\"table\").length === 0) {\r\n this.refresh();\r\n } else {\r\n this.initializeContent();\r\n }\r\n }\r\n\r\n initializeFilter() {\r\n var self = this;\r\n\r\n this.$filter = this.$grid.find('.grid-filter');\r\n self.$filterForm = self.$filter.find('.grid-filter-form');\r\n self.$filterSearchButton = self.$filter.find('.grid-filter-search-button');\r\n self.$filterResetButton = self.$filter.find('.grid-filter-reset-button');\r\n self.$filterApplyButton = self.$filter.find('.grid-filter-apply-button');\r\n self.$advancedFilters = self.$filter.find('.grid-advanced-filters');\r\n self.$advancedFiltersToggle = self.$filter.find('.grid-advanced-filters-toggle');\r\n self.$filterPageNumber = self.$filter.find('#PageNumber');\r\n self.filterPageNumberInitial = self.$filterPageNumber.val();\r\n self.$filterDefaultPageSize = self.$filter.find('#DefaultPageSize');\r\n self.filterDefaultPageSize = self.$filterDefaultPageSize.val();\r\n self.$filterPageSize = self.$filter.find('#PageSize');\r\n\r\n\r\n\r\n self.$filterForm\r\n .on('submit', function (e) {\r\n if (e.originalEvent.submitter === self.$filterSearchButton[0]\r\n || e.originalEvent.submitter === self.$filterApplyButton[0]) {\r\n\r\n e.preventDefault();\r\n self.$filterPageNumber.val(1);\r\n self.refresh();\r\n }\r\n });\r\n\r\n var showHtml = ' Show Advanced Filters';\r\n var hideHtml = ' Hide Advanced Filters';\r\n\r\n self.$advancedFiltersToggle.html(showHtml);\r\n self.$advancedFiltersToggle\r\n .on('click', function () {\r\n if (self.$advancedFilters.hasClass('collapse show')) {\r\n self.$advancedFiltersToggle.html(showHtml);\r\n } else {\r\n self.$advancedFiltersToggle.html(hideHtml);\r\n }\r\n\r\n self.$advancedFilters.collapse('toggle');\r\n });\r\n\r\n self.$filterResetButton\r\n .on('click', function () {\r\n self.$filter.find('input[type=\"text\"]').val('');\r\n self.$filter.find('input[type=\"number\"]').val('');\r\n self.$filter.find('input[type=\"datetime\"]').val('');\r\n self.$filter.find('select[data-select2-id]').filter(':not([data-val-required])').val([]).trigger('change');\r\n self.$filter.find('select[data-select2-id]').filter('[data-val-required]').each(function () {\r\n var attr = $(this).attr('data-default-select-value');\r\n if (typeof attr !== typeof undefined && attr !== false) {\r\n $(this).val(attr).trigger('change');\r\n } else {\r\n $(this).prop('selectedIndex', 0).change();\r\n }\r\n });\r\n\r\n self.$filterPageNumber.val(self.filterPageNumberInitial);\r\n self.$filterPageSize.val(self.filterDefaultPageSize).change();\r\n\r\n self.refresh();\r\n });\r\n }\r\n\r\n initializeContent() {\r\n var self = this;\r\n\r\n self.$content\r\n .find('.pagination li:not(.active):not(.disabled) a')\r\n .on(\"click\", function (e) {\r\n e.preventDefault();\r\n\r\n self.$filterPageNumber.val($(this).attr('href'));\r\n self.refresh();\r\n });\r\n }\r\n\r\n refresh() {\r\n var self = this;\r\n var loadingDiv = '
';\r\n var errorDiv = '
';\r\n\r\n var loadingTimeout = setTimeout(function () {\r\n self.$content.html(loadingDiv);\r\n }, this.$content.find(\"table\").length === 0 ? 0 : 1000);\r\n\r\n var data = self.$filterForm.serialize();\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: self.contentUrl,\r\n data: data,\r\n success: function (response) {\r\n clearTimeout(loadingTimeout);\r\n self.$content.html(response);\r\n\r\n self.initializeContent();\r\n initComponents(self.$content);\r\n },\r\n error: function (jqXHR, textStatus, errorThrown) {\r\n clearTimeout(loadingTimeout);\r\n self.$content.html(errorDiv);\r\n\r\n Snackbar.show({ text: 'Error loading data' });\r\n }\r\n });\r\n }\r\n}","$(function () {\r\n initUIDefaults();\r\n initComponents();\r\n PR.prettyPrint();\r\n});\r\n\r\nfunction initUIDefaults() {\r\n // custom-control-select (Select2)\r\n $.fn.select2.defaults.set('theme', 'bootstrap');\r\n $.fn.select2.defaults.set('width', '100%');\r\n $.fn.select2.defaults.set('minimumResultsForSearch', Infinity);\r\n\r\n // custom-control-datetime, custom-control-date, custom-control-time (datepicker)\r\n $.fn.datetimepicker.Constructor.Default = $.extend({}, $.fn.datetimepicker.Constructor.Default, {\r\n buttons: {\r\n showToday: false,\r\n showClear: true,\r\n showClose: true\r\n },\r\n icons: {\r\n time: 'fad fa-clock',\r\n date: 'fad fa-calendar',\r\n up: 'fa fa-arrow-up',\r\n down: 'fa fa-arrow-down',\r\n previous: 'fa fa-chevron-left',\r\n next: 'fa fa-chevron-right',\r\n today: 'fad fa-calendar-check',\r\n clear: 'fad fa-trash-alt',\r\n close: 'fa fa-times'\r\n },\r\n toolbarPlacement: 'top',\r\n useCurrent: false\r\n });\r\n}\r\n\r\nfunction initComponents($container) {\r\n initUIComponent('.custom-control-select', $container, initCustomControlSelect);\r\n initUIComponent('.custom-control-company-picker', $container, initCustomControlCompanyPicker);\r\n initUIComponent('.custom-control-textarea', $container, initCustomControlTextarea);\r\n initUIComponent('.custom-control-datetime', $container, initCustomControlDatetime);\r\n initUIComponent('[data-toggle=\"popover\"]', $container, initPopover);\r\n initVisibiliity($container);\r\n initGrids($container);\r\n initModals($container);\r\n initTabs($container);\r\n}\r\n\r\nfunction initUIComponent(selector, $container, callback) {\r\n var $elements = $(selector, $container);\r\n\r\n if ($elements.length > 0) {\r\n $elements.each(function (index, element) {\r\n callback($(element), $container);\r\n });\r\n }\r\n}\r\n\r\nfunction initCustomControlSelect($element, $container) {\r\n var hasDisableNoResultsMessage = $element.data('disable-no-results-message');\r\n var hasNoResultsMessage = $element.data('no-results-message');\r\n var hasNoResults = hasDisableNoResultsMessage || hasNoResultsMessage\r\n ? function () { return hasNoResultsMessage || '' }\r\n : undefined\r\n\r\n $element.select2({\r\n dropdownParent: $container,\r\n language: {\r\n noResults: hasNoResults\r\n },\r\n });\r\n\r\n $element.on(\"select2:clear\", function (evt) {\r\n $(this).on(\"select2:opening.cancelOpen\", function (evt) {\r\n evt.preventDefault();\r\n\r\n $(this).off(\"select2:opening.cancelOpen\");\r\n });\r\n });\r\n\r\n $element.on(\"select2:close\", function (e) {\r\n $(this).valid();\r\n });\r\n}\r\n\r\nfunction initCustomControlCompanyPicker($element, $container) {\r\n var data = null;\r\n\r\n var id = $element.attr('company-id');\r\n if (id) {\r\n\r\n var data = [{\r\n id: id,\r\n text: $element.attr('company-name'),\r\n ihsOwCode: $element.attr('company-ihs-ow-code')\r\n }]\r\n }\r\n\r\n $element.select2({\r\n data: data,\r\n ajax: {\r\n url: \"/admin/companies/search-picker\",\r\n dataType: 'json',\r\n delay: 250,\r\n data: function (params) {\r\n return {\r\n genericSearch: params.term,\r\n pageNumber: params.page,\r\n PageSize: 10\r\n };\r\n },\r\n processResults: function (data, params) {\r\n params.page = params.page || 1;\r\n\r\n return {\r\n //results: data.items,\r\n results: data.items.map(function (item) {\r\n return {\r\n id: item.id,\r\n text: item.name,\r\n ihsOwCode: item.ihsOwCode\r\n }\r\n }),\r\n pagination: {\r\n more: !data.metaData.isLastPage\r\n }\r\n };\r\n }, \r\n cache: true\r\n },\r\n placeholder: 'Select a Company',\r\n templateResult: formatCompany,\r\n templateSelection: formatCompany,\r\n minimumInputLength: 1\r\n });\r\n\r\n $element.on(\"select2:clear\", function (evt) {\r\n $(this).on(\"select2:opening.cancelOpen\", function (evt) {\r\n evt.preventDefault();\r\n\r\n $(this).off(\"select2:opening.cancelOpen\");\r\n });\r\n });\r\n\r\n $element.on(\"select2:close\", function (e) {\r\n $(this).valid();\r\n });\r\n}\r\n\r\nfunction formatCompany(company) {\r\n if (company.loading || !company.id) {\r\n return company.text;\r\n }\r\n\r\n return company.text + ' • ' + company.ihsOwCode;\r\n}\r\n\r\nfunction initCustomControlTextarea($element, $container) {\r\n autosize($element);\r\n}\r\n\r\nfunction initCustomControlDatetime($element, $container) {\r\n $element.datetimepicker({\r\n format: $element.data('datetimepicker-format')\r\n });\r\n}\r\n\r\nfunction initPopover($element, $container) {\r\n $element.popover({\r\n container: 'body',\r\n showClear: true,\r\n });\r\n}","function initModals($container) {\r\n $('[data-modal-url]', $container).each(function () {\r\n var modal = new Modal($(this));\r\n modal.initialize();\r\n });\r\n}\r\n\r\nclass Modal {\r\n\r\n constructor($toggle) {\r\n this.$toggle = $toggle;\r\n this.$container = $('#modal-container');\r\n this.$content = $('#modal-content');\r\n this.contentUrl = $toggle.data('modal-url');\r\n this.$dialog = $('#modal-dialog');\r\n\r\n var modalSize = $toggle.data('modal-size');\r\n this.dialogSize = modalSize\r\n ? \"modal-\" + modalSize\r\n : '';\r\n }\r\n\r\n initialize() {\r\n var self = this;\r\n\r\n this.$toggle\r\n .off('click')\r\n .on('click', function (e) { self.onClick(e); });\r\n }\r\n\r\n initializeContent() {\r\n var self = this;\r\n initComponents(self.$content);\r\n\r\n self.$form = self.$content.find('form');\r\n\r\n self.$content\r\n .find('button[type=submit]')\r\n .on('click', function () {\r\n var form = self.$form[0];\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(form.method, form.action);\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4 && xhr.status === 200) {\r\n var ajaxRedirect = xhr.getResponseHeader('ajax-redirect');\r\n var ajaxRefreshTab = xhr.getResponseHeader('ajax-refresh-tab');\r\n\r\n if (ajaxRedirect !== null) {\r\n window.location.replace(ajaxRedirect);\r\n } else if (ajaxRefreshTab !== null) {\r\n var tab = tabs[ajaxRefreshTab];\r\n if (tab) {\r\n tab.refresh();\r\n self.$container.modal('hide');\r\n }\r\n } else {\r\n self.$content.html(xhr.responseText);\r\n self.initializeContent();\r\n }\r\n }\r\n };\r\n xhr.send(new FormData(form));\r\n });\r\n }\r\n\r\n onClick() {\r\n var self = this;\r\n var loadingDiv = '
';\r\n var errorDiv = '
';\r\n\r\n self.$dialog.removeClass();\r\n self.$dialog.addClass('modal-dialog ' + self.dialogSize);\r\n\r\n self.$content.html(loadingDiv);\r\n self.$container.modal('show');\r\n\r\n $.ajax({\r\n type: 'GET',\r\n url: self.contentUrl,\r\n success: function (response) {\r\n self.$content.html(response);\r\n self.initializeContent();\r\n },\r\n error: function (jqXHR, textStatus, errorThrown) {\r\n self.$content.html(errorDiv);\r\n\r\n Snackbar.show({ text: 'Error loading modal' });\r\n }\r\n });\r\n }\r\n}","tabs = {};\r\n\r\nfunction initTabs($container) {\r\n $('.tab-pane', $container).each(function () {\r\n var tab = new Tab($(this));\r\n tab.initialize();\r\n tabs[tab.id] = tab;\r\n });\r\n};\r\n\r\nclass Tab {\r\n\r\n constructor($tab) {\r\n this.$tab = $tab;\r\n }\r\n\r\n initialize() {\r\n var self = this;\r\n\r\n self.id = self.$tab.attr('id');\r\n self.$tabToggle = $(\"[data-toggle='tab'][href='#\" + self.id + \"']\")\r\n self.tabUrl = self.$tab.data('tab-url');\r\n self.lazyLoad = self.$tab.data('tab-lazy-load');\r\n self.contentInitiallyLoaded = false;\r\n\r\n if (self.tabUrl) {\r\n if (self.$tab.hasClass('active') || !self.lazyLoad) {\r\n self.refresh();\r\n }\r\n else {\r\n self.$tabToggle.on('shown.bs.tab', function (e) {\r\n if (!self.contentInitiallyLoaded) {\r\n self.refresh();\r\n }\r\n })\r\n }\r\n }\r\n else {\r\n self.contentInitiallyLoaded = true;\r\n }\r\n }\r\n\r\n refresh() {\r\n var self = this;\r\n self.contentInitiallyLoaded = true;\r\n\r\n var loadingDiv = '
';\r\n var errorDiv = '
';\r\n\r\n self.$tab.html(loadingDiv);\r\n\r\n $.ajax({\r\n type: 'GET',\r\n url: self.tabUrl,\r\n success: function (response) {\r\n self.$tab.html(response);\r\n\r\n initComponents(self.$tab);\r\n },\r\n error: function (jqXHR, textStatus, errorThrown) {\r\n self.$tab.html(errorDiv);\r\n\r\n Snackbar.show({ text: 'Error loading tab' });\r\n }\r\n });\r\n }\r\n}","function initVisibiliity($container) {\r\n $('[data-visible-if-id]', $container).each(function () {\r\n var $element = $(this);\r\n var visibleIfId = $element.data('visible-if-id');\r\n var $otherElement = $('#' + visibleIfId);\r\n\r\n updateVisibility($element, $otherElement.val());\r\n\r\n $otherElement.change(function () {\r\n updateVisibility($element, $otherElement.val());\r\n })\r\n });\r\n};\r\n\r\nfunction updateVisibility($element, value) {\r\n var visibleIfValue = $element.data('visible-if-value');\r\n if (value === visibleIfValue)\r\n $element.show();\r\n else\r\n $element.hide();\r\n}"]}