{"version":3,"sourceRoot":"/cv/scripts/DAC0/eng/include","sources":["dataTableWrapper.js"],"sourcesContent":["function DataTableWrapper(tableElem) {\r\n this.$table = tableElem;\r\n}\r\n\r\nDataTableWrapper.prototype.createDtlStmtDefaults = function() {\r\n var dataTableParams = new DataTableParams();\r\n \r\n dataTableParams.responsive = true\r\n dataTableParams.ordering = true\r\n dataTableParams.processing = false\r\n dataTableParams.serverSide = true\r\n dataTableParams.stateSave = false\r\n dataTableParams.searching = false\r\n dataTableParams.keys = { blurable: true }\r\n\r\n return dataTableParams;\r\n}\r\n\r\nDataTableWrapper.prototype.init= function(dataTableParams) {\r\n // if these properties are not set, they cannot exist in the params passed to datatable\r\n if (dataTableParams.hasOwnProperty('stateSaveCallback') && !dataTableParams.stateLoadCallback) { delete dataTableParams.stateSaveCallback; }\r\n if (dataTableParams.hasOwnProperty('stateLoadCallback') && !dataTableParams.stateLoadCallback) { delete dataTableParams.stateLoadCallback; }\r\n\r\n if (this.$table.length && !$.fn.DataTable.isDataTable(this.$table)) {\r\n this.$table\r\n .on('processing.dt', function(e, settings, processing) { \r\n if(typeof dataTableParams.showTableLoading === \"function\") { \r\n dataTableParams.showTableLoading(processing);\r\n } \r\n })\r\n .on( 'key.dt', function ( e, datatable, key, cell, originalEvent ) {\r\n //console.log( 'Key press: '+key+' for cell '+cell.data() );\r\n if (cell && typeof cell.focus == 'function') {\r\n cell.focus();\r\n }\r\n switch (key) {\r\n // use space bar to select/deselect row when on a cell that is directly set to be focusable\r\n case 32:\r\n var rowCount = cell.index().row;\r\n var targetRow = datatable.row(rowCount);\r\n var inputLength = $(cell.node()).find(\"input:not([type=hidden]\").length;\r\n\r\n if (typeof(targetRow.select)==='function' \r\n && $(cell.node()).prop('tabindex')>=0 \r\n && inputLength >= 1) {\r\n if ($(targetRow.node()).is('.selected')) {\r\n targetRow.deselect();\r\n } else {\r\n targetRow.select();\r\n }\r\n } else {\r\n if ($(datatable.table().container()).find(\"table\").hasClass(\"dtr-inline collapsed\") \r\n && (rowCount == 0 && inputLength <= 1) || (rowCount > 0 && inputLength < 1)) {\r\n $(targetRow.node()).find(\".dtr-control\").click();\r\n }\r\n }\r\n break;\r\n case 13:\r\n var source = originalEvent.target || originalEvent.srcElement;\r\n if (source.tagName == \"INPUT\") {\r\n originalEvent.preventDefault();\r\n }\r\n }\r\n } )\r\n .on( 'key-focus.dt', function ( e, datatable, cell ) {\r\n //console.log( 'Cell focus: '+cell.data() );\r\n var tabIndexableThing = $(':visible', cell.node()).filter(function(idx, n) {return $(n).prop('tabindex')>=0});\r\n if (tabIndexableThing && tabIndexableThing.length) {\r\n tabIndexableThing.last()[0].focus() // .last because of existence of responsive plugin leaving tabindex-able stuff in cells that should not get immediate focus if there is something else\r\n } else {\r\n $(cell.node()).prop('tabindex', 0);\r\n cell.node().focus();\r\n }\r\n } )\r\n .on( 'key-blur.dt', function ( e, datatable, cell ) {\r\n //console.log( 'Cell blur: '+cell.data() );\r\n if ($(cell.node()).prop('tabindex')>=0) {\r\n $(cell.node()).prop('tabindex', -1);\r\n }\r\n } )\r\n .on( 'page.dt', function( e, settings) {\r\n // clean up all popovers opened on elements in the table\r\n $('[aria-describedby^=popover]', this).each(function() { $('#' + $(this).attr('aria-describedby')).popover('hide') })\r\n })\r\n .DataTable(Object.assign(\r\n {}, \r\n dataTableParams, \r\n {\r\n initComplete: function() {\r\n if (typeof dataTableParams.jsTableBuffer === \"function\") {\r\n dataTableParams.jsTableBuffer()\r\n }\r\n if (typeof dataTableParams.initComplete === \"function\") {\r\n dataTableParams.initComplete()\r\n }\r\n\r\n this.find('tbody td[tabindex]').removeAttr('tabindex');\r\n if (dataTableParams.tableRole) {\r\n $(this).attr('role', dataTableParams.tableRole);\r\n }\r\n },\r\n drawCallback: function() {\r\n if (typeof dataTableParams.drawCallback === \"function\") {\r\n dataTableParams.drawCallback()\r\n }\r\n var previousButton = $(\"#DataTable_wrapper\").find(\"#DataTable_previous.disabled > a\");\r\n var nextButton = $(\"#DataTable_wrapper\").find(\"#DataTable_next.disabled > a\");\r\n\r\n if (previousButton != null){\r\n previousButton.attr(\"tabindex\", -1).prop(\"disabled\", true)\r\n }\r\n if (nextButton != null){\r\n nextButton.attr(\"tabindex\", -1).prop(\"disabled\", true)\r\n }\r\n\r\n var currentButton = $(\"li.paginate_button.active > a\")\r\n if (currentButton != null) {\r\n currentButton.attr(\"aria-current\",\"true\")\r\n }\r\n setTimeout(function() {\r\n $('.datatable-tooltip-container').find('.dt-right.dtr-control.focus').tooltip('destroy').removeClass('focus');\r\n }, 10);\r\n }\r\n }\r\n )); // $(\"#DataTable\")\r\n }\r\n}\r\n\r\nfunction DataTableParams() {\r\n fixedHeader = null\r\n responsive = null\r\n ordering = null\r\n order = null\r\n processing = null\r\n serverSide = null\r\n ajax = null\r\n columnDefs = null\r\n stateSave = null\r\n searching = null\r\n initComplete = null\r\n drawCallback = null\r\n language = null\r\n info = null\r\n pageLength = null\r\n lengthMenu = null\r\n deferredRender = null\r\n paging = null\r\n jsTableBuffer = null\r\n displayStart = null\r\n showTableLoading = null\r\n select = null\r\n stateSaveCallback = undefined\r\n stateLoadCallback = undefined\r\n keys = null\r\n}\r\n"],"names":["DataTableWrapper","tableElem","this","$table","DataTableParams","fixedHeader","responsive","ordering","order","processing","serverSide","ajax","columnDefs","stateSave","searching","initComplete","drawCallback","language","info","pageLength","lengthMenu","deferredRender","paging","jsTableBuffer","displayStart","showTableLoading","select","stateSaveCallback","undefined","stateLoadCallback","keys","prototype","createDtlStmtDefaults","dataTableParams","blurable","init","hasOwnProperty","length","$","fn","DataTable","isDataTable","on","e","settings","datatable","key","cell","originalEvent","focus","rowCount","index","row","targetRow","inputLength","node","find","prop","is","deselect","table","container","hasClass","click","target","srcElement","tagName","preventDefault","tabIndexableThing","filter","idx","n","last","each","attr","popover","Object","assign","removeAttr","tableRole","previousButton","nextButton","currentButton","setTimeout","tooltip","removeClass"],"mappings":"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"}