{"version":3,"file":"export-classification/index.mjs","mappings":"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","sources":["webpack://app-assets/./src/common/ready/js/index.mjs","webpack://app-assets/./src/common/export-to-excel/js/index.mjs","webpack://app-assets/./src/common/legacy-table/js/index.mjs","webpack://app-assets/./src/common/popover/js/index.mjs","webpack://app-assets/./src/apps/export-classification/js/index.mjs"],"sourcesContent":["/**\r\n * @module common/ready\r\n */\r\n\r\n/**\r\n * Function to execute when DOM is ready to be manipulated. This is a\r\n * replacement for jQuery's `$(document).ready()`\r\n * @param {Function} cb Function to execute when DOM is ready\r\n */\r\nexport const DOMReady = ( cb ) => {\r\n\tif ( document.readyState === 'complete' || document.readyState === 'interactive' ) {\r\n\t\tcb();\r\n\t} else {\r\n\t\tdocument.addEventListener( 'DOMContentLoaded', cb );\r\n\t}\r\n};\r\n\r\n/**\r\n * To determine whether the document readyState is 'complete' or not\r\n * @returns {boolean} whether the doc has fully loaded or not\r\n */\r\nexport const isReadyStateComplete = () => document.readyState === 'complete';\r\n\r\n/**\r\n * Function to execute when the page has completely loaded.\r\n * @param {Function} cb Function to execute after readyState complete\r\n */\r\nexport const onReadyStateComplete = ( cb ) => {\r\n\tif ( isReadyStateComplete() ) {\r\n\t\tcb();\r\n\t} else {\r\n\t\tdocument.addEventListener( 'readystatechange', () => {\r\n\t\t\tif ( isReadyStateComplete() ) {\r\n\t\t\t\tcb();\r\n\t\t\t}\r\n\t\t} );\r\n\t}\r\n};\r\n","import { DOMReady } from '#common/ready/js/index.mjs';\r\nimport '../css/index.css';\r\n\r\n/**\r\n * @module common/export-to-excel\r\n * @see https://bitbucket.analog.com/projects/CP/repos/assets/browse/src/global/js/main.js\r\n * Handles exporting of table data to an excel file\r\n */\r\n\r\n/**\r\n * Generates an excel report given the provided information\r\n * @see https://bitbucket.analog.com/projects/CP/repos/assets/browse/src/global/js/main.js#3920\r\n * @param {string} querySelector CSS query selector of the table to be generated in the report\r\n * @param {string} name Name the downloaded excel file should be given\r\n */\r\nexport const fnExcelReport = ( querySelector, name ) => {\r\n\t\tconst sourceTable = document.querySelector( querySelector ),\r\n\t\t\texportTable = ( ( elem ) => {\r\n\t\t\t\tconst table = elem?.cloneNode( true ),\r\n\t\t\t\t\tchildren = table?.querySelectorAll( 'tr> th.removeRow,tr> td:last-child' );\r\n\t\t\t\t// eslint-disable-next-line no-restricted-syntax\r\n\t\t\t\tfor ( const child of children ) child.remove();\r\n\t\t\t\treturn table;\r\n\t\t\t} )( sourceTable ),\r\n\t\t\tfileName = name,\r\n\t\t\ta = document.createElement( 'a' ),\r\n\r\n\t\t\t// Save the file\r\n\t\t\tblob = new Blob( [ `\r\n \r\n \r\n \r\n \r\n \r\n \r\n Test Sheet\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ${exportTable.innerHTML}
\r\n \r\n ` ], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8' } ),\r\n\t\t\turl = window.URL || window.webkitURL,\r\n\t\t\tlink = url.createObjectURL( blob );\r\n\r\n\t\tif ( navigator.msSaveBlob ) {\r\n\t\t\tnavigator.msSaveBlob( blob, fileName );\r\n\t\t} else {\r\n\t\t\ta.download = name;\r\n\t\t\ta.href = link;\r\n\t\t\tdocument.body.appendChild( a );\r\n\t\t\ta.click();\r\n\t\t\tdocument.body.removeChild( a );\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Click event to create the excel table\r\n\t * @param {object} e Event Listener Object\r\n\t * @see https://bitbucket.analog.com/projects/CP/repos/assets/browse/src/global/js/main.js#5485\r\n\t * @deprecated\r\n\t */\r\n\thandleClick = ( e ) => {\r\n\t\te.preventDefault();\r\n\t\tfnExcelReport( '#divTableDataHolder table.ADIGrid', 'ExportedResults.xls' );\r\n\t},\r\n\r\n\t/**\r\n\t * Binds click event to relevant buttons\r\n\t * @see https://bitbucket.analog.com/projects/CP/repos/assets/browse/src/global/js/main.js#5485\r\n\t * @deprecated\r\n\t */\r\n\tbind = () => {\r\n\t\tconst btns = document.querySelectorAll( '#btnExportToExcel' );\r\n\t\t// eslint-disable-next-line no-restricted-syntax\r\n\t\tfor ( const btn of btns ) btn.addEventListener( 'click', handleClick );\r\n\t};\r\n\r\nDOMReady( bind );\r\n","import '../css/index.css';\r\n\r\n/**\r\n * @module common/legacy-table\r\n */\r\n\r\n/**\r\n * Generates a legacy table\r\n * @see https://bitbucket.analog.com/projects/CP/repos/assets/browse/src/global/js/main.js#3737\r\n */\r\nexport const ADIGrid = {\r\n\r\n\tthead: [],\r\n\trows: [],\r\n\tlength: {},\r\n\tdata: window.ADI?.ADIGridData || null,\r\n\r\n\t/**\r\n\t * Reference to the table buying built upon\r\n\t * @returns {HTMLElement} The current table node\r\n\t */\r\n\tget target() {\r\n\t\treturn document.querySelector( 'table.ADIGrid' );\r\n\t},\r\n\r\n\t/**\r\n\t * Reference to the current table's data\r\n\t * @returns {Array} Table data\r\n\t */\r\n\tget currentView() {\r\n\t\tconst currentView = [],\r\n\t\t\trows = document.querySelectorAll( '.ADIGrid:not(.clone) .ADIGrid-row' );\r\n\r\n\t\t// eslint-disable-next-line no-restricted-syntax\r\n\t\tfor ( const row of rows ) {\r\n\t\t\tconst currentViewRow = {},\r\n\t\t\t\tcurrentViewRowChildren = row.querySelectorAll( ( row.id === 'ADIGrid-rowheader' ) ? '.ADIGrid-th' : '.ADIGrid-cell' );\r\n\r\n\t\t\t// eslint-disable-next-line no-restricted-syntax\r\n\t\t\tfor ( const cell of currentViewRowChildren ) {\r\n\t\t\t\tif ( !cell.classList.contains( 'removeRow' ) ) {\r\n\t\t\t\t\tcurrentViewRow[ cell.dataset.key ] = cell.dataset.value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tcurrentView.push( currentViewRow );\r\n\t\t}\r\n\r\n\t\treturn currentView;\r\n\t},\r\n\r\n\t/**\r\n\t * Clones the header to make it sticky\r\n\t */\r\n\tcloneHeader() {\r\n\t\tconst target = this.target[ 0 ],\r\n\t\t\theader = target ? target.querySelector( 'tr[data-row=\"header\"]' ) : null;\r\n\t\tif ( header ) {\r\n\t\t\theader.style.position = 'sticky';\r\n\t\t\theader.style.top = '0';\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Methods to build the table\r\n\t */\r\n\tconstructors: {\r\n\r\n\t\t/**\r\n\t\t * Creates the appropriate table cell\r\n\t\t * @param {string|number} row Index of the row the cell belongs to\r\n\t\t * @param {string} key Key name corresponding to the cell's data\r\n\t\t * @param {string} value Content of the cell\r\n\t\t * @param {Function} cb Function to execute when the \"remove\" button is clicked\r\n\t\t * @returns {HTMLElement} The created `` element\r\n\t\t */\r\n\t\tcell( row, key, value, cb ) {\r\n\t\t\tconst elem = document.createElement( 'td' ),\r\n\t\t\t\tbutton = document.createElement( 'button' );\r\n\t\t\telem.className = 'ADIGrid-cell';\r\n\t\t\telem.dataset.row = row;\r\n\t\t\tbutton.innerHTML = 'Remove';\r\n\t\t\tif ( key === 'removeRow' ) {\r\n\t\t\t\telem.appendChild( button );\r\n\t\t\t\tbutton.onclick = cb;\r\n\t\t\t} else {\r\n\t\t\t\telem.id = `ADIGrid-${row}-${key}`;\r\n\t\t\t\telem.dataset.key = key;\r\n\t\t\t\telem.dataset.value = value;\r\n\t\t\t\telem.innerHTML = value;\r\n\t\t\t}\r\n\t\t\treturn elem;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Creates a new table row\r\n\t\t * @param {string|number} row Index of the row being created\r\n\t\t * @returns {HTMLElement} The created `` element\r\n\t\t */\r\n\t\trow( row ) {\r\n\t\t\tconst elem = document.createElement( 'tr' );\r\n\t\t\telem.className = 'ADIGrid-row';\r\n\t\t\telem.id = `ADIGrid-row${row}`;\r\n\t\t\telem.dataset.row = row;\r\n\t\t\treturn elem;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Creates a table body\r\n\t\t * @returns {HTMLElement} The created `` element\r\n\t\t */\r\n\t\ttbody() {\r\n\t\t\tconst elem = document.createElement( 'tbody' );\r\n\t\t\telem.className = 'ADIGrid-tbody';\r\n\t\t\treturn elem;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Creates a table header cell\r\n\t\t * @param {string} key Key name corresponding to the cell's data\r\n\t\t * @param {string} value Content to be displayed in the cell\r\n\t\t * @param {string} width Width (in pixels) of the cell\r\n\t\t * @returns {HTMLElement} The created ``\r\n\t\t */\r\n\t\tth( key, value, width ) {\r\n\t\t\tconst elem = document.createElement( 'th' );\r\n\t\t\telem.className = 'ADIGrid-th';\r\n\t\t\telem.style.width = width;\r\n\t\t\telem.innerHTML = value;\r\n\t\t\tif ( key === 'removeRow' ) {\r\n\t\t\t\telem.classList.add( 'removeRow' );\r\n\t\t\t} else {\r\n\t\t\t\telem.id = `ADIGrid-th-${key}`;\r\n\t\t\t\telem.dataset.key = key;\r\n\t\t\t\telem.dataset.value = value;\r\n\t\t\t}\r\n\t\t\treturn elem;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Creates a table head\r\n\t\t * @returns {HTMLElement} The created ``\r\n\t\t */\r\n\t\tthead() {\r\n\t\t\tconst elem = document.createElement( 'thead' );\r\n\t\t\telem.className = 'ADIGrid-thead';\r\n\t\t\treturn elem;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Creates a header above the table\r\n\t\t * @param {Function} cb Function to execute when the Restore table link is clicked\r\n\t\t * @returns {HTMLElement} The created `
`\r\n\t\t */\r\n\t\theader( cb ) {\r\n\t\t\tconst elem = document.createElement( 'header' ),\r\n\t\t\t\ta = document.createElement( 'a' );\r\n\t\t\telem.role = 'heading';\r\n\t\t\telem.className = 'ADIGrid-header';\r\n\t\t\telem.innerHTML = '';\r\n\t\t\telem.appendChild( a );\r\n\r\n\t\t\ta.className = 'ADIGrid-restoreViewTrigger';\r\n\t\t\ta.onclick = cb;\r\n\t\t\treturn elem;\r\n\t\t},\r\n\t},\r\n\r\n\t/**\r\n\t * Initializes the grid process\r\n\t */\r\n\tinit() {\r\n\t\tconst that = this;\r\n\t\tif ( that.target ) {\r\n\t\t\t// eslint-disable-next-line no-restricted-syntax, guard-for-in\r\n\t\t\tfor ( const i in that.data.definitions ) {\r\n\t\t\t\tthis.thead.push( {\r\n\t\t\t\t\tkey: i,\r\n\t\t\t\t\twidth: that.data.definitions[ i ].width,\r\n\t\t\t\t\tvalue: that.data.definitions[ i ].title,\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\r\n\t\t\t// eslint-disable-next-line no-restricted-syntax, guard-for-in\r\n\t\t\tfor ( const i in that.data.objects ) {\r\n\t\t\t\tthat.rows.push( {\r\n\t\t\t\t\trow: i,\r\n\t\t\t\t\tcells: [],\r\n\t\t\t\t} );\r\n\r\n\t\t\t\t// eslint-disable-next-line no-restricted-syntax\r\n\t\t\t\tfor ( const j in that.data.objects[ i ] ) {\r\n\t\t\t\t\tif ( Object.hasOwn( that.data.objects[ i ], j ) ) {\r\n\t\t\t\t\t\tthat.rows[ i ].cells.push( {\r\n\t\t\t\t\t\t\trow: i,\r\n\t\t\t\t\t\t\tkey: j,\r\n\t\t\t\t\t\t\tvalue: that.data.objects[ i ][ j ],\r\n\t\t\t\t\t\t} );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif ( that.data.options.enableRemoveRow ) {\r\n\t\t\t\t\tthat.rows[ i ].cells.push( {\r\n\t\t\t\t\t\trow: i,\r\n\t\t\t\t\t\tkey: 'removeRow',\r\n\t\t\t\t\t\tvalue: 'Remove',\r\n\t\t\t\t\t} );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.target.parentElement.prepend(\r\n\t\t\t\tthis.constructors.header( this.restoreView.bind( this ) ),\r\n\t\t\t);\r\n\t\t\tthis.createView();\r\n\t\t\tthis.cloneHeader();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Creates the table\r\n\t */\r\n\tcreateView() {\r\n\t\tconst that = this;\r\n\r\n\t\t// Create \r\n\t\tthis.target.appendChild( this.constructors.tbody() );\r\n\r\n\t\t// Create s\r\n\t\tthis.target.querySelector( 'tbody' ).appendChild( this.constructors.row( 'header' ) );\r\n\r\n\t\tthis.thead.forEach( ( { key, value, width } ) => {\r\n\t\t\tthis.target.querySelector( 'tbody>tr' ).appendChild(\r\n\t\t\t\tthis.constructors.th( key, value, width ),\r\n\t\t\t);\r\n\t\t} );\r\n\r\n\t\t// Create s & s\r\n\t\tthis.rows.forEach( ( {\r\n\t\t\trow, cells,\r\n\t\t} ) => {\r\n\t\t\tthis.target\r\n\t\t\t\t.querySelector( 'tbody' )\r\n\t\t\t\t.append( this.constructors.row( row ) );\r\n\t\t\tconst rowTarget = this.target.querySelector( `.ADIGrid-row[data-row='${row}']` );\r\n\r\n\t\t\t/**\r\n\t\t\t * click event callback for the remove button\r\n\t\t\t */\r\n\t\t\tfunction callback() {\r\n\t\t\t\tthis.closest( 'tr' ).remove();\r\n\t\t\t\tthat.updateView();\r\n\t\t\t}\r\n\r\n\t\t\tcells.forEach( ( { row: row2, key, value } ) => {\r\n\t\t\t\trowTarget.append(\r\n\t\t\t\t\tthis.constructors.cell( row2, key, value, callback ),\r\n\t\t\t\t);\r\n\t\t\t} );\r\n\t\t} );\r\n\r\n\t\tthis.length.initial = ( this.target.querySelectorAll( 'tr' ).length - 1 );\r\n\t\tthis.updateView();\r\n\t},\r\n\r\n\t/**\r\n\t * Resets the table to its initial state\r\n\t */\r\n\trestoreView() {\r\n\t\tthis.target.querySelector( 'tbody' ).remove();\r\n\t\tthis.createView();\r\n\t},\r\n\r\n\t/**\r\n\t * Updates the table after manipulations\r\n\t */\r\n\tupdateView() {\r\n\t\tconst count = document.querySelector( 'header.ADIGrid-header > .ADIGrid-dataCount' ),\r\n\t\t\ttrigger = document.querySelector( 'header.ADIGrid-header > .ADIGrid-restoreViewTrigger' );\r\n\r\n\t\tthis.length.current = ( this.target.querySelectorAll( 'tr' ).length - 1 );\r\n\t\tthis.length.delta = this.length.initial - this.length.current;\r\n\t\tif ( this.length.current === 1 ) {\r\n\t\t\tcount.innerHTML = `Showing ${this.length.current} Product Match`;\r\n\t\t} else if ( this.length.current > 1 ) {\r\n\t\t\tcount.innerHTML = `Showing ${this.length.current} Product Matches`;\r\n\t\t} else {\r\n\t\t\tcount.innerHTML = 'No matches remaining.';\r\n\t\t}\r\n\t\tif ( this.length.delta === 1 ) {\r\n\t\t\ttrigger.innerHTML = `Restore ${this.length.delta} Hidden Product`;\r\n\t\t} else if ( this.length.delta > 1 ) {\r\n\t\t\ttrigger.innerHTML = `Restore ${this.length.delta} Hidden Products`;\r\n\t\t} else {\r\n\t\t\ttrigger.innerHTML = '';\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Opens the table as a CSV file\r\n\t */\r\n\tpostJSON() {\r\n\t\tconst objArray = [],\r\n\t\t\tcells = this.target.querySelectorAll( 'tr td:not(.removeRow)' );\r\n\r\n\t\t// eslint-disable-next-line no-restricted-syntax\r\n\t\tfor ( const cell of cells ) {\r\n\t\t\tif ( !objArray[ cell.dataset.row ] ) objArray[ cell.dataset.row ] = [];\r\n\t\t\tobjArray[ cell.dataset.row ][ cell.dataset.key ] = cell.dataset.value;\r\n\t\t}\r\n\r\n\t\tlet str = '';\r\n\t\tfor ( let i = 0; i < objArray.length; i++ ) {\r\n\t\t\tstr += `${objArray[ i ].join( ',' )}\\r\\n`;\r\n\t\t}\r\n\t\twindow.open( `data:text/csv;charset=utf-8,${encodeURIComponent( str )}` );\r\n\t},\r\n\r\n};\r\n","import '#common/base-styles/js/index.mjs';\r\nimport '../css/index.css';\r\n\r\n/**\r\n * @module common/popover\r\n */\r\n\r\n/**\r\n * Generate list of classnames\r\n * @param {string} position Positioning of the popover\r\n * @returns {string} List of classnames\r\n */\r\nconst generateClassNames = ( position ) => {\r\n\t\tconst ary = [ 'adiPopOver' ];\r\n\t\tif ( position ) ary.push( `${ary}--${position}` );\r\n\t\treturn ary.join( ' ' );\r\n\t},\r\n\r\n\t/**\r\n\t * Handle mouse out\r\n\t * @param {object} e Event listener object\r\n\t */\r\n\tonMouseOut = ( e ) => {\r\n\t\tconst target = e.currentTarget,\r\n\t\t\tid = target.getAttribute( 'aria-describedby' ),\r\n\t\t\tpopover = document.getElementById( id );\r\n\t\ttarget.removeAttribute( 'aria-describedby' );\r\n\t\tpopover.remove();\r\n\t},\r\n\r\n\t/**\r\n\t * Handle mouse over\r\n\t * @param {object} e Event listener object\r\n\t */\r\n\tonMouseOver = ( e ) => {\r\n\t\tconst target = e.currentTarget,\r\n\t\t\tshape = target.getBoundingClientRect(),\r\n\t\t\t{ content, placement } = target.dataset,\r\n\t\t\tid = crypto.randomUUID(),\r\n\t\t\tdiv = document.createElement( 'div' );\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\tdiv.id = id;\r\n\t\tdiv.className = generateClassNames( placement );\r\n\t\tdiv.innerHTML = content;\r\n\t\tdocument.body.appendChild( div );\r\n\t\ttarget.setAttribute( 'aria-describedby', id );\r\n\r\n\t\t// position the popover\r\n\t\tswitch ( placement ) {\r\n\t\t\tcase 'left':\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'right':\r\n\t\t\t\tdiv.style.top = `${( shape.top + ( shape.height / 2 ) ) - ( div.offsetHeight / 2 )}px`;\r\n\t\t\t\tdiv.style.left = `${shape.right}px`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'bottom':\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'top':\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t};\r\n\r\n/**\r\n * Bind anchors for mouse over effect\r\n */\r\nexport const bindAnchors = () => {\r\n\tconst anchors = document.querySelectorAll( 'a[data-toggle=\"popover\"]' );\r\n\r\n\t// eslint-disable-next-line no-restricted-syntax\r\n\tfor ( const anchor of anchors ) {\r\n\t\tswitch ( anchor.dataset.trigger ) {\r\n\t\t\tcase 'hover':\r\n\t\t\t\tanchor.addEventListener( 'mouseover', onMouseOver, true );\r\n\t\t\t\tanchor.addEventListener( 'mouseout', onMouseOut, true );\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n};\r\n","import '#common/base-styles/js/index.mjs';\r\nimport '#common/export-to-excel/js/index.mjs';\r\nimport { ADIGrid } from '#common/legacy-table/js/index.mjs';\r\nimport { DOMReady } from '#common/ready/js/index.mjs';\r\nimport '#common/pull-right/js/index.mjs';\r\nimport '#common/reskin-panel/js/index.mjs';\r\nimport { bindAnchors } from '#common/popover/js/index.mjs';\r\nimport '../css/index.css';\r\n\r\n/**\r\n * @module app/export-classification\r\n */\r\n\r\n/**\r\n * Function to get the current view of the page\r\n * @returns {string} View\r\n */\r\nwindow.GetCurrentView = () => {\r\n\tconst currentView = [],\r\n\t\trows = document.querySelectorAll( '.ADIGrid:not(.clone) .ADIGrid-row' );\r\n\r\n\t// eslint-disable-next-line no-restricted-syntax\r\n\tfor ( const row of rows ) {\r\n\t\tconst currentViewRow = {},\r\n\t\t\tchildren = row.querySelectorAll( ( row.id === 'ADIGrid-rowheader' ) ? '.ADIGrid-th' : '.ADIGrid-cell' );\r\n\r\n\t\t// eslint-disable-next-line no-restricted-syntax\r\n\t\tfor ( const child of children ) {\r\n\t\t\tif ( !child.classList.includes( 'removeRow' ) ) {\r\n\t\t\t\tcurrentViewRow[ child.dataset.key ] = child.dataset.value;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcurrentView.push( currentViewRow );\r\n\t}\r\n\r\n\treturn currentView;\r\n};\r\n\r\n/**\r\n * Initializes the page\r\n */\r\nconst init = () => {\r\n\tADIGrid.data = window.data;\r\n\tADIGrid.init();\r\n\tbindAnchors();\r\n};\r\n\r\nDOMReady( init );\r\n"],"names":["DOMReady","cb","document","readyState","addEventListener","handleClick","e","preventDefault","querySelector","name","exportTable","elem","table","cloneNode","children","querySelectorAll","child","remove","fileName","a","createElement","blob","Blob","innerHTML","type","link","window","URL","webkitURL","createObjectURL","navigator","msSaveBlob","download","href","body","appendChild","click","removeChild","fnExcelReport","btns","btn","ADIGrid","thead","rows","length","data","ADI","ADIGridData","target","currentView","row","currentViewRow","currentViewRowChildren","id","cell","classList","contains","dataset","key","value","push","cloneHeader","this","header","style","position","top","constructors","button","className","onclick","tbody","th","width","add","role","init","that","i","definitions","title","objects","cells","j","Object","hasOwn","options","enableRemoveRow","parentElement","prepend","restoreView","bind","createView","forEach","append","rowTarget","callback","closest","updateView","row2","initial","count","trigger","current","delta","postJSON","objArray","str","join","open","encodeURIComponent","onMouseOut","currentTarget","getAttribute","popover","getElementById","removeAttribute","onMouseOver","shape","getBoundingClientRect","content","placement","crypto","randomUUID","div","ary","generateClassNames","setAttribute","height","offsetHeight","left","right","GetCurrentView","includes","anchors","anchor","bindAnchors"],"sourceRoot":""}