{"version":3,"file":"export-classification/index.mjs","mappings":"MAIO,MAkBMA,EAA8B,mBCb9BC,EAAaC,IACI,aAAxBC,SAASC,YAAqD,gBAAxBD,SAASC,WACnDF,IAEAC,SAASE,iBAAkB,mBAAoBH,EAChD,ECuDAI,EAAgBC,IACfA,EAAEC,iBAtDyB,EAAEC,EAAeC,KAC5C,MACCC,EAAc,CAAIC,IACjB,MAAMC,EAAQD,GAAME,WAAW,GAC9BC,EAAWF,GAAOG,iBAAkB,sCAErC,IAAM,MAAMC,KAASF,EAAWE,EAAMC,SACtC,OAAOL,CACN,EANY,CADKV,SAASM,cAsDd,sCA9CdU,EAAWT,EACXU,EAAIjB,SAASkB,cAAe,KAG5BC,EAAO,IAAIC,KAAM,CAAE,osBAiBgBZ,EAAYa,2DAE9B,CAAEC,KAAM,oFAEzBC,GADMC,OAAOC,KAAOD,OAAOE,WAChBC,gBAAiBR,GAExBS,UAAUC,WACdD,UAAUC,WAAYV,EAAMH,IAE5BC,EAAEa,SAAWvB,EACbU,EAAkB,KAAIM,EACtBvB,SAAS+B,KAAKC,YAAaf,GAC3BA,EAAEgB,QACFjC,SAAS+B,KAAKG,YAAajB,GAC5B,EAWAkB,CAAe,EAAqC,sBAAuB,EAc7ErC,GANQ,KACN,MAAMsC,EAAOpC,SAASa,iBAAkB,qBAExC,IAAM,MAAMwB,KAAOD,EAAOC,EAAInC,iBAAkB,QAASC,EAAa,IC9EjE,MAoCMmC,EAAiB,SAYjBC,EAAgB,QAkBhBC,EAAa,KAMbC,EAAgB,QCpEhBC,EAAiB,UAMjBC,EAAsB,GAAGD,SAMzBE,EAAqB,GAAGF,QAMxBG,EAA4B,GAAGD,IAAqBN,IAMpDQ,EAAuB,GAAGJ,KAAkBD,IAM5CM,EAAuB,GAAGL,KAAkBH,IAM5CS,EAAwB,GAAGN,KAAkBJ,IAM7CW,EAAoB,GAAGP,OAMvBQ,EAA4B,GAAGR,cAM/BS,EAAsC,GAAGT,uBCzCzCU,EAAqB,CAAEC,EAAQC,IAAc,KAClDD,GAAUrD,UAAWa,iBAAkByC,IAQlCC,EAAoBC,GAAe,IAAIA,ICVvCC,EAAU,CAEtBC,MAAO,GACPC,KAAM,GACNC,OAAQ,CAAC,EACTC,KAAMrC,OAAOsC,KAAKC,aAAe,KAMjC,UAAIV,GACH,OAAOrD,SAASM,cAAe,SAASoC,IACzC,EAMA,eAAIsB,GACH,MAAMA,EAAc,GACnBC,EAAcV,EAAiB,GAAGb,kBAA+BE,KACjEe,EAAOP,EAAoBpD,SAAUiE,GAGtC,IAAM,MAAMC,KAAOP,EAAO,CACzB,MAAMQ,EAAiB,CAAC,EACvBC,EAAgBb,EACbW,EAAIG,KAAOxB,EAA8BI,EAAoBN,GAEhE2B,EAAyBlB,EAAoBc,EAAKE,GAGnD,IAAM,MAAMG,KAAQD,EACbC,EAAKC,UAAUC,SAAU,eAC9BN,EAAgBI,EAAKG,QAAQC,KAAQJ,EAAKG,QAAQE,OAGpDZ,EAAYa,KAAMV,EACnB,CAEA,OAAOH,CACR,EAKA,WAAAc,GACC,MAAMzB,EAAS0B,KAAK1B,OAAQ,GAC3B2B,EAAS3B,EAASA,EAAO/C,cAAe,GAAGkC,wBAAoC,KAC3EwC,IACJA,EAAOC,MAAMC,SAAW,SACxBF,EAAOC,MAAME,IAAM,IAErB,EAKAC,aAAc,CAUb,IAAAb,CAAML,EAAKS,EAAKC,EAAO7E,GACtB,MAAMU,EAAOT,SAASkB,cHhCC,MGiCtBmE,EAASrF,SAASkB,cH/DQ,UG4E3B,OAZAT,EAAK+C,UAAYb,EACjBlC,EAAKiE,QAAQR,IAAMA,EACnBmB,EAAOhE,UAAY,SACN,cAARsD,GACJlE,EAAKuB,YAAaqD,GAClBA,EAAOC,QAAUvF,IAEjBU,EAAK4D,GAAK,GAAG3B,KAAkBwB,KAAOS,IACtClE,EAAKiE,QAAQC,IAAMA,EACnBlE,EAAKiE,QAAQE,MAAQA,EACrBnE,EAAKY,UAAYuD,GAEXnE,CACR,EAOA,GAAAyD,CAAKA,GACJ,MAAMzD,EAAOT,SAASkB,cAAesB,GAIrC,OAHA/B,EAAK+C,UAAYZ,EACjBnC,EAAK4D,GAAK,GAAGzB,IAAqBsB,IAClCzD,EAAKiE,QAAQR,IAAMA,EACZzD,CACR,EAMA,KAAA8E,GACC,MAAM9E,EAAOT,SAASkB,cAAeqB,GAErC,OADA9B,EAAK+C,UAAYT,EACVtC,CACR,EASA,EAAA+E,CAAIb,EAAKC,EAAOa,GACf,MAAMhF,EAAOT,SAASkB,cH1EC,MGqFvB,OAVAT,EAAK+C,UAAYP,EACjBxC,EAAKwE,MAAMQ,MAAQA,EACnBhF,EAAKY,UAAYuD,EACJ,cAARD,EACJlE,EAAK+D,UAAUkB,IAAK,cAEpBjF,EAAK4D,GAAK,GAAGpB,KAAqB0B,IAClClE,EAAKiE,QAAQC,IAAMA,EACnBlE,EAAKiE,QAAQE,MAAQA,GAEfnE,CACR,EAMA,KAAAiD,GACC,MAAMjD,EAAOT,SAASkB,cAAeuB,GAErC,OADAhC,EAAK+C,UAAYV,EACVrC,CACR,EAOA,MAAAuE,CAAQjF,GACP,MAAMU,EAAOT,SAASkB,cAAeoB,GACpCrB,EAAIjB,SAASkB,cAAe,KAQ7B,OAPAT,EAAKkF,KAAO,UACZlF,EAAK+C,UAAYR,EACjBvC,EAAKY,UAAY,gBAAgB6B,aACjCzC,EAAKuB,YAAaf,GAElBA,EAAEuC,UAAYL,EACdlC,EAAEqE,QAAUvF,EACLU,CACR,GAMD,IAAAmF,GACC,MAAMC,EAAOd,KACb,GAAKc,EAAKxC,OAAS,CAElB,IAAM,MAAMyC,KAAKD,EAAKhC,KAAKkC,YAC1BhB,KAAKrB,MAAMmB,KAAM,CAChBF,IAAKmB,EACLL,MAAOI,EAAKhC,KAAKkC,YAAaD,GAAIL,MAClCb,MAAOiB,EAAKhC,KAAKkC,YAAaD,GAAIE,QAKpC,IAAM,MAAMF,KAAKD,EAAKhC,KAAKoC,QAAU,CACpCJ,EAAKlC,KAAKkB,KAAM,CACfX,IAAK4B,EACLI,MAAO,KAIR,IAAM,MAAMC,KAAKN,EAAKhC,KAAKoC,QAASH,GAC9BM,OAAOC,OAAQR,EAAKhC,KAAKoC,QAASH,GAAKK,IAC3CN,EAAKlC,KAAMmC,GAAII,MAAMrB,KAAM,CAC1BX,IAAK4B,EACLnB,IAAKwB,EACLvB,MAAOiB,EAAKhC,KAAKoC,QAASH,GAAKK,KAI7BN,EAAKhC,KAAKyC,QAAQC,iBACtBV,EAAKlC,KAAMmC,GAAII,MAAMrB,KAAM,CAC1BX,IAAK4B,EACLnB,IAAK,YACLC,MAAO,UAGV,CACAG,KAAK1B,OAAOmD,cAAcC,QACzB1B,KAAKK,aAAaJ,OAAQD,KAAK2B,YAAYC,KAAM5B,QAElDA,KAAK6B,aACL7B,KAAKD,aACN,CACD,EAKA,UAAA8B,GACC,MAAMf,EAAOd,KAGbA,KAAK1B,OAAOrB,YAAa+C,KAAKK,aAAaG,SAG3CR,KAAK1B,OAAO/C,cAAeiC,GACzBP,YAAa+C,KAAKK,aAAalB,IAAK5B,IAEtCyC,KAAKrB,MAAMmD,SAAS,EAAIlC,MAAKC,QAAOa,YACnCV,KAAK1B,OAAO/C,cAAe,GAAGiC,KAAiBC,KAAeR,YAC7D+C,KAAKK,aAAaI,GAAIb,EAAKC,EAAOa,GAClC,IAIFV,KAAKpB,KAAKkD,SAAS,EAClB3C,MAAKgC,YAELnB,KAAK1B,OACH/C,cAAeiC,GACfuE,OAAQ/B,KAAKK,aAAalB,IAAKA,IACjC,MAAM6C,EAAYhC,KAAK1B,OAAO/C,cAAe,IAAIsC,eAAgCsB,OAKjF,SAAS8C,IACRjC,KAAKkC,QAASzE,GAAazB,SAC3B8E,EAAKqB,YACN,CAEAhB,EAAMW,SAAS,EAAI3C,IAAKiD,EAAMxC,MAAKC,YAClCmC,EAAUD,OACT/B,KAAKK,aAAab,KAAM4C,EAAMxC,EAAKC,EAAOoC,GAC1C,GACC,IAGJjC,KAAKnB,OAAOwD,QAAYrC,KAAK1B,OAAOxC,iBAAkB2B,GAAaoB,OAAS,EAC5EmB,KAAKmC,YACN,EAKA,WAAAR,GACC3B,KAAK1B,OAAO/C,cAAeiC,GAAgBxB,SAC3CgE,KAAK6B,YACN,EAKA,UAAAM,GACC,MAAMG,EAAQrH,SAASM,cAAe,GAAGgC,KAAkBU,QAA4BE,KACtFoE,EAAUtH,SAASM,cAAe,GAAGgC,KAAkBU,QAA4BG,KAEpF4B,KAAKnB,OAAO2D,QAAYxC,KAAK1B,OAAOxC,iBAAkB2B,GAAaoB,OAAS,EAC5EmB,KAAKnB,OAAO4D,MAAQzC,KAAKnB,OAAOwD,QAAUrC,KAAKnB,OAAO2D,QACzB,IAAxBxC,KAAKnB,OAAO2D,QAChBF,EAAMhG,UAAY,WAAW0D,KAAKnB,OAAO2D,wBAC9BxC,KAAKnB,OAAO2D,QAAU,EACjCF,EAAMhG,UAAY,WAAW0D,KAAKnB,OAAO2D,0BAEzCF,EAAMhG,UAAY,wBAEQ,IAAtB0D,KAAKnB,OAAO4D,MAChBF,EAAQjG,UAAY,WAAW0D,KAAKnB,OAAO4D,uBAChCzC,KAAKnB,OAAO4D,MAAQ,EAC/BF,EAAQjG,UAAY,WAAW0D,KAAKnB,OAAO4D,wBAE3CF,EAAQjG,UAAY,EAEtB,EAKA,QAAAoG,GACC,MAAMC,EAAW,GAChBxB,EAAQ9C,EAAoB2B,KAAK1B,OAAQ,GAAGb,wBAG7C,IAAM,MAAM+B,KAAQ2B,EACbwB,EAAUnD,EAAKG,QAAQR,OAAQwD,EAAUnD,EAAKG,QAAQR,KAAQ,IACpEwD,EAAUnD,EAAKG,QAAQR,KAAOK,EAAKG,QAAQC,KAAQJ,EAAKG,QAAQE,MAGjE,IAAI+C,EAAM,GACV,IAAM,IAAI7B,EAAI,EAAGA,EAAI4B,EAAS9D,OAAQkC,IACrC6B,GAAO,GAAGD,EAAU5B,GAAI8B,KAAM,WAE/BpG,OAAOqG,KAAM,+BAA+BC,mBAAoBH,KACjE,GC/SAI,EAAe3H,IACd,MAAMiD,EAASjD,EAAE4H,cAChB3D,EAAKhB,EAAO4E,aAAcpI,GAC1BqI,EAAUlI,SAASmI,eAAgB9D,GACpChB,EAAO+E,gBAAiBvI,GACxBqI,EAAQnH,QAAQ,EAOjBsH,EAAgBjI,IACf,MAAMiD,EAASjD,EAAE4H,cAChBM,EAAQjF,EAAOkF,yBACf,QAAEC,EAAO,UAAEC,GAAcpF,EAAOqB,QAChCL,EAAKqE,OAAOC,aACZC,EAAM5I,SAASkB,cJPS,OIkBzB,OATAd,EAAEC,iBAEFuI,EAAkB,GAAIvE,EACtBuE,EAAIpF,UAhCqB,CAAE0B,IAC3B,MAAM2D,EAAM,CAAE,cAEd,OADK3D,GAAW2D,EAAIhE,KAAM,GAAGgE,MAAQ3D,KAC9B2D,EAAIjB,KAAM,IAAK,EA6BNkB,CAAoBL,GACpCG,EAAIvH,UAAYmH,EAChBxI,SAAS+B,KAAKC,YAAa4G,GAC3BvF,EAAO0F,aAAclJ,EAA6BwE,GAGzCoE,GACR,IAAK,OAML,IAAK,SAEL,IAAK,MAEL,QACC,MATD,IAAK,QACJG,EAAI3D,MAAME,IAAWmD,EAAMnD,IAAQmD,EAAMU,OAAS,EAAUJ,EAAIK,aAAe,EAA/D,KAChBL,EAAI3D,MAAMiE,KAAO,GAAGZ,EAAMa,UAQ5B,EC3CF3H,OAAO4H,eAAiB,KACvB,MAAMpF,EAAc,GACnBC,EAAcV,EAAiB,GAAGb,kBAA+BE,KACjEe,EAAOP,EAAoBpD,SAAUiE,GAGtC,IAAM,MAAMC,KAAOP,EAAO,CACzB,MAAMQ,EAAiB,CAAC,EACvBC,EAAgBb,EACbW,EAAIG,KAAOxB,EAA8BI,EAAoBN,GAEhE/B,EAAWwC,EAAoBc,EAAKE,GAGrC,IAAM,MAAMtD,KAASF,EACdE,EAAM0D,UAAU6E,SAAU,eAC/BlF,EAAgBrD,EAAM4D,QAAQC,KAAQ7D,EAAM4D,QAAQE,OAItDZ,EAAYa,KAAMV,EACnB,CAEA,OAAOH,CAAW,EAYnBlE,GANa,KACZ2D,EAAQI,KAAOrC,OAAOqC,KACtBJ,EAAQmC,ODkBkB,MAC1B,MAAM0D,EAAUtJ,SAASa,iBAAkB,4BAG3C,IAAM,MAAM0I,KAAUD,EAEf,UADGC,EAAO7E,QAAQ4C,UAEtBiC,EAAOrJ,iBAAkB,YAAamI,GAAa,GACnDkB,EAAOrJ,iBAAkB,WAAY6H,GAAY,GAKpD,EC9BAyB,EAAa,G","sources":["webpack://app-assets/./src/common/html/js/config.attributes.mjs","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/html/js/config.elements.mjs","webpack://app-assets/./src/common/html/js/config.classes.mjs","webpack://app-assets/./src/common/html/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 * 'aria-hidden' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_ARIA_HIDDEN = 'aria-hidden';\r\n\r\n/**\r\n * 'aria-pressed' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_ARIA_PRESSED = 'aria-pressed';\r\n\r\n/**\r\n * 'autofocus' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_AUTOFOCUS = 'autofocus';\r\n\r\n/**\r\n * 'aria-describedby' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_ARIA_DESCRIBED_BY = 'aria-describedby';\r\n\r\n/**\r\n * 'disabled' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_DISABLED = 'disabled';\r\n\r\n/**\r\n * 'hidden' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_HIDDEN = 'hidden';\r\n\r\n/**\r\n * 'href' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_HREF = 'href';\r\n\r\n/**\r\n * 'id' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_ID = 'id';\r\n\r\n/**\r\n * 'name' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_NAME = 'name';\r\n\r\n/**\r\n * 'style' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_STYLE = 'style';\r\n\r\n/**\r\n * 'title' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_TITLE = 'title';\r\n\r\n/**\r\n * 'type' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_TYPE = 'type';\r\n\r\n/**\r\n * 'value' attribute\r\n * @type {string}\r\n */\r\nexport const ATTRIBUTE_VALUE = 'value';\r\n","/**\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 { ATTRIBUTE_HREF } from '#common/html/js/config.attributes.mjs';\r\nimport { 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[ ATTRIBUTE_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","/**\r\n * 'adi-account' custom element encapsulating auth logic\r\n * @type {string}\r\n */\r\nexport const ELEMENT_ADI_ACCOUNT = 'adi-account';\r\n\r\n/**\r\n * 'adi-footer' custom element\r\n * @type {string}\r\n */\r\nexport const ELEMENT_ADI_FOOTER = 'adi-footer';\r\n\r\n/**\r\n * 'adi-header' custom element\r\n * @type {string}\r\n */\r\nexport const ELEMENT_ADI_HEADER = 'adi-header';\r\n\r\n/**\r\n * 'adi-menu' custom element\r\n * @type {string}\r\n */\r\nexport const ELEMENT_ADI_MENU = 'adi-menu';\r\n\r\n/**\r\n * 'button' element\r\n * @type {string}\r\n */\r\nexport const ELEMENT_BUTTON = 'button';\r\n\r\n/**\r\n * 'div' element\r\n * @type {string}\r\n */\r\nexport const ELEMENT_DIV = 'div';\r\n\r\n/**\r\n * 'header' element\r\n * @type {string}\r\n */\r\nexport const ELEMENT_HEADER = 'header';\r\n\r\n/**\r\n * 'input' element\r\n * @type {string}\r\n */\r\nexport const ELEMENT_INPUT = 'input';\r\n\r\n/**\r\n * 'tbody' element\r\n * @type {string}\r\n */\r\nexport const ELEMENT_TBODY = 'tbody';\r\n\r\n/**\r\n * 'td' element\r\n * @type {string}\r\n */\r\nexport const ELEMENT_TD = 'td';\r\n\r\n/**\r\n * 'th' element\r\n * @type {string}\r\n */\r\nexport const ELEMENT_TH = 'th';\r\n\r\n/**\r\n * 'tr' element\r\n * @type {string}\r\n */\r\nexport const ELEMENT_TR = 'tr';\r\n\r\n/**\r\n * 'thead' element\r\n * @type {string}\r\n */\r\nexport const ELEMENT_THEAD = 'thead';\r\n","import {\r\n\tELEMENT_HEADER, ELEMENT_TBODY, ELEMENT_TH, ELEMENT_THEAD,\r\n} from './config.elements.mjs';\r\n\r\n/**\r\n * 'ADIGrid' class name\r\n * @type {string}\r\n */\r\nexport const CLASS_ADI_GRID = 'ADIGrid';\r\n\r\n/**\r\n * 'ADIGrid-cell' class name\r\n * @type {string}\r\n */\r\nexport const CLASS_ADI_GRID_CELL = `${CLASS_ADI_GRID}-cell`;\r\n\r\n/**\r\n * 'ADIGrid-row' class name\r\n * @type {string}\r\n */\r\nexport const CLASS_ADI_GRID_ROW = `${CLASS_ADI_GRID}-row`;\r\n\r\n/**\r\n * 'ADIGrid-rowheader' class name\r\n * @type {string}\r\n */\r\nexport const CLASS_ADI_GRID_ROW_HEADER = `${CLASS_ADI_GRID_ROW}${ELEMENT_HEADER}`;\r\n\r\n/**\r\n * 'ADIGrid-thead' class name\r\n * @type {string}\r\n */\r\nexport const CLASS_ADI_GRID_THEAD = `${CLASS_ADI_GRID}-${ELEMENT_THEAD}`;\r\n\r\n/**\r\n * 'ADIGrid-tbody' class name\r\n * @type {string}\r\n */\r\nexport const CLASS_ADI_GRID_TBODY = `${CLASS_ADI_GRID}-${ELEMENT_TBODY}`;\r\n\r\n/**\r\n * 'ADIGrid-header' class name\r\n * @type {string}\r\n */\r\nexport const CLASS_ADI_GRID_HEADER = `${CLASS_ADI_GRID}-${ELEMENT_HEADER}`;\r\n\r\n/**\r\n * 'ADIGrid-th' class name\r\n * @type {string}\r\n */\r\nexport const CLASS_ADI_GRID_TH = `${CLASS_ADI_GRID}-${ELEMENT_TH}`;\r\n\r\n/**\r\n * 'ADIGrid-dataCount' class name\r\n * @type {string}\r\n */\r\nexport const CLASS_ADI_GRID_DATA_COUNT = `${CLASS_ADI_GRID}-dataCount`;\r\n\r\n/**\r\n * 'ADIGrid-restoreViewTrigger' class name\r\n * @type {string}\r\n */\r\nexport const CLASS_ADI_GRID_RESTORE_VIEW_TRIGGER = `${CLASS_ADI_GRID}-restoreViewTrigger`;\r\n","/**\r\n * @module common/html\r\n */\r\n\r\n/**\r\n * Dispatches a custom event\r\n * @param {EventTarget} target - EventTarget to which the event needs to be dispatched\r\n * @param {string} event - name of the custom event that needs to be triggered\r\n * @param {object} detail - Data that needs to be dispatched with the event\r\n */\r\nexport const dispatchCustomEvent = ( target, event, detail = {} ) => {\r\n\tconst ev = new CustomEvent( event, { detail } );\r\n\ttarget?.dispatchEvent( ev );\r\n};\r\n\r\n/**\r\n * Queries elements and returns an array instead of a node list\r\n * @param {HTMLElement} target Target of the query\r\n * @param {string} selector Query selector string to be retrieved\r\n * @returns {Array} Array of elements\r\n */\r\nexport const querySelectorArray = ( target, selector ) => (\r\n\t[ ...( target ?? document ).querySelectorAll( selector ) ]\r\n);\r\n\r\n/**\r\n * Converts the class name into a CSS selector\r\n * @param {string} className Class name to convert\r\n * @returns {string} Converted class name\r\n */\r\nexport const toClassSelector = ( className ) => `.${className}`;\r\n\r\n/**\r\n * Creates a mutation observer instance for the passed action\r\n * @param {Element} target Target to observe the mutations of\r\n * @param {Function} action Action to be performed for every mutation\r\n * @param {object} options Observer options\r\n */\r\nexport const observeMutationsFor = ( target, action = () => {}, options = {} ) => {\r\n\tconst actionObserver = new MutationObserver( action );\r\n\tactionObserver.observe( target, { childList: true, subtree: true, ...options } );\r\n};\r\n\r\n/**\r\n * Creates a resize observer instance for the passed action\r\n * @param {Element} target Target to observe the resize of\r\n * @param {Function} action Action to be performed for every resize event\r\n * @param {object} options Observer options\r\n */\r\nexport const observeResizeFor = ( target, action = () => {}, options = {} ) => {\r\n\tconst actionObserver = new ResizeObserver( action );\r\n\tactionObserver.observe( target, { ...options } );\r\n};\r\n","import {\r\n\tCLASS_ADI_GRID, CLASS_ADI_GRID_CELL, CLASS_ADI_GRID_DATA_COUNT,\r\n\tCLASS_ADI_GRID_HEADER, CLASS_ADI_GRID_RESTORE_VIEW_TRIGGER, CLASS_ADI_GRID_ROW,\r\n\tCLASS_ADI_GRID_ROW_HEADER, CLASS_ADI_GRID_TBODY, CLASS_ADI_GRID_TH,\r\n\tCLASS_ADI_GRID_THEAD,\r\n} from '#common/html/js/config.classes.mjs';\r\nimport {\r\n\tELEMENT_BUTTON, ELEMENT_HEADER, ELEMENT_TBODY, ELEMENT_TD, ELEMENT_TH, ELEMENT_THEAD, ELEMENT_TR,\r\n} from '#common/html/js/config.elements.mjs';\r\nimport { querySelectorArray, toClassSelector } from '#common/html/js/index.mjs';\r\nimport '../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.${CLASS_ADI_GRID}` );\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\trowSelector = toClassSelector( `${CLASS_ADI_GRID}:not(.clone) .${CLASS_ADI_GRID_ROW}` ),\r\n\t\t\trows = querySelectorArray( document, rowSelector );\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\tchildSelector = toClassSelector(\r\n\t\t\t\t\t( row.id === CLASS_ADI_GRID_ROW_HEADER ) ? CLASS_ADI_GRID_TH : CLASS_ADI_GRID_CELL,\r\n\t\t\t\t),\r\n\t\t\t\tcurrentViewRowChildren = querySelectorArray( row, childSelector );\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( `${ELEMENT_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( ELEMENT_TD ),\r\n\t\t\t\tbutton = document.createElement( ELEMENT_BUTTON );\r\n\t\t\telem.className = CLASS_ADI_GRID_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 = `${CLASS_ADI_GRID}-${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( ELEMENT_TR );\r\n\t\t\telem.className = CLASS_ADI_GRID_ROW;\r\n\t\t\telem.id = `${CLASS_ADI_GRID_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( ELEMENT_TBODY );\r\n\t\t\telem.className = CLASS_ADI_GRID_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( ELEMENT_TH );\r\n\t\t\telem.className = CLASS_ADI_GRID_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 = `${CLASS_ADI_GRID_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( ELEMENT_THEAD );\r\n\t\t\telem.className = CLASS_ADI_GRID_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( ELEMENT_HEADER ),\r\n\t\t\t\ta = document.createElement( 'a' );\r\n\t\t\telem.role = 'heading';\r\n\t\t\telem.className = CLASS_ADI_GRID_HEADER;\r\n\t\t\telem.innerHTML = ``;\r\n\t\t\telem.appendChild( a );\r\n\r\n\t\t\ta.className = CLASS_ADI_GRID_RESTORE_VIEW_TRIGGER;\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( ELEMENT_TBODY )\r\n\t\t\t.appendChild( this.constructors.row( ELEMENT_HEADER ) );\r\n\r\n\t\tthis.thead.forEach( ( { key, value, width } ) => {\r\n\t\t\tthis.target.querySelector( `${ELEMENT_TBODY}>${ELEMENT_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( ELEMENT_TBODY )\r\n\t\t\t\t.append( this.constructors.row( row ) );\r\n\t\t\tconst rowTarget = this.target.querySelector( `.${CLASS_ADI_GRID_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( ELEMENT_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( ELEMENT_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( ELEMENT_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( `${ELEMENT_HEADER}.${CLASS_ADI_GRID_HEADER} > .${CLASS_ADI_GRID_DATA_COUNT}` ),\r\n\t\t\ttrigger = document.querySelector( `${ELEMENT_HEADER}.${CLASS_ADI_GRID_HEADER} > .${CLASS_ADI_GRID_RESTORE_VIEW_TRIGGER}` );\r\n\r\n\t\tthis.length.current = ( this.target.querySelectorAll( ELEMENT_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 = querySelectorArray( this.target, `${ELEMENT_TR} ${ELEMENT_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 { ATTRIBUTE_ARIA_DESCRIBED_BY, ATTRIBUTE_ID } from '#common/html/js/config.attributes.mjs';\r\nimport { ELEMENT_DIV } from '#common/html/js/config.elements.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( ATTRIBUTE_ARIA_DESCRIBED_BY ),\r\n\t\t\tpopover = document.getElementById( id );\r\n\t\ttarget.removeAttribute( ATTRIBUTE_ARIA_DESCRIBED_BY );\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( ELEMENT_DIV );\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\tdiv[ ATTRIBUTE_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( ATTRIBUTE_ARIA_DESCRIBED_BY, 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\nimport { querySelectorArray, toClassSelector } from '#common/html/js/index.mjs';\r\nimport {\r\n\tCLASS_ADI_GRID, CLASS_ADI_GRID_CELL, CLASS_ADI_GRID_ROW,\r\n\tCLASS_ADI_GRID_ROW_HEADER, CLASS_ADI_GRID_TH,\r\n} from '#common/html/js/config.classes.mjs';\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\trowSelector = toClassSelector( `${CLASS_ADI_GRID}:not(.clone) .${CLASS_ADI_GRID_ROW}` ),\r\n\t\trows = querySelectorArray( document, rowSelector );\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\tchildSelector = toClassSelector(\r\n\t\t\t\t( row.id === CLASS_ADI_GRID_ROW_HEADER ) ? CLASS_ADI_GRID_TH : CLASS_ADI_GRID_CELL,\r\n\t\t\t),\r\n\t\t\tchildren = querySelectorArray( row, childSelector );\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":["ATTRIBUTE_ARIA_DESCRIBED_BY","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","body","appendChild","click","removeChild","fnExcelReport","btns","btn","ELEMENT_HEADER","ELEMENT_TBODY","ELEMENT_TR","ELEMENT_THEAD","CLASS_ADI_GRID","CLASS_ADI_GRID_CELL","CLASS_ADI_GRID_ROW","CLASS_ADI_GRID_ROW_HEADER","CLASS_ADI_GRID_THEAD","CLASS_ADI_GRID_TBODY","CLASS_ADI_GRID_HEADER","CLASS_ADI_GRID_TH","CLASS_ADI_GRID_DATA_COUNT","CLASS_ADI_GRID_RESTORE_VIEW_TRIGGER","querySelectorArray","target","selector","toClassSelector","className","ADIGrid","thead","rows","length","data","ADI","ADIGridData","currentView","rowSelector","row","currentViewRow","childSelector","id","currentViewRowChildren","cell","classList","contains","dataset","key","value","push","cloneHeader","this","header","style","position","top","constructors","button","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":""}