-
Notifications
You must be signed in to change notification settings - Fork 0
/
ui.js.map
1 lines (1 loc) · 54.8 KB
/
ui.js.map
1
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"React\"","webpack:///external \"ReactRedux\"","webpack:///./src/ui/scripts/components/top-link.tsx","webpack:///./src/ui/scripts/components/struct-data.tsx","webpack:///./src/ui/scripts/store/actions.ts","webpack:///./src/ui/scripts/components/nav-link.tsx","webpack:///external \"Redux\"","webpack:///./src/ui/scripts/worker-message.ts","webpack:///./src/ui/scripts/worker-client.ts","webpack:///./src/ui/scripts/action-listener.ts","webpack:///./src/ui/scripts/components/page-footer.tsx","webpack:///./src/ui/scripts/components/paginate.tsx","webpack:///./src/ui/scripts/components/paged-item-list-page.tsx","webpack:///./src/ui/scripts/components/mds-table-page.tsx","webpack:///./src/ui/scripts/components/md-headers-page.tsx","webpack:///./src/ui/scripts/components/headers-page.tsx","webpack:///./src/ui/scripts/components/open-file-page.tsx","webpack:///./src/ui/scripts/components/page-content.tsx","webpack:///./src/ui/scripts/components/page-nav-list.tsx","webpack:///./src/ui/scripts/components/page-header.tsx","webpack:///./src/ui/scripts/components/app.tsx","webpack:///./src/ui/scripts/store/reducers.ts","webpack:///external \"ReactDOM\"","webpack:///./src/ui/scripts/index.tsx"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","React","ReactRedux","nav_link_1","TopLinkClass","_super","__extends","render","pageID","this","props","target","title","createElement","className","NavLink","Component","TopLink","connect","state","pageData","nav","renderTableTitle","elemID","id","renderStructTitle","renderStructItemRow","item","offset","size","rawData","descriptions","map","v","renderSimpleStruct","StructTable","items","toString","renderGroupedStruct","groups","gv","gi","colSpan","concat","children","createOpenFileAction","file","type","createOpenNavAction","createSetNavListAction","navList","createSetPageDataAction","data","createSetPEPropsAction","is32Bit","isManaged","A","NavLinkClass","_a","disable","text","extraClass","onClick","dispatch","ownProps","Redux","createReqOpenFileMessage","createReqOpenNavMessage","_worker","_store","WM","workerClientMiddleware","store","next","action","postMessage","getState","pageNum","initWorkerClient","Worker","onmessage","ev","msg","handleMessage","scrollElement","setTimeout","elem","document","getElementById","scrollIntoView","scrollTop","actionListenerMiddleware","appInfo","PageFooterClass","version","author","homepage","bugsUrl","releaseNotesUrl","buildTimeLocal","year","href","replace","PageFooter","PaginateClass","_this","handleSelectChange","paging","pageNavList","length","currentPageNumber","onChange","evt","onSelectionChange","currentTarget","selectedIndex","Paginate","struct_data_1","top_link_1","paginate_1","PagedItemListPage","MdsTablePage","tableHeader","renderTableList","tableInfo","index","rows","valid","sorted","MetadataHeadersPage","cliHeader","renderMetadataRoot","renderStreamHeaders","renderSNSignature","metadataRoot","Fragment","streamHeaders","snSignature","HeadersPage","dosHeader","peSignature","fileHeader","optionalHeader","dataDirectories","sectionHeaders","OpenFilePageClass","onFileChange","onFileSelected","fileList","files","OpenFilePage","open_file_page_1","headers_page_1","md_headers_page_1","mds_table_page_1","paged_item_list_page_1","PageContentClass","renderContent","PageContent","PageNavListClass","renderNavList","isSelected","subID","PageNavList","PageHeaderClass","fileInfo","renderFileInfo","renderWelcome","renderPageTitle","toLocaleString","PageHeader","page_header_1","page_nav_list_1","page_content_1","page_footer_1","App","appReducer","combineReducers","name_1","assign","navList_1","ReactDOM","packageJson","R","app_1","action_listener_1","worker_client_1","bugs_url","release_notes","Date","parse","build_time","getFullYear","defaultState","composeEnhancers","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStore","applyMiddleware","Provider"],"mappings":"aACA,IAAAA,KAGA,SAAAC,EAAAC,GAGA,GAAAF,EAAAE,GACA,OAAAF,EAAAE,GAAAC,QAGA,IAAAC,EAAAJ,EAAAE,IACAG,EAAAH,EACAI,GAAA,EACAH,YAUA,OANAI,EAAAL,GAAAM,KAAAJ,EAAAD,QAAAC,IAAAD,QAAAF,GAGAG,EAAAE,GAAA,EAGAF,EAAAD,QAKAF,EAAAQ,EAAAF,EAGAN,EAAAS,EAAAV,EAGAC,EAAAU,EAAA,SAAAR,EAAAS,EAAAC,GACAZ,EAAAa,EAAAX,EAAAS,IACAG,OAAAC,eAAAb,EAAAS,GAA0CK,YAAA,EAAAC,IAAAL,KAK1CZ,EAAAkB,EAAA,SAAAhB,GACA,oBAAAiB,eAAAC,aACAN,OAAAC,eAAAb,EAAAiB,OAAAC,aAAwDC,MAAA,WAExDP,OAAAC,eAAAb,EAAA,cAAiDmB,OAAA,KAQjDrB,EAAAsB,EAAA,SAAAD,EAAAE,GAEA,GADA,EAAAA,IAAAF,EAAArB,EAAAqB,IACA,EAAAE,EAAA,OAAAF,EACA,KAAAE,GAAA,iBAAAF,QAAAG,WAAA,OAAAH,EACA,IAAAI,EAAAX,OAAAY,OAAA,MAGA,GAFA1B,EAAAkB,EAAAO,GACAX,OAAAC,eAAAU,EAAA,WAAyCT,YAAA,EAAAK,UACzC,EAAAE,GAAA,iBAAAF,EAAA,QAAAM,KAAAN,EAAArB,EAAAU,EAAAe,EAAAE,EAAA,SAAAA,GAAgH,OAAAN,EAAAM,IAAqBC,KAAA,KAAAD,IACrI,OAAAF,GAIAzB,EAAA6B,EAAA,SAAA1B,GACA,IAAAS,EAAAT,KAAAqB,WACA,WAA2B,OAAArB,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAH,EAAAU,EAAAE,EAAA,IAAAA,GACAA,GAIAZ,EAAAa,EAAA,SAAAiB,EAAAC,GAAsD,OAAAjB,OAAAkB,UAAAC,eAAA1B,KAAAuB,EAAAC,IAGtD/B,EAAAkC,EAAA,GAIAlC,IAAAmC,EAAA,oBClFAhC,EAAAD,QAAAkC,qBCAAjC,EAAAD,QAAAmC,2WCAA,IAAAD,EAAApC,EAAA,GACAqC,EAAArC,EAAA,GAGAsC,EAAAtC,EAAA,GAcA,IAAAuC,EAAA,SAAAC,GAAA,SAAAD,mDAmBA,OAnB2BE,EAAAF,EAAAC,GAChBD,EAAAP,UAAAU,OAAP,WACY,IAAAC,EAAAC,KAAAC,MAAAF,OAER,GAAKA,EAEE,CACH,IAAMG,GACFH,OAAMA,EACNI,MAAK,OAGT,OACIX,EAAAY,cAAA,OAAKC,UAAU,WACXb,EAAAY,cAACV,EAAAY,SAAQJ,OAAQA,EAAQC,MAAM,iBATvC,OAAO,MAcnBR,EAnBA,CAA2BH,EAAMe,WAqBpBjD,EAAAkD,QAAUf,EAAWgB,QA7BlC,SAAyBC,GACb,IAAAC,EAAAD,EAAAC,SAER,OACIZ,OAAQY,GAAYA,EAASC,IAAIb,SAyBlBN,CAAoCE,mWCvC3D,IAAAH,EAAApC,EAAA,GAGA,SAAAyD,EAAiCV,EAAeW,GAC5C,OAAOtB,EAAAY,cAAA,MAAIW,GAAID,EAAQT,UAAU,gBAAgBF,GA8BrD,SAAAa,EAA2BzB,GACvB,OAAOsB,EAAiBtB,EAAEY,MAAOZ,EAAEuB,QAGvC,SAAAG,EAA6BC,EAAoBnC,GACrC,IAAAoC,EAAAD,EAAAC,OAAQC,EAAAF,EAAAE,KAAMC,EAAAH,EAAAG,QAAStD,EAAAmD,EAAAnD,KAAMU,EAAAyC,EAAAzC,MAAOyC,EAAAI,aAC5C,OACI9B,EAAAY,cAAA,MAAIrB,IAAKA,EAAKsB,UAAU,SACpBb,EAAAY,cAAA,UAAKe,GACL3B,EAAAY,cAAA,UAAKgB,GACL5B,EAAAY,cAAA,UAAKiB,EAAQE,IAAI,SAACC,EAAGhE,GAAM,OAAAgC,EAAAY,cAAA,OAAKC,UAAU,UAAUtB,IAAKvB,GAAIgE,MAC7DhC,EAAAY,cAAA,UAAKrC,GACLyB,EAAAY,cAAA,MAAIC,UAAU,QAAQ5B,GACtBe,EAAAY,cAAA,YA5CZ9C,EAAAuD,mBAIAvD,EAAAmE,mBAAA,SAAmClC,GAC/B,OACIC,EAAAY,cAAA,OAAKC,UAAU,eACVW,EAAkBzB,GACnBC,EAAAY,cAACsB,EAAW,KACPnC,EAAEoC,OAASpC,EAAEoC,MAAMJ,IAAI,SAACC,EAAGhE,GAAM,OAAAyD,EAAoBO,EAAGhE,EAAEoE,iBAM3EtE,EAAAuE,oBAAA,SAAoCtC,GAChC,OACIC,EAAAY,cAAA,OAAKC,UAAU,eACVW,EAAkBzB,GACnBC,EAAAY,cAACsB,EAAW,KACPnC,EAAEuC,QAAUvC,EAAEuC,OAAOP,IAAI,SAACQ,EAAIC,GAC3B,QA4Be7B,EA3Be4B,EAAG5B,MA2BHpB,EA3BUiD,EAAGJ,WA4BpDzB,EAASX,EAAAY,cAAA,MAAIrB,IAAKA,EAAKsB,UAAU,aAAYb,EAAAY,cAAA,MAAI6B,QAAS,GAAI9B,IAAoB,OA3BvE+B,OAAOH,EAAGJ,OAASI,EAAGJ,MAAMJ,IAAI,SAACC,EAAGhE,GAClC,OAAAyD,EAAoBO,EAAMQ,EAAE,IAAIxE,UAyBxD,IAAmC2C,EAAepB,OAIlD,IAAA2C,EAAA,SAAA9B,GAAA,SAAA8B,mDAoBA,OApB0B7B,EAAA6B,EAAA9B,GACf8B,EAAAtC,UAAAU,OAAP,WACI,OACIN,EAAAY,cAAA,SAAOC,UAAU,gBACbb,EAAAY,cAAA,aACIZ,EAAAY,cAAA,MAAIC,UAAU,UACVb,EAAAY,cAAA,oBACAZ,EAAAY,cAAA,kBACAZ,EAAAY,cAAA,sBACAZ,EAAAY,cAAA,kBACAZ,EAAAY,cAAA,mBACAZ,EAAAY,cAAA,2BAGRZ,EAAAY,cAAA,aACKJ,KAAKC,MAAMkC,YAKhCT,EApBA,CAA0BlC,EAAMe,yDCxChCjD,EAAA8E,qBAAA,SAAqCC,GACjC,OAASC,KAAI,YAAwBD,KAAIA,IAO7C/E,EAAAiF,oBAAA,SAAoCrC,GAChC,OAASoC,KAAI,WAAuBpC,OAAMA,IAO9C5C,EAAAkF,uBAAA,SAAuCC,GACnC,OAASH,KAAI,eAA2BG,QAAOA,IAOnDnF,EAAAoF,wBAAA,SAAwCC,GACpC,OAASL,KAAI,gBAA4BK,KAAIA,IAQjDrF,EAAAsF,uBAAA,SAAuCC,EAAmBC,GACtD,OAASR,KAAI,eAA2BO,QAAOA,EAAEC,UAASA,oWClD9D,IAAAtD,EAAApC,EAAA,GACAqC,EAAArC,EAAA,GAEA2F,EAAA3F,EAAA,GAqBA,IAAA4F,EAAA,SAAApD,GAAA,SAAAoD,mDA0BA,OA1B2BnD,EAAAmD,EAAApD,GAChBoD,EAAA5D,UAAAU,OAAP,WACU,IAAAmD,EAAAjD,KAAAC,MAAEC,EAAA+C,EAAA/C,OAAQgD,EAAAD,EAAAC,QAASC,EAAAF,EAAAE,KAAMhD,EAAA8C,EAAA9C,MAAOiD,EAAAH,EAAAG,WAAYC,EAAAJ,EAAAI,QAE9ChD,EAAY,MAQhB,OAPI6C,IACA7C,GAAa,aAEb+C,IACA/C,GAAa,IAAM+C,GAGnBF,IAAYhD,EAERV,EAAAY,cAAA,QAAMC,UAAWA,EAAWF,MAAOA,GAC9BgD,GAKL3D,EAAAY,cAAA,KAAGC,UAAWA,EAAWF,MAAOA,GAASD,EAAOC,MAAOkD,QAASA,GAC3DF,GAAQjD,EAAOC,QAKpC6C,EA1BA,CAA2BxD,EAAMe,WA4BpBjD,EAAAgD,QAAUb,EAAWgB,QAAQ,KAlC1C,SAA6B6C,EAA2CC,GACpE,OACIF,QAAS,WAAQC,EAASP,EAAER,oBAAoBgB,EAASrD,YAgC1CT,CAA8CuD,kBCpDrEzF,EAAAD,QAAAkG,oDCEAlG,EAAAmG,yBAAA,SAAyCpB,GACrC,OACIC,KAAI,gBACJD,KAAIA,IAIZ/E,EAAAoG,wBAAA,SAAwCxD,GACpC,OACIoC,KAAI,eACJpC,OAAMA,kDCRd,IAqDIyD,EACAC,EAtDJb,EAAA3F,EAAA,GAEAyG,EAAAzG,EAAA,GAEaE,EAAAwG,uBAAyB,SAAEC,GAA2C,gBAACC,GAAqC,gBAACC,GACtH,OAAQA,EAAO3B,MACX,gBACY,IAAAD,EAAA4B,EAAA5B,KACRsB,EAAQO,YAAYL,EAAGJ,yBAAyBpB,IAChD,MAGJ,eACY,IAAAnC,EAAA+D,EAAA/D,OACAS,EAAAoD,EAAAI,WAAAxD,SACAZ,EAAAG,EAAAH,OAAQqE,EAAAlE,EAAAkE,QACXzD,GAAYA,EAASC,IAAIb,QAAUA,GAAUY,EAASC,IAAIwD,SAAWA,GACtET,EAAQO,YAAYL,EAAGH,wBAAwBxD,IAK3D,OAAO8D,EAAKC,MAGhB3G,EAAA+G,iBAAA,SAAiCN,GAC7BH,EAASG,GACTJ,EAAU,IAAIW,OAAO,cACbC,UAAY,SAAAC,GAAM,OAG9B,SAAuBC,GACnB,OAAQA,EAAInC,MACR,mBACY,IAAAG,EAAAgC,EAAAhC,QACRmB,EAAON,SAASP,EAAEP,uBAAuBC,IACzC,MAEJ,oBACY,IAAA9B,EAAA8D,EAAA9D,SACRiD,EAAON,SAASP,EAAEL,wBAAwB/B,IAC1C,MAEJ,mBACU,IAAAsC,EAAAwB,EAAE5B,EAAAI,EAAAJ,QAASC,EAAAG,EAAAH,UACjBc,EAAON,SAASP,EAAEH,uBAAuBC,EAASC,KAjBhC4B,CAAcF,EAAG7B,sCCC/C,SAAAgC,EAAuB7D,GACnB8D,WAAW,WAEH,IAKMC,EANN/D,GACM+D,EAAOC,SAASC,eAAejE,KAEjC+D,EAAKG,kBAGHH,EAAOC,SAASC,eAAe,kBAEjCF,EAAKI,UAAY,IAG1B,mBAzCM3H,EAAA4H,yBAA2B,SAAEnB,GAA2C,gBAACC,GAAqC,gBAACC,GACxH,OAAQA,EAAO3B,MACX,gBACY,IAAA6C,EAAApB,EAAAI,WAAAgB,QACA9C,EAAA4B,EAAA5B,KACRyC,SAAS3E,MAAWkC,EAAKtE,KAAI,MAAMoH,EAAQhF,MAC3C,MAGJ,eACY,IAAAQ,EAAAoD,EAAAI,WAAAxD,SACAT,EAAA+D,EAAA/D,OACAH,EAAAG,EAAAH,OAAQe,EAAAZ,EAAAY,OACZH,GAAYA,EAASC,IAAIb,SAAWA,GACpC4E,EAAc7D,GAElB,MAGJ,oBAEI6D,EADQV,EAAAtB,KACW/B,IAAIE,QAI/B,OAAOkD,EAAKC,sWC9BhB,IAAAzE,EAAApC,EAAA,GACAqC,EAAArC,EAAA,GAeA,IAAAgI,EAAA,SAAAxF,GAAA,SAAAwF,mDAkBA,OAlB8BvF,EAAAuF,EAAAxF,GACnBwF,EAAAhG,UAAAU,OAAP,WACY,IAAAqF,EAAAnF,KAAAC,MAAAkF,QACAhF,EAAAgF,EAAAhF,MAAOkF,EAAAF,EAAAE,QAASC,EAAAH,EAAAG,OAAQC,EAAAJ,EAAAI,SAAUC,EAAAL,EAAAK,QAASC,EAAAN,EAAAM,gBAAiBC,EAAAP,EAAAO,eAAgBC,EAAAR,EAAAQ,KAEpF,OACInG,EAAAY,cAAA,UAAQW,GAAG,cACPvB,EAAAY,cAAA,WAAKZ,EAAAY,cAAA,cAASD,IACdX,EAAAY,cAAA,gBAAauF,MAAOL,GACpB9F,EAAAY,cAAA,sBAAciF,GACd7F,EAAAY,cAAA,0BAAkBsF,GAClBlG,EAAAY,cAAA,WAAKZ,EAAAY,cAAA,KAAGwF,KAASH,EAAe,IAAIJ,EAAQQ,QAAQ,MAAO,IAAO3F,OAAO,UAAQ,kBACjFV,EAAAY,cAAA,WAAKZ,EAAAY,cAAA,KAAGwF,KAAK,UAAU1F,OAAO,UAAQ,qBACtCV,EAAAY,cAAA,WAAKZ,EAAAY,cAAA,KAAGwF,KAAML,EAAUrF,OAAO,UAAQ,mBACvCV,EAAAY,cAAA,WAAKZ,EAAAY,cAAA,KAAGwF,KAAMJ,EAAStF,OAAO,UAAQ,mBAItDkF,EAlBA,CAA8B5F,EAAMe,WAoBvBjD,EAAAwI,WAAarG,EAAWgB,QA3BrC,SAAyBC,GAErB,OACIyE,QAFIzE,EAAAyE,UA0Bc1F,CAAoC2F,mWCpC9D,IAAA5F,EAAApC,EAAA,GACAqC,EAAArC,EAAA,GAEA2F,EAAA3F,EAAA,GAGAsC,EAAAtC,EAAA,GA2BA,IAAA2I,EAAA,SAAAnG,GACI,SAAAmG,EAAY9F,GAAZ,IAAA+F,EACIpG,EAAAjC,KAAAqC,KAAMC,IAAMD,YACZgG,EAAKC,mBAAqBD,EAAKC,mBAAmBjH,KAAKgH,KAqC/D,OAxC4BnG,EAAAkG,EAAAnG,GAMjBmG,EAAA3G,UAAAU,OAAP,WACU,IAAAmD,EAAAjD,KAAAC,MAAEiG,EAAAjD,EAAAiD,OAAQvF,EAAAsC,EAAAtC,SAChB,IAAKuF,IAAWvF,GAAYuF,EAAOC,YAAYC,QAAU,EACrD,OAAO,KAGH,IAAAC,EAAAH,EAAAG,kBAAmBF,EAAAD,EAAAC,YACnBxF,EAAAC,IAER,OACIpB,EAAAY,cAAA,OAAKC,UAAU,OACXb,EAAAY,cAACV,EAAAY,SACGJ,OAAQiG,EAAYE,EAAoB,GACxCnD,QAASmD,GAAqB,EAC9BlD,KAAK,WACT3D,EAAAY,cAAA,UACIkG,SAAUtG,KAAKiG,mBACfxH,MAAO0H,EAAYE,GAAmBlG,OACrC+F,EAAOC,YAAY5E,IAAI,SAACC,EAAGhE,GAAM,OAC9BgC,EAAAY,cAAA,UAAQrB,IAAKvB,GAAIgE,EAAErB,UAG3BX,EAAAY,cAACV,EAAAY,SACGJ,OAAQiG,EAAYE,EAAoB,GACxCnD,QAASmD,GAAqBF,EAAYC,OAAS,EACnDjD,KAAK,aAKb4C,EAAA3G,UAAA6G,mBAAR,SAA2BM,GACjB,IAAAtD,EAAAjD,KAAAC,MAAEiG,EAAAjD,EAAAiD,QACRM,EADgBvD,EAAAuD,mBACEN,EAAQC,YAAYI,EAAIE,cAAcC,iBAEhEX,EAxCA,CAA4BvG,EAAMe,WA0CrBjD,EAAAqJ,SAAWlH,EAAWgB,QA9DnC,SAAyBC,GACrB,IAAMC,EAAWD,EAAMC,SAGvB,OACIuF,OAHWvF,GAAYA,EAASuF,OAIhCvF,SAAQA,IAQhB,SAA6B2C,GACzB,OACIkD,kBAAmB,SAACtG,GAA0BoD,EAASP,EAAER,oBAAoBrC,OA8C7DT,CAAyDsG,mWC3EjF,IAAAvG,EAAApC,EAAA,GAGAwJ,EAAAxJ,EAAA,GACAyJ,EAAAzJ,EAAA,GACA0J,EAAA1J,EAAA,IAMA2J,EAAA,SAAAnH,GAAA,SAAAmH,mDAaA,OAbuClH,EAAAkH,EAAAnH,GAC5BmH,EAAA3H,UAAAU,OAAP,WACY,IAAA6C,EAAA3C,KAAAC,MAAA0C,KAER,OACInD,EAAAY,cAAA,WAASC,UAAU,aACfb,EAAAY,cAAC0G,EAAAH,SAAQ,MACRC,EAAA/E,oBAAoBc,EAAKhB,OAC1BnC,EAAAY,cAAC0G,EAAAH,SAAQ,MACTnH,EAAAY,cAACyG,EAAArG,QAAO,QAIxBuG,EAbA,CAAuCvH,EAAMe,WAAhCjD,EAAAyJ,oXCXb,IAAAvH,EAAApC,EAAA,GAGAwJ,EAAAxJ,EAAA,GACAyJ,EAAAzJ,EAAA,GAMA4J,EAAA,SAAApH,GAAA,SAAAoH,mDA6CA,OA7CkCnH,EAAAmH,EAAApH,GACvBoH,EAAA5H,UAAAU,OAAP,WACY,IAAA6C,EAAA3C,KAAAC,MAAA0C,KAER,OACInD,EAAAY,cAAA,WAASC,UAAU,aACduG,EAAA/E,oBAAoBc,EAAKsE,aAC1BzH,EAAAY,cAACyG,EAAArG,QAAO,MACPR,KAAKkH,kBACN1H,EAAAY,cAACyG,EAAArG,QAAO,QAKZwG,EAAA5H,UAAA8H,gBAAR,WACI,OACI1H,EAAAY,cAAA,OAAKC,UAAU,eACVuG,EAAA/F,iBAAgB,iCACjBrB,EAAAY,cAAA,SAAOC,UAAU,gBACbb,EAAAY,cAAA,aACIZ,EAAAY,cAAA,MAAIC,UAAU,UACVb,EAAAY,cAAA,mBACAZ,EAAAY,cAAA,kBACAZ,EAAAY,cAAA,kBACAZ,EAAAY,cAAA,mBACAZ,EAAAY,cAAA,oBACAZ,EAAAY,cAAA,oBAGRZ,EAAAY,cAAA,aACKJ,KAAKC,MAAM0C,KAAKwE,UAAU5F,IAAI,SAACC,EAAGhE,GAAM,OACrCgC,EAAAY,cAAA,MAAIrB,IAAKvB,EAAG6C,UAAU,SAClBb,EAAAY,cAAA,UAAKoB,EAAE4F,OACP5H,EAAAY,cAAA,UAAKoB,EAAEzD,MACPyB,EAAAY,cAAA,UAAKoB,EAAE6F,MACP7H,EAAAY,cAAA,UAAKoB,EAAE8F,MAAQ,IAAM,IACrB9H,EAAAY,cAAA,UAAKoB,EAAE+F,OAAS,IAAM,IACtB/H,EAAAY,cAAA,kBAQhC4G,EA7CA,CAAkCxH,EAAMe,WAA3BjD,EAAA0J,+WCVb,IAAAxH,EAAApC,EAAA,GAGAwJ,EAAAxJ,EAAA,GACAyJ,EAAAzJ,EAAA,GAMAoK,EAAA,SAAA5H,GAAA,SAAA4H,mDA4CA,OA5CyC3H,EAAA2H,EAAA5H,GAC9B4H,EAAApI,UAAAU,OAAP,WACY,IAAA6C,EAAA3C,KAAAC,MAAA0C,KAER,OACInD,EAAAY,cAAA,WAASC,UAAU,aACduG,EAAAnF,mBAAmBkB,EAAK8E,WACzBjI,EAAAY,cAACyG,EAAArG,QAAO,MACPR,KAAK0H,qBACL1H,KAAK2H,sBACL3H,KAAK4H,sBAKVJ,EAAApI,UAAAsI,mBAAR,WACY,IAAA/E,EAAA3C,KAAAC,MAAA0C,KACR,OAAOA,EAAKkF,cACRrI,EAAAY,cAACZ,EAAMsI,SAAQ,KACVlB,EAAAnF,mBAAmBkB,EAAKkF,cACzBrI,EAAAY,cAACyG,EAAArG,QAAO,QAKZgH,EAAApI,UAAAuI,oBAAR,WACY,IAAAhF,EAAA3C,KAAAC,MAAA0C,KACR,OAAOA,EAAKoF,eACRvI,EAAAY,cAACZ,EAAMsI,SAAQ,KACVlB,EAAA/E,oBAAoBc,EAAKoF,eAC1BvI,EAAAY,cAACyG,EAAArG,QAAO,QAKZgH,EAAApI,UAAAwI,kBAAR,WACY,IAAAjF,EAAA3C,KAAAC,MAAA0C,KACR,OAAOA,EAAKqF,aACRxI,EAAAY,cAACZ,EAAMsI,SAAQ,KACVlB,EAAAnF,mBAAmBkB,EAAKqF,aACzBxI,EAAAY,cAACyG,EAAArG,QAAO,QAIxBgH,EA5CA,CAAyChI,EAAMe,WAAlCjD,EAAAkK,sXCVb,IAAAhI,EAAApC,EAAA,GAGAwJ,EAAAxJ,EAAA,GACAyJ,EAAAzJ,EAAA,GAMA6K,EAAA,SAAArI,GAAA,SAAAqI,mDAqBA,OArBiCpI,EAAAoI,EAAArI,GACtBqI,EAAA7I,UAAAU,OAAP,WACY,IAAA6C,EAAA3C,KAAAC,MAAA0C,KAER,OACInD,EAAAY,cAAA,WAASC,UAAU,aACduG,EAAAnF,mBAAmBkB,EAAKuF,WACzB1I,EAAAY,cAACyG,EAAArG,QAAO,MACPoG,EAAAnF,mBAAmBkB,EAAKwF,aACzB3I,EAAAY,cAACyG,EAAArG,QAAO,MACPoG,EAAAnF,mBAAmBkB,EAAKyF,YACzB5I,EAAAY,cAACyG,EAAArG,QAAO,MACPoG,EAAA/E,oBAAoBc,EAAK0F,gBAC1B7I,EAAAY,cAACyG,EAAArG,QAAO,MACPoG,EAAA/E,oBAAoBc,EAAK2F,iBAC1B9I,EAAAY,cAACyG,EAAArG,QAAO,MACPoG,EAAA/E,oBAAoBc,EAAK4F,gBAC1B/I,EAAAY,cAACyG,EAAArG,QAAO,QAIxByH,EArBA,CAAiCzI,EAAMe,WAA1BjD,EAAA2K,8WCVb,IAAAzI,EAAApC,EAAA,GACAqC,EAAArC,EAAA,GAEA2F,EAAA3F,EAAA,GAaA,IAAAoL,EAAA,SAAA5I,GACI,SAAA4I,EAAmBvI,GAAnB,IAAA+F,EACIpG,EAAAjC,KAAAqC,KAAMC,IAAMD,YACZgG,EAAKyC,aAAezC,EAAKyC,aAAazJ,KAAKgH,KAoBnD,OAvBgCnG,EAAA2I,EAAA5I,GAMrB4I,EAAApJ,UAAAU,OAAP,WACI,OACIN,EAAAY,cAAA,WAASC,UAAU,eACfb,EAAAY,cAAA,6BACAZ,EAAAY,cAAA,WAAKZ,EAAAY,cAAA,SAAOkC,KAAK,OAAOgE,SAAUtG,KAAKyI,gBACvCjJ,EAAAY,cAAA,OAAKC,UAAU,QAAM,8DAKzBmI,EAAApJ,UAAAqJ,aAAR,SAAqBjE,GACT,IAAAkE,EAAA1I,KAAAC,MAAAyI,eACFC,EAAWnE,EAAGtE,OAAO0I,MACvBD,GAAYA,EAASvC,OAAS,GAC9BsC,EAAeC,EAAS,KAGpCH,EAvBA,CAAgChJ,EAAMe,WAyBzBjD,EAAAuL,aAAepJ,EAAWgB,QAAQ,KA/B/C,SAA4B6C,GACxB,OACIoF,eAAgB,SAACrG,GAAS,OAAAiB,EAASP,EAAEX,qBAAqBC,OA6BtC5C,CAA6C+I,mWCzCzE,IAAAhJ,EAAApC,EAAA,GACAqC,EAAArC,EAAA,GAIA0L,EAAA1L,EAAA,IACA2L,EAAA3L,EAAA,IACA4L,EAAA5L,EAAA,IACA6L,EAAA7L,EAAA,IACA8L,EAAA9L,EAAA,IAcA,IAAA+L,EAAA,SAAAvJ,GAAA,SAAAuJ,mDAiCA,OAjC+BtJ,EAAAsJ,EAAAvJ,GACpBuJ,EAAA/J,UAAAU,OAAP,WACI,OACIN,EAAAY,cAAA,WAASW,GAAG,eACPf,KAAKoJ,kBAKVD,EAAA/J,UAAAgK,cAAR,WACY,IAAAzI,EAAAX,KAAAC,MAAAU,SAER,GAAgB,MAAZA,EACA,OAAOnB,EAAAY,cAAC0I,EAAAD,aAAY,MAGxB,OAAQlI,EAASC,IAAIb,QACjB,cACI,OAAOP,EAAAY,cAAC2I,EAAAd,aAAYtF,KAAMhC,IAC9B,iBACI,OAAOnB,EAAAY,cAAC4I,EAAAxB,qBAAoB7E,KAAMhC,IACtC,gBACI,OAAOnB,EAAAY,cAAC6I,EAAAjC,cAAarE,KAAMhC,IAC/B,kBACA,aACA,eACA,eACA,cACI,OAAOnB,EAAAY,cAAC8I,EAAAnC,mBAAkBpE,KAAMhC,IACpC,QACI,OAAOnB,EAAAY,cAAA,gCAGvB+I,EAjCA,CAA+B3J,EAAMe,WAmCxBjD,EAAA+L,YAAc5J,EAAWgB,QA3CtC,SAAyBC,GAGrB,OACIC,SAHID,EAAAC,WA0CelB,CAAoC0J,mWC1D/D,IAAA3J,EAAApC,EAAA,GACAqC,EAAArC,EAAA,GAGAsC,EAAAtC,EAAA,GAgBA,IAAAkM,EAAA,SAAA1J,GAAA,SAAA0J,mDAqCA,OArC+BzJ,EAAAyJ,EAAA1J,GACpB0J,EAAAlK,UAAAU,OAAP,WACY,IAAA2C,EAAAzC,KAAAC,MAAAwC,QAER,OAAKA,GAA6B,GAAlBA,EAAQ2D,OAKpB5G,EAAAY,cAAA,WAASW,GAAG,gBACPf,KAAKuJ,cAAc9G,IALjB,MAUP6G,EAAAlK,UAAAmK,cAAR,SAAsB5G,GAAtB,IAAAqD,EAAAhG,KACYA,KAAAC,MAAAU,SACR,OACInB,EAAAY,cAAA,UACKuC,EAAKpB,IAAI,SAACC,EAAGhE,GAAM,OAChBgC,EAAAY,cAAA,MAAIrB,IAAKvB,GACLgC,EAAAY,cAACV,EAAAY,SAAQJ,OAAQsB,EAAEtB,OAAQkD,WAAY4C,EAAKwD,WAAWhI,EAAEtB,QAAU,SAAW,KAC7EsB,EAAEW,UAAY6D,EAAKuD,cAAc/H,EAAEW,eAOhDmH,EAAAlK,UAAAoK,WAAR,SAAmBtJ,GACP,IAAAS,EAAAX,KAAAC,MAAAU,SACR,IAAKA,EAAU,OAAO,EAEhB,IAAAsC,EAAAtC,EAAAC,IAAEb,EAAAkD,EAAAlD,OAAQ0J,EAAAxG,EAAAwG,MAChB,OAAO1J,GAAUG,EAAOH,QAA2B,MAAjBG,EAAOY,SACxB,MAAT2I,GAAiBA,GAASvJ,EAAOuJ,QAEjDH,EArCA,CAA+B9J,EAAMe,WAuCxBjD,EAAAoM,YAAcjK,EAAWgB,QAhDtC,SAAyBC,GAGrB,OACIC,SAHID,EAAAC,SAIJ8B,QAJc/B,EAAA+B,UA+CKhD,CAAoC6J,mWC3D/D,IAAA9J,EAAApC,EAAA,GACAqC,EAAArC,EAAA,GAgBA,IAAAuM,EAAA,SAAA/J,GAAA,SAAA+J,mDA4DA,OA5D8B9J,EAAA8J,EAAA/J,GACnB+J,EAAAvK,UAAAU,OAAP,WACY,IAAA8J,EAAA5J,KAAAC,MAAA2J,SAER,OACIpK,EAAAY,cAAA,UAAQW,GAAG,cACN6I,EAAW5J,KAAK6J,iBAAmB7J,KAAK8J,iBACvCF,GACEpK,EAAAY,cAAA,wMAMRuJ,EAAAvK,UAAA0K,cAAR,WACI,OACItK,EAAAY,cAAA,OAAKC,UAAU,iBACXb,EAAAY,cAAA,MAAIC,UAAU,aAAW,2BAK7BsJ,EAAAvK,UAAAyK,eAAR,WACY,IACF5G,EADEjD,KAAAC,MAAA2J,SACA7L,EAAAkF,EAAAlF,KAAMqD,EAAA6B,EAAA7B,KAAMyB,EAAAI,EAAAJ,QAASC,EAAAG,EAAAH,UAE7B,OACItD,EAAAY,cAAA,OAAKC,UAAU,iBACXb,EAAAY,cAAA,MAAIC,UAAU,aAAatC,GAC1BiC,KAAK+J,kBACNvK,EAAAY,cAAA,OAAKC,UAAU,YACXb,EAAAY,cAAA,YAAOgB,EAAK4I,4BAEA,MAAXnH,GACGrD,EAAAY,cAACZ,EAAMsI,SAAQ,KACXtI,EAAAY,cAAA,mBACAZ,EAAAY,cAAA,YAAOyC,EAAU,SAAW,WAItB,MAAbC,GACGtD,EAAAY,cAACZ,EAAMsI,SAAQ,KACXtI,EAAAY,cAAA,mBACAZ,EAAAY,cAAA,YAAO0C,EAAY,UAAY,iBAQ/C6G,EAAAvK,UAAA2K,gBAAR,WACY,IAAApJ,EAAAX,KAAAC,MAAAU,SAER,OAAIA,GAAYA,EAASC,KAAOD,EAASC,IAAIT,MAClCX,EAAAY,cAAA,MAAIC,UAAU,YAAYM,EAASC,IAAIT,OAEvC,MAGnBwJ,EA5DA,CAA8BnK,EAAMe,WA8DvBjD,EAAA2M,WAAaxK,EAAWgB,QAnErC,SAAyBC,GAErB,OAASkJ,SADDlJ,EAAAkJ,SACWjJ,SADDD,EAAAC,SACW8B,QADD/B,EAAA+B,UAkENhD,CAAoCkK,mWC/E9D,IAAAnK,EAAApC,EAAA,GAEA8M,EAAA9M,EAAA,IACA+M,EAAA/M,EAAA,IACAgN,EAAAhN,EAAA,IACAiN,EAAAjN,EAAA,IAEAkN,EAAA,SAAA1K,GAAA,SAAA0K,mDAWA,OAXyBzK,EAAAyK,EAAA1K,GACd0K,EAAAlL,UAAAU,OAAP,WACI,OACIN,EAAAY,cAACZ,EAAMsI,SAAQ,KACXtI,EAAAY,cAAC8J,EAAAD,WAAU,MACXzK,EAAAY,cAAC+J,EAAAT,YAAW,MACZlK,EAAAY,cAACgK,EAAAf,YAAW,MACZ7J,EAAAY,cAACiK,EAAAvE,WAAU,QAI3BwE,EAXA,CAAyB9K,EAAMe,WAAlBjD,EAAAgN,oDCPb,IAAA9G,EAAApG,EAAA,GAIaE,EAAAiN,WAAa/G,EAAMgH,iBAC5BrF,QAMJ,SAAiBzE,EAAgCuD,QAAhC,IAAAvD,MAAA,MACb,OAAOA,GANPkJ,SASJ,SAAkBlJ,EAAiCuD,QAAjC,IAAAvD,MAAA,MACd,OAAQuD,EAAO3B,MACX,gBACY,IAAAD,EAAA4B,EAAA5B,KACAoI,EAAApI,EAAAtE,KAAMqD,EAAAiB,EAAAjB,KACd,OAAOlD,OAAOwM,UAAWhK,GAAS3C,KAAI0M,EAAErJ,KAAIA,IAGhD,mBACU,IAAA6B,EAAAgB,EAAEpB,EAAAI,EAAAJ,QAASC,EAAAG,EAAAH,UACjB,OAAO5E,OAAOwM,UAAWhK,GAASmC,QAAOA,EAAEC,UAASA,IAGxD,QAAS,OAAOpC,IArBpBC,SAyBJ,SAAkBD,EAAiCuD,QAAjC,IAAAvD,MAAA,MACd,OAAQuD,EAAO3B,MACX,oBACY,IAAAK,EAAAsB,EAAAtB,KACR,OAAOA,EAGX,QAAS,OAAOjC,IA/BpB+B,QAmCJ,SAAiB/B,EAAyBuD,QAAzB,IAAAvD,UACb,OAAQuD,EAAO3B,MACX,mBACY,IAAAqI,EAAA1G,EAAAxB,QACR,OAAOkI,EAGX,QAAS,OAAOjK,wVClDxBnD,EAAAD,QAAAsN,uDCAA,IAAApL,EAAApC,EAAA,GACAwN,EAAAxN,EAAA,IACAoG,EAAApG,EAAA,GACAqC,EAAArC,EAAA,GAEAyN,EAAAzN,EAAA,IAEA0N,EAAA1N,EAAA,IACA2N,EAAA3N,EAAA,IACA4N,EAAA5N,EAAA,GACA6N,EAAA7N,EAAA,GAEM+H,GACFhF,MAAO0K,EAAY1K,MACnBkF,QAASwF,EAAYxF,QACrBC,OAAQuF,EAAYvF,OACpBC,SAAUsF,EAAYtF,SACtBC,QAASqF,EAAYK,SACrBzF,gBAAiBoF,EAAYM,cAC7BzF,eAAgB,IAAI0F,KAAKA,KAAKC,MAAMR,EAAYS,aAAatB,iBAC7DrE,MAAM,IAAIyF,MAAOG,cAAc3J,YAG7B4J,GACFrG,QAAOA,EACP1C,YAGJqC,SAAS3E,MAAQ,GAAGgF,EAAQhF,MAE5B,IACMsL,EADKC,OACiBC,sCAAwCnI,EAAMoI,QACpE7H,EAAQP,EAAMqI,YAAYf,EAAEP,WAAYiB,EAAcC,EACxDjI,EAAMsI,gBACFd,EAAA9F,yBACA+F,EAAAnH,0BAGRmH,EAAA5G,iBAAiBN,GAEjB6G,EAAS9K,OACLN,EAAAY,cAACX,EAAWsM,UAAShI,MAAOA,GACxBvE,EAAAY,cAAC2K,EAAAT,IAAG,OAERxF,SAASC,eAAe","file":"ui.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 24);\n","module.exports = React;","module.exports = ReactRedux;","import * as React from \"react\";\r\nimport * as ReactRedux from \"react-redux\";\r\n\r\nimport * as S from \"../store/state\";\r\nimport { NavLink } from \"./nav-link\";\r\n\r\nexport interface ConnectedProps {\r\n pageID?: W.PageID;\r\n}\r\n\r\nfunction mapStateToProps(state: S.AppState): ConnectedProps {\r\n const { pageData } = state;\r\n\r\n return {\r\n pageID: pageData && pageData.nav.pageID\r\n };\r\n}\r\n\r\nclass TopLinkClass extends React.Component<ConnectedProps> {\r\n public render(): JSX.Element | null {\r\n const { pageID } = this.props;\r\n\r\n if (!pageID) {\r\n return null;\r\n } else {\r\n const target: W.NavTarget = {\r\n pageID,\r\n title: W.KnownTitle.TOP\r\n };\r\n\r\n return (\r\n <div className=\"top-lnk\">\r\n <NavLink target={target} title=\"Back to top\" />\r\n </div>\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport const TopLink = ReactRedux.connect(mapStateToProps)(TopLinkClass);","import * as React from \"react\";\r\nimport * as ReactRedux from \"react-redux\";\r\n\r\nexport function renderTableTitle(title: string, elemID?: string): JSX.Element {\r\n return <h2 id={elemID} className=\"struct-title\">{title}</h2>;\r\n}\r\n\r\nexport function renderSimpleStruct(s: W.SimpleStruct): JSX.Element {\r\n return (\r\n <div className=\"struct-data\">\r\n {renderStructTitle(s)}\r\n <StructTable>\r\n {s.items && s.items.map((v, i) => renderStructItemRow(v, i.toString()))}\r\n </StructTable>\r\n </div>\r\n );\r\n}\r\n\r\nexport function renderGroupedStruct(s: W.GroupedStruct): JSX.Element {\r\n return (\r\n <div className=\"struct-data\">\r\n {renderStructTitle(s)}\r\n <StructTable>\r\n {s.groups && s.groups.map((gv, gi) => {\r\n return [\r\n renderStructGroupTitleRow(gv.title, gi.toString())\r\n ].concat(gv.items && gv.items.map((v, i) =>\r\n renderStructItemRow(v, `${gi}.${i}`)) || []);\r\n })}\r\n </StructTable>\r\n </div>\r\n );\r\n}\r\n\r\nfunction renderStructTitle(s: W.StructData): JSX.Element {\r\n return renderTableTitle(s.title, s.elemID);\r\n}\r\n\r\nfunction renderStructItemRow(item: W.StructItem, key: string): JSX.Element {\r\n const { offset, size, rawData, name, value, descriptions } = item;\r\n return (\r\n <tr key={key} className=\"st-tr\">\r\n <td>{offset}</td>\r\n <td>{size}</td>\r\n <td>{rawData.map((v, i) => <div className=\"td-line\" key={i}>{v}</div>)}</td>\r\n <td>{name}</td>\r\n <td className=\"wrap\">{value}</td>\r\n <td></td>\r\n </tr>\r\n );\r\n}\r\n\r\nfunction renderStructGroupTitleRow(title: string, key: string): JSX.Element | null {\r\n return title ? (<tr key={key} className=\"st-grphdr\"><th colSpan={6}>{title}</th></tr>) : null;\r\n}\r\n\r\nclass StructTable extends React.Component {\r\n public render(): JSX.Element {\r\n return (\r\n <table className=\"struct-table\">\r\n <thead>\r\n <tr className=\"st-hdr\">\r\n <th>Offset</th>\r\n <th>Size</th>\r\n <th>Raw Data</th>\r\n <th>Name</th>\r\n <th>Value</th>\r\n <th>Description</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {this.props.children}\r\n </tbody>\r\n </table>\r\n );\r\n }\r\n}","import * as Redux from \"redux\";\r\n\r\nexport const enum ActionType {\r\n OPEN_FILE = \"OPEN_FILE\",\r\n OPEN_NAV = \"OPEN_NAV\",\r\n\r\n SET_NAV_LIST = \"SET_NAV_LIST\",\r\n SET_PAGE_DATA = \"SET_PAGE_DATA\",\r\n SET_PE_PROPS = \"SET_PE_PROPS\",\r\n SET_WORKER_ERROR = \"SET_WORKER_ERROR\",\r\n}\r\n\r\nexport interface OpenFileAction extends Redux.Action {\r\n file: File;\r\n}\r\n\r\nexport function createOpenFileAction(file: File): OpenFileAction {\r\n return { type: ActionType.OPEN_FILE, file };\r\n}\r\n\r\nexport interface OpenNavAction extends Redux.Action {\r\n target: W.NavTarget;\r\n}\r\n\r\nexport function createOpenNavAction(target: W.NavTarget): OpenNavAction {\r\n return { type: ActionType.OPEN_NAV, target };\r\n}\r\n\r\nexport interface SetNavListAction extends Redux.Action {\r\n navList: W.NavData[];\r\n}\r\n\r\nexport function createSetNavListAction(navList: W.NavData[]): SetNavListAction {\r\n return { type: ActionType.SET_NAV_LIST, navList };\r\n}\r\n\r\nexport interface SetPageDataAction extends Redux.Action {\r\n data: W.PageData;\r\n}\r\n\r\nexport function createSetPageDataAction(data: W.PageData): SetPageDataAction {\r\n return { type: ActionType.SET_PAGE_DATA, data };\r\n}\r\n\r\nexport interface SetPEPropsAction extends Redux.Action {\r\n is32Bit?: boolean;\r\n isManaged?: boolean;\r\n}\r\n\r\nexport function createSetPEPropsAction(is32Bit?: boolean, isManaged?: boolean): SetPEPropsAction {\r\n return { type: ActionType.SET_PE_PROPS, is32Bit, isManaged };\r\n}","import * as React from \"react\";\r\nimport * as ReactRedux from \"react-redux\";\r\n\r\nimport * as A from \"../store/actions\";\r\nimport * as S from \"../store/state\";\r\n\r\nexport interface NavLinkProps {\r\n target: W.NavTarget;\r\n disable?: boolean;\r\n text?: string;\r\n title?: string;\r\n extraClass?: string;\r\n}\r\n\r\ninterface ConnectedEvents {\r\n onClick: () => void;\r\n}\r\n\r\nfunction mapDispatchToEvents(dispatch: ReactRedux.Dispatch<S.AppState>, ownProps: NavLinkProps): ConnectedEvents {\r\n return {\r\n onClick: () => { dispatch(A.createOpenNavAction(ownProps.target)); }\r\n };\r\n}\r\n\r\nclass NavLinkClass extends React.Component<NavLinkProps & ConnectedEvents> {\r\n public render(): JSX.Element {\r\n const { target, disable, text, title, extraClass, onClick } = this.props;\r\n\r\n let className = \"nav\";\r\n if (disable) {\r\n className += \" disabled\"\r\n }\r\n if (extraClass) {\r\n className += \" \" + extraClass;\r\n }\r\n\r\n if (disable || !target) {\r\n return (\r\n <span className={className} title={title}>\r\n {text}\r\n </span>\r\n );\r\n } else {\r\n return (\r\n <a className={className} title={title || target.title} onClick={onClick}>\r\n {text || target.title}\r\n </a>\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport const NavLink = ReactRedux.connect(null, mapDispatchToEvents)(NavLinkClass);","module.exports = Redux;","/// <reference path=\"../../worker/worker.d.ts\" />\r\n\r\nexport function createReqOpenFileMessage(file: File): W.ReqOpenFileMessage {\r\n return {\r\n type: W.WorkerMessageType.REQ_OPEN_FILE,\r\n file\r\n };\r\n}\r\n\r\nexport function createReqOpenNavMessage(target: W.NavTarget): W.ReqOpenNavMessage {\r\n return {\r\n type: W.WorkerMessageType.REQ_OPEN_NAV,\r\n target\r\n };\r\n}","/// <reference path=\"../../worker/worker.d.ts\" />\r\n\r\nimport * as Redux from \"redux\";\r\n\r\nimport * as A from \"./store/actions\";\r\nimport * as S from \"./store/state\";\r\nimport * as WM from \"./worker-message\";\r\n\r\nexport const workerClientMiddleware = ((store: Redux.MiddlewareAPI<S.AppState>) => (next: Redux.Dispatch<S.AppState>) => (action: Redux.Action) => {\r\n switch (action.type) {\r\n case A.ActionType.OPEN_FILE: {\r\n const { file } = action as A.OpenFileAction;\r\n _worker.postMessage(WM.createReqOpenFileMessage(file));\r\n break;\r\n }\r\n\r\n case A.ActionType.OPEN_NAV: {\r\n const { target } = action as A.OpenNavAction;\r\n const { pageData } = store.getState();\r\n const { pageID, pageNum } = target;\r\n if (!pageData || pageData.nav.pageID != pageID || pageData.nav.pageNum != pageNum) {\r\n _worker.postMessage(WM.createReqOpenNavMessage(target));\r\n }\r\n break;\r\n }\r\n }\r\n return next(action);\r\n}) as Redux.Middleware;\r\n\r\nexport function initWorkerClient(store: Redux.Store<S.AppState>): void {\r\n _store = store;\r\n _worker = new Worker(\"worker.js\");\r\n _worker.onmessage = ev => handleMessage(ev.data);\r\n}\r\n\r\nfunction handleMessage(msg: W.WorkerMessage): void {\r\n switch (msg.type) {\r\n case W.WorkerMessageType.RES_NAV_DATA:\r\n const { navList } = <W.ResNavDataMessage>msg;\r\n _store.dispatch(A.createSetNavListAction(navList));\r\n break;\r\n\r\n case W.WorkerMessageType.RES_PAGE_DATA:\r\n const { pageData } = <W.ResPageDataMessage>msg;\r\n _store.dispatch(A.createSetPageDataAction(pageData));\r\n break;\r\n\r\n case W.WorkerMessageType.RES_PE_PROPS:\r\n const { is32Bit, isManaged } = <W.ResPEPropsMessage>msg;\r\n _store.dispatch(A.createSetPEPropsAction(is32Bit, isManaged));\r\n break;\r\n\r\n case W.WorkerMessageType.RES_PE_ERROR:\r\n break;\r\n }\r\n}\r\n\r\nlet _worker: Worker;\r\nlet _store: Redux.Store<S.AppState>;\r\n","import * as Redux from \"redux\";\r\n\r\nimport * as A from \"./store/actions\";\r\nimport * as S from \"./store/state\";\r\n\r\nexport const actionListenerMiddleware = ((store: Redux.MiddlewareAPI<S.AppState>) => (next: Redux.Dispatch<S.AppState>) => (action: Redux.Action) => {\r\n switch (action.type) {\r\n case A.ActionType.OPEN_FILE: {\r\n const { appInfo } = store.getState();\r\n const { file } = action as A.OpenFileAction;\r\n document.title = `${file.name} - ${appInfo.title}`\r\n break;\r\n }\r\n\r\n case A.ActionType.OPEN_NAV: {\r\n const { pageData } = store.getState();\r\n const { target } = action as A.OpenNavAction;\r\n const { pageID, elemID } = target;\r\n if (pageData && pageData.nav.pageID === pageID) {\r\n scrollElement(elemID);\r\n }\r\n break;\r\n }\r\n\r\n case A.ActionType.SET_PAGE_DATA: {\r\n const { data } = action as A.SetPageDataAction;\r\n scrollElement(data.nav.elemID);\r\n break;\r\n }\r\n }\r\n return next(action);\r\n}) as Redux.Middleware;\r\n\r\nfunction scrollElement(elemID?: string): void {\r\n setTimeout(() => {\r\n if (elemID) {\r\n const elem = document.getElementById(elemID);\r\n if (elem) {\r\n elem.scrollIntoView();\r\n }\r\n } else {\r\n const elem = document.getElementById(\"app-content\");\r\n if (elem) {\r\n elem.scrollTop = 0;\r\n }\r\n }\r\n }, 1);\r\n}","import * as React from \"react\";\nimport * as ReactRedux from \"react-redux\";\n\nimport * as S from \"../store/state\";\n\ninterface ConnectedProps {\n appInfo: S.AppInfo;\n}\n\nfunction mapStateToProps(state: S.AppState): ConnectedProps {\n const { appInfo } = state;\n return {\n appInfo\n };\n}\n\nclass PageFooterClass extends React.Component<ConnectedProps> {\n public render(): JSX.Element {\n const { appInfo } = this.props;\n const { title, version, author, homepage, bugsUrl, releaseNotesUrl, buildTimeLocal, year } = appInfo;\n\n return (\n <footer id=\"app-footer\">\n <div><strong>{title}</strong></div>\n <div>© {year} {author}</div>\n <div>Version {version}</div>\n <div>Last build: {buildTimeLocal}</div>\n <div><a href={`${releaseNotesUrl}#${version.replace(/\\./g, \"\")}`} target=\"_blank\">Release Notes</a></div>\n <div><a href=\"/latest\" target=\"_blank\">Try Latest Build</a></div>\n <div><a href={homepage} target=\"_blank\">View on GitHub</a></div>\n <div><a href={bugsUrl} target=\"_blank\">Report Issue</a></div>\n </footer>\n )\n }\n}\n\nexport const PageFooter = ReactRedux.connect(mapStateToProps)(PageFooterClass);\n","import * as React from \"react\";\r\nimport * as ReactRedux from \"react-redux\";\r\n\r\nimport * as A from \"../store/actions\";\r\nimport * as S from \"../store/state\";\r\n\r\nimport { NavLink } from \"./nav-link\";\r\n\r\ninterface ConnectedProps {\r\n paging?: W.Paging;\r\n pageData?: W.PageData;\r\n}\r\n\r\nfunction mapStateToProps(state: S.AppState): ConnectedProps {\r\n const pageData = state.pageData as W.PagedItemListPageData;\r\n const paging = pageData && pageData.paging;\r\n\r\n return {\r\n paging,\r\n pageData,\r\n };\r\n}\r\n\r\ninterface ConnectedEvents {\r\n onSelectionChange: (target: W.NavTarget) => void;\r\n}\r\n\r\nfunction mapDispatchToEvents(dispatch: ReactRedux.Dispatch<S.AppState>): ConnectedEvents {\r\n return {\r\n onSelectionChange: (target: W.NavTarget) => { dispatch(A.createOpenNavAction(target)); }\r\n };\r\n}\r\n\r\nclass PaginateClass extends React.Component<ConnectedProps & ConnectedEvents> {\r\n constructor(props: any) {\r\n super(props);\r\n this.handleSelectChange = this.handleSelectChange.bind(this);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { paging, pageData } = this.props;\r\n if (!paging || !pageData || paging.pageNavList.length <= 1) {\r\n return null;\r\n }\r\n\r\n const { currentPageNumber, pageNavList } = paging;\r\n const { nav } = pageData;\r\n\r\n return (\r\n <div className=\"pgn\">\r\n <NavLink\r\n target={pageNavList[currentPageNumber - 1]}\r\n disable={currentPageNumber <= 0}\r\n text=\"< prev\" />\r\n <select\r\n onChange={this.handleSelectChange}\r\n value={pageNavList[currentPageNumber].title}>\r\n {paging.pageNavList.map((v, i) => (\r\n <option key={i}>{v.title}</option>\r\n ))}\r\n </select>\r\n <NavLink\r\n target={pageNavList[currentPageNumber + 1]}\r\n disable={currentPageNumber >= pageNavList.length - 1}\r\n text=\"next >\" />\r\n </div>\r\n );\r\n }\r\n\r\n private handleSelectChange(evt: React.ChangeEvent<HTMLSelectElement>): void {\r\n const { paging, onSelectionChange } = this.props;\r\n onSelectionChange(paging!.pageNavList[evt.currentTarget.selectedIndex]);\r\n }\r\n}\r\n\r\nexport const Paginate = ReactRedux.connect(mapStateToProps, mapDispatchToEvents)(PaginateClass);\r\n","import * as React from \"react\";\r\nimport * as ReactRedux from \"react-redux\";\r\n\r\nimport { renderTableTitle, renderGroupedStruct } from \"./struct-data\";\r\nimport { TopLink } from \"./top-link\";\r\nimport { Paginate } from \"./paginate\";\r\n\r\ninterface PagedItemListPageProps {\r\n data: W.PagedItemListPageData;\r\n}\r\n\r\nexport class PagedItemListPage extends React.Component<PagedItemListPageProps> {\r\n public render(): JSX.Element | null {\r\n const { data } = this.props;\r\n\r\n return (\r\n <section className=\"data-page\">\r\n <Paginate />\r\n {renderGroupedStruct(data.items)}\r\n <Paginate />\r\n <TopLink />\r\n </section>\r\n );\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport * as ReactRedux from \"react-redux\";\r\n\r\nimport { renderTableTitle, renderSimpleStruct, renderGroupedStruct } from \"./struct-data\";\r\nimport { TopLink } from \"./top-link\";\r\n\r\ninterface MdsTablePageProps {\r\n data: W.MdsTablePageData;\r\n}\r\n\r\nexport class MdsTablePage extends React.Component<MdsTablePageProps> {\r\n public render(): JSX.Element | null {\r\n const { data } = this.props;\r\n\r\n return (\r\n <section className=\"data-page\">\r\n {renderGroupedStruct(data.tableHeader)}\r\n <TopLink />\r\n {this.renderTableList()}\r\n <TopLink />\r\n </section>\r\n );\r\n }\r\n\r\n private renderTableList(): JSX.Element {\r\n return (\r\n <div className=\"struct-data\">\r\n {renderTableTitle(W.KnownTitle.MDT_LIST, W.KnownElemID.MDT_LIST)}\r\n <table className=\"struct-table\">\r\n <thead>\r\n <tr className=\"st-hdr\">\r\n <th>Index</th>\r\n <th>Name</th>\r\n <th>Rows</th>\r\n <th>Valid</th>\r\n <th>Sorted</th>\r\n <th>Link</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {this.props.data.tableInfo.map((v, i) => (\r\n <tr key={i} className=\"st-tr\">\r\n <td>{v.index}</td>\r\n <td>{v.name}</td>\r\n <td>{v.rows}</td>\r\n <td>{v.valid ? \"X\" : \"\"}</td>\r\n <td>{v.sorted ? \"X\" : \"\"}</td>\r\n <td></td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n }\r\n}\r\n","import * as React from \"react\";\nimport * as ReactRedux from \"react-redux\";\n\nimport { renderSimpleStruct, renderGroupedStruct } from \"./struct-data\";\nimport { TopLink } from \"./top-link\";\n\ninterface MetadataHeadersPageProps {\n data: W.MetadataHeadersPageData;\n}\n\nexport class MetadataHeadersPage extends React.Component<MetadataHeadersPageProps> {\n public render(): JSX.Element | null {\n const { data } = this.props;\n\n return (\n <section className=\"data-page\">\n {renderSimpleStruct(data.cliHeader)}\n <TopLink />\n {this.renderMetadataRoot()}\n {this.renderStreamHeaders()}\n {this.renderSNSignature()}\n </section>\n );\n }\n\n private renderMetadataRoot(): JSX.Element | undefined {\n const { data } = this.props;\n return data.metadataRoot && (\n <React.Fragment>\n {renderSimpleStruct(data.metadataRoot)}\n <TopLink />\n </React.Fragment>\n );\n }\n\n private renderStreamHeaders(): JSX.Element | undefined {\n const { data } = this.props;\n return data.streamHeaders && (\n <React.Fragment>\n {renderGroupedStruct(data.streamHeaders)}\n <TopLink />\n </React.Fragment>\n );\n }\n\n private renderSNSignature(): JSX.Element | undefined {\n const { data } = this.props;\n return data.snSignature && (\n <React.Fragment>\n {renderSimpleStruct(data.snSignature)}\n <TopLink />\n </React.Fragment>\n );\n }\n}\n","import * as React from \"react\";\r\nimport * as ReactRedux from \"react-redux\";\r\n\r\nimport { renderSimpleStruct, renderGroupedStruct } from \"./struct-data\";\r\nimport { TopLink } from \"./top-link\";\r\n\r\ninterface HeadersPageProps {\r\n data: W.HeadersPageData;\r\n}\r\n\r\nexport class HeadersPage extends React.Component<HeadersPageProps> {\r\n public render(): JSX.Element | null {\r\n const { data } = this.props;\r\n\r\n return (\r\n <section className=\"data-page\">\r\n {renderSimpleStruct(data.dosHeader)}\r\n <TopLink />\r\n {renderSimpleStruct(data.peSignature)}\r\n <TopLink />\r\n {renderSimpleStruct(data.fileHeader)}\r\n <TopLink />\r\n {renderGroupedStruct(data.optionalHeader)}\r\n <TopLink />\r\n {renderGroupedStruct(data.dataDirectories)}\r\n <TopLink />\r\n {renderGroupedStruct(data.sectionHeaders)}\r\n <TopLink />\r\n </section>\r\n );\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport * as ReactRedux from \"react-redux\";\r\n\r\nimport * as A from \"../store/actions\";\r\nimport * as S from \"../store/state\";\r\n\r\ninterface ConnectedEvents {\r\n onFileSelected: (file: File) => void;\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch: ReactRedux.Dispatch<S.AppState>): ConnectedEvents {\r\n return {\r\n onFileSelected: (file) => dispatch(A.createOpenFileAction(file))\r\n };\r\n}\r\n\r\nclass OpenFilePageClass extends React.Component<ConnectedEvents> {\r\n public constructor(props: any) {\r\n super(props);\r\n this.onFileChange = this.onFileChange.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n <section className=\"file-opener\">\r\n <div>Select a file:</div>\r\n <div><input type=\"file\" onChange={this.onFileChange}></input></div>\r\n <div className=\"info\">No data would be uploaded, everything is parsed locally.</div>\r\n </section>\r\n )\r\n }\r\n\r\n private onFileChange(ev: React.ChangeEvent<HTMLInputElement>): void {\r\n const { onFileSelected } = this.props;\r\n const fileList = ev.target.files;\r\n if (fileList && fileList.length > 0) {\r\n onFileSelected(fileList[0]);\r\n }\r\n }\r\n}\r\n\r\nexport const OpenFilePage = ReactRedux.connect(null, mapDispatchToProps)(OpenFilePageClass);\r\n","import * as React from \"react\";\r\nimport * as ReactRedux from \"react-redux\";\r\n\r\nimport * as S from \"../store/state\";\r\n\r\nimport { OpenFilePage } from \"./open-file-page\";\r\nimport { HeadersPage } from \"./headers-page\";\r\nimport { MetadataHeadersPage } from \"./md-headers-page\";\r\nimport { MdsTablePage } from \"./mds-table-page\";\r\nimport { PagedItemListPage } from \"./paged-item-list-page\";\r\n\r\ninterface ConnectedProps {\r\n pageData?: W.PageData;\r\n}\r\n\r\nfunction mapStateToProps(state: S.AppState): ConnectedProps {\r\n const { pageData } = state;\r\n\r\n return {\r\n pageData\r\n };\r\n}\r\n\r\nclass PageContentClass extends React.Component<ConnectedProps> {\r\n public render(): JSX.Element {\r\n return (\r\n <section id=\"app-content\">\r\n {this.renderContent()}\r\n </section>\r\n )\r\n }\r\n\r\n private renderContent(): JSX.Element {\r\n const { pageData } = this.props;\r\n\r\n if (pageData == null) {\r\n return <OpenFilePage />;\r\n }\r\n\r\n switch (pageData.nav.pageID) {\r\n case W.PageID.HEADERS:\r\n return <HeadersPage data={pageData as W.HeadersPageData} />;\r\n case W.PageID.MD_HEADERS:\r\n return <MetadataHeadersPage data={pageData as W.MetadataHeadersPageData} />;\r\n case W.PageID.MDS_TABLE:\r\n return <MdsTablePage data={pageData as W.MdsTablePageData} />;\r\n case W.PageID.MDS_STRINGS:\r\n case W.PageID.MDS_US:\r\n case W.PageID.MDS_GUID:\r\n case W.PageID.MDS_BLOB:\r\n case W.PageID.MDT_TBL:\r\n return <PagedItemListPage data={pageData as W.PagedItemListPageData} />;\r\n default:\r\n return <div>Page not found.</div>;\r\n }\r\n }\r\n}\r\n\r\nexport const PageContent = ReactRedux.connect(mapStateToProps)(PageContentClass);\r\n","import * as React from \"react\";\r\nimport * as ReactRedux from \"react-redux\";\r\n\r\nimport * as S from \"../store/state\";\r\nimport { NavLink } from \"./nav-link\";\r\n\r\ninterface ConnectedProps {\r\n pageData?: W.PageData;\r\n navList: W.NavData[];\r\n}\r\n\r\nfunction mapStateToProps(state: S.AppState): ConnectedProps {\r\n const { pageData, navList } = state;\r\n\r\n return {\r\n pageData,\r\n navList\r\n };\r\n}\r\n\r\nclass PageNavListClass extends React.Component<ConnectedProps> {\r\n public render(): JSX.Element | null {\r\n const { navList } = this.props;\r\n\r\n if (!navList || navList.length == 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n <section id=\"app-nav-list\">\r\n {this.renderNavList(navList)}\r\n </section>\r\n )\r\n }\r\n\r\n private renderNavList(data: W.NavData[]): JSX.Element {\r\n const { pageData } = this.props;\r\n return (\r\n <ul>\r\n {data.map((v, i) => (\r\n <li key={i}>\r\n <NavLink target={v.target} extraClass={this.isSelected(v.target) ? \"strong\" : \"\"} />\r\n {v.children && this.renderNavList(v.children)}\r\n </li>\r\n ))}\r\n </ul>\r\n );\r\n }\r\n\r\n private isSelected(target: W.NavTarget): boolean {\r\n const { pageData } = this.props;\r\n if (!pageData) return false;\r\n\r\n const { pageID, subID } = pageData.nav;\r\n return pageID == target.pageID && target.elemID == null\r\n && (subID == null || subID == target.subID);\r\n }\r\n}\r\n\r\nexport const PageNavList = ReactRedux.connect(mapStateToProps)(PageNavListClass);","import * as React from \"react\";\nimport * as ReactRedux from \"react-redux\";\n\nimport * as S from \"../store/state\";\nimport { NavLink } from \"./nav-link\";\n\ninterface ConnectedProps {\n fileInfo?: S.FileInfo;\n pageData?: W.PageData;\n navList: W.NavData[];\n}\n\nfunction mapStateToProps(state: S.AppState): ConnectedProps {\n const { fileInfo, pageData, navList } = state;\n return { fileInfo, pageData, navList };\n}\n\nclass PageHeaderClass extends React.Component<ConnectedProps> {\n public render(): JSX.Element {\n const { fileInfo } = this.props;\n\n return (\n <header id=\"app-header\">\n {fileInfo ? this.renderFileInfo() : this.renderWelcome()}\n {!fileInfo && (\n <div>PE Viewer is a simple single-page web application for viewing content of a PE (Portable Executable) file, which is the executabule file on Windows operating system and Microsoft .NET.</div>\n )}\n </header>\n )\n }\n\n private renderWelcome(): JSX.Element {\n return (\n <div className=\"pg-title-line\">\n <h1 className=\"pg-finame\">Welcome to PE Viewer.</h1>\n </div>\n );\n }\n\n private renderFileInfo(): JSX.Element {\n const { fileInfo } = this.props;\n const { name, size, is32Bit, isManaged } = fileInfo!;\n\n return (\n <div className=\"pg-title-line\">\n <h1 className=\"pg-finame\">{name}</h1>\n {this.renderPageTitle()}\n <div className=\"pg-finfo\">\n <span>{size.toLocaleString()} bytes.</span>\n\n {is32Bit != null && (\n <React.Fragment>\n <span> | </span>\n <span>{is32Bit ? \"32-bit\" : \"64-bit\"}</span>\n </React.Fragment>\n )}\n\n {isManaged != null && (\n <React.Fragment>\n <span> | </span>\n <span>{isManaged ? \"managed\" : \"unmanaged\"}</span>\n </React.Fragment>\n )}\n </div>\n </div>\n );\n }\n\n private renderPageTitle(): JSX.Element | null {\n const { pageData } = this.props;\n\n if (pageData && pageData.nav && pageData.nav.title) {\n return <h1 className=\"pg-title\">{pageData.nav.title}</h1>;\n } else {\n return null;\n }\n }\n}\n\nexport const PageHeader = ReactRedux.connect(mapStateToProps)(PageHeaderClass);","import * as React from \"react\";\n\nimport { PageHeader } from \"./page-header\";\nimport { PageNavList } from \"./page-nav-list\";\nimport { PageContent } from \"./page-content\";\nimport { PageFooter } from \"./page-footer\";\n\nexport class App extends React.Component {\n public render(): JSX.Element {\n return (\n <React.Fragment>\n <PageHeader />\n <PageNavList />\n <PageContent />\n <PageFooter />\n </React.Fragment>\n )\n }\n}","import * as Redux from \"redux\";\r\nimport * as A from \"./actions\";\r\nimport * as S from \"./state\";\r\n\r\nexport const appReducer = Redux.combineReducers({\r\n appInfo,\r\n fileInfo,\r\n pageData,\r\n navList,\r\n}) as Redux.Reducer<S.AppState>;\r\n\r\nfunction appInfo(state: S.AppInfo | null = null, action: Redux.Action): S.AppInfo | null {\r\n return state;\r\n}\r\n\r\nfunction fileInfo(state: S.FileInfo | null = null, action: Redux.Action): S.FileInfo | null {\r\n switch (action.type) {\r\n case A.ActionType.OPEN_FILE: {\r\n const { file } = action as A.OpenFileAction;\r\n const { name, size } = file;\r\n return Object.assign({}, state, { name, size });\r\n }\r\n\r\n case A.ActionType.SET_PE_PROPS: {\r\n const { is32Bit, isManaged } = action as A.SetPEPropsAction;\r\n return Object.assign({}, state, { is32Bit, isManaged });\r\n }\r\n\r\n default: return state;\r\n }\r\n}\r\n\r\nfunction pageData(state: W.PageData | null = null, action: Redux.Action): W.PageData | null {\r\n switch (action.type) {\r\n case A.ActionType.SET_PAGE_DATA: {\r\n const { data } = action as A.SetPageDataAction;\r\n return data;\r\n }\r\n\r\n default: return state;\r\n }\r\n}\r\n\r\nfunction navList(state: W.NavData[] = [], action: Redux.Action): W.NavData[] {\r\n switch (action.type) {\r\n case A.ActionType.SET_NAV_LIST: {\r\n const { navList } = action as A.SetNavListAction;\r\n return navList;\r\n }\r\n\r\n default: return state;\r\n }\r\n}","module.exports = ReactDOM;","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport * as Redux from \"redux\";\r\nimport * as ReactRedux from \"react-redux\";\r\n\r\nimport * as packageJson from \"package.json\";\r\nimport * as S from \"./store/state\";\r\nimport * as R from \"./store/reducers\";\r\nimport { App } from \"./components/app\";\r\nimport { actionListenerMiddleware } from \"./action-listener\";\r\nimport { workerClientMiddleware, initWorkerClient } from \"./worker-client\";\r\n\r\nconst appInfo: S.AppInfo = {\r\n title: packageJson.title,\r\n version: packageJson.version,\r\n author: packageJson.author,\r\n homepage: packageJson.homepage,\r\n bugsUrl: packageJson.bugs_url,\r\n releaseNotesUrl: packageJson.release_notes,\r\n buildTimeLocal: new Date(Date.parse(packageJson.build_time)).toLocaleString(),\r\n year: new Date().getFullYear().toString(),\r\n};\r\n\r\nconst defaultState: S.AppState = {\r\n appInfo,\r\n navList: []\r\n};\r\n\r\ndocument.title = `${appInfo.title}`;\r\n\r\nconst _w = window as any;\r\nconst composeEnhancers = _w.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || Redux.compose;\r\nconst store = Redux.createStore(R.appReducer, defaultState, composeEnhancers(\r\n Redux.applyMiddleware(\r\n actionListenerMiddleware,\r\n workerClientMiddleware)\r\n));\r\n\r\ninitWorkerClient(store);\r\n\r\nReactDOM.render(\r\n <ReactRedux.Provider store={store}>\r\n <App />\r\n </ReactRedux.Provider>,\r\n document.getElementById(\"app\")\r\n);\r\n"],"sourceRoot":""}