{"version":3,"sources":["reportWebVitals.js","assets/img/brand/logo.png","helpers/authBackend.js","layouts/Login.jsx","helpers/common.js","components/ComponentPrevent.jsx","components/ModalExport.jsx","components/Sidebar.jsx","components/Spinner.jsx","components/TableInfo.jsx","pages/CookieTemplate/CookieTemplateList.jsx","pages/CookieTemplate/CookieTemplateCreate.jsx","pages/CookieTemplate/CookieTemplateEdit.jsx","pages/ConsentTransaction/ConsentTransactionList.jsx","routes/index.js","stores/user/action.js","routes/AppRoute.jsx","stores/user/selector.js","stores/selectors.js","layouts/AuthLayout.jsx","layouts/NonAuthLayout.jsx","App.js","stores/user/reducer.js","stores/reducers.js","stores/user/saga.js","stores/sagas.js","stores/index.js","index.js"],"names":["reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","window","appConfig","endpoint","path","AUTHORIZATION","AuthBackend","loginUser","username","password","Promise","resolve","reject","axios","post","authLogin","Username","Password","resp","localStorage","setItem","data","token","catch","error","logoutUser","delete","authLogout","removeItem","revokeAuthentication","getAuthenticatedToken","jwtToken","getItem","jwtDecode","exp","Date","getTime","console","log","_authBackend","getAuthBackend","authBackend","Login","history","useHistory","Form","useForm","form","useEffect","document","body","classList","add","remove","className","xmlns","preserveAspectRatio","version","viewBox","x","y","points","Container","Row","Helmet","Col","lg","md","Card","CardHeader","alt","src","logo","style","width","height","CardBody","layout","name","initialValues","modifier","onFinish","fields","notification","success","message","description","placement","icon","LoginOutlined","color","push","response","Message","finally","resetFields","Item","rules","required","InputGroup","InputGroupAddon","addonType","InputGroupText","Input","placeholder","type","Button","callAPI","instance","create","interceptors","request","use","config","url","status","location","replace","apiPath","ComponentPrevent","useRef","current","ModalExport","fileId","criteria","visible","onClose","useState","isPrepareDownload","setIsPrepareDownload","dowloadData","setDownloadData","source","EventSource","cookieLogsExportNotification","onopen","e","fetchExportFile","onmessage","eventData","JSON","parse","filter","item","Id","length","close","handleEventSourceError","onerror","get","cookieLogsExport","params","id","title","closable","footer","onClick","strokeColor","from","to","percent","showInfo","map","index","showIcon","FileTextOutlined","FileName","action","size","open","cookieLogsLocation","Sider","Layout","Sidebar","routes","toggleCollapse","useLocation","theme","trigger","collapsible","collapsed","mode","defaultSelectedKeys","selectedKeys","pathname","sidebar","route","Spinner","show","position","top","left","bottom","right","display","alignItems","justifyContent","background","zIndex","TableInfo","total","CookieTemplateList","componentPrevent","defaultPagination","pageSize","dateFormat","tableData","setTableData","tableLoading","setTableLoading","pagination","setPagination","tableInfo","setTableInfo","searchCriteria","setSearchCriteria","columns","dataIndex","key","render","value","fileNames","Object","keys","text","toUpperCase","MoreOutlined","cursor","exec","CopyOutlined","obj","EditOutlined","DeleteOutlined","danger","handleDelete","fetchCookieTemplate","cookieTemplate","PageEnabled","PageNumber","PageSize","templateName","webUrl","th","fileNameTh","en","fileNameEn","updatedAt","updatedBy","currentPage","totalCount","Modal","confirm","ExclamationCircleOutlined","content","okText","okType","onOk","cookieTemplateById","fluid","label","format","xs","SearchOutlined","validateFields","DateFrom","moment","DateTo","ClearOutlined","xl","PlusCircleOutlined","dataSource","showSizeChanger","scroll","loading","onChange","page","CookieTemplateCreate","fontColorRef","backgroundColorRef","isAllowReject","setIsAllowReject","setLoading","handleChangeColorPicker","fieldName","setFieldsValue","target","handleChangeInputColor","ref","targetValue","match","FontTitleSize","toString","FontDescriptionSize","Position","IsFullTab","DescriptionTh","DescriptionEn","AllowReject","ExpiresInDays","orientation","offset","max","pattern","suffix","padding","border","defaultValue","maxLength","valuePropName","getValueFromEvent","event","editor","getData","checkedChildren","CheckOutlined","unCheckedChildren","CloseOutlined","htmlType","SaveOutlined","LeftOutlined","CookieTemplateEdit","templateId","useParams","setFileNames","onDataReady","setOnDataReady","defaultColor","TemplateName","WebUrl","BackgroundColor","backgroundColor","FontColor","fontColor","FontFamilyName","fontFamilyName","fontTitleSize","parseInt","TitleTh","titleTh","TitleEn","titleEn","fontDescriptionSize","descriptionTh","descriptionEn","TextButtonAcceptTh","textButtonAcceptTh","TextButtonAcceptEn","textButtonAcceptEn","expiresInDays","allowReject","TextButtonDeclineTh","textButtonDeclineTh","TextButtonDeclineEn","textButtonDeclineEn","patch","FileTextFilled","ConsentTransactionList","countPerWeb","setCountPerWeb","isDownloadVisible","setIsDownloadVisible","whiteSpace","align","fetchConsentTransaction","cookieLogs","transactionId","browserInfo","agentId","policyVersion","cookieConsent","isAccept","transactionDateTime","createdAt","handleFormSearch","subtract","allowClear","Option","paddingLeft","paddingRight","marginLeft","borderRadius","count","DownloadOutlined","disabled","authProtectedRoutes","exact","component","LayoutOutlined","fontSize","AuditOutlined","publicRoutes","setUser","createAction","setUserSuccess","setUserFailed","AppRoute","Component","isAuthProtected","props","routeProps","state","mapDispatchToProps","connect","withRouter","userSelector","createSelector","user","Header","Content","Footer","AuthLayout","Children","children","setCollapsed","overflowY","lineHeight","Navbar","expand","React","createElement","MenuUnfoldOutlined","MenuFoldOutlined","transition","Nav","UncontrolledDropdown","nav","DropdownToggle","Media","UserOutlined","fontWeight","unique_name","DropdownMenu","DropdownItem","LogoutOutlined","overflow","textAlign","NonAuthLayout","Fragment","App","idx","userReducer","createReducer","_","payload","rootReducer","combineReducers","handleSetUser","jwtData","put","warn","takeEvery","rootSaga","all","userSaga","sagaMiddleware","createSagaMiddleware","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","applyMiddleware","run","app","ReactDOM","getElementById"],"mappings":"iNAYeA,EAZS,SAAAC,GAClBA,GAAeA,aAAuBC,UACxC,8BAAqBC,MAAK,YAAkD,IAA/CC,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAON,GACPO,EAAQP,O,yKCPC,MAA0B,iC,sCCGdQ,OAAOC,UAA1BC,E,EAAAA,SAAUC,E,EAAAA,KACZC,EAAgB,gBAEhBC,E,sCACJC,UAAY,SAACC,EAAUC,GACrB,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,IACGC,KAAKX,EAAWC,EAAKW,UAAW,CAC/BC,SAAUR,EACVS,SAAUR,IAEXd,MAAK,SAAAuB,GACJC,aAAaC,QAAQf,EAAea,EAAKG,KAAKC,OAC9CX,GAAQ,MAETY,OAAM,SAAAC,GACLZ,EAAOY,U,KAKfC,WAAa,WACX,OAAO,IAAIf,SAAQ,SAACC,EAASC,GAC3BC,IACGa,OAAOvB,EAAWC,EAAKuB,YACvBhC,MAAK,WACJwB,aAAaS,WAAWvB,GACxBM,GAAQ,MAETY,OAAM,SAAAC,GACLZ,EAAOY,U,KAKfK,qBAAuB,WACrBV,aAAaS,WAAWvB,I,KAG1ByB,sBAAwB,WACtB,IACE,IAAMC,EAAWZ,aAAaa,QAAQ3B,GACtC,GAAI0B,EAIF,GAFyB,IADTE,YAAUF,GAAlBG,KAEY,IAAIC,MAAOC,UAE7B,OAAOL,EAIX,OADAZ,aAAaS,WAAWvB,GACjB,KACP,MAAOmB,GAEP,OADAa,QAAQC,IAAI,wBAAyBd,GAC9B,QAKTe,EAAe,KAEbC,EAAiB,WAIrB,OAHKD,IACHA,EAAe,IAAIjC,GAEdiC,G,OC1CHE,EAAcD,IAsJLE,EApJD,WACZ,IAAMC,EAAUC,cADE,EAEHC,IAAKC,UAAbC,EAFW,oBAkClB,OAPAC,qBAAU,WAER,OADAC,SAASC,KAAKC,UAAUC,IAAI,cACrB,WACLH,SAASC,KAAKC,UAAUE,OAAO,iBAEhC,IAGD,mCACE,sBAAKC,UAAU,eAAf,UACE,qBAAKA,UAAU,uCAAf,SACE,qBAAKA,UAAU,uDAAf,SACE,qBACEC,MAAM,6BACNC,oBAAoB,OACpBC,QAAQ,MACRC,QAAQ,eACRC,EAAE,IACFC,EAAE,IANJ,SAQE,yBACEN,UAAU,eACVO,OAAO,gCAKf,cAACC,EAAA,EAAD,CAAWR,UAAU,aAArB,SACE,eAACS,EAAA,EAAD,CAAKT,UAAU,yBAAf,UACE,cAACU,EAAA,EAAD,UACE,sEAEF,cAACC,EAAA,EAAD,CAAKC,GAAG,IAAIC,GAAG,IAAf,SACE,eAACC,EAAA,EAAD,CAAMd,UAAU,+BAAhB,UACE,cAACe,EAAA,EAAD,CAAYf,UAAU,sBAAtB,SACE,qBAAKA,UAAU,yBAAf,SACE,qBACEgB,IAAI,MACJC,IAAKC,EACLC,MAAO,CAAEC,MAAO,QAASC,OAAQ,eAKvC,cAACC,EAAA,EAAD,CAAUtB,UAAU,kBAApB,SACE,eAAC,IAAD,CACEP,KAAMA,EACN8B,OAAO,WACPC,KAAK,OACLC,cAAe,CACbC,SAAU,UAEZC,SA3ED,SAACC,GAChBzC,EACGlC,UAAU2E,EAAOlE,SAAUkE,EAAOjE,UAClCtB,MAAK,WACJwF,IAAaC,QAAQ,CACnBC,QAAS,gBACTC,YAAa,uCACbC,UAAW,cACXC,KAAM,cAACC,EAAA,EAAD,CAAehB,MAAO,CAAEiB,MAAO,eAEvC/C,EAAQgD,KAAK,wBAEdpE,OAAM,SAAAC,GAAU,IAAD,IACd2D,IAAa3D,MAAM,CACjB6D,SAAc,OAAL7D,QAAK,IAALA,GAAA,UAAAA,EAAOoE,gBAAP,mBAAiBvE,YAAjB,eAAuBwE,UAAWrE,EAAM6D,QACjDE,UAAW,mBAGdO,SAAQ,WACP/C,EAAKgD,kBAiDK,UASE,cAAC,IAAKC,KAAN,CACElB,KAAK,WACLxB,UAAU,OACV2C,MAAO,CACL,CACEC,UAAU,EACVb,QAAS,2BANf,SAUE,eAACc,EAAA,EAAD,CAAY7C,UAAU,0BAAtB,UACE,cAAC8C,EAAA,EAAD,CAAiBC,UAAU,UAA3B,SACE,cAACC,EAAA,EAAD,UACE,mBAAGhD,UAAU,uBAIjB,cAACiD,EAAA,EAAD,CAAOC,YAAY,kBAGvB,cAAC,IAAKR,KAAN,CACElB,KAAK,WACLmB,MAAO,CACL,CACEC,UAAU,EACVb,QAAS,2BALf,SASE,eAACc,EAAA,EAAD,CAAY7C,UAAU,0BAAtB,UACE,cAAC8C,EAAA,EAAD,CAAiBC,UAAU,UAA3B,SACE,cAACC,EAAA,EAAD,UACE,mBAAGhD,UAAU,+BAGjB,cAACiD,EAAA,EAAD,CAAOE,KAAK,WAAWD,YAAY,kBAGvC,cAAC,IAAKR,KAAN,UAcE,qBAAK1C,UAAU,cAAf,SACE,cAACoD,EAAA,EAAD,CAAQpD,UAAU,OAAOoC,MAAM,UAAUe,KAAK,SAA9C,8C,oMC/JXE,GAAW,WACtB,IAAMC,EAAW/F,IAAMgG,SACjBpE,EAAcD,IACZrC,EAAaF,OAAOC,UAApBC,SAyBR,OAvBAyG,EAASE,aAAaC,QAAQC,KAAI,SAAAC,GAOhC,OADAA,EAAOC,IAAM/G,EAAW8G,EAAOC,IACxBD,KACN,SAAAzF,GACD,OAAOd,QAAQE,OAAOY,MAGxBoF,EAASE,aAAalB,SAASoB,KAAI,SAAApB,GACjC,OAAOA,KACN,SAAApE,GACD,GAA6B,MAA1BA,EAAMoE,SAASuB,OAIhB,OAAOzG,QAAQE,OAAOY,GAHtBiB,EAAYZ,uBACZ5B,OAAOmH,SAASC,QAAQ,aAMrBT,EA5Be,GA+BXU,GAAO,eACfrH,OAAOC,UAAUE,MCjCP,SAASmH,KACtB,IAAMA,EAAmBC,iBAAO,MAKhC,OAJAxE,qBAAU,WAER,OADAuE,EAAiBE,SAAU,EACpB,kBAAMF,EAAiBE,SAAU,MAEnCF,E,kCCQDpH,GAAaF,OAAOC,UAApBC,SA8HOuH,GA5HK,SAAC,GAId,IAKDC,EARJC,EAGI,EAHJA,SACAC,EAEI,EAFJA,QACAC,EACI,EADJA,QACI,EAC8CC,oBAAS,GADvD,mBACGC,EADH,KACsBC,EADtB,OAEmCF,mBAAS,IAF5C,mBAEGG,EAFH,KAEgBC,EAFhB,KAOJnF,qBAAU,WACR,GAAI6E,EAAS,CACX,IAAMO,EAAS,IAAIC,YAAYlI,GAAWmH,GAAQgB,8BAClDF,EAAOG,OAAS,SAACC,GACfC,KAEFL,EAAOM,UAAY,SAACF,GAClB,IACE,IAAMG,EAAYC,KAAKC,MAAML,EAAEnH,MAAMyH,QAAO,SAAAC,GAAI,OAAIA,EAAKC,KAAOrB,KAC5DgB,EAAUM,OAAS,IACrBd,EAAgBQ,GAChBV,GAAqB,GACrBG,EAAOc,SAET,MAAOV,GACPW,EAAuBX,KAG3BJ,EAAOgB,QAAU,SAACZ,GAAD,OAAOW,EAAuBX,IAEjD,OAAO,WACLP,GAAqB,GACrBE,EAAgB,OAEjB,CAACN,IAEJ,IAAMsB,EAAyB,SAAC3H,GAAW,IAAD,IACxCa,QAAQb,MAAM,uBAAwBA,GACtC2D,IAAa3D,MAAM,CACjB6D,SAAc,OAAL7D,QAAK,IAALA,GAAA,UAAAA,EAAOoE,gBAAP,mBAAiBvE,YAAjB,eAAuBwE,UAAWrE,EAAM6D,QACjDE,UAAW,gBAEbuC,KASIW,EAAkB,WACtB9B,GACG0C,IAAI/B,GAAQgC,iBAAkB,CAC7BC,OAAO,eACF3B,KAGNjI,MAAK,SAAAuB,GAAS,IAAD,EACZyG,EAAM,OAAGzG,QAAH,IAAGA,GAAH,UAAGA,EAAMG,YAAT,aAAG,EAAYmI,MAEtBjI,OAAM,SAAAC,GAAU,IAAD,IACd2D,IAAa3D,MAAM,CACjB6D,SAAc,OAAL7D,QAAK,IAALA,GAAA,UAAAA,EAAOoE,gBAAP,mBAAiBvE,YAAjB,eAAuBwE,UAAWrE,EAAM6D,QACjDE,UAAW,oBAKnB,OACE,cAAC,IAAD,CACEkE,MAAOzB,EAAoB,qBAAuB,oBAClDH,QAASA,EACT6B,UAAU,EACVC,OAAQ,CACN,cAAC,IAAD,CAAyBlD,KAAK,UAAUmD,QA9BrB,WAClB5B,GACHF,KA4BqExE,UAAU,MAA7E,SACG0E,EAAoB,iBAAmB,SAD1B,WALpB,SAWIA,EACE,qCACE,cAAC,KAAD,CACE6B,YAAa,CACXC,KAAM,UACNC,GAAI,WAENC,QAAS,IACT7C,OAAO,SACP8C,UAAU,IAEZ,2EACA,cAAC,KAAD,CACExD,KAAK,UACLpB,QAAS,0GAAoE,uBAApE,sDAIb,mCAEI6C,EAAYgC,KAAI,SAACnB,EAAMoB,GAAP,OACd,cAAC,KAAD,CAEE1D,KAAK,OACL2D,UAAQ,EACR5E,KAAM,cAAC6E,GAAA,EAAD,IACNhF,QAAS0D,EAAKuB,SACdC,OACE,cAAC,IAAD,CAAYC,KAAK,QAAQ/D,KAAK,UAAUmD,QAAS,kBAAM3J,OAAOwK,KAAP,UAAenD,GAAQoD,mBAAvB,YAA6C3B,EAAKuB,YAAzG,uBANGH,W,mBCrHfQ,GAAUC,KAAVD,MA4COE,GA1CC,SAAC,GAGV,IAFLC,EAEI,EAFJA,OACAC,EACI,EADJA,eAGM3D,EAAW4D,cAEjB,OACE,eAACL,GAAD,CACEM,MAAM,QACNvG,MAAO,IACPwG,QAAS,KACTC,aAAW,EACXC,UAAWL,EALb,UAOE,oBAAIzH,UAAU,cAAd,SACE,qBACEA,UAAU,OACVmB,MAAO,CAAEC,MAAO,OAChBH,IAAKC,MAGT,cAAC,KAAD,CACE6G,KAAK,SACLC,oBAAqB,CAAC,KACtBC,aAAc,CAACnE,EAASoE,SAASnE,QAAQ,iBAAkB,OAH7D,gBAMIyD,QANJ,IAMIA,OANJ,EAMIA,EAAQhC,QAAO,SAAAC,GAAI,OAAIA,EAAK0C,WAASvB,KAAI,SAAAwB,GAAK,OAC5C,cAAC,KAAK1F,KAAN,CAA4BR,KAAMkG,EAAMD,QAAQjG,KAAhD,SACE,cAAC,IAAD,CAASuE,GAAI2B,EAAMtL,KAAnB,SACGsL,EAAMD,QAAQ3G,QAFH4G,EAAMtL,e,UCXnBuL,GAvBC,SAAC,GAAc,IAAZC,EAAW,EAAXA,KACjB,OACE,mCAEIA,GACE,cAAC,KAAD,CAAMpB,KAAK,QAAQ/F,MAAO,CACxBoH,SAAU,WACVC,IAAK,EACLC,KAAM,EACNC,OAAQ,EACRC,MAAO,EACPC,QAAS,OACTC,WAAY,SACZC,eAAgB,SAChBC,WAAY,2BACZC,OAAQ,WCELC,GAjBG,SAAC,GAAD,IAChBzC,EADgB,EAChBA,KACAC,EAFgB,EAEhBA,GACAyC,EAHgB,EAGhBA,MACA/H,EAJgB,EAIhBA,MAJgB,OAMhB,mCAEI+H,EAAQ,GACN,qBAAKlJ,UAAU,MAAMmB,MAAOA,EAA5B,2BACcqF,EADd,eACyBC,EADzB,eACkCyC,EADlC,iBCkWOC,GAnUY,WAEzB,IAAMC,EAAmBnF,KAEnBoF,EAAoB,CAAElF,QAAS,EAAGmF,SAAU,IAE5CC,EAAa,aAEblK,EAAUC,cARe,EAShBC,IAAKC,UAAbC,EATwB,sBAUGgF,mBAAS,IAVZ,mBAUxB+E,EAVwB,KAUbC,EAVa,OAWShF,oBAAS,GAXlB,mBAWxBiF,EAXwB,KAWVC,EAXU,OAYKlF,mBAAS4E,GAZd,mBAYxBO,EAZwB,KAYZC,EAZY,OAaGpF,mBART,CAAE+B,KAAM,EAAGC,GAAI,EAAGyC,MAAO,IALnB,mBAaxBY,EAbwB,KAabC,EAba,OAcatF,mBAAS,IAdtB,mBAcxBuF,EAdwB,KAcRC,EAdQ,KAgBzBC,EAAU,CACd,CACE/D,MAAO,gBACPgE,UAAW,eACXC,IAAK,eACLC,OAAQ,SAAAC,GAAK,OAAI,8BAAMA,KACvBlJ,MAAO,KAET,CACE+E,MAAO,UACPgE,UAAW,SACXC,IAAK,SACLhJ,MAAO,KAET,CACE+E,MAAO,oBACPgE,UAAW,YACXC,IAAK,YACLC,OAAQ,SAAAE,GAAS,OACfC,OAAOC,KAAKF,GAAW3D,KAAI,SAACwD,EAAKvD,GAAN,aACzB,cAAC,kBAAD,CAA6B6D,KAAMH,EAAUH,GAA7C,SACE,eAAC,IAAD,CACEhI,MAAM,WACNpC,UAAU,OACVkC,KAAM,uBAAMlC,UAAU,OAAhB,UAAwBoK,EAAIO,cAAgB,IAAI,cAACC,GAAA,EAAD,OACtDzJ,MAAO,CACL0J,OAAQ,WAEVvE,QAAS,WACPvE,IAAQD,QAAR,kBAA2ByI,EAAUH,MARzC,oBAYK,gBAAiBU,KAAKP,EAAUH,WAZrC,aAYI,EAAyC,GAE3C,cAACW,GAAA,EAAD,CAAc/K,UAAU,aAfN6G,OAoB1BzF,MAAO,KAET,CACE+E,MAAO,eACPgE,UAAW,YACXC,IAAK,YACLhJ,MAAO,KAET,CACE+E,MAAO,aACPgE,UAAW,YACXC,IAAK,YACLhJ,MAAO,KAET,CACE+E,MAAO,SACPgE,UAAW,SACXC,IAAK,SACLC,OAAQ,SAAAW,GAAG,OACT,eAAC,IAAD,CAAO9D,KAAK,SAAZ,UACE,cAAC,IAAD,CACE9E,MAAM,UACNF,KAAM,cAAC+I,GAAA,EAAD,IACN3E,QAAS,kBAAMjH,EAAQgD,KAAR,4BAAkC2I,EAAI9E,GAAtC,WACflG,UAAU,oBAEZ,cAAC,IAAD,CACEoC,MAAM,UACNF,KAAM,cAACgJ,GAAA,EAAD,IACNC,QAAM,EACN7E,QAAS,kBAAM8E,EAAaJ,YAOhCK,EAAsB,SAAC,GAItB,IAHLlH,EAGI,EAHJA,QACAmF,EAEI,EAFJA,SACG1H,EACC,sCACJ+H,GAAgB,GAChBtG,GACG0C,IAAI/B,GAAQsH,eAAgB,CAC3BrF,OAAO,aACLsF,aAAa,EACbC,WAAYrH,EACZsH,SAAUnC,GACP1H,KAGNvF,MAAK,SAAAuB,GAAI,OAAIA,EAAKG,QAClB1B,MAAK,SAAAuD,GAC2B,IAAD,EAA1BwJ,EAAiBjF,UACnBsF,EAAY,UAAC7J,EAAK7B,YAAN,aAAC,EAAW6I,KAAI,SAACnB,GAAD,MAAW,CACrC2E,IAAK3E,EAAKS,GACVwF,aAAcjG,EAAKiG,aACnBC,OAAQlG,EAAKkG,OACbpB,UAAW,CACTqB,GAAInG,EAAKoG,WACTC,GAAIrG,EAAKsG,YAEXC,UAAWvG,EAAKuG,UAChBC,UAAWxG,EAAKwG,UAChBhF,OAAQ,CACNf,GAAIT,EAAKS,GACTwF,aAAcjG,EAAKiG,mBAGvB7B,EAAc,CACZ1F,QAASvE,EAAKsM,YACd5C,SAAU1J,EAAK0J,SACfJ,MAAOtJ,EAAKuM,aAEdlC,EAAkB,eACbrI,IAELmI,EAAa,CACXvD,MAAQ5G,EAAKsM,YAAc,GAAKtM,EAAK0J,SAAY,EACjD7C,IAAM7G,EAAKsM,YAAc,GAAKtM,EAAK0J,SAAY1J,EAAK7B,KAAK4H,OACzDuD,MAAOtJ,EAAKuM,iBAIjBlO,OAAM,SAAAC,GAAU,IAAD,IACd2D,IAAa3D,MAAM,CACjB6D,SAAc,OAAL7D,QAAK,IAALA,GAAA,UAAAA,EAAOoE,gBAAP,mBAAiBvE,YAAjB,eAAuBwE,UAAWrE,EAAM6D,QACjDE,UAAW,mBAGdO,SAAQ,WACH4G,EAAiBjF,SACnBwF,GAAgB,OAKlByB,EAAe,SAAAJ,GACnBoB,IAAMC,QAAQ,CACZlG,MAAO,mCACPjE,KAAM,cAACoK,GAAA,EAAD,IACNC,QAASvB,EAAIU,aACbc,OAAQ,SACRC,OAAQ,SACRC,KAAM,WACJrJ,GACGjF,OAAO4F,GAAQ2I,mBAAmB5I,QAAQ,OAAQiH,EAAI9E,KACtD7J,MAAK,SAAAuB,GAAI,OAAIA,EAAKG,QAClB1B,MAAK,WACJwF,IAAaC,QAAQ,CACnBC,QAAQ,IAAD,OAAMiJ,EAAIU,aAAV,+BACPzJ,UAAW,gBAEboJ,EAAoBhC,MAErBpL,OAAM,SAAAC,GAAU,IAAD,IACd2D,IAAa3D,MAAM,CACjB6D,SAAc,OAAL7D,QAAK,IAALA,GAAA,UAAAA,EAAOoE,gBAAP,mBAAiBvE,YAAjB,eAAuBwE,UAAWrE,EAAM6D,QACjDE,UAAW,mBAGdO,SAAQ,WACH4G,EAAiBjF,SACnBwF,GAAgB,UA6B5B,OAJAjK,qBAAU,WACR2L,EAAoBhC,KACnB,IAGD,qCACE,qBAAKrJ,UAAU,iDAAf,SACE,cAACQ,EAAA,EAAD,CAAWoM,OAAK,EAAhB,SACE,eAAC,IAAD,CAAMnN,KAAMA,EAAM8B,OAAO,WAAzB,UACE,eAACd,EAAA,EAAD,WACE,cAACE,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,eAAe0E,GAAG,eAAe2G,MAAO,sBAAM7M,UAAU,aAAhB,2BAAxD,SACE,cAAC,KAAD,CAAOmD,KAAK,OAAOD,YAAY,sBAGnC,cAACvC,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,SAAS0E,GAAG,SAAS2G,MAAO,sBAAM7M,UAAU,aAAhB,qBAA5C,SACE,cAAC,KAAD,CAAOmD,KAAK,OAAOD,YAAY,gBAGnC,cAACvC,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,cAAc0E,GAAG,cAAc2G,MAAO,sBAAM7M,UAAU,aAAhB,0BAAtD,SACE,cAAC,KAAD,CAAOmD,KAAK,OAAOD,YAAY,qBAGnC,cAACvC,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,YAAY0E,GAAG,YAAY2G,MAAO,sBAAM7M,UAAU,aAAhB,wBAAlD,SACE,cAAC,KAAD,CAAOmD,KAAK,OAAOD,YAAY,sBAIrC,eAACzC,EAAA,EAAD,WACE,cAACE,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,WAAW0E,GAAG,WAAW2G,MAAO,sBAAM7M,UAAU,aAAhB,uBAAhD,SACE,cAAC,KAAD,CACEkD,YAAY,YACZ4J,OAAQvD,EACRpI,MAAO,CAAEC,MAAO,cAItB,cAACT,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,SAAS0E,GAAG,SAAS2G,MAAO,sBAAM7M,UAAU,aAAhB,qBAA5C,SACE,cAAC,KAAD,CACEkD,YAAY,UACZ4J,OAAQvD,EACRpI,MAAO,CAAEC,MAAO,cAItB,cAACT,EAAA,EAAD,CAAKoM,GAAI,EAAG/M,UAAU,SAAtB,SACE,eAAC,IAAK0C,KAAN,CAAW1C,UAAU,UAArB,UACE,cAAC,IAAD,CAAYkC,KAAM,cAAC8K,GAAA,EAAD,IAAoB1G,QAtE7B,WACvB7G,EACGwN,iBACA5Q,MAAK,SAAAuF,GACJyJ,EAAoB,uCACfhC,GACAzH,GAFc,IAGjBsL,SAAUtL,EAAOsL,UAAYC,IAAOvL,EAAOsL,UAAUJ,OAAOvD,GAC5D6D,OAAQxL,EAAOwL,QAAUD,IAAOvL,EAAOwL,QAAQN,OAAOvD,UA8DmBvJ,UAAU,OAA3E,oBACA,cAAC,IAAD,CAAYkC,KAAM,cAACmL,GAAA,EAAD,IAAmB/G,QA1D7B,WACtB7G,EAAKgD,cACL4I,EAAoBhC,IAwDN,kCAQZ,cAAC7I,EAAA,EAAD,CAAWR,UAAU,QAAQ4M,OAAK,EAAlC,SACE,cAACnM,EAAA,EAAD,UACE,cAACE,EAAA,EAAD,CAAKX,UAAU,aAAasN,GAAG,KAA/B,SACE,eAACxM,EAAA,EAAD,CAAMd,UAAU,sBAAhB,UAEE,cAAC,GAAD,CACEwG,KAAMsD,EAAUtD,KAChBC,GAAIqD,EAAUrD,GACdyC,MAAOY,EAAUZ,MACjB/H,MAAO,CAAEoH,SAAU,WAAYC,IAAK,OAAQQ,OAAQ,OAGtD,cAACjI,EAAA,EAAD,CAAYf,UAAU,eAAtB,SACE,cAACS,EAAA,EAAD,UACE,cAACE,EAAA,EAAD,CAAKX,UAAU,aAAf,SACE,cAAC,IAAD,CACEkC,KAAM,cAACqL,GAAA,EAAD,IACNjH,QAAS,kBAAKjH,EAAQgD,KAAK,6BAC3BrC,UAAU,yBACVkH,KAAK,QAJP,mCAYN,cAAC,KAAD,CACEgD,QAASA,EACTsD,WAAYhE,EACZI,WAAU,2BAAOA,GAAP,IAAmB6D,iBAAiB,IAC9CC,OAAQ,CAAErN,EAAG,QACbsN,QAASjE,EACTkE,SAAU,SAAAC,GACRxC,EAAoB,aAClBlH,QAAS0J,EAAK1J,QACdmF,SAAUuE,EAAKvE,UACZU,OAKT,cAAC,GAAD,CACExD,KAAMsD,EAAUtD,KAChBC,GAAIqD,EAAUrD,GACdyC,MAAOY,EAAUZ,MACjB/H,MAAO,CAAEoH,SAAU,WAAYG,OAAQ,MAAOM,OAAQ,oB,6GC0BvD8E,GAxVc,WAE3B,IAAM1E,EAAmBnF,KAEnB5E,EAAUC,cACVyO,EAAe7J,mBACf8J,EAAqB9J,mBANM,EAQlB3E,IAAKC,UAAbC,EAR0B,sBASSgF,oBAAS,GATlB,mBAS1BwJ,EAT0B,KASXC,EATW,OAUHzJ,oBAAS,GAVN,mBAU1BkJ,EAV0B,KAUjBQ,EAViB,KAqD3BC,EAA0B,SAACC,GAAD,OAAe,SAACnJ,GAC9CzF,EAAK6O,eAAL,gBACGD,EAAYnJ,EAAEqJ,OAAOjE,UAIpBkE,EAAyB,SAACC,GAAD,OAAS,SAACvJ,GACvC,IAAMwJ,EAAcxJ,EAAEqJ,OAAOjE,MAC7BmE,EAAItK,QAAQmG,MAAQoE,EAAYC,MAAM,sBAAwBD,EAAc,YAG9E,OACE,qCACE,qBAAK1O,UAAU,iDAAf,SACE,cAACQ,EAAA,EAAD,CAAWoM,OAAK,MAKlB,cAACpM,EAAA,EAAD,CAAWR,UAAU,QAAQ4M,OAAK,EAAlC,SACE,cAACnM,EAAA,EAAD,UACE,cAACE,EAAA,EAAD,CAAKX,UAAU,aAAasN,GAAG,KAA/B,SACE,eAAC,KAAD,CAAMtN,UAAU,sBAAhB,UACE,wDACA,eAAC,IAAD,CACEP,KAAMA,EACN8B,OAAO,WACPI,SAhEG,SAACC,GAAY,IAAD,IAC3BuM,GAAW,GACX9K,GACG7F,KAAKwG,GAAQsH,eADhB,2BAEO1J,GAFP,IAGIgN,cAAa,UAAEhN,EAAOgN,qBAAT,aAAE,EAAsBC,WACrCC,oBAAmB,UAAElN,EAAOkN,2BAAT,aAAE,EAA4BD,WACjDE,SAAU,mBACVC,UAAW,UAEZ3S,MAAK,SAAAuB,GAAI,OAAIA,EAAKG,QAClB1B,MAAK,SAAAuD,GACAwJ,EAAiBjF,UACnBtC,IAAaC,QAAQ,CACnBC,QAAQ,IAAD,OAAMnC,EAAK8L,aAAX,+BACPzJ,UAAW,gBAMb5C,EAAQgD,KAAR,4BAAkCzC,EAAKsG,GAAvC,cAGHjI,OAAM,SAAAC,GAAU,IAAD,IACd2D,IAAa3D,MAAM,CACjB6D,SAAc,OAAL7D,QAAK,IAALA,GAAA,UAAAA,EAAOoE,gBAAP,mBAAiBvE,YAAjB,eAAuBwE,UAAWrE,EAAM6D,QACjDE,UAAW,mBAGdO,SAAQ,WACH4G,EAAiBjF,SACnBgK,GAAW,OAkCL1M,cACE,CACEwN,cAAe,GACfC,cAAe,GACfC,YAAalB,EACbmB,cAAe,KAVrB,UAcE,cAAC,GAAD,CAAS9G,KAAMqF,IACf,cAAC,KAAD,CAAS0B,YAAY,SACrB,cAAC5O,EAAA,EAAD,UACE,eAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,UACE,cAAC,IAAKxE,KAAN,CAAWlB,KAAK,eAAeqL,MAAM,gBAAgBlK,MAAO,CAC1D,CAAEC,UAAU,EAAMb,QAAS,8BAC3B,CAAEwN,IAAK,GAAIxN,QAAS,sDAFtB,SAIE,cAAC,KAAD,CAAO/B,UAAU,iBAEnB,cAAC,IAAK0C,KAAN,CAAWlB,KAAK,SAASqL,MAAM,UAAUlK,MAAO,CAC9C,CAAEC,UAAU,EAAMb,QAAS,wBAC3B,CAAEwN,IAAK,IAAKxN,QAAS,gDAFvB,SAIE,cAAC,KAAD,CAAO/B,UAAU,iBAEnB,cAAC,IAAK0C,KAAN,CAAWlB,KAAK,kBAAkBqL,MAAM,mBAAmBlK,MAAO,CAChE,CAAE6M,QAAS,oBAAqBzN,QAAS,sDAD3C,SAGE,cAAC,KAAD,CACE/B,UAAU,YACV4N,SAAUY,EAAuBR,GACjCyB,OACE,uBACEhB,IAAKT,EACL7K,KAAK,QACLhC,MAAO,CAAEuO,QAAS,EAAGC,OAAQ,OAAQ5G,WAAY,eACjD6E,SAAUQ,EAAwB,mBAClCwB,aAAa,YAGjBC,UAAW,WAMnB,cAAC,KAAD,CAASR,YAAY,OAArB,kBACA,cAAC5O,EAAA,EAAD,UACE,eAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,UACE,cAAC,IAAKxE,KAAN,CAAWlB,KAAK,YAAYqL,MAAM,aAAalK,MAAO,CACpD,CAAE6M,QAAS,oBAAqBzN,QAAS,gDAD3C,SAGE,cAAC,KAAD,CACE/B,UAAU,YACV4N,SAAUY,EAAuBT,GACjC0B,OACE,uBACEhB,IAAKV,EACL5K,KAAK,QACLhC,MAAO,CAAEuO,QAAS,EAAGC,OAAQ,OAAQ5G,WAAY,eACjD6E,SAAUQ,EAAwB,aAClCwB,aAAa,YAGjBC,UAAW,MAGf,cAAC,IAAKnN,KAAN,CAAWlB,KAAK,iBAAiBqL,MAAM,cAAclK,MAAO,CAC1D,CAAE4M,IAAK,IAAKxN,QAAS,qDADvB,SAGE,cAAC,KAAD,CAAO/B,UAAU,qBAKvB,cAAC,KAAD,CAASqP,YAAY,OAArB,mBACA,cAAC5O,EAAA,EAAD,UACE,eAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,UACE,cAAC,IAAKxE,KAAN,CAAWlB,KAAK,gBAAgBqL,MAAM,kBAAkBlK,MAAO,CAC7D,CAAE6M,QAAS,gBAAiBzN,QAAS,wCADvC,SAGE,cAAC,KAAD,MAEF,eAACtB,EAAA,EAAD,WACE,cAACE,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,UAAUqL,MAAM,WAAWlK,MAAO,CAChD,CAAEC,UAAU,EAAMb,QAAS,yBAC3B,CAAEwN,IAAK,IAAKxN,QAAS,kDAFvB,SAIE,cAAC,KAAD,QAGJ,cAACpB,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,UAAUqL,MAAM,WAAWlK,MAAO,CAC/C,CAAEC,UAAU,EAAMb,QAAS,yBAC3B,CAAEwN,IAAK,IAAKxN,QAAS,kDAFxB,SAIE,cAAC,KAAD,gBAOV,cAAC,KAAD,CAASsN,YAAY,OAArB,yBACA,cAAC5O,EAAA,EAAD,UACE,eAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,UACE,cAAC,IAAKxE,KAAN,CAAWlB,KAAK,sBAAsBqL,MAAM,wBAAwBlK,MAAO,CACzE,CAAE6M,QAAS,gBAAiBzN,QAAS,8CADvC,SAGE,cAAC,KAAD,MAEF,eAACtB,EAAA,EAAD,WACE,cAACE,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CACElB,KAAK,gBACLqL,MAAM,iBACNiD,cAAc,OACdC,kBAAmB,SAAAC,GAAK,oBAAIA,QAAJ,IAAIA,GAAJ,UAAIA,EAAOC,cAAX,aAAI,EAAeC,WAC3CvN,MAAO,CACL,CAAEC,UAAU,EAAMb,QAAS,+BAC3B,CAAEwN,IAAK,IAAKxN,QAAS,wDAPzB,SAUE,cAAC,KAAD,QAGJ,cAACpB,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CACElB,KAAK,gBACLqL,MAAM,iBACNiD,cAAc,OACdC,kBAAmB,SAAAC,GAAK,oBAAIA,QAAJ,IAAIA,GAAJ,UAAIA,EAAOC,cAAX,aAAI,EAAeC,WAC3CvN,MAAO,CACL,CAAEC,UAAU,EAAMb,QAAS,+BAC3B,CAAEwN,IAAK,IAAKxN,QAAS,wDAPzB,SAUG,cAAC,KAAD,gBAOX,cAAC,KAAD,CAASsN,YAAY,OAArB,qBACA,cAAC5O,EAAA,EAAD,UACE,eAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,UACE,eAACzG,EAAA,EAAD,WACE,cAACE,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,qBAAqBqL,MAAM,wBAAwBlK,MAAO,CACxE,CAAEC,UAAU,EAAMb,QAAS,sCAC3B,CAAEwN,IAAK,IAAKxN,QAAS,+DAFvB,SAIE,cAAC,KAAD,QAGJ,cAACpB,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,qBAAqBqL,MAAM,wBAAwBlK,MAAO,CACxE,CAAEC,UAAU,EAAMb,QAAS,sCAC3B,CAAEwN,IAAK,IAAKxN,QAAS,+DAFvB,SAIE,cAAC,KAAD,WAIN,cAAC,IAAKW,KAAN,CAAWlB,KAAK,cAAcqL,MAAM,iBAAiBiD,cAAc,UAAnE,SACE,cAAC,KAAD,CACEK,gBAAiB,cAACC,GAAA,EAAD,IACjBC,kBAAmB,cAACC,GAAA,EAAD,IACnB1C,SAAU,SAACtD,GAAD,OAAU4D,EAAiB5D,QAIvC2D,GACE,eAACxN,EAAA,EAAD,WACE,cAACE,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,sBAAsBqL,MAAM,yBAAyBlK,MAAO,CAC1E,CAAEC,UAAU,EAAMb,QAAS,uCAC3B,CAAEwN,IAAK,IAAKxN,QAAS,gEAFvB,SAIE,cAAC,KAAD,QAGJ,cAACpB,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,sBAAsBqL,MAAM,yBAAyBlK,MAAO,CAC1E,CAAEC,UAAU,EAAMb,QAAS,uCAC3B,CAAEwN,IAAK,IAAKxN,QAAS,gEAFvB,SAIE,cAAC,KAAD,gBASd,cAAC,KAAD,CAASsN,YAAY,OAArB,wBACA,cAAC5O,EAAA,EAAD,UACE,cAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,SACE,cAAC,IAAKxE,KAAN,CAAWlB,KAAK,gBAAgBqL,MAAM,kBAAkBlK,MAAO,CAC7D,CAAEC,UAAU,EAAMb,QAAS,gCAC3B,CAAEyN,QAAS,gBAAiBzN,QAAS,wCAFvC,SAIE,cAAC,KAAD,UAKN,cAAC,KAAD,CAASsN,YAAY,SA+BrB,cAAC5O,EAAA,EAAD,UACE,cAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,SACE,eAAC,IAAKxE,KAAN,WACE,cAAC,IAAD,CAAYS,KAAK,UAAUoN,SAAS,SAASvQ,UAAU,OAAOkH,KAAK,QAAQhF,KAAM,cAACsO,GAAA,EAAD,IAAjF,kBAGA,cAAC,IAAD,CAAYrN,KAAK,UAAUoN,SAAS,SAASrJ,KAAK,QAAQhF,KAAM,cAACuO,GAAA,EAAD,IAAkBnK,QAAS,kBAAMjH,EAAQgD,KAAK,sBAA9G,yC,UC8FPqO,GAvaY,WAEzB,IAAMtH,EAAmBnF,KAEjB0M,EAAeC,cAAfD,WAEFtR,EAAUC,cACVyO,EAAe7J,mBACf8J,EAAqB9J,mBARI,EAUhB3E,IAAKC,UAAbC,EAVwB,sBAWWgF,oBAAS,GAXpB,mBAWxBwJ,EAXwB,KAWTC,EAXS,OAYDzJ,oBAAS,GAZR,mBAYxBkJ,EAZwB,KAYfQ,EAZe,OAaG1J,qBAbH,mBAaxB8F,EAbwB,KAabsG,EAba,OAgBOpM,oBAAS,GAhBhB,mBAgBxBqM,EAhBwB,KAgBXC,EAhBW,KAkBzBC,EAAe,UAwCf5C,EAA0B,SAACC,GAAD,OAAe,SAACnJ,GAC9CzF,EAAK6O,eAAL,gBACGD,EAAYnJ,EAAEqJ,OAAOjE,UAIpBkE,EAAyB,SAACC,GAAD,OAAS,SAACvJ,GACvC,IAAMwJ,EAAcxJ,EAAEqJ,OAAOjE,MAC7BmE,EAAItK,QAAQmG,MAAQoE,EAAYC,MAAM,sBAAwBD,EAAcsC,IAGxE3F,EAAsB,WAC1B8C,GAAW,GACX4C,GAAe,GACf1N,GACG0C,IAAI/B,GAAQ2I,mBAAmB5I,QAAQ,OAAQ4M,IAC/CtU,MAAK,SAAAuB,GAAI,OAAIA,EAAKG,QAClB1B,MAAK,SAAAuD,GACAwJ,EAAiBjF,UACnB1E,EAAK6O,eAAe,CAClB2C,aAAcrR,EAAK8L,aACnBwF,OAAQtR,EAAK+L,OACbwF,gBAAiBvR,EAAKwR,gBAEtBC,UAAWzR,EAAK0R,UAChBC,eAAgB3R,EAAK4R,eAErB5C,cAAehP,EAAK6R,eAAiBC,SAAS9R,EAAK6R,eACnDE,QAAS/R,EAAKgS,QACdC,QAASjS,EAAKkS,QAEdhD,oBAAqBlP,EAAKmS,qBAAuBL,SAAS9R,EAAKmS,qBAC/D9C,cAAerP,EAAKoS,cACpB9C,cAAetP,EAAKqS,cAEpBC,mBAAoBtS,EAAKuS,mBACzBC,mBAAoBxS,EAAKyS,mBAEzBjD,cAAexP,EAAK0S,eAAiBZ,SAAS9R,EAAK0S,iBAGlD1S,EAAK2S,cACNrE,EAAiBtO,EAAK2S,aACtB9S,EAAK6O,eAAe,CAClBa,YAAavP,EAAK2S,YAClBC,oBAAqB5S,EAAK6S,oBAC1BC,oBAAqB9S,EAAK+S,uBAI9B3E,EAAmB7J,QAAQmG,MAAQ1K,EAAKwR,iBAAmBJ,EAC3DjD,EAAa5J,QAAQmG,MAAQ1K,EAAK0R,WAAcN,EAEhDH,EAAa,CACXjF,GAAIhM,EAAKiM,WACTC,GAAIlM,EAAKmM,iBAId9N,OAAM,SAAAC,GAAU,IAAD,IACd2D,IAAa3D,MAAM,CACjB6D,SAAc,OAAL7D,QAAK,IAALA,GAAA,UAAAA,EAAOoE,gBAAP,mBAAiBvE,YAAjB,eAAuBwE,UAAWrE,EAAM6D,QACjDE,UAAW,mBAGdO,SAAQ,WACH4G,EAAiBjF,UACnBgK,GAAW,GACX4C,GAAe,QASvB,OAJArR,qBAAU,WACR2L,MACA,IAGA,qCACE,qBAAKrL,UAAU,iDAAf,SACE,cAACQ,EAAA,EAAD,CAAWoM,OAAK,MAKlB,cAACpM,EAAA,EAAD,CAAWR,UAAU,QAAQ4M,OAAK,EAAlC,SACE,cAACnM,EAAA,EAAD,UACE,cAACE,EAAA,EAAD,CAAKX,UAAU,aAAasN,GAAG,KAA/B,SACE,eAAC,KAAD,CAAMtN,UAAU,sBAAhB,UACE,sDACA,eAAC,IAAD,CACEP,KAAMA,EACN8B,OAAO,WACPI,SA/HG,SAACC,GAAY,IAAD,IAC3BuM,GAAW,GACX9K,GACGuP,MAAM5O,GAAQsH,eADjB,2BAEO1J,GAFP,IAGI8D,GAAIgM,SAASf,GACb/B,cAAa,UAAEhN,EAAOgN,qBAAT,aAAE,EAAsBC,WACrCC,oBAAmB,UAAElN,EAAOkN,2BAAT,aAAE,EAA4BD,WACjDE,SAAU,mBACVC,UAAW,UAEZ3S,MAAK,SAAAuB,GAAI,OAAIA,EAAKG,QAClB1B,MAAK,SAAAuD,GACAwJ,EAAiBjF,UACnBtC,IAAaC,QAAQ,CACnBC,QAAQ,wBACRE,UAAW,gBAEboJ,QAGHpN,OAAM,SAAAC,GAAU,IAAD,IACd2D,IAAa3D,MAAM,CACjB6D,SAAc,OAAL7D,QAAK,IAALA,GAAA,UAAAA,EAAOoE,gBAAP,mBAAiBvE,YAAjB,eAAuBwE,UAAWrE,EAAM6D,QACjDE,UAAW,mBAGdO,SAAQ,WACH4G,EAAiBjF,SACnBgK,GAAW,OAoGL1M,cACE,CACEwN,cAAe,GACfC,cAAe,GACfC,YAAalB,EACbmB,cAAe,KAVrB,UAeE,cAAC,GAAD,CAAS9G,KAAMqF,IAEf,cAAC,KAAD,CAAS0B,YAAY,SACrB,cAAC5O,EAAA,EAAD,UACE,eAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,UACE,cAAC,IAAKxE,KAAN,CAAWlB,KAAK,eAAeqL,MAAM,gBAAgBlK,MAAO,CAC1D,CAAEC,UAAU,EAAMb,QAAS,8BAC3B,CAAEwN,IAAK,GAAIxN,QAAS,sDAFtB,SAIE,cAAC,KAAD,CAAO/B,UAAU,iBAEnB,cAAC,IAAK0C,KAAN,CAAWlB,KAAK,SAASqL,MAAM,UAAUlK,MAAO,CAC9C,CAAEC,UAAU,EAAMb,QAAS,wBAC3B,CAAEwN,IAAK,IAAKxN,QAAS,gDAFvB,SAIE,cAAC,KAAD,CAAO/B,UAAU,iBAEnB,cAAC,IAAK0C,KAAN,CAAWlB,KAAK,kBAAkBqL,MAAM,mBAAmBlK,MAAO,CAChE,CAAE6M,QAAS,oBAAqBzN,QAAS,sDAD3C,SAGE,cAAC,KAAD,CACE/B,UAAU,YACV4N,SAAUY,EAAuBR,GACjCyB,OACE,uBACEhB,IAAKT,EACL7K,KAAK,QACLhC,MAAO,CAAEuO,QAAS,EAAGC,OAAQ,OAAQ5G,WAAY,eACjD6E,SAAUQ,EAAwB,mBAClCwB,aAAa,YAGjBC,UAAW,WAMnB,cAAC,KAAD,CAASR,YAAY,OAArB,kBACA,cAAC5O,EAAA,EAAD,UACE,eAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,UACE,cAAC,IAAKxE,KAAN,CAAWlB,KAAK,YAAYqL,MAAM,aAAalK,MAAO,CACpD,CAAE6M,QAAS,oBAAqBzN,QAAS,gDAD3C,SAGE,cAAC,KAAD,CACE/B,UAAU,YACV4N,SAAUY,EAAuBT,GACjC0B,OACE,uBACEhB,IAAKV,EACL5K,KAAK,QACLhC,MAAO,CAAEuO,QAAS,EAAGC,OAAQ,OAAQ5G,WAAY,eACjD6E,SAAUQ,EAAwB,aAClCwB,aAAa,YAGjBC,UAAW,MAGf,cAAC,IAAKnN,KAAN,CAAWlB,KAAK,iBAAiBqL,MAAM,cAAclK,MAAO,CAC1D,CAAE4M,IAAK,IAAKxN,QAAS,qDADvB,SAGE,cAAC,KAAD,CAAO/B,UAAU,qBAKvB,cAAC,KAAD,CAASqP,YAAY,OAArB,mBACA,cAAC5O,EAAA,EAAD,UACE,eAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,UACE,cAAC,IAAKxE,KAAN,CAAWlB,KAAK,gBAAgBqL,MAAM,kBAAkBlK,MAAO,CAC7D,CAAE6M,QAAS,gBAAiBzN,QAAS,wCADvC,SAGE,cAAC,KAAD,MAEF,eAACtB,EAAA,EAAD,WACE,cAACE,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,UAAUqL,MAAM,WAAWlK,MAAO,CAChD,CAAEC,UAAU,EAAMb,QAAS,yBAC3B,CAAEwN,IAAK,IAAKxN,QAAS,kDAFvB,SAIE,cAAC,KAAD,QAGJ,cAACpB,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,UAAUqL,MAAM,WAAWlK,MAAO,CAC/C,CAAEC,UAAU,EAAMb,QAAS,yBAC3B,CAAEwN,IAAK,IAAKxN,QAAS,kDAFxB,SAIE,cAAC,KAAD,gBAOV,cAAC,KAAD,CAASsN,YAAY,OAArB,yBACA,cAAC5O,EAAA,EAAD,UACE,eAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,UACE,cAAC,IAAKxE,KAAN,CAAWlB,KAAK,sBAAsBqL,MAAM,wBAAwBlK,MAAO,CACzE,CAAE6M,QAAS,gBAAiBzN,QAAS,8CADvC,SAGE,cAAC,KAAD,MAGA+O,GACE,eAACrQ,EAAA,EAAD,WACE,cAACE,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CACElB,KAAK,gBACLqL,MAAM,iBACNiD,cAAc,OACdC,kBAAmB,SAAAC,GAAK,oBAAIA,QAAJ,IAAIA,GAAJ,UAAIA,EAAOC,cAAX,aAAI,EAAeC,WAC3CvN,MAAO,CACL,CAAEC,UAAU,EAAMb,QAAS,+BAC3B,CAAEwN,IAAK,IAAKxN,QAAS,wDAPzB,SAUE,cAAC,KAAD,QAGJ,cAACpB,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CACElB,KAAK,gBACLqL,MAAM,iBACNiD,cAAc,OACdC,kBAAmB,SAAAC,GAAK,oBAAIA,QAAJ,IAAIA,GAAJ,UAAIA,EAAOC,cAAX,aAAI,EAAeC,WAC3CvN,MAAO,CACL,CAAEC,UAAU,EAAMb,QAAS,+BAC3B,CAAEwN,IAAK,IAAKxN,QAAS,wDAPzB,SAUE,cAAC,KAAD,gBASd,cAAC,KAAD,CAASsN,YAAY,OAArB,qBACA,cAAC5O,EAAA,EAAD,UACE,eAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,UACE,eAACzG,EAAA,EAAD,WACE,cAACE,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,qBAAqBqL,MAAM,wBAAwBlK,MAAO,CACxE,CAAEC,UAAU,EAAMb,QAAS,sCAC3B,CAAEwN,IAAK,IAAKxN,QAAS,+DAFvB,SAIE,cAAC,KAAD,QAGJ,cAACpB,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,qBAAqBqL,MAAM,wBAAwBlK,MAAO,CACxE,CAAEC,UAAU,EAAMb,QAAS,sCAC3B,CAAEwN,IAAK,IAAKxN,QAAS,+DAFvB,SAIE,cAAC,KAAD,WAIN,cAAC,IAAKW,KAAN,CAAWlB,KAAK,cAAcqL,MAAM,iBAAiBiD,cAAc,UAAnE,SACE,cAAC,KAAD,CACEK,gBAAiB,cAACC,GAAA,EAAD,IACjBC,kBAAmB,cAACC,GAAA,EAAD,IACnB1C,SAAU,SAACtD,GAAD,OAAU4D,EAAiB5D,QAKvC2D,GACE,eAACxN,EAAA,EAAD,WACE,cAACE,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,sBAAsBqL,MAAM,yBAAyBlK,MAAO,CAC1E,CAAEC,UAAU,EAAMb,QAAS,uCAC3B,CAAEwN,IAAK,IAAKxN,QAAS,gEAFvB,SAIE,cAAC,KAAD,QAGJ,cAACpB,EAAA,EAAD,UACE,cAAC,IAAK+B,KAAN,CAAWlB,KAAK,sBAAsBqL,MAAM,yBAAyBlK,MAAO,CAC1E,CAAEC,UAAU,EAAMb,QAAS,uCAC3B,CAAEwN,IAAK,IAAKxN,QAAS,gEAFvB,SAIE,cAAC,KAAD,gBASd,cAAC,KAAD,CAASsN,YAAY,OAArB,wBACA,cAAC5O,EAAA,EAAD,UACE,cAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,SACE,cAAC,IAAKxE,KAAN,CAAWlB,KAAK,gBAAgBqL,MAAM,kBAAkBlK,MAAO,CAC7D,CAAEC,UAAU,EAAMb,QAAS,gCAC3B,CAAEyN,QAAS,gBAAiBzN,QAAS,wCAFvC,SAIE,cAAC,KAAD,UAKN,cAAC,KAAD,CAASsN,YAAY,SACrB,cAAC5O,EAAA,EAAD,UACE,cAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,SAEIqD,GACE,cAAC,KAAD,CAAMvK,UAAU,OAAOmG,MAAO,sBAAKnG,UAAU,eAAf,UAA8B,cAAC6S,GAAA,EAAD,IAA9B,4BAA9B,SAEIrI,OAAOC,KAAKF,GAAW3D,KAAI,SAACwD,EAAKvD,GAAN,OACzB,cAAC,kBAAD,CAA8B6D,KAAMH,EAAUH,GAA9C,SACE,eAAC,IAAD,CACEhI,MAAM,WACNpC,UAAU,OACVkC,KAAM,uBAAMlC,UAAU,OAAhB,UAAwBoK,EAAIO,cAAgB,IAAI,cAACC,GAAA,EAAD,OACtDzJ,MAAO,CACL0J,OAAQ,WAEVvE,QAAS,WACPvE,IAAQD,QAAR,kBAA2ByI,EAAUH,MARzC,UAWGG,EAAUH,GACX,cAACW,GAAA,EAAD,CAAc/K,UAAU,aAbL6G,YAuBrC,cAACpG,EAAA,EAAD,UACE,cAACE,EAAA,EAAD,CAAKoM,GAAI,CAAEuC,OAAQ,EAAGpI,KAAM,IAA5B,SACE,eAAC,IAAKxE,KAAN,WACE,cAAC,IAAD,CAAYS,KAAK,UAAUoN,SAAS,SAASvQ,UAAU,OAAOkH,KAAK,QAAQhF,KAAM,cAACsO,GAAA,EAAD,IAAjF,kBAGA,cAAC,IAAD,CAAYrN,KAAK,UAAUoN,SAAS,SAASrJ,KAAK,QAAQhF,KAAM,cAACuO,GAAA,EAAD,IAAkBnK,QAAS,kBAAMjH,EAAQgD,KAAK,sBAA9G,yC,oBCnEPyQ,GArVgB,WAE7B,IAAM1J,EAAmBnF,KAEnBoF,EAAoB,CAAElF,QAAS,EAAGmF,SAAU,IAE5CC,EAAa,aANgB,EASpBhK,IAAKC,UAAbC,EAT4B,sBAWDgF,mBAAS,IAXR,mBAW5B+E,EAX4B,KAWjBC,EAXiB,OAYKhF,oBAAS,GAZd,mBAY5BiF,EAZ4B,KAYdC,EAZc,OAaClF,mBAAS4E,GAbV,mBAa5BO,EAb4B,KAahBC,EAbgB,OAcDpF,mBATT,CAAE+B,KAAM,EAAGC,GAAI,EAAGyC,MAAO,IALf,mBAc5BY,EAd4B,KAcjBC,EAdiB,OAeStF,mBAAS,IAflB,mBAe5BuF,EAf4B,KAeZC,EAfY,OAgBGxF,mBAAS,MAhBZ,mBAgB5BsO,EAhB4B,KAgBfC,EAhBe,OAkBevO,oBAAS,GAlBxB,mBAkB5BwO,EAlB4B,KAkBTC,EAlBS,KAoB7BhJ,EAAU,CACd,CACE/D,MAAO,iBACPgE,UAAW,gBACXC,IAAK,gBACLC,OAAQ,SAAAC,GAAK,OAAI,8BAAMA,KACvBlJ,MAAO,KAET,CACE+E,MAAO,UACPgE,UAAW,SACXC,IAAK,SACLhJ,MAAO,KAET,CACE+E,MAAO,eACPgE,UAAW,cACXC,IAAK,cACLC,OAAQ,SAAAC,GAAK,OAAI,cAAC,IAAD,CAAKnJ,MAAO,CAAEC,MAAO,IAAK+R,WAAY,UAAtC,SAAmD7I,KACpElJ,MAAO,KAET,CACE+E,MAAO,iBACPgE,UAAW,gBACXC,IAAK,gBACLhJ,MAAO,IACPgS,MAAO,UAET,CACEjN,MAAO,iBACPgE,UAAW,gBACXC,IAAK,gBACLC,OAAQ,SAAAC,GAAK,OAAI,mCAAGA,EAAQ,sBAAMtK,UAAU,eAAhB,sBAAiD,sBAAMA,UAAU,eAAhB,yBAC7EoB,MAAO,IACPgS,MAAO,UAET,CACEjN,MAAO,wBACPgE,UAAW,sBACXC,IAAK,sBACLhJ,MAAO,MAILiS,EAA0B,SAAC,GAI1B,IAHLlP,EAGI,EAHJA,QACAmF,EAEI,EAFJA,SACG1H,EACC,sCACJ+H,GAAgB,GAChBtG,GACG0C,IAAI/B,GAAQsP,WAAY,CACvBrN,OAAO,aACLsF,aAAa,EACbC,WAAYrH,EACZsH,SAAUnC,GACP1H,KAGNvF,MAAK,SAAAuB,GAAI,OAAIA,EAAKG,QAClB1B,MAAK,SAAAuD,GAC2B,IAAD,EAA1BwJ,EAAiBjF,UACnBsF,EAAY,UAAC7J,EAAK7B,YAAN,aAAC,EAAW6I,KAAI,SAACnB,GAAD,MAAW,CACrC2E,IAAK3E,EAAKS,GACVqN,cAAe9N,EAAK8N,cACpB5H,OAAQlG,EAAKkG,OACb6H,YAAa/N,EAAKgO,QAClBC,cAAejO,EAAKiO,cACpBC,cAAelO,EAAKmO,SACpBC,oBAAqBpO,EAAKqO,eAE5BjK,EAAc,CACZ1F,QAASvE,EAAKsM,YACd5C,SAAU1J,EAAK0J,SACfJ,MAAOtJ,EAAKuM,aAEdlC,EAAkB,eACbrI,IAELmI,EAAa,CACXvD,MAAQ5G,EAAKsM,YAAc,GAAKtM,EAAK0J,SAAY,EACjD7C,IAAM7G,EAAKsM,YAAc,GAAKtM,EAAK0J,SAAY1J,EAAK7B,KAAK4H,OACzDuD,MAAOtJ,EAAKuM,iBAIjBlO,OAAM,SAAAC,GAAU,IAAD,IACd2D,IAAa3D,MAAM,CACjB6D,SAAc,OAAL7D,QAAK,IAALA,GAAA,UAAAA,EAAOoE,gBAAP,mBAAiBvE,YAAjB,eAAuBwE,UAAWrE,EAAM6D,QACjDE,UAAW,mBAGdO,SAAQ,WACH4G,EAAiBjF,SACnBwF,GAAgB,OAqBlBoK,EAAmB,WACvBtU,EACGwN,iBACA5Q,MAAK,SAAAuF,GACJyR,EAAwB,uCACnBhK,GACAzH,GAFkB,IAGrBsL,SAAUtL,EAAOsL,UAAYC,IAAOvL,EAAOsL,UAAUJ,OAAOvD,GAC5D6D,OAAQxL,EAAOwL,QAAUD,IAAOvL,EAAOwL,QAAQN,OAAOvD,UA0B9D,OALA7J,qBAAU,WACRqU,IA7CA1Q,GACG0C,IAAI,sBACJ1J,MAAK,SAAAuB,GACAwL,EAAiBjF,SACnB6O,EAAepV,EAAKG,SAGvBE,OAAM,SAAAC,GAAU,IAAD,IACd2D,IAAa3D,MAAM,CACjB6D,SAAc,OAAL7D,QAAK,IAALA,GAAA,UAAAA,EAAOoE,gBAAP,mBAAiBvE,YAAjB,eAAuBwE,UAAWrE,EAAM6D,QACjDE,UAAW,qBAqChB,IAGD,qCACE,qBAAKjC,UAAU,sDAAf,SACE,cAACQ,EAAA,EAAD,CAAWoM,OAAK,EAAhB,SACE,cAAC,IAAD,CACEnN,KAAMA,EACN8B,OAAO,WACPE,cACE,CACEyL,SAAUC,MAAS6G,SAAS,EAAG,UAC/B5G,OAAQD,OANd,SAUE,eAAC1M,EAAA,EAAD,WACE,cAACE,EAAA,EAAD,CAAKoM,GAAI,EAAGnM,GAAI,EAAhB,SACE,cAAC,IAAK8B,KAAN,CAAWlB,KAAK,gBAAgB0E,GAAG,gBAAgB2G,MAAO,sBAAM7M,UAAU,aAAhB,4BAA1D,SACE,cAAC,KAAD,CAAOmD,KAAK,OAAOD,YAAY,uBAGnC,cAACvC,EAAA,EAAD,CAAKoM,GAAI,EAAGnM,GAAI,EAAhB,SACE,cAAC,IAAK8B,KAAN,CAAWlB,KAAK,SAAS0E,GAAG,SAAS2G,MAAO,sBAAM7M,UAAU,aAAhB,qBAA5C,SACE,cAAC,KAAD,CAAQkD,YAAY,mBAAmB+Q,YAAU,EAAjD,gBAEIlB,QAFJ,IAEIA,OAFJ,EAEIA,EAAavN,QAAO,SAAAC,GAAI,MAAoB,QAAhBA,EAAKkG,UAAkB/E,KAAI,SAACnB,EAAMoB,GAAP,OACrD,cAAC,KAAOqN,OAAR,CAA2B5J,MAAO7E,EAAKkG,OAAvC,SAAgDlG,EAAKkG,QAAjC9E,YAM9B,cAAClG,EAAA,EAAD,CAAKoM,GAAI,EAAGnM,GAAI,EAAhB,SACE,cAAC,IAAK8B,KAAN,CAAWlB,KAAK,WAAW0E,GAAG,WAAW2G,MAAO,sBAAM7M,UAAU,aAAhB,uBAAhD,SACE,cAAC,KAAD,CACEkD,YAAY,YACZ4J,OAAQvD,EACRpI,MAAO,CAAEC,MAAO,cAItB,cAACT,EAAA,EAAD,CAAKoM,GAAI,EAAGnM,GAAI,EAAhB,SACE,cAAC,IAAK8B,KAAN,CAAWlB,KAAK,SAAS0E,GAAG,SAAS2G,MAAO,sBAAM7M,UAAU,aAAhB,qBAA5C,SACE,cAAC,KAAD,CACEkD,YAAY,UACZ4J,OAAQvD,EACRpI,MAAO,CAAEC,MAAO,cAItB,cAACT,EAAA,EAAD,CAAKoM,GAAI,EAAGnM,GAAI,EAAhB,SACE,cAAC,IAAK8B,KAAN,CAAWlB,KAAK,cAAc0E,GAAG,cAAc2G,MAAO,sBAAM7M,UAAU,aAAhB,0BAAtD,SACE,eAAC,KAAD,CAAQkD,YAAY,mBAAmB+Q,YAAU,EAAjD,UACE,cAAC,KAAOC,OAAR,CAAe5J,MAAM,SAArB,2BACA,cAAC,KAAO4J,OAAR,CAAe5J,MAAM,KAArB,+BACA,cAAC,KAAO4J,OAAR,CAAe5J,MAAM,OAArB,4BACA,cAAC,KAAO4J,OAAR,CAAe5J,MAAM,UAArB,6BACA,cAAC,KAAO4J,OAAR,CAAe5J,MAAM,WAArB,sBACA,cAAC,KAAO4J,OAAR,CAAe5J,MAAM,SAArB,oBACA,cAAC,KAAO4J,OAAR,CAAe5J,MAAM,QAArB,mBACA,cAAC,KAAO4J,OAAR,CAAe5J,MAAM,QAArB,0BAIN,cAAC3J,EAAA,EAAD,CAAKoM,GAAI,EAAGnM,GAAI,EAAhB,SACE,cAAC,IAAK8B,KAAN,CAAWlB,KAAK,gBAAgB0E,GAAG,gBAAgB2G,MAAO,sBAAM7M,UAAU,aAAhB,4BAA1D,SACE,eAAC,KAAD,CAAQkD,YAAY,mBAAmB+Q,YAAU,EAAjD,UACE,cAAC,KAAOC,OAAR,CAAe5J,MAAM,OAArB,sBACA,cAAC,KAAO4J,OAAR,CAAe5J,MAAM,QAArB,6BAIN,cAAC3J,EAAA,EAAD,CAAKoM,GAAI,GAAInM,GAAI,EAAGZ,UAAU,SAA9B,SACE,eAAC,IAAK0C,KAAN,CAAW1C,UAAU,UAArB,UACE,cAAC,IAAD,CAAYkC,KAAM,cAAC8K,GAAA,EAAD,IAAoB1G,QAASyN,EAAkB/T,UAAU,OAA3E,oBACA,cAAC,IAAD,CAAYkC,KAAM,cAACmL,GAAA,EAAD,IAAmB/G,QA/F7B,WACtB7G,EAAKgD,cACLsR,KA6Fc,iCASZ,cAACvT,EAAA,EAAD,CAAWR,UAAU,QAAQ4M,OAAK,EAAlC,SACE,cAACnM,EAAA,EAAD,UACE,cAACE,EAAA,EAAD,CAAKX,UAAU,aAAasN,GAAG,KAA/B,SAEE,eAACxM,EAAA,EAAD,CAAMd,UAAU,sBAAhB,UAEI+S,GACE,cAAChS,EAAA,EAAD,CAAYf,UAAU,eAAtB,SAEI+S,EAAYnM,KAAI,SAACnB,EAAMoB,GAAP,OACd,eAAC,IAAD,CAAiBzE,MAAM,WAAvB,UACE,+BAAOqD,EAAKkG,SACZ,sBACExK,MAAO,CACLgT,YAAa,EACbC,aAAc,EACdC,WAAY,EACZtL,WAAY,wBACZuL,aAAc,GANlB,SASG7O,EAAK8O,UAXA1N,QAmBpB,eAAC9F,EAAA,EAAD,CAAYf,UAAU,iCAAtB,UACE,cAAC,GAAD,CACEwG,KAAMsD,EAAUtD,KAChBC,GAAIqD,EAAUrD,GACdyC,MAAOY,EAAUZ,MACjB/H,MAAO,CAAEoH,SAAU,WAAYC,IAAK,GAAIC,KAAM,EAAGO,OAAQ,OAE3D,cAACvI,EAAA,EAAD,UACE,cAACE,EAAA,EAAD,CAAKX,UAAU,aAAf,SACE,cAAC,IAAD,CACEkC,KAAM,cAACsS,GAAA,EAAD,IACNlO,QA3IC,WAChBwD,EAAUZ,OAnJK,IAoJhBgK,GAAqB,GAErBrR,IAAa3D,MAAM,CACjB6D,QAAS,qDACTE,UAAW,iBAsIGjC,UAAU,yBACVkH,KAAK,QACLyG,QAASsF,EACTwB,SAAU/K,EANZ,SASIuJ,EAAoB,YAAc,kBAO5C,cAAC,KAAD,CACE/I,QAASA,EACTsD,WAAYhE,EACZI,WAAU,2BAAOA,GAAP,IAAmB6D,iBAAiB,IAC9CC,OAAQ,CAAErN,EAAG,QACbsN,QAASjE,EACTkE,SAAU,SAAAC,GACRwF,EAAwB,aACtBlP,QAAS0J,EAAK1J,QACdmF,SAAUuE,EAAKvE,UACZU,OAKT,cAAC,GAAD,CACExD,KAAMsD,EAAUtD,KAChBC,GAAIqD,EAAUrD,GACdyC,MAAOY,EAAUZ,MACjB/H,MAAO,CAAEoH,SAAU,WAAYG,OAAQ,EAAGD,KAAM,EAAGO,OAAQ,gBAOrE,cAAC,GAAD,CACE1E,SAAU0F,EACVzF,QAAS0O,EACTzO,QAAS,kBAAM0O,GAAqB,UC/VtCwB,GAAsB,CAY1B,CACEC,OAAO,EACP7X,KAAM,oBACN8X,UAAWzL,GACXhB,QAAS,CACP3G,KAAM,mBACNU,KAAM,cAAC2S,EAAA,EAAD,CAAgB7U,UAAU,YAAYmB,MAAO,CAAC2T,SAAU,aAGlE,CACEhY,KAAM,2BACN8X,UAAW9G,IAEb,CACEhR,KAAM,qCACN8X,UAAWlE,IAGb,CACEiE,OAAO,EACP7X,KAAM,wBACN8X,UAAW9B,GACX3K,QAAS,CACP3G,KAAM,uBACNU,KAAM,cAAC6S,EAAA,EAAD,CAAe/U,UAAU,YAAYmB,MAAO,CAAC2T,SAAU,aAIjE,CACEH,OAAO,EACP7X,KAAM,IACN8X,UAAW,kBAAM,cAAC,IAAD,CAAUnO,GAAG,yBAQ5BuO,GAAe,CACnB,CACElY,KAAM,UACN8X,UAAW,kBAAM,gDAEnB,CACE9X,KAAM,SACN8X,UAAWxV,I,SC3EF6V,GAAUC,aAAa,YACvBC,GAAiBD,aAAa,oBAC9BE,GAAgBF,aAAa,mBCEpC/V,GAAcD,IAEhBmW,GAAW,YAMR,IALNJ,EAKK,EALLA,QACWK,EAIN,EAJLV,UACQtN,EAGH,EAHL/F,OACAgU,EAEK,EAFLA,gBACGC,EACE,kEAIL,OAFA9V,oBAAUuV,EAAS,IAGlB,cAAC,IAAD,2BACKO,GADL,IAECnL,OAAQ,SAAAoL,GACP,OAAIF,IAAoBpW,GAAYX,wBAElC,cAAC,IAAD,CAAUiI,GAAI,CAAEyB,SAAU,SAAUwN,MAAO,CAAElP,KAAMiP,EAAW3R,aAI/D,cAACwD,EAAD,UACC,cAACgO,EAAD,eAAeG,WAQfE,GAAqB,CACzBV,QAASA,IAGXI,GAAWO,YACV,KACAD,GAFUC,CAGTP,IAEaQ,mBAAWR,I,wHC3CbS,GAAeC,aAC1B,CCJ+B,SAACL,GAAD,OAAWA,EAAMM,QDKhD,SAACA,GAAD,OAAUA,KEuBN7W,GAAcD,IACZ+W,GAA4B3O,KAA5B2O,OAAQC,GAAoB5O,KAApB4O,QAASC,GAAW7O,KAAX6O,OAErBC,GAAa,YAGV,IAFLJ,EAEI,EAFJA,KACUK,EACN,EADJC,SAEMjX,EAAUC,cADZ,EAE8BmF,oBAAS,GAFvC,mBAEGqD,EAFH,KAEcyO,EAFd,KA4BJ,OACE,eAAC,KAAD,WACE,cAAC,GAAD,CAAS/O,OAAQkN,GAAqBjN,eAAgBK,IAEtD,eAAC,KAAD,CACE9H,UAAU,cACVmB,MAAO,CACLE,OAAQ,QACRmV,UAAW,QAJf,UAOE,cAACP,GAAD,CAAQjW,UAAU,oCAAoCmB,MAAO,CAAEuO,QAAS,EAAG+G,WAAY,KAAvF,SAEE,eAACC,GAAA,EAAD,CAAQ1W,UAAU,4DAA4D2W,OAAO,KAAKzQ,GAAG,cAA7F,UACG0Q,IAAMC,cAAc/O,EAAYgP,KAAqBC,KAAkB,CACtE/W,UAAW,UACXsG,QAxCG,WACbiQ,GAAczO,IAwCJ3G,MAAO,CACLuO,QAAS,SACToF,SAAU,OACVjK,OAAQ,UACRmM,WAAY,gBAGhB,cAACC,GAAA,EAAD,CAAKjX,UAAU,iCAAf,SACE,eAACkX,GAAA,EAAD,CAAsBC,KAAG,EAAzB,UACE,cAACC,GAAA,EAAD,CAAgBpX,UAAU,OAAOmX,KAAG,EAApC,SACE,cAACE,GAAA,EAAD,CAAOrX,UAAU,qBAAjB,SAEE,cAACqX,GAAA,EAAD,CAAOrX,UAAU,mBAAjB,SACE,uBAAMA,UAAU,2CAAhB,UACE,cAACsX,GAAA,EAAD,CACEnW,MAAO,CAAE2T,SAAU,GAAIyC,WAAY,QACnCvX,UAAU,eAIN,OAAJgW,QAAI,IAAJA,OAAA,EAAAA,EAAMwB,cAAe,cAAC,KAAD,CAAMtQ,KAAK,mBAM1C,cAACuQ,GAAA,EAAD,CAAczX,UAAU,sBAAsB2I,OAAK,EAAnD,SACE,eAAC+O,GAAA,EAAD,CAAcpR,QAhEf,WACbnH,GACGhB,aACA9B,MAAK,WACJwF,IAAaC,QAAQ,CACnBC,QAAQ,4BACRC,YAAa,wCACbC,UAAW,cACXC,KAAM,cAACyV,GAAA,EAAD,CAAgBxW,MAAO,CAAEiB,MAAO,eAExC/C,EAAQgD,KAAK,aAEdpE,OAAM,SAAAC,GAAU,IAAD,IACd2D,IAAa3D,MAAM,CACjB6D,SAAc,OAAL7D,QAAK,IAALA,GAAA,UAAAA,EAAOoE,gBAAP,mBAAiBvE,YAAjB,eAAuBwE,UAAWrE,EAAM6D,QACjDE,UAAW,oBAiDH,UACE,cAAC0V,GAAA,EAAD,CAAgB3X,UAAU,OAAOmB,MAAO,CAAEiB,MAAO,aACjD,yDAOZ,eAAC8T,GAAD,CACE/U,MAAO,CACLyW,SAAU,WAFd,UAKE,qBAAK5X,UAAU,eAAf,SAEIqW,IAGJ,cAACF,GAAD,CAAQhV,MAAO,CAAE0W,UAAW,UAA5B,kDAcVzB,GAAaR,aAPW,SAACF,GAEvB,MAAO,CACLM,KAFWF,GAAaJ,MAQ1B,KAFWE,CAGXQ,IAEaP,I,GAAAA,eAAWO,ICtIX0B,GARO,SAAC,GAEhB,IADKzB,EACN,EADJC,SAEA,OACE,cAAC,IAAMyB,SAAP,CAAgBzB,SAAUD,KCkCf2B,GAjCH,WACV,OACE,cAAC,IAAD,UACE,eAAC,IAAD,WAEIhD,GAAapO,KAAI,WAA6BqR,GAA7B,IAAGnb,EAAH,EAAGA,KAAM6X,EAAT,EAASA,MAAOC,EAAhB,EAAgBA,UAAhB,OACf,cAAC,GAAD,CAEE9X,KAAMA,EACNyE,OAAQuW,GACRlD,UAAWA,EACXD,MAAOA,EACPY,iBAAiB,GALZ0C,MAUTvD,GAAoB9N,KAAI,WAA6BqR,GAA7B,IAAGnb,EAAH,EAAGA,KAAM6X,EAAT,EAASA,MAAOC,EAAhB,EAAgBA,UAAhB,OACtB,cAAC,GAAD,CAEE9X,KAAMA,EACNyE,OAAQ6U,GACRxB,UAAWA,EACXD,MAAOA,EACPY,iBAAiB,GALZ0C,Y,0CCjBJC,GALKC,aADC,MACY,sBAC9BhD,IAAiB,SAACiD,EAAGnR,GAAJ,OAAeA,EAAOoR,WADT,gBAE9BjD,IAAgB,SAACgD,EAAGnR,GAAJ,OAAeA,EAAO9D,QAFR,KCGlBmV,GAJKC,aAAgB,CAClCvC,U,2CCMQwC,I,iBAJJrZ,GAAcD,IAIpB,SAAUsZ,KAAV,wEAII,OAJJ,SAGUC,EAAU9Z,YAAUQ,GAAYX,yBAH1C,SAIUka,aAAIvD,GAAesD,IAJ7B,8BAOI,OAPJ,yBAMI1Z,QAAQ4Z,KAAR,uCAA6C,KAAE5W,QAA/C,MANJ,UAOU2W,aAAItD,GAAc,KAAErT,UAP9B,sDAWe,gFACb,OADa,SACP6W,aAAU3D,GAASuD,IADZ,wC,iBClBUK,IAAV,SAAUA,KAAV,kEACX,OADW,SACLC,aAAI,CACNC,OAFO,wCCGf,IAAMC,GAAiBC,eACjBC,GAAmBvc,OAAOwc,sCAAwCC,KAElEC,GAAQC,aAAYhB,GAAaY,GAAiBK,aAAgBP,MACxEA,GAAeQ,IAAIX,IAEJQ,UCETI,GACJ,cAAC,IAAD,CAAUJ,MAAOA,GAAjB,SACE,cAAC,IAAD,UACE,cAAC,GAAD,QAKNK,IAASrP,OAAOoP,GAAK9Z,SAASga,eAAe,SAI7Czd,M","file":"static/js/main.714488e8.chunk.js","sourcesContent":["const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","export default __webpack_public_path__ + \"static/media/logo.b98816b7.png\";","import axios from 'axios';\r\nimport jwtDecode from 'jwt-decode';\r\n\r\nconst { endpoint, path } = window.appConfig;\r\nconst AUTHORIZATION = 'Authorization';\r\n\r\nclass AuthBackend {\r\n loginUser = (username, password) => {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post(endpoint + path.authLogin, {\r\n Username: username,\r\n Password: password,\r\n })\r\n .then(resp => {\r\n localStorage.setItem(AUTHORIZATION, resp.data.token)\r\n resolve(true)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n });\r\n });\r\n }\r\n\r\n logoutUser = () => {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .delete(endpoint + path.authLogout)\r\n .then(() => {\r\n localStorage.removeItem(AUTHORIZATION)\r\n resolve(true)\r\n })\r\n .catch(error => {\r\n reject(error)\r\n });\r\n });\r\n }\r\n\r\n revokeAuthentication = () => {\r\n localStorage.removeItem(AUTHORIZATION)\r\n }\r\n\r\n getAuthenticatedToken = () => {\r\n try {\r\n const jwtToken = localStorage.getItem(AUTHORIZATION)\r\n if (jwtToken) {\r\n const { exp } = jwtDecode(jwtToken)\r\n const expiryTime = exp * 1000;\r\n const nowDateTime = new Date().getTime()\r\n if (expiryTime > nowDateTime) {\r\n return jwtToken;\r\n }\r\n }\r\n localStorage.removeItem(AUTHORIZATION)\r\n return null;\r\n } catch (error) {\r\n console.log(\"getAuthenticatedToken\", error)\r\n return null;\r\n }\r\n };\r\n}\r\n\r\nlet _authBackend = null;\r\n\r\nconst getAuthBackend = () => {\r\n if (!_authBackend) {\r\n _authBackend = new AuthBackend()\r\n }\r\n return _authBackend;\r\n}\r\n\r\nexport { getAuthBackend }\r\n","import React, { useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { \r\n Form, \r\n notification \r\n} from \"antd\";\r\nimport {\r\n LoginOutlined\r\n} from \"@ant-design/icons\";\r\nimport {\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n Input,\r\n InputGroupAddon,\r\n InputGroupText,\r\n InputGroup,\r\n Col,\r\n Container,\r\n Row,\r\n} from \"reactstrap\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport logo from \"../assets/img/brand/logo.png\";\r\nimport { getAuthBackend } from \"../helpers/authBackend\";\r\n\r\nconst authBackend = getAuthBackend();\r\n\r\nconst Login = () => {\r\n const history = useHistory();\r\n const [form] = Form.useForm();\r\n\r\n const onFinish = (fields) => {\r\n authBackend\r\n .loginUser(fields.Username, fields.Password)\r\n .then(() => {\r\n notification.success({\r\n message: \"Login success\",\r\n description: \"the route will redirect to home page\",\r\n placement: \"bottomRight\",\r\n icon: \r\n });\r\n history.push(\"/cookie-templates\");\r\n })\r\n .catch(error => {\r\n notification.error({\r\n message: error?.response?.data?.Message || error.message,\r\n placement: \"bottomRight\",\r\n });\r\n })\r\n .finally(()=> {\r\n form.resetFields();\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n document.body.classList.add(\"bg-default\");\r\n return () => {\r\n document.body.classList.remove(\"bg-default\");\r\n };\r\n }, []);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n PTG Cookie Policy | Back Office\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {/*

PTG Cookie Policy Back Office

*/}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*
\r\n \r\n \r\n Remember me\r\n \r\n
*/}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Login\r\n","import axios from 'axios';\r\nimport { getAuthBackend } from './authBackend';\r\n\r\nexport const callAPI = (() => {\r\n const instance = axios.create();\r\n const authBackend = getAuthBackend();\r\n const { endpoint } = window.appConfig;\r\n \r\n instance.interceptors.request.use(config => {\r\n // if (authBackend.getAuthenticatedToken()) {\r\n // config.headers = {\r\n // 'Authorization': authBackend.getAuthenticatedToken()\r\n // }\r\n // }\r\n config.url = endpoint + config.url\r\n return config\r\n }, error => {\r\n return Promise.reject(error);\r\n });\r\n \r\n instance.interceptors.response.use(response => {\r\n return response;\r\n }, error => {\r\n if(error.response.status === 401 ) {\r\n authBackend.revokeAuthentication()\r\n window.location.replace(\"/login\")\r\n } else {\r\n return Promise.reject(error);\r\n }\r\n });\r\n\r\n return instance\r\n})()\r\n\r\nexport const apiPath = {\r\n ...window.appConfig.path\r\n}","import { useEffect, useRef } from 'react';\n\nexport default function ComponentPrevent() {\n const ComponentPrevent = useRef(null);\n useEffect(() => {\n ComponentPrevent.current = true;\n return () => ComponentPrevent.current = false;\n });\n return ComponentPrevent;\n}","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n Button as AntdButton,\r\n Modal,\r\n Progress,\r\n Alert,\r\n notification\r\n} from \"antd\";\r\nimport {\r\n FileTextOutlined,\r\n} from \"@ant-design/icons\";\r\nimport {\r\n callAPI,\r\n apiPath\r\n} from \"../helpers/common\";\r\n\r\nconst { endpoint } = window.appConfig;\r\n\r\nconst ModalExport = ({\r\n criteria,\r\n visible,\r\n onClose\r\n}) => {\r\n const [isPrepareDownload, setIsPrepareDownload] = useState(true)\r\n const [dowloadData, setDownloadData] = useState([])\r\n\r\n //Use hoisting istead of state\r\n let fileId;\r\n\r\n useEffect(() => {\r\n if (visible) {\r\n const source = new EventSource(endpoint + apiPath.cookieLogsExportNotification);\r\n source.onopen = (e) => {\r\n fetchExportFile()\r\n }\r\n source.onmessage = (e) => {\r\n try {\r\n const eventData = JSON.parse(e.data).filter(item => item.Id === fileId)\r\n if (eventData.length > 0) {\r\n setDownloadData(eventData)\r\n setIsPrepareDownload(false)\r\n source.close()\r\n }\r\n } catch (e) {\r\n handleEventSourceError(e)\r\n }\r\n }\r\n source.onerror = (e) => handleEventSourceError(e)\r\n }\r\n return () => {\r\n setIsPrepareDownload(true)\r\n setDownloadData([])\r\n }\r\n }, [visible])\r\n\r\n const handleEventSourceError = (error) => {\r\n console.error(\"EventSource: [Error]\", error)\r\n notification.error({\r\n message: error?.response?.data?.Message || error.message,\r\n placement: \"bottomRight\",\r\n })\r\n onClose()\r\n }\r\n\r\n const handleModalClose = () => {\r\n if (!isPrepareDownload) {\r\n onClose()\r\n }\r\n }\r\n\r\n const fetchExportFile = () => {\r\n callAPI\r\n .get(apiPath.cookieLogsExport, {\r\n params: {\r\n ...criteria\r\n }\r\n })\r\n .then(resp => {\r\n fileId = resp?.data?.id\r\n })\r\n .catch(error => {\r\n notification.error({\r\n message: error?.response?.data?.Message || error.message,\r\n placement: \"bottomRight\",\r\n })\r\n })\r\n }\r\n\r\n return (\r\n \r\n {isPrepareDownload ? \"Please Wait...\" : \"Close\"}\r\n \r\n ]}\r\n >\r\n {\r\n isPrepareDownload ? (\r\n <>\r\n \r\n

This may take several minutes to complete!

\r\n Please do not navigate away from this page or close your browser.
You will be able to download once complete.}\r\n />\r\n \r\n ) : (\r\n <>\r\n {\r\n dowloadData.map((item, index) =>\r\n }\r\n message={item.FileName}\r\n action={\r\n window.open(`${apiPath.cookieLogsLocation}/${item.FileName}`)}>\r\n Download\r\n \r\n }\r\n />\r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default ModalExport\r\n","import React from 'react';\r\nimport { Layout, Menu } from 'antd';\r\nimport { NavLink, useLocation } from \"react-router-dom\";\r\nimport logo from \"../assets/img/brand/logo.png\";\r\n\r\nconst { Sider } = Layout;\r\n\r\nconst Sidebar = ({\r\n routes,\r\n toggleCollapse\r\n}) => {\r\n\r\n const location = useLocation();\r\n\r\n return (\r\n \r\n

\r\n \r\n

\r\n \r\n {\r\n routes?.filter(item => item.sidebar).map(route =>\r\n \r\n \r\n {route.sidebar.name}\r\n \r\n \r\n )\r\n }\r\n \r\n
\r\n );\r\n\r\n}\r\n\r\nexport default Sidebar","import { Spin } from \"antd\";\r\n\r\nconst Spinner = ({ show }) => {\r\n return (\r\n <>\r\n {\r\n show && (\r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default Spinner","import React from \"react\";\r\n\r\nconst TableInfo = ({\r\n from,\r\n to,\r\n total,\r\n style\r\n}) => (\r\n <>\r\n {\r\n total > 0 && (\r\n
\r\n {`Showing ${from} to ${to} of ${total} entries`}\r\n
\r\n )\r\n }\r\n \r\n)\r\n\r\nexport default TableInfo\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\r\nimport moment from \"moment\";\r\nimport {\r\n Table,\r\n Space,\r\n Form,\r\n Input,\r\n Button as AntdButton,\r\n Tag,\r\n Modal,\r\n DatePicker,\r\n message,\r\n notification,\r\n} from \"antd\";\r\nimport {\r\n Card,\r\n CardHeader,\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\nimport {\r\n CopyOutlined,\r\n PlusCircleOutlined,\r\n EditOutlined,\r\n DeleteOutlined,\r\n SearchOutlined,\r\n ClearOutlined,\r\n MoreOutlined,\r\n ExclamationCircleOutlined\r\n} from \"@ant-design/icons\";\r\nimport {\r\n callAPI,\r\n apiPath\r\n} from \"../../helpers/common\";\r\nimport {\r\n ComponentPrevent,\r\n TableInfo\r\n} from \"../../components/\";\r\n\r\nconst CookieTemplateList = () => {\r\n //Prevent unmounted component\r\n const componentPrevent = ComponentPrevent()\r\n\r\n const defaultPagination = { current: 1, pageSize: 10 }\r\n const defaultTableInfo = { from: 0, to: 0, total: 0 }\r\n const dateFormat = 'DD-MM-YYYY'\r\n\r\n const history = useHistory()\r\n const [form] = Form.useForm()\r\n const [tableData, setTableData] = useState([])\r\n const [tableLoading, setTableLoading] = useState(false)\r\n const [pagination, setPagination] = useState(defaultPagination)\r\n const [tableInfo, setTableInfo] = useState(defaultTableInfo)\r\n const [searchCriteria, setSearchCriteria] = useState({})\r\n\r\n const columns = [\r\n {\r\n title: \"Template Name\",\r\n dataIndex: \"templateName\",\r\n key: \"templateName\",\r\n render: value =>
{value}
,\r\n width: 300\r\n },\r\n {\r\n title: \"Web URL\",\r\n dataIndex: \"webUrl\",\r\n key: \"webUrl\",\r\n width: 300\r\n },\r\n {\r\n title: \"Template File URL\",\r\n dataIndex: \"fileNames\",\r\n key: \"fileNames\",\r\n render: fileNames => (\r\n Object.keys(fileNames).map((key, index) => (\r\n \r\n {key.toUpperCase() + \" \"}}\r\n style={{\r\n cursor: \"pointer\"\r\n }}\r\n onClick={() => {\r\n message.success(`Copied! ${fileNames[key]}`);\r\n }}\r\n >\r\n { \r\n (/(?:.+\\/)(.+)/g).exec(fileNames[key])?.[1]\r\n }\r\n \r\n \r\n \r\n ))\r\n ),\r\n width: 300\r\n },\r\n {\r\n title: \"Updated Date\",\r\n dataIndex: \"updatedAt\",\r\n key: \"updatedAt\",\r\n width: 300\r\n },\r\n {\r\n title: \"Updated By\",\r\n dataIndex: \"updatedBy\",\r\n key: \"updatedBy\",\r\n width: 300\r\n },\r\n {\r\n title: \"Action\",\r\n dataIndex: \"action\",\r\n key: \"action\",\r\n render: obj => (\r\n \r\n }\r\n onClick={() => history.push(`/cookie-templates/${obj.id}/edit`)}\r\n className=\"ant-btn-warning\"\r\n />\r\n }\r\n danger\r\n onClick={() => handleDelete(obj)}\r\n />\r\n \r\n ),\r\n },\r\n ]\r\n\r\n const fetchCookieTemplate = ({\r\n current,\r\n pageSize,\r\n ...fields\r\n }) => {\r\n setTableLoading(true)\r\n callAPI\r\n .get(apiPath.cookieTemplate, {\r\n params: {\r\n PageEnabled: true,\r\n PageNumber: current,\r\n PageSize: pageSize,\r\n ...fields\r\n }\r\n })\r\n .then(resp => resp.data)\r\n .then(body => {\r\n if (componentPrevent.current) {\r\n setTableData(body.data?.map((item) => ({\r\n key: item.id,\r\n templateName: item.templateName,\r\n webUrl: item.webUrl,\r\n fileNames: {\r\n th: item.fileNameTh,\r\n en: item.fileNameEn\r\n },\r\n updatedAt: item.updatedAt,\r\n updatedBy: item.updatedBy,\r\n action: {\r\n id: item.id,\r\n templateName: item.templateName\r\n },\r\n })))\r\n setPagination({\r\n current: body.currentPage,\r\n pageSize: body.pageSize,\r\n total: body.totalCount\r\n })\r\n setSearchCriteria({\r\n ...fields\r\n })\r\n setTableInfo({\r\n from: ((body.currentPage - 1) * body.pageSize) + 1,\r\n to: ((body.currentPage - 1) * body.pageSize) + body.data.length,\r\n total: body.totalCount\r\n })\r\n }\r\n })\r\n .catch(error => {\r\n notification.error({\r\n message: error?.response?.data?.Message || error.message,\r\n placement: \"bottomRight\",\r\n });\r\n })\r\n .finally(() => {\r\n if (componentPrevent.current) {\r\n setTableLoading(false)\r\n }\r\n })\r\n }\r\n\r\n const handleDelete = obj => {\r\n Modal.confirm({\r\n title: \"Are you sure you want to delete?\",\r\n icon: ,\r\n content: obj.templateName,\r\n okText: \"Delete\",\r\n okType: \"danger\",\r\n onOk: () => {\r\n callAPI\r\n .delete(apiPath.cookieTemplateById.replace(\"{id}\", obj.id))\r\n .then(resp => resp.data)\r\n .then(() => {\r\n notification.success({\r\n message: `\"${obj.templateName}\" was successfully deleted!`,\r\n placement: \"bottomRight\",\r\n })\r\n fetchCookieTemplate(defaultPagination)\r\n })\r\n .catch(error => {\r\n notification.error({\r\n message: error?.response?.data?.Message || error.message,\r\n placement: \"bottomRight\",\r\n });\r\n })\r\n .finally(() => {\r\n if (componentPrevent.current) {\r\n setTableLoading(false)\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n const handleFormSearch = () => {\r\n form\r\n .validateFields()\r\n .then(fields => {\r\n fetchCookieTemplate({\r\n ...defaultPagination,\r\n ...fields,\r\n DateFrom: fields.DateFrom && moment(fields.DateFrom).format(dateFormat),\r\n DateTo: fields.DateTo && moment(fields.DateTo).format(dateFormat)\r\n })\r\n })\r\n }\r\n\r\n const handleFormClear = () => {\r\n form.resetFields()\r\n fetchCookieTemplate(defaultPagination)\r\n }\r\n\r\n useEffect(() => {\r\n fetchCookieTemplate(defaultPagination)\r\n }, [])\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n \r\n Template Name}>\r\n \r\n \r\n \r\n \r\n Web URL}>\r\n \r\n \r\n \r\n \r\n Template URL}>\r\n \r\n \r\n \r\n \r\n Updated By}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Date From}>\r\n \r\n \r\n \r\n \r\n Date To}>\r\n \r\n \r\n \r\n \r\n \r\n } onClick={handleFormSearch} className=\"mr-3\" >Search\r\n } onClick={handleFormClear}>Clear\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n }\r\n onClick={()=> history.push(\"/cookie-templates/create\")}\r\n className=\"ant-btn-success filled\"\r\n size=\"large\"\r\n >\r\n Create Template\r\n \r\n \r\n \r\n \r\n\r\n {\r\n fetchCookieTemplate({\r\n current: page.current,\r\n pageSize: page.pageSize,\r\n ...searchCriteria\r\n })\r\n }}\r\n />\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CookieTemplateList;\r\n","import React, { useState, useRef } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\n// import { CopyToClipboard } from \"react-copy-to-clipboard\";\r\nimport {\r\n Card,\r\n Form,\r\n Input,\r\n InputNumber,\r\n Button as AntdButton,\r\n Switch,\r\n Divider,\r\n // Tag,\r\n notification,\r\n // message\r\n} from \"antd\";\r\nimport {\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\nimport {\r\n CheckOutlined,\r\n CloseOutlined,\r\n SaveOutlined,\r\n LeftOutlined,\r\n // MoreOutlined,\r\n // CopyOutlined,\r\n // FileTextFilled\r\n} from \"@ant-design/icons\";\r\nimport {\r\n callAPI,\r\n apiPath\r\n} from \"../../helpers/common\";\r\nimport { ComponentPrevent, Spinner } from \"../../components/\";\r\nimport CKEditor from \"ckeditor4-react\";\r\n\r\nconst CookieTemplateCreate = () => {\r\n //Prevent unmounted component\r\n const componentPrevent = ComponentPrevent()\r\n\r\n const history = useHistory()\r\n const fontColorRef = useRef()\r\n const backgroundColorRef = useRef()\r\n\r\n const [form] = Form.useForm()\r\n const [isAllowReject, setIsAllowReject] = useState(false)\r\n const [loading, setLoading] = useState(false)\r\n // const [fileNames, setFileNames] = useState()\r\n // const validateMessages = {\r\n // required: \"${label} is required!\",\r\n // };\r\n\r\n const onFinish = (fields) => {\r\n setLoading(true)\r\n callAPI\r\n .post(apiPath.cookieTemplate, {\r\n ...fields,\r\n FontTitleSize: fields.FontTitleSize?.toString(),\r\n FontDescriptionSize: fields.FontDescriptionSize?.toString(),\r\n Position: \"translateY(100%)\",\r\n IsFullTab: \"100%\",\r\n })\r\n .then(resp => resp.data)\r\n .then(body => {\r\n if (componentPrevent.current) {\r\n notification.success({\r\n message: `\"${body.templateName}\" was successfully created!`,\r\n placement: \"bottomRight\",\r\n })\r\n // setFileNames({\r\n // th: body.fileNameTh,\r\n // en: body.fileNameEn\r\n // })\r\n history.push(`/cookie-templates/${body.id}/edit`)\r\n }\r\n })\r\n .catch(error => {\r\n notification.error({\r\n message: error?.response?.data?.Message || error.message,\r\n placement: \"bottomRight\",\r\n });\r\n })\r\n .finally(() => {\r\n if (componentPrevent.current) {\r\n setLoading(false)\r\n }\r\n })\r\n };\r\n\r\n const handleChangeColorPicker = (fieldName) => (e) => {\r\n form.setFieldsValue({\r\n [fieldName]: e.target.value,\r\n })\r\n }\r\n\r\n const handleChangeInputColor = (ref) => (e) => {\r\n const targetValue = e.target.value\r\n ref.current.value = targetValue.match(/^#[0-9a-fA-F]{6}$/i) ? targetValue : \"#FFFFFF\"\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n

Create Cookie Template

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } \r\n maxLength={7}\r\n />\r\n \r\n \r\n \r\n\r\n Font\r\n \r\n \r\n \r\n \r\n } \r\n maxLength={7}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n Description\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n event?.editor?.getData()}\r\n rules={[\r\n { required: true, message: \"Description TH is required!\"},\r\n { max: 500, message: \"Description TH cannot be longer than 500 characters\" },\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n event?.editor?.getData()}\r\n rules={[\r\n { required: true, message: \"Description EN is required!\"},\r\n { max: 500, message: \"Description EN cannot be longer than 500 characters\" },\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n Consent\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n unCheckedChildren={}\r\n onChange={(value)=> setIsAllowReject(value)}\r\n />\r\n \r\n {\r\n isAllowReject && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n\r\n Expiration\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {/* \r\n \r\n {\r\n fileNames && (\r\n Cookie template files}>\r\n {\r\n Object.keys(fileNames).map((key, index) => (\r\n \r\n {key.toUpperCase() + \" \"}}\r\n style={{\r\n cursor: \"pointer\"\r\n }}\r\n onClick={() => {\r\n message.success(`Copied! ${fileNames[key]}`);\r\n }}\r\n >\r\n {fileNames[key]}\r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n )\r\n }\r\n \r\n */}\r\n \r\n \r\n \r\n }>\r\n Save\r\n \r\n } onClick={() => history.push(\"/cookie-templates\")}>\r\n Back\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default CookieTemplateCreate;\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\r\nimport {\r\n Card,\r\n Form,\r\n Input,\r\n InputNumber,\r\n Button as AntdButton,\r\n Switch,\r\n Divider,\r\n Tag,\r\n notification,\r\n message\r\n} from \"antd\";\r\nimport {\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\nimport {\r\n CheckOutlined,\r\n CloseOutlined,\r\n SaveOutlined,\r\n LeftOutlined,\r\n MoreOutlined,\r\n CopyOutlined,\r\n FileTextFilled\r\n} from \"@ant-design/icons\";\r\nimport {\r\n callAPI,\r\n apiPath\r\n} from \"../../helpers/common\";\r\nimport { ComponentPrevent, Spinner } from \"../../components/\";\r\nimport CKEditor from 'ckeditor4-react';\r\n\r\nconst CookieTemplateEdit = () => {\r\n //Prevent unmounted component\r\n const componentPrevent = ComponentPrevent()\r\n\r\n const { templateId } = useParams()\r\n\r\n const history = useHistory()\r\n const fontColorRef = useRef()\r\n const backgroundColorRef = useRef()\r\n\r\n const [form] = Form.useForm()\r\n const [isAllowReject, setIsAllowReject] = useState(false)\r\n const [loading, setLoading] = useState(false)\r\n const [fileNames, setFileNames] = useState()\r\n\r\n //Fixed for CKEditor async load\r\n const [onDataReady, setOnDataReady] = useState(false)\r\n\r\n const defaultColor = \"#FFFFFF\"\r\n\r\n // const validateMessages = {\r\n // required: \"${label} is required!\",\r\n // };\r\n\r\n const onFinish = (fields) => {\r\n setLoading(true)\r\n callAPI\r\n .patch(apiPath.cookieTemplate, {\r\n ...fields,\r\n Id: parseInt(templateId),\r\n FontTitleSize: fields.FontTitleSize?.toString(),\r\n FontDescriptionSize: fields.FontDescriptionSize?.toString(),\r\n Position: \"translateY(100%)\",\r\n IsFullTab: \"100%\",\r\n })\r\n .then(resp => resp.data)\r\n .then(body => {\r\n if (componentPrevent.current) {\r\n notification.success({\r\n message: `Successfully updated!`,\r\n placement: \"bottomRight\",\r\n })\r\n fetchCookieTemplate()\r\n }\r\n })\r\n .catch(error => {\r\n notification.error({\r\n message: error?.response?.data?.Message || error.message,\r\n placement: \"bottomRight\",\r\n });\r\n })\r\n .finally(() => {\r\n if (componentPrevent.current) {\r\n setLoading(false)\r\n }\r\n })\r\n };\r\n\r\n const handleChangeColorPicker = (fieldName) => (e) => {\r\n form.setFieldsValue({\r\n [fieldName]: e.target.value,\r\n })\r\n }\r\n\r\n const handleChangeInputColor = (ref) => (e) => {\r\n const targetValue = e.target.value\r\n ref.current.value = targetValue.match(/^#[0-9a-fA-F]{6}$/i) ? targetValue : defaultColor\r\n }\r\n\r\n const fetchCookieTemplate = () => {\r\n setLoading(true)\r\n setOnDataReady(false)\r\n callAPI\r\n .get(apiPath.cookieTemplateById.replace(\"{id}\", templateId))\r\n .then(resp => resp.data)\r\n .then(body => {\r\n if (componentPrevent.current) {\r\n form.setFieldsValue({\r\n TemplateName: body.templateName,\r\n WebUrl: body.webUrl,\r\n BackgroundColor: body.backgroundColor,\r\n //Font\r\n FontColor: body.fontColor,\r\n FontFamilyName: body.fontFamilyName,\r\n //Title\r\n FontTitleSize: body.fontTitleSize && parseInt(body.fontTitleSize),\r\n TitleTh: body.titleTh,\r\n TitleEn: body.titleEn,\r\n //Description\r\n FontDescriptionSize: body.fontDescriptionSize && parseInt(body.fontDescriptionSize),\r\n DescriptionTh: body.descriptionTh,\r\n DescriptionEn: body.descriptionEn,\r\n //Consent\r\n TextButtonAcceptTh: body.textButtonAcceptTh,\r\n TextButtonAcceptEn: body.textButtonAcceptEn,\r\n //Expiration\r\n ExpiresInDays: body.expiresInDays && parseInt(body.expiresInDays)\r\n })\r\n\r\n if(body.allowReject) {\r\n setIsAllowReject(body.allowReject)\r\n form.setFieldsValue({\r\n AllowReject: body.allowReject,\r\n TextButtonDeclineTh: body.textButtonDeclineTh,\r\n TextButtonDeclineEn: body.textButtonDeclineEn,\r\n })\r\n }\r\n\r\n backgroundColorRef.current.value = body.backgroundColor || defaultColor\r\n fontColorRef.current.value = body.fontColor || defaultColor\r\n\r\n setFileNames({\r\n th: body.fileNameTh,\r\n en: body.fileNameEn\r\n })\r\n }\r\n })\r\n .catch(error => {\r\n notification.error({\r\n message: error?.response?.data?.Message || error.message,\r\n placement: \"bottomRight\",\r\n });\r\n })\r\n .finally(() => {\r\n if (componentPrevent.current) {\r\n setLoading(false)\r\n setOnDataReady(true)\r\n }\r\n })\r\n }\r\n\r\n useEffect(()=>{\r\n fetchCookieTemplate()\r\n },[])\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n

Edit Cookie Template

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } \r\n maxLength={7}\r\n />\r\n \r\n \r\n \r\n\r\n Font\r\n \r\n \r\n \r\n \r\n } \r\n maxLength={7}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n Description\r\n \r\n \r\n \r\n \r\n \r\n {\r\n onDataReady && (\r\n \r\n \r\n event?.editor?.getData()}\r\n rules={[\r\n { required: true, message: \"Description TH is required!\"},\r\n { max: 500, message: \"Description TH cannot be longer than 500 characters\" },\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n event?.editor?.getData()}\r\n rules={[\r\n { required: true, message: \"Description EN is required!\"},\r\n { max: 500, message: \"Description EN cannot be longer than 500 characters\" },\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n\r\n Consent\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n unCheckedChildren={}\r\n onChange={(value)=> setIsAllowReject(value)}\r\n />\r\n\r\n \r\n {\r\n isAllowReject && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n\r\n Expiration\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n fileNames && (\r\n Cookie template files}>\r\n {\r\n Object.keys(fileNames).map((key, index) => (\r\n \r\n {key.toUpperCase() + \" \"}}\r\n style={{\r\n cursor: \"pointer\"\r\n }}\r\n onClick={() => {\r\n message.success(`Copied! ${fileNames[key]}`);\r\n }}\r\n >\r\n {fileNames[key]}\r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n }>\r\n Save\r\n \r\n } onClick={() => history.push(\"/cookie-templates\")}>\r\n Back\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default CookieTemplateEdit;\r\n","import React, { useState, useEffect } from \"react\";\r\n// import fileDownload from \"js-file-download\";\r\nimport moment from \"moment\";\r\nimport {\r\n Table,\r\n Form,\r\n Input,\r\n Select,\r\n Button as AntdButton,\r\n Tag,\r\n DatePicker,\r\n notification,\r\n} from \"antd\";\r\nimport {\r\n Card,\r\n CardHeader,\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\nimport {\r\n SearchOutlined,\r\n ClearOutlined,\r\n DownloadOutlined,\r\n} from \"@ant-design/icons\";\r\nimport {\r\n callAPI,\r\n apiPath\r\n} from \"../../helpers/common\";\r\nimport {\r\n ComponentPrevent,\r\n TableInfo,\r\n ModalExport\r\n} from \"../../components/\";\r\n\r\nconst ConsentTransactionList = () => {\r\n //Prevent unmounted component\r\n const componentPrevent = ComponentPrevent()\r\n \r\n const defaultPagination = { current: 1, pageSize: 10 }\r\n const defaultTableInfo = { from: 0, to: 0, total: 0 }\r\n const dateFormat = 'DD-MM-YYYY'\r\n const limitRecord = 300000;\r\n\r\n const [form] = Form.useForm()\r\n //TablePaginate\r\n const [tableData, setTableData] = useState([])\r\n const [tableLoading, setTableLoading] = useState(false)\r\n const [pagination, setPagination] = useState(defaultPagination)\r\n const [tableInfo, setTableInfo] = useState(defaultTableInfo)\r\n const [searchCriteria, setSearchCriteria] = useState({})\r\n const [countPerWeb, setCountPerWeb] = useState(null)\r\n //ExportFile\r\n const [isDownloadVisible, setIsDownloadVisible] = useState(false)\r\n\r\n const columns = [\r\n {\r\n title: \"Transaction ID\",\r\n dataIndex: \"transactionId\",\r\n key: \"transactionId\",\r\n render: value =>
{value}
,\r\n width: 300\r\n },\r\n {\r\n title: \"Web URL\",\r\n dataIndex: \"webUrl\",\r\n key: \"webUrl\",\r\n width: 300\r\n },\r\n {\r\n title: \"Browser Info\",\r\n dataIndex: \"browserInfo\",\r\n key: \"browserInfo\",\r\n render: value => {value},\r\n width: 300\r\n },\r\n {\r\n title: \"Policy Version\",\r\n dataIndex: \"policyVersion\",\r\n key: \"policyVersion\",\r\n width: 300,\r\n align: \"center\"\r\n },\r\n {\r\n title: \"Cookie Consent\",\r\n dataIndex: \"cookieConsent\",\r\n key: \"cookieConsent\",\r\n render: value => <>{value ? Accepted : Declined},\r\n width: 300,\r\n align: \"center\"\r\n },\r\n {\r\n title: \"Transaction Date/Time\",\r\n dataIndex: \"transactionDateTime\",\r\n key: \"transactionDateTime\",\r\n width: 300\r\n },\r\n ];\r\n\r\n const fetchConsentTransaction = ({\r\n current,\r\n pageSize,\r\n ...fields\r\n }) => {\r\n setTableLoading(true)\r\n callAPI\r\n .get(apiPath.cookieLogs, {\r\n params: {\r\n PageEnabled: true,\r\n PageNumber: current,\r\n PageSize: pageSize,\r\n ...fields\r\n }\r\n })\r\n .then(resp => resp.data)\r\n .then(body => {\r\n if (componentPrevent.current) {\r\n setTableData(body.data?.map((item) => ({\r\n key: item.id,\r\n transactionId: item.transactionId,\r\n webUrl: item.webUrl,\r\n browserInfo: item.agentId,\r\n policyVersion: item.policyVersion,\r\n cookieConsent: item.isAccept,\r\n transactionDateTime: item.createdAt\r\n })))\r\n setPagination({\r\n current: body.currentPage,\r\n pageSize: body.pageSize,\r\n total: body.totalCount\r\n })\r\n setSearchCriteria({\r\n ...fields\r\n })\r\n setTableInfo({\r\n from: ((body.currentPage - 1) * body.pageSize) + 1,\r\n to: ((body.currentPage - 1) * body.pageSize) + body.data.length,\r\n total: body.totalCount\r\n })\r\n }\r\n })\r\n .catch(error => {\r\n notification.error({\r\n message: error?.response?.data?.Message || error.message,\r\n placement: \"bottomRight\",\r\n })\r\n })\r\n .finally(() => {\r\n if (componentPrevent.current) {\r\n setTableLoading(false)\r\n }\r\n })\r\n }\r\n\r\n const fetchCountPerWeb = () => {\r\n callAPI\r\n .get(\"/cookie-logs/count\")\r\n .then(resp => {\r\n if (componentPrevent.current) {\r\n setCountPerWeb(resp.data)\r\n }\r\n })\r\n .catch(error => {\r\n notification.error({\r\n message: error?.response?.data?.Message || error.message,\r\n placement: \"bottomRight\",\r\n })\r\n })\r\n }\r\n\r\n const handleFormSearch = () => {\r\n form\r\n .validateFields()\r\n .then(fields => {\r\n fetchConsentTransaction({\r\n ...defaultPagination,\r\n ...fields,\r\n DateFrom: fields.DateFrom && moment(fields.DateFrom).format(dateFormat),\r\n DateTo: fields.DateTo && moment(fields.DateTo).format(dateFormat)\r\n })\r\n })\r\n }\r\n\r\n const handleFormClear = () => {\r\n form.resetFields()\r\n handleFormSearch()\r\n }\r\n\r\n const handleExport = () => {\r\n if(tableInfo.total <= limitRecord) {\r\n setIsDownloadVisible(true)\r\n } else {\r\n notification.error({\r\n message: \"Export data could not exceed limit 300,000 entries\",\r\n placement: \"bottomRight\",\r\n })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n handleFormSearch()\r\n fetchCountPerWeb()\r\n }, [])\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n \r\n Transaction ID}>\r\n \r\n \r\n \r\n \r\n Web URL}>\r\n \r\n \r\n \r\n \r\n Date From}>\r\n \r\n \r\n \r\n \r\n Date To}>\r\n \r\n \r\n \r\n \r\n Browser Info}>\r\n \r\n \r\n \r\n \r\n Cookie Consent}>\r\n \r\n \r\n \r\n \r\n \r\n } onClick={handleFormSearch} className=\"mr-3\" >Search\r\n } onClick={handleFormClear}>Clear\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n {\r\n countPerWeb && (\r\n \r\n {\r\n countPerWeb.map((item, index) =>\r\n \r\n {item.webUrl}\r\n \r\n {item.count}\r\n \r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n } \r\n onClick={handleExport} \r\n className=\"ant-btn-success filled\"\r\n size=\"large\"\r\n loading={isDownloadVisible}\r\n disabled={tableLoading}\r\n >\r\n {\r\n isDownloadVisible ? \"Exporting\" : \"Export\"\r\n }\r\n \r\n \r\n \r\n \r\n\r\n {\r\n fetchConsentTransaction({\r\n current: page.current,\r\n pageSize: page.pageSize,\r\n ...searchCriteria\r\n })\r\n }}\r\n />\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n setIsDownloadVisible(false)}\r\n />\r\n \r\n )\r\n}\r\n\r\nexport default ConsentTransactionList;\r\n","import React from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { \r\n // HomeOutlined, \r\n AuditOutlined, \r\n LayoutOutlined \r\n} from '@ant-design/icons';\r\n\r\nimport Login from '../layouts/Login';\r\n// import Dashboard from '../pages/Dashboard';\r\nimport { \r\n CookieTemplateList,\r\n CookieTemplateCreate,\r\n CookieTemplateEdit\r\n} from '../pages/CookieTemplate/';\r\nimport {\r\n ConsentTransactionList,\r\n} from '../pages/ConsentTransaction/';\r\n\r\nconst authProtectedRoutes = [\r\n // {\r\n // //Dashboard\r\n // exact: true,\r\n // path: '/dashboard',\r\n // component: Dashboard,\r\n // sidebar: {\r\n // name: \"Dashboard\",\r\n // icon: , \r\n // }\r\n // },\r\n //CookieTemplate\r\n {\r\n exact: true,\r\n path: \"/cookie-templates\",\r\n component: CookieTemplateList,\r\n sidebar: {\r\n name: \"Cookie templates\",\r\n icon: ,\r\n }\r\n },\r\n {\r\n path: \"/cookie-templates/create\",\r\n component: CookieTemplateCreate,\r\n },\r\n {\r\n path: \"/cookie-templates/:templateId/edit\",\r\n component: CookieTemplateEdit,\r\n },\r\n //ConsentTransaction\r\n {\r\n exact: true,\r\n path: \"/consent-transactions\",\r\n component: ConsentTransactionList,\r\n sidebar: {\r\n name: \"Consent transactions\",\r\n icon: ,\r\n }\r\n },\r\n //Other\r\n {\r\n exact: true,\r\n path: '/', \r\n component: () => \r\n },\r\n // {\r\n // path: '*',\r\n // component: () => \r\n // },\r\n];\r\n\r\nconst publicRoutes = [\r\n {\r\n path: '/logout',\r\n component: () => <>logout\r\n },\r\n {\r\n path: '/login',\r\n component: Login\r\n },\r\n];\r\n\r\nexport { authProtectedRoutes, publicRoutes };\r\n","import { createAction } from '@reduxjs/toolkit';\n\nexport const setUser = createAction('SET_USER');\nexport const setUserSuccess = createAction('SET_USER_SUCCESS');\nexport const setUserFailed = createAction('SET_USER_FAILED');","import React, { useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Route, Redirect, withRouter } from \"react-router-dom\";\r\nimport { getAuthBackend } from \"../helpers/authBackend\";\r\nimport { setUser } from \"../stores/actions\";\r\n\r\nconst authBackend = getAuthBackend();\r\n\r\nlet AppRoute = ({\r\n\tsetUser,\r\n\tcomponent: Component,\r\n\tlayout: Layout,\r\n\tisAuthProtected,\r\n\t...props\r\n}) => {\r\n\r\n\tuseEffect(setUser, [])\r\n\r\n\treturn (\r\n\t\t {\r\n\t\t\t\tif (isAuthProtected && !authBackend.getAuthenticatedToken()) {\r\n\t\t\t\t\treturn (\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\treturn (\r\n\t\t\t\t\t\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}}\r\n\t\t/>\r\n\t);\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n setUser: setUser\r\n}\r\n\r\nAppRoute = connect(\r\n\tnull,\r\n\tmapDispatchToProps,\r\n)(AppRoute)\r\n\t\r\nexport default withRouter(AppRoute)\r\n\r\n","import { modelUserSelector } from '../selectors';\nimport { createSelector } from '@reduxjs/toolkit';\n\nexport const userSelector = createSelector(\n [modelUserSelector],\n (user) => user\n);\n","export const modelUserSelector = (state) => state.user;","import React, { useState } from \"react\";\r\nimport { useHistory, withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { \r\n Layout, \r\n Spin,\r\n notification \r\n} from \"antd\";\r\nimport {\r\n MenuUnfoldOutlined,\r\n MenuFoldOutlined,\r\n UserOutlined,\r\n LogoutOutlined,\r\n} from \"@ant-design/icons\";\r\nimport {\r\n DropdownMenu,\r\n DropdownItem,\r\n UncontrolledDropdown,\r\n DropdownToggle,\r\n Navbar,\r\n Nav,\r\n Media\r\n} from \"reactstrap\";\r\nimport { Sidebar } from \"../components/\";\r\nimport { authProtectedRoutes } from \"../routes/\";\r\nimport { getAuthBackend } from \"../helpers/authBackend\";\r\nimport { userSelector } from \"../stores/user/selector\";\r\n\r\nconst authBackend = getAuthBackend();\r\nconst { Header, Content, Footer } = Layout;\r\n\r\nlet AuthLayout = ({\r\n user,\r\n children: Children\r\n}) => {\r\n const history = useHistory();\r\n const [collapsed, setCollapsed] = useState(false);\r\n\r\n const toggle = () => {\r\n setCollapsed(!collapsed)\r\n }\r\n \r\n const logout = () => {\r\n authBackend\r\n .logoutUser()\r\n .then(() => {\r\n notification.success({\r\n message: `You have been logged out!`,\r\n description: \"the route will redirect to login page\",\r\n placement: \"bottomRight\",\r\n icon: \r\n })\r\n history.push(\"/login\")\r\n })\r\n .catch(error => {\r\n notification.error({\r\n message: error?.response?.data?.Message || error.message,\r\n placement: \"bottomRight\",\r\n });\r\n })\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n
\r\n\r\n \r\n {React.createElement(collapsed ? MenuUnfoldOutlined : MenuFoldOutlined, {\r\n className: \"trigger\",\r\n onClick: toggle,\r\n style: {\r\n padding: \"0 24px\",\r\n fontSize: \"18px\",\r\n cursor: \"pointer\",\r\n transition: \"color 0.3s\"\r\n }\r\n })}\r\n \r\n \r\n
\r\n \r\n
\r\n {\r\n Children\r\n }\r\n
\r\n
PTG Cookie Policy ©2021
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n const user = userSelector(state)\r\n return {\r\n user\r\n }\r\n}\r\n\r\nAuthLayout = connect(\r\n mapStateToProps,\r\n null,\r\n)(AuthLayout)\r\n\r\nexport default withRouter(AuthLayout)\r\n","import React from \"react\";\r\n\r\nconst NonAuthLayout = ({\r\n children: Children\r\n}) => {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default NonAuthLayout;\r\n","import React from \"react\";\r\nimport { Switch, BrowserRouter as Router } from 'react-router-dom';\r\nimport { authProtectedRoutes, publicRoutes } from './routes/';\r\nimport AppRoute from './routes/AppRoute';\r\nimport AuthLayout from './layouts/AuthLayout';\r\nimport NonAuthLayout from './layouts/NonAuthLayout';\r\n\r\nconst App = () => {\r\n return (\r\n \r\n \r\n {\r\n publicRoutes.map(({ path, exact, component }, idx) => (\r\n \r\n ))\r\n }\r\n {\r\n authProtectedRoutes.map(({ path, exact, component }, idx) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default App","import { createReducer } from '@reduxjs/toolkit';\nimport { setUserSuccess, setUserFailed } from './action';\n\nconst initialState = null;\nconst userReducer = createReducer(initialState, {\n [setUserSuccess]: (_, action) => action.payload,\n [setUserFailed]: (_, action) => action.type,\n});\n\nexport default userReducer;\n","import { combineReducers } from 'redux';\r\nimport user from './user/reducer';\r\n\r\nconst rootReducer = combineReducers({\r\n user\r\n});\r\n\r\nexport default rootReducer;\r\n","import { takeEvery, put } from 'redux-saga/effects';\nimport { setUser, setUserSuccess, setUserFailed } from './action';\nimport { getAuthBackend } from \"../../helpers/authBackend\";\n// import { callAPI } from \"../../helpers/common\";\nimport jwtDecode from 'jwt-decode';\n\nconst authBackend = getAuthBackend();\n\n// const _fetchUser = () => callAPI.get(\"/users/1\")\n\nfunction* handleSetUser() {\n try {\n // const res = yield call(_fetchUser)\n const jwtData = jwtDecode(authBackend.getAuthenticatedToken())\n yield put(setUserSuccess(jwtData))\n } catch (e) {\n console.warn(`User Authentication Failed: [${e.message}]`)\n yield put(setUserFailed(e.message))\n }\n}\n\nexport default function* () {\n yield takeEvery(setUser, handleSetUser)\n}\n","import { all } from 'redux-saga/effects';\r\nimport userSaga from \"./user/saga\";\r\n\r\nexport default function* rootSaga() {\r\n yield all([\r\n userSaga()\r\n ])\r\n}\r\n","import { createStore, applyMiddleware, compose } from 'redux';\r\nimport createSagaMiddleware from 'redux-saga'\r\n\r\nimport rootReducer from './reducers';\r\nimport rootSaga from './sagas';\r\n\r\nconst sagaMiddleware = createSagaMiddleware();\r\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\r\n\r\nconst store = createStore(rootReducer, composeEnhancers(applyMiddleware(sagaMiddleware)));\r\nsagaMiddleware.run(rootSaga);\r\n\r\nexport default store;\r\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { BrowserRouter } from 'react-router-dom';\nimport reportWebVitals from './reportWebVitals';\n\nimport App from './App';\n\nimport \"argon-dashboard-react/src/assets/css/argon-dashboard-react.min.css\";\nimport 'antd/dist/antd.css';\nimport \"./index.css\";\n\nimport store from './stores';\n\nconst app = (\n \n \n \n \n \n);\n\nReactDOM.render(app, document.getElementById('root'));\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();"],"sourceRoot":""}