@reltio/remotes 1.4.1388 → 1.4.1389
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/1219.js +1 -1
- package/1219.js.map +1 -1
- package/1375.js +1 -1
- package/1375.js.map +1 -1
- package/1689.js +1 -1
- package/1689.js.map +1 -1
- package/2114.js +1 -1
- package/2114.js.map +1 -1
- package/2890.js +1 -1
- package/2890.js.map +1 -1
- package/3149.js +1 -1
- package/3149.js.map +1 -1
- package/3273.js +1 -1
- package/3273.js.map +1 -1
- package/3540.js +1 -1
- package/3540.js.map +1 -1
- package/3602.js +1 -1
- package/3602.js.map +1 -1
- package/4015.js +1 -1
- package/4015.js.map +1 -1
- package/447.js +1 -1
- package/447.js.map +1 -1
- package/461.js +1 -1
- package/461.js.map +1 -1
- package/4678.js +2 -0
- package/4678.js.map +1 -0
- package/4843.js +1 -1
- package/4881.js +1 -1
- package/4881.js.map +1 -1
- package/4889.js +1 -1
- package/4889.js.map +1 -1
- package/5400.js +1 -1
- package/5400.js.map +1 -1
- package/5601.js +1 -1
- package/5601.js.map +1 -1
- package/5709.js +1 -1
- package/5709.js.map +1 -1
- package/5720.js +1 -1
- package/5720.js.map +1 -1
- package/5937.js +1 -1
- package/5937.js.map +1 -1
- package/6103.js +1 -1
- package/6103.js.map +1 -1
- package/6312.js +1 -1
- package/6312.js.map +1 -1
- package/6617.js +1 -1
- package/6617.js.map +1 -1
- package/6669.js +1 -1
- package/6669.js.map +1 -1
- package/6710.js +1 -1
- package/6710.js.map +1 -1
- package/6913.js +1 -1
- package/6913.js.map +1 -1
- package/7937.js +1 -1
- package/7937.js.map +1 -1
- package/8051.js +1 -1
- package/8051.js.map +1 -1
- package/8183.js +1 -1
- package/8183.js.map +1 -1
- package/8443.js +1 -1
- package/8443.js.map +1 -1
- package/9043.js +1 -1
- package/9043.js.map +1 -1
- package/9211.js +1 -1
- package/9211.js.map +1 -1
- package/9431.js +1 -1
- package/9431.js.map +1 -1
- package/9630.js +1 -1
- package/9630.js.map +1 -1
- package/99.js +1 -1
- package/99.js.map +1 -1
- package/package.json +1 -1
- package/remoteEntry.js +1 -1
- package/remoteEntry.js.map +1 -1
- package/3819.js +0 -2
- package/3819.js.map +0 -1
package/5601.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"5601.js","mappings":"wMAEO,MAAMA,GAAYC,E,SAAAA,GAAW,CAChCC,KAAM,CACFC,UAAW,OACXC,SAAU,OACVC,YAAa,UCcrB,EAR2B,IAA8B,IAA7B,MAACC,EAAD,SAAQC,GAAqB,EACrD,MAAMC,EAASR,IACTS,GAAoBC,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,sBAChCC,GAAsBC,EAAAA,EAAAA,KAAuBN,EAAU,CAACO,KAAMR,EAAMS,KACpEC,GAAmBC,EAAAA,EAAAA,KAAoBR,EAAmBG,GAChE,OAAO,kBAACM,EAAA,EAAD,CAAoBC,UAAWX,EAAON,KAAMA,KAAMc,EAAkBI,WAAYd,EAAMe,MAAM,O,qCCblGC,E,6QAAAA,GAAAA,EAAAA,EAAAA,UAAAA,GAAAA,YAAAA,EAAAA,EAAAA,UAAAA,GAAAA,YAAAA,EAAAA,EAAAA,WAAAA,GAAAA,a,CAAAA,IAAAA,EAAAA,KAeL,MAmCA,EAnC2B,IAAsE,IAArE,UAACH,EAAD,KAAYjB,EAAZ,WAAkBkB,EAAlB,YAA8BG,GAAuC,EAAvBC,E,kXAAuB,oDAC7F,MAAOC,EAAOC,IAAYC,EAAAA,EAAAA,UAAuB,OACjDC,EAAAA,EAAAA,YAAU,KAEFF,EADAxB,EACSoB,EAAaO,UAEbP,EAAaQ,aAE3B,CAAC5B,EAAMkB,IACV,MAAMW,EAAkB,KACpBL,EAASJ,EAAaU,aAG1B,OAAQP,GACJ,KAAKH,EAAaO,UACd,OACI,kBAAC,EAAAI,OAAD,GACId,UAAWe,GAAAA,CAAWf,EAAWI,MAAAA,OAAZ,EAAYA,EAAaY,UAC9CC,IAAKlC,EACLmC,QAASN,GACLP,IAGhB,KAAKF,EAAaQ,UAClB,KAAKR,EAAaU,WACd,OACI,kBAAC,EAAAC,OAAD,GAAQd,UAAWe,GAAAA,CAAWf,EAAWI,MAAAA,OAAZ,EAAYA,EAAae,WAAed,GAChEJ,GAGb,QACI,OAAO,Q,8KChDnB,MAyCA,GAzCkBnB,EAAAA,EAAAA,GAAW,CACzBsC,UAAW,CACPC,OAAQ,UACRC,WAAY,OACZC,UAAW,OACXC,QAAS,OACTC,WAAY,SACZC,QAAS,gBACTC,MAAO,oBACP,uBAAwB,CACpBC,aAAc,8BAElB,aAAc,CACVP,OAAQ,YAGhBQ,SAAU,GACVC,mBAAoB,GACpBC,SAAU,GACVC,KAAM,CACFC,SAAU,OACVC,MAAO,mBACPC,SAAU,SACVC,WAAY,SACZC,aAAc,WACdC,UAAW,MACXC,UAAW,OACXC,KAAM,MACNb,MAAO,IACP,cAAe,CACXO,MAAO,oBAEX,aAAc,CACVA,MAAO,mBACP,cAAe,CACXA,MAAO,wBChBjBO,GAAkBC,EAAAA,EAAAA,SAAOC,EAAAA,EAAAA,MAAK,UAAUA,EAAAA,EAAAA,MAAK,cA0BnD,EAxBuB,IAA0F,IAAzF,MAACC,EAAD,SAAQC,EAAWJ,EAAnB,uBAAoCK,EAApC,SAA4DjB,GAAW,GAAkB,EAC7G,MAAMxC,EAASR,IACTkE,EAAQH,GAASC,EAASD,GAChC,OACI,yBACII,QAASnB,OAAWoB,EAAYH,EAChC9C,UAAWe,GAAAA,CACP1B,EAAO+B,UACP,CACI,CAAC/B,EAAOyC,sBAAuBiB,GAEnC,CAAC,CAAC1D,EAAOwC,UAAWA,KAGxB,kBAACqB,EAAA,EAAD,CAAsBN,MAAOG,GACzB,yBAAK/C,UAAWe,GAAAA,CAAW1B,EAAO2C,KAAM,CAAC,CAAC3C,EAAOwC,UAAWA,KACvDkB,GAAS,0BAAM/C,UAAWX,EAAO0C,UAAWoB,IAAAA,KAAU,uBAG/D,kBAACC,EAAA,EAAD,CAAiBC,KAAM,IAAKtE,KAAMuE,EAAAA,EAAezB,SAAUA,M,udCtChE,MAAM0B,GAAoBC,EAAAA,EAAAA,OAAKC,EAAAA,EAAAA,MAAK,CAAC,YAAa,MAAO,mBAEnDC,EAAyB,CAACtC,EAAkCuC,IACrEA,KAAwBA,EAAmBC,KAAKL,EAAkBnC,IAEhEyC,EAAa,CAACC,EAA6BC,IAC7CD,EAAK5D,MAAM8D,cAAcC,SAASF,EAAWC,eAEpCE,EAAkB,CAACJ,EAA6BC,IACzDF,EAAWC,EAAMC,KAAgBD,EAAKK,UAAY,IAAIC,MAAMN,GAASI,EAAgBJ,EAAMC,KAgBlFM,EAAoB,CAACV,EAA6CvC,IAC3EuC,EAAmBW,UAAUf,EAAkBnC,IAEtCmD,GAAoBC,EAAAA,EAAAA,KAAgB,SAa3CC,EAAwB,SAC1BX,EACAY,EACAC,EACAZ,GAGC,IAFDa,EAEC,uDAFO,EACRC,EACC,wDACD,MAAMC,EAAiBjB,EAAWC,EAAMC,GACxC,MAAO,CACH,CACID,KAAMC,EAAa,EAAH,GAAOD,EAAP,CAAaC,WAAAA,IAAcD,EAC3Cc,MAAAA,EACAF,QAAAA,EACAC,UAAAA,IAGHI,OACGjB,EAAKK,SACCL,EAAKK,SACFa,QAAQC,GAAYJ,GAAYC,GAAkBZ,EAAgBe,EAASlB,KAC3EmB,SAASD,GACNR,EACIQ,EACAP,EACAC,EACAZ,EACAa,EAAQ,EACRC,GAAYC,KAGtB,IAETK,QAGIC,GAGgEC,EAAAA,EAAAA,QACzE,CAACtB,EAAoBuB,IACjBA,EACKC,KAAKpG,IAAD,CACD2E,KAAM3E,EACNqG,MAAOrG,EAAMsG,WACRT,QAAQ5D,GAAc8C,EAAgB9C,EAAW2C,KACjDwB,KAAKzB,GAASW,EAAsBX,EAAM3E,EAAMS,GAAIT,EAAMe,MAAO6D,SAEzEiB,QAAQ7F,GAAUA,EAAMqG,MAAME,W,gFC3FpC,MAAM7G,GAAYC,EAAAA,EAAAA,GAAW,CAChC6G,UAAW,CACPC,gBAAiB,UACjBlE,QAAS,SACTmE,OAAQ,EACRrE,QAAS,OACTC,WAAY,SACZS,MAAO,mBACPD,SAAU,OACV6D,WAAY,O,wpBCEpB,MA6DA,GAAeC,EAAAA,EAAAA,OAhDc,IAAuF,IAAtF,mBAACpC,EAAD,YAAqBqC,EAArB,WAAkCC,EAAlC,aAA8CC,GAAwC,EAAvB7F,E,kXAAuB,qEAChH,MAAMhB,EAASR,IACTO,GAAWG,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,aAmC7B,OACI,kBAACC,EAAA,EAAD,GACIC,YApCY,CAACC,EAAGxC,IAAUA,EAAK0B,MAfX,GADZ,GAqDRe,WA5BW,CAACC,EAAD,EAA2CC,KAAU,IAA7C,KAAC3C,EAAD,MAAOc,EAAP,QAAcF,EAAd,UAAuBC,GAAsB,EACpE,MAAM+B,EAAUhD,EAAuBI,EAAMH,GACvCgD,EAAYF,IAAUR,EAC5B,OACI,kBAACW,EAAA,EAAD,CACIC,IAAM,QAAOnC,KAAWZ,EAAKgD,YAC7B9D,QAASgD,EACTU,QAASA,EACTK,KAAI,KACGjD,EADH,CAEAa,UAAAA,IAEJqC,cAAelD,EAAKkD,cACpBd,aAAcA,EACdnD,MAAO,kBAACkE,EAAA,EAAD,CAAaC,KAAMpD,EAAK5D,MAAOiH,UAAWrD,EAAKC,aACtDqD,YAAatD,EAAK5D,MAClB0E,MAAOA,EACP4B,MAAOA,EACPG,UAAWA,EACXjC,QAASA,EACT2C,SAAUvD,EAAKuD,YASnBC,iBApCiB,CAACd,EAAO1C,IAC7B,kBAAC,EAAAyD,SAAD,CAAUC,UAAW,MAAOxH,UAAWX,EAAOsG,UAAWa,MAAOA,EAAOK,IAAM,SAAQ/C,EAAKA,KAAKlE,MAC1FkE,EAAKA,KAAK2D,eAAiB,kBAACC,EAAA,EAAD,CAAoBvI,MAAO2E,EAAKA,KAAM1E,SAAUA,IAC3E0E,EAAKA,KAAK5D,OAkCX+F,WAAYA,GACR5F,O,eCnEhB,MAWA,GAXkBvB,EAAAA,EAAAA,GAAW,CACzB6I,SAAU,CACNC,SAAU,QACVnG,WAAY,UACZoG,WAAY,sBACZC,UAAW,aACXC,aAAc,MACdvG,QAAS,UCoIjB,GAAeuE,EAAAA,EAAAA,OAtHgB,IAcI,IAdH,UAC5B/F,EAD4B,YAE5BgI,EAF4B,MAG5BpF,EAH4B,SAI5BC,EAJ4B,SAK5BoF,EAL4B,eAM5BC,EAAiBC,EAAAA,SANW,YAO5BC,EAAcD,EAAAA,SAPc,oBAQ5BE,GAAsB,EARM,oBAS5BC,GAAsB,EATM,OAU5BC,GAAS,EAVmB,QAW5BC,GAAU,EAXkB,SAY5B3G,GAAW,EAZiB,aAa5BqE,GAAe,GACgB,EAC/B,MAAM7G,EAASR,KACR4J,EAAcC,IAAmBlI,EAAAA,EAAAA,UAAS,MAK3CmI,GAAaC,EAAAA,EAAAA,cAAY,IAAMF,EAAgB,OAAO,IACtDG,IAAgBJ,GAEf1E,EAAY+E,IAAiBtI,EAAAA,EAAAA,UAAS,IACvCuI,GAAkBH,EAAAA,EAAAA,cAAY,IAAME,EAAc,KAAK,KAEtDnF,EAAoBqF,IAAyBxI,EAAAA,EAAAA,UAAS,IACvDyI,GAA0BL,EAAAA,EAAAA,cAAY,IAAMI,EAAsB,KAAK,IAEvEE,GAAsBC,EAAAA,EAAAA,UAAQ,IAAM/D,EAAoCrB,EAAYiE,IAAc,CACpGA,EACAjE,IAGEyB,GAAQ2D,EAAAA,EAAAA,UACV,KACIC,EAAAA,EAAAA,OACIC,EAAAA,EAAAA,OAAKC,EAAAA,EAAAA,QAAOd,IAAUe,EAAAA,EAAAA,QAAMH,EAAAA,EAAAA,OAAKzG,EAAAA,EAAAA,MAAK,SAAU6G,EAAAA,SAASjE,EAAAA,EAAAA,MAAI9B,EAAAA,EAAAA,MAAK,CAAC,OAAQ,cAC3EgG,EAAAA,GAFJL,CAGEF,IACN,CAACV,EAASU,IAGRQ,GAAiBP,EAAAA,EAAAA,UAAQ,IAAMQ,KAAKC,IAAIrF,EAAkB2E,GA/CtC,MA+CoF,CAC1GA,IAGEW,GAAgBT,EAAAA,EAAAA,OAAKU,EAAAA,EAAAA,MAAIV,EAAAA,EAAAA,MAAKH,EAAyBF,EAAiBJ,IAAcT,GAEtF6B,GAAiBC,EAAAA,EAAAA,UAEjBC,GAAkBrB,EAAAA,EAAAA,cACpB,CAACxH,EAAkCsF,KAC/BuB,EAAS,CACLvB,QAAAA,EACAtF,UAAAA,EACAqF,MAAOC,EAAU/C,EAAmB+B,OAASrB,EAAkBV,EAAoBvC,GACnFuC,mBAAAA,IAGA4E,GACAS,EAAsBtC,EAAU,CAACtF,GAAa,IAC9CyI,EAAc,MAEdb,EJzEwB,KAQlC,IARmC,UACrC5H,EADqC,mBAErCuC,EAFqC,QAGrC+C,GAKE,EACF,OAAOA,EACD/C,EAAmBoB,OAAO3D,GAC1BuC,EAAmBqB,QAAQkF,IAAuB3G,EAAkBnC,EAAW8I,MI8DnDC,CAAyB,CAACxG,mBAAAA,EAAoBvC,UAAAA,EAAWsF,QAAAA,KAC3EqD,EAAeK,SACfL,EAAeK,QAAQC,WAInC,CAAC1G,EAAoBsE,EAAUM,EAAQsB,EAAeE,IAGpDO,GAAsB1B,EAAAA,EAAAA,aJ/DC,SAAC,gBAC9BqB,EAD8B,mBAE9BtG,GAF6B,SAM3B,IAAuB,IAAtB,KAACG,EAAD,UAAOyG,GAAe,EACzB,MAAM7D,EAAUhD,EAAuBI,EAAMH,GAC7CsG,EAAgB,EAAD,GAAKnG,EAAL,CAAWa,UAAW4F,EAAU5F,aAAa+B,KIuDpB8D,CAAkB,CAACP,gBAAAA,EAAiBtG,mBAAAA,IAAsB,CAC9FsG,EACAtG,KAGE,WAACsC,EAAD,cAAawE,IAAiBC,EAAAA,EAAAA,GAAsB,CACtDlF,MAAAA,EACAmF,KAAM9B,EACN+B,oBAAqBN,EACrBO,cAAelH,EACfmH,QAASjB,IAGb,OACI,yBAAK7J,UAAWe,GAAAA,CAAW1B,EAAOsI,SAAU3H,GAAY,iBAAe,sBACnE,kBAAC,EAAD,CAAgB4C,MAAOA,EAAOC,SAAUA,EAAUC,uBAxEvCiI,IACf3C,IACAM,EAAgBqC,EAAMC,gBAsEmEnJ,SAAUA,IAC/F,kBAACoJ,EAAA,EAAD,CACIN,KAAM9B,EACNqC,SAAUzC,EACVqC,QAASjB,EACTsB,SAAUrC,EACV5I,MAAOiD,IAAAA,KAAU,oBACjBuG,eAAgBA,EAChB0B,gBAnGgB,IAoGhBC,qBAAsBZ,EACtBa,aAAc,CAACC,WAAY,QAASC,SAAU,UAC9CzB,eAAgBA,EAChB1B,oBAAqBA,EACrBC,oBAAqBA,GAErB,kBAAC,EAAD,CACI9C,MAAOA,EACPQ,YAAaiE,EACbtG,mBAAoBA,EACpBhC,MAAO+H,EACP+B,OAjHW,IAkHXxF,WAAYA,EACZC,aAAcA,U,2DCnIlC,MAGA,EAH0BwF,GAAqBC,IAC3CC,EAAAA,EAAAA,GAAYC,EAAAA,EAAcH,EAAiBC,I,8LCA/C,MAAMG,EAAgB,QAAC,SAACC,EAAUC,YAAY,GAACpM,GAAxB,UAA6BqM,GAA9B,QAA8C,GAAErM,KAAMmM,MAAaE,MA4BzF,EA1BgC,KAC5B,MAAOC,EAAmBC,IAAwB3L,EAAAA,EAAAA,UAAS,IACrD4L,GAAyBpC,EAAAA,EAAAA,QAAO,IAIhCqC,GAAqBzD,EAAAA,EAAAA,cACvB0D,EAAAA,EAAAA,MAAS,KACLH,E,8UAAqB,CAAD,GAAKC,EAAuBhC,aAEpD,IAEEmC,GAAoB3D,EAAAA,EAAAA,cAAY,KAClCwD,EAAuBhC,QAAU,KAClC,IASH,MAAO,CAACoC,yBAPwB5D,EAAAA,EAAAA,cAAYQ,EAAAA,EAAAA,MAAK0C,GAAenJ,EAAAA,EAAAA,MAAK8J,EAAAA,GAAIP,IAAqB,CAACA,IAO9DQ,qBALL9D,EAAAA,EAAAA,cACxBvD,EAAAA,EAAAA,QAAMsH,EAAAA,EAAAA,UAAQvD,EAAAA,EAAAA,OAhBQ,CAACvC,EAAKjE,KAC5BwJ,EAAuBhC,QAAQvD,GAAOjE,IAeAyJ,GAAqB,CAACP,EAAe3D,EAAAA,YAC3E,IAGkDoE,kBAAAA,K,uHC3BnD,MAAM1N,GAAYC,E,SAAAA,IAAW,KAAM,CACtC8N,OAAQ,CACJC,WAAY,cCKdC,EAAoB,IAAqC,IAApC,SAACf,EAAD,SAAWgB,EAAX,UAAqB/M,GAAe,EAC3D,MAAMX,EAASR,KACT,kBAACmO,EAAD,oBAAoBC,EAApB,kBAAyCC,IAAqBC,EAAAA,EAAAA,YAAWC,EAAAA,GAEzEC,EAAmBJ,EAAoBF,GACvCO,EAAiBJ,EAAkBnB,GAEzC,OACI,kBAACwB,EAAA,EAAD,CACIvN,UAAWe,GAAAA,CAAWf,EAAW,CAAC,CAACX,EAAOuN,SAAUS,IACpDG,QAASF,EACTtK,QAAUyK,IACNT,EAAkBjB,GAClB0B,EAAEC,sBAMlBZ,EAAkBa,UAAY,CAC1B5B,SAAU6B,IAAAA,OACVb,SAAUa,IAAAA,OACV5N,UAAW4N,IAAAA,QAGf,W,8GC3BA,MAAMC,EAAmB,IAAoD,IAAnD,eAACC,EAAgB3J,SAAU4J,GAAwB,EAAfC,E,kXAAe,kCACzE,MAAMC,GAAUjE,EAAAA,EAAAA,QAAO,OAEjB,SAAC+C,EAAD,SAAWhB,EAAX,WAAqBC,EAArB,UAAiCC,GAAa+B,EAC9CE,EAAmBJ,EAAe,CAAC/B,SAAAA,EAAUE,UAAAA,EAAWD,WAAAA,IAExDmC,EAAmB,IAAMF,EAAQ7D,SAAW8D,EAAiBD,EAAQ7D,QAAQgE,cAInF,OAFAC,EAAAA,EAAAA,GAAmBF,EAAkB,CAACpB,EAASuB,WAG3C,6BACI,kBAAC,IAAD,CAAqBC,cAAc,EAAMC,SAAUL,IACnD,kBAAC,EAAAM,QAAD,CAASC,QAAST,GAAUF,KAKxCF,EAAiBF,UAAY,CACzBG,eAAgBF,IAAAA,KAChBzJ,SAAUyJ,IAAAA,MAGd,W,kGC5BO,MAAM/O,GAAYC,E,SAAAA,GAAW,CAChC6P,eAAgB,CACZtN,OAAQ,WAEZuN,WAAY,CACRC,UAAW,uB,gNCMnB,MAaA,EAbuB,IAA0D,IAAzD,OAACrB,GAAS,EAAV,aAAiBsB,GAAwC,EAAvBzO,E,kXAAuB,8BAC7E,MAAMhB,EAASR,IACTkQ,EAAc,CAChBhQ,KAAMiQ,EAAAA,EACNhP,UAAWX,EAAOsP,eAClBM,cAAelO,GAAAA,CAAW,CAAC,CAAC1B,EAAOuP,YAAapB,KAE9C0B,EAAe,CACjBJ,aAAcA,GAElB,OAAO,kBAAC1L,EAAA,EAAD,KAAgC2L,EAAiBG,EAAkB7O,M,s7BCrB9E,MAEaxB,GAAYC,E,SAAAA,IAAYqQ,IAAD,CAChCC,KAAM,CACF5N,QAAS,OACTgB,KAAM,WACN6M,SAAU,SACVC,cAAe,SACf7N,WAAY,SACZ8N,eAAgB,SAChB7N,QAAS,OACTS,SAAU,OACVsJ,OAAQ,OACR+D,UAAW,QACX1H,UAAW,aACX,eAAgB,CACZ0H,UAAW,SAEf,UAAW,CACPtN,MAAOiN,EAAMM,QAAQvI,KAAKwI,QAC1BzN,SAAU,OACV6D,WAAY,IACZxE,WAAY,OACZqO,cAAe,SACfpN,UAAW,UAEf,mBAAoB,CAChBL,MAAOiN,EAAMM,QAAQvI,KAAK0I,UAC1B3N,SAAU,OACV6D,WAAY,IACZxE,WAAY,OACZqO,cAAe,SACfpN,UAAW,SACXsN,WAAY,QAGpBC,WAAY,GACZC,SAAU,CACNC,WAAY,EACZrO,MAAO,QACP8J,OAAQ,QACR/J,QAAS,OAEbuO,KAAM,CACFtO,MAAO,QACP8J,OAAQ,SAEZyE,QAAS,CACL1O,QAAS,OACT8N,cAAe,SACf7N,WAAY,SACZxC,SAnDS,IAoDTkR,UAAW,QAEfjJ,KAAM,GACNkJ,cAAe,GACfC,OAAQ,CACJb,UAAW,GACX5H,SAAU,GACV3I,SA3DS,IA4DTyC,QAAS,YACTqG,aAAc,MACduI,UACI,qHACJrO,SAAU,OACV6D,WAAY,IACZxE,WAAY,OACZ6O,UAAW,YC1DZ,IAAKI,G,SAAAA,GAAAA,EAAAA,KAAAA,OAAAA,EAAAA,SAAAA,WAAAA,EAAAA,MAAAA,Q,CAAAA,IAAAA,EAAAA,KAML,MAAMC,EAAoB,CAC7BC,eChBoEC,GAEhE,2BACI/O,MAAO,IACP8J,OAAQ,IACRkF,QAAQ,cACRC,MAAM,6BACNC,WAAW,gCACPH,GAEJ,8BACI,oCACII,GAAG,MACHC,GAAG,OACHC,GAAG,MACHC,GAAG,OACHC,EAAE,UACFC,kBAAkB,oCAClBvR,GAAG,6BAEH,0BAAMwR,UAAU,UAAUC,YAAa,GAAKC,OAAO,OACnD,0BAAMF,UAAU,UAAUC,YAAa,EAAGC,OAAO,UAErD,oCACIR,GAAG,MACHC,GAAG,WACHC,GAAG,MACHC,GAAG,WACHC,EAAE,UACFC,kBAAkB,uCAClBvR,GAAG,6BAEH,0BAAMwR,UAAU,UAAUC,YAAa,GAAKC,OAAO,OACnD,0BAAMF,UAAU,UAAUC,YAAa,EAAGC,OAAO,UAErD,oCACIR,GAAG,MACHC,GAAG,WACHC,GAAG,MACHC,GAAG,WACHC,EAAE,UACFC,kBAAkB,sCAClBvR,GAAG,6BAEH,0BAAMwR,UAAU,OAAOE,OAAO,OAC9B,0BAAMF,UAAU,UAAUC,YAAa,IAAMC,OAAO,WACpD,0BAAMF,UAAU,UAAUC,YAAa,EAAGC,OAAO,UAErD,oCAAgBC,GAAG,MAAMC,GAAG,WAAWC,GAAG,MAAMC,GAAG,UAAU9R,GAAG,6BAC5D,0BAAMwR,UAAU,UAAUE,OAAO,OACjC,0BAAMF,UAAU,UAAUC,YAAa,EAAGC,OAAO,UAErD,4BACIK,EAAE,SACFC,EAAE,SACFjQ,MAAM,SACN8J,OAAO,SACPoG,YAAY,oBACZjS,GAAG,6BAEH,oCAAgBkS,aAAc,GAAIC,GAAG,mBAEzC,4BAAQnS,GAAG,4BAA4BkR,GAAI,IAAKC,GAAI,IAAKG,EAAG,OAEhE,uBAAGc,OAAO,OAAOC,YAAa,EAAGC,KAAK,OAAOC,SAAS,WAClD,0BAAMvS,GAAG,4BAA4BsS,KAAK,QACtC,yBAAKE,UAAU,gCAEnB,yBAAKC,YAAa,GAAKH,KAAK,UAAUE,UAAU,+BAChD,uBAAGE,KAAK,mCACJ,uBAAGzD,UAAU,oBACT,uBAAG0D,QAAS,GAAKN,YAAa,EAAGC,KAAK,QAClC,0BAAMM,EAAE,+HACR,0BACIA,EAAE,uIACFD,QAAS,MAGjB,uBAAGN,YAAa,EAAGC,KAAK,OAAOrD,UAAU,4BACrC,6BAASqD,KAAK,UAAUK,QAAS,GAAKzB,GAAI,QAASC,GAAI,MAAO0B,GAAI,MAAOC,GAAI,QAC7E,6BAASR,KAAK,UAAUK,QAAS,GAAKzB,GAAI,QAASC,GAAI,MAAO0B,GAAI,MAAOC,GAAI,QAC7E,0BACIF,EAAE,mJACFN,KAAK,YAET,0BACIM,EAAE,yEACFN,KAAK,UACLK,QAAS,KAEb,0BACIC,EAAE,iFACFN,KAAK,UACLK,QAAS,MAEb,0BACIC,EAAE,+EACFN,KAAK,UACLK,QAAS,MAGjB,0BACIL,KAAK,UACLK,QAAS,GACTZ,EAAG,OACHC,EAAG,MACHjQ,MAAO,OACP8J,OAAQ,OACRgH,GAAI,QAER,uBAAGR,YAAa,EAAGC,KAAK,OAAOrD,UAAU,4BACrC,6BAASqD,KAAK,UAAUK,QAAS,GAAKzB,GAAI,QAASC,GAAI,MAAO0B,GAAI,MAAOC,GAAI,QAC7E,6BAASR,KAAK,UAAUK,QAAS,GAAKzB,GAAI,QAASC,GAAI,MAAO0B,GAAI,MAAOC,GAAI,QAC7E,0BAAMR,KAAK,UAAUP,EAAG,EAAGC,EAAG,MAAOjQ,MAAO,OAAQ8J,OAAQ,OAAQgH,GAAI,SACxE,0BACID,EAAE,yEACFN,KAAK,UACLK,QAAS,KAEb,0BACIC,EAAE,gFACFN,KAAK,UACLK,QAAS,MAEb,0BACIC,EAAE,iFACFN,KAAK,UACLK,QAAS,MAGjB,uBAAGN,YAAa,EAAGC,KAAK,OAAOrD,UAAU,4BACrC,6BAASqD,KAAK,UAAUK,QAAS,GAAKzB,GAAI,QAASC,GAAI,MAAO0B,GAAI,MAAOC,GAAI,QAC7E,6BAASR,KAAK,UAAUK,QAAS,GAAKzB,GAAI,QAASC,GAAI,MAAO0B,GAAI,MAAOC,GAAI,QAC7E,0BACIF,EAAE,mJACFN,KAAK,YAET,0BACIM,EAAE,0EACFN,KAAK,UACLK,QAAS,KAEb,0BACIC,EAAE,gFACFN,KAAK,UACLK,QAAS,MAEb,0BACIC,EAAE,+EACFN,KAAK,UACLK,QAAS,QAKzB,uBAAGD,KAAK,mCACJ,0BACIJ,KAAK,UACLM,EAAE,sGAEN,0BACIA,EAAE,sFACFH,YAAa,GACbH,KAAK,SAET,0BACIM,EAAE,qMACFN,KAAK,YAET,0BACIM,EAAE,6LACFN,KAAK,UACLK,QAAS,KAEb,0BACIC,EAAE,kMACFH,YAAa,GACbH,KAAK,SAET,2BACI,0BACIA,KAAK,kCACLK,QAAS,KACTvN,OAAO,kCACPwN,EAAE,4BACF3D,UAAU,+BAEd,0BACIqD,KAAK,kCACLK,QAAS,GACTC,EAAE,oCACF3D,UAAU,+BAEd,0BACIqD,KAAK,kCACLK,QAAS,GACTC,EAAE,oCACF3D,UAAU,+BAEd,0BACIqD,KAAK,kCACLM,EAAE,oCACF3D,UAAU,+BAEd,0BAAMqD,KAAK,OAAOK,QAAS,KAAOC,EAAE,yDAExC,0BAAMN,KAAK,UAAUM,EAAE,qDACvB,0BAAMN,KAAK,UAAUM,EAAE,qDACvB,0BAAMN,KAAK,UAAUM,EAAE,uDD/LvCG,kBEjBkEjC,GAE9D,2BAAK/O,MAAO,IAAK8J,OAAQ,IAAKkF,QAAQ,cAAcuB,KAAK,OAAOtB,MAAM,8BAAiCF,GACnG,4BAAQI,GAAI,IAAKC,GAAI,IAAKG,EAAG,IAAKgB,KAAK,UAAUG,YAAa,KAC9D,0BACIzS,GAAG,0BACH4G,MAAO,CACHoM,SAAU,SAEdC,UAAU,iBACVlB,EAAG,EACHC,EAAG,EACHjQ,MAAO,IACP8J,OAAQ,KAER,4BAAQqF,GAAI,IAAKC,GAAI,IAAKG,EAAG,IAAKgB,KAAK,UAE3C,uBAAGI,KAAK,iCACJ,0BACIH,SAAS,UACTW,SAAS,UACTN,EAAE,wBACFN,KAAK,sDAET,0BACIK,QAAS,IACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,0EACFN,KAAK,sDAET,0BACIK,QAAS,IACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,0EACFN,KAAK,SAET,0BACIC,SAAS,UACTW,SAAS,UACTN,EAAE,0EACFN,KAAK,SAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,oEACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,+DACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,iEACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,4DACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,iEACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,4DACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,iEACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,4DACFN,KAAK,YAET,4BAAQpB,GAAI,GAAIC,GAAI,GAAIG,EAAG,EAAGgB,KAAK,YACnC,4BAAQpB,GAAI,GAAIC,GAAI,GAAIG,EAAG,EAAGgB,KAAK,YACnC,4BAAQpB,GAAI,IAAKC,GAAI,IAAKG,EAAG,EAAGgB,KAAK,YACrC,4BAAQpB,GAAI,IAAKC,GAAI,IAAKG,EAAG,EAAGgB,KAAK,YACrC,4BAAQpB,GAAI,GAAIC,GAAI,IAAKG,EAAG,EAAGgB,KAAK,YACpC,4BAAQpB,GAAI,GAAIC,GAAI,IAAKG,EAAG,EAAGgB,KAAK,YACpC,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,iEACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,4DACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,kEACFN,KAAK,YAET,0BACIK,QAAS,IACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,uCACFN,KAAK,SAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,yEACFN,KAAK,SAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,2GACFN,KAAK,aAGb,8BACI,oCACItS,GAAG,8CACH2R,IAAK,GACLC,GAAI,EACJC,IAAK,GACLC,GAAI,IACJqB,cAAc,kBAEd,0BAAM3B,UAAU,UAAUC,YAAa,MACvC,0BAAMC,OAAQ,EAAGF,UAAU,aAE/B,oCACIxR,GAAG,8CACH2R,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,OACJqB,cAAc,kBAEd,0BAAM1B,YAAa,MACnB,0BAAMC,OAAQ,OFxJ9B0B,QGlBwDtC,GAEpD,2BACI/O,MAAO,IACP8J,OAAQ,IACRkF,QAAQ,cACRC,MAAM,6BACNC,WAAW,gCACPH,GAEJ,8BACI,oCAAgBa,GAAG,MAAMC,GAAG,KAAKC,GAAG,MAAMC,GAAG,OAAO9R,GAAG,iBACnD,0BAAMwR,UAAU,UAAUC,YAAa,EAAGC,OAAO,OACjD,0BAAMF,UAAU,UAAUE,OAAO,UAErC,oCAAgBC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAU9R,GAAG,iBACnE,0BAAMwR,UAAU,OAAOC,YAAa,EAAGC,OAAO,OAC9C,0BAAMF,UAAU,OAAOE,OAAO,UAElC,oCAAgBC,GAAG,MAAMC,GAAG,KAAKC,GAAG,MAAMC,GAAG,OAAO9R,GAAG,iBACnD,0BAAMwR,UAAU,UAAUE,OAAO,OACjC,0BAAMF,UAAU,UAAUE,OAAO,UAErC,4BACIK,EAAE,QACFC,EAAE,QACFjQ,MAAM,SACN8J,OAAO,OACPoG,YAAY,oBACZjS,GAAG,iBAEH,8BAAUqT,GAAI,EAAGC,GAAI,EAAGnB,GAAG,cAAcoB,OAAO,uBAChD,oCAAgBrB,aAAc,EAAGC,GAAG,qBAAqBoB,OAAO,qBAChE,mCACIC,OAAO,4CACPzT,KAAK,SACLoS,GAAG,mBACHoB,OAAO,uBAEX,iCACI,iCAAapB,GAAG,uBAChB,iCAAaA,GAAG,oBAGxB,4BAAQnS,GAAG,gBAAgBkR,GAAI,IAAKC,GAAI,IAAKG,EAAG,OAEpD,uBAAGc,OAAO,OAAOC,YAAa,EAAGC,KAAK,OAAOC,SAAS,WAClD,0BAAMvS,GAAG,gBAAgBsS,KAAK,QAC1B,yBAAKE,UAAU,oBAEnB,yBAAKC,YAAa,GAAKH,KAAK,UAAUE,UAAU,mBAChD,0BAAMF,KAAK,sBAAsBI,KAAK,sBAAsBE,EAAE,oBAC9D,uBAAGF,KAAK,uBACJ,uBAAGzD,UAAU,oBACT,uBAAG0D,QAAS,GAAKN,YAAa,EAAGC,KAAK,QAClC,0BAAMG,YAAa,GAAKE,QAAS,GAAKC,EAAE,sCACxC,0BAAMA,EAAE,oJAEZ,uBAAGP,YAAa,EAAGC,KAAK,OAAOrD,UAAU,4BACrC,6BAASqD,KAAK,UAAUK,QAAS,GAAKzB,GAAI,QAASC,GAAI,MAAO0B,GAAI,MAAOC,GAAI,OAC7E,6BAASR,KAAK,UAAUK,QAAS,GAAKzB,GAAI,QAASC,GAAI,MAAO0B,GAAI,MAAOC,GAAI,OAC7E,0BACIF,EAAE,2GACFN,KAAK,YAET,0BACIM,EAAE,6EACFN,KAAK,UACLK,QAAS,KAEb,0BACIC,EAAE,iFACFN,KAAK,UACLK,QAAS,MAEb,0BACIC,EAAE,+EACFN,KAAK,UACLK,QAAS,MAGjB,0BACIL,KAAK,UACLK,QAAS,GACTZ,EAAG,OACHC,EAAG,MACHjQ,MAAO,OACP8J,OAAQ,OACRgH,GAAI,QAER,uBAAGR,YAAa,EAAGC,KAAK,OAAOrD,UAAU,0BACrC,6BAASqD,KAAK,UAAUK,QAAS,GAAKzB,GAAI,QAASC,GAAI,MAAO0B,GAAI,MAAOC,GAAI,OAC7E,6BAASR,KAAK,UAAUK,QAAS,GAAKzB,GAAI,QAASC,GAAI,MAAO0B,GAAI,MAAOC,GAAI,OAC7E,0BAAMR,KAAK,UAAUP,EAAG,EAAGC,EAAG,MAAOjQ,MAAO,OAAQ8J,OAAQ,OAAQgH,GAAI,QACxE,0BACID,EAAE,6EACFN,KAAK,UACLK,QAAS,KAEb,0BACIC,EAAE,iFACFN,KAAK,UACLK,QAAS,MAEb,0BACIC,EAAE,iFACFN,KAAK,UACLK,QAAS,MAGjB,uBAAGN,YAAa,EAAGC,KAAK,OAAOrD,UAAU,6BACrC,6BAASqD,KAAK,UAAUK,QAAS,GAAKzB,GAAI,QAASC,GAAI,MAAO0B,GAAI,MAAOC,GAAI,OAC7E,6BAASR,KAAK,UAAUK,QAAS,GAAKzB,GAAI,QAASC,GAAI,MAAO0B,GAAI,MAAOC,GAAI,OAC7E,0BACIF,EAAE,2GACFN,KAAK,YAET,0BACIM,EAAE,8EACFN,KAAK,UACLK,QAAS,KAEb,0BACIC,EAAE,gFACFN,KAAK,UACLK,QAAS,MAEb,0BACIC,EAAE,+EACFN,KAAK,UACLK,QAAS,QAKzB,uBAAGD,KAAK,uBACJ,0BACIE,EAAE,qKACFN,KAAK,sBACLK,QAAS,GACT1D,UAAU,+BAEd,0BACI2D,EAAE,0IACFN,KAAK,sBACLK,QAAS,GACT1D,UAAU,qBAEd,uBAAG7J,OAAO,sBAAsBiN,YAAa,EAAGC,KAAK,OAAOrD,UAAU,oBAClE,0BACI2D,EAAE,qXACFN,KAAK,YAET,0BACIM,EAAE,qPACFH,YAAa,GACbH,KAAK,UAGb,0BACIM,EAAE,2IACFN,KAAK,UACLK,QAAS,GACT/L,MAAO,CACH6M,aAAc,gBAGtB,0BACIb,EAAE,iyBACFH,YAAa,IACbH,KAAK,OACL1L,MAAO,CACH6M,aAAc,aAGtB,0BACIb,EAAE,iyBACFH,YAAa,IACbH,KAAK,eH/JzBoB,MInBuD5C,GAEnD,2BAAK/O,MAAO,GAAI8J,OAAQ,GAAIkF,QAAQ,YAAYuB,KAAK,OAAOtB,MAAM,8BAAiCF,GAC/F,0BACI9Q,GAAG,eACH4G,MAAO,CACHoM,SAAU,SAEdC,UAAU,iBACVlB,EAAG,EACHC,EAAG,EACHjQ,MAAO,GACP8J,OAAQ,IAER,0BAAM+G,EAAE,qEAAqEN,KAAK,UAEtF,uBAAGI,KAAK,sBACJ,0BACIE,EAAE,qEACFN,KAAK,UACLG,YAAa,KAEjB,0BACIE,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,gJACFN,KAAK,SAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,qIACFN,KAAK,SAET,0BACIM,EAAE,wIACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,6HACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,0HACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,uHACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,wHACFN,KAAK,YAET,0BAAMM,EAAE,uEAAuEN,KAAK,YACpF,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,4vBACFN,KAAK,YAET,0BACIC,SAAS,UACTW,SAAS,UACTN,EAAE,kbACFN,KAAK,YAET,0BACIM,EAAE,6JACFN,KAAK,YAET,0BACIC,SAAS,UACTW,SAAS,UACTN,EAAE,gHACFN,KAAK,YAET,0BAAMM,EAAE,kEAAkEN,KAAK,YAC/E,0BACIK,QAAS,GACTC,EAAE,kEACFN,KAAK,YAET,0BACIK,QAAS,GACTC,EAAE,kEACFN,KAAK,YAET,0BAAMK,QAAS,GAAKC,EAAE,iEAAiEN,KAAK,YAC5F,0BAAMM,EAAE,iEAAiEN,KAAK,YAC9E,0BAAMK,QAAS,GAAKC,EAAE,iEAAiEN,KAAK,YAC5F,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,2ZACFN,KAAK,YAET,0BACIC,SAAS,UACTW,SAAS,UACTN,EAAE,mlCACFN,KAAK,YAET,0BACIC,SAAS,UACTW,SAAS,UACTN,EAAE,uEACFN,KAAK,YAET,0BACIC,SAAS,UACTW,SAAS,UACTN,EAAE,sNACFN,KAAK,YAET,0BAAMM,EAAE,uEAAuEN,KAAK,YACpF,uBAAGlN,OAAO,8BACN,0BACIwN,EAAE,6JACFN,KAAK,UAGb,0BACIM,EAAE,6JACFN,KAAK,YAET,0BACIK,QAAS,IACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,oTACFN,KAAK,YAET,0BACIK,QAAS,GACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,qTACFN,KAAK,YAET,0BACIK,QAAS,IACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,qUACFN,KAAK,YAET,0BACIM,EAAE,4JACFN,KAAK,YAET,0BACIK,QAAS,IACTJ,SAAS,UACTW,SAAS,UACTN,EAAE,sFACFN,KAAK,mCAET,uBAAGlN,OAAO,8BACN,0BAAMwN,EAAE,kEAAkEN,KAAK,UAEnF,0BAAMM,EAAE,kEAAkEN,KAAK,SAC/E,uBAAGlN,OAAO,8BACN,0BACIwN,EAAE,gHACFN,KAAK,UAGb,0BACIM,EAAE,gHACFN,KAAK,UAGb,8BACI,4BACItS,GAAG,uBACH+R,EAAG,OACHC,EAAG,OACHjQ,MAAO,OACP8J,OAAQ,OACRoG,YAAY,iBACZ0B,0BAA0B,QAE1B,6BAASC,aAAc,EAAGL,OAAO,uBACjC,mCAAepB,GAAG,cAAcpS,KAAK,SAASyT,OAAO,8CACrD,8BAAUF,GAAI,IACd,oCAAgBpB,aAAc,IAC9B,mCAAenS,KAAK,SAASyT,OAAO,8CACpC,6BAASK,KAAK,SAASC,IAAI,qBAAqBP,OAAO,uBACvD,6BAASM,KAAK,SAAS1B,GAAG,gBAAgB2B,IAAI,qBAAqBP,OAAO,WAE9E,4BACIvT,GAAG,uBACH+R,EAAG,OACHC,EAAG,OACHjQ,MAAO,OACP8J,OAAQ,OACRoG,YAAY,iBACZ0B,0BAA0B,QAE1B,6BAASC,aAAc,EAAGL,OAAO,uBACjC,mCAAepB,GAAG,cAAcpS,KAAK,SAASyT,OAAO,8CACrD,8BAAUF,GAAI,IACd,oCAAgBpB,aAAc,IAC9B,mCAAenS,KAAK,SAASyT,OAAO,8CACpC,6BAASK,KAAK,SAASC,IAAI,qBAAqBP,OAAO,uBACvD,6BAASM,KAAK,SAAS1B,GAAG,gBAAgB2B,IAAI,qBAAqBP,OAAO,WAE9E,4BACIvT,GAAG,uBACH+R,EAAG,OACHC,EAAG,OACHjQ,MAAO,OACP8J,OAAQ,OACRoG,YAAY,iBACZ0B,0BAA0B,QAE1B,6BAASC,aAAc,EAAGL,OAAO,uBACjC,mCAAepB,GAAG,cAAcpS,KAAK,SAASyT,OAAO,8CACrD,8BAAUF,GAAI,IACd,oCAAgBpB,aAAc,IAC9B,mCAAenS,KAAK,SAASyT,OAAO,8CACpC,6BAASK,KAAK,SAASC,IAAI,qBAAqBP,OAAO,uBACvD,6BAASM,KAAK,SAAS1B,GAAG,gBAAgB2B,IAAI,qBAAqBP,OAAO,WAE9E,oCACIvT,GAAG,2BACH2R,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJqB,cAAc,kBAEd,0BAAM1B,YAAa,IACnB,0BAAMC,OAAQ,QJxLlC,EAlCmB,IAQN,IARO,QAChBqC,EAAUpD,EAAqBN,KADf,aAEhB2D,EAAepD,EAAkBC,eAFjB,KAGhBvJ,EAHgB,cAIhBkJ,EAJgB,YAKhByD,EALgB,QAMhB7Q,EAAUmF,EAAAA,SANM,OAOhB2L,GACS,EACT,MAAMzU,EAASR,IACTkV,EAAaD,GAAUD,EAE7B,OACI,yBAAK7T,UAAWe,GAAAA,CAAW1B,EAAO+P,KAAM/P,EAAQ,QAAOsU,OACnD,kBAACC,EAAD,CAAc5T,UAAWX,EAAQ,GAAEsU,OACnC,yBAAK3T,UAAWX,EAAO6Q,SACnB,kBAAC,EAAA8D,WAAD,CAAYL,QAAQ,KAAKM,QAAS,CAACC,GAAI7U,EAAO6H,OACzCA,GAEJkJ,GACG,kBAAC,EAAA4D,WAAD,CAAYL,QAAQ,YAAYM,QAAS,CAACE,UAAW9U,EAAO+Q,gBACvDA,IAIZ2D,GACG,kBAAC,EAAAK,OAAD,CAAQpU,UAAWX,EAAOgR,OAAQsD,QAAQ,YAAYzR,MAAM,UAAUc,QAASA,GAC1E6Q,M,4GK3DrB,MAmBA,GAnBkB/U,EAAAA,EAAAA,IAAW,KAAM,CAC/BuV,IAAK,CACD7S,QAAS,OACT8S,aAAc,QAElBC,QAAS,CACLC,aAAc,OACdhT,QAAS,QAEbiT,UAAW,CACPC,SAAU,IACVnT,UAAW,IACXY,SAAU,UAEdyK,OAAQ,CACJC,WAAY,c,kCCfpB,MAAMpB,EAAS,OAuBf,GArBkB3M,EAAAA,EAAAA,IAAYqQ,IAAD,CACzBwF,+BAAgC,CAC5BnT,QAAS,OACTC,WAAY,SACZvC,YAAa,OACbyC,MAAO,OACPM,SAAU,OACVC,MAAOiN,EAAMM,QAAQvI,KAAK0I,UAC1B5Q,UAAWyM,GAEfmJ,eAAgB,CACZpT,QAAS,OACTC,WAAY,SACZQ,SAAU,OACVC,MAAOiN,EAAMM,QAAQvI,KAAK0I,UAC1BjO,MAAO,OACPkT,WAAY,OACZ7V,UAAWyM,OCbbqJ,EAAwB,IAA0B,IAAzB,UAAC9U,EAAD,QAAY+U,GAAa,EACpD,MAAM1V,EAASR,IACf,OACI,yBAAKmB,UAAWe,GAAAA,CAAW1B,EAAOsV,+BAAgC3U,IAC7D+U,GAAWA,EAAQC,UAAWC,EAAAA,EAAAA,GAAWF,EAAQC,UAAY7R,IAAAA,KAAU,WAKpF2R,EAAsBnH,UAAY,CAC9B3N,UAAW4N,IAAAA,OACXmH,QAASnH,IAAAA,QAGb,U,eCdA,MAAMsH,EAAiB,IAA0B,IAAzB,UAAClV,EAAD,QAAY+U,GAAa,EAC7C,MAAM1V,EAASR,IACf,OACI,yBAAKmB,UAAWe,GAAAA,CAAW1B,EAAOuV,eAAgB5U,IAC7C+U,GAAWA,EAAQ/P,QAASmQ,EAAAA,EAAAA,KAAqBJ,EAAQ/P,QAAU7B,IAAAA,KAAU,YAK1F+R,EAAevH,UAAY,CACvB3N,UAAW4N,IAAAA,OACXmH,QAASnH,IAAAA,QAGb,U,eCZA,MAAMwH,EAAkB,IAYlB,IAZmB,QACrBnB,EAAU,GADW,QAErBc,EAFqB,gBAGrBM,EAHqB,uBAIrBC,EAAyBR,EAJJ,2BAKrBS,EALqB,wBAMrBC,EAA0BN,EANL,sBAOrBO,EAPqB,iBAQrBC,EARqB,kBASrBC,EATqB,uBAUrBC,EAAyB,IAEvB,EADCC,E,kXACD,oNACF,MAAMxW,EAASR,IAEf,OACI,yBAAKmB,UAAWe,GAAAA,CAAW1B,EAAOgV,IAAKJ,EAAQ7E,OAC3C,kBAACkG,EAAD,CACItV,UAAWiU,EAAQ6B,uBACnBD,WAAYA,EACZd,QAASM,IAEb,yBAAKrV,UAAWe,GAAAA,CAAW1B,EAAOkV,QAASN,EAAQ8B,6BAC/C,kBAACR,EAAD,CACIK,uBAAwBA,EACxBC,WAAYA,EACZd,QAASA,KAGjB,yBAAK/U,UAAWe,GAAAA,CAAW1B,EAAOkV,QAASN,EAAQ+B,0BAC/C,kBAACR,EAAD,CACIS,kBAAmBN,EACnBE,WAAYA,EACZd,QAASA,KAGjB,yBAAK/U,UAAWe,GAAAA,CAAW1B,EAAOkV,QAASlV,EAAOoV,UAAWR,EAAQiC,wBACjE,kBAACT,EAAD,CAAuBI,WAAYA,EAAYd,QAASA,KAE5D,yBAAK/U,UAAWe,GAAAA,CAAW1B,EAAOkV,QAASN,EAAQkC,iBAAkB,CAAC,CAAC9W,EAAOuN,SAAUmI,KACpF,kBAACW,EAAD,CAAkBG,WAAYA,EAAYd,QAASA,OAMnEK,EAAgBzH,UAAY,CACxBsG,QAASrG,IAAAA,MAAgB,CACrBwB,KAAMxB,IAAAA,OACNkI,uBAAwBlI,IAAAA,OACxBmI,2BAA4BnI,IAAAA,OAC5BoI,wBAAyBpI,IAAAA,OACzBsI,sBAAuBtI,IAAAA,OACvBuI,iBAAkBvI,IAAAA,SAEtBmH,QAASqB,EAAAA,GACTf,gBAAiBe,EAAAA,GACjBd,uBAAwB1H,IAAAA,YACxB2H,2BAA4B3H,IAAAA,YAC5B4H,wBAAyB5H,IAAAA,YACzB6H,sBAAuB7H,IAAAA,YACvB8H,iBAAkB9H,IAAAA,YAClB+H,kBAAmB/H,IAAAA,OACnBgI,uBAAwBhI,IAAAA,MAAgB,CACpC1F,eAAgB0F,IAAAA,KAChByI,OAAQzI,IAAAA,KACR0I,2BAA4B1I,IAAAA,QAIpC,SAAe7H,EAAAA,EAAAA,MAAKqP,I,8TCzEpB,MAAMmB,EAAwB,IAQxB,IARyB,UAC3BvW,EAD2B,WAE3BwW,EAF2B,SAG3BC,EAH2B,8BAI3BC,EAJ2B,kBAK3Bf,EAL2B,uBAM3BgB,GAEE,EADCC,E,kXACD,uHACF,MAAMC,EAAY,CAAC9B,EAAStO,EAAOgQ,KAC/B,MAAMK,EAAcrQ,EAAQ,GAAIsQ,EAAAA,EAAAA,MAAK,CAACtQ,EAAQ,GAAIgQ,GAAY,KACxDO,EACFvQ,IAAUgQ,EAAS/Q,OACb,CACEkQ,uBAAwBc,GAE1B,GACV,OACI,kBAAC,IAAD,GACI7P,IAAKkO,GAAWA,EAAQnV,GACxBmV,QAASA,EACTM,gBAAiByB,EACjB7C,QAASuC,EACTb,kBAAmBlP,IAAUkQ,EAAyBhB,OAAoB1S,GACtE2T,EACAI,KAKhB,OACI,yBAAKhX,UAAWA,GACXyW,EAASlR,IAAIsR,GACbA,EAAU,KAAMJ,EAAS/Q,OAAQ+Q,KAK9CF,EAAsB5I,UAAY,CAC9B3N,UAAW4N,IAAAA,OACX4I,WAAY5I,IAAAA,MAAgB,CACxBwB,KAAMxB,IAAAA,OACNkI,uBAAwBlI,IAAAA,OACxBmI,2BAA4BnI,IAAAA,OAC5BoI,wBAAyBpI,IAAAA,OACzBsI,sBAAuBtI,IAAAA,OACvBuI,iBAAkBvI,IAAAA,SAEtB6I,SAAU7I,IAAAA,QAAkBwI,EAAAA,IAC5Bd,uBAAwB1H,IAAAA,YACxB2H,2BAA4B3H,IAAAA,YAC5B4H,wBAAyB5H,IAAAA,YACzB6H,sBAAuB7H,IAAAA,YACvB8H,iBAAkB9H,IAAAA,YAClB+H,kBAAmB/H,IAAAA,OACnB+I,uBAAwB/I,IAAAA,OACxB8I,8BAA+B9I,IAAAA,MAAgB,CAC3C1F,eAAgB0F,IAAAA,KAChByI,OAAQzI,IAAAA,KACR0I,2BAA4B1I,IAAAA,QAIpC,SAAe7H,EAAAA,EAAAA,MAAKwQ,I,mGCnEpB,SAAeU,E,QAAAA,GAAYC,EAAAA,I,mRCIZ,SAASC,EAAOzG,GAC3B,MAAM,WACF0G,EADE,SAEFC,EAFE,SAGFlT,EAHE,UAIFwC,EAJE,WAKF2Q,EACAC,aAAa,QAACtD,GANZ,MAOFlR,GACA2N,EAEJ,OACI,kBAAC,EAAA8G,SAAD,GACIxX,UAAWyX,GAAAA,CAAWxD,EAAQyD,OAAQ,CAAC,CAACzD,EAAQ,qBAAsBqD,IACtEK,IAAKN,EACLO,SAAUjR,EACVa,UAAU,OACN4P,GAEJ,kBAAC,EAAAS,SAAD,CAAU3V,MAAM,UAAUwE,QAAS4Q,IACnC,kBAACpU,EAAA,EAAD,CAAsBN,MAAOG,GACzB,yBAAK/C,UAAWiU,EAAQ,iBAAkB9P,KAM1DgT,EAAOxJ,UAAY,CACfxJ,SAAUyJ,IAAAA,KACVwJ,WAAYxJ,IAAAA,MAAgB,CACxBhO,GAAIgO,IAAAA,OAAAA,WACJ/G,IAAK+G,IAAAA,OACL5K,QAAS4K,IAAAA,KAAAA,WACTkK,YAAalK,IAAAA,KAAAA,WACbmK,YAAanK,IAAAA,KAAAA,WACboK,SAAUpK,IAAAA,OAAAA,aACXqK,WACHZ,SAAUzJ,IAAAA,UAAoB,CAC1BA,IAAAA,MAAgB,CAAC,OACjBA,IAAAA,KACAA,IAAAA,MAAgB,CACZxD,QAASwD,IAAAA,IAAAA,eAGjBjH,UAAWiH,IAAAA,KAAAA,WACX0J,WAAY1J,IAAAA,KAAAA,WACZ7K,MAAO6K,IAAAA,OACP2J,YAAa3J,IAAAA,MAAgB,CACzBqG,QAASrG,IAAAA,MAAgB,CACrB8J,OAAQ9J,IAAAA,YCtDpB,MAIA,EAJmB,CACfuJ,OAAMA,G,krBCOV,MAAMtY,GAAYC,EAAAA,EAAAA,IAAYqQ,IAAD,CACzBpM,MAAO,CACHmV,IAAK,EACLC,KAAM,IAEVC,YAAc1H,IAAD,CACTlP,SAAUkP,EAAM0H,aAAe1H,EAAM3N,MAAQ,YAASE,IAE1D,mBAAoB,CAChB6C,WAAY,KAEhBuS,eAAgB,CACZ3W,QAASyN,EAAMmJ,QAAQ,GACvBzS,OAAQsJ,EAAMmJ,QAAQ,IAAM,KAEhCC,kBAAmB,CACf7W,QAASyN,EAAMmJ,QAAQ,GACvBzS,OAAQsJ,EAAMmJ,QAAQ,IAAM,SAIpC,IAAI1Y,EAAK,EAGT,SAAS4Y,EAAY9H,GACjB,MAAM,MACF3N,EADE,UAEF0V,EAFE,WAGFC,EAHE,iBAIFC,EACAC,WAAYC,EACZ5E,QAAS6E,EACTzZ,OAAQ0Z,EACRC,SAAUC,EACVC,cAAeC,EATb,cAUFC,EAAgB,QAEhB1I,EADG2I,E,kXAXP,CAYI3I,EAZJ,kIAcM4I,EAAkBb,EAAYvB,EAAkBwB,EAAaa,EAAAA,EAAcC,EAAAA,GAE1EC,EAAYC,IAAiBlZ,EAAAA,EAAAA,UAAS,IACvCmZ,EAAqB9a,GAAU+a,EAAAA,EAAAA,MAAK,CAAC,WAAYlJ,IACjDmJ,EArBgB,iBAAgBja,IAuBhCgZ,EAAa,EAAH,GACTkB,EACAjB,GAGD5E,GAAU8F,EAAAA,EAAAA,IAAaJ,EAAoBb,GAiB3CzZ,EAAS,EAAH,CACR2a,mBAAqBC,GAAD,KACbA,EADa,CAEhBpU,OAAQ,WAEZ8S,iBAAmBsB,GAAD,KACXA,EADW,CAEdzY,QAASmX,EAAmBsB,EAAKzY,QAAU,SAE/C0Y,eAAiBD,GAAD,KACTA,EADS,CAEZE,WAAY,gDAEbpB,GAGDqB,EAAarX,EACb,CACE8W,QAAAA,EACAQ,eAAgB,EAAF,CACVtX,MAAAA,EACAuX,gBAAiB,CACbC,QAASV,EACTW,UAAQ9J,EAAM9N,QAAS8N,EAAM9N,MAAM8C,cAAgBzC,EACnDjD,UAAWiU,EAAQlR,QAEpB2N,EAAM2J,iBAGf,GAEN,OACI,kBAACf,EAAD,GACImB,SAAO,EACPZ,QAASA,EACTJ,WAAYA,EACZT,SA5CR,SAAsBpW,EAAO8X,GACzBzB,EAAarW,EAAO8X,GACM,kBAAtBA,EAAWC,SACXjB,EAAc,IACdP,EAAkB,GAAI,CAACwB,OAAQ,mBAyC/BzB,cApDR,SAA2BtW,EAA3B,GAA4C,IAAV,OAAC+X,GAAS,EACxCxB,EAAkBvW,EAAO,CAAC+X,OAAAA,IACX,cAAXA,GACAjB,EAAc9W,IAkDdgY,mBAAmB,EACnBC,qBAAqB,EACrB5G,QAASA,EACT2E,WAAYA,EACZvZ,OAAQA,EACR+Z,cAAeA,EACf0B,YAAapC,GACT0B,EACAf,IAKhBb,EAAYuC,aAAe,CACvBtC,WAAW,EACXuC,cAAc,EACdpC,WAAY,GACZ3E,QAAS,GACTmE,YAAa,GACbO,kBAAkB,EAClBO,cAAe,OACfF,SAAU,QAGdR,EAAY7K,UAAY,CAUpB8K,UAAW7K,IAAAA,KAEXoN,aAAcpN,IAAAA,KACdqN,eAAgBrN,IAAAA,KAEhBhL,MAAOgL,IAAAA,QACHA,IAAAA,MAAgB,CACZ7K,MAAO6K,IAAAA,OAAAA,WACPhL,MAAOgL,IAAAA,OAGfsN,QAAStN,IAAAA,QACLA,IAAAA,MAAgB,CACZ7K,MAAO6K,IAAAA,OAAAA,WACPhL,MAAOgL,IAAAA,OAIfoL,SAAUpL,IAAAA,KAEVsL,cAAetL,IAAAA,KAEfwK,YAAaxK,IAAAA,OAEb7K,MAAO6K,IAAAA,OAEP+K,iBAAkB/K,IAAAA,KAElBgL,WAAYhL,IAAAA,MAAgB,CACxBuN,eAAgBvN,IAAAA,KAChBwN,QAASxN,IAAAA,KACTyN,kBAAmBzN,IAAAA,KACnB0N,YAAa1N,IAAAA,KACb2N,UAAW3N,IAAAA,KACX4N,MAAO5N,IAAAA,KACP6N,aAAc7N,IAAAA,KACd8N,oBAAqB9N,IAAAA,KACrB+N,mBAAoB/N,IAAAA,KACpBgO,MAAOhO,IAAAA,KACPiO,iBAAkBjO,IAAAA,KAClBkO,KAAMlO,IAAAA,KACNmO,SAAUnO,IAAAA,KACVoO,WAAYpO,IAAAA,KACZqO,eAAgBrO,IAAAA,KAChBsO,iBAAkBtO,IAAAA,KAClBuO,WAAYvO,IAAAA,KACZwO,oBAAqBxO,IAAAA,KACrByO,gBAAiBzO,IAAAA,KACjB0O,iBAAkB1O,IAAAA,KAClBuJ,OAAQvJ,IAAAA,KACR2O,YAAa3O,IAAAA,KACb4O,gBAAiB5O,IAAAA,KACjB6O,YAAa7O,IAAAA,KACb8O,eAAgB9O,IAAAA,OAGpBqG,QAASrG,IAAAA,MAAgB,CACrB+O,QAAS/O,IAAAA,OACTgP,eAAgBhP,IAAAA,OAChBiP,WAAYjP,IAAAA,OACZkP,iBAAkBlP,IAAAA,OAClBmP,YAAanP,IAAAA,OACbwK,YAAaxK,IAAAA,OACboP,KAAMpP,IAAAA,OACNyK,eAAgBzK,IAAAA,OAChB2K,kBAAmB3K,IAAAA,OACnB8J,OAAQ9J,IAAAA,OACR,mBAAoBA,IAAAA,OACpB7K,MAAO6K,IAAAA,SAMXvO,OAAQuO,IAAAA,MAAgB,CACpByK,eAAgBzK,IAAAA,KAChBqP,UAAWrP,IAAAA,KACX+O,QAAS/O,IAAAA,KACT2K,kBAAmB3K,IAAAA,KACnBzO,MAAOyO,IAAAA,KACPsP,aAActP,IAAAA,KACduP,oBAAqBvP,IAAAA,KACrBoM,mBAAoBpM,IAAAA,KACpBwP,MAAOxP,IAAAA,KACP+K,iBAAkB/K,IAAAA,KAClBsM,eAAgBtM,IAAAA,KAChBoP,KAAMpP,IAAAA,KACNyP,SAAUzP,IAAAA,KACV0P,WAAY1P,IAAAA,KACZiP,WAAYjP,IAAAA,KACZ2P,gBAAiB3P,IAAAA,KACjB4P,iBAAkB5P,IAAAA,KAClBkP,iBAAkBlP,IAAAA,KAClB8J,OAAQ9J,IAAAA,KACRwK,YAAaxK,IAAAA,KACbmP,YAAanP,IAAAA,KACbgP,eAAgBhP,IAAAA,OAGpByM,eAAgBzM,IAAAA,OAChB8K,WAAY9K,IAAAA,KACZwL,cAAexL,IAAAA,OACf6P,iBAAkB7P,IAAAA,OAClB8P,eAAgB9P,IAAAA,KAChB+P,aAAc/P,IAAAA,KACdgQ,SAAUhQ,IAAAA,MAAgB,CAACxD,QAASwD,IAAAA,UAGxC,MC/PA,ED+PA,G,kKE/PO,MAAM/O,GAAYC,E,SAAAA,GAAW,CAChC+e,sBAAuB,CACnBvJ,aAAc,QAElBwJ,SAAU,CACNtc,QAAS,OACT+N,eAAgB,cCmBXwO,GAAoBhY,EAAAA,EAAAA,OAAK,IAA8C,IAA7C,OAACiY,EAAD,UAAShe,EAAT,aAAoBie,GAAyB,EAChF,MAAM5e,EAASR,IACTqf,GAAY/U,EAAAA,EAAAA,UAAQ,KAAMgV,EAAAA,EAAAA,KAAwCH,IAAS,CAACA,IAC5EI,GAAgBC,EAAAA,EAAAA,GAAiB,CAACH,UAAAA,IAClCI,GAAYC,EAAAA,EAAAA,KAAoBP,GAEtC,OACI,kBAACQ,EAAA,WAAD,CAA+B5b,MAAOwb,GAClC,kBAACK,EAAA,EAAD,CACIze,UAAWe,GAAAA,CAAWf,EAAW0e,EAAAA,GACjCV,QAAQC,MAAAA,OAAA,EAAAA,EAAcU,UAAWX,GAEhCC,EACG,kBAACW,EAAA,EAAD,MAEA,oCACI,kBAACC,EAAA,EAAD,CAAuB7e,UAAWX,EAAOwe,wBACzC,kBAACiB,EAAA,EAAD,CACI9e,UAAWX,EAAOye,SAClBiB,IAAKT,EACLU,mBAAmBC,EAAAA,EAAAA,KAAwBC,EAAAA,IAAAA,OAAiC,CACxEZ,UAAAA,IAEJa,WAAYD,EAAAA,IAAAA,eASxCnB,EAAkBqB,YAAc,qB,qGC7ChC,MAkBA,EAjBmB,IAA6C,IAA5C,WAACC,EAAD,UAAarf,EAAb,QAAwBiU,GAAoB,EAC5D,MAAM7U,GAAWG,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,cACvB,IAAC4Y,EAAD,KAAMhgB,IAAgBugB,EAAAA,EAAAA,KAAsBlgB,EAAUigB,IAAe,GACrEpf,EAAa8e,GAAMQ,EAAAA,EAAAA,KAAqBngB,EAAU2f,GAAK,GAAK,GAC5DS,EAAazgB,GAAOe,EAAAA,EAAAA,KALX,6CAK2Cf,GAAQ,KAElE,OACI,kBAAC,IAAD,CACIiB,UAAWA,EACXC,WAAYA,EACZlB,KAAMygB,EACN7L,QAAQ,SACRvT,YAAa6T,M,yDCzBzB,MAEA,EAFe,IAAM,yBAAKzN,MAAO,CAAChE,KAAM,M,smCCiBxC,MAAMid,EAAuB,IAAwD,IAAvD,OAACrM,EAAD,wBAASsM,GAA8C,EAAlBhP,EAAkB,0CACjF,OACI,qCACM0C,GAAU,IAAI7N,KAAKoa,GACjB,yBAAK9Y,IAAK8Y,EAAeZ,IAAK/e,UAAW0f,GACrC,kBAAC,IAAD,GAAmBC,eAAgBA,GAAoBjP,SA+B3E,GAAe3K,EAAAA,EAAAA,OAxBc,IAA2D,IAA1D,SAAC6Z,EAAD,cAAWC,EAAX,UAA0BC,GAAgC,EAAlBpP,EAAkB,8CACpF,MAAM,cAACqP,EAAD,OAAgB3M,EAAhB,wBAAwBsM,GAA2BhP,EACzD,OAAQqP,EAAcpgB,MAClB,KAAKqgB,EAAAA,IAAAA,YACL,KAAKA,EAAAA,IAAAA,eACD,OAAOP,EAAqB,EAAD,CAAEG,SAAAA,EAAUC,cAAAA,EAAeC,UAAAA,GAAcpP,IAExE,KAAKsP,EAAAA,IAAAA,WACD,OACI,yBAAKhgB,UAAW0f,GACZ,kBAAC,IAAD,CACIK,cAAeA,EACfE,gBAAiB7M,EACjB8M,UAAW,CAACC,YAAa,GAAIC,WAAY,GAAIC,YAAa,MAK1E,QACI,OAAOZ,EAAqB,EAAD,GAAK/O,S,+HC7C5C,MAAM4P,GAA2BC,EAAAA,EAAAA,eAAc,MAWlCC,EAA4B,IAAyC,IAAxC,SAACrc,GAAuC,EAA1BuM,E,kXAA0B,iBAC9E,OAAO,kBAAC4P,EAAyBG,SAA1B,CAAmC7d,MAAO8N,GAAQvM,IAGhDuc,EAAqBC,IAC9B,MAAOC,kBAAmBC,GAAWzX,EAAAA,EAAAA,MAAK0X,EAAAA,IAAgBF,EAAAA,OACtDzT,EAAAA,EAAAA,YAAWmT,IAA6B,GAC5C,OAAOK,EAAYE,EAASF,GAAa,IAGhCI,EAA2B,KACpC,MAAM,sBAACC,EAAwB,KAAM7T,EAAAA,EAAAA,YAAWmT,IAA6B,GAC7E,OAAOU,GAGEC,EAAyBN,IAClC,MAAM,sBAACK,EAAwB,GAAzB,wBAA6BE,EAA0BC,EAAAA,KAAQhU,EAAAA,EAAAA,YAAWmT,IAA6B,GACvGc,IAAkBT,KAAeK,EAAsBpd,MAAKJ,EAAAA,EAAAA,MAAKsd,EAAAA,IAAgBH,IACvF,MAAO,CACHS,cAAAA,EACAC,SAAUL,EAAsBtb,OAAS,IAAM0b,EAC/CE,oBAAoB1Y,EAAAA,EAAAA,cAAY,IAAMsY,EAAwBP,GAAW,IAAO,CAC5EA,EACAO,IAEJK,iBAAiB3Y,EAAAA,EAAAA,cAAY,IAAMsY,EAAwBP,GAAW,IAAQ,CAC1EA,EACAO,MAKCM,EAAqBb,IAC9B,MAAM,qBAACc,EAAuBN,EAAAA,GAAxB,kBAA8BO,EAAoB,KAAMvU,EAAAA,EAAAA,YAAWmT,IAA6B,GAEtG,MAAO,CACH3Z,YAFgBga,GAAae,EAAkBtd,MAAKZ,EAAAA,EAAAA,MAAKsd,EAAAA,IAAgBH,IAGzEc,sBAAsB7Y,EAAAA,EAAAA,cAAY,IAAM6Y,EAAqBd,IAAY,CAACA,EAAWc,O,kRCrD7F,SAASE,IAA2Q,OAA9PA,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIxb,EAAI,EAAGA,EAAIyb,UAAUrc,OAAQY,IAAK,CAAE,IAAI0b,EAASD,UAAUzb,GAAI,IAAK,IAAIO,KAAOmb,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQnb,KAAQib,EAAOjb,GAAOmb,EAAOnb,IAAY,OAAOib,GAAkBH,EAASS,MAAMC,KAAMN,WAGhT,QAAgB,QAAC,OACf1iB,EAAS,IADK,EAEXqR,E,kXAFW,sBAGV4R,IAAAA,cAAoB,MAAOX,EAAS,CACxChgB,MAAO,KACP8J,OAAQ,KACRkF,QAAS,YACTC,MAAO,8BACNF,GAAQ4R,IAAAA,cAAoB,OAAQ,CACrC9P,EAAG,kHACHN,KAAM,mBCbR,SAASyP,IAA2Q,OAA9PA,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIxb,EAAI,EAAGA,EAAIyb,UAAUrc,OAAQY,IAAK,CAAE,IAAI0b,EAASD,UAAUzb,GAAI,IAAK,IAAIO,KAAOmb,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQnb,KAAQib,EAAOjb,GAAOmb,EAAOnb,IAAY,OAAOib,GAAkBH,EAASS,MAAMC,KAAMN,WAGhT,QAAgB,QAAC,OACf1iB,EAAS,IADK,EAEXqR,E,kXAFW,sBAGV4R,IAAAA,cAAoB,MAAOX,EAAS,CACxChgB,MAAO,KACP8J,OAAQ,KACRkF,QAAS,YACTC,MAAO,8BACNF,GAAQ4R,IAAAA,cAAoB,OAAQ,CACrC9P,EAAG,kSACHN,KAAM,mBCbR,SAASyP,IAA2Q,OAA9PA,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIxb,EAAI,EAAGA,EAAIyb,UAAUrc,OAAQY,IAAK,CAAE,IAAI0b,EAASD,UAAUzb,GAAI,IAAK,IAAIO,KAAOmb,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQnb,KAAQib,EAAOjb,GAAOmb,EAAOnb,IAAY,OAAOib,GAAkBH,EAASS,MAAMC,KAAMN,WAGhT,QAAgB,QAAC,OACf1iB,EAAS,IADK,EAEXqR,E,kXAFW,sBAGV4R,IAAAA,cAAoB,MAAOX,EAAS,CACxChgB,MAAO,KACP8J,OAAQ,KACRkF,QAAS,YACTuB,KAAM,OACNtB,MAAO,8BACNF,GAAQ4R,IAAAA,cAAoB,OAAQ,CACrCnQ,SAAU,UACVW,SAAU,UACVN,EAAG,kNACHN,KAAM,OACNG,YAAa,UCjBR,IAAKkQ,EAMAC,G,SANAD,GAAAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAAAA,EAAAA,EAAAA,YAAAA,GAAAA,cAAAA,EAAAA,EAAAA,UAAAA,GAAAA,Y,CAAAA,IAAAA,EAAAA,K,SAMAC,GAAAA,EAAAA,MAAAA,QAAAA,EAAAA,QAAAA,U,CAAAA,IAAAA,EAAAA,K,2DCJZ,MAAMC,GAAclC,EAAAA,EAAAA,eAGT,CACCmC,WAAY,OACZC,iBAAkB,SAiBxBC,EAfqB,MACvB,IAAIC,EASJ,MAAO,CACHH,WATe,KACXG,GACAA,KAQJF,iBALsBG,IACtBD,EAAcC,KAODC,GAERC,EAAqB,IAAgD,IAA/C,SAAC7e,GAA8C,EAC9E,OAAO,kBAACse,EAAYhC,SAAb,CAAsB7d,MAAOggB,GAAeze,IAG1C8e,EAAgB,KACzB,MAAMC,GAAc/V,EAAAA,EAAAA,YAAWsV,GAC/B,QAAoBxf,IAAhBigB,EACA,MAAM,IAAIC,MAAM,0DAEpB,OAAOD,G,6eCVX,MAAME,GAAmB7C,EAAAA,EAAAA,eAA4B,MAC/C8C,GAAsB9C,EAAAA,EAAAA,eAA6B,MACnD+C,EAAqB,qBACrBC,EAAqB,qBACrBC,EAAuB,uBACvBC,EAAgB,gBAChBC,EAAsB,sBACtBC,EAA2B,2BAC3BC,GAAmB,mBACnBC,GAAuB,uBAEvBC,GAAU,CACZC,kBAAkBC,EAAAA,EAAAA,IAAqBV,GACvCW,kBAAkBD,EAAAA,EAAAA,IAAqBT,GACvCW,oBAAoBF,EAAAA,EAAAA,IAAqBR,GACzCW,cAAcH,EAAAA,EAAAA,IAAqBP,GACnCW,mBAAmBJ,EAAAA,EAAAA,IAAqBN,GACxCW,uBAAuBL,EAAAA,EAAAA,IAAqBL,GAC5CW,gBAAgBN,EAAAA,EAAAA,IAAqBJ,IACrCW,oBAAoBP,EAAAA,EAAAA,IAAqBH,KAGvCW,GAAmB,CAAClkB,EAAqBqa,KAC3C,OAAQA,EAAOhb,MACX,KAAK2jB,EACD,YAAWhjB,EAAX,CAAkBmkB,sBAAuB9J,EAAO+J,UACpD,KAAKb,GACD,YAAWvjB,EAAX,CAAkBuK,cAAevK,EAAMuK,cAAc8Z,MAAM,EAAGrkB,EAAMskB,kBACxE,KAAKrB,EACD,YAAWjjB,EAAX,CAAkBuK,cAAe8P,EAAO+J,QAAQC,MAAM,EAAGrkB,EAAMskB,kBACnE,KAAKpB,EACD,OAAOqB,EAAAA,EAAAA,QACH,CACIha,cAAgBA,GACZA,EAAc7F,QAAO,QAAC,OAAC8f,GAAF,SAAenK,EAAO+J,QAAQtgB,MAAK,QAAC,IAAC2a,GAAF,SAAWA,IAAQ+F,EAAO/F,WAE1Fze,GAER,KAAKmjB,EACD,OAAOoB,EAAAA,EAAAA,QACH,CACIha,cAAgB+M,IACZ,MAAM9T,EAAO6W,EAAO+J,QACdK,EAAYnN,EAAStT,WACtB0gB,IAAD,eAAkBA,MAAAA,GAAA,UAAAA,EAAcF,cAAd,eAAsB/F,QAAQjb,MAAAA,GAA9B,UAA8BA,EAAMghB,cAApC,aAA8B,EAAc/F,QAGlE,OADmBgG,GAAa,GAErBE,EAAAA,EAAAA,QAAOF,EAAW,EAAGnN,IAErBsN,EAAAA,EAAAA,QAAOphB,EAAM8T,KAIhCtX,GAER,KAAKojB,EACD,YAAWpjB,EAAX,CAAkBskB,eAAgBjK,EAAO+J,UAE7C,KAAKf,EAA0B,CAC3B,MAAMwB,EAA8BxK,EAAO+J,QAC3C,YACOpkB,EADP,CAEI8kB,mBAAoBD,EACpBP,eAAgBO,IAAY3C,EAAmB6C,QF9ExB,OE8E4DpiB,IAG3F,KAAK2gB,GAED,YACOtjB,EADP,CAEIglB,YAH6B3K,EAAO+J,YAavCa,GAAoB,IAAuB,IAAtB,SAACphB,GAAqB,EACpD,MAAO7D,EAAOklB,IAAYC,EAAAA,EAAAA,YAAWjB,GAAkB,CACnDC,uBAAuB,EACvB5Z,cAAe,GACfua,mBAAoB5C,EAAmB6C,QACvCT,eFpG+B,EEqG/BU,YAAa,KAEXI,GAAkBC,EAAAA,EAAAA,GAAW,CAAC7B,QAAAA,GAAS0B,SAAAA,IAE7C,OACI,kBAACpC,EAAiB3C,SAAlB,CAA2B7d,MAAOtC,GAC9B,kBAAC+iB,EAAoB5C,SAArB,CAA8B7d,MAAO8iB,GAChCvhB,KAMJyhB,GAAe,KACxB,MAAMC,GAAmB1Y,EAAAA,EAAAA,YAAyBiW,GAClD,QAAyBngB,IAArB4iB,EACA,MAAM,IAAI1C,MAAM,wDAEpB,OAAO0C,GAGEC,GAAsB,KAC/B,MAAMC,GAAmB5Y,EAAAA,EAAAA,YAA0BkW,GACnD,QAAyBpgB,IAArB8iB,EACA,MAAM,IAAI5C,MAAM,+DAEpB,OAAO4C,G,s6BCxIX,MAAMC,GAAQ,QACRC,GAAc,cAEdnC,GAAU,MACToC,GAAAA,GAAAA,QADM,CAETC,OAAOnC,EAAAA,EAAAA,IAAqBgC,IAC5BI,YAAYpC,EAAAA,EAAAA,IAAqBiC,MAG/BI,GAAU,CAAC/lB,EAAOqa,KACpB,OAAQA,EAAOhb,MACX,KAAKqmB,GACD,aAAWrL,EAAO+J,SAEtB,KAAKuB,GACD,aAAW3lB,EAAX,CAAkB4a,QAASP,EAAO+J,UACtC,QACI,OAAOwB,GAAAA,GAAAA,QAA4B5lB,EAAOqa,KCIhD2L,GAA4B,SAAClnB,EAAoBmnB,EAAyBzf,GAAqC,IAAjB0f,EAAiB,uDAAP,GAC1G,MAAMC,EAASC,GAA+BtnB,EAAUmnB,EAAUzf,EAAW0f,GACvEriB,GAAYoiB,EAASpiB,UAAY,IAAIoB,KAAKohB,GAC5CL,GAA0BlnB,EAAUunB,EAAW,GAAIH,EAAQzhB,OAAO,CAAC/C,KAAMukB,EAASvkB,KAAMe,MAAOwjB,EAASxjB,WAM5G,OAJIoB,EAASuB,SACT+gB,EAAOtiB,SAAWA,EAClBsiB,EAAOzf,eAAgB,GAEpByf,GAGLC,GAAiC,SACnCtnB,EACAmnB,EACAzf,GAEkB,IADlB0f,EACkB,uDADR,GAEV,MAAMI,GAAWhN,EAAAA,EAAAA,MAAK,CAAC,YAAa2M,GAC9BrmB,EAAQ0mB,EAAS7jB,OAAS6jB,EAAS5kB,KACzC,MAAO,CACH9B,MAAAA,EACA4G,UAAWA,IAAa+f,EAAAA,EAAAA,KAAwBD,EAAS7H,IAAKyH,KAIzDM,GAAwB,CAAC1nB,EAAoB2nB,IACtDA,GACMC,EAAAA,EAAAA,KAAyB5nB,EAAU2nB,GAAYxhB,KAAKghB,GAClDD,GAA0BlnB,EAAUmnB,KAEtC,GAEJU,IAAqC7d,EAAAA,EAAAA,OACvC7D,EAAAA,EAAAA,MAAK2hB,IAAD,CACAtnB,IAAIinB,EAAAA,EAAAA,KAAwBK,EAAKnI,KACjChc,OAAOF,EAAAA,EAAAA,KAASqkB,EAAKnkB,OACrBokB,oBAAoBC,EAAAA,EAAAA,KAA0BF,QAIzCG,IAAiBje,EAAAA,EAAAA,MAAKke,EAAAA,IAAiCL,IAEvDM,IAAoBliB,EAAAA,EAAAA,QAAM,CAACmiB,EAA2BC,IAC/DD,EACKjiB,KAAKmiB,IAAYb,EAAAA,EAAAA,KAAwBa,KACzCtjB,MAAMxE,GAAO6nB,EAAO7nB,KAAOA,GAAO+nB,GAAsBF,IAAWG,GAAqBH,EAAQ7nB,OAEnGioB,GAAsBJ,IAA+BK,EAAAA,EAAAA,KAASL,EAAON,oBACrEQ,GAAyBF,IAA+BM,EAAAA,EAAAA,KAAYN,EAAON,oBAC3ES,IAAuBviB,EAAAA,EAAAA,QAAM,CAAC2iB,EAAkCC,IAClEA,EAASC,WAAY,GAAEF,EAAapoB,SAElCuoB,IAA0B9iB,EAAAA,EAAAA,QAC5B,CAAC+iB,EAA+BX,IAC5BI,GAAmBJ,IAAWW,EAAQhkB,MAAK,QAAC,GAACxE,GAAF,SAAUgoB,GAAqBH,EAAQ7nB,QAEpFyoB,GAAsBD,IACxB1lB,EAAAA,EAAAA,SAAOuB,EAAAA,EAAAA,UAASwI,EAAAA,GAAI2b,GAAUD,GAAwBC,IAE7CE,GAAsB,CAC/Bd,EACAe,KACuBnf,EAAAA,EAAAA,OAAKof,EAAAA,EAAAA,QAAOX,KAAqB7iB,EAAAA,EAAAA,QAAOuiB,GAAkBC,IAA1Dpe,CAA6Emf,GCjF3FE,GAAwB,CAAC,GAAI,GAAI,KAEjCC,GAAuB,CAChC,CACI9oB,GAAI,QACAmD,YACA,OAAOI,IAAAA,KAAU,kBAGzB,CACIvD,GAAI,aACAmD,YACA,OAAOI,IAAAA,KAAU,gBAGzB,CACIvD,GAAI,eACAmD,YACA,OAAOI,IAAAA,KAAU,aAErBgkB,mBAAoB,CAChBxnB,KAAMqgB,EAAAA,IAAAA,cAGd,CACIpgB,GAAI,KACAmD,YACA,OAAOI,IAAAA,KAAU,gBAKhBwlB,GAA+B,CACxC,CACI/oB,GAAI,QACAmD,YACA,OAAOI,IAAAA,KAAU,kBAKhBylB,GAAuB,CAChC,CACIhpB,GAAI,QACAmD,YACA,OAAOI,IAAAA,KAAU,kBAGzB,CACIvD,GAAI,KACAmD,YACA,OAAOI,IAAAA,KAAU,gBAKhB0lB,IAA0BC,EAAAA,EAAAA,OAAM,MAShCC,GAA+BC,IACxCxf,EAAAA,EAAAA,SAAQwf,EAAQzjB,KAAI5C,EAAAA,EAAAA,MAAK,YAAYsmB,KAAK,KAEjCC,GAAoB,IAAwC,IAAvC,UAACpiB,GAAsC,EACrE,OAAOsC,EAAAA,EAAAA,MAAKgK,EAAAA,QAAQ0V,EAAAA,EAAAA,OAAM,SAASK,EAAAA,EAAAA,MAAIC,EAAAA,EAAAA,QAAOtiB,IAAvCsC,CAAoDigB,EAAAA,M,2cCpExD,MAAMC,GAAoB,WAA2D,IAA1DC,EAA0D,uDAA7Bd,GAAsB,GACjF,MAAMe,EAAY,CACdC,KAAM,EACNC,YAAaH,EACb1e,cAAe,GACf+Z,eAAgB,OAGbtkB,EAAOklB,IAAYC,EAAAA,EAAAA,YAAWkE,GAAcH,GAC7CI,GAAgBjE,EAAAA,EAAAA,GAAW,CAAC7B,QAAD,GAAU0B,SAAAA,IACrCqE,EAAc/D,KACdgE,EAAYlE,KAClB,MAAO,CAAC,MAAIgE,EAAkBC,GAAvB,MAAyCvpB,EAAUwpB,GAAYtE,I,sCCdnE,MAAMuE,GAAyBC,IAClCC,QAAQD,MAAMA,GACdE,GAAAA,EAAAA,SAAoB,CAChBhqB,MAAOiD,IAAAA,KAAU,SACjBgnB,QAAShnB,IAAAA,KAAU,6BAIdinB,GAAgBJ,IACzBC,QAAQD,MAAMA,GACdE,GAAAA,EAAAA,SAAoB,CAChBhqB,MAAOiD,IAAAA,KAAU,SACjBgnB,SAASH,MAAAA,OAAA,EAAAA,EAAOK,eAAgBlnB,IAAAA,KAAU,8BAIrCmnB,GAAuBN,KAC5BA,MAAAA,OAAA,EAAAA,EAAOO,aAAcC,EAAAA,IAAAA,oBAGzBJ,GAAaJ,ICpBJS,GAA0B,KACnC,MAAM,iBAAC1G,GAAoB+B,MACrB,sBAACrB,GAAyBmB,MAC1B,WAAClD,GAAcO,IAQrB,MAAO,CAACyH,gBAPe9hB,EAAAA,EAAAA,cAAY,KAC/Bmb,GAAiB,KAClB,CAACA,IAKoB4G,iBAJA/hB,EAAAA,EAAAA,cAAY,KAChCmb,GAAiB,GACjBrB,MACD,CAACA,EAAYqB,IACyBU,sBAAAA,I,mNCCtC,MAAMmG,IAAcC,EAAAA,EAAAA,aACvB,CAAC,EAAoGlT,KAAQ,IAA5G,UAAC3X,EAAD,SAAY8qB,EAAZ,OAAsB9M,EAAtB,KAA8BvK,EAAOsX,GAAAA,EAAAA,WAArC,KAAkE1nB,EAAlE,YAAwE2nB,EAAc7J,EAAAA,IAAsB,EACzG,MAAM,sBAACsD,EAAD,gBAAwBkG,EAAxB,eAAyCD,GAAkBD,MAC3D,mBAACvG,GAAsB4B,KAM7B,OACI,kBAAC8E,GAAA,EAAD,IACI5qB,UAAWA,EACX6B,SAAU4iB,EACVqG,SAAUA,EACV9M,OAAQA,EACRvK,KAAMA,GACDpQ,EAAO,CAACA,KAAAA,GAAQ,GANzB,CAOI2nB,YAAaA,EACbN,eAAgBA,EAChBC,gBAAiBA,EACjBM,UAfU,KACd/G,EAAmB4G,IAef5pB,QAASkpB,GACT,iBAAe,wCACfzS,IAAKA,QAMrBiT,GAAYxL,YAAc,c,mOC9BnB,MAAM8L,IAAiBL,EAAAA,EAAAA,aAC1B,CAAC,EAAoGlT,KAAQ,IAA5G,UAAC3X,EAAD,SAAY8qB,EAAZ,OAAsB9M,EAAtB,KAA8BvK,EAAOsX,GAAAA,EAAAA,WAArC,KAAkE1nB,EAAlE,YAAwE2nB,EAAc7J,EAAAA,IAAsB,EACzG,MAAM,sBAACsD,EAAD,gBAAwBkG,EAAxB,eAAyCD,GAAkBD,MAC3D,mBAACvG,GAAsB4B,KAK7B,OACI,kBAACoF,GAAA,EAAD,IACIlrB,UAAWA,EACX6B,SAAU4iB,EACVqG,SAAUA,EACV9M,OAAQA,EACRvK,KAAMA,GACDpQ,EAAO,CAACA,KAAAA,GAAQ,GANzB,CAOI2nB,YAAaA,EACbN,eAAgBA,EAChBC,gBAAiBA,EACjBM,UAdU,KACd/G,EAAmB4G,IAcfnT,IAAKA,QCnCrB,SAASgK,KAA2Q,OAA9PA,GAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIxb,EAAI,EAAGA,EAAIyb,UAAUrc,OAAQY,IAAK,CAAE,IAAI0b,EAASD,UAAUzb,GAAI,IAAK,IAAIO,KAAOmb,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQnb,KAAQib,EAAOjb,GAAOmb,EAAOnb,IAAY,OAAOib,GAAkBH,GAASS,MAAMC,KAAMN,WDyChTmJ,GAAe9L,YAAc,iBCtC7B,SAAgB,QAAC,OACf/f,EAAS,IADK,EAEXqR,E,kXAFW,sBAGV4R,IAAAA,cAAoB,MAAOX,GAAS,CACxChgB,MAAO,KACP8J,OAAQ,KACRkF,QAAS,YACTwa,QAAS,MACTva,MAAO,8BACNF,GAAQ4R,IAAAA,cAAoB,OAAQ,CACrC9P,EAAG,oRACHH,YAAa,WCEF+Y,IAAkBP,EAAAA,EAAAA,aAC3B,CAAC,EAA8FlT,KAAQ,IAAtG,OAACqG,EAAD,SAAS8M,EAAT,UAAmB9qB,EAAnB,KAA8ByT,EAAOsX,GAAAA,EAAAA,WAArC,YAAkEC,EAAc7J,EAAAA,IAAsB,EACnG,MAAM,mBAAC+C,GAAsB4B,MAMtBuF,EAAqBC,GCbR,KAAiE,IAAhE,SAACR,EAAD,OAAW9M,EAAX,UAAmBiN,GAA6C,EACzF,MAAM,iBAAClH,GAAoB+B,MACrB,sBAACrB,GAAyBmB,MAC1B,WAAClD,GAAcO,IAarB,MAAO,CAACwB,GAZU7b,EAAAA,EAAAA,cAAY,KAC1Bmb,GAAiB,IACjBwH,EAAAA,EAAAA,KAAWvN,EAAOe,IAAK+L,GAClBU,MAAK,KACFP,MAAAA,GAAAA,OAEHQ,SAAQ,KACL1H,GAAiB,GACjBrB,SAET,CAACoI,EAAU9M,EAAQ+F,EAAkBrB,EAAYuI,MDDPS,CAAa,CAAC1N,OAAAA,EAAQ8M,SAAAA,EAAUG,UAJvD,KACd/G,EAAmB4G,MAKvB,OACI,kBAACa,GAAA,EAAD,CACI3rB,UAAWA,EACX6B,SAAUwpB,EACV5X,KAAMA,EACN1Q,MAAOI,IAAAA,KAAU,6BACjBpE,KAAM6sB,GACN5oB,QAASsoB,EACTN,YAAaA,EACbrT,IAAKA,OEnCrB,SAASgK,KAA2Q,OAA9PA,GAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIxb,EAAI,EAAGA,EAAIyb,UAAUrc,OAAQY,IAAK,CAAE,IAAI0b,EAASD,UAAUzb,GAAI,IAAK,IAAIO,KAAOmb,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQnb,KAAQib,EAAOjb,GAAOmb,EAAOnb,IAAY,OAAOib,GAAkBH,GAASS,MAAMC,KAAMN,WFyChTqJ,GAAgBhM,YAAc,kBEtC9B,SAAgB,QAAC,OACf/f,EAAS,IADK,EAEXqR,E,kXAFW,sBAGV4R,IAAAA,cAAoB,MAAOX,GAAS,CACxChgB,MAAO,KACP8J,OAAQ,KACRkF,QAAS,YACTwa,QAAS,MACTva,MAAO,6BACPC,WAAY,gCACXH,GAAQ4R,IAAAA,cAAoB,OAAQ,KAAMA,IAAAA,cAAoB,OAAQ,CACvE9P,EAAG,wWACH5S,GAAI,oBACD0iB,IAAAA,cAAoB,IAAK,CAC5BtQ,OAAQ,OACRC,YAAa,IACbC,KAAM,OACNC,SAAU,WACTmQ,IAAAA,cAAoB,OAAQ,CAC7B1iB,GAAI,iBACJsS,KAAM,QACLoQ,IAAAA,cAAoB,MAAO,CAC5BlQ,UAAW,qBACRkQ,IAAAA,cAAoB,OAAQ,CAC/BjQ,YAAa,MACbH,KAAM,OACNI,KAAM,uBACNE,EAAG,qBCbQqZ,IAAkBhB,EAAAA,EAAAA,aAC3B,CAAC,EAA8FlT,KAAQ,IAAtG,UAAC3X,EAAD,SAAY8qB,EAAZ,OAAsB9M,EAAtB,KAA8BvK,EAAOsX,GAAAA,EAAAA,WAArC,YAAkEC,EAAc7J,EAAAA,IAAsB,EACnG,MAAM2K,GAAsB3e,EAAAA,EAAAA,YAAW4e,EAAAA,IAChCC,EAAuBC,GCHH,KAIY,IAJX,SAChCnB,EADgC,OAEhC9M,EAFgC,oBAGhC8N,GAC2C,EAC3C,MAAM,UAACI,GAAa/lB,EAAAA,IACd,iBAAC4d,GAAoB+B,MACrB,sBAACrB,GAAyBmB,KAC1BuG,GAAe5sB,EAAAA,EAAAA,aAAY2sB,EAAUE,iBACrCC,GAAc9sB,EAAAA,EAAAA,aAAY2sB,EAAUI,2BACpCC,GAAShtB,EAAAA,EAAAA,aAAY2sB,EAAUM,WAC/BC,GAAS9pB,EAAAA,EAAAA,MAAK,OAEd+pB,GADsBtjB,EAAAA,EAAAA,MAAKrE,EAAAA,QAAQQ,EAAAA,EAAAA,KAAIknB,GAChCE,CAAoB,CAAC3O,GAAS8M,GAoB3C,MAAO,CAACrG,GAlBc7b,EAAAA,EAAAA,cAAY,KAC9Bmb,GAAiB,IACjB6I,EAAAA,EAAAA,KAA4B,CACxBT,aAAAA,EACAU,YA3BS,uBA4BTC,WAAYJ,EACZH,OAAAA,EACAF,YAAAA,IAECb,MAAK,KACFM,MAAAA,GAAAA,EAAsB3oB,IAAAA,KAAU,qCAEnC4pB,MAAMzC,IACNmB,SAAQ,KACL1H,GAAiB,QAE1B,CAACA,EAAkBoI,EAAcO,EAAMH,EAAQF,EAAaP,MD5BZkB,CAAoB,CAC/DhP,OAAAA,EACA8M,SAAAA,EACAgB,oBAAAA,IAEEmB,GAAqC1tB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,iCACjDgmB,GAAe5sB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,iBAEjC,OAAO8mB,KAAuCC,EAAAA,EAAAA,KAAaf,GACvD,kBAACR,GAAA,EAAD,CACI3rB,UAAWA,EACX6B,SAAUmqB,EACVvY,KAAMA,EACN1Q,MAAOipB,EAAwB,GAAK7oB,IAAAA,KAAU,2BAC9CpE,KAAMouB,GACNnqB,QAASipB,EACTjB,YAAaA,EACbrT,IAAKA,IAET,QAIZkU,GAAgBzM,YAAc,kBEvBvB,MCHMgO,IAAuBvC,EAAAA,EAAAA,aAChC,CAAC,EAA8FlT,KAAQ,IAAtG,OAACqG,EAAD,SAAS8M,EAAT,UAAmB9qB,EAAnB,KAA8ByT,EAAOsX,GAAAA,EAAAA,WAArC,YAAkEC,EAAc7J,EAAAA,IAAsB,EACnG,MAAM2K,GAAsB3e,EAAAA,EAAAA,YAAW4e,EAAAA,IACjC,mBAAC7H,GAAsB4B,MAItBuH,EAAuBC,GDJL,KAAsF,IAArF,SAACxC,EAAD,OAAW9M,EAAX,oBAAmB8N,EAAnB,UAAwCb,GAA6C,EACnH,MAAM,iBAAClH,GAAoB+B,MACrB,sBAACrB,GAAyBmB,MAC1B,WAAClD,GAAcO,IACfsK,GAAWhuB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,aACvBomB,GAAShtB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,WAe3B,MAAO,CAACse,GAdiB7b,EAAAA,EAAAA,cAAY,KACjCmb,GAAiB,GACjB,MAAMyJ,EAAS,CAACD,SAAAA,EAAUE,eAAgBlB,EAAQvO,OAAAA,EAAQ8M,SAAAA,KACzD4C,EAAAA,EAAAA,KAAmB1P,IAAU2P,EAAAA,EAAAA,KAA+BH,IAAUI,EAAAA,EAAAA,KAA8BJ,IAChGhC,MAAK,KACFM,MAAAA,GAAAA,EAAsB3oB,IAAAA,KAAU,kCAChC8nB,MAAAA,GAAAA,OAEHQ,SAAQ,KACL1H,GAAiB,GACjBrB,SAET,CAACqB,EAAkBwJ,EAAUhB,EAAQvO,EAAQ8M,EAAUgB,EAAqBpJ,EAAYuI,MCdrC4C,CAAkB,CAChE7P,OAAAA,EACA8M,SAAAA,EACAgB,oBAAAA,EACAb,UAPc,KACd/G,EAAmB4G,MASvB,OACI,kBAACa,GAAA,EAAD,CACI3rB,UAAWA,EACX6B,SAAUwrB,EACV5Z,KAAMA,EACN1Q,MAAOI,IAAAA,KAAU,2BACjBpE,KAAM6sB,GACN5oB,QAASsqB,EACTtC,YAAaA,EACbrT,IAAKA,OCxCrB,SAASgK,KAA2Q,OAA9PA,GAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIxb,EAAI,EAAGA,EAAIyb,UAAUrc,OAAQY,IAAK,CAAE,IAAI0b,EAASD,UAAUzb,GAAI,IAAK,IAAIO,KAAOmb,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQnb,KAAQib,EAAOjb,GAAOmb,EAAOnb,IAAY,OAAOib,GAAkBH,GAASS,MAAMC,KAAMN,WD8ChTqL,GAAqBhO,YAAc,uBC3CnC,SAAgB,QAAC,OACf/f,EAAS,IADK,EAEXqR,E,kXAFW,sBAGV4R,IAAAA,cAAoB,MAAOX,GAAS,CACxChgB,MAAO,KACP8J,OAAQ,KACRkF,QAAS,YACTwa,QAAS,MACTva,MAAO,6BACPC,WAAY,gCACXH,GAAQ4R,IAAAA,cAAoB,OAAQ,KAAMA,IAAAA,cAAoB,OAAQ,CACvE9P,EAAG,+LACH5S,GAAI,oBACD0iB,IAAAA,cAAoB,IAAK,CAC5BtQ,OAAQ,OACRC,YAAa,IACbC,KAAM,OACNC,SAAU,WACTmQ,IAAAA,cAAoB,OAAQ,CAC7B1iB,GAAI,iBACJsS,KAAM,QACLoQ,IAAAA,cAAoB,MAAO,CAC5BlQ,UAAW,qBACRkQ,IAAAA,cAAoB,OAAQ,CAC/BjQ,YAAa,MACbH,KAAM,OACNI,KAAM,uBACNE,EAAG,qBCdQsb,IAAuBjD,EAAAA,EAAAA,aAChC,CAAC,EAUGlT,KACC,IAVD,UACI3X,EADJ,WAEI+tB,EAFJ,cAGIC,EAHJ,WAIIC,EAJJ,KAKIxa,EAAOsX,GAAAA,EAAAA,WALX,QAMI/nB,EAAUme,EAAAA,GANd,YAOI6J,EAAc7J,EAAAA,IAGjB,EAED,OACI,kBAACwK,GAAA,EAAD,CACI3rB,UAAWA,EACXyT,KAAMA,EACN1Q,MAAOI,IAAAA,KAAU,oBACjBpE,KAAMmvB,GACNlrB,QAPY,IAAMA,EAAQ,CAAC+qB,WAAAA,EAAYC,cAAAA,EAAeC,WAAAA,IAQtDjD,YAAaA,EACbrT,IAAKA,OAMrBmW,GAAqB1O,YAAc,uB,4BC1C5B,MAAM+O,GAAyB7L,IAAAA,cAO3B,CACCxX,QAAS,S,4BCRrB,MAOA,IAPkBhM,EAAAA,GAAAA,IAAW,KAAM,CAC/BsvB,gBAAiB,CACbzsB,MAAO,OACP8J,OAAQ,YC4DhB,IAAe1F,EAAAA,EAAAA,OAhDc,IAAuC,IAAtC,SAACiT,EAAD,QAAWkC,EAAX,MAAoBmT,GAAkB,EAChE,MAAMhvB,EAASR,KACT+D,GAAQuG,EAAAA,EAAAA,UAAQ,KAClB,MAAM4N,EAAOsX,MAAAA,OAAH,EAAGA,EAAOC,MAAM,KACpBC,EAAYxX,MAAAA,OAAH,EAAGA,EAAMrR,OAElB8oB,EAAY/oB,IACd,MAAMb,EAAQa,EAAW,GAAGqB,UAAUwnB,MAAM,KAAK5oB,OACjD,GAAId,IAAU2pB,EACV,OAAO9oB,EAAW7B,MAAMsjB,GAASA,EAAKpgB,YAAcunB,IAExD,GAAIzpB,EAAQ2pB,EAAW,OACnB,MAAME,EAAkB1X,EAAK4N,MAAM,EAAG/f,GAAOqkB,KAAK,KAC5C9kB,EAAQ,UAAGsB,EAAW7B,MAAMsjB,GAASA,EAAKpgB,YAAc2nB,WAAhD,aAAG,EAA+DtqB,SAChF,GAAIA,EACA,OAAOqqB,EAASrqB,KAK5B,IAAK,MAAMuT,KAAUwD,EAAS,CAC1B,MAAMwT,EAAOF,EAAS9W,EAAOjS,YAC7B,GAAIipB,EACA,OAAOA,KAGhB,CAACL,EAAOnT,IAELyT,GAAe/lB,EAAAA,EAAAA,cAChBgmB,IACG5V,EAAS4V,EAAIxtB,UAAU0F,aAE3B,CAACkS,IAGL,OACI,kBAAC6V,GAAA,EAAD,CACI3oB,cAAY,EACZlG,UAAWX,EAAO+uB,gBAClBxrB,MAAOA,EACPoF,YAAakT,EACbjT,SAAU0mB,EACVnmB,SAAO,EACPD,QAAM,O,uCC1DX,MAAM1J,IAAYC,EAAAA,GAAAA,IAAW,KAAM,CACtCgwB,YAAa,CACT5vB,YAAa,OACbuM,OAAQ,OACRsjB,SAAU,WACVrtB,QAAS,QAEbstB,OAAQ,CACJttB,QAAS,iBACTutB,OAAQ,6BACRC,UAAW,EACX1tB,QAAS,OACT+N,eAAgB,iBAEpB5H,SAAU,CACNhG,MAAO,SAEXwtB,QAAS,CACL3tB,QAAS,QAEb4tB,MAAO,CACHC,WAAY,0BAEhBC,OAAQ,CACJzgB,UAAW,sB,8pBCFnB,MA6DA,GA7D6B,IAShB,IATiB,cAC1B0gB,EAD0B,WAE1BC,EAF0B,SAG1BvnB,EAH0B,YAI1BwnB,EAJ0B,QAK1BN,EAL0B,UAM1BO,EAN0B,YAO1BC,EAP0B,SAQ1BxrB,GACS,EACT,MAAM9E,EAASR,KAgBT+wB,GAAuBziB,EAAAA,EAAAA,YAAWghB,IACxC,OACI,oCACI,kBAAC0B,GAAA,EAAD,MACQD,EADR,CAEIE,cAAeN,GAAcrsB,IAAAA,KAAU,gBAAiB,CAAC4sB,OAE5D5rB,IACEwrB,GACC,yBAAK3vB,UAAWX,EAAO2vB,QACnB,kBAAC,GAAAnX,SAAD,CACI7X,UAAWX,EAAOyvB,YAClBpoB,QAAS6oB,IAAkBI,EAC3BK,cAAeT,EAAgB,GAAKA,EAAgBI,EACpD3W,SAAU/Q,IAEd,yBAAKjI,UAAWX,EAAO8vB,SACnB,kBAAC,GAAD,CACId,MAAOc,MAAAA,OAAF,EAAEA,EAASd,MAChBnT,QAASuU,EACTzW,SA3BGqV,IACvBqB,EAAU,MACHP,EADE,CAELd,MAAAA,QA0BY,kBAAC,GAAA4B,WAAD,CACIjtB,QArCE,KACtB0sB,EAAU,MACHP,EADE,CAELe,MAAOf,EAAQe,QAAUC,EAAAA,IAAAA,IAAYA,EAAAA,IAAAA,KAAaA,EAAAA,IAAAA,QAmClClc,QAAS,CAAC7E,KAAMqI,IAAAA,CAAWpY,EAAO+vB,MAAO,CAAC,CAAC/vB,EAAOiwB,QAASH,EAAQe,QAAUC,EAAAA,IAAAA,SAE7E,kBAAC,KAAD,WCnEfC,GAAiB,CAC1BnV,EACAoV,EACAjxB,EACAkxB,KAEOnnB,EAAAA,EAAAA,UAAQ,KACX,MAAMnB,ErB+CuB,EAAC5I,EAAoBkxB,IAA0B,CAChF,CACIpwB,MAAO,GACPuF,WAAYqhB,GAAsB1nB,GAAUmxB,EAAAA,EAAAA,KAAcnxB,EAAUkxB,MqBlDhDE,CAAsBpxB,EAAUkxB,GAOpD,MAAO,CANa,CAChBpwB,MAAO,GACPuF,WAAYwV,EACPlW,OAAOsrB,GAAqB,IAC5B9qB,KAAKkrB,IAAD,CAAWvwB,MAAOuwB,EAAI1tB,MAAO+D,UAAW2pB,EAAI7wB,WAEjCoI,KACzB,CAAC5I,EAAUkxB,EAAerV,EAAgBoV,I,4EClB1C,MAAMxxB,IAAYC,EAAAA,GAAAA,IAAYqQ,IAC1B,CACHvC,OAAQ,CACJC,WAAY,UAEhBiiB,YAAa,CACTja,WAAY,OACZ3V,YAAa,OACbuM,OAAQ,OACRsjB,SAAU,WACVrtB,QAAS,OAEbsc,OAAQ,CACJnO,WAAY,OACZ6gB,cAAe,MACfvuB,SAAU,SACVE,aAAc,YAElByhB,QAAS,CACLjP,WAAY,OACZ3V,YAAa,EACb2Q,WAAY,OACZrO,QAAS,QAEbmvB,cAAe,CACXnvB,QAAS,QAEbovB,OAAQ,CACJpvB,QAAS,QAEbqvB,QAAS,CACL9B,SAAU,WACV3sB,WAAY,MACZV,QAAS,gBACTQ,MAAO,mBACP,WAAY,CACR4uB,QAAS,KACT/B,SAAU,WACVgC,MAAO,EACP7Y,IAAK,EACLvW,MAAO,OACP8J,OAAQ,OACRulB,cAAe,QAEnB,UAAW,CACPprB,gBAAiB,mBACjB,mBAAoB,CAChBpE,QAAS,QAEb,uBAAwB,CACpByvB,WAAY,+BAGpBzvB,QAAS,OACTsG,UAAW,aACXlG,aAAc,6BACdsvB,YAAa,QAEjBC,YAAa,CACTjvB,MAAOiN,EAAMM,QAAQC,QAAQ0hB,KAC7B/vB,OAAQ,UACRgwB,eAAgB,OAChBvrB,WAAY,KAEhBwrB,kBAAmB,CACf5vB,QAAS,qBACTF,QAAS,OACTC,WAAY,SACZqG,UAAW,aACX,2CAA4C,CACxCtG,QAAS,UAGjB+vB,YAAa,CACT3rB,gBAAiB,2BAErB4rB,WAAY,CACR,WAAY,CACRV,QAAS,KACT/B,SAAU,WACV5W,KAAM,EACND,IAAK,EACLvW,MAAO,MACP8J,OAAQ,OACR1D,aAAc,kBACdF,WAAY,QAAC,MAAC3F,GAAF,SAA0BA,KAG9CuvB,WAAY,CACRP,YAAa,OACbhvB,MAAO,oBAEXwvB,kBAAmB,CACfR,YAAa,MACb1c,aAAc,OACd/I,OAAQ,OACRoJ,WAAY,OAEhBoa,OAAQ,CACJgC,WAAY,8BAEhBU,YAAa,CACT9c,WAAY,OAEhB+c,WAAY,CACR/c,WAAY,QAEhBgd,QAAS,CACLrwB,QAAS,OACTqT,WAAY,OACZpJ,OAAQ,OACR5D,WAAY,wBCKxB,IAAe9B,EAAAA,EAAAA,OA/EM,IAUR,IAVS,SAClBgG,EADkB,MAElB+lB,EAFkB,aAGlB3N,EAHkB,cAIlB4N,EAJkB,cAKlBC,EALkB,iBAMlBC,EANkB,sBAOlBC,EAPkB,SAQlB9yB,EARkB,YASlBkmB,EAAc,IACL,EACT,MAAMtH,EAAS8T,EAAMhN,OACf5iB,GAAQiwB,EAAAA,EAAAA,IAAenU,EAAOe,KAC9B1f,EAASR,GAAU,CAACqD,MAAAA,KACnBkwB,EAAUC,IAAe7xB,EAAAA,EAAAA,WAAS,GAGnC8xB,EAAkBtU,IAAW+T,EAC7BQ,EAAUL,EAEhB,OACI,yBACIlyB,UAAWe,IAAAA,CAAW1B,EAAOwxB,QAASnS,GAAAA,EAAoC,CACtE,CAACrf,EAAOmyB,YAAaS,GAAoBD,EACzC,CAAC3yB,EAAOkyB,aAAcS,KAG1B,kBAAC,GAAAna,SAAD,CACI7X,UAAWe,IAAAA,CAAW1B,EAAOyvB,YAAa,CAAC,CAACzvB,EAAOuN,SAAU0lB,IAC7D5rB,QAASsrB,EACThZ,SAfW,IAAMmL,EAAa2N,GAgB9B,iBAAiB,iCAAgC/lB,MAErD,yBAAK/L,UAAWX,EAAO2e,QACnB,kBAACwU,GAAA,EAAD,CAAe5vB,OAAO2b,EAAAA,EAAAA,KAAoBP,GAAShe,UAAWX,EAAO8xB,cAChEtuB,EAAAA,EAAAA,KAASmb,EAAOjb,QAErB,yBAAK/C,UAAWX,EAAOiyB,mBACnB,kBAACmB,GAAA,EAAD,CACInN,YAAaA,EACbtH,OAAQA,EACR8T,MAAOA,EACP1yB,SAAUA,EACVuU,QAAS+e,GAAAA,EAAAA,kBAEb,kBAAC,GAAAC,QAAD,CAASC,YAAY,WAAW5yB,UAAWX,EAAOwyB,YAC/CC,EAAML,YAAc,yBAAKzxB,UAAWX,EAAOoyB,YAAaK,EAAML,aAChE/D,EAAAA,EAAAA,KAAmB1P,IAChB,kBAAC6U,GAAA,EAAD,CAAiB7yB,UAAWX,EAAOuyB,WAAYkB,aAAc9U,EAAO+U,eAIhF,yBAAK/yB,UAAWX,EAAOykB,SACnB,yBAAK9jB,UAAWe,IAAAA,CAAW1B,EAAOsxB,cAAe,CAAC,CAACtxB,EAAOuxB,QAASwB,KAC/D,kBAACG,EAAD,CACIS,gBAAiB3zB,EAAOsyB,YACxBsB,aAAcnB,EACdoB,kBAAmB,IAAMb,GAAY,GACrCc,mBAAoB,IAAMd,GAAY,MAG7CN,GACG,kBAACjT,GAAA,EAAD,CACI9e,UAAWe,IAAAA,CAAW1B,EAAOqyB,kBAAmB,CAAC,CAACryB,EAAO4vB,QAASmD,IAClErT,KAAKqU,EAAAA,EAAAA,KAAoBrB,EAAchT,IAAK+S,EAAMhN,OAAO/F,KACzDI,WAAYD,EAAAA,IAAAA,gBACZF,mBAAmBC,EAAAA,EAAAA,KAAwBC,EAAAA,IAAAA,gBAA0C,CACjFZ,UAAWyT,EAAchT,IACzBsU,eAAgBvB,EAAMhN,OAAO/F,MAEjCuU,qBAAmB,EACnBC,WAAYnB,SChHvBvzB,IAAYC,EAAAA,GAAAA,IAAW,KAAM,CACtC00B,KAAM,CACFzE,SAAU,WACVvsB,KAAM,EACNhB,QAAS,OACT8N,cAAe,SACfmkB,UAAW,OACXC,UAAW,cCUNC,GAAa,IAQb,IARc,cACvB5B,EADuB,QAEvB6B,EAFuB,aAGvBzP,EAHuB,sBAIvB+N,EAJuB,SAKvB9yB,EALuB,YAMvBkmB,EANuB,cAOvBza,GACS,EACT,MAAMxL,EAASR,MACT,mBAACumB,GAAsBQ,KAE7B,OACI,yBAAK5lB,UAAWX,EAAOm0B,MAClBI,EAAQruB,KAAI,CAACusB,EAAOrrB,IACjB,kBAAC,GAAD,CACII,IAAKirB,EAAMhN,OAAO/F,IAClBhT,SAAUtF,EACVqrB,MAAOA,EACPC,cAAeA,EACf5N,aAAcA,EACd+N,sBAAuBA,EACvB0B,QAASA,EACT3F,WAAY6D,EAAM7D,WAClB7uB,SAAUA,EACVkmB,YAAaA,EACb2M,iBAAkB7M,IAAuB5C,EAAmB6C,QAC5D2M,cAAennB,EAAczG,MAAMN,GAASA,EAAKghB,OAAO/F,MAAQ+S,EAAMhN,OAAO/F,Y,4BC5C1F,MAAMlgB,IAAYC,EAAAA,GAAAA,GAAW,CAChCsQ,KAAM,CACF5N,QAAS,OACTE,QAAS,WACTmyB,IAAK,MACLjyB,aAAc,8BAElBkyB,UAAW,CACP/rB,aAAc,OAElBgsB,eAAgB,CACZryB,QAAS,KC4CjB,IAAeqE,EAAAA,EAAAA,OA3CS,IAA0E,IAAzE,SAACoF,EAAD,aAAW6oB,EAAX,qBAAyBC,EAAzB,cAA+C3D,GAA0B,EAC9F,MAAMjxB,EAASR,KACTkL,GAAiBC,EAAAA,EAAAA,WAChBkqB,EAAmBC,IAAwB3zB,EAAAA,EAAAA,UAAiB,IAC7D4zB,GAAexrB,EAAAA,EAAAA,cAAYS,EAAAA,EAAAA,OAAKgrB,EAAAA,EAAAA,QAAO,MAAO,UAAUjrB,EAAAA,EAAAA,OAAKE,EAAAA,EAAAA,QAAO4qB,GAAoBI,EAAAA,KAAMnpB,IAAY,CAC5G+oB,EACA/oB,IAGEopB,GAAyB3rB,EAAAA,EAAAA,cAC1B4rB,IACGL,EAAqBK,IACjBC,EAAAA,EAAAA,SAAQD,IAAkBE,SAASC,gBAAkB5qB,EAAeK,SACpEe,EAASqpB,KAGjB,CAACrpB,IAGL,OAAKA,EAKD,yBAAKnL,UAAWX,EAAO+P,MACnB,kBAACwlB,GAAA,EAAD,CACItE,cAAeA,EACfuE,eAAgBb,EAChBc,eAAgBb,IAEpB,kBAACc,GAAA,EAAD,CACI9gB,QAAS,CAAC7E,KAAM/P,EAAOy0B,WACvBlW,SAAU7T,EACV0K,WAAS,EACThJ,OAAQ,GACRupB,WAAW,EACXpyB,MAAOsxB,EACP/oB,SAAUopB,EACVU,WAAYb,KAlBb,Q,0PC1Bf,MAAMc,IAAmBrK,EAAAA,EAAAA,aAAW,CAAC,EAAuClT,KAAkC,IAAzE,KAAC7T,EAAD,YAAOknB,EAAc7iB,EAAAA,UAAoD,EAC1G,MAAM,aAACwjB,EAAD,MAAejb,GAAS5M,EAC9B,OAAO,kBAAC6nB,EAAD,IAAchU,IAAKA,EAAKlE,KAAK,WAAWuX,YAAaA,GAAiBta,OAGjFwkB,GAAiB9V,YAAc,mBAE/B,Y,mNCWO,MAAM+V,GAAe,IAQf,IARgB,QACzBrR,EADyB,gBAEzBsR,EAAkB,EAFO,KAGzB3hB,EAAO,SAHkB,iBAIzB4hB,EAJyB,QAKzBphB,EALyB,kBAMzBif,EANyB,mBAOzBC,GACS,EACT,MAAOmC,EAAeC,IAAeC,EAAAA,EAAAA,SAAQJ,EAAiBtR,GAExD2R,EAAsB,WAAThiB,EAAoBsX,GAAAA,EAAAA,OAA0BA,GAAAA,EAAAA,WAC3D2K,EAAsB,WAATjiB,EAAoB,QAAU,IAEjD,OACI,oCACK6hB,EAAc/vB,KAAI,CAAC,EAAuBkB,KAAxB,IAAC,aAACklB,EAAD,MAAejb,GAAhB,SACf,kBAACib,EAAD,IACI9kB,IAAKJ,EACLgN,KAAMgiB,EACNz1B,UAAWiU,MAAAA,OAAF,EAAEA,EAAS0hB,cACfN,EAAmB,CAAChyB,KAAMgyB,GAAoB,GAC/C3kB,OAGX6kB,EAAY7vB,OAAS,GAClB,kBAACkwB,GAAA,EAAD,CACIC,gBAAiBC,GAAAA,EACjB/mB,YAAa,CACThQ,KAAMg3B,GAAAA,EACN1yB,KAAMqyB,EACN5mB,aAAc3L,IAAAA,KAAU,iBAE5BnD,UAAWiU,MAAAA,OAAF,EAAEA,EAAS+hB,YACpBC,OAAQ,uBACRC,UAAWX,EACXY,WAAYjD,EACZlI,YAAamI,EACb+B,iBAAkBA,OC9DzBr2B,IAAYC,EAAAA,GAAAA,IAAW,KAAM,CACtCs3B,SAAU,CACN5zB,KAAM,EACNhB,QAAS,OACT8N,cAAe,SACfnN,SAAU,cCgCLk0B,IAAkBtwB,EAAAA,EAAAA,OAAK,IAAoE,IAAnE,OAACiY,EAAD,SAAS5e,EAAT,QAAmB4pB,EAAnB,QAA4BmG,EAA5B,UAAqCO,EAArC,OAAgDjJ,GAAmB,EACpG,MAAMpnB,EAASR,KACT2mB,GAAW8Q,EAAAA,EAAAA,gBACVxS,EAASxjB,GAASgpB,MACnB,kBAACiN,EAAD,WAAoBC,EAApB,iBAAgCvS,EAAhC,aAAkDE,GAAgBL,GAClE,KAAC2F,EAAD,YAAOC,EAAP,cAAoB7e,EAApB,sBAAmC4Z,GAAyBnkB,GAC3Dye,IAAKT,EAAW3e,KAAMonB,GAAc/I,GAAU,GAC/CuO,GAAShtB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,kBACpBswB,EAAYC,IAAiBl2B,EAAAA,EAAAA,UAAiB,KAC9CwzB,EAAc2C,IAAmBn2B,EAAAA,EAAAA,UAAqB+rB,GAEvDqK,GAA2BhuB,EAAAA,EAAAA,cAC5BiuB,IACGF,EAAgBE,GAChBL,EAAW,KAEf,CAACA,IAGCM,GAAiC3tB,EAAAA,EAAAA,UACnC,IACI,EACIsrB,EAAAA,EAAAA,SAAQgC,GACF,KACA,CACEzxB,OAAQ,2BACR8B,UAAW,aACXsM,OAAQ,CAACqjB,IAEjB,CACIzxB,OAAQ,SACR8B,UAAW,OACXsM,OAAQ,CAAC2T,IAEb,CAAC/hB,OAAQ,aAAc8B,UAAW,MAAOsM,OAAQ,CAACkL,OAC/C0K,GACLhkB,OAAOmD,EAAAA,WACb,CAAC4e,EAAYzI,EAAWmY,EAAYzN,IAGlCyG,EAAcW,GAAexH,GAAsB,GAAIxpB,EAAU2nB,IAEjE,SAAC+D,EAAD,MAAWiM,EAAX,aAAkBC,GCrDG,KAAuF,IAAtF,WAACjQ,EAAD,QAAaiC,EAAb,QAAsBmG,EAAtB,KAA+B1F,EAA/B,YAAqCC,EAArC,QAAkDuN,EAAlD,eAA2DC,GAA2B,EAClH,MAAM,MAAChH,EAAD,MAAQ7B,GAASc,EACjB5B,GAAWhuB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,aACvBomB,GAAShtB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,kBACrB,iBAAC4d,GAAoB+B,MACrB,eAACqR,EAAD,aAAiBC,IACnB73B,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,gCAAsD,IAC/D4wB,EAAOM,IAAY72B,EAAAA,EAAAA,UAAS,IAC5BsqB,EAAUwM,IAAe92B,EAAAA,EAAAA,UAAS,IACnC+2B,GAAcC,EAAAA,EAAAA,KACdC,EAAoB,CAAC,MAAO,QAAS,OAAQ,iBAAkB,aAAc,cAC7EC,GAAsBvuB,EAAAA,EAAAA,UAAQ,KAAMwuB,EAAAA,EAAAA,MAAAA,CAAyB3O,IAAU,CAACA,IACxEgO,GAAepuB,EAAAA,EAAAA,cACjB,KACI,GAAIquB,EAAS,CACTlT,GAAiB,GACjB,MAAM6T,EAASV,IAAmB3K,EAAO3sB,GACnCi4B,EAAY,CACdpK,eAAgBlB,EAAO3sB,GACvBmzB,WAAYmE,EACZ3J,SAAAA,GAGEuK,EAAuB,CACzBxmB,OAAQmY,EAAOC,EACf9f,IAAK8f,EACLqO,KAAM1J,EACN6B,MAAAA,EACA8H,OAAQP,EAAkBxO,KAAK,KAC/BmO,aAAAA,EACAD,eAAAA,GAEEc,EAAgBL,GAChBM,EAAAA,EAAAA,KAAkC,IAChClP,QAAAA,EACA9N,QAAS4c,GACND,IACJrM,MAAKjmB,EAAAA,EAAAA,MAAI4yB,EAAAA,EAAAA,KAA2BjB,MACrCkB,EAAAA,EAAAA,KAAoBpP,EAAS8O,GAE7BO,EAAqB,CAAClB,eAAAA,EAAgBC,aAAAA,GACtCkB,EAAeV,GACfW,EAAAA,EAAAA,KAAuB,IACrBvP,QAAAA,EACA9N,QAASmd,GACNR,KAELW,EAAAA,EAAAA,KAAUxP,EAASqP,GAEzBd,EAAYkB,QAAQC,IAAI,CAACT,EAAeK,KACnC9M,MAAMmN,IACH,MAAO7N,EAAU8N,GAAiBD,GAC5B,MAAC5B,GAAS6B,EAEhBtB,EAAYxM,EAASvlB,KADQyY,IAAD,CAAc8G,OAAQ9G,OAElDqZ,EAASN,MAEZtL,SAAQ,IAAM1H,GAAiB,QAG5C,CACIgD,EACA2Q,EACArJ,EACA6B,EACAzG,EACAC,EACAuN,EACAE,EACAC,EACAF,EACA3K,IAOR,OAJA9rB,EAAAA,EAAAA,YAAU,KACNu2B,MACD,CAACA,IAEG,CAAClM,SAAAA,EAAUiM,MAAAA,EAAOC,aAAAA,IDzBe6B,CAAgB,CACpD5B,UAAW3Y,EACXyI,WAAAA,EACAiC,QAAS8N,EACT3H,QAAAA,EACA1F,KAAAA,EACAC,YAAAA,EACAwN,eAAgBlD,EAAap0B,MAG3B,iBAAC+iB,GAAoBM,IAC3BN,GAAiB,KACbqU,IACAxR,EAASsT,EAAAA,GAAAA,OAAAA,QAAAA,WAAkC,CAAC/Z,IAAKT,QAGrD,MAAMya,EAAY,KACdvC,EAAW,IAGTwC,GAAgBpwB,EAAAA,EAAAA,cAAY,KAC9Bqb,EAAiB,MAClB,CAACA,IACEgV,GAAYrwB,EAAAA,EAAAA,cAAY,KAC1Bqb,EAAiB6G,KAClB,CAAC7G,EAAkB6G,KAEtBrqB,EAAAA,EAAAA,YAAU,KACN,MAAMmX,EAAW/M,EAActF,KAAKzB,GACjBgnB,EAASlnB,MACnBoa,IAAWkb,EAAAA,EAAAA,KAA4Blb,MAAYkb,EAAAA,EAAAA,KAA4Bp1B,MAE3DA,IAE7BmgB,EAAiBrM,KAElB,CAACkT,KAEJzc,EAAAA,EAAAA,IAAmB,KACf0qB,IACAC,MACD,CAAC1a,KAEJjQ,EAAAA,EAAAA,IAAmB,KACf0qB,MACD,CAAC/P,EAASyN,IAEb,MAAMvE,GAAwBtpB,EAAAA,EAAAA,cAC1B,IAAuG,IAAtG,aAACqqB,EAAD,gBAAeD,EAAf,kBAAgCE,EAAhC,mBAAmDC,GAAmD,EACnG,MAAM,SAACgG,EAAD,QAAWC,IAAWC,EAAAA,EAAAA,KACxBj6B,EACAqnB,EACAwM,EAAanO,OACb9G,EACAiV,EAAahF,YAGXnD,EAAW,CAACmI,EAAanO,QACzBwU,GAAa5L,EAAAA,EAAAA,KAAmBuF,EAAanO,QAE7ChB,EAAU,CACZ,CACI6H,aAAcf,GACd2O,KAAMJ,EACNzoB,MAAO,CACHsN,OAAAA,EACA8M,SAAAA,IAGR,CACIa,aAAcT,GACdqO,KAAMH,EACN1oB,MAAO,CACHsN,OAAAA,EACA8M,SAAAA,IAGR,CACIa,aAAcP,GACdmO,KAAMH,IAAYE,EAClB5oB,MAAO,CACHsN,OAAAA,EACA8M,SAAAA,KAGV9lB,QAAOrC,EAAAA,EAAAA,MAAK,SAEd,OACI,kBAACwyB,GAAD,CACIrR,QAASA,EACT7P,QAAS,CACL0hB,aAAc3C,EACdgD,YAAahD,GAEjBvf,KAAK,QACL2hB,gBAAiB,EACjBlC,kBAAmBA,EACnBC,mBAAoBA,MAIhC,CAACnV,EAAQyI,EAAQrnB,IAGfmwB,GAAgBpmB,EAAAA,EAAAA,UAAQ,IACnB2hB,EACFvlB,KAAKusB,GAAUjnB,MAAAA,OAAX,EAAWA,EAAejH,MAAK41B,EAAAA,EAAAA,QAAO,CAAC,SAAU,OAAQ1H,EAAMhN,OAAO/F,QAC1E/Z,OAAOmD,EAAAA,UAAUzC,QACvB,CAACmF,EAAeigB,IAEnB,OACI,yBAAK9qB,UAAWX,EAAO+2B,UACnB,kBAAC,GAAD,CACI7G,cAAeA,EACfC,WAAYuH,EACZpH,YAAa7E,EAASplB,OACtB+pB,YAAaA,EACbN,QAASA,EACTO,UAAWA,EACXznB,SAAUsnB,EAAgByJ,EAAgBC,GAE1C,kBAAC,GAAD,CACIjF,aAAcA,EACdC,qBAAsB2C,EACtBtG,cAAevJ,EACf5b,SAAUurB,KAGlB,kBAAC/C,GAAD,CACI5B,cAAe/T,EACfmG,aAAcA,EACd+N,sBAAuBA,EACvB0B,QAAS9I,EACT1rB,SAAUA,EACVyL,cAAeA,IAEnB,kBAAC4uB,EAAA,EAAD,CACIC,mBAAoBjR,GACpBkR,MAAO5C,EACPtN,KAAMA,EACNmQ,aAAcpD,EACd9M,YAAaA,EACbmQ,oBAAqBtD,IAExB9R,GAAyB,kBAACqV,EAAA,EAAD,UAKtCzD,GAAgBjX,YAAc,kB,kDEpNvB,MAAM2a,GAAa,IAAmF,IAAlF,OAAC/b,EAAD,OAAShZ,EAAT,MAAiBg1B,EAAjB,QAAwB7K,EAAxB,KAAiC1F,EAAjC,YAAuCC,EAAvC,QAAoDxO,EAApD,QAA6D+b,GAAqB,EACzG,MAAM,iBAAClT,EAAD,eAAmBO,GAAkBwB,KACrCmU,GAAiBrxB,EAAAA,EAAAA,cAAY,KAC/Bmb,GAAiB,KAClB,CAACA,IACEmW,GAAkBtxB,EAAAA,EAAAA,cAAY,KAChCmb,GAAiB,KAClB,CAACA,KACE,MAACgT,EAAD,QAAQnD,EAAR,YAAiBtO,EAAjB,YAA8B6U,IAAeC,EAAAA,GAAAA,GAAiB,CAChEnD,QAAAA,EACAjZ,OAAAA,EACAhZ,OAAAA,EACAg1B,MAAAA,EACAE,gBAAAA,EACAD,eAAAA,EACA/e,QAAAA,EACAuO,KAAAA,EACAC,YAAAA,EACAyF,QAAAA,EACAkL,mBAAmB,IAOvB,OAJA55B,EAAAA,EAAAA,YAAU,KACN6jB,EAAegB,KAChB,CAAChB,EAAgBgB,IAEb,CAACsO,QAAAA,EAASmD,MAAAA,EAAOzR,YAAAA,EAAa6U,YAAAA,I,uCC1ClC,MAAMt7B,IAAYC,EAAAA,GAAAA,IAAYqQ,IAAD,CAChCmrB,YAAa,CACT7uB,OAAQ,QACRxM,SAAU,SAEds7B,YAAa,CACT74B,QAAS,eAEb84B,UAAW,CACPt4B,MAAOiN,EAAMM,QAAQvI,KAAKwI,QAC1BzN,SAAU,OACV0N,cAAe,EACfrO,WAAY,QAEhByV,KAAM,CACF7U,MAAOiN,EAAMM,QAAQvI,KAAK0I,UAC1B6qB,QAAS,OACT9qB,cAAe,EACfrO,WAAY,OACZI,QAAS,SAEbovB,QAAS,CACLpvB,QAAS,eACTE,aAAc,iCAElB84B,cAAe,CACX7qB,WAAY,Y,2cCcpB,MAwIA,GAxI0B,IAAsF,IAArF,OAAC4W,EAAD,WAASsH,EAAT,cAAqBC,EAArB,WAAoCC,EAApC,KAAgDtjB,EAAhD,QAAsDG,EAAU3C,EAAAA,UAAqB,EAC5G,MAAM9I,EAASR,KACT2mB,GAAW8Q,EAAAA,EAAAA,eACXl3B,GAAqBG,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,aACjCm7B,GAAe3wB,EAAAA,EAAAA,QAAO,OAEtB,SAAC4wB,EAAW,KACdr7B,EAAAA,EAAAA,cAAae,GAAUd,EAAAA,GAAAA,UAAAA,yBAAuCc,EAAOmmB,EAAO7mB,OAAQ,IAEjFi7B,YAAaC,EAAkB,GAAIC,aAAcC,EAAmB,KAAM7xB,EAAAA,EAAAA,UAC7E,ICrCkC,EACtC/J,EACAqnB,EACAsH,EACA/P,EACAiQ,KAKA,MAAM,0BAACgN,EAAD,2BAA4BC,IAA8BC,EAAAA,EAAAA,OAE1DC,EAAkBR,IACpBxxB,EAAAA,EAAAA,OACIiyB,EAAAA,EAAAA,WAAU,CAAC,cAAe,eAAe9K,EAAAA,EAAAA,KAAcnxB,EAAUw7B,EAASU,YAAYC,iBACtFF,EAAAA,EAAAA,WAAU,CAAC,YAAa,eAAe9K,EAAAA,EAAAA,KAAcnxB,EAAUw7B,EAASY,UAAUD,gBAFtFnyB,CAGEwxB,GAEA7T,GAAawJ,EAAAA,EAAAA,KAAcnxB,EAAU4e,EAAOre,MAC5C87B,GAAoBC,EAAAA,EAAAA,QAAO,GAAI,eAAgBjV,GAC/CkV,GAAcC,EAAAA,EAAAA,KAAeH,EAAmB1U,EAAYkH,IAC3D4N,GAAoBF,EAAYp2B,KAAI,QAAC,eAACu2B,GAAF,SAAsBA,KAAgB92B,OAAOmD,EAAAA,UACxF,OACI0c,EAAAA,EAAAA,QACI,CACIgW,aAAazxB,EAAAA,EAAAA,OACTpE,EAAAA,EAAAA,SAAO+2B,EAAAA,EAAAA,KAAiC38B,EAAU4e,EAAQ+P,KAC1DxoB,EAAAA,EAAAA,MAAIy2B,EAAAA,EAAAA,KAAgB58B,KACpB4F,EAAAA,EAAAA,QAAOi2B,IACP11B,EAAAA,EAAAA,KAAI61B,IAERL,cAAc3xB,EAAAA,EAAAA,OACVpE,EAAAA,EAAAA,SAAO+2B,EAAAA,EAAAA,KAAiC38B,EAAU2uB,EAAY/P,KAC9DzY,EAAAA,EAAAA,MAAIy2B,EAAAA,EAAAA,KAAgB58B,KACpB4F,EAAAA,EAAAA,QAAOk2B,IACP31B,EAAAA,EAAAA,KAAI61B,KAGZS,IACC,IDFCI,CAA2B78B,EAAUqnB,EAAQsH,EAAYC,EAAeC,IAC9E,CAACxH,EAAQsH,EAAYC,EAAeC,EAAY7uB,KAG9C,YAAC88B,EAAD,aAAcC,EAAe,IAAMvB,EACnCn1B,GAAmC22B,EAAAA,EAAAA,QAAO,GAAI,CAAC,SAAU,cAAexB,GAExEyB,GAAqClzB,EAAAA,EAAAA,UAAQ,KAAMmzB,EAAAA,EAAAA,KAA0Bl9B,EAAU+8B,IAAe,CACxGA,EACA/8B,IAGEm9B,GAAsBpzB,EAAAA,EAAAA,UACxB,IAAM,IACF1D,WAAAA,IACG+2B,EAAAA,EAAAA,KAAwB5B,KAE/B,CAACA,EAAUn1B,IAGTg3B,EAAShW,EAAO7mB,GAEhB88B,GAAuB9zB,EAAAA,EAAAA,cACzBQ,EAAAA,EAAAA,MAAK0vB,EAAAA,GAAAA,UAAAA,QAAAA,gBAA0CrS,EAAO7mB,GAAIs8B,GAAc1W,GACxE,CAACiB,EAAQyV,EAAa1W,IAGpBmX,GAAkB/zB,EAAAA,EAAAA,cACnB4kB,IAAWpkB,EAAAA,EAAAA,MAAK0vB,EAAAA,GAAAA,QAAAA,cAA+BtT,EAApCpc,CAA8CokB,EAAOjoB,KAAKq3B,GAAD,MAAgBA,EAAhB,CAAuBH,OAAAA,QAC5F,CAACA,EAAQjX,IAGPqX,GAAoBj0B,EAAAA,EAAAA,cACrB4kB,IAAWpkB,EAAAA,EAAAA,MAAK0vB,EAAAA,GAAAA,QAAAA,gBAAiCtT,EAAtCpc,CAAA,MAAoDokB,EAApD,CAA4DiP,OAAAA,MACxE,CAACA,EAAQjX,IAGPsX,GAAoBl0B,EAAAA,EAAAA,cACrB4kB,IAAWpkB,EAAAA,EAAAA,MAAK0vB,EAAAA,GAAAA,QAAAA,gBAAiCtT,EAAtCpc,CAAA,MAAoDokB,EAApD,CAA4DiP,OAAAA,MACxE,CAACA,EAAQjX,IAGPuX,GAAcn0B,EAAAA,EAAAA,cAAY,IAAMkC,EAAQoxB,IAAc,CAACA,EAAapxB,IAEpEkyB,GAAcp0B,EAAAA,EAAAA,cAAY,IAAM4c,EAASsT,EAAAA,GAAAA,OAAAA,QAAAA,UAAiC,MAAM,CAACtT,IAEjFyX,GAAWr0B,EAAAA,EAAAA,cAAY,KACzB,MAAMs0B,GAASC,EAAAA,EAAAA,KAA2B/9B,EAAU,CAACw7B,SAAAA,IAErD,OADApV,EAASsT,EAAAA,GAAAA,OAAAA,QAAAA,UAAiCoE,IACjB,IAAlBA,EAAOx3B,SACf,CAACk1B,EAAUx7B,EAAUomB,IAElB4X,GAAWx0B,EAAAA,EAAAA,cAAY,KACzBo0B,IACAD,MACD,CAACC,EAAaD,IAiBX78B,EAAS,IAAE2C,EAAAA,EAAAA,KAASmrB,EAAcjrB,iBAAqBF,EAAAA,EAAAA,KAASkrB,EAAWhrB,SAE3ElB,GAAW4yB,EAAAA,EAAAA,SAAQ0H,GACnBkB,EAAoB1C,EAAavwB,QACjCkzB,GAAuBn0B,EAAAA,EAAAA,UACzB,KAAM,CACFo0B,QAASF,EACTG,SAAU,CAAC,MAAO,aAEtB,CAACH,IAEL,OACI,kBAAC,GAAAI,OAAD,CAAQ9yB,KAAMA,EAAM8J,WAAS,EAACxV,SAAS,KAAK6L,QAASsyB,EAAUnpB,QAAS,CAACypB,MAAOr+B,EAAOi7B,cACnF,kBAAC,GAAAqD,YAAD,CAAaC,mBAAiB,EAAC3pB,QAAS,CAAC7E,KAAM/P,EAAOk7B,cAClD,kBAAC,GAAAvmB,WAAD,CAAYL,QAAQ,YAAYM,QAAS,CAAC7E,KAAM/P,EAAOm7B,YAClDr3B,IAAAA,KAAU,qBAEf,kBAAC,GAAA6Q,WAAD,CAAYL,QAAQ,QAAQM,QAAS,CAAC7E,KAAM/P,EAAO0X,OAC9C7W,IAGT,kBAAC,GAAA29B,cAAD,CAAe5pB,QAAS,CAAC7E,KAAM/P,EAAOyxB,SAAUnZ,IAAKgjB,GACjD,kBAACmD,GAAA,WAAD,CAAiCl7B,MAAO06B,GACpC,kBAACS,GAAA,EAAD,CACInD,SAAUA,EACVx7B,SAAUA,EACV07B,gBAAiBA,EACjBE,iBAAkBA,EAClBhiB,SAAU0jB,EACVsB,qBAAqB,IAEzB,kBAACC,GAAA,EAAD,CACIj+B,UAAWX,EAAOq7B,cAClBwD,UAAW7B,EACXre,OAAQue,EACR4B,kBAAkB,EAClB1qB,KAAM2qB,EAAAA,IAAAA,QACNC,UAAWnC,EACXS,gBAAiBA,EACjBE,kBAAmBA,EACnBC,kBAAmBA,MAI/B,kBAAC,GAAAwB,cAAD,KACI,kBAAC,GAAAlqB,OAAD,CAAQpR,QAASo6B,GAAWj6B,IAAAA,KAAU,WACtC,kBAAC,GAAAiR,OAAD,CAAQvS,SAAUA,EAAUK,MAAM,UAAUc,QA7D1C,KACV,MAAM,aAACm5B,EAAD,UAAeoC,EAAf,QAA0BC,GAAW5D,EACvCqC,OACAnB,EAAAA,EAAAA,KAAe,CACX2C,eAAgB1Q,EAAWhP,IAC3B2f,aAAc1Q,EAAcjP,IAC5Bod,aAAAA,EACA12B,YAAY22B,EAAAA,EAAAA,QAAO,GAAI,CAAC,SAAU,cAAexB,GACjD2D,UAAAA,EACAC,QAAAA,IACDzR,MAAMhD,IACTgT,OAmDS55B,IAAAA,KAAU,W,mNEnKxB,MAAMw7B,GAAwBlY,IACjC,MAAOmY,EAAYC,IAAiBr+B,EAAAA,EAAAA,WAAS,IACtCs+B,EAAuBC,IAA4Bv+B,EAAAA,EAAAA,UAAS,IAC7DglB,GAAW8Q,EAAAA,EAAAA,eAEX0I,GAAwBp2B,EAAAA,EAAAA,cAC1B,IAQM,IARL,WACGmlB,EADH,cAEGC,EAFH,WAGGC,GAKE,EACF,MAAMgR,EDmCiB,eAACjhB,EAAD,uDAAU,GAAV,MAAwC,CACvE4c,SAAU,CACNsB,aAAagD,EAAAA,EAAAA,QAEjBlhB,OAAAA,EACAmhB,OAAO,GCxCuBC,CAAoBpR,IAC1C5kB,EAAAA,EAAAA,MAAK0vB,EAAAA,GAAAA,UAAAA,QAAAA,mBAA6CrS,EAAO7mB,IAAK4lB,EAA9Dpc,CAAwE61B,GACxEF,EAAyB,CAAChR,WAAAA,EAAYC,cAAAA,EAAeC,WAAAA,IACrD4Q,GAAc,KAElB,CAACpY,EAAQjB,IAGP6Z,GAAyBz2B,EAAAA,EAAAA,cAC1BszB,KACG9yB,EAAAA,EAAAA,MAAK0vB,EAAAA,GAAAA,UAAAA,QAAAA,oBAA+CtT,EAApDpc,CAA8Dqd,EAAO7mB,GAAIs8B,GACzE2C,GAAc,KAElB,CAACpY,EAAO7mB,GAAI4lB,IAGV8Z,GAA4B12B,EAAAA,EAAAA,cAAY,IACnCg2B,EACH,kBAAC,GAAD,IACInY,OAAQA,EACR9b,KAAMi0B,EACN9zB,QAASu0B,GACLP,IAER,MACL,CAACF,EAAYnY,EAAQ4Y,EAAwBP,IAEhD,MAAO,CAACF,WAAAA,EAAYI,sBAAAA,EAAuBM,0BAAAA,IClDlCC,GAAkB,CAC3BC,uBAAuB,GCCd3gC,IAAYC,EAAAA,GAAAA,IAAW,KAAM,CACtCs3B,SAAU,CACN5zB,KAAM,EACNhB,QAAS,OACT8N,cAAe,SACfnN,SAAU,cCiDZs9B,IAAc15B,EAAAA,EAAAA,OAChB,IAA+F,IAA9F,OAACiY,EAAD,SAAS5e,EAAT,QAAmB4pB,EAAnB,QAA4B9N,EAAUqkB,GAAtC,QAAuDpQ,EAAvD,UAAgEO,EAAhE,OAA2EjJ,GAAmB,EAC3F,MAAMpnB,EAASR,MACRilB,EAASxjB,GAASgpB,KACnB9D,GAAW8Q,EAAAA,EAAAA,gBACX,kBAACC,EAAD,WAAoBC,EAApB,iBAAgCvS,EAAhC,aAAkDE,GAAgBL,GAClE,KAAC2F,EAAD,YAAOC,EAAP,cAAoB7e,EAApB,sBAAmC4Z,GAAyBnkB,EAC5D2sB,GAAqC1tB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,iCACjDgmB,GAAe5sB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,iBAC3Bu5B,EAAczS,KAAuCC,EAAAA,EAAAA,KAAaf,IACjEpN,IAAKT,EAAW3e,KAAMonB,GAAc/I,GAAU,IAC/C,WAAC4gB,EAAD,sBAAaI,EAAb,0BAAoCM,GAA6BX,GAAqBlY,GAEtFgJ,EAAcW,GAAe1H,GAAsBC,GAA8BvpB,EAAU2nB,IAE1F4Y,EAAmBC,IAAkBz2B,EAAAA,EAAAA,UACxC,KAAwC02B,EAAAA,EAAAA,WAAU3W,GAAV2W,CAA6B7W,IACrE,CAACA,IAGC8W,GAAgB32B,EAAAA,EAAAA,UAAQ,KAAcwuB,EAAAA,EAAAA,MAAAA,CAAyBiI,IAAiB,CAACA,KAEjF,QAAChM,EAAD,MAAUmD,EAAV,YAAiBzR,EAAjB,YAA8B6U,GAAeJ,GAAW,CAC1D9C,UAAW3Y,EACXN,OAAAA,EACAhZ,OAAQ86B,EACRrW,KAAAA,EACA0F,QAAAA,EACAzF,YAAAA,EACAxO,QAAAA,EACA8e,MAAOjR,GAA4B4W,MAGjC,iBAAChd,GAAoBM,IAC3BN,GAAiB,KACbwX,IACA3U,EAASsT,EAAAA,GAAAA,OAAAA,QAAAA,WAAkC,CAAC/Z,IAAKT,QAGrD,MAIM0a,GAAgBpwB,EAAAA,EAAAA,cAAY,KAC9Bqb,EAAiB,MAClB,CAACA,IACEgV,GAAYrwB,EAAAA,EAAAA,cAAY,KAC1Bqb,EAAiB2P,KAClB,CAAC3P,EAAkB2P,KAEtBvlB,EAAAA,EAAAA,IAAmB,KAVfmoB,EAAW,GAYXwC,MACD,CAAC1a,EAAWpD,IAEf,MAAMgD,GAAY/U,EAAAA,EAAAA,UACd,KAAM42B,EAAAA,EAAAA,KAA6CzhB,EAAWsD,OAAOoe,KAAK1a,KAC1E,CAAChH,EAAWgH,IAEVlH,GAAgBC,EAAAA,GAAAA,GAAiB,CAACH,UAAAA,IAElCgU,GAAwBtpB,EAAAA,EAAAA,cAC1B,IAAuG,IAAtG,aAACqqB,EAAD,gBAAeD,EAAf,kBAAgCE,EAAhC,mBAAmDC,GAAmD,EACnG,MAAM,SAACgG,EAAD,eAAW8G,EAAX,QAA2B7G,IAAWC,EAAAA,EAAAA,KACxCj6B,EACAqnB,EACAwM,EAAanO,OACb9G,EACAiV,EAAahF,YAGXnD,EAAW,CAACmI,EAAanO,QACzBob,EAAc,IAAIpV,EAAU9M,GAAQ5Z,KAAKspB,EAAAA,KAEzC5J,EAAU,CACZ,CACI6H,aAAcf,GACd2O,KAAMJ,EACNzoB,MAAO,CACHsN,OAAAA,EACA8M,SAAAA,IAGR,CACIa,aAAcT,GACdqO,KAAMH,EACN1oB,MAAO,CACHsN,OAAAA,EACA8M,SAAAA,IAGR,CACIa,aAAcE,GACd0N,MAAO2G,GAAeR,EACtBhvB,MAAO,CACHsN,OAAAA,EACA8M,SAAAA,IAGR,CACIa,aAAcmC,GACdyL,KAAM0G,IAAmBC,EACzBxvB,MAAO,CACHqd,WAAY/P,EACZgQ,cAAeiF,EAAanO,OAC5BmJ,WAAYgF,EAAahF,WACzBjrB,QAASg8B,KAGnBh6B,QAAOrC,EAAAA,EAAAA,MAAK,SAEd,OACI,kBAACwyB,GAAD,CACIrR,QAASA,EACT7P,QAAS,CACL0hB,aAAc3C,EACdgD,YAAahD,GAEjBvf,KAAK,QACL2hB,gBAAiB,EACjBlC,kBAAmBA,EACnBC,mBAAoBA,MAIhC,CAACnV,EAAQyI,EAAQrnB,EAAU4/B,EAAuBU,IAGhDnQ,GAAgBpmB,EAAAA,EAAAA,UAAQ,IACnByqB,EAAQruB,KAAKusB,GAAUjnB,MAAAA,OAAX,EAAWA,EAAejH,MAAKwlB,EAAAA,EAAAA,QAAO0I,MAAS9sB,OAAOmD,EAAAA,UAAUzC,QACpF,CAACmF,EAAe+oB,IAEnB,OACI,kBAACpV,GAAA,WAAD,CAA+B5b,MAAOwb,GAClC,kBAAC+hB,GAAA,WAAD,CAA6Bv9B,MAAO0iB,GAChC,yBAAKtlB,UAAWX,EAAO+2B,UACnB,kBAAC,GAAD,CACI7G,cAAeA,EACfC,WAAYuH,EACZpH,YAAaiE,EAAQluB,OACrB+pB,YAAaA,EACbN,QAASA,EACTO,UAAWA,EACXznB,SAAUsnB,EAAgByJ,EAAgBC,IAE9C,kBAACtF,GAAD,CACI5B,cAAe/T,EACfmG,aAAcA,EACd+N,sBAAuBA,EACvB0B,QAASA,EACTx0B,SAAUA,EACVkmB,YAAaA,EACbza,cAAeA,IAEnB,kBAAC4uB,EAAA,EAAD,CACIC,mBAAoBjR,GACpBkR,MAAO5C,EACPtN,KAAMA,EACNmQ,aAAcpD,EACd9M,YAAaA,EACbmQ,oBAAqBtD,IAExB9R,GAAyB,kBAACqV,EAAA,EAAD,OAE7B8E,GAAc,kBAACU,EAAD,WAOnCG,GAAYrgB,YAAc,cAE1B,Y,yIC3MO,MCxBMvgB,IAAYC,EAAAA,GAAAA,IAAW,KAAM,CACtCs3B,SAAU,CACN5zB,KAAM,EACNhB,QAAS,OACT8N,cAAe,SACfnN,SAAU,cCwCLi+B,IAAer6B,EAAAA,EAAAA,OAAK,IAAoE,IAAnE,OAACiY,EAAD,SAAS5e,EAAT,QAAmB4pB,EAAnB,QAA4BmG,EAA5B,UAAqCO,EAArC,OAAgDjJ,GAAmB,EACjG,MAAMpnB,EAASR,KACT2mB,GAAW8Q,EAAAA,EAAAA,gBACVxS,EAASxjB,GAASgpB,MACnB,kBAACiN,EAAD,WAAoBC,EAApB,iBAAgCvS,EAAhC,aAAkDE,GAAgBL,GAClE,KAAC2F,EAAD,YAAOC,EAAP,cAAoB7e,EAApB,sBAAmC4Z,GAAyBnkB,GAC3Dye,IAAKT,EAAW3e,KAAMonB,GAAc/I,GAAU,GAC/CiP,GAAqC1tB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,iCACjDgmB,GAAe5sB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,iBAC3Bu5B,EAAczS,KAAuCC,EAAAA,EAAAA,KAAaf,IAClE,QAACyH,EAAD,MAAUmD,EAAV,YAAiBzR,EAAjB,eAA8B+a,GF/BX,KAAsE,IAArE,UAAC/hB,EAAD,OAAYtZ,EAAZ,QAAoBmqB,EAApB,KAA6B1F,EAA7B,YAAmCC,EAAnC,QAAgDuN,GAAqB,EAC/F,MAAM,MAAC/G,EAAD,MAAQ7B,GAASc,GAAW,IAC5B,iBAACpL,GAAoB+B,MACpBiR,EAAOM,IAAY72B,EAAAA,EAAAA,UAAS,IAC5BozB,EAAS0M,IAAc9/B,EAAAA,EAAAA,UAAkB,KACzC8kB,EAAahB,IAAkB9jB,EAAAA,EAAAA,UAAS,IACzC+rB,GAAShtB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,WACrBonB,GAAWhuB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,aACvBo6B,GAAchhC,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,iBAC1B,eAACgxB,EAAD,aAAiBC,IACnB73B,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,gCAAsD,GAChEq6B,GAAar3B,EAAAA,EAAAA,UACf,KAAM,CACFokB,SAAAA,EACAgT,YAAAA,EACAviB,OAAQ,CAACe,IAAKT,GACdmP,eAAgBlB,EAChBkU,YAAaC,EAAAA,OAEjB,CAACnT,EAAUgT,EAAajiB,EAAWiO,IAIjCoU,GAAsB/3B,EAAAA,EAAAA,cAAYg4B,EAAAA,EAAAA,KAAuBJ,EAAYK,EAAAA,IAAc,CAACL,IAEpFM,GAAwBC,EAAAA,GAAAA,GAAmBJ,GAE3CpJ,GAAcC,EAAAA,EAAAA,KACdwJ,EAAkBC,G,+UAAD,EAAchT,WAAY,CAACiT,EAAAA,MAAeD,GAC3DE,GAAyBv4B,EAAAA,EAAAA,cAC1Bw4B,IACOnK,IACAlT,GAAiB,GACjBwT,EACIuJ,EAAsB,CAClBxiB,UAAWA,EACXhN,OAAQmY,EAAOC,EACf9f,IAAK8f,EACL1kB,QAAQq8B,EAAAA,EAAAA,KAAuBjK,EAAcpyB,IAAW,GACxD+yB,KAAM1J,EACN+S,MAAAA,EACAlR,MAAAA,EACAoR,WAAYnK,KAGf3L,MAAMrY,IACH,MAAM,SAACouB,EAAD,MAAWxK,EAAX,iBAAkByK,GAAoBruB,EAC5CkkB,EAASN,GACTuJ,EAAWiB,EAASh8B,IAAIy7B,IACFO,EAASh8B,KAAI,QAAC,IAACwZ,GAAF,SAAWA,KAC5BrZ,OAAS,GACvB4e,GAAemd,EAAAA,EAAAA,KAAmCD,OAGzD/V,SAAQ,IAAM1H,GAAiB,QAG5C,CAACzF,EAAWtZ,EAAQqpB,EAAO6B,EAAOzG,EAAMC,EAAayN,EAAgBF,EAASG,IAWlF,OARA32B,EAAAA,EAAAA,YAAU,KACN0gC,MACD,CAACA,IAMG,CAACvN,QAAAA,EAASmD,MAAAA,EAAOzR,YAAAA,EAAa+a,gBAJdz3B,EAAAA,EAAAA,cAAY,KAC/Bu4B,GAAuB,KACxB,CAACA,MEnCkDO,CAAc,CAChEzK,UAAW3Y,EACXA,UAAAA,EACAtZ,QAAQ2yB,EAAAA,EAAAA,MAAAA,CAAyB3O,GACjCS,KAAAA,EACAC,YAAAA,EACAyF,QAAAA,IAEEjR,GAAY/U,EAAAA,EAAAA,UACd,KAAM42B,EAAAA,EAAAA,KAA6CzhB,EAAWsD,OAAOoe,KAAK1a,KAC1E,CAAChH,EAAWgH,IAEVlH,GAAgBC,EAAAA,GAAAA,GAAiB,CAACH,UAAAA,IAElCuR,EAAcW,GAAexH,GAAsB,GAAIxpB,EAAU2nB,IAEjE,iBAACpE,GAAoBM,IAC3BN,GAAiB,KACb0d,IACA7a,EAASsT,EAAAA,GAAAA,OAAAA,QAAAA,WAAkC,CAAC/Z,IAAKT,QAGrD,MAIM0a,GAAgBpwB,EAAAA,EAAAA,cAAY,KAC9Bqb,EAAiB,MAClB,CAACA,IACEgV,GAAYrwB,EAAAA,EAAAA,cAAY,KAC1Bqb,EAAiB2P,KAClB,CAAC3P,EAAkB2P,KAEtBvlB,EAAAA,EAAAA,IAAmB,KAVfmoB,EAAW,GAYXwC,MACD,CAAC1a,IAEJ,MAAM4T,GAAwBtpB,EAAAA,EAAAA,cAC1B,IAAuG,IAAtG,aAACqqB,EAAD,gBAAeD,EAAf,kBAAgCE,EAAhC,mBAAmDC,GAAmD,EACnG,MAAM,SAACgG,EAAD,QAAWC,IAAWC,EAAAA,EAAAA,KACxBj6B,EACAqnB,EACAwM,EAAanO,OACb9G,EACAiV,EAAahF,YAEXnD,EAAW,CAACmI,EAAanO,QACzBob,EAAc,IAAIpV,EAAU9M,GAAQ5Z,KAAKspB,EAAAA,KAEzC5J,EAAU,CACZ,CACI6H,aAAcf,GACd2O,KAAMJ,EACNzoB,MAAO,CACHsN,OAAAA,EACA8M,SAAAA,IAGR,CACIa,aAAcyB,GACdmM,KAAMH,EACN1oB,MAAO,CACHsN,OAAAA,EACA8M,SAAAA,IAGR,CACIa,aAAcE,GACd0N,MAAO2G,GAAeR,EACtBhvB,MAAO,CACHsN,OAAAA,EACA8M,SAAAA,KAGV9lB,QAAOrC,EAAAA,EAAAA,MAAK,SAEd,OACI,kBAACwyB,GAAD,CACIrR,QAASA,EACT7P,QAAS,CACL0hB,aAAc3C,EACdgD,YAAahD,GAEjBvf,KAAK,QACL2hB,gBAAiB,EACjBlC,kBAAmBA,EACnBC,mBAAoBA,MAIhC,CAACnV,EAAQyI,EAAQrnB,EAAUsgC,IAGzBnQ,GAAgBpmB,EAAAA,EAAAA,UAAQ,IACnByqB,EAAQruB,KAAKusB,GAAUjnB,MAAAA,OAAX,EAAWA,EAAejH,MAAKwlB,EAAAA,EAAAA,QAAO0I,MAAS9sB,OAAOmD,EAAAA,UAAUzC,QACpF,CAACmF,EAAe+oB,IAEnB,OACI,kBAACpV,GAAA,WAAD,CAA+B5b,MAAOwb,GAClC,kBAAC+hB,GAAA,WAAD,CAA6Bv9B,MAAO0iB,GAChC,yBAAKtlB,UAAWX,EAAO+2B,UACnB,kBAAC,GAAD,CACI7G,cAAeA,EACfC,WAAYuH,EACZpH,YAAaiE,EAAQluB,OACrB+pB,YAAaA,EACbN,QAASA,EACTO,UAAWA,EACXznB,SAAUsnB,EAAgByJ,EAAgBC,IAE9C,kBAACtF,GAAD,CACI5B,cAAe/T,EACfmG,aAAcA,EACd+N,sBAAuBA,EACvB0B,QAASA,EACTx0B,SAAUA,EACVyL,cAAeA,IAEnB,kBAAC4uB,EAAA,EAAD,CACIC,mBAAoBjR,GACpBkR,MAAO5C,EACPtN,KAAMA,EACNmQ,aAAcpD,EACd9M,YAAaA,EACbmQ,oBAAqBtD,IAExB9R,GAAyB,kBAACqV,EAAA,EAAD,YAO9CsG,GAAahhB,YAAc,eC3KpB,MAAMuiB,GAAU,IAAyF,IAAxF,OAAC3jB,EAAD,SAAS5e,EAAT,QAAmB4pB,EAAnB,QAA4B9N,EAA5B,QAAqCiU,EAArC,UAA8CO,EAA9C,OAAyDjJ,EAAzD,WAAiEmb,GAAuB,EAC5G,MAAMC,GAAQC,EAAAA,EAAAA,KA2Cd,OAAO,kBAACC,EAAA,WAAD,CAAuBn/B,MAAOi/B,GAzCtB,MACX,OAAQD,GACJ,KAAKrf,EAAYyf,iBACb,OACI,kBAAC,GAAD,CACIhkB,OAAQA,EACR5e,SAAUA,EACV4pB,QAASA,EACT9N,QAASA,EACTuL,OAAQA,EACR0I,QAASA,EACTO,UAAWA,IAGvB,KAAKnN,EAAY0f,YACb,OACI,kBAAC5L,GAAD,CACIrY,OAAQA,EACR5e,SAAUA,EACV4pB,QAASA,EACTvC,OAAQA,EACR0I,QAASA,EACTO,UAAWA,IAGvB,KAAKnN,EAAY2f,UACb,OACI,kBAAC9B,GAAD,CACIpiB,OAAQA,EACR5e,SAAUA,EACV4pB,QAASA,EACTvC,OAAQA,EACR0I,QAASA,EACTO,UAAWA,IAGvB,QACI,OAAO,gCAI0ByS,K,wCC9D1C,MAAMtjC,IAAYC,EAAAA,GAAAA,GAAW,CAChCse,MAAO,CACHvX,OAAQ,EACRkC,aAAc,MACdpG,MAAO,OACPkO,WAAY,EACZ6gB,cAAe,K,mNCIhB,MAAM0R,GAAe,IAA2D,IAA1D,QAACrtB,EAAD,WAAUc,GAAgD,EACnF,MAAMxW,EAASR,MACT,OAACuU,EAAS,GAAIhS,WAAW,SAACwlB,EAAD,UAAW9f,EAAY,MAAQ,GAAxD,OAA4D9B,EAA5D,GAAoEpF,GAAOmV,GAAW,IACtF,aAACstB,GAAgBxsB,GACjB,WAACkR,GAAclR,EA0BfysB,EAAc,CAChBlvB,OAAQA,EACR4F,UA1BgBpQ,EAAAA,EAAAA,cACf25B,IAOGF,EANgC,CAC5Bv7B,UAAAA,EACA9B,OAAAA,EACAoO,OAAQmvB,GAGY3iC,KAE5B,CAACyiC,EAAcziC,EAAIkH,EAAW9B,IAiB9BqV,gBAdmBlR,EAAAA,EAAAA,UACnB,KAAM,CACFq5B,WAAY,CACRvuB,QAAS,CACL7E,KAAM/P,EAAO+d,WAIzB,CAAC/d,IAODoV,WAAW,GAGf,OAAIguB,EAAAA,EAAAA,KAAoB7b,GAEhB,kBAAC8b,GAAA,EAAD,MAAwBJ,EAAxB,CAAqCtgC,KAAM4kB,EAAS5kB,KAA6B+kB,WAAYA,MAE1F4b,EAAAA,EAAAA,KAAuB/b,GACvB,kBAACgc,GAAA,EAA0BN,GAE3B,kBAAC,KAAD,CAAwBzsB,WAAYA,EAAYd,QAASA,K,8OC/CjE,MCPMlW,IAAYC,EAAAA,GAAAA,GAAW,CAChC+yB,QAAS,CACLvd,aAAc,OACdpV,YAAa,OACb2I,WAAY,2BAEhBg7B,YAAa,CACT5gC,SAAU,OACVivB,YAAa,UCGf4R,GAA6B,CAC/BC,eFL2BryB,IAC3B,MAAM,QAACqE,GAAWrE,GACXtP,WAAW,SAACwlB,GAAY,IAAO7R,GAAW,GAC3CmG,GAAUunB,EAAAA,EAAAA,KAAoB7b,GAC9B,CAACoc,EAAAA,IAAAA,QAAsBz9B,KAAK3C,IAAD,CAAaA,MAAAA,EAAOG,OAAOkS,EAAAA,GAAAA,IAAWE,EAAAA,EAAAA,KAAqBvS,QACtF,KAEN,OAAO,kBAAC,KAAD,MAA8B8N,EAA9B,CAAqCwK,QAASA,MEDrDknB,aAAYA,IAUHa,GAAiC,IAAyD,IAAxD,QAACja,EAAD,SAAUhQ,EAAV,eAAoBkqB,EAApB,QAAoChoB,GAAoB,EACnG,MAAM7b,EAASR,MACR2gC,EAAuB2D,IAA4B3iC,EAAAA,EAAAA,UAAS0a,EAAQskB,uBAC3E,OACI,kBAAC4D,EAAA,EAAD,CACIpa,QAASA,EACThQ,SAAWgQ,GAAYhQ,EAASgQ,EAAS,CAACwW,sBAAAA,IAC1C0D,eAAgBA,EAChBtqB,WAAYkqB,GACZO,cAAgB14B,IACRA,GACAw4B,EAAyBjoB,EAAQskB,wBAGzC8D,oBAAoB3L,EAAAA,EAAAA,MAAAA,CAAyB3O,KAAa9N,EAAQskB,uBAElE,kBAAC,GAAA+D,iBAAD,CACItvB,QAAS,CAAClR,MAAO1D,EAAOwjC,aACxBlmB,QACI,kBAAC,GAAA9E,SAAD,CACInR,QAAS84B,EACTxmB,SAAWvL,GAAM01B,EAAyB11B,EAAEqU,OAAOpb,SACnDxE,MAAM,YAGda,MAAOI,IAAAA,KAAU,6BAErB,kBAAC,GAAAwvB,QAAD,CAAS6Q,OAAK,EAACxjC,UAAWX,EAAOwyB,YClDhChzB,IAAYC,EAAAA,GAAAA,GAAW,CAChC+xB,QAAS,CACLrvB,QAAS,OACTW,SAAU,SACV0S,WAAY,OACZ7E,WAAY,K,2cC2BpB,MAEMyzB,GAA0B,CAC5BrB,aAAYA,IAUHsB,IAAiB39B,EAAAA,EAAAA,OAAK,IAA+D,IAA9D,OAAC0gB,EAAD,SAASkd,EAAT,WAAmBC,EAAnB,mBAA+BC,GAA+B,EAC9F,MAAMxkC,EAASR,MACRilC,EAAgBC,IAAqBvjC,EAAAA,EAAAA,UAAyB,KAC9DwjC,EAAgBC,IAAqBzjC,EAAAA,EAAAA,UAAyB++B,KAC9D2E,EAAoBC,IAAyB3jC,EAAAA,EAAAA,UAAyB,KACtE4jC,EAAiBC,IAAsB7jC,EAAAA,EAAAA,UAAyB,KAChE8jC,EAAgBC,IAAqB/jC,EAAAA,EAAAA,UAAuB,CAC/D6tB,MAAO1F,GAA6B,GAAG/oB,GACvCswB,MAAOC,EAAAA,IAAAA,QAEJqU,EAAoBC,IAAyBjkC,EAAAA,EAAAA,UAAuB,CACvE6tB,MAAOxF,GAAwBD,IAAsB,GACrDsH,MAAOC,EAAAA,IAAAA,OAEJuU,EAAiBC,IAAsBnkC,EAAAA,EAAAA,UAAuB,CACjE6tB,MAAOxF,GAAwBD,IAAsB,GACrDsH,MAAOC,EAAAA,IAAAA,OAGJS,EAAQgU,IAAapkC,EAAAA,EAAAA,UAAsB,MAC5CpB,GAAWG,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,aACvB6X,GAASze,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,WAErB0+B,GAAej8B,EAAAA,EAAAA,cAAak8B,IAC9BF,GAAWhU,GAAYA,IAAWkU,EAAQ,KAAOA,MAClD,IACGC,GAAcn8B,EAAAA,EAAAA,cAAY,KAC5Bg8B,EAAU,QACX,IACGp3B,EAAoB,OAAXojB,EAET7J,GAAawJ,EAAAA,EAAAA,KAAcnxB,EAAU4e,MAAAA,OAAX,EAAWA,EAAQre,MAK7CujC,GAAiB/5B,EAAAA,EAAAA,UAAQ,IAHJ4d,CAAAA,IACtBA,EAAWthB,YAAc,IAAIV,OAAOgiB,EAAWie,qBAAuB,IAAIhgC,OAAOigC,EAAAA,KAEjDC,CAAkBne,IAAa,CAACA,IAE/Doe,GAAuBh8B,EAAAA,EAAAA,UAAQ,IACJ,CAAC,MACtBkgB,EAAAA,IAAAA,WADqB,CACW+b,MAAOC,EAAAA,KADlB,MAErBhc,EAAAA,IAAAA,mBAFqB,CAEmB+b,MAAOE,EAAAA,OAG3BC,QAAO,CAAC9/B,EAAD,KAAsC,IAAzB,MAAC2/B,GAAwB,EAAdxe,E,kXAAc,cAErE,OADAwe,EAAMre,IAAethB,EAAW+/B,KAAK5e,GAC9BnhB,IACR,KACJ,CAACshB,IAEE0e,GAAiCt8B,EAAAA,EAAAA,UACnC,IAAM,IAAIg8B,KAAyBjC,IACnC,CAACA,EAAgBiC,IAGfO,GAA4Bv8B,EAAAA,EAAAA,UAC9B,IAAM,CAACw8B,EAAAA,IAAAA,GAAoBC,EAAAA,IAAAA,iBAAsC1C,IACjE,CAACA,IAGC2C,EAAyB,CAAC/B,EAAgC5oB,KAC5D+oB,EAAkB/oB,GAClB6oB,EAAkBD,IAGhBgC,GAAW38B,EAAAA,EAAAA,UACb,IAAM,CACF,CACI4F,YAAa,CACTnP,GAAI2iB,EAAYyf,iBAChBjjC,KAAMgnC,EACNj3B,aAAc3L,IAAAA,KAAU,sBAE5B6iC,YAAa,CACTC,UAAW9iC,IAAAA,KAAU,qBACrB+iC,aACI,kBAACjD,GAAD,CACIja,QAAS8a,EACT9qB,SAAU6sB,EACV3C,eAAgBuC,EAChBvqB,QAAS8oB,KAIrBhb,QAAS8a,EACT5oB,QAAS8oB,EACT7U,QAASmV,EACT5U,UAAW6U,GAEf,CACIx1B,YAAa,CACTnP,GAAI2iB,EAAY0f,YAChBljC,KAAMonC,EACNr3B,aAAc3L,IAAAA,KAAU,iBAE5B6iC,YAAa,CACTC,UAAW9iC,IAAAA,KAAU,gBACrB+iC,aACI,kBAAC9C,EAAA,EAAD,CACIpa,QAASkb,EACTlrB,SAAUmrB,EACVjB,eAAgBwC,EAChB9sB,WAAY6qB,MAIxBza,QAASkb,EACT/U,QAASqV,EACT9U,UAAW+U,GAEf,CACI11B,YAAa,CACTnP,GAAI2iB,EAAY2f,UAChBnjC,KAAMqnC,EACNt3B,aAAc3L,IAAAA,KAAU,gBAE5B6iC,YAAa,CACTC,UAAW9iC,IAAAA,KAAU,eACrB+iC,aACI,kBAAC9C,EAAA,EAAD,CACIpa,QAASob,EACTprB,SAAUqrB,EACVnB,eAAgBA,KAI5Bla,QAASob,EACTjV,QAASuV,EACThV,UAAWiV,KAGnB,CACIb,EACAE,EACAE,EACAE,EACAqB,EACAC,EACApB,EACAE,EACAE,EACAxB,IAIF8C,GAAc78B,EAAAA,EAAAA,UAChB,kCAAW28B,EAASlV,UAApB,aAAW,EAAkBoV,YAA7B,CAA0Cl7B,QAASi6B,MACnD,CAACA,EAAanU,EAAQkV,KAGpB,QAAC3W,EAAD,QAAUnG,EAAV,QAAmB9N,EAAnB,UAA4BwU,GAAaoW,EAASlV,IAAW,GAanE,OAXAnwB,EAAAA,EAAAA,YAAU,KACN,IAAKkjC,EAAU,OACf,MAAM0C,GAAgB3K,EAAAA,EAAAA,SAAO,EAAM,gBAAbA,CAA8BkI,GACpDgB,EAAUyB,EAAgB9jB,EAAYyf,iBAAmB,QAC1D,CAAC2B,KAEJljC,EAAAA,EAAAA,YAAU,KACDkjC,GACLE,EAAmB,CAACwC,cAA0B,OAAXzV,MACpC,CAACA,IAGA,yBAAK5wB,UAAWX,EAAOwxB,SACnB,kBAACyV,EAAA,EAAD,CAAW37B,KAAM6C,EAAQ7L,MAlLT,KAmLZ,kBAACwsB,GAAuB1N,SAAxB,CAAiC7d,MAAOojC,GACpC,kBAACrE,GAAD,CACIlb,OAAQA,EACRzI,OAAQA,EACRgL,QAASA,EACT9N,QAASA,EACTiU,QAASA,EACTO,UAAWA,EACXtwB,SAAUA,EACVwiC,WAAYhR,MAIxB,kBAAC2V,EAAA,EAAD,CACIC,cAAc1d,EAAAA,EAAAA,OAAM,cAAegd,GACnCW,cAAe5B,EACf6B,cAAe9V,QAM/B8S,GAAetkB,YAAc,iB,2ECzO7B,MAOA,IAPkBtgB,EAAAA,GAAAA,IAAW,KAAM,CAC/BuR,OAAQ,CACJzI,SAAU,OACVlG,QAAS,gB,qJCcjB,MAAMilC,GAAgB,CAClB,CACI/mC,GAAI4iB,EAAmB6C,QACvBvW,aAAc3L,IAAAA,KAAU,UACxBjD,MAAOiD,IAAAA,KAAU,UACjByjC,KAAMC,GAAAA,GAEV,CACIjnC,GAAI4iB,EAAmBskB,MACvBh4B,aAAc3L,IAAAA,KAAU,SACxBjD,MAAOiD,IAAAA,KAAU,SACjByjC,KAAMG,GAAAA,IAoCd,GA5BmC,IAAwB,IAAvB,UAAC/mC,GAAsB,EACvD,MAAMX,EAASR,MACT,mBAACumB,EAAD,cAAqBva,GAAiB+a,MACtC,sBAACvB,GAAyByB,KAC1BkhB,EAAcn8B,EAAcnF,O1D/BC,E0D4CnC,OACI,kBAACuhC,GAAA,EAAD,CACIjnC,UAAWA,EACXiU,QAAS,CAAC5D,OAAQhR,EAAOgR,QACzB62B,MAAOP,GAAMphC,KAhBJ4hC,GACbA,EAASvnC,KAAO4iB,EAAmB6C,Q,+UAAnC,IAEW8hB,EAFX,CAGQtlC,SAAUmlC,EACVl4B,aAAck4B,EACR7jC,IAAAA,KAAU,uDAAwD,CAChEikC,Y1DvCe,I0DyCjBD,EAASr4B,eAEjBq4B,IAMFE,OAAQjiB,EACRpM,SAAUqL,KC3DTxlB,IAAYC,EAAAA,GAAAA,IAAYqQ,IAAD,CAChC6f,OAAQ,CACJttB,QAAS,eACTkE,gBAAiB,OACjB,cAAe,CACX6F,OAAQ,OACRvM,YAAa,OACb2V,WAAY,MACZ3S,MAAO,wBAGfhC,MAAO,CACH+B,SAAU,OACV6D,WAAY,IACZxE,WAAY,OACZqO,cAAe,SACfzN,MAAOiN,EAAMM,QAAQvI,KAAKwI,SAE9B43B,eAAgB,CACZzyB,WAAY,QAEhB0yB,YAAa,CACTroC,YAAa,QAEjB63B,MAAO,CACH70B,MAAOiN,EAAMM,QAAQvI,KAAK0I,WAE9B43B,SAAU,GACVC,eAAgB,CACZh8B,OAAQ,OACR5F,OAAQ,QACR3D,MAAO,2BCDTwlC,IAAmBniC,EAAAA,EAAAA,MAAI5C,EAAAA,EAAAA,MAAK,WAErBglC,GAAc,IAOd,IAPe,OACxBlhB,EADwB,YAExB8B,EAFwB,gBAGxBqf,EAHwB,gBAIxBC,EAJwB,UAKxBC,EALwB,kBAMxBC,GACS,EACT,MAAM1oC,EAASR,KACTmf,GAAiBze,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,WAC7BJ,GAAqBG,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,cAEjC,cAACqL,EAAD,eAAgB+Z,GAAkBgB,MAClC,iBAAC3B,GAAoB6B,KAErBgF,EAAW4c,GAAiB78B,IAC5B,SAACsuB,EAAD,QAAWC,IAAW4O,EAAAA,EAAAA,KAA8B5oC,EAAUqnB,EAAQzI,EAAQnT,GAC9Eq1B,EAAc,IAAIpV,EAAU9M,GAAQ5Z,KAAKspB,EAAAA,KAEzC5J,GAAU3a,EAAAA,EAAAA,UACZ,IACI,CACI,CACIwiB,aAAcf,GACd2O,KAAMJ,EACNzoB,MAAO,CACHsN,OAAAA,EACA8M,SAAAA,IAGR,CACIa,aAAcT,GACdqO,KAAMH,EACN1oB,MAAO,CACHsN,OAAAA,EACA8M,SAAAA,IAGR,CACIa,aAAcE,GACd0N,MAAO2G,EACPxvB,MAAO,CACHsN,OAAAA,EACA8M,SAAAA,KAGV9lB,QAAOrC,EAAAA,EAAAA,MAAK,UAClB,CAACy2B,EAASD,EAAUnb,EAAQ8M,EAAUoV,IAGpC+H,EAA4C,IAAzBp9B,EAAcnF,OAMjCwiC,GAA0Bt/B,EAAAA,EAAAA,cAAY,KACxCm/B,EAAkBI,EAAAA,OACnB,CAACJ,IACEK,GAAej/B,EAAAA,EAAAA,UAAiC,IAC3C,CACH,CACIyO,UAAWkwB,EACXO,YAAY,EACZnhC,KAAM/D,IAAAA,KAAU,gBAChBH,QAASklC,EACTtoC,GAAI,eAGb,CAACsoC,EAAyBJ,IAC7B,OACI,kBAACQ,GAAA,EAAD,CAAiBpoC,MAAO,GAAI+T,QAAS,CAAC7E,KAAM/P,EAAO2vB,SAC/C,kBAAC,GAAAhb,WAAD,CAAYhU,UAAWX,EAAOa,OAC1B,8BAAOiD,IAAAA,KAAU,iBAChB8kC,GACG,0BAAMjoC,UAAWX,EAAO03B,OACnB,IADL,IAEMlsB,EAAcnF,OACfkf,GAAkB,IAAMA,EAH7B,MAOPqjB,GACG,kBAAC,GAAA7zB,OAAD,CAAQpR,QA/BS,KACzBihB,EAAiB,KA8B8BjkB,UAAWX,EAAOioC,eAAgBplC,MAAM,WAC1EiB,IAAAA,KAAU,cAGnB,kBAAColC,GAAA,EAAD,MACCN,GACG,oCACI,kBAAC9S,GAAD,CAAcrR,QAASA,EAASsR,gBAAiB,IACjD,kBAAC,GAAAzC,QAAD,CAASC,YAAa,WAAY3e,QAAS,CAACzI,SAAUnM,EAAOooC,mBAGrE,kBAACe,GAAA,EAAD,CAAchjC,MAAO4iC,EAAcnS,OAAO,0BAC1C,kBAACwS,GAAA,EAAD,CACIlgB,YAAaA,EACbqf,gBAAiBA,EACjBC,gBAAiBA,IAErB,kBAAC,GAAAlV,QAAD,CAASC,YAAY,WAAW3e,QAAS,CAACzI,SAAUnM,EAAOmoC,YAC3D,kBAAC,GAAD,Q,oDCrIL,MAAMkB,GAAkBpmB,IAAAA,cAKpB,CACCqmB,YAAa,GACbC,aAAc,S,mNAG1BF,GAAgBtpB,YAAc,kBCH9B,MAYA,GAZuCypB,IACnC,MAAMC,GAAeje,EAAAA,EAAAA,aAAW,CAACke,EAAmBpxB,KAChD,MAAM,cAACoI,GAAiBgpB,GAClB,YAACJ,IAAex7B,EAAAA,EAAAA,YAAWu7B,IAC3B9oB,EAAW+oB,EAAY5oB,EAAchB,KAC3C,OAAO,kBAAC8pB,EAAD,MAAeE,EAAf,CAA+BnpB,SAAUA,EAAUjI,IAAKA,QAInE,OADAmxB,EAAa1pB,YAAc,eACpB0pB,GChBEE,GAA6B,2BAE7BnqC,IAAYC,EAAAA,GAAAA,GAAW,CAChCmqC,8BAA+B,CAC3Bx9B,OAAQ,OACR9J,MAAO,OACPH,QAAS,OACTC,WAAY,cAEhBynC,2BAA4B,CACxB1mC,KAAM,EACNqS,WAAY,OAEhBs0B,YAAa,CACT9nC,OAAQ,UACRwT,WAAY,QAEhBzT,UAAW,CACPgB,WAAY,YAEhBgnC,iBAAkB,CACdtjC,WAAY,IACZipB,SAAU,WACV,WAAY,CACR+B,QAAS,KACT/B,SAAU,WACV5W,KAAM,UACND,IAAK,EACLvW,MAAO,SACP8J,OAAQ,OACR5D,WAAYmhC,GACZhY,cAAe,WC9BdnyB,IAAYC,EAAAA,GAAAA,GAAW,CAChCuqC,MAAO,CACHthC,aAAc,MACdF,WAAYmhC,GACZljC,WAAY,IACZ2F,OAAQ,OACR9J,MAAO,OACPH,QAAS,OACTC,WAAY,SACZ8N,eAAgB,SAChB+5B,UAAW,aACXh1B,aAAc,MACdnE,UAAW,UCQnB,GAX6B,IAA6B,IAA5B,eAACwP,GAA2B,EACtD,MAAMtgB,EAASR,MACT,sBAAC0qC,EAAwB,KAAMp8B,EAAAA,EAAAA,YAAWq8B,GAAAA,GAC1C7P,EAAQ4P,EAAsBvkC,QAAQ+Z,IAAQ0qB,EAAAA,EAAAA,KAAoB1qB,EAAKY,EAAeZ,OAAMrZ,OAClG,OAAOi0B,EAAQ,EACX,kBAAC,GAAA+P,QAAD,CAASxpC,MAAiB,IAAVy5B,EAAcx2B,IAAAA,KAAU,iBAAkB,CAACw2B,MAAAA,IAAUx2B,IAAAA,KAAU,mBAAoB,CAACw2B,MAAAA,KAChG,yBAAK35B,UAAWX,EAAOgqC,OAAQ1P,IAEnC,MCZFgQ,GAAiCC,GACnCC,GAAAA,GAYSC,GAAqB,IAAoF,IAAlFlnC,OAAO,cAACmd,EAAD,gBAAgBE,EAAhB,kBAAiC8pB,EAAjC,UAAoDjC,IAAuB,EAClH,MAAMzoC,EAASR,KACTmrC,GAAgC7gC,EAAAA,EAAAA,UAClC,KAAM,CAAEogC,sBAAuBQ,EAAmBE,qBAAsB5qC,EAAO+pC,oBAC/E,CAACW,EAAmB1qC,EAAO+pC,mBAE/B,OACI,yBAAKppC,UAAWX,EAAO+B,WACnB,kBAACooC,GAAA,WAAD,CAAmC5mC,MAAOonC,GACtC,kBAACL,GAAD,CACIv2B,OAAQ6M,EACRF,cAAeA,EACf+nB,UAAWA,EACXhoB,UAAWoqB,Q,gBChCxB,MAAMC,GAAoB7nB,IAAAA,cAItB,IAEX6nB,GAAkB/qB,YAAc,oBCNzB,MAAMvgB,IAAYC,EAAAA,GAAAA,GAAW,CAChCsrC,kBAAmB,CACf5oC,QAAS,OACTutB,SAAU,WACV7W,IAAK,OACL6Y,MAAO,SAEXsZ,SAAU,CACN7oC,QAAS,OACTutB,SAAU,WACV,aAAc,CACV,uBAAwB,CACpBvtB,QAAS,WAIrBovB,OAAQ,CACJpvB,QAAS,WCNJ8oC,GAAmB,IAAkC,IAAjC,MAACvnC,EAAD,GAAQnD,EAAR,SAAY2qC,GAAqB,EAC9D,MAAMlrC,EAASR,MACT,UAAC2rC,EAAD,aAAYC,EAAZ,UAA0BC,IAAav9B,EAAAA,EAAAA,YAAWg9B,IAClDxyB,GAAM3N,EAAAA,EAAAA,UAKZ,OACI,yBAAKhK,UAAWX,EAAOgrC,UAClBtnC,GACa,IAAbwnC,GACG,yBAAKvqC,UAAWe,IAAAA,CAAW1B,EAAO+qC,kBAAmB,CAAC,CAAC/qC,EAAOuxB,QAAS8Z,IAAc9qC,IAAM+X,IAAKA,GAC5F,kBAAC,KAAD,CAAiB5Y,KAAMg3B,GAAAA,EAAc/yB,QATvB,KAC1BwnC,EAAU7yB,EAAIvN,SACdqgC,EAAa7qC,IAOoEyD,KAAM,S,gBCZxF,MAAMsnC,GAAgC,IAAuC,IAAtC,MAAC5nC,EAAD,cAAQgd,EAAR,GAAuBngB,GAAe,EAChF,MAAMP,EAASR,MACT,YAAC8pC,EAAD,aAAcC,IAAgBz7B,EAAAA,EAAAA,YAAWu7B,IACzCkC,GAAgBhiC,EAAAA,EAAAA,cAAY,IAAMggC,EAAa7oB,EAAchB,MAAM,CAAC6pB,EAAc7oB,IAClFH,EAAW+oB,EAAY5oB,EAAchB,KAC3C,OACI,yBAAK/e,UAAWX,EAAO4pC,+BACnB,kBAAC4B,GAAA,EAAD,CAAmBjrB,SAAUA,EAAU5c,QAAS4nC,EAAe5qC,UAAWX,EAAO8pC,cACjF,yBAAKnpC,UAAWX,EAAO6pC,4BACnB,kBAACoB,GAAD,CAAkBvnC,MAAOA,EAAOnD,GAAIA,O,4BCrB7C,MAAMkrC,GAAuBxoB,IAAAA,cAGzB,CACCyoB,cAAe,KACfC,mBAAoB,SAGhCF,GAAqB1rB,YAAc,uBCyBnC,MAoFA,IAAerZ,EAAAA,EAAAA,OApFS,IAOX,IANTnD,OAAO,WAACmrB,EAAD,OAAa/P,EAAb,WAAqBiQ,EAArB,WAAiCgd,GADnB,mBAErB9X,EAFqB,kBAGrBD,EAHqB,sBAIrB8L,EAJqB,QAKrB/qB,EAAU,GALW,KAMrBR,EAAO,SACE,EACT,MAAM,SAAC0lB,EAAD,eAAW8G,EAAX,QAA2B7G,GAAW6R,EACtC/K,EAAc,CAACnS,EAAY/P,GAAQ5Z,KAAKspB,EAAAA,KAExCwd,GAAqBjd,EACrBkd,GAAoBD,GAAqBjd,EAAWhqB,SAASi9B,EAAAA,KAC7DkK,GAA0BD,IAAqBD,EAE/CpnB,EAAU,CACZ,CACI6H,aAAcf,GACd2O,KAAMJ,IAAagS,GAAoBC,GAA0BF,GACjEx6B,MAAO,CACHsN,OAAQ+P,EACRjD,SAAU,CAAC9M,KAGnB,CACI2N,aAAcT,GACdqO,KAAMH,IAAYgS,GAA0BF,GAC5Cx6B,MAAO,CACHsN,OAAQ+P,EACRjD,SAAU,CAAC9M,KAGnB,CACI2N,aAAcyB,GACdmM,KAAMH,GAAW+R,EACjBz6B,MAAO,CACHsN,OAAQ+P,EACRjD,SAAU,CAAC9M,KAGnB,CACI2N,aAAcE,GACd0N,MAAO2G,IAAgBiL,GAAoBC,GAC3C16B,MAAO,CACHsN,OAAQ+P,EACRjD,SAAU,CAAC9M,KAGnB,CACI2N,aAAcP,GACdmO,KAAMH,GAAW8R,KAAsBxd,EAAAA,EAAAA,KAAmB1P,GAC1DtN,MAAO,CACHsN,OAAQ+P,EACRjD,SAAU,CAAC9M,KAGnB,CACI2N,aAAcmC,GACdyL,KAAM0G,IAAmBC,EACzBxvB,MAAO,CACHqd,WAAAA,EACAC,cAAehQ,EACfiQ,WAAAA,EACAjrB,QAASg8B,KAGnBh6B,QAAOrC,EAAAA,EAAAA,MAAK,SAEd,OACI,kBAACwyB,GAAD,CACIrR,QAASA,EACTsR,gBAAiB,EACjB3hB,KAAMA,EACN4hB,iBAA2B,UAAT5hB,EAAmB,UAAOxQ,EAC5CgR,QAAS,CACL0hB,aAAc1hB,EAAQ0hB,aACtBK,YAAa/hB,EAAQ+hB,aAEzB7C,mBAAoBA,EACpBD,kBAAmBA,OChE/B,IA5Cep0B,EAAAA,GAAAA,GAAW,CACtBme,UAAW,CACP8R,SAAU,WACVptB,MAAO,OACP8J,OAAQ,QACRjK,QAAS,OACT8N,cAAe,SACfC,eAAgB,gBAChBpN,SAAU,UAEdkpC,QAAS,CACLzlC,gBAAiB,sBAErB0lC,QAAS,CACL,WAAY,CACRxa,QAAS,KACT/B,SAAU,WACV5W,KAAM,EACND,IAAK,EACLvW,MAAO,OACP8J,OAAQ,MACR5D,WAAY,QAAC,MAAC3F,GAAF,SAA0BA,KAG9CqpC,aAAc,CACVxc,SAAU,WACVyc,OAAQ,EACR3lC,OAAQ,OAEZ4lC,uBAAwB,CACpBjqC,QAAS,OACTC,WAAY,SACZgK,OAAQ,OACR5F,OAAQ,WAEZ8rB,YAAa,CACTnwB,QAAS,OACTC,WAAY,UAEhBu0B,YAAa,CACTnhB,WAAY,S,yLC9Cb,MCUD62B,GAA0BC,GDVM,yBCUGA,EAAK9e,YCRjC+e,GAAmCtpB,IAAAA,eAC5C,SAGJspB,GAAiCxsB,YAAc,mCCJxC,MAAMvgB,IAAYC,EAAAA,GAAAA,GAAW,CAChCme,UAAW,CACP8R,SAAU,WACVvf,UAAW,OACXhO,QAAS,OACTW,SAAU,SACV0D,OAAQ,SAEZgmC,kBAAmB,CACfjmC,gBAAiB,sBACjBlE,QAAS,yB,mNCIjB,MAMMoqC,IAA2BroC,EAAAA,EAAAA,MAAK,CAAC,0BAA2B,WAOrDsoC,GAAe,IAA4B,IAA3B,OAAC/tB,EAAD,MAAS8T,GAAkB,EACpD,MAAMzyB,EAASR,KACTmtC,EHdsB,KAA4B,IAA3B,OAAChuB,EAAD,MAAS8T,GAAkB,EACxD,MAAM3F,GAAuB5sB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,iBACnCkmB,GAAsB9sB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,2BAClComB,GAAShtB,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,WACrBoxB,GAAcC,EAAAA,EAAAA,MACbzY,IAAKT,GAAaN,EACnBiuB,GAAmB/S,EAAAA,EAAAA,KAA4BpH,IAC9Coa,EAAqBC,IAA0B3rC,EAAAA,EAAAA,WAAS,IACxD4rC,EAAOC,IAAY7rC,EAAAA,EAAAA,UAA6B,IAEjD8rC,GAAY1jC,EAAAA,EAAAA,cACd,KACQujB,GAAgB8f,IAAa3tB,IAC7B6tB,GAAuB,GACvB5U,GACIgV,EAAAA,EAAAA,KAAkB,CACdjuB,UAAAA,EACA6N,aAAAA,EACAE,YAAAA,EACAE,OAAAA,KAGHf,MAAMrY,IACH,MAAM,KAACpM,GAAQoM,EACTq5B,GAAoBC,EAAAA,EAAAA,gBAAcxoC,EAAAA,EAAAA,UAASgoC,GAAW,cACtDS,GAAuBC,EAAAA,EAAAA,SAAQ,CAACjB,GAAwBc,IACxDJ,EAAQrlC,EAAK/B,OAAO0nC,GAC1BL,EAASD,MAEZ3gB,SAAQ,IAAM0gB,GAAuB,QAGlD,CAAC7tB,EAAW+N,EAAaE,EAAQJ,EAAc8f,IAG7CW,GAAkBhkC,EAAAA,EAAAA,cAAY,CAACikC,EAAoCnoB,KACrE2nB,GAAS9mC,EAAAA,EAAAA,MAAI8D,EAAAA,EAAAA,OAAKgrB,EAAAA,EAAAA,QAAO,SAAUwY,IAASC,EAAAA,EAAAA,WAAUpoB,QACvD,KAEG,mBAACR,GAAsB4B,KACvBinB,GAAkBnkC,EAAAA,EAAAA,cAAY,KAChCsb,EAAmB,CAAC4N,EAAMhN,WAC3B,CAACZ,EAAoB4N,EAAMhN,SAE9B,MAAO,CACHkoB,QAASd,EACTE,MAAAA,EACAE,UAAAA,EACAM,gBAAAA,EACA7V,MAAOqV,EAAM1mC,OACbqnC,gBAAAA,IGpCkBE,CAAiB,CAACjvB,OAAAA,EAAQ8T,MAAAA,KAC1C,MAACsa,EAAD,UAAQE,GAAaN,EACrBkB,GAA8B//B,EAAAA,EAAAA,YAAWy+B,KAC/CnrC,EAAAA,EAAAA,YAAU,KACN6rC,MACD,CAACA,IACJ,MAAMX,EAAOS,EAAM,GACb/Y,GAAiB6F,EAAAA,EAAAA,KAA4BpH,IACnDrxB,EAAAA,EAAAA,YAAU,KACNysC,MAAAA,GAAAA,EAA8B7Z,IAAkBsY,KACjD,CAACuB,EAA6B7Z,EAAgBsY,IACjD,MAAMpZ,EAAUoZ,GACZ,kBAACwB,GAAA,EAAD,CACIN,OAAQlB,EAAKkB,OACbO,gBAAiBzB,EAAKyB,gBACtBC,SAAU1B,EAAK0B,SACfC,WAAY3B,EAAKn+B,SAGzB,OAAOm+B,EACH,kBAAC4B,GAAA,WAAD,CAA+B3qC,MAAOopC,GAClC,yBAAKhsC,UAAWX,EAAO4d,WACnB,kBAACuwB,GAAA,EAAD,MArCW7B,CAAAA,IAAD,CACtB8B,KAAM9B,EAAK+B,QACX/tC,KAAMgsC,EAAKgC,6BACXC,UAAWjC,EAAKiC,UAChBC,KAAMlC,EAAKvsB,cAiC+B0uB,CAAkBnC,GAAhD,CAAuDpZ,QAASA,IAC5D,yBAAKvyB,UAAWX,EAAOwsC,mBACnB,kBAACkC,GAAA,EAAD,CAAkBV,SAAU1B,EAAK0B,SAAUR,OAAQlB,EAAKkB,OAAQS,WAAY3B,EAAKn+B,UAErF,kBAACwgC,GAAA,EAAqBlC,GAAyBH,OAI3D,MCzDKsC,GAAe,CACxB,CACIruC,GAAI,UACJmD,MAAOI,IAAAA,KAAU,gBACjBgkB,mBAAoB,CAChBxnB,KAAMqgB,EAAAA,IAAAA,aAEVuqB,UAAU,EACV2D,WAAW,EACXC,aAAc,IACdC,YAAY,EACZlH,MAAO,CAAC1kB,EAAmB6C,QAAS7C,EAAmBskB,QAE3D,CACIlnC,GAAI,aACJmD,MAAOI,IAAAA,KAAU,gBACjBgkB,mBAAoB,CAChBxnB,KAAMqgB,EAAAA,IAAAA,aAEVmuB,aAAc,IACdvmC,SAAU,IACVwmC,YAAY,EACZlH,MAAO,CAAC1kB,EAAmB6C,QAAS7C,EAAmBskB,QAE3D,CACIlnC,GAAI,eACJmD,MAAOI,IAAAA,KAAU,YACjB+jC,MAAO,CAAC1kB,EAAmB6C,UAE/B,CACIzlB,GAAI,WACJmD,MAAOI,IAAAA,KAAU,aACjBgkB,mBAAoB,CAChBxnB,KAAMqgB,EAAAA,IAAAA,gBAEVmuB,aAAc,IACdC,YAAY,EACZlH,MAAO,CAAC1kB,EAAmB6C,QAAS7C,EAAmBskB,QAE3D,CACIlnC,GAAI,QACJmD,MAAOI,IAAAA,KAAU,eACjBgkB,mBAAoB,CAChBxnB,KAAMqgB,EAAAA,IAAAA,UAEVmuB,aAAc,IACdjH,MAAO,CAAC1kB,EAAmBskB,MAAOtkB,EAAmB6C,UAEzD,CACIzlB,GAAI,UACJmD,MAAOI,IAAAA,KAAU,WACjB+jC,MAAO,CAAC1kB,EAAmB6C,QAAS7C,EAAmBskB,QAE3D,CACIlnC,GAAI,aACJmD,MAAOI,IAAAA,KAAU,cACjB+jC,MAAO,CAAC1kB,EAAmB6C,W,4BC1D5B,MAAMxmB,IAAYC,EAAAA,GAAAA,GAAW,CAChCuvC,cAAe,CACX1sC,MAAO,OACP8J,OAAQ,QAEZ3H,KAAM,CACFnC,MAAO,OACP8J,OAAQ,OACR5D,WAAY,OACZ5F,SAAU,UCiBlB,IAAe8D,EAAAA,EAAAA,OAbW,IAAuD,IAAtD,UAAC/F,EAAD,UAAY2gB,EAAZ,YAAuB2tB,GAAc,GAAiB,EAC7E,MAAMjvC,EAASR,KACTqD,GAAQwe,EAAAA,GAAAA,IAAkBC,GAC1BvhB,GAAWG,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,cAA8B,GAErDsxB,EACF,yBAAK9wB,UAAWe,IAAAA,CAAW1B,EAAOgvC,cAAeruC,GAAYwG,MAAO,CAACqB,WAAY3F,IAC7E,kBAACqsC,GAAA,EAAD,CAAYlvB,WAAYsB,EAAUhhB,KAAMK,UAAWX,EAAOyE,QAGlE,OAAOwqC,EAAc,kBAAC,GAAA5E,QAAD,CAASxpC,OAAOqf,EAAAA,EAAAA,KAAqBngB,EAAUuhB,EAAUhhB,OAAQmxB,GAAqBA,KCvBlGjyB,IAAYC,EAAAA,GAAAA,GAAW,CAChC6hB,UAAW,CACPrM,aAAc,OAElBk6B,cAAe,CACXtvC,YAAa,OAEjBuvC,eAAgB,CACZjtC,QAAS,OACTC,WAAY,SACZE,MAAO,QAEX+sC,OAAQ,CACJlsC,KAAM,KCed,GAdsB,IAA6B,IAA5B,eAACmd,GAA2B,EAC/C,MAAMtgB,EAASR,KACTO,GAAWG,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,aACvBmhB,EAAYhB,EAAe/c,MAAM+d,UACvC,OACI,yBAAK3gB,UAAWX,EAAOovC,gBACnB,kBAAC,GAAD,CAAmBzuC,UAAWX,EAAOmvC,cAAe7tB,UAAWA,EAAW2tB,aAAa,IACvF,8BAAM/uB,EAAAA,EAAAA,KAAqBngB,EAAUuhB,EAAUhhB,OAC/C,yBAAKK,UAAWX,EAAOqvC,SACvB,6BAAM/tB,EAAU/d,SCRf+mC,GAAiCC,GAC1CC,GAAAA,GChBShrC,IAAYC,EAAAA,GAAAA,GAAW,CAChC+xB,QAAS,CACLrvB,QAAS,OACT6N,SAAU,OACViF,aAAc,QAElBk6B,cAAe,CACXtvC,YAAa,MACboV,aAAc,SCetB,GAfwB,IAAoB,IAAnB,MAAC1R,GAAkB,EACxC,MAAM,WAAC+rC,EAAD,WAAa5b,GAAcnwB,EAC3BvD,EAASR,KACT6uB,GAAqBkhB,EAAAA,EAAAA,KAAwBhsC,GAEnD,OAAO8qB,KAAuBR,EAAAA,EAAAA,KAAayhB,GACvC,yBAAK3uC,UAAWX,EAAOwxB,SAClB8d,EAAWppC,KAAKob,GACb,kBAAC,GAAD,CAAmB9Z,IAAK8Z,EAAU5B,IAAK/e,UAAWX,EAAOmvC,cAAe7tB,UAAWA,MAEtF+M,GAAsB,kBAACmF,GAAA,EAAD,CAAiBC,aAAcC,KAE1D,M,2cCmCR,MAAM8b,GAAgC,CAClC/V,QAAS,CACLgW,aChCW,IAA2E,IAAzElsC,OAAO,OAACob,EAAD,OAASyI,EAAT,iBAAiBsoB,EAAjB,SAAmCC,IAA+B,EAAlBC,E,kXAAkB,4DAC1F,MAAM/sC,GAAQiwB,EAAAA,EAAAA,IAAenU,EAAOe,KAC9B1f,EAASR,GAAU,CAACqD,MAAAA,KACpB,cAAC6oC,EAAD,mBAAgBC,IAAsB79B,EAAAA,EAAAA,YAAW29B,IACjDoE,GAAYC,EAAAA,EAAAA,KAAYnxB,KAAY+sB,GACpC,WAACnM,EAAD,sBAAaI,EAAb,0BAAoCM,GAA6BX,GAAqBlY,GAEtF2oB,GAAejmC,EAAAA,EAAAA,UACjB,I,+UAAM,IACC8lC,EADP,CAEIjxB,OAAAA,KAEJ,CAACixB,EAAMjxB,IAGX,OACI,oCACI,yBACIhe,UAAWe,IAAAA,CAAW1B,EAAO4d,UAAW,CACpC,CAAC5d,EAAOgsC,SAAU0D,GAAoBG,EACtC,CAAC7vC,EAAOisC,SAAUyD,KAGrBA,GACG,kBAAC,KAAD,CAAiB/uC,UAAWX,EAAOksC,aAAcxsC,KAAMswC,GAAAA,QAAWrsC,QAASgsC,EAAU3rC,KAAK,QAE9F,kBAACisC,GAAA,EAAD,CAAatxB,OAAQA,IACpB+wB,GACG,yBAAK/uC,UAAWX,EAAOosC,wBACnB,kBAAC8D,GAAD,CACI97B,KAAK,SACL7Q,MAAOwsC,EACPjc,mBAAoB6X,EACpBhM,sBAAuBA,EACvB/qB,QAAS,CACL0hB,aAAct2B,EAAOsyB,YACrBqE,YAAa32B,EAAO22B,iBAMvC4I,GAAc,kBAACU,EAAD,QDTnBkQ,iBAAkBlF,GAClBvnC,MAAO,IAEXkrB,WAAY,CACR6gB,aE1DY,IAAkE,IAAhElsC,OAAO,SAACxD,EAAD,OAAW4e,EAAX,MAAmB8T,EAAnB,YAA0BxM,EAA1B,KAAuCiU,IAAkB,EAClF,OAAKA,EAGE,kBAAC9G,GAAA,EAAD,CAAiBzU,OAAQA,EAAQ8T,MAAOA,EAAOxM,YAAaA,EAAalmB,SAAUA,IAF/E,MFyDPowC,iBAAkBlF,IAEtBmF,aAAc,CACVX,aGvDqB,IAAqC,IAAnClsC,OAAO,OAACob,EAAD,MAAS8T,IAAmB,EAC9D,OAAO,kBAACia,GAAD,CAAc/tB,OAAQA,EAAQ8T,MAAOA,KHuDxC0d,iBAAkBlF,IAEtBoF,QAAS,CACLZ,aAAca,GACdH,iBAAkBlF,IAEtBsF,SAAU,CACNJ,iBAAkBlF,IAEtBqE,WAAY,CACRG,aHrCmB,IAAiD,IAA/ClsC,OAAO,WAAC+rC,EAAD,cAAa5uB,IAA2B,EACxE,MAAM1gB,EAASR,KACTO,GAAWG,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,aACvBygB,GAAkB9W,EAAAA,EAAAA,UACpB,IAAMwlC,MAAAA,OAAN,EAAMA,EAAYppC,KAAKob,GAlBW,EAACA,EAAsBZ,EAA8B3gB,IACpF2gB,EAActa,WAAW8/B,QAC5B,CAACsK,EAA4CC,KACrCA,EAAiB/wB,MAAQ6mB,EAAAA,IAAAA,cAAAA,IACzBiK,EAAqBjtC,MAAMktC,EAAiB/wB,MAAOQ,EAAAA,EAAAA,KAAqBngB,EAAUuhB,EAAUhhB,MACrFghB,EAAUmvB,EAAiB/wB,OAClC8wB,EAAqBjtC,MAAMktC,EAAiB/wB,KAAO4B,EAAUmvB,EAAiB/wB,MAE3E8wB,IAEX,CAACjtC,MAAO,CAAC+d,UAAAA,GAAY5B,IAAK4B,EAAU5B,MAQCgxB,CAAkCpvB,EAAWZ,EAAe3gB,MACjG,CAACA,EAAUuvC,EAAY5uB,IAE3B,OAAOE,EACH,kBAAC,GAAD,CACI7M,OAAQ6M,EACRF,cAAeA,EACfF,cAAeA,GACfH,wBAAyBrgB,EAAOshB,YAEpC,MGwBA6uB,iBAAkB7E,GAClB5qB,cAAe,CACXhB,IAAK,aACL/c,KAAM,aACNrC,KAAM,SACN8F,WAAYmc,OAAOxO,OAAOwyB,EAAAA,OAGlCoK,MAAO,CACHR,iBAAkBlF,KAIpB2F,GAAyBhC,GAAajpC,QAAO,QAAC,MAACkiC,GAAF,SAAaA,EAAMjjC,SAASue,EAAmB6C,YAAU9f,KACvG8O,GAAD,OACO5Q,EAAAA,EAAAA,MAAK,CAAC,KAAM,QAAS,YAAa4Q,GAClCw6B,GAA8Bx6B,EAAIzU,OAIvCswC,IAAuB9mC,EAAAA,EAAAA,OAAKklB,EAAAA,EAAAA,OAAM,KAAM6hB,EAAAA,MAoCjCC,GAAwBC,IAC1BhnC,EAAAA,EAAAA,MACHlB,EAAAA,UACAiB,EAAAA,EAAAA,MACIgK,EAAAA,QACA7J,EAAAA,EAAAA,QACIA,EAAAA,EAAAA,QACI+mC,EAAAA,EAAAA,MAAK,CACD,EAACv5B,EAAAA,EAAAA,MAAK,CAAC,QAAS,SAASA,EAAAA,EAAAA,MAAK,CAAC,QAAS,SACxC,EAACA,EAAAA,EAAAA,MAAK,CAAC,QAAS,YAAY3N,EAAAA,EAAAA,OAAK2N,EAAAA,EAAAA,MAAK,CAAC,QAAS,YAAYxR,EAAAA,EAAAA,MAAI5C,EAAAA,EAAAA,MAAK,eAIjFqC,EAAAA,EAAAA,QAAOmD,EAAAA,WAZRkB,CAcLgnC,GAGAE,GAA0B,CAC5BnxC,EACA0yB,EACAxM,EACAtH,EACAjJ,EACA0R,EACA+pB,EACA1I,KAEA,MAAM,OAAChjB,EAAD,aAAS2rB,EAAT,WAAuBxiB,EAAvB,cAAmCoiB,EAAnC,WAAkD5e,GAAcK,EACtE,OAAQ/c,EAAQnV,IACZ,IAAK,WACD,OAAOuvC,EAAAA,EAAAA,KAAYrqB,GACvB,IAAK,UACD,MAAO,CACHiJ,WAAY/P,EACZ+wB,kBAAmB0B,EACnBzB,SAAU,IAAMwB,EAAa1e,GAC7B9T,OAAQ8G,EACRmJ,WAAYA,EACZgd,YAAY5R,EAAAA,EAAAA,KAA4Bj6B,EAAUqnB,EAAQ3B,EAAQ9G,EAAQiQ,GAC1ExH,OAAQA,GAEhB,IAAK,aACD,MAAO,CACHrnB,SAAAA,EACA4e,OAAAA,EACA8T,MAAAA,EACAxM,YAAAA,EACAiU,MAAOkX,KAAkBxiB,GAEjC,IAAK,UACD,OAAOnJ,EACX,IAAK,aACD,MAAO,CACH6pB,WAAY7pB,EAAO6pB,WACnB5uB,cAAehL,EAAQgL,eAE/B,IAAK,eACD,MAAO,CACH/B,OAAAA,EACA8T,MAAAA,GAER,IAAK,QACD,OAAOL,GAAc,EAE7B,IAAIif,EAAAA,EAAAA,KAAqB37B,EAAQnV,IAAK,CAClC,MAAM+wC,GAAaC,EAAAA,EAAAA,KAAmB77B,EAAQgL,eAKxCE,GAJqB7W,EAAAA,EAAAA,OACvBgzB,EAAAA,EAAAA,QAAO,GAAI,CAACuU,EAAY57B,EAAQgL,cAAc/d,QAC9CqH,EAAAA,EAAAA,OAAKC,EAAAA,EAAAA,SAAQw+B,IAAY9iC,EAAAA,EAAAA,QAAO6rC,EAAAA,MAEZC,CAAmBhsB,GAC3C,MAAO,CACH/E,cAAehL,EAAQgL,cACvBE,gBAAAA,EACA8pB,kBAAmBqG,GAAqBC,GACxCvI,UAAAA,KIjNCiJ,GAAuBzuB,IAAAA,eAA4C,SAEhFyuB,GAAqB3xB,YAAc,uBCDnC,MAAM4xB,IAA+B5nC,EAAAA,EAAAA,OAAKklB,EAAAA,EAAAA,OAAM,MAAM3J,EAAAA,EAAAA,OAAM,EAAG,IAAIsE,EAAAA,EAAAA,MAAK,MAC3DgoB,IAAiC7nC,EAAAA,EAAAA,OAAK7D,EAAAA,EAAAA,MAAI8D,EAAAA,EAAAA,MAAKqnC,EAAAA,IAAsBM,KAAgCE,EAAAA,MCE3G,IAAKC,I,SAAAA,GAAAA,EAAAA,aAAAA,QAAAA,EAAAA,aAAAA,QAAAA,EAAAA,KAAAA,O,CAAAA,KAAAA,GAAAA,KAMZ,MAAMC,GAAO,CACT,CAACD,GAAOE,cAAeluC,IAAAA,KAAU,oBACjC,CAACguC,GAAOG,cAAenuC,IAAAA,KAAU,oBACjC,CAACguC,GAAOI,MAAOpuC,IAAAA,KAAU,aA+B7B,GAduB,IAAwD,IAAvD,KAACwH,EAAD,SAAOO,EAAP,QAAiBlI,EAAjB,QAA0B8H,EAA1B,QAAmCgZ,GAAoB,EAK3E,OACI,kBAAC,GAAA0tB,QAAD,CAAS7mC,KAAMA,EAAMO,SAAUA,EAAUJ,QAASA,GAC9C,kBAAC,GAAA2mC,KAAD,CAAMjqC,UAAU,OACXsc,EAAQve,KAAI,CAACoV,EAAQlU,IAtBf,EAACkU,EAAgB+2B,EAAqBjrC,IACzD,kBAAC,GAAAc,SAAD,CAAU8I,QAAM,EAAC7I,UAAW,MAAOX,IAAKJ,EAAOzD,QAAS0uC,GACpD,kBAAC,GAAAC,aAAD,CAAcjiC,QAAS0hC,GAAKz2B,GAASi3B,uBAAwB,CAACj+B,QAAS,YAoB/Bk+B,CAAel3B,EAPlCA,CAAAA,GAAW,KAChC3X,EAAQ2X,IAMuDm3B,CAAgBn3B,GAASlU,Q,yICvChG,MAAMsrC,GAAa,CAACC,EAA4BhtC,IAC5CgtC,EAAMhtC,OAAOA,GAAQO,KAAKmpB,GACtBA,EAAKtG,Q,+UAAL,IAEWsG,EAFX,CAGQtG,QAAS2pB,GAAWrjB,EAAKtG,QAASpjB,KAEpC0pB,ICmFd,IAAe3oB,EAAAA,EAAAA,OA3EM,IAQR,IARS,SAClBmF,EADkB,QAElBJ,EAFkB,QAGlBgZ,EAHkB,GAIlBlkB,EAJkB,mBAKlB+D,EALkB,sBAMlBqF,EANkB,iBAOlBipC,GACS,EACT,MAAMC,GAAe/oC,EAAAA,EAAAA,UAAQ,IDdA,SAC7B8oC,GAD6B,IAE7BE,EAF6B,uDAEL,GAFK,OAI7BJ,GAAWE,GAAmBxqB,IAA4B0qB,EAAY/tC,MAAMguC,GAAW3qB,EAAO7nB,KAAOwyC,MCUlEC,CAAkBJ,EAAkBtuC,IAAqB,CACxFsuC,EACAtuC,KAEGgX,EAAQ23B,IAAa9xC,EAAAA,EAAAA,aACrB+xC,EAAmBC,IAAwBhyC,EAAAA,EAAAA,WAAS,IAC3DC,EAAAA,EAAAA,YAAU,KACFyK,GACAsnC,GAAqB,KAE1B,CAACtnC,IACJ,MAmBMunC,EAAmB,KACrBH,EAAU,MACVE,GAAqB,GACrB1nC,KAWJ,OACI,oCACI,kBAAC,GAAD,CACIH,KAAM4nC,EACNrnC,SAAUA,EACV4Y,QAASA,EACThZ,QAvCS,KACjB0nC,GAAqB,GAChB73B,GAAQ7P,KAsCL9H,QApCY2X,IACpB,GAAIA,IAAWw2B,GAAOI,KAUtBe,EAAU33B,GACV63B,GAAqB,OAXrB,CACI,MAAME,EAAgB,IAAI/uC,GACpB8C,EAAQ9C,EAAmBgvC,QAAQ/yC,GACrC6G,GAAS,IACTisC,EAAcE,OAAOnsC,EAAO,GAC5BuC,EAAsB0pC,GACtBD,SA+BJ,kBAACI,GAAA,EAAD,CACI3sC,cAAY,EACZgF,SAAUyP,EAASzP,OAAWjI,EAC9BslB,YAAa2pB,EACbtK,gBAAiBjkC,EACjBmvC,cAvBU,IAA+B,IAA7BlzC,GAAIklC,GAAyB,EACjD,MAAM4N,EAAgB,IAAI/uC,GACpB8C,EAAQ9C,EAAmBgvC,QAAQ/yC,GACnCmzC,EAAWp4B,IAAWw2B,GAAOG,aAAe7qC,EAAQA,EAAQ,EAClEisC,EAAcE,OAAOG,EAAU,EAAGjO,GAClC97B,EAAsB0pC,GACtBD,KAkBQ3nC,QAAS2nC,EACTvyC,MAAOiD,IAAAA,KAAU,iB,yHClF1B,MCAD6vC,GAAc,6BAMPn0C,IAAYC,EAAAA,GAAAA,IAAYqQ,IAAD,CAChC8N,UAAW,CACP9a,SAAU,OACVsJ,OAAQ,OACR9J,MAAO,QAEXsxC,uBAAwB,CACpBzxC,QAAS,OACTC,WAAY,aACZstB,SAAU,YAEdmkB,aAAc,CACV1xC,QAAS,QAEb2xC,gBAAiB,CACbC,cAAe,EACf,2CAA4C,CACxCxtC,gBAAiB,sBAErB,wCAAyC,CACrCA,gBAAiB,sBAErB,aAAc,CACVytC,YAAaL,GACbpxC,aAAcoxC,GACdntC,OAAQ,EACRytC,cAAe,MACf/wC,UAAW,OACXN,SAAU,OACVuN,UAAW,OACX1H,UAAW,aACXyrC,UAAW,aACXC,SAAU,aACV5tC,gBAAiB,SAErB,OAAQ,CACJgC,SA3CU,IA4CV3I,SA5CU,IA6CVyC,QAAS,OACTS,SAAU,SACVsJ,OAAQ,GAEZ,uBAAwB,CACpB/J,QAAS,YAEb,OAAQ,CACJkG,SAtDU,IAuDV3I,SAvDU,IAwDVyC,QAAS,QAGb,mCAAoC,CAChCuvB,WAAY+hB,GACZjkB,SAAU,SACV5W,KAAM,IACNqzB,OAAQ,EACR5lC,gBA5Da,qBA6Db1D,MAAOiN,EAAMM,QAAQvI,KAAK0I,UAC1B9J,WAAY,UAEhB,qCAAsC,CAClCutC,YAlEa,6BAmEbtkB,SAAU,SACV5W,KAAO,QACPqzB,OAAQ,GAGZ,uDAAwD,CACpDtc,UAAW,OACXH,SAAU,SACV7W,IAAK,IACLzM,OAzEW,IA0EX/J,QAAS,EACT8pC,OAAQ,GAGZ,+FAAgG,CAC5FA,OAAQ,GAGZ,6CAA8C,CAC1C5lC,gBApFc,uBAuFtB6tC,WAAY,CACR1kB,SAAU,SACV7W,IAAK,OACL1W,QAAS,OACTG,MAAO,Y,2cCxDf,MAAMmiB,GAAU,CAACqtB,GAAOE,aAAcF,GAAOG,aAAcH,GAAOI,MAErDmC,GAAkB,IAYlB,IAZmB,UAC5B1zC,EAD4B,OAE5Bge,EAF4B,SAG5B5e,EAH4B,OAI5BqnB,EAJ4B,cAK5B5b,EAL4B,iBAM5BoZ,EAN4B,gBAO5B2jB,EAP4B,mBAQ5B+L,EAR4B,YAS5BruB,EAAc,GACdiD,YAAaqrB,EAVe,UAW5B9L,GAAY,GACH,EACT,MAAMzoC,EAASR,MAERksC,EAAe8I,IAAoBrzC,EAAAA,EAAAA,UAAS,OAC5CkqC,EAAWD,IAAgBjqC,EAAAA,EAAAA,aAC3BszC,EAAQtJ,IAAahqC,EAAAA,EAAAA,YAEtBozB,GAAUzqB,EAAAA,EAAAA,UAAQ,IAAM0B,EAAc8Z,OAAO,IAAI,CAAC9Z,IAClDkpC,GAAgD5qC,EAAAA,EAAAA,UAClD,IAAM8nC,GAA+BrJ,IACrC,CAACA,IAGCnxB,GAAWtN,EAAAA,EAAAA,UACb,IXgCwB,EAAC/J,EAAoB4e,EAAgB4pB,IAC1DA,EACFriC,KAAKyuC,IACF,MAAMC,EAAahE,GAAYrsC,MAAK,QAAC,GAAChE,GAAF,SAAUA,IAAOo0C,KAErD,GAAIC,EACA,OAAOA,EAGX,KAAKvD,EAAAA,EAAAA,KAAqBsD,GACtB,OAAO,KAGX,MAAME,GAAcC,EAAAA,EAAAA,KAAmBH,EAAWh2B,EAAOre,MACnDogB,GAAgBq0B,EAAAA,EAAAA,KAAuBh1C,EAAU80C,EAAal2B,EAAOre,MACrE00C,GAAiBzD,EAAAA,EAAAA,KAAmBsD,GAE1C,OAAIn0B,EACO,CACHngB,GAAK,GAAEy0C,KAAkBnE,GAAqBgE,KAC9CnxC,MAAOgd,EAAchd,MACrBgd,cAAAA,EACA+uB,aAAchF,GACd0F,kBAAkB8E,EAAAA,EAAAA,KAAmBv0B,GAC/B4qB,GACAL,IAIP,QAEVtlC,OAAOmD,EAAAA,UW/DFosC,CAAiBn1C,EAAU4e,EAAQ+1B,IACzC,CAAC30C,EAAU4e,EAAQ+1B,IAGjBvD,GAAerjC,EAAAA,EAAAA,YAAW4jC,IAE1BxoB,GAAcpf,EAAAA,EAAAA,UAChB,IXkJ2B,SAC/B/J,EACAqX,EACAuH,EACA4V,EACAtO,EACAmB,EACA+pB,GAEC,IADDgE,EACC,wDACD,MAAO,CAAC,CAAC1vB,OAAQ9G,EAAQyyB,cAAc,IAAgB1rC,OAAO6uB,GAASruB,KAAKusB,GACjErb,EAAS8uB,QAAO,CAAC9d,EAAQ1S,KAC5B0S,EAAO1S,EAAQnV,IAAM2wC,GACjBnxC,EACA0yB,EACAxM,EACAtH,EACAjJ,EACA0R,EACA+pB,EACAgE,GAEJ,MAAW/sB,EAAX,CAAmBgtB,aAAc3iB,EAAM2e,aAAc7wC,GAAIkyB,EAAMhN,OAAO/F,QACvE,MWzKG21B,CAAoBt1C,EAAUqX,EAAUuH,EAAQ4V,EAAStO,EAAamB,EAAQ+pB,EAAc1I,IAClG,CAAC1oC,EAAUqX,EAAUmd,EAAS5V,EAAQsH,EAAamB,EAAQ+pB,EAAc1I,KAGtEa,EAAagM,IAAkBn0C,EAAAA,EAAAA,UAEnC,IAEGooC,GAAehgC,EAAAA,EAAAA,cAAasrC,IAC9BS,GAAgBpvC,GAAD,MACRA,EADQ,CAEX,CAAC2uC,IAAe3uC,EAAI2uC,SAEzB,IAEGU,GAAuBzrC,EAAAA,EAAAA,UACzB,KAAM,CACFw/B,YAAAA,EACAC,aAAAA,KAEJ,CAACA,EAAcD,IAGbkM,GAAe1rC,EAAAA,EAAAA,UACjB,KAAM,CACFshC,aAAAA,EACAD,UAAAA,EACAE,UAAAA,KAEJ,CAACA,IAGCoK,GAAelsC,EAAAA,EAAAA,cAAY,KAC7B6hC,EAAa,MACbD,EAAU,QACX,IAyBGuK,GAAkC5rC,EAAAA,EAAAA,UAAQ,IAAMsN,EAASlR,KAAI5C,EAAAA,EAAAA,MAAK,QAAQ,CAAC8T,IAM3Eu0B,GAAqBpiC,EAAAA,EAAAA,cAAY,KACnCirC,EAAiB,QAClB,IAEGmB,GAA4B7rC,EAAAA,EAAAA,UAC9B,KAAM,CACF4hC,cAAAA,EACAC,mBAAAA,KAEJ,CAACD,EAAeC,KAGd,eAACiK,EAAD,4BAAiB/H,GFvJkBtZ,CAAAA,IACzC,MAAOshB,EAA8BC,IAAmC30C,EAAAA,EAAAA,UACpE,IAEE0sC,GAA8BtkC,EAAAA,EAAAA,cAAY,CAAC0V,EAAmB1b,KAChEuyC,GAAiC5vC,G,+UAAD,IACzBA,EADyB,CAE5B,CAAC+Y,GAAY1b,QAElB,IAMH,MAAO,CAACqyC,gBALwB7rC,EAAAA,EAAAA,OAC5B7D,EAAAA,EAAAA,KAAI2zB,EAAAA,MACJ/P,EAAAA,EAAAA,MAAKpK,GAAQm2B,EAA6Bn2B,KAFd3V,CAG9BwqB,GAEsBsZ,4BAAAA,IEwI8BkI,CAA6BxhB,GAC7EyhB,EAA2BJ,OAAiBhyC,EAAY5D,EAAO6zC,aAC/DoC,GAAoBnsC,EAAAA,EAAAA,UACtB,IACIsN,EAASlR,KAAKwP,GACVsgC,GAA2C,iBAAftgC,EAAQnV,GAApC,MAEWmV,EAFX,CAGQwgC,aAAcF,IAEhBtgC,KAEd,CAAC0B,EAAU4+B,IAGf,OACI,yBAAKr1C,UAAWe,IAAAA,CAAW1B,EAAO4d,UAAWjd,IACzC,yBAAKA,UAAWX,EAAO4zC,wBACnB,kBAACnI,GAAqBrqB,SAAtB,CAA+B7d,MAAOoyC,GAClC,kBAACtM,GAAgBjoB,SAAjB,CAA0B7d,MAAOgyC,GAC7B,kBAACzK,GAAkB1pB,SAAnB,CAA4B7d,MAAOiyC,GAC/B,kBAACjJ,GAAiCnrB,SAAlC,CAA2C7d,MAAOsqC,GAC9C,kBAACsI,GAAA,EAAD,CACIx1C,UAAWX,EAAO8zC,gBAClB18B,SAAU6+B,EACV/sB,YAAaA,EACbktB,gBAAiB,EACjBC,UApEV,CAACC,EAAgBC,KACnC,MAAMC,GAAoCzsC,EAAAA,EAAAA,OACtC0sC,EAAAA,EAAAA,UAAShyC,IAAU4sC,EAAAA,EAAAA,KAAqB5sC,IAAQiyC,EAAAA,EAAAA,KAAuBjyC,GAAQA,IAC/EkyC,EAAAA,QAFsC5sC,CAGxCw+B,GAEIqO,EAAYJ,EAAOvxC,WAAU,QAAE0vC,GAAF,SAAiBA,IAAc2B,KAC5DO,EAAaL,EAAOvxC,WAAU,QAAE0vC,GAAF,SAAiBA,IAAc4B,KAC7DO,EAAUN,EAAOI,GACnBE,GACAxC,GAAmBvqC,EAAAA,EAAAA,OAAK6b,EAAAA,EAAAA,QAAOgxB,EAAW,IAAIG,EAAAA,EAAAA,QAAOF,EAAYC,IAAU5sC,EAAAA,EAAAA,QAAM8sC,EAAAA,EAAAA,KAAI,IAAlEjtC,CAAuEysC,KA2DlES,aAvDP,CAACX,EAAgBC,KACtC,MAAMK,EAAYprC,EAAcvG,WAAU,QAAC,OAACwgB,GAAF,SAAcA,EAAO/F,MAAQ42B,KACjEO,EAAarrC,EAAcvG,WAAU,QAAC,OAACwgB,GAAF,SAAcA,EAAO/F,MAAQ62B,KAClEW,EAAa1rC,EAAcorC,GAC7BM,GACAtyB,GAAiB7a,EAAAA,EAAAA,OAAK6b,EAAAA,EAAAA,QAAOgxB,EAAW,IAAIG,EAAAA,EAAAA,QAAOF,EAAYK,GAA9CntC,CAA2DyB,KAmDpD2rC,iBA7CCC,IAC7B5C,GAAiB4C,MAAAA,OAAA,EAAAA,EAAa7G,WAAY,OA6Cd8G,mBAAoB1L,SAMtCpX,EAAQluB,QACN,yBAAK1F,UAAWX,EAAOo0C,YACnB,kBAACkD,GAAA,GAAD,CACI/iC,aAAcpD,GAAAA,GAAAA,kBACdmD,QAASpD,GAAAA,GAAAA,SACTrJ,KAAM/D,IAAAA,KAAU,mBAChBiN,cAAejN,IAAAA,KACX,yEAKhB,kBAAC,GAAD,CACIvD,GAAI8qC,EACJx/B,SAAU4oC,EACVhpC,QAASgqC,EACThxB,QAASA,GACTngB,mBAAoBoxC,EACpB/rC,sBAAuB2qC,EACvB1B,iBAAkB2B,OChNzB/0C,IAAYC,EAAAA,GAAAA,GAAW,CAChCme,UAAW,CACPzb,QAAS,OACT8N,cAAe,UAEnBsnC,MAAO,CACHp0C,KAAM,KCeDq0C,GAAiB,IAYjB,IAZkB,QAC3B5iC,EAAU,GADiB,gBAE3B2zB,EAF2B,mBAG3B+L,EAH2B,cAI3B9oC,EAJ2B,iBAK3BoZ,EAL2B,OAM3BwC,EAN2B,SAO3BrnB,EAP2B,OAQ3B4e,EAR2B,YAS3BsH,EAAc,GATa,YAU3BiD,EAV2B,UAW3Buf,GACS,EACT,MAAMzoC,EAASR,KAEf,OACI,yBAAKmB,UAAWe,IAAAA,CAAWkT,EAAQ7E,KAAM/P,EAAO4d,YAC5C,kBAACy2B,GAAD,CACI1zC,UAAWX,EAAOu3C,MAClB54B,OAAQA,EACR5e,SAAUA,EACVqnB,OAAQA,EACRmhB,gBAAiBA,EACjB+L,mBAAoBA,EACpB9oC,cAAeA,EACfoZ,iBAAkBA,EAClBsE,YAAaA,EACbjD,YAAaA,EACbwiB,UAAWA,M,+iBChD3B,MAAMgP,GAAsC,CACxC/nB,SAAU,WACV3sB,WAAY,MACZV,QAAS,mBACT,eAAgB,CACZgvB,cAAe,QAEnBxuB,MAAO,oBAGLG,GAA8B,CAChCyuB,QAAS,KACT/B,SAAU,WACVgC,MAAO,EACP7Y,IAAK,EACLvW,MAAO,OACP8J,OAAQ,OACR5D,WAAY,iEACZmpB,cAAe,QAKb+lB,GAAyB,CAAC70C,EAAe80C,KACpC,CACH,QAAS,CACLjoB,SAAU,YAEd,YAAa,CACT+B,QAAS,KACT/B,SAAU,WACVgC,MAAO,EACP7Y,IAAK,EACLvW,MAAO,OACP8J,OAAQ,OACR5D,WAAY3F,EACZ8uB,cAAe,OACf,mBAAkC,CAC9BnpB,WAAYmvC,GAAgB,SAGpC,2BAA4B,CACxBnvC,WAAa,8BAA4BovC,EAAAA,GAAAA,IAAK/0C,EAAO,OAAOA,UAC5D,mBAAkC,CAC9B2F,WAAYmvC,GAAiB,8BAA4BC,EAAAA,GAAAA,IAAKD,EAAc,OAAOA,cAMtFn4C,IAAYC,EAAAA,GAAAA,IAAYqQ,IACjC,MAAM+nC,GAAyBC,EAAAA,GAAAA,IAAQhoC,EAAMM,QAAQC,QAAQ0hB,KAAM,KAC7DgmB,GAAgCD,EAAAA,GAAAA,IAAQhoC,EAAMM,QAAQC,QAAQ0hB,KAAM,KACpEimB,GAAsBF,EAAAA,GAAAA,IAAQ,kBAAmB,KACjDG,GAAmBH,EAAAA,GAAAA,IAAQ,mBAAoB,KAE/CI,EAAO,CACTr1C,MAAOiN,EAAMM,QAAQC,QAAQ0hB,KAC7B/vB,OAAQ,UACRgwB,eAAgB,QAGpB,MAAO,CACHkmB,KAAAA,EACA3qC,OAAQ,CACJC,WAAY,UAEhB2qC,aAAc,CACVt1C,MAAO,sBACP2D,OAAQ,gBAEZwkC,SAAU,CACN7oC,QAAS,OACTC,WAAY,SACZgK,OAAQ,OACRxJ,SAAU,OACV8sB,SAAU,WACVvsB,KAAM,EACNL,SAAU,SACVD,MAAO,mBACP0D,gBAAiB,sBACjB,iBACOvD,GADP,CAEIV,MAAO,OACP81C,gBAAiB,UAGzBC,cAAe,CACXxmB,YAAa,QAEjBymB,mBAAoB,CAChBlsC,OAAQ,OACRjK,QAAS,OACT8N,cAAe,UAEnBsoC,QAAS,CACL31C,SAAU,OACVE,SAAU,UAEd01C,mBAAoB,CAChBpsC,OAAQ,QAEZqsC,gBAAiB,CACb94C,UAAW,SAEf+4C,cAAe,CACX91C,SAAU,OACV8sB,SAAU,YAEdipB,sBAAuBjB,GAAuBO,GAC9CW,mBAAoBlB,GAAuBM,GAC3Ca,gBAAiBnB,GAAuBG,EAAwBE,GAChEe,eAAgB,MACTrB,GADO,CAEV,iBACOz0C,GADP,CAEI,mBAAkC,CAC9BwF,WAAY,sFAIxBuwC,sBAAuB,MAChBtB,IAEPuB,cAAe,CACXnnB,YAAa,QAEjBonB,eAAgB,CACZ7sC,OAAQ,OACRjK,QAAS,OACTC,WAAY,SACZqG,UAAW,aACXinB,SAAU,YAEdoC,YAAa,MACNomB,EADI,CAEPzxC,WAAY,MAEhB4rB,kBAAmB,CACf3C,SAAU,WACVgC,MAAO,EACP7Y,IAAK,EACLszB,OAAQ,EACR//B,OAAQ,OACRjK,QAAS,OACTC,WAAY,SACZ+S,aAAc,OACd5O,gBAAiB,OACjB,YAAa,CACTA,gBAAiBsxC,IAGzBxwC,QAAS,GACT4qB,kBAAmB,CACf5vB,QAAS,oBACTF,QAAS,OACT8N,cAAe,SACfxH,UAAW,cAEfywC,YAAa,MACNzB,GADI,CAEP10C,WAAY,WACZqJ,OAAQ,QACR3D,UAAW,aACX2rB,UAAW,OACXC,UAAW,WAEf8kB,aAAc,MACP1B,GADK,CAERt1C,QAAS,OACT,UAAW,CACPiK,OAAQ,OACR9J,MAAO,UAGf82C,iBAAkB,CACdj3C,QAAS,OACTC,WAAY,SACZqG,UAAW,aACX2D,OAAQ,QAEZitC,aAAc,CACV7pC,UAAW,aACXgG,WAAY,SAEhBlG,eAAgB,CACZogB,SAAU,WACV5W,KAAM,OACNqzB,OAAQ,GAEZmN,SAAU,CACN5pB,SAAU,WACV5W,KAAM,OACNqzB,OAAQ,EACRj5B,QAAS,KAEbqmC,QAASzpC,EAAM0pC,aCrLvB,IAAeC,EAAAA,GAAAA,IATWpoC,IACtB,MAAMrR,EAASR,KACf,OACI,yBAAKmB,UAAWX,EAAOgrC,UACnB,kBAAC0O,GAAA,QAA4BroC,O,gBCEzC,MAUA,GAViC,IAAsD,IAArD,MAAC9N,EAAOoJ,YAAY,mBAACmb,IAAgC,EACnF,MAAOvkB,MAAOo2C,EAAR,GAAqBC,GAAMr2C,EAC3BvD,EAASR,KACf,OACI,yBAAKmB,UAAWe,IAAAA,CAAW1B,EAAO84C,eAAgB,CAAC,CAAC94C,EAAOu5C,UAAiB,IAAPK,KACjE,kBAACC,GAAA,EAAD,CAAet2C,MAAOo2C,EAAa7xB,mBAAoBA,M,oDCanE,MAsDA,IAAegyB,EAAAA,GAAAA,IACX,CAAC,EAAD,KAAyF,IAAxF,eAACC,EAAD,cAAiBrnB,GAAuE,GAA7B,SAAChlB,EAAD,MAAWnK,GAAkB,EACrF,MAAO0L,SAAUwjB,GAAS/kB,EAC1B,MAAO,CACHiiC,SAAU,IAAMoK,EAAetnB,GAC/BunB,eAAgBz2C,IAAUmvB,EAC1BA,cAAAA,KANZ,EAtD8B,IAQjB,IAPTnvB,MAAOob,EADoB,SAE3BjS,EAF2B,SAG3BgB,EAH2B,SAI3BiiC,EAJ2B,cAK3Bjd,EAL2B,cAM3BC,EAN2B,cAO3BsnB,GACS,EACT,MAAMj6C,EAASR,KACT06C,GAAcpsC,EAAAA,EAAAA,YAAWqsC,GAAAA,GAEzBH,EAAiBr7B,IAAW+T,EAC5B0nB,EAAe1tC,IAAautC,EAC5BI,EAA0B,IAAb3tC,EACb4tC,EAAeF,EAAep6C,EAAO+4C,sBAAwB/4C,EAAO84C,eACpEyB,EAAgC57B,EAAOe,MAAQgT,EAAchT,MAAQ06B,EAE3E,OACI,oCACI,yBACIz5C,UAAWe,IAAAA,CAAW44C,EAAct6C,EAAOi5C,eAAgBj5C,EAAOg5C,cAAe,CAC7E,CAACh5C,EAAOy4C,iBAAkB4B,IAAeL,KAG5CI,GAAgB,kBAACI,GAAA,EAAD,CAAmB75C,UAAWX,EAAOs5C,WACtD,kBAAC7rC,GAAA,EAAD,CAAmB9M,UAAWX,EAAOsP,eAAgB5C,SAAUA,EAAUgB,SAAUA,IACnF,kBAAC,KAAD,CACIhO,KAAMswC,GAAAA,QACNhsC,KAAK,KACLrD,UAAWe,IAAAA,CAAW1B,EAAOm4C,aAAc,CAAC,CAACn4C,EAAOuN,SAAUysC,IAC9Dr2C,QAASgsC,EACT,iBAAiB,wBAAuBuK,EAAcA,EAAc,IAAM,cAAcxtC,MAE5F,kBAACymB,GAAA,EAAD,CAAe5vB,OAAO2b,EAAAA,EAAAA,KAAoBP,GAAShe,UAAWX,EAAO8xB,cAChEtuB,EAAAA,EAAAA,KAASmb,EAAOjb,QAEpB62C,GACG,kBAAC96B,GAAA,EAAD,CACI9e,UAAWe,IAAAA,CAAW1B,EAAOqyB,kBAAmB,CAAC,CAACryB,EAAOqH,SAAUsrB,IACnEjT,KAAKqU,EAAAA,EAAAA,KAAoBrB,EAAchT,IAAKf,EAAOe,KACnDI,WAAYD,EAAAA,IAAAA,gBACZF,mBAAmBC,EAAAA,EAAAA,KAAwBC,EAAAA,IAAAA,gBAA0C,CACjFZ,UAAWyT,EAAchT,IACzBsU,eAAgBrV,EAAOe,MAE3BuU,qBAAmB,SC1D3C,IAAe6lB,EAAAA,GAAAA,IAAf,EAAkCL,EAAAA,GAAAA,IAVDpoC,IAC7B,MAAMopC,EAAoC,IAApBppC,EAAMqpC,UACtB16C,EAASR,KACf,OACI,yBAAKmB,UAAWe,IAAAA,CAAW1B,EAAOgrC,SAAU,CAAC,CAAChrC,EAAOq4C,eAAgBoC,KACjE,kBAACf,GAAA,QAA4BroC,QCkBzC,GAnB2B,IAAoB,IAAnB,MAAC9N,GAAkB,EAC3C,MAAMvD,EAASR,KACf,IAAK+D,EACD,OAAO,KAEX,MAAM,SAACxD,EAAD,MAAW0yB,EAAX,YAAkBxM,EAAlB,OAA+BtH,EAA/B,QAAuCrK,GAAW/Q,EACxD,OACI,yBAAK5C,UAAWX,EAAOiyB,mBACnB,kBAACmB,GAAA,EAAD,CACI9e,QAASA,EACTvU,SAAUA,EACVkmB,YAAaA,EACbwM,MAAOA,EACP9T,OAAQA,MCTxB,GAVqB,IAAoB,IAAnB,MAACpb,GAAkB,EACrC,MAAOA,MAAOo3C,EAAR,GAAmBf,GAAMr2C,EACzBvD,EAASR,KACf,OACI,yBAAKmB,UAAWe,IAAAA,CAAW1B,EAAOk5C,YAAa,CAAC,CAACl5C,EAAOu5C,UAAiB,IAAPK,IAAgBgB,SAAUvsC,EAAAA,IACvFssC,ICOb,GAbsB,IAAoB,IAAnB,MAACp3C,GAAkB,EACtC,MAAOA,MAAOs3C,GAAYt3C,EACpBvD,EAASR,KACToC,GAAMk5C,EAAAA,EAAAA,KAAgC,CAACv3C,MAAOs3C,IACpD,OACIj5C,GACI,yBAAKjB,UAAWX,EAAOm5C,cACnB,yBAAKv3C,IAAKA,M,gBCH1B,MAsBA,GAtB0B,IAAoB,IAAnB,MAAC2B,GAAkB,EAC1C,MAAMvD,EAASR,KACTO,GAAWG,EAAAA,EAAAA,aAAY4G,EAAAA,GAAAA,UAAAA,aAC7B,OACIvD,GACI,yBACI5C,UAAWe,IAAAA,CAAW1B,EAAO84C,eAAgB94C,EAAOo5C,iBAAkB,CAClE,CAACp5C,EAAOu5C,UAAuB,IAAbh2C,EAAMq2C,MAG5B,kBAACmB,GAAA,EAAD,CACIp6C,UAAWX,EAAOq5C,aAClB3xB,YAAYwJ,EAAAA,EAAAA,KAAcnxB,GAAUi7C,EAAAA,EAAAA,KAAiCz3C,GAAOjD,QAEhF,kBAAC6yB,GAAA,EAAD,CAAe5vB,OAAOy3C,EAAAA,EAAAA,KAAiCz3C,GAAO03C,UAAWt6C,UAAWX,EAAOk4C,OACtF10C,EAAAA,EAAAA,KAASD,EAAMG,UCNpC,GAVwB,IAAoB,IAAnB,MAACH,GAAkB,EACxC,MAAMvD,EAASR,KAEf,OACI,yBAAKmB,UAAWX,EAAO84C,gBACnB,kBAAC,GAAD,CAAuBv1C,MAAOA,EAAMob,W,yHCUhD,MAAMu8B,IAA0BjsB,EAAAA,EAAAA,OAAM,KAwChCksB,GAAwB,CAC1Bp7C,EACAmpB,EACAqL,EACAkU,EACAxiB,IAEAsO,EAAQruB,KAAKusB,IACT,MAAM9T,EAAS8T,EAAMhN,OACf21B,EAAgB3oB,EAAM7D,YAAc,GACpCwD,EAAaK,EAAML,YAAc,EACjCjK,GAAkBkzB,EAAAA,EAAAA,KAA2Bt7C,EAAU4e,EAAOre,KAAM86C,GACpE1tC,EAAW,CAACiR,OAAAA,EAAQ5e,SAAAA,EAAU0yB,MAAAA,EAAOxM,YAAAA,EAAamM,WAAAA,GAClDkpB,EAAsBpyB,EAAYvjB,QAAO,QAAC,MAACkiC,GAAF,SAC3CA,GAAQA,EAAMjjC,SAASue,EAAmBskB,UAG9C,OAAO19B,EAAAA,EAAAA,OACHm8B,EAAAA,EAAAA,SACI,CAACqV,EAAK5uC,KAAe6uC,EAAAA,EAAAA,OAAM7uC,EAAWpM,GAjDzB,EACzBoM,EADyB,EAGzB87B,KACC,IAFD,OAAC9pB,EAAD,SAAS5e,EAAT,MAAmB0yB,EAAnB,YAA0BxM,EAA1B,WAAuCmM,GAEtC,EACD,OAAQzlB,EAAWpM,IACf,IAAK,UACD,OAAOoe,EACX,IAAK,WACD,MAAO,CAACpb,OAAOusC,EAAAA,EAAAA,KAAYnxB,IAC/B,IAAK,aACD,MAAO,CAAC5e,SAAAA,EAAU0yB,MAAAA,EAAOxM,YAAAA,EAAatH,OAAAA,EAAQrK,QAAS,OAC3D,IAAK,QACD,MAAO,CAAC/Q,MAAO6uB,GACnB,IAAK,UACD,MAAO,CAACzT,OAAAA,GACZ,QAAS,CACL,MAAO2yB,KAAemK,GAAsBP,GAAwBvuC,EAAWpM,IAC/E,OAAOwJ,EAAAA,EAAAA,OACHzG,EAAAA,EAAAA,MAAKguC,IACLoK,EAAAA,EAAAA,SACIzxC,EAAAA,EAAAA,QAAOw+B,IACPkT,EAAAA,EAAAA,KAAmCF,IACnCG,EAAAA,EAAAA,KAAqCH,IALtC1xC,CAOL4U,MAwB4Ck9B,CAAqBlvC,EAAYe,EAAU+6B,GAAY8S,IACjG,KAEJC,EAAAA,EAAAA,OAAM,kBAAmBrzB,IACzBqzB,EAAAA,EAAAA,OAAM,WAAY/oB,GANf1oB,CAOLuxC,MAGJQ,GAA2BlzB,IAC7B,IAAIyoB,EAAAA,EAAAA,KAAqBzoB,GAAsB,CAC3C,MAAO,IAAK6yB,GAAsBP,GAAwBtyB,GAC1D,OAAO6yB,EAASp1C,OAAS,EAAIo1C,EAASn2B,MAAM,GAAI,GAAK,KAErD,OAAO,MAoBTy2B,GAAwBpvC,IAC1B,OAAQA,EAAWpM,IACf,IAAK,UACD,OAAOy7C,GAEX,IAAK,aACD,OAAOC,GAEX,IAAK,UACD,OAAO3L,GAEX,QACI,MA5B4B4L,CAAAA,IACpC,OAAQA,GACJ,KAAKv7B,EAAAA,IAAAA,UACD,OAAOw7B,GAEX,KAAKx7B,EAAAA,IAAAA,WACD,OAAOy7B,GAEX,KAAKz7B,EAAAA,IAAAA,eACD,OAAO07B,GAEX,QACI,OAAOC,KAgBAC,CAA+B5vC,EAAWmb,mBAAmBxnB,Q,mNCrHhF,MAmCA,IAAew5C,EAAAA,GAAAA,IAAiB,CAAC,EAAD,SAAC,SAACvhC,GAAF,GAAuC,WAAC5L,EAAD,SAAae,EAAb,KAAuBgB,GAA9D,QAAgF,CAC5GikB,gBAAiBpa,GAAYA,EAAS3T,SAAS8I,EAASuB,UACxDutC,kBAAmBt0B,GAAkBxa,EAASya,gBAAiBxb,KAAgB+B,EAAKqF,OAAO0oC,MAAM5uB,EAAAA,QAFrG,EAnCwB,IAQX,IARY,SACrBngB,EADqB,KAErBgB,EAFqB,kBAGrBguC,EAHqB,cAIrB/pB,EAJqB,kBAKrB6pB,EALqB,YAMrBG,GAES,EADN37C,E,kXACM,8FACT,MAAMhB,EAASR,KACTi7C,EAAgC,IAAhBkC,EACtB,OACI,yBACIh8C,UAAWe,IAAAA,CACP,CACI,CAAC1B,EAAO64C,iBAAkBlmB,EAC1B,CAAC3yB,EAAO44C,oBAAqB4D,EAC7B,CAACx8C,EAAOw4C,oBAAqBiC,GAEjCz6C,EAAOu4C,UAGV7pC,EAAKqF,OAAO7N,KAAI,CAAC3C,EAAO6D,IACrB,kBAACs1C,EAAD,IACIl1C,IAAKJ,EACL7D,MAAOA,EACPmK,SAAUA,EACVilB,cAAeA,GACX3xB,UCvCXxB,IAAYC,EAAAA,GAAAA,IAAYqQ,IAAD,CAChC8sC,eAAgB,CACZz5C,KAAM,EACNhB,QAAS,OACTU,MAAO,mBACPC,SAAU,SACV0F,WAAYsH,EAAMM,QAAQ5H,WAAW61B,OAEzCwe,wBAAyB,CACrBzwC,OAAQ,OACRjK,QAAS,OACTC,WAAY,SACZvC,YAAa,OAEjBi9C,iBAAkB,CACdv2C,gBAAiB,yBACjB,YAAa,CACTA,iBAAiBuxC,EAAAA,GAAAA,IAAQhoC,EAAMM,QAAQC,QAAQ0hB,KAAM,OAG7DM,kBAAmB,CACfR,YAAa,MACb1c,aAAc,OACd5O,gBAAiB,yBACjBqrB,WAAY,6BACZ,YAAa,CACTrrB,iBAAiBuxC,EAAAA,GAAAA,IAAQhoC,EAAMM,QAAQC,QAAQ0hB,KAAM,OAG7D1qB,QAAS,GACTivB,aAAc,CACV9gB,WAAY,OACZ,eAAgB,CACZ3V,YAAa,QAGrBk9C,gCAAiC,CAC7B36C,WAAY,qBAEhB46C,eAAgB,CACZ,cAAe,CACXptB,OAAQ,YACRqtB,YAAantC,EAAMM,QAAQC,QAAQ0hB,MAEvC,gBAAiB,CACbH,WAAY,YACZoiB,YAAa,YACbkJ,gBAAiBptC,EAAMM,QAAQC,QAAQ0hB,KACvCorB,iBAAkBrtC,EAAMM,QAAQC,QAAQ0hB,OAGhDqrB,eAAgB,CACZxrB,WAAY,YACZoiB,YAAa,YACbkJ,gBAAiBptC,EAAMM,QAAQC,QAAQ0hB,KACvCorB,iBAAkBrtC,EAAMM,QAAQC,QAAQ0hB,U,mNC3BhD,MAqRA,GApPqB,IAmBR,IAnBS,OAClBpT,EADkB,QAElB4V,EAFkB,SAGlBx0B,EAHkB,YAIlBmpB,EAJkB,mBAKlBm0B,EALkB,OAMlBj2B,EANkB,QAOlBuC,EAPkB,SAQlB2zB,EARkB,QASlBxtB,EATkB,OAUlBytB,EAVkB,SAWlBhlC,EAXkB,eAYlBwhC,EAZkB,cAalByD,EAbkB,YAclBC,EAdkB,YAelBx3B,EAfkB,cAgBlBy3B,EAhBkB,sBAiBlBC,EAjBkB,UAkBlBlV,GACS,EACT,MAAMzoC,EAASR,MACRo+C,EAAgBC,IAAqB18C,EAAAA,EAAAA,UAASozB,IACrDnzB,EAAAA,EAAAA,YAAU,KACNy8C,EAAkBtpB,KACnB,CAACA,IACJ,MAAMupB,GAAkBv0C,EAAAA,EAAAA,cAAY,CAACw0C,EAAqBC,KACtDH,GAAkBI,EAAAA,EAAAA,MAAKF,EAAaC,IACpCE,EAAiBF,KAClB,IAEGG,GAAgBr0C,EAAAA,EAAAA,UAClB,IAAMqxC,GAAsBp7C,EAAUmpB,EAAa00B,EAAgBnV,EAAWxiB,IAC9E,CAAClmB,EAAUmpB,EAAa00B,EAAgBnV,EAAWxiB,IAGjDm4B,IAAab,EACbc,GAAmBv0C,EAAAA,EAAAA,UAAQ,IHmCJ,EAACs0C,EAAmBzxC,KACjD5C,EAAAA,EAAAA,OACIpE,EAAAA,EAAAA,SAAO,QAAC,MAACkiC,GAAF,SAAcA,GAAQA,EAAMjjC,SAASue,EAAmBskB,WAC/DvhC,EAAAA,EAAAA,MAAKyG,G,+UAAD,EACAyxC,SAAAA,GACGzxC,EAFH,CAGA2xC,WAAW,EACXC,WAAYzC,GAAwBnvC,EAAWpM,IAC/C4vC,iBAAoC,YAAlBxjC,EAAWpM,GAAmBi+C,GAA0BvT,GAC1EwT,qBAAsB1C,GAAqBpvC,GAC3CkiC,WAAWxS,EAAAA,EAAAA,SAAO,EAAM,YAAbA,CAA0B1vB,OAT7C5C,CAWE4C,GG/CqC+xC,CAAyBN,EAAUl1B,IAAc,CAACA,EAAak1B,IAEhGO,GAAgB70C,EAAAA,EAAAA,UAClB,IAAO6U,EAASw8B,GAAsBp7C,EAAUmpB,EAAa,CAAC,CAACzD,OAAQ9G,IAAU8pB,GAAa,IAC9F,CAAC9pB,EAAQ5e,EAAUmpB,EAAauf,KAG9B,aAACmW,EAActyC,aAAcuyC,IAAsBC,EAAAA,GAAAA,GAA0B,CAC/E1nC,SAAUunC,EACVz1B,YAAam1B,EACbU,kBA/EqB,IAkFnBC,EAAkBJ,EAAa,GAC/BK,GAAsBn1C,EAAAA,EAAAA,UAAQ,KAChC,MAAMo1C,ECtGeL,CAAAA,GACzB5T,GAEiC55B,IAC7B,MAAMrR,EAASR,KACf,OACI,kBAAC26C,GAAA,WAAD,CAAoB52C,MAAM,eACtB,yBAAK5C,UAAWX,EAAOs4C,oBACnB,yBAAK/3C,GAAG,YACJ,kBAAC0qC,EAAqB55B,IAE1B,kBAACwtC,EAAD,CACIl+C,UAAWe,IAAAA,CAAW1B,EAAO04C,cAAe14C,EAAO24C,uBACnD/vB,SAAUvX,EAAMmkC,aAAaj1C,GAC7BmM,SAAU,EACVnM,GAAG,kBDuFI4+C,CAAoBN,GAC3C,OAAOR,EAAiBn4C,KACpBsf,EAAAA,EAAAA,QAAO,CACH2qB,iBAAkB+O,OAG3B,CAACb,EAAkBQ,IAEhBO,GAAqB71C,EAAAA,EAAAA,cACvB,IAAmB,IAAlB,KAAC81C,EAAD,MAAOC,GAAW,EACf,MAAMC,EAAgBlB,EAAiBgB,EAAK1C,aAAap8C,GACnDi/C,EAAgBnB,EAAiBiB,EAAM3C,aAAap8C,GAC1D88C,EAAmBkC,EAAeC,KAEtC,CAACnB,IAGCoB,GAAyC31C,EAAAA,EAAAA,UAC3C,KAAM,CACF41C,cAAennC,EAASlS,OAAS,GAAKkS,EAASlS,SAAWkuB,EAAQluB,OAClEqsB,cAAe/T,EACfpG,SAAAA,EACAwhC,eAAAA,EACAyD,cAAAA,EACAC,YAAAA,EACAE,sBAAAA,KAEJ,CAACh/B,EAAQpG,EAAUwhC,EAAgByD,EAAeC,EAAalpB,EAASopB,KAGtE,wBAACxwC,EAAD,oBAA0BE,EAA1B,kBAA+CH,IAAqByyC,EAAAA,GAAAA,MAE1EC,EAAAA,EAAAA,iBAAgB1yC,EAAmB,CAACqnB,IAEpC,MAAOsrB,EAAiBC,IAAsB3+C,EAAAA,EAAAA,WAAS,GACjD0yB,GAAoBtqB,EAAAA,EAAAA,cAAY,IAAMu2C,GAAmB,IAAO,IAChEhsB,GAAqBvqB,EAAAA,EAAAA,cAAY,IAAMu2C,GAAmB,IAAQ,KAEjEC,EAAwBC,IAA6B7+C,EAAAA,EAAAA,WAAS,IAE9D84C,EAAeiE,IAAoB/8C,EAAAA,EAAAA,UAAiB,MACrD8+C,GAAa12C,EAAAA,EAAAA,cACdmD,IACGwxC,GAAkBgC,GACdL,GAAmBE,EAAyBG,EAAoBxzC,MAGxE,CAACmzC,EAAiBE,KAGhB,WAACxgB,EAAD,sBAAaI,EAAb,0BAAoCM,GAA6BX,GAAqBlY,GAEtF+4B,GAAyBr2C,EAAAA,EAAAA,UAAQ,KACnC,GAAsB,OAAlBmwC,EACA,OAAO,KAGX,MAAMrmB,EAAegqB,EAAe3D,GAEpC,IAAKrmB,EACD,OAAO,KAGX,MAAMgY,GAAa5R,EAAAA,EAAAA,KACfj6B,EACAqnB,EACAwM,EAAanO,OACb9G,EACAiV,EAAahF,YAGXwxB,EAAY7nC,EAAS3T,SAASgvB,GACpC,OACI,yBAAKjzB,UAAWe,IAAAA,CAAW1B,EAAO68C,0BAC9B,yBAAKl8C,UAAWe,IAAAA,CAAW1B,EAAO88C,iBAAkB,CAAC,CAAC98C,EAAOqH,SAAU+4C,KACnE,kBAAClQ,GAAD,CACI3sC,MAAO,CACHmrB,WAAY/P,EACZA,OAAQiV,EAAanO,OACrBmJ,WAAYgF,EAAahF,WACzBgd,WAAAA,GAEJjM,sBAAuBA,EACvB7L,mBAAoBA,EACpBD,kBAAmBA,EACnBjf,QAAS,CACL0hB,aAAct2B,EAAOs2B,aACrBK,YAAa32B,EAAOs2B,iBAI/B3X,GACG,kBAACc,GAAA,EAAD,CACI9e,UAAWe,IAAAA,CAAW1B,EAAOqyB,kBAAmB,CAAC,CAACryB,EAAOqH,SAAU+4C,IACnE1gC,KAAKqU,EAAAA,EAAAA,KAAoBpV,EAAOe,IAAKkU,EAAanO,OAAO/F,KACzDI,WAAYD,EAAAA,IAAAA,gBACZF,mBAAmBC,EAAAA,EAAAA,KAAwBC,EAAAA,IAAAA,gBAA0C,CACjFZ,UAAWN,EAAOe,IAClBsU,eAAgBJ,EAAanO,OAAO/F,MAExC2gC,wBAAyBL,EACzB/rB,qBAAmB,EACnBC,YAAU,OAK3B,CACC+lB,EACA2D,EACArlC,EACAvY,EACA2e,EACAyI,EACArnB,EACA8zB,EACAC,EACA6L,IAGE2gB,IAAgB/2C,EAAAA,EAAAA,cACjB8H,IACG,OAAQA,EAAM1E,WAAWpM,IACrB,IAAK,UACD,OACI,kBAAC,GAAD,MACQ8Q,EADR,CAEI4oC,cAAeA,EACfsG,eAAgBJ,EAChBK,SAAU9C,KAGtB,IAAK,aACD,OACI,kBAAClvC,GAAA,EAAD,IAAkBC,eAAgBpB,GAAyBgE,GACvD,kBAAC,GAAoBA,IAGjC,QACI,OAAO,kBAAC,GAAoBA,MAGxC,CAAChE,EAAqB4sC,EAAekG,EAAwBzC,IAG3D+C,IAAmBl3C,EAAAA,EAAAA,cAAYlG,EAAAA,EAAAA,QAAO8J,EAAyBuzC,GAAAA,GAA0B,CAC3FvzC,EACAuzC,GAAAA,IAGEC,IAAe72C,EAAAA,EAAAA,UACjB,KAAM,CACFizC,gCAAiC/8C,EAAO+8C,gCACxCC,eAAgBh9C,EAAOg9C,eACvBI,eAAgBp9C,EAAOo9C,kBAE3B,CAACp9C,IAGL,OACI,yBAAKW,UAAWX,EAAO48C,gBACnB,kBAACgE,GAAA,EAAD,CACIC,gBAAgB,EAChB33B,YAAa+1B,EACb7nC,SAAU+mC,EACV2C,QAASrB,EACT3vB,QAASA,EACTytB,OAAQA,EACR5zB,QAASA,EACT2zB,SAAUA,EACVyD,mBAAoB,IACpBC,sBAAuB,IACvBC,cAAe,GAAKjC,EACpBsB,cAAeA,GACfG,iBAAkBA,GAClBS,mBAAmB,EACnBf,uBAAwBA,EACxBlG,cAAeA,EACfgG,WAAYA,EACZrrC,QAAS+rC,GACT5B,kBAxQa,EAyQboC,yBAAuB,EACvBC,4BAA0B,EAC1BC,2BAA4BjC,EAC5BkC,wBAAyBxD,EACzBxlC,IAAKolC,EACL6D,uBAAwB,IAE3BhiB,GAAc,kBAACU,EAAD,QE5SdzgC,IAAYC,EAAAA,GAAAA,GAAW,CAChC+hD,eAAgB,CACZl/C,MAAO,OACPQ,SAAU,U,mNC6BX,MAAM2+C,GAAmB,IAA+D,IAA9D,OAACr6B,EAAD,SAASkd,EAAT,WAAmBC,EAAnB,mBAA+BC,GAA+B,EAC3F,MAAMzkC,GAAqBG,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,aACjCwe,GAAiBze,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,YAC7B,cAACqL,EAAD,YAAgBya,EAAhB,mBAA6BF,GAAsBQ,MACnD,aAACzB,EAAD,iBAAeF,EAAf,sBAAiCI,GAAyByB,MAC1D,sBAACrB,GAAyBgG,MAEzB1L,IAAKT,GAAaN,GAAU,GClCC,EAACiZ,EAAkBjZ,KACvD,MAAM,iBAACiG,GAAoB6B,KAErBxH,GAAY3b,EAAAA,EAAAA,MAAK,MAAOqb,GACxB+U,GAAapwB,EAAAA,EAAAA,MAAK,aAAcqb,GAChC+iC,GAAsB53C,EAAAA,EAAAA,UACxB,KAAM,CACF8tB,UAAW3Y,EACXN,OAAAA,EACAhZ,OAAQ,GACRykB,KAAM,EACN0F,QAAS,CACLd,MAAO,QACP6B,MAAOC,EAAAA,IAAAA,MAEXzG,YAAa,EACbxO,QAASqkB,MAGb,CAACxM,EAAYzU,KAGX,QAACsV,GAAWmG,GAAWgnB,IAE7BtgD,EAAAA,EAAAA,YAAU,KACNwjB,EAAiB2P,KAClB,CAACA,EAAS3P,KDSb+8B,CAAyB,EAAahjC,GAEtC,MAAME,GAAY/U,EAAAA,EAAAA,UAAQ,KAAM42B,EAAAA,EAAAA,KAA6CzhB,EAAWsD,OAAOoe,KAAK1a,KAAe,CAC/GhH,EACAgH,IAGElH,GAAgBC,EAAAA,GAAAA,GAAiB,CAACH,UAAAA,IAElC7e,EAASR,MACR+0C,EAAgBqN,EAAoBC,GErCV,KAKiD,IALhD,mBAClCC,EADkC,sBAElCC,EAFkC,SAGlChiD,EAHkC,cAIlCkxB,GACkF,EAClF,OAAOnnB,EAAAA,EAAAA,UAAQ,KACX,MAAMk4C,EAAkBh6B,GAAejoB,EAAUkxB,GAC3CsjB,EAAuCuN,EACxCp8C,OAAOq8C,GAAyB,IAChCr8C,OAAOs8C,GACN75B,GAA4B85B,EAAAA,EAAAA,KAA6BliD,EAAUkxB,GACnE2wB,EnH6DmC,EAC7Cz5B,EACAe,KAEA,MAAOg5B,EAAkBC,IAAgBp4C,EAAAA,EAAAA,OACrCof,EAAAA,EAAAA,QAAOX,KACPgY,EAAAA,EAAAA,WAAUtY,GAAkBC,IAFSpe,CAGvCmf,GAEF,OAAOg5B,EAAiB77C,OACjB,CACC,CACI9F,GAAI,QACJmD,MAAOI,IAAAA,KAAU,oBACjBilB,QAASG,EAAYvjB,OAAOqjB,GAAmBk5B,KAEnD,CACI3hD,GAAI,MACJmD,MAAOI,IAAAA,KAAU,kBACjBilB,QAASG,EAAYvjB,OAAOqjB,GAAmBm5B,MAGrDj5B,GmHnF8Ck5B,CAC5Cj6B,EACAosB,GAOJ,MAAO,CAACA,EAAgBqN,GALS73C,EAAAA,EAAAA,MAC7Bkf,IACAvjB,EAAAA,EAAAA,QAAOo8C,GACPt4B,GAH6Bzf,CAI/Boe,EAAiB65B,MAEpB,CAACF,EAAoBC,EAAuBhiD,EAAUkxB,KFeIoxB,CAAsB,CAC/EP,mBAAoBlT,GACpB7uC,SAAAA,EACAkxB,cAAetS,EAAOre,QAGnBgiD,EAAgBC,IAAqBphD,EAAAA,EAAAA,UAAmB0gD,IACxDpZ,EAAW+Z,IAAgBrhD,EAAAA,EAAAA,WAAS,GAErCshD,GAAqB34C,EAAAA,EAAAA,UACvB,IAAMw4C,EAAep8C,KAAK3F,GAAOg0C,EAAehwC,MAAKywB,EAAAA,EAAAA,QAAO,KAAMz0B,MAAMoF,OAAOmD,EAAAA,WAC/E,CAACw5C,EAAgB/N,IAGf8I,GAAqB9zC,EAAAA,EAAAA,cACvB,CAACg2C,EAAeC,KACZ,MAAMzB,EAAcuE,EAAehP,QAAQiM,GACrCvB,EAAcsE,EAAehP,QAAQkM,GAC3C+C,GAAkBtE,EAAAA,EAAAA,MAAKF,EAAaC,MAExC,CAACsE,IAGCI,EAAsB,CACxB/jC,OAAAA,EACA5e,SAAAA,EACAyL,cAAeA,GAAiB,GAChCoZ,iBAAAA,EACAwC,OAAAA,EACAmhB,gBAAiB+Z,EACjBhO,mBAAoBiO,EACpBt8B,YAAAA,EACAiD,YAAa04B,EACbnZ,UAAAA,GAGEka,EAAoB,CACtBhkC,OAAAA,EACA5e,SAAAA,EACAkmB,YAAAA,EACAmB,OAAAA,EACAmN,QAAS/oB,EACT0d,YAAau5B,EACbpF,mBAAAA,EACAI,YAAa,OACb1D,eAAgBj1B,EAChB04B,cAAe,OACfjlC,SAAU,GACVolC,uBAAuB,EACvBlV,UAAAA,GAyBJ,OAtBArnC,EAAAA,EAAAA,YAAU,KACDkjC,IAGDC,MAAAA,GAAAA,EAAY+d,gBACZC,EG1Ge,WAAgD,IAA/CK,EAA+C,uDAAjB,GACtD,MAAMC,GAAwB94C,EAAAA,EAAAA,OAAKpE,EAAAA,EAAAA,SAAOqvB,EAAAA,EAAAA,QAAO,YAAY,KAAS9uB,EAAAA,EAAAA,MAAI5C,EAAAA,EAAAA,MAAK,QACzEw/C,GAAY/4C,EAAAA,EAAAA,MAAKrE,EAAAA,OAAQmsC,EAAAA,MAEzBkR,EAAqBF,EAAsBjU,IACjD,OAAOkU,EAAUC,EAAoBH,GHqGXI,CAAmBze,EAAW+d,iBAEhD/d,MAAAA,GAAAA,EAAYxe,oBACZf,EAAsBuf,EAAWxe,qBAEjCk9B,EAAAA,EAAAA,KAAI,YAAa1e,IACjBie,EAAaje,EAAWkE,cAE7B,CAACnE,KAEJljC,EAAAA,EAAAA,YAAU,KACDkjC,GAGLE,EAAmB,CAACze,mBAAAA,EAAoBu8B,eAAAA,EAAgB7Z,UAAAA,MACzD,CAAC6Z,EAAgBv8B,EAAoB0iB,IAGpC,oCACI,kBAACH,GAAD,CACIlhB,OAAQA,EACR8B,YAAa04B,EACbrZ,gBAAiB+Z,EACjB9Z,gBAAiB+Z,EACjB9Z,UAAWA,EACXC,kBAAmB8Z,IAEvB,kBAACrjC,GAAA,WAAD,CAA+B5b,MAAOwb,GACjCgH,IAAuB5C,EAAmB6C,QACvC,kBAACk9B,GAAA,EAAD,KACI,kBAACxR,GAAqBtwB,SAAtB,CAA+B7d,MAAOuhB,GACjCwf,GACG,kBAACkT,GAAD,MAAoBkL,EAApB,CAAyC9tC,QAAS,CAAC7E,KAAM/P,EAAOwhD,qBAK5Eld,GAAY,kBAAC,GAAiBqe,IAGrCv9B,GAAyB,kBAACqV,EAAA,EAAD,Q,gBIrJtC,SAASnY,KAA2Q,OAA9PA,GAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIxb,EAAI,EAAGA,EAAIyb,UAAUrc,OAAQY,IAAK,CAAE,IAAI0b,EAASD,UAAUzb,GAAI,IAAK,IAAIO,KAAOmb,EAAcJ,OAAOK,UAAUC,eAAeC,KAAKH,EAAQnb,KAAQib,EAAOjb,GAAOmb,EAAOnb,IAAY,OAAOib,GAAkBH,GAASS,MAAMC,KAAMN,WAGhT,SAAgB,QAAC,OACf1iB,EAAS,IADK,EAEXqR,E,kXAFW,sBAGV4R,IAAAA,cAAoB,MAAOX,GAAS,CACxChgB,MAAO,KACP8J,OAAQ,KACRkF,QAAS,YACTuB,KAAM,OACNtB,MAAO,8BACNF,GAAQ4R,IAAAA,cAAoB,OAAQ,CACrCnQ,SAAU,UACVW,SAAU,UACVN,EAAG,kPACHN,KAAM,OACNG,YAAa,WCfFxT,IAAYC,EAAAA,GAAAA,GAAW,CAChC0jD,QAAS,CACLhhD,QAAS,OACTC,WAAY,UAEhB1C,KAAM,CACFyC,QAAS,OACTC,WAAY,SACZoE,OAAQ,WCFH48C,GAAyB,KAClC,MAAM,cAAC53C,EAAD,mBAAgBua,EAAhB,eAAoCR,GAAkBgB,MACtD,sBAACvB,EAAD,mBAAwBE,GAAsBuB,KAC9CzmB,EAASR,KACT6jD,GAAS95C,EAAAA,EAAAA,cAAY,KACvByb,EAAsB7B,EAAmBskB,SAC1C,CAACziB,IACE1Z,EAAOya,IAAuB5C,EAAmB6C,SAAWxa,EAAcnF,OAASkf,EACnF1kB,EAAQiD,IAAAA,KAAU,wBAClB2tB,EACF,yBAAK9wB,UAAWX,EAAOmjD,SAClBr/C,IAAAA,KAAU,oBACX,yBAAKnD,UAAWX,EAAON,MACnB,kBAAC4jD,GAAD,OAEHx/C,IAAAA,KAAU,kDAAmD,CAACyG,I3HZpC,K2HenC,OACI,kBAACg5C,GAAA,EAAD,CACIj4C,KAAMA,EACNzK,MAAOA,EACP4wB,QAASA,EACT4xB,OAAQA,EACRG,UAAWt+B,EACXu+B,YAAa3/C,IAAAA,KAAU,WACvB4/C,eAAgB5/C,IAAAA,KAAU,aChCzBtE,IAAYC,EAAAA,GAAAA,IAAYqQ,IAAD,CAChC6zC,gBAAiB,CACbj0B,SAAU,WACV7W,IAAK,EACLC,KAAM,EACN4Y,MAAO,EACPkyB,OAAQ,EACR9oC,WAAY,uCACZuZ,UAAW,SACXD,UAAW,OACXjyB,QAAS,OACT8N,cAAe,SACf1J,gBAAiBuJ,EAAMM,QAAQ5H,WAAWq7C,SAE9CC,wBAAyB,CACrB3hD,QAAS,OACT8N,cAAe,SACfnN,SAAU,SACVuS,SAAU,GAEd0uC,0BAA2B,CACvB5hD,QAAS,OACTW,SAAU,SACVuS,SAAU,GAEd,4BAA6B,CACzByF,WAAY,wCAEhB,iCAAkC,CAC9BA,WAAY,4C,2cCXb,MAAMkpC,GAAuB,IAA+C,IAA9C,OAAC58B,EAAD,cAAS68B,EAAT,UAAwBC,GAAsB,EAC/E,MAAMlkD,EAASR,KACTmf,GAAiBze,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,YAC7B,iBAACgkD,EAAD,oBAAmB13B,IAAuB23B,EAAAA,EAAAA,KAC1CC,GAAiB15C,EAAAA,EAAAA,WAEjB,SAAC25B,EAAD,WAAWC,EAAX,iBAAuB+f,IAAoBC,EAAAA,EAAAA,GAAuD,CACpGN,cAAAA,EACAC,UAAAA,EACAjzB,cAAetS,EAAOre,QAG1Bc,EAAAA,EAAAA,YAAU,KACDkjC,IACL+f,EAAet5C,QAAUw5B,GAAc,MACxC,CAACD,EAAUC,IAEd,MAAMC,GAAqBj7B,EAAAA,EAAAA,cACvB,WAAsB,IAArBi7C,EAAqB,uDAAP,GACX,IAAKH,EAAet5C,QAAS,OAC7B,MAAM05C,EAAgB,MAAIJ,EAAet5C,QAAYy5C,IAChDz6B,EAAAA,EAAAA,QAAO06B,EAAeJ,EAAet5C,WACtCu5C,EAAiBG,GACjBJ,EAAet5C,QAAU05C,KAGjC,CAACH,IAGL,OACI,kBAACp+B,GAAD,KACI,kBAACvC,EAAD,KACI,kBAAC+I,EAAAg4B,EAAA,SAAD,CAA0BnhD,MAAOkpB,GAC7B,yBAAK9rB,UAAWX,EAAO2jD,kBAClBhlC,MAAAA,OAAA,EAAAA,EAAQe,MACL,yBAAK/e,UAAWX,EAAO+jD,2BACnB,yBAAKpjD,UAAWX,EAAO8jD,yBACnB,kBAACplC,EAAA,EAAD,CAAmBC,OAAQA,IAC3B,kBAAC8iC,GAAD,CACIr6B,OAAQA,EACRkd,SAAUA,EACVC,WAAYA,EACZC,mBAAoBA,KAG5B,kBAACH,GAAD,CACIjd,OAAQA,EACRkd,SAAUA,EACVC,WAAYA,EACZC,mBAAoBA,IAExB,kBAAC2f,EAAD,MACA,kBAACf,GAAD,Y,gBC1DhC,MAAMuB,IAAoBC,EAAAA,EAAAA,yBAAwB,CAC9CC,iBAAkB,uBAClBC,eAAe,IAGbd,GAAuB,IAAoE,IAAnE,OAAC58B,EAAD,MAAS29B,EAAT,SAAgB51C,EAAWrG,EAAAA,SAA3B,UAAqCo7C,EAArC,cAAgDD,GAAmB,EAC7F,MAAMe,GAA2Bz7C,EAAAA,EAAAA,cAC7B07C,EAAAA,EAAAA,KAA8DhB,GAC9D,CAACA,IAGL,OACI,kBAAC,EAAA7iC,SAAD,CAAU2jC,MAAOA,GACb,kBAACG,GAAA,WAAD,CAAwB3hD,MAAO6jB,EAAO7mB,IAClC,kBAAC,EAAA4kD,eAAD,CAAgBR,kBAAmBA,IAC/B,kBAAC,EAAAS,wBAAD,CAAyBC,MAAOC,EAAAA,GAC5B,kBAAC,IAAD,CACIp2C,cAAY,EACZC,SAAU,CAAC7M,EAAO8J,IAAW+C,EAAS7E,KAAKi7C,MAAMjjD,GAAQgI,KAAKi7C,MAAMn5C,MAEvEgb,GACG,kBAAC,GAAD,CAAQA,OAAQA,EAAQ88B,UAAWA,EAAWD,cAAee,IAEjE,kBAACn6B,GAAA,EAAD,WAQxBm5B,GAAqB11C,UAAY,CAC7B8Y,OAAQo+B,EAAAA,IACRT,MAAOx2C,IAAAA,OACPY,SAAUZ,IAAAA,KACV21C,UAAW31C,IAAAA,KACX01C,cAAe11C,IAAAA,MAGnB,MCnDA,GDmDA","sources":["webpack://@reltio/remotes/../components/src/components/AttributeGroupIcon/styles.ts","webpack://@reltio/remotes/../components/src/components/AttributeGroupIcon/AttributeGroupIcon.tsx","webpack://@reltio/remotes/../components/src/components/AvatarWithFallback/AvatarWithFallback.tsx","webpack://@reltio/remotes/../components/src/components/BasicAttributeSelector/AttributeTitle/styles.ts","webpack://@reltio/remotes/../components/src/components/BasicAttributeSelector/AttributeTitle/AttributeTitle.tsx","webpack://@reltio/remotes/../components/src/components/BasicAttributeSelector/helpers.ts","webpack://@reltio/remotes/../components/src/components/SelectAttributesList/styles.ts","webpack://@reltio/remotes/../components/src/components/SelectAttributesList/SelectAttributesList.tsx","webpack://@reltio/remotes/../components/src/components/BasicAttributeSelector/styles.ts","webpack://@reltio/remotes/../components/src/components/BasicAttributeSelector/BasicAttributeSelector.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withTableContext.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/hooks/useDynamicRowCellHeight.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/CollapseRowButton/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/CollapseRowButton/CollapseRowButton.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/RowCellAutoSizer/RowCellAutoSizer.js","webpack://@reltio/remotes/../components/src/components/CollapseButton/styles.ts","webpack://@reltio/remotes/../components/src/components/CollapseButton/CollapseButton.tsx","webpack://@reltio/remotes/../components/src/components/EmptyState/styles.ts","webpack://@reltio/remotes/../components/src/components/EmptyState/EmptyState.tsx","webpack://@reltio/remotes/../components/src/icons/EmptySearchResults.tsx","webpack://@reltio/remotes/../components/src/icons/SelectAttributes.tsx","webpack://@reltio/remotes/../components/src/icons/NoData.tsx","webpack://@reltio/remotes/../components/src/icons/Error.tsx","webpack://@reltio/remotes/../components/src/components/QueryBuilderRow/styles.js","webpack://@reltio/remotes/../components/src/components/QueryBuilderRow/components/styles.js","webpack://@reltio/remotes/../components/src/components/QueryBuilderRow/components/ReadOnlyLogicOperator.js","webpack://@reltio/remotes/../components/src/components/QueryBuilderRow/components/ReadOnlyFilter.js","webpack://@reltio/remotes/../components/src/components/QueryBuilderRow/QueryBuilderRow.js","webpack://@reltio/remotes/../components/src/components/QueryBuilderRowsGroup/QueryBuilderRowsGroup.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/CreatableSelect.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/components/Option.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/components/index.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/MultiSelect.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/index.js","webpack://@reltio/remotes/../components/src/components/ScreenProfileBand/styles.ts","webpack://@reltio/remotes/../components/src/components/ScreenProfileBand/ScreenProfileBand.tsx","webpack://@reltio/remotes/../components/src/components/SourceIcon/SourceIcon.tsx","webpack://@reltio/remotes/../components/src/components/Spacer/Spacer.js","webpack://@reltio/remotes/../components/src/components/attributes/readMode/AttributeValuesBlock/AttributeValuesBlock.tsx","webpack://@reltio/remotes/../components/src/contexts/CrosswalksDisplayContext/index.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/icons/potential-matches-icon.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/icons/find-matches-icon.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/icons/not-a-match-icon.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/constants/views.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/contexts/ReloadDataContext/index.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/contexts/ViewStateContext/index.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/helpers/stateReducer.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/helpers/attributesHelpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/helpers/sortHelpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useMatchesReducer.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/utils/errors.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/useSpinnerAndReloadData.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/MergeButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/NotMatchButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/icons/setAsMatch.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/SetAMatchButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useSetAMatch.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/icons/dcrReview.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/DcrReviewButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useRequestDCRReview.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useReinstateMatch.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/ReinstateMatchButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/icons/addRelationship.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/CreateRelationButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/contexts/RightSideHeaderContext/index.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/SortingFieldSelector/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/SortingFieldSelector/SortingFieldSelector.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanelHeader/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanelHeader/RightSidePanelHeader.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useSortOptions.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ItemRenderer/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ItemRenderer/ItemRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchItems/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchItems/MatchItems.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/FindMatchesView/RightSideSearch/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/FindMatchesView/RightSideSearch/RightSideSearch.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ActionsPanel/MenuItemRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ActionsPanel/ActionsPanel.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/FindMatchesView/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/FindMatchesView/FindMatchesView.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useFindEntities.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useMatches.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/AddRelationDialog/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/AddRelationDialog/AddRelationDialog.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/helpers/relationsHelpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useAddRelationDialog.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/constants/defaultOptions.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesView/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesView/MatchesView.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useNotMatches.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/NotMatchView/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/NotMatchView/NotMatchView.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Content/Content.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/ValuesEditor/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/ValuesEditor/ValuesEditor.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/FilterSelector/FilterSelector.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/MatchesAttributesFiltersButton/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/MatchesAttributesFiltersButton/MatchesAttributesFiltersButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/RightSidePanel.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonViewModeSwitcher/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonViewModeSwitcher/ComparisonViewModeSwitcher.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/TableHeader/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/TableHeader/TableHeader.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/ExpandedContext.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/withExpanded.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/MatchedValuesCounter/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/MatchedValuesCounter/MatchedValuesCounter.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/AttributesRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/contexts/ColumnsDataContext/index.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/HeadCellRenderer/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/HeadCellRenderer/HeadCellRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/ComplexAttributesHeadRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/HoveredEntityContext.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchControls/MatchControls.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/EntityCard/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/constants/workflow.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useWorkflowTasks.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/WorkflowTasksAvailabilityContext.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/WorkflowCard/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/WorkflowCard/WorkflowCard.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/constants/defaultRows.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ColoredSourceIcon/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ColoredSourceIcon/ColoredSourceIcon.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/CrosswalksRenderer/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/CrosswalksRenderer/LabelRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/CrosswalksRenderer/CrosswalksRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/cell-renderers/SourcesRenderer/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/cell-renderers/SourcesRenderer/SourcesRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/helpers/tableHelpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/EntityCard/EntityCard.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/MatchMethod/MatchMethod.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/WorkflowCardRenderer/WorkflowCardRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/contexts/ColumnHandlerContext/index.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/helpers/attributesHelpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/AddRowPopups/ConfigRowPopup.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/AddRowPopups/helpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/AddRowPopups/AddRowPopups.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useWorkflowTasksAvailability.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/ComparisonTable.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonView/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonView/ComparisonView.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/HeadCellRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/DefaultCellValueRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/EntityProfileRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/ProfileHeadCellRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/MatchRulesRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/BlobRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/ImageRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/ReferenceRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/SourcesRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/dataHelpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/RowCellRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/MatchesTable.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/withEntityCellValue.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchReviewTable/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchReviewTable/MatchReviewTable.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useFirstPotentialMatches.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useMatchesColumnData.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchReviewTable/helpers/helpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ChangeModeConfirmation/TableIcon.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ChangeModeConfirmation/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ChangeModeConfirmation/ChangeModeConfirmation.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/PotentialMatchesView.tsx","webpack://@reltio/remotes/../potential-matches/src/index.tsx","webpack://@reltio/remotes/./src/potential-matches.ts"],"sourcesContent":["import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n icon: {\n maxHeight: '25px',\n maxWidth: '25px',\n marginRight: '16px'\n }\n});\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport mdm from '@reltio/mdm-module';\nimport {getAbsoluteImageUrl, getEntityTypeGraphIcon, Metadata} from '@reltio/mdm-sdk';\nimport AvatarWithFallback from '../AvatarWithFallback/AvatarWithFallback';\nimport {useStyles} from './styles';\n\ntype Props = {\n group: {id: string; title: string};\n metadata: Metadata;\n};\n\nconst AttributeGroupIcon = ({group, metadata}: Props) => {\n const styles = useStyles();\n const absoluteImagePath = useSelector(mdm.selectors.getAbsoluteImagePath);\n const entityTypeGraphIcon = getEntityTypeGraphIcon(metadata, {type: group.id});\n const absoluteImageUrl = getAbsoluteImageUrl(absoluteImagePath, entityTypeGraphIcon);\n return <AvatarWithFallback className={styles.icon} icon={absoluteImageUrl} avatarText={group.title[0]} />;\n};\n\nexport default AttributeGroupIcon;\n","import {Avatar as Avatar} from '@material-ui/core';\nimport classnames from 'classnames';\nimport React, {useEffect, useState} from 'react';\n\nenum AvatarStates {\n ICON_MODE,\n TEXT_MODE,\n ERROR_MODE\n}\ntype Props = {\n className?: string;\n icon?: string;\n avatarText?: string;\n variant?: 'circle' | 'circular' | 'rounded' | 'square';\n rootClasses?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst AvatarWithFallback = ({className, icon, avatarText, rootClasses, ...otherProps}: Props) => {\n const [state, setState] = useState<AvatarStates>(null);\n useEffect(() => {\n if (icon) {\n setState(AvatarStates.ICON_MODE);\n } else {\n setState(AvatarStates.TEXT_MODE);\n }\n }, [icon, avatarText]);\n const onImageLoadFail = () => {\n setState(AvatarStates.ERROR_MODE);\n };\n\n switch (state) {\n case AvatarStates.ICON_MODE:\n return (\n <Avatar\n className={classnames(className, rootClasses?.iconRoot)}\n src={icon}\n onError={onImageLoadFail}\n {...otherProps}\n />\n );\n case AvatarStates.TEXT_MODE:\n case AvatarStates.ERROR_MODE:\n return (\n <Avatar className={classnames(className, rootClasses?.textRoot)} {...otherProps}>\n {avatarText}\n </Avatar>\n );\n default:\n return null;\n }\n};\n\nexport default AvatarWithFallback;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n attribute: {\n cursor: 'pointer',\n lineHeight: '16px',\n flexBasis: '100%',\n display: 'flex',\n alignItems: 'center',\n padding: '0 10px 0 16px',\n width: 'calc(100% - 32px)',\n '&$attributeWithValue': {\n borderBottom: '1px solid rgba(0,0,0,0.38)'\n },\n '&$disabled': {\n cursor: 'default'\n }\n },\n disabled: {},\n attributeWithValue: {},\n noSelect: {},\n name: {\n fontSize: '14px',\n color: 'rgba(0,0,0,0.87)',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n direction: 'rtl',\n textAlign: 'left',\n flex: '1 0',\n width: '0',\n '& $noSelect': {\n color: 'rgba(0,0,0,0.38)'\n },\n '&$disabled': {\n color: 'rgba(0,0,0,0.26)',\n '& $noSelect': {\n color: 'rgba(0,0,0,0.26)'\n }\n }\n }\n});\n\nexport default useStyles;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {either, prop} from 'ramda';\nimport {ArrowDropDown} from '@material-ui/icons';\nimport ExpandedValueTooltip from '../../ExpandedValueTooltip/ExpandedValueTooltip';\nimport SmallIconButton from '../../SmallIconButton/SmallIconButton';\nimport {AttributeSelectorItem} from '../../../types';\nimport useStyles from './styles';\n\ntype Value = {\n fieldName: string;\n title: string;\n};\ntype Props = {\n value: AttributeSelectorItem;\n disabled: boolean;\n getLabel: (value: Value) => string;\n onSelectAttributeClick: (event) => void;\n};\n\nconst defaultGetLabel = either(prop('title'), prop('fieldName'));\n\nconst AttributeTitle = ({value, getLabel = defaultGetLabel, onSelectAttributeClick, disabled = false}: Props) => {\n const styles = useStyles();\n const label = value && getLabel(value);\n return (\n <div\n onClick={disabled ? undefined : onSelectAttributeClick}\n className={classnames(\n styles.attribute,\n {\n [styles.attributeWithValue]: !!label\n },\n {[styles.disabled]: disabled}\n )}\n >\n <ExpandedValueTooltip value={label}>\n <div className={classnames(styles.name, {[styles.disabled]: disabled})}>\n {label || <span className={styles.noSelect}>{i18n.text('Select attribute')}</span>}\n </div>\n </ExpandedValueTooltip>\n <SmallIconButton size={'M'} icon={ArrowDropDown} disabled={disabled} />\n </div>\n );\n};\n\nexport default AttributeTitle;\n","import {eqBy, pick, curry} from 'ramda';\nimport {getMaxItemWidth} from '@reltio/mdm-sdk';\nimport {AttributeSelectorItem, AttributeSelectorItemsGroup} from '../../types';\n\nexport const isEqualAttributes = eqBy(pick(['fieldName', 'uri', 'entityTypeUri']));\n\nexport const checkAttributeIncludes = (attribute: AttributeSelectorItem, selectedAttributes: AttributeSelectorItem[]) =>\n selectedAttributes && !!selectedAttributes.find(isEqualAttributes(attribute));\n\nconst filterItem = (item: AttributeSelectorItem, filterText: string) =>\n item.title.toLowerCase().includes(filterText.toLowerCase());\n\nexport const filterItemsTree = (item: AttributeSelectorItem, filterText: string): boolean =>\n filterItem(item, filterText) || (item.children || []).some((item) => filterItemsTree(item, filterText));\n\nexport const filterSelectedAttributes = ({\n attribute,\n selectedAttributes,\n checked\n}: {\n attribute: AttributeSelectorItem;\n selectedAttributes: AttributeSelectorItem[];\n checked: boolean;\n}) => {\n return checked\n ? selectedAttributes.concat(attribute)\n : selectedAttributes.filter((selectedAttribute) => !isEqualAttributes(attribute, selectedAttribute));\n};\n\nexport const getAttributeIndex = (selectedAttributes: AttributeSelectorItem[], attribute: AttributeSelectorItem) =>\n selectedAttributes.findIndex(isEqualAttributes(attribute));\n\nexport const getContainerWidth = getMaxItemWidth('title');\n\nexport const getOnEnterHandler = ({\n onListItemClick,\n selectedAttributes\n}: {\n selectedAttributes: AttributeSelectorItem[];\n onListItemClick: (attribute: AttributeSelectorItem, checked: boolean) => void;\n}) => ({item, groupData}) => {\n const checked = checkAttributeIncludes(item, selectedAttributes);\n onListItemClick({...item, groupName: groupData.groupName}, !checked);\n};\n\nconst getAttributeGroupData = (\n item: AttributeSelectorItem,\n groupId: string,\n groupName: string,\n filterText: string,\n level = 0,\n noFilter = false\n) => {\n const isItemFiltered = filterItem(item, filterText);\n return [\n {\n item: filterText ? {...item, filterText} : item,\n level,\n groupId,\n groupName\n }\n ]\n .concat(\n item.children\n ? item.children\n .filter((subItem) => noFilter || isItemFiltered || filterItemsTree(subItem, filterText))\n .flatMap((subItem) =>\n getAttributeGroupData(\n subItem,\n groupId,\n groupName,\n filterText,\n level + 1,\n noFilter || isItemFiltered\n )\n )\n : []\n )\n .flat();\n};\n\nexport const prepareGroupsForSelectAttributeList: (\n filterText: string,\n groups: AttributeSelectorItemsGroup[]\n) => {item: AttributeSelectorItemsGroup[]; items: AttributeSelectorItem[]} = curry(\n (filterText: string, groups: AttributeSelectorItemsGroup[]) =>\n groups\n .map((group) => ({\n item: group,\n items: group.attributes\n .filter((attribute) => filterItemsTree(attribute, filterText))\n .map((item) => getAttributeGroupData(item, group.id, group.title, filterText))\n }))\n .filter((group) => group.items.length)\n);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n subHeader: {\n backgroundColor: '#f5f5f5',\n padding: '0 16px',\n margin: 0,\n display: 'flex',\n alignItems: 'center',\n color: 'rgba(0,0,0,0.84)',\n fontSize: '14px',\n fontWeight: 500\n }\n});\n","import React, {memo} from 'react';\nimport {useSelector} from 'react-redux';\nimport {ListItem as ListItem} from '@material-ui/core';\nimport mdmModule from '@reltio/mdm-module';\nimport {AttributeType} from '@reltio/mdm-sdk';\nimport AttributeListItem from '../AttributeListItem/AttributeListItem';\nimport VirtualGroupedList from '../VirtualGroupedList/VirtualGroupedList';\nimport Highlighter from '../Highlighter/Highlighter';\nimport AttributeGroupIcon from '../AttributeGroupIcon/AttributeGroupIcon';\nimport {checkAttributeIncludes} from '../BasicAttributeSelector/helpers';\nimport {AttributeSelectorItem} from '../../types';\nimport {useStyles} from './styles';\n\nconst ITEM_HEIGHT = 28;\nconst ITEM_GROUP_TITLE_HEIGHT = 40;\n\ntype Data = {\n attrType?: AttributeType;\n};\ntype Props = {\n selectedAttributes: AttributeSelectorItem[];\n focusIndex: number;\n hideCheckBox: boolean;\n onItemClick: (data: Data, checked: boolean, groupId: string) => void;\n} & Record<string, unknown>;\n\nconst SelectAttributesList = ({selectedAttributes, onItemClick, focusIndex, hideCheckBox, ...otherProps}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const getItemSize = (i, item) => (item.items ? ITEM_GROUP_TITLE_HEIGHT : ITEM_HEIGHT);\n\n const renderGroupTitle = (style, item) => (\n <ListItem component={'div'} className={styles.subHeader} style={style} key={`group-${item.item.id}`}>\n {item.item.needGroupIcon && <AttributeGroupIcon group={item.item} metadata={metadata} />}\n {item.item.title}\n </ListItem>\n );\n\n const renderItem = (style, {item, level, groupId, groupName}, index) => {\n const checked = checkAttributeIncludes(item, selectedAttributes);\n const isFocused = index === focusIndex;\n return (\n <AttributeListItem\n key={`item-${groupId}-${item.fieldName}`}\n onClick={onItemClick}\n checked={checked}\n data={{\n ...item,\n groupName\n }}\n notSelectable={item.notSelectable}\n hideCheckBox={hideCheckBox}\n label={<Highlighter text={item.title} highlight={item.filterText} />}\n labelInText={item.title}\n level={level}\n style={style}\n isFocused={isFocused}\n groupId={groupId}\n LogoIcon={item.LogoIcon}\n />\n );\n };\n\n return (\n <VirtualGroupedList\n getItemSize={getItemSize}\n renderItem={renderItem}\n renderGroupTitle={renderGroupTitle}\n focusIndex={focusIndex}\n {...otherProps}\n />\n );\n};\n\nexport default memo(SelectAttributesList);\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n selector: {\n minWidth: '200px',\n alignItems: 'stretch',\n background: 'rgba(0,0,0, 0.0267)',\n boxSizing: 'border-box',\n borderRadius: '4px',\n display: 'flex'\n }\n});\n\nexport default useStyles;\n","import React, {memo, useCallback, useMemo, useRef, useState} from 'react';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {identity, pipe, tap, prop, flatten, pick, map, chain, when, always} from 'ramda';\nimport SelectionPopup from '../SelectionPopup/SelectionPopup';\nimport {useKeyboardNavigation} from '../SelectionPopup/helpers';\nimport AttributeTitle from './AttributeTitle/AttributeTitle';\nimport {\n filterSelectedAttributes,\n getAttributeIndex,\n getContainerWidth,\n getOnEnterHandler,\n prepareGroupsForSelectAttributeList\n} from './helpers';\nimport SelectAttributesList from '../SelectAttributesList/SelectAttributesList';\nimport {flattenGroupedItemsData} from '../VirtualGroupedList/helpers';\nimport {AttributeSelectorItem, BasicAttributeSelectorProps} from '../../types';\nimport useStyles from './styles';\n\nconst ATTRIBUTES_LIST_HEIGHT = 400;\nconst ATTRIBUTES_LIST_WIDTH = 308;\nconst ATTRIBUTES_POPUP_HEIGHT = 507;\n\nconst BasicAttributeSelector = ({\n className,\n itemsGroups,\n value,\n getLabel,\n onSelect,\n onRestoreFocus = identity,\n onOpenPopup = identity,\n disableRestoreFocus = false,\n disableEnforceFocus = false,\n single = false,\n ungroup = false,\n disabled = false,\n hideCheckBox = false\n}: BasicAttributeSelectorProps) => {\n const styles = useStyles();\n const [selectAnchor, setSelectAnchor] = useState(null);\n const openPopup = (event) => {\n onOpenPopup();\n setSelectAnchor(event.currentTarget);\n };\n const closePopup = useCallback(() => setSelectAnchor(null), []);\n const isPopupOpen = !!selectAnchor;\n\n const [filterText, setFilterText] = useState('');\n const clearFilterText = useCallback(() => setFilterText(''), []);\n\n const [selectedAttributes, setSelectedAttributes] = useState([]);\n const clearSelectedAttributes = useCallback(() => setSelectedAttributes([]), []);\n\n const filteredItemsGroups = useMemo(() => prepareGroupsForSelectAttributeList(filterText, itemsGroups), [\n itemsGroups,\n filterText\n ]);\n\n const items = useMemo(\n () =>\n pipe(\n when(always(ungroup), chain(pipe(prop('items'), flatten, map(pick(['item', 'level']))))),\n flattenGroupedItemsData\n )(filteredItemsGroups),\n [ungroup, filteredItemsGroups]\n );\n\n const containerWidth = useMemo(() => Math.max(getContainerWidth(filteredItemsGroups), ATTRIBUTES_LIST_WIDTH), [\n filteredItemsGroups\n ]);\n\n const handleOnClose = pipe(tap(pipe(clearSelectedAttributes, clearFilterText, closePopup)), onRestoreFocus);\n\n const searchInputRef = useRef<HTMLInputElement>();\n\n const onListItemClick = useCallback(\n (attribute: AttributeSelectorItem, checked: boolean) => {\n onSelect({\n checked,\n attribute,\n index: checked ? selectedAttributes.length : getAttributeIndex(selectedAttributes, attribute),\n selectedAttributes\n });\n\n if (single) {\n setSelectedAttributes(checked ? [attribute] : []);\n handleOnClose({});\n } else {\n setSelectedAttributes(filterSelectedAttributes({selectedAttributes, attribute, checked}));\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }\n },\n [selectedAttributes, onSelect, single, handleOnClose, searchInputRef]\n );\n\n const handleSearchOnEnter = useCallback(getOnEnterHandler({onListItemClick, selectedAttributes}), [\n onListItemClick,\n selectedAttributes\n ]);\n\n const {focusIndex, handleKeyDown} = useKeyboardNavigation({\n items,\n open: isPopupOpen,\n onSelectFocusedItem: handleSearchOnEnter,\n selectedItems: selectedAttributes,\n onClose: handleOnClose\n });\n\n return (\n <div className={classnames(styles.selector, className)} data-reltio-id=\"attribute-selector\">\n <AttributeTitle value={value} getLabel={getLabel} onSelectAttributeClick={openPopup} disabled={disabled} />\n <SelectionPopup\n open={isPopupOpen}\n anchorEl={selectAnchor}\n onClose={handleOnClose}\n onSearch={setFilterText}\n title={i18n.text('Select attribute')}\n containerWidth={containerWidth}\n containerHeight={ATTRIBUTES_POPUP_HEIGHT}\n searchInputOnKeyDown={handleKeyDown}\n anchorOrigin={{horizontal: 'right', vertical: 'bottom'}}\n searchInputRef={searchInputRef}\n disableRestoreFocus={disableRestoreFocus}\n disableEnforceFocus={disableEnforceFocus}\n >\n <SelectAttributesList\n items={items}\n onItemClick={onListItemClick}\n selectedAttributes={selectedAttributes}\n width={containerWidth}\n height={ATTRIBUTES_LIST_HEIGHT}\n focusIndex={focusIndex}\n hideCheckBox={hideCheckBox}\n />\n </SelectionPopup>\n </div>\n );\n};\n\nexport default memo(BasicAttributeSelector);\n","import {TableContext} from '../contexts/TableContext';\nimport {withContext} from '../../../../HOCs/withContext/withContext';\n\nconst withTableContext = (contextSelector) => (CellRenderer) =>\n withContext(TableContext, contextSelector, CellRenderer);\n\nexport default withTableContext;\n","import {useCallback, useRef, useState} from 'react';\nimport {__, curry, identity, pipe, prop, useWith} from 'ramda';\nimport {debounce} from '@reltio/mdm-sdk';\n\nconst getRowCellKey = ({rowIndex, columnData: {id}, cellIndex}) => `${id}[${rowIndex}][${cellIndex}]`;\n\nconst useDynamicRowCellHeight = () => {\n const [rowCellHeightsMap, setRowCellHeightsMap] = useState({});\n const rowCellHeightsMapCache = useRef({});\n const batchHeightUpdate = (key, value) => {\n rowCellHeightsMapCache.current[key] = value;\n };\n const flushHeightUpdates = useCallback(\n debounce(() => {\n setRowCellHeightsMap({...rowCellHeightsMapCache.current});\n }),\n []\n );\n const clearHeightsCache = useCallback(() => {\n rowCellHeightsMapCache.current = {};\n }, []);\n\n const getDynamicRowCellHeight = useCallback(pipe(getRowCellKey, prop(__, rowCellHeightsMap)), [rowCellHeightsMap]);\n\n const changeRowCellHeight = useCallback(\n curry(useWith(pipe(batchHeightUpdate, flushHeightUpdates), [getRowCellKey, identity])),\n []\n );\n\n return {getDynamicRowCellHeight, changeRowCellHeight, clearHeightsCache};\n};\n\nexport default useDynamicRowCellHeight;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n hidden: {\n visibility: 'hidden'\n }\n}));\n","import React, {useContext} from 'react';\nimport PropTypes from 'prop-types';\n\nimport {RowCollapseContext} from '../BasicTable/contexts/RowCollapseContext';\nimport CollapseButton from '../../CollapseButton/CollapseButton';\n\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst CollapseRowButton = ({rowIndex, rowValue, className}) => {\n const styles = useStyles();\n const {toggleRowCollapse, getIsRowCollapsible, getIsRowCollapsed} = useContext(RowCollapseContext);\n\n const isCollapsibleRow = getIsRowCollapsible(rowValue);\n const isCollapsedRow = getIsRowCollapsed(rowIndex);\n\n return (\n <CollapseButton\n className={classnames(className, {[styles.hidden]: !isCollapsibleRow})}\n isOpen={!isCollapsedRow}\n onClick={(e) => {\n toggleRowCollapse(rowIndex);\n e.stopPropagation();\n }}\n />\n );\n};\n\nCollapseRowButton.propTypes = {\n rowIndex: PropTypes.number,\n rowValue: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default CollapseRowButton;\n","import React, {useRef} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ReactResizeDetector from 'react-resize-detector';\nimport {RootRef as RootRef} from '@material-ui/core';\nimport {useDidUpdateEffect} from '../../../hooks';\n\nconst RowCellAutoSizer = ({onChangeHeight, children: cell, ...cellProps}) => {\n const cellRef = useRef(null);\n\n const {rowValue, rowIndex, columnData, cellIndex} = cellProps;\n const changeCellHeight = onChangeHeight({rowIndex, cellIndex, columnData});\n\n const adjustCellHeight = () => cellRef.current && changeCellHeight(cellRef.current.clientHeight);\n\n useDidUpdateEffect(adjustCellHeight, [rowValue.rawValue]);\n\n return (\n <div>\n <ReactResizeDetector handleHeight={true} onResize={adjustCellHeight} />\n <RootRef rootRef={cellRef}>{cell}</RootRef>\n </div>\n );\n};\n\nRowCellAutoSizer.propTypes = {\n onChangeHeight: PropTypes.func,\n children: PropTypes.node\n};\n\nexport default RowCellAutoSizer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n collapseButton: {\n cursor: 'pointer'\n },\n expandLess: {\n transform: 'rotate( -180deg )'\n }\n});\n","import React from 'react';\nimport classnames from 'classnames';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport {useStyles} from './styles';\n\ntype SmallIconButtonWithTooltipProps = React.ComponentPropsWithoutRef<typeof SmallIconButtonWithTooltip>;\n\ntype Props = Omit<SmallIconButtonWithTooltipProps, 'tooltipTitle'> & {\n isOpen?: boolean;\n tooltipTitle?: string;\n};\n\nconst CollapseButton = ({isOpen = false, tooltipTitle, ...otherProps}: Props) => {\n const styles = useStyles();\n const buttonProps = {\n icon: ExpandMore,\n className: styles.collapseButton,\n iconClassName: classnames({[styles.expandLess]: isOpen})\n };\n const tooltipProps = {\n tooltipTitle: tooltipTitle\n };\n return <SmallIconButtonWithTooltip {...buttonProps} {...tooltipProps} {...otherProps} />;\n};\n\nexport default CollapseButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst maxWidth = 500;\n\nexport const useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flex: '1 1 auto',\n flexWrap: 'nowrap',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '10px',\n overflow: 'auto',\n height: '100%',\n minHeight: '350px',\n boxSizing: 'border-box',\n '&$root_small': {\n minHeight: '160px'\n },\n '& $text': {\n color: theme.palette.text.primary,\n fontSize: '20px',\n fontWeight: 500,\n lineHeight: '24px',\n letterSpacing: '0.25px',\n textAlign: 'center'\n },\n '& $secondaryText': {\n color: theme.palette.text.secondary,\n fontSize: '15px',\n fontWeight: 300,\n lineHeight: '18px',\n letterSpacing: '0.11px',\n textAlign: 'center',\n paddingTop: '3px'\n }\n },\n root_small: {},\n embedded: {\n flexShrink: 0,\n width: '190px',\n height: '190px',\n padding: '8px'\n },\n full: {\n width: '256px',\n height: '256px'\n },\n textBox: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n maxWidth: maxWidth,\n marginTop: '16px'\n },\n text: {},\n secondaryText: {},\n button: {\n minHeight: 36,\n minWidth: 64,\n maxWidth: maxWidth,\n padding: '10px 16px',\n borderRadius: '2px',\n boxShadow:\n '0 0 2px 0 rgba(0,0,0,0.12), 0 2px 2px 0 rgba(0,0,0,0.24), 0 0 8px 0 rgba(0,0,0,0.12), 0 8px 8px 0 rgba(0,0,0,0.24)',\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '16px',\n marginTop: '24px'\n }\n}));\n","import React from 'react';\nimport classnames from 'classnames';\nimport {identity} from 'ramda';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Button as Button} from '@material-ui/core';\nimport EmptySearchResultsIcon from '../../icons/EmptySearchResults';\nimport SelectAttributesIcon from '../../icons/SelectAttributes';\nimport NoData from '../../icons/NoData';\nimport Error from '../../icons/Error';\nimport {useStyles} from './styles';\n\nexport enum EMPTY_STATE_VARIANTS {\n full = 'full',\n embedded = 'embedded',\n small = 'small'\n}\n\nexport const EMPTY_STATE_ICONS = {\n SEARCH_RESULTS: EmptySearchResultsIcon,\n SELECT_ATTRIBUTES: SelectAttributesIcon,\n NO_DATA: NoData,\n ERROR: Error\n};\n\ntype Props = {\n variant?: EMPTY_STATE_VARIANTS;\n LogoRenderer?: React.ElementType;\n text: string;\n secondaryText?: string;\n buttonTitle?: string;\n access?: boolean;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\nconst EmptyState = ({\n variant = EMPTY_STATE_VARIANTS.full,\n LogoRenderer = EMPTY_STATE_ICONS.SEARCH_RESULTS,\n text,\n secondaryText,\n buttonTitle,\n onClick = identity,\n access\n}: Props) => {\n const styles = useStyles();\n const showButton = access && buttonTitle;\n\n return (\n <div className={classnames(styles.root, styles[`root_${variant}`])}>\n <LogoRenderer className={styles[`${variant}`]} />\n <div className={styles.textBox}>\n <Typography variant=\"h5\" classes={{h5: styles.text}}>\n {text}\n </Typography>\n {secondaryText && (\n <Typography variant=\"subtitle1\" classes={{subtitle1: styles.secondaryText}}>\n {secondaryText}\n </Typography>\n )}\n </div>\n {showButton && (\n <Button className={styles.button} variant=\"contained\" color=\"primary\" onClick={onClick}>\n {buttonTitle}\n </Button>\n )}\n </div>\n );\n};\n\nexport default EmptyState;\n","import React from 'react';\n\nconst SvgEmptySearchResults: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg\n width={256}\n height={256}\n viewBox=\"0 0 256 256\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}\n >\n <defs>\n <radialGradient\n cx=\"50%\"\n cy=\"100%\"\n fx=\"50%\"\n fy=\"100%\"\n r=\"81.681%\"\n gradientTransform=\"matrix(.98998 0 0 .612 .005 .388)\"\n id=\"EmptySearchResults_svg__c\"\n >\n <stop stopColor=\"#00BFFF\" stopOpacity={0.5} offset=\"0%\" />\n <stop stopColor=\"#9EE8FF\" stopOpacity={0} offset=\"100%\" />\n </radialGradient>\n <radialGradient\n cx=\"50%\"\n cy=\"111.651%\"\n fx=\"50%\"\n fy=\"111.651%\"\n r=\"87.693%\"\n gradientTransform=\"matrix(0 -.97693 .7263 0 -.31 1.605)\"\n id=\"EmptySearchResults_svg__f\"\n >\n <stop stopColor=\"#91F8E5\" stopOpacity={0.6} offset=\"0%\" />\n <stop stopColor=\"#14F7FF\" stopOpacity={0} offset=\"100%\" />\n </radialGradient>\n <radialGradient\n cx=\"50%\"\n cy=\"103.659%\"\n fx=\"50%\"\n fy=\"103.659%\"\n r=\"90.207%\"\n gradientTransform=\"matrix(0 -1 2.23905 0 -1.821 1.537)\"\n id=\"EmptySearchResults_svg__g\"\n >\n <stop stopColor=\"#FFF\" offset=\"0%\" />\n <stop stopColor=\"#73FAFF\" stopOpacity={0.21} offset=\"59.38%\" />\n <stop stopColor=\"#14F7FF\" stopOpacity={0} offset=\"100%\" />\n </radialGradient>\n <linearGradient x1=\"50%\" y1=\"170.771%\" x2=\"50%\" y2=\"10.303%\" id=\"EmptySearchResults_svg__e\">\n <stop stopColor=\"#91F8E5\" offset=\"0%\" />\n <stop stopColor=\"#99FCFF\" stopOpacity={0} offset=\"100%\" />\n </linearGradient>\n <filter\n x=\"-25.9%\"\n y=\"-26.2%\"\n width=\"151.8%\"\n height=\"152.3%\"\n filterUnits=\"objectBoundingBox\"\n id=\"EmptySearchResults_svg__d\"\n >\n <feGaussianBlur stdDeviation={15} in=\"SourceGraphic\" />\n </filter>\n <circle id=\"EmptySearchResults_svg__a\" cx={128} cy={128} r={128} />\n </defs>\n <g stroke=\"none\" strokeWidth={1} fill=\"none\" fillRule=\"evenodd\">\n <mask id=\"EmptySearchResults_svg__b\" fill=\"#fff\">\n <use xlinkHref=\"#EmptySearchResults_svg__a\" />\n </mask>\n <use fillOpacity={0.2} fill=\"#A792CD\" xlinkHref=\"#EmptySearchResults_svg__a\" />\n <g mask=\"url(#EmptySearchResults_svg__b)\">\n <g transform=\"translate(56 34)\">\n <g opacity={0.9} strokeWidth={1} fill=\"#FFF\">\n <path d=\"M0 6.99C0 3.13 3.137 0 7 0h247.067c3.866 0 7 3.144 7 6.99v169.353c0 3.86-3.137 6.99-7 6.99H7c-3.866 0-7-3.143-7-6.99V6.99z\" />\n <path\n d=\"M13 25.99c0-3.86 3.137-6.99 7-6.99h247.067c3.866 0 7 3.144 7 6.99v169.353c0 3.86-3.137 6.99-7 6.99H20c-3.866 0-7-3.143-7-6.99V25.99z\"\n opacity={0.4}\n />\n </g>\n <g strokeWidth={1} fill=\"none\" transform=\"translate(21.756 45.833)\">\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={213.204} cy={5.456} rx={4.351} ry={4.365} />\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={197.976} cy={5.456} rx={4.351} ry={4.365} />\n <path\n d=\"M10.334 1.091c5.707 0 10.334 4.627 10.334 10.334v.067c0 5.707-4.627 10.333-10.334 10.333S0 17.2 0 11.492v-.067C0 5.718 4.627 1.091 10.334 1.091z\"\n fill=\"#E3EBF4\"\n />\n <path\n d=\"M35.365.861h69.768a3.82 3.82 0 010 7.639H35.365a3.82 3.82 0 010-7.639z\"\n fill=\"#B1AABD\"\n opacity={0.5}\n />\n <path\n d=\"M34.274 15.048h126.164a2.728 2.728 0 010 5.456H34.274a2.728 2.728 0 110-5.456z\"\n fill=\"#B1AABD\"\n opacity={0.43}\n />\n <path\n d=\"M33.182 24.869H73.89a1.637 1.637 0 110 3.274H33.182a1.637 1.637 0 010-3.274z\"\n fill=\"#B1AABD\"\n opacity={0.2}\n />\n </g>\n <rect\n fill=\"#645F6D\"\n opacity={0.5}\n x={21.756}\n y={17.46}\n width={87.022}\n height={12.004}\n rx={6.002}\n />\n <g strokeWidth={1} fill=\"none\" transform=\"translate(21.756 87.302)\">\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={213.204} cy={5.456} rx={4.351} ry={4.365} />\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={197.976} cy={5.456} rx={4.351} ry={4.365} />\n <rect fill=\"#E3EBF4\" x={0} y={1.091} width={20.668} height={20.734} rx={10.334} />\n <path\n d=\"M35.365.861h82.647a3.82 3.82 0 010 7.639H35.365a3.82 3.82 0 010-7.639z\"\n fill=\"#B1AABD\"\n opacity={0.5}\n />\n <path\n d=\"M34.274 15.048H174.58a2.728 2.728 0 010 5.456H34.274a2.728 2.728 0 110-5.456z\"\n fill=\"#B1AABD\"\n opacity={0.43}\n />\n <path\n d=\"M33.182 24.869h113.119a1.637 1.637 0 110 3.274H33.182a1.637 1.637 0 010-3.274z\"\n fill=\"#B1AABD\"\n opacity={0.2}\n />\n </g>\n <g strokeWidth={1} fill=\"none\" transform=\"translate(21.756 128.77)\">\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={213.204} cy={5.456} rx={4.351} ry={4.365} />\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={197.976} cy={5.456} rx={4.351} ry={4.365} />\n <path\n d=\"M10.334 1.091c5.707 0 10.334 4.627 10.334 10.334v.067c0 5.707-4.627 10.333-10.334 10.333S0 17.2 0 11.492v-.067C0 5.718 4.627 1.091 10.334 1.091z\"\n fill=\"#E3EBF4\"\n />\n <path\n d=\"M35.365.861h110.929a3.82 3.82 0 010 7.639H35.365a3.82 3.82 0 010-7.639z\"\n fill=\"#B1AABD\"\n opacity={0.5}\n />\n <path\n d=\"M34.274 15.048h92.443a2.728 2.728 0 010 5.456H34.274a2.728 2.728 0 110-5.456z\"\n fill=\"#B1AABD\"\n opacity={0.43}\n />\n <path\n d=\"M33.182 24.869H73.89a1.637 1.637 0 110 3.274H33.182a1.637 1.637 0 010-3.274z\"\n fill=\"#B1AABD\"\n opacity={0.2}\n />\n </g>\n </g>\n </g>\n <g mask=\"url(#EmptySearchResults_svg__b)\">\n <path\n fill=\"#446275\"\n d=\"M72.246 84.033l8.66 5-35.5 61.488-8.66-5-12.556-24.729-51.307-29.622 20.431-35.388 50.648 29.242z\"\n />\n <path\n d=\"M62.906 120.21l-80.091-46.24 10.5-18.188 50.647 29.242 28.284-.99 8.66 5-18 31.176z\"\n fillOpacity={0.2}\n fill=\"#FFF\"\n />\n <path\n d=\"M27.566 75.558L3.877 109.065l-5.013-2.895 26.045-32.146 2.657 1.534zm9.467 5.466L13.345 114.53l-5.014-2.895L34.377 79.49l2.656 1.534zm8.158 4.71l-22.32 34.297-5.013-2.895L43.903 84.99l1.288.744z\"\n fill=\"#527585\"\n />\n <path\n d=\"M11.524 90.544l13.385-16.52 2.657 1.534-12.174 17.22-3.868-2.234zm9.467 5.467L34.377 79.49l2.656 1.534-12.174 17.22-3.868-2.233zm9.527 5.5L43.903 84.99l1.288.744-11.47 17.626-3.203-1.85z\"\n fill=\"#76A2B5\"\n opacity={0.6}\n />\n <path\n d=\"M.355 59.848l-23.689 33.507-5.013-2.895 26.045-32.146 2.657 1.534zm9.468 5.466L-13.866 98.82l-5.013-2.895L7.166 63.78l2.657 1.534zm8.158 4.71L-4.34 104.32l-5.014-2.895L16.692 69.28l1.289.744z\"\n fillOpacity={0.1}\n fill=\"#000\"\n />\n <g>\n <path\n fill=\"url(#EmptySearchResults_svg__c)\"\n opacity={0.993}\n filter=\"url(#EmptySearchResults_svg__d)\"\n d=\"M.63 0h173.74L123 172H52z\"\n transform=\"rotate(120 90.404 138.861)\"\n />\n <path\n fill=\"url(#EmptySearchResults_svg__e)\"\n opacity={0.3}\n d=\"M4 9h166.37L120.73 172.299H53.64z\"\n transform=\"rotate(120 90.404 138.861)\"\n />\n <path\n fill=\"url(#EmptySearchResults_svg__f)\"\n opacity={0.3}\n d=\"M4 2h166.37L120.73 172.299H53.64z\"\n transform=\"rotate(120 90.404 138.861)\"\n />\n <path\n fill=\"url(#EmptySearchResults_svg__g)\"\n d=\"M4 9h166.37L120.73 172.299H53.64z\"\n transform=\"rotate(120 90.404 138.861)\"\n />\n <path fill=\"#FFF\" opacity={0.196} d=\"M212.363 205.344l-1 1.732L60.418 124.52l4.977-8.62z\" />\n </g>\n <path fill=\"#76A2B5\" d=\"M73.112 84.533l-35.5 61.488-.866-.5 35.5-61.488z\" />\n <path fill=\"#F3F3F3\" d=\"M80.906 89.033l-35.5 61.488-.866-.5 35.5-61.488z\" />\n <path fill=\"#538196\" d=\"M55.112 115.71l-17.5 30.311-.866-.5 17.5-30.31z\" />\n </g>\n </g>\n </svg>\n );\n};\n\nexport default SvgEmptySearchResults;\n","import React from 'react';\n\nconst SvgSelectAttributes: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={256} height={256} viewBox=\"0 0 256 256\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <circle cx={128} cy={128} r={128} fill=\"#0072CE\" fillOpacity={0.1} />\n <mask\n id=\"SelectAttributes_svg__a\"\n style={{\n maskType: 'alpha'\n }}\n maskUnits=\"userSpaceOnUse\"\n x={0}\n y={0}\n width={256}\n height={256}\n >\n <circle cx={128} cy={128} r={128} fill=\"#fff\" />\n </mask>\n <g mask=\"url(#SelectAttributes_svg__a)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M-16 9h256v247H-16V9z\"\n fill=\"url(#SelectAttributes_svg__paint0_linear_0_19219)\"\n />\n <path\n opacity={0.05}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M187.761 56.865l58.639 58.639v148.871H93.383L52 225.083V56.865h135.761z\"\n fill=\"url(#SelectAttributes_svg__paint1_linear_0_19219)\"\n />\n <path\n opacity={0.06}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M47 58h202a7 7 0 017 7v157a7 7 0 01-7 7H47a7 7 0 01-7-7V65a7 7 0 017-7z\"\n fill=\"#000\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M50 56h201a5 5 0 015 5v157a5 5 0 01-5 5H50a5 5 0 01-5-5V61a5 5 0 015-5z\"\n fill=\"#fff\"\n />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105.376 72.635a3 3 0 013-3H150a3 3 0 110 6h-41.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105 84.635a3 3 0 013-3h64.205a3 3 0 110 6H108a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105.376 163a3 3 0 013-3H150a3 3 0 110 6h-41.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105 175a3 3 0 013-3h64.205a3 3 0 110 6H108a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105.376 193a3 3 0 013-3H190a3 3 0 110 6h-81.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105 205a3 3 0 013-3h74.205a3 3 0 110 6H108a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M138.376 103a3 3 0 013-3H223a3 3 0 110 6h-81.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M138 115a3 3 0 013-3h64.205a3 3 0 110 6H141a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <circle cx={67} cy={79} r={9} fill=\"#B6C7DB\" />\n <circle cx={67} cy={79} r={9} fill=\"#B6C7DB\" />\n <circle cx={120} cy={106} r={6} fill=\"#B6C7DB\" />\n <circle cx={120} cy={136} r={6} fill=\"#B6C7DB\" />\n <circle cx={67} cy={169} r={9} fill=\"#B6C7DB\" />\n <circle cx={67} cy={199} r={9} fill=\"#B6C7DB\" />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M138.376 133a3 3 0 013-3H223a3 3 0 110 6h-81.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M138 145a3 3 0 013-3h74.205a3 3 0 110 6H141a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M92.514 108v-8h-2V140.365h11.178v-2h-9.178V110h9.178v-2h-9.178z\"\n fill=\"#2B98F0\"\n />\n <path\n opacity={0.54}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M95.071 77l-3.535 3.535L88 77h7.071z\"\n fill=\"#000\"\n />\n <path\n opacity={0.6}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M50 22h186a6 6 0 016 6v18a6 6 0 01-6 6H50a6 6 0 01-6-6V28a6 6 0 016-6z\"\n fill=\"#fff\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M58 37a6 6 0 016-6h70a6 6 0 110 12H64a6 6 0 01-6-6zM148 37a6 6 0 016-6h10a6 6 0 110 12h-10a6 6 0 01-6-6z\"\n fill=\"#979797\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"SelectAttributes_svg__paint0_linear_0_19219\"\n x1={-16}\n y1={9}\n x2={-16}\n y2={256}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FAFAFA\" stopOpacity={0.01} />\n <stop offset={1} stopColor=\"#F4F4F4\" />\n </linearGradient>\n <linearGradient\n id=\"SelectAttributes_svg__paint1_linear_0_19219\"\n x1={266.117}\n y1={181.111}\n x2={154.882}\n y2={77.681}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopOpacity={0.01} />\n <stop offset={1} />\n </linearGradient>\n </defs>\n </svg>\n );\n};\n\nexport default SvgSelectAttributes;\n","import React from 'react';\n\nconst SvgNoData: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg\n width={256}\n height={256}\n viewBox=\"0 0 256 256\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}\n >\n <defs>\n <linearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"NoData_svg__b\">\n <stop stopColor=\"#FAFAFA\" stopOpacity={0} offset=\"0%\" />\n <stop stopColor=\"#F4F4F4\" offset=\"100%\" />\n </linearGradient>\n <linearGradient x1=\"69.573%\" y1=\"86.747%\" x2=\"38.144%\" y2=\"33.403%\" id=\"NoData_svg__d\">\n <stop stopColor=\"#000\" stopOpacity={0} offset=\"0%\" />\n <stop stopColor=\"#000\" offset=\"100%\" />\n </linearGradient>\n <linearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"NoData_svg__e\">\n <stop stopColor=\"#EEFBFF\" offset=\"0%\" />\n <stop stopColor=\"#0072CE\" offset=\"100%\" />\n </linearGradient>\n <filter\n x=\"-7.7%\"\n y=\"-7.5%\"\n width=\"115.3%\"\n height=\"115%\"\n filterUnits=\"objectBoundingBox\"\n id=\"NoData_svg__f\"\n >\n <feOffset dx={0} dy={2} in=\"SourceAlpha\" result=\"shadowOffsetOuter1\" />\n <feGaussianBlur stdDeviation={2} in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\" />\n <feColorMatrix\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n type=\"matrix\"\n in=\"shadowBlurOuter1\"\n result=\"shadowMatrixOuter1\"\n />\n <feMerge>\n <feMergeNode in=\"shadowMatrixOuter1\" />\n <feMergeNode in=\"SourceGraphic\" />\n </feMerge>\n </filter>\n <circle id=\"NoData_svg__a\" cx={128} cy={128} r={128} />\n </defs>\n <g stroke=\"none\" strokeWidth={1} fill=\"none\" fillRule=\"evenodd\">\n <mask id=\"NoData_svg__c\" fill=\"#fff\">\n <use xlinkHref=\"#NoData_svg__a\" />\n </mask>\n <use fillOpacity={0.1} fill=\"#0072CE\" xlinkHref=\"#NoData_svg__a\" />\n <path fill=\"url(#NoData_svg__b)\" mask=\"url(#NoData_svg__c)\" d=\"M0 9h256v247H0z\" />\n <g mask=\"url(#NoData_svg__c)\">\n <g transform=\"translate(29 37)\">\n <g opacity={0.9} strokeWidth={1} fill=\"#FFF\">\n <path fillOpacity={0.8} opacity={0.5} d=\"M14.565 8h228.144v176.476H14.565z\" />\n <path d=\"M0 8.01C0 3.586 3.576 0 7.997 0h223.838a7.997 7.997 0 017.997 8.01v152.401c0 4.424-3.577 8.01-7.997 8.01H7.997A7.997 7.997 0 010 160.411V8.01z\" />\n </g>\n <g strokeWidth={1} fill=\"none\" transform=\"translate(19.986 42.105)\">\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={195.862} cy={5.013} rx={3.997} ry={4.01} />\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={181.872} cy={5.013} rx={3.997} ry={4.01} />\n <path\n d=\"M9.493 1.003a9.493 9.493 0 019.494 9.493v.06a9.493 9.493 0 01-18.987 0v-.06a9.493 9.493 0 019.493-9.493z\"\n fill=\"#E3EBF4\"\n />\n <path\n d=\"M32.488.791h64.093a3.509 3.509 0 110 7.018H32.488a3.509 3.509 0 110-7.018z\"\n fill=\"#B1AABD\"\n opacity={0.5}\n />\n <path\n d=\"M31.486 13.824h115.902a2.506 2.506 0 010 5.012H31.486a2.506 2.506 0 010-5.012z\"\n fill=\"#B1AABD\"\n opacity={0.43}\n />\n <path\n d=\"M30.483 22.846H67.88a1.504 1.504 0 110 3.008H30.483a1.504 1.504 0 110-3.008z\"\n fill=\"#B1AABD\"\n opacity={0.2}\n />\n </g>\n <rect\n fill=\"#645F6D\"\n opacity={0.5}\n x={19.986}\n y={16.04}\n width={79.944}\n height={11.028}\n rx={5.514}\n />\n <g strokeWidth={1} fill=\"none\" transform=\"translate(19.986 80.2)\">\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={195.862} cy={5.013} rx={3.997} ry={4.01} />\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={181.872} cy={5.013} rx={3.997} ry={4.01} />\n <rect fill=\"#E3EBF4\" x={0} y={1.003} width={18.987} height={19.048} rx={9.493} />\n <path\n d=\"M32.488.791h75.925a3.509 3.509 0 010 7.018H32.488a3.509 3.509 0 110-7.018z\"\n fill=\"#B1AABD\"\n opacity={0.5}\n />\n <path\n d=\"M31.486 13.824h128.893a2.506 2.506 0 110 5.012H31.486a2.506 2.506 0 010-5.012z\"\n fill=\"#B1AABD\"\n opacity={0.43}\n />\n <path\n d=\"M30.483 22.846h103.918a1.504 1.504 0 010 3.008H30.483a1.504 1.504 0 110-3.008z\"\n fill=\"#B1AABD\"\n opacity={0.2}\n />\n </g>\n <g strokeWidth={1} fill=\"none\" transform=\"translate(19.986 118.296)\">\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={195.862} cy={5.013} rx={3.997} ry={4.01} />\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={181.872} cy={5.013} rx={3.997} ry={4.01} />\n <path\n d=\"M9.493 1.003a9.493 9.493 0 019.494 9.493v.06a9.493 9.493 0 01-18.987 0v-.06a9.493 9.493 0 019.493-9.493z\"\n fill=\"#E3EBF4\"\n />\n <path\n d=\"M32.488.791h101.906a3.509 3.509 0 010 7.018H32.488a3.509 3.509 0 110-7.018z\"\n fill=\"#B1AABD\"\n opacity={0.5}\n />\n <path\n d=\"M31.486 13.824h84.924a2.506 2.506 0 010 5.012H31.486a2.506 2.506 0 010-5.012z\"\n fill=\"#B1AABD\"\n opacity={0.43}\n />\n <path\n d=\"M30.483 22.846H67.88a1.504 1.504 0 110 3.008H30.483a1.504 1.504 0 110-3.008z\"\n fill=\"#B1AABD\"\n opacity={0.2}\n />\n </g>\n </g>\n </g>\n <g mask=\"url(#NoData_svg__c)\">\n <path\n d=\"M154.445 45.134v154.072H36.625V45.134h.811C35.508 62.52 41.07 80.609 54.12 93.944c22.74 23.235 59.61 23.235 82.352 0 13.05-13.335 18.612-31.424 16.683-48.81h1.29z\"\n fill=\"url(#NoData_svg__d)\"\n opacity={0.1}\n transform=\"rotate(-30 291.014 34.548)\"\n />\n <path\n d=\"M27.473 93.234c17.964 18.355 47.09 18.355 65.054 0s17.964-48.113 0-66.468c-17.964-18.355-47.09-18.355-65.054 0s-17.964 48.113 0 66.468z\"\n fill=\"url(#NoData_svg__e)\"\n opacity={0.2}\n transform=\"translate(70 86)\"\n />\n <g filter=\"url(#NoData_svg__f)\" strokeWidth={1} fill=\"none\" transform=\"translate(70 86)\">\n <path\n d=\"M59.697 0c32.97 0 59.697 26.746 59.697 59.738 0 15.185-5.662 29.047-14.988 39.587l51.204 51.24a89.336 89.336 0 01-10.097 9.392l-51.38-51.416c-9.73 6.888-21.61 10.936-34.436 10.936C26.727 119.477 0 92.73 0 59.738 0 26.746 26.727 0 59.697 0zm0 17.756c-23.17 0-41.953 18.796-41.953 41.982s18.783 41.982 41.953 41.982 41.953-18.796 41.953-41.982-18.783-41.982-41.953-41.982z\"\n fill=\"#B5C8C9\"\n />\n <path\n d=\"M21.508 105.656C8.365 94.698 0 78.196 0 59.738 0 26.746 26.727 0 59.697 0c18.444 0 34.935 8.37 45.885 21.523l-9.794 9.8c-8.408-10.68-21.45-17.537-36.091-17.537-25.361 0-45.92 20.573-45.92 45.952 0 14.652 6.852 27.702 17.525 36.117l-9.794 9.8z\"\n fillOpacity={0.4}\n fill=\"#FFF\"\n />\n </g>\n <path\n d=\"M97.473 179.234c17.964 18.355 47.09 18.355 65.054 0s17.964-48.113 0-66.468c-17.964-18.355-47.09-18.355-65.054 0s-17.964 48.113 0 66.468z\"\n fill=\"#D9F5FF\"\n opacity={0.4}\n style={{\n mixBlendMode: 'soft-light'\n }}\n />\n <path\n d=\"M123.885 158.736c0-3.929.444-7.03 1.332-9.304.888-2.274 2.328-4.245 4.32-5.914 1.99-1.668 3.504-3.195 4.54-4.581 1.037-1.386 1.555-2.913 1.555-4.581 0-4.064-1.75-6.095-5.248-6.095-1.614 0-2.92.592-3.915 1.776-.996 1.184-1.52 2.785-1.574 4.803H111.25c.054-5.382 1.75-9.573 5.086-12.574 3.337-3 8.02-4.5 14.047-4.5 6.001 0 10.65 1.386 13.946 4.157 3.297 2.772 4.945 6.714 4.945 11.827 0 2.234-.444 4.265-1.332 6.095-.888 1.83-2.315 3.7-4.279 5.61l-4.642 4.32c-1.318 1.265-2.233 2.563-2.745 3.895-.51 1.332-.793 3.02-.847 5.066h-11.545zm-1.655 12.27c0-1.99.72-3.625 2.16-4.904 1.44-1.278 3.236-1.917 5.389-1.917 2.152 0 3.949.64 5.388 1.917 1.44 1.279 2.16 2.913 2.16 4.905 0 1.991-.72 3.626-2.16 4.904-1.44 1.278-3.236 1.917-5.388 1.917-2.153 0-3.95-.639-5.389-1.917-1.44-1.278-2.16-2.913-2.16-4.904z\"\n fillOpacity={0.87}\n fill=\"#000\"\n style={{\n mixBlendMode: 'overlay'\n }}\n />\n <path\n d=\"M123.885 158.736c0-3.929.444-7.03 1.332-9.304.888-2.274 2.328-4.245 4.32-5.914 1.99-1.668 3.504-3.195 4.54-4.581 1.037-1.386 1.555-2.913 1.555-4.581 0-4.064-1.75-6.095-5.248-6.095-1.614 0-2.92.592-3.915 1.776-.996 1.184-1.52 2.785-1.574 4.803H111.25c.054-5.382 1.75-9.573 5.086-12.574 3.337-3 8.02-4.5 14.047-4.5 6.001 0 10.65 1.386 13.946 4.157 3.297 2.772 4.945 6.714 4.945 11.827 0 2.234-.444 4.265-1.332 6.095-.888 1.83-2.315 3.7-4.279 5.61l-4.642 4.32c-1.318 1.265-2.233 2.563-2.745 3.895-.51 1.332-.793 3.02-.847 5.066h-11.545zm-1.655 12.27c0-1.99.72-3.625 2.16-4.904 1.44-1.278 3.236-1.917 5.389-1.917 2.152 0 3.949.64 5.388 1.917 1.44 1.279 2.16 2.913 2.16 4.905 0 1.991-.72 3.626-2.16 4.904-1.44 1.278-3.236 1.917-5.388 1.917-2.153 0-3.95-.639-5.389-1.917-1.44-1.278-2.16-2.913-2.16-4.904z\"\n fillOpacity={0.38}\n fill=\"#3C74B4\"\n />\n </g>\n </g>\n </svg>\n );\n};\n\nexport default SvgNoData;\n","import React from 'react';\n\nconst SvgError: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={88} height={88} viewBox=\"0 0 88 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <mask\n id=\"Error_svg__a\"\n style={{\n maskType: 'alpha'\n }}\n maskUnits=\"userSpaceOnUse\"\n x={0}\n y={0}\n width={88}\n height={88}\n >\n <path d=\"M44 88c24.3 0 44-19.7 44-44S68.3 0 44 0 0 19.7 0 44s19.7 44 44 44z\" fill=\"#fff\" />\n </mask>\n <g mask=\"url(#Error_svg__a)\">\n <path\n d=\"M44 88c24.3 0 44-19.7 44-44S68.3 0 44 0 0 19.7 0 44s19.7 44 44 44z\"\n fill=\"#CAC4D5\"\n fillOpacity={0.3}\n />\n <path\n opacity={0.3}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M19.987 6.73l49.449 6.072a.687.687 0 01.596.767l-7.845 63.888a.688.688 0 01-.766.6L7.214 71.4a.688.688 0 01-.599-.763l.408-3.326L19.987 6.73z\"\n fill=\"#fff\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.267 25.921l45.86-19.466a.687.687 0 01.9.366l25.15 59.251a.61.61 0 01-.386.84L22.34 82.765a.719.719 0 01-.887-.445l-20.185-56.4z\"\n fill=\"#fff\"\n />\n <path\n d=\"M65.631 9.23H11.017a.688.688 0 00-.687.687v64.37c0 .38.307.687.687.687h54.614c.38 0 .688-.308.688-.687V9.917a.688.688 0 00-.688-.688z\"\n fill=\"#F9F9F9\"\n />\n <path\n opacity={0.1}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.885 34.95l3.105-1.666 7.31-4.025 8.852 3.472 7.89-5.223 8.036-2.628 8.113 5.193 3.352-10.255v16.967H14.935l-.05-1.835z\"\n fill=\"#9C6CF0\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.885 32.331l3.105-3.761 7.31 4.31 8.852 1.656 7.89-2.205 8.036 1.827 8.113-12.643 3.352.742V36.36H14.935l-.05-4.029z\"\n fill=\"#FA82AA\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.885 34.946l3.105.432 7.31 1.01 8.852-5.117 7.89 3.675 8.036 1.839 8.113-1.839 3.352.811v1.028H14.935l-.05-1.839z\"\n fill=\"#4DBEE9\"\n />\n <path\n opacity={0.1}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M61.543 35.288l-.05 1.497H14.885v-5.239l3.352-.276 8.114 4.697 8.036-.679 7.889.82 8.852-.616 7.31-1.601 3.105 1.397z\"\n fill=\"#4DBEE9\"\n />\n <path d=\"M21.036 40.178h-5.09a.636.636 0 000 1.272h5.09a.636.636 0 100-1.272z\" fill=\"#ACACAC\" />\n <path\n opacity={0.3}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.582 55.872c.703 0 1.273.57 1.273 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.272-1.272zM25.914 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.273-1.272zM39.91 55.872c.703 0 1.273.57 1.273 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.273-1.272zM21.248 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.273 1.273 0 01-2.545 0V57.144c0-.702.57-1.272 1.273-1.272zM35.245 55.872c.703 0 1.273.57 1.273 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.272-1.272zM30.58 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.272-1.272zM44.577 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.273 1.273 0 01-2.545 0V57.144c0-.702.57-1.272 1.273-1.272z\"\n fill=\"#BDBDBD\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.582 65.628c.703 0 1.273.57 1.273 1.272v2.121a1.272 1.272 0 11-2.545 0v-2.12c0-.703.57-1.273 1.272-1.273zM25.914 62.658c.702 0 1.272.57 1.272 1.273v5.09a1.272 1.272 0 11-2.545 0v-5.09c0-.703.57-1.273 1.273-1.273zM39.91 65.628c.703 0 1.273.57 1.273 1.272v2.121a1.272 1.272 0 11-2.545 0v-2.12c0-.703.57-1.273 1.273-1.273zM21.248 66.477c.702 0 1.272.57 1.272 1.272v1.273a1.273 1.273 0 01-2.545 0v-1.273c0-.703.57-1.272 1.273-1.272z\"\n fill=\"#4DBEE9\"\n />\n <path\n d=\"M36.518 65.628a1.272 1.272 0 00-2.545 0v3.393a1.272 1.272 0 102.545 0v-3.393zM31.852 62.234a1.272 1.272 0 10-2.545 0v6.787a1.272 1.272 0 102.545 0v-6.787z\"\n fill=\"#4DBEE9\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M44.577 60.962c.702 0 1.272.57 1.272 1.272v6.787a1.273 1.273 0 01-2.545 0v-6.787c0-.702.57-1.272 1.273-1.272z\"\n fill=\"#4DBEE9\"\n />\n <path d=\"M18.915 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\" fill=\"#9C6CF0\" />\n <path\n opacity={0.5}\n d=\"M34.185 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\"\n fill=\"#4DBEE9\"\n />\n <path\n opacity={0.3}\n d=\"M49.454 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\"\n fill=\"#4DBEE9\"\n />\n <path opacity={0.8} d=\"M26.55 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\" fill=\"#FB6597\" />\n <path d=\"M41.82 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\" fill=\"#4DBEE9\" />\n <path opacity={0.2} d=\"M57.09 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\" fill=\"#4DBEE9\" />\n <path\n opacity={0.5}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.582 19.818h4.666a.424.424 0 110 .849h-4.666a.424.424 0 110-.849zM31.851 19.818h4.666a.424.424 0 010 .849h-4.666a.424.424 0 110-.849zM47.121 19.818h4.666a.424.424 0 010 .849h-4.666a.424.424 0 010-.849zM24.217 19.818h4.665a.424.424 0 010 .849h-4.665a.424.424 0 010-.849zM39.486 19.818h4.666a.424.424 0 110 .849h-4.666a.424.424 0 110-.849zM54.756 19.818h4.666a.424.424 0 110 .849h-4.666a.424.424 0 110-.849z\"\n fill=\"#ACACAC\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.946 43.571h5.09a.636.636 0 110 1.273h-5.09a.636.636 0 010-1.273zM15.946 46.116h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 010-1.273zM15.946 48.661h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 110-1.273zM23.58 43.571h5.09a.636.636 0 110 1.273h-5.09a.636.636 0 010-1.273zM23.58 46.116h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 010-1.273zM23.58 48.661h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 110-1.273zM49.454 43.571h11.028a.636.636 0 010 1.273H49.454a.636.636 0 010-1.273zM49.454 46.116h11.028a.636.636 0 010 1.273H49.454a.636.636 0 010-1.273zM49.454 48.661h11.028a.636.636 0 010 1.273H49.454a.636.636 0 110-1.273zM31.215 43.571h15.27a.636.636 0 110 1.273h-15.27a.636.636 0 010-1.273zM31.215 46.116h15.27a.636.636 0 010 1.273h-15.27a.636.636 0 010-1.273zM31.215 48.661h15.27a.636.636 0 010 1.273h-15.27a.636.636 0 010-1.273zM15.946 51.206h5.09a.636.636 0 110 1.272h-5.09a.636.636 0 110-1.272zM23.58 51.206h5.09a.636.636 0 110 1.272h-5.09a.636.636 0 110-1.272zM49.454 51.206h11.028a.636.636 0 010 1.272H49.454a.636.636 0 110-1.272zM31.215 51.206h15.27a.636.636 0 110 1.272h-15.27a.636.636 0 010-1.272z\"\n fill=\"#E9E9E9\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M49.878 55.872h5.09a.636.636 0 110 1.273h-5.09a.636.636 0 110-1.273z\"\n fill=\"#ACACAC\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M49.878 59.69h11.029a.636.636 0 010 1.272H49.878a.636.636 0 110-1.273zM49.878 62.234h11.029a.636.636 0 010 1.273H49.878a.636.636 0 010-1.273zM49.878 64.78h11.029a.636.636 0 010 1.272H49.878a.636.636 0 010-1.273z\"\n fill=\"#E9E9E9\"\n />\n <path d=\"M54.968 67.324h-5.09a.636.636 0 000 1.273h5.09a.636.636 0 000-1.273z\" fill=\"#E9E9E9\" />\n <g filter=\"url(#Error_svg__filter0_d)\">\n <path\n d=\"M57.406 74.25c9.493 0 17.188-7.695 17.188-17.188 0-9.492-7.695-17.187-17.188-17.187-9.492 0-17.187 7.695-17.187 17.188 0 9.492 7.695 17.187 17.187 17.187z\"\n fill=\"#000\"\n />\n </g>\n <path\n d=\"M57.406 74.25c9.493 0 17.188-7.695 17.188-17.188 0-9.492-7.695-17.187-17.188-17.187-9.492 0-17.187 7.695-17.187 17.188 0 9.492 7.695 17.187 17.187 17.187z\"\n fill=\"#F25252\"\n />\n <path\n opacity={0.15}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M57.406 34.719c12.34 0 22.344 10.003 22.344 22.343S69.746 79.406 57.406 79.406c-12.34 0-22.343-10.003-22.343-22.344 0-12.34 10.003-22.343 22.343-22.343zm-.172 2.406c-10.916 0-19.765 8.85-19.765 19.766 0 10.916 8.85 19.765 19.765 19.765C68.151 76.656 77 67.806 77 56.891c0-10.917-8.85-19.766-19.766-19.766z\"\n fill=\"#F25252\"\n />\n <path\n opacity={0.3}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M57.406 38.844c10.062 0 18.219 8.157 18.219 18.218 0 10.062-8.157 18.22-18.219 18.22-10.062 0-18.218-8.158-18.218-18.22 0-10.061 8.156-18.218 18.218-18.218zm0 2.043c-8.933 0-16.175 7.242-16.175 16.175 0 8.934 7.242 16.176 16.175 16.176 8.934 0 16.176-7.242 16.176-16.175 0-8.934-7.242-16.176-16.176-16.176z\"\n fill=\"#F25252\"\n />\n <path\n opacity={0.05}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M57.406 26.469C74.303 26.469 88 40.166 88 57.062c0 16.897-13.697 30.594-30.594 30.594-16.896 0-30.593-13.697-30.593-30.594 0-16.896 13.697-30.593 30.593-30.593zm-.172 3.437c-14.903 0-26.984 12.082-26.984 26.985 0 14.903 12.081 26.984 26.984 26.984 14.903 0 26.985-12.081 26.985-26.984 0-14.903-12.082-26.985-26.985-26.985z\"\n fill=\"#F25252\"\n />\n <path\n d=\"M57.406 71.844c8.164 0 14.782-6.618 14.782-14.781 0-8.164-6.618-14.782-14.782-14.782-8.163 0-14.781 6.618-14.781 14.782 0 8.163 6.618 14.78 14.781 14.78z\"\n fill=\"#FF6A6A\"\n />\n <path\n opacity={0.05}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M58.298 46.448L75.18 63.331l-9.114 12.078h-2.029l-7.582-7.582 1.006-3.178.837-18.2z\"\n fill=\"url(#Error_svg__paint0_linear)\"\n />\n <g filter=\"url(#Error_svg__filter1_d)\">\n <path d=\"M57.406 68.063a1.719 1.719 0 100-3.438 1.719 1.719 0 000 3.438z\" fill=\"#000\" />\n </g>\n <path d=\"M57.406 68.063a1.719 1.719 0 100-3.438 1.719 1.719 0 000 3.438z\" fill=\"#fff\" />\n <g filter=\"url(#Error_svg__filter2_d)\">\n <path\n d=\"M57.406 46.063c.95 0 1.719.769 1.719 1.718v12.375a1.719 1.719 0 11-3.438 0V47.781c0-.949.77-1.718 1.72-1.718z\"\n fill=\"#000\"\n />\n </g>\n <path\n d=\"M57.406 46.063c.95 0 1.719.769 1.719 1.718v12.375a1.719 1.719 0 11-3.438 0V47.781c0-.949.77-1.718 1.72-1.718z\"\n fill=\"#fff\"\n />\n </g>\n <defs>\n <filter\n id=\"Error_svg__filter0_d\"\n x={36.219}\n y={37.875}\n width={42.375}\n height={42.375}\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={2} />\n <feGaussianBlur stdDeviation={2} />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow\" result=\"shape\" />\n </filter>\n <filter\n id=\"Error_svg__filter1_d\"\n x={51.688}\n y={62.625}\n width={11.438}\n height={11.438}\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={2} />\n <feGaussianBlur stdDeviation={2} />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow\" result=\"shape\" />\n </filter>\n <filter\n id=\"Error_svg__filter2_d\"\n x={51.688}\n y={44.063}\n width={11.438}\n height={23.813}\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={2} />\n <feGaussianBlur stdDeviation={2} />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow\" result=\"shape\" />\n </filter>\n <linearGradient\n id=\"Error_svg__paint0_linear\"\n x1={68.438}\n y1={71.571}\n x2={60.119}\n y2={58.801}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopOpacity={0} />\n <stop offset={1} />\n </linearGradient>\n </defs>\n </svg>\n );\n};\n\nexport default SvgError;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(() => ({\n row: {\n display: 'flex',\n marginBottom: '12px'\n },\n rowItem: {\n paddingRight: '10px',\n display: 'flex'\n },\n fullWidth: {\n flexGrow: '1',\n flexBasis: '0',\n overflow: 'hidden'\n },\n hidden: {\n visibility: 'hidden'\n }\n}));\n\nexport default useStyles;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst height = '46px';\n\nconst useStyles = makeStyles((theme) => ({\n readOnlyLogicOperatorContainer: {\n display: 'flex',\n alignItems: 'center',\n marginRight: '40px',\n width: '76px',\n fontSize: '14px',\n color: theme.palette.text.secondary,\n maxHeight: height\n },\n readOnlyFilter: {\n display: 'flex',\n alignItems: 'center',\n fontSize: '14px',\n color: theme.palette.text.secondary,\n width: '50px',\n marginLeft: '12px',\n maxHeight: height\n }\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport capitalize from '@material-ui/core/utils/capitalize';\n\nimport useStyles from './styles';\n\nconst ReadOnlyLogicOperator = ({className, rowData}) => {\n const styles = useStyles();\n return (\n <div className={classnames(styles.readOnlyLogicOperatorContainer, className)}>\n {rowData && rowData.operator ? capitalize(rowData.operator) : i18n.text('Where')}\n </div>\n );\n};\n\nReadOnlyLogicOperator.propTypes = {\n className: PropTypes.string,\n rowData: PropTypes.object\n};\n\nexport default ReadOnlyLogicOperator;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport {getFilterOptionLabel} from '@reltio/mdm-sdk';\n\nimport useStyles from './styles';\n\nconst ReadOnlyFilter = ({className, rowData}) => {\n const styles = useStyles();\n return (\n <div className={classnames(styles.readOnlyFilter, className)}>\n {rowData && rowData.filter ? getFilterOptionLabel(rowData.filter) : i18n.text('equals')}\n </div>\n );\n};\n\nReadOnlyFilter.propTypes = {\n className: PropTypes.string,\n rowData: PropTypes.object\n};\n\nexport default ReadOnlyFilter;\n","import React, {memo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nimport useStyles from './styles';\n\nimport ReadOnlyLogicOperator from './components/ReadOnlyLogicOperator';\nimport ReadOnlyFilter from './components/ReadOnlyFilter';\nimport {QueryBuilderAttributeType} from '../../constants';\n\nconst QueryBuilderRow = ({\n classes = {},\n rowData,\n previousRowData,\n LogicOperatorComponent = ReadOnlyLogicOperator,\n AttributeSelectorComponent,\n FilterSelectorComponent = ReadOnlyFilter,\n ValuesEditorComponent,\n ActionsComponent,\n filterSelectorRef,\n attributeSelectorProps = {},\n ...rowContext\n}) => {\n const styles = useStyles();\n\n return (\n <div className={classnames(styles.row, classes.root)}>\n <LogicOperatorComponent\n className={classes.logicOperatorContainer}\n rowContext={rowContext}\n rowData={previousRowData}\n />\n <div className={classnames(styles.rowItem, classes.attributeSelectorContainer)}>\n <AttributeSelectorComponent\n attributeSelectorProps={attributeSelectorProps}\n rowContext={rowContext}\n rowData={rowData}\n />\n </div>\n <div className={classnames(styles.rowItem, classes.filterSelectorContainer)}>\n <FilterSelectorComponent\n textFieldInputRef={filterSelectorRef}\n rowContext={rowContext}\n rowData={rowData}\n />\n </div>\n <div className={classnames(styles.rowItem, styles.fullWidth, classes.valuesEditorContainer)}>\n <ValuesEditorComponent rowContext={rowContext} rowData={rowData} />\n </div>\n <div className={classnames(styles.rowItem, classes.actionsContainer, {[styles.hidden]: !rowData})}>\n <ActionsComponent rowContext={rowContext} rowData={rowData} />\n </div>\n </div>\n );\n};\n\nQueryBuilderRow.propTypes = {\n classes: PropTypes.shape({\n root: PropTypes.string,\n logicOperatorContainer: PropTypes.string,\n attributeSelectorContainer: PropTypes.string,\n filterSelectorContainer: PropTypes.string,\n valuesEditorContainer: PropTypes.string,\n actionsContainer: PropTypes.string\n }),\n rowData: QueryBuilderAttributeType,\n previousRowData: QueryBuilderAttributeType,\n LogicOperatorComponent: PropTypes.elementType,\n AttributeSelectorComponent: PropTypes.elementType,\n FilterSelectorComponent: PropTypes.elementType,\n ValuesEditorComponent: PropTypes.elementType,\n ActionsComponent: PropTypes.elementType,\n filterSelectorRef: PropTypes.object,\n attributeSelectorProps: PropTypes.shape({\n onRestoreFocus: PropTypes.func,\n onOpen: PropTypes.func,\n disablePopoverRestoreFocus: PropTypes.bool\n })\n};\n\nexport default memo(QueryBuilderRow);\n","import React, {memo} from 'react';\nimport PropTypes from 'prop-types';\nimport {path} from 'ramda';\n\nimport QueryBuilderRow from '../QueryBuilderRow/QueryBuilderRow';\nimport {QueryBuilderAttributeType} from '../../constants';\n\nconst QueryBuilderRowsGroup = ({\n className = undefined,\n rowClasses,\n rowsData,\n lastRowAttributeSelectorProps,\n filterSelectorRef,\n filterSelectorRefIndex,\n ...rowProps\n}) => {\n const renderRow = (rowData, index, rowsData) => {\n const previousRow = index > 0 ? path([index - 1], rowsData) : null;\n const lastRowProps =\n index === rowsData.length\n ? {\n attributeSelectorProps: lastRowAttributeSelectorProps\n }\n : {};\n return (\n <QueryBuilderRow\n key={rowData && rowData.id}\n rowData={rowData}\n previousRowData={previousRow}\n classes={rowClasses}\n filterSelectorRef={index === filterSelectorRefIndex ? filterSelectorRef : undefined}\n {...rowProps}\n {...lastRowProps}\n />\n );\n };\n\n return (\n <div className={className}>\n {rowsData.map(renderRow)}\n {renderRow(null, rowsData.length, rowsData)}\n </div>\n );\n};\n\nQueryBuilderRowsGroup.propTypes = {\n className: PropTypes.string,\n rowClasses: PropTypes.shape({\n root: PropTypes.string,\n logicOperatorContainer: PropTypes.string,\n attributeSelectorContainer: PropTypes.string,\n filterSelectorContainer: PropTypes.string,\n valuesEditorContainer: PropTypes.string,\n actionsContainer: PropTypes.string\n }),\n rowsData: PropTypes.arrayOf(QueryBuilderAttributeType),\n LogicOperatorComponent: PropTypes.elementType,\n AttributeSelectorComponent: PropTypes.elementType,\n FilterSelectorComponent: PropTypes.elementType,\n ValuesEditorComponent: PropTypes.elementType,\n ActionsComponent: PropTypes.elementType,\n filterSelectorRef: PropTypes.object,\n filterSelectorRefIndex: PropTypes.number,\n lastRowAttributeSelectorProps: PropTypes.shape({\n onRestoreFocus: PropTypes.func,\n onOpen: PropTypes.func,\n disablePopoverRestoreFocus: PropTypes.bool\n })\n};\n\nexport default memo(QueryBuilderRowsGroup);\n","import CreatableSelect from 'react-select/creatable';\nimport withMuiSkin from './withMuiSkin';\n\nexport default withMuiSkin(CreatableSelect);\n","import {MenuItem as MenuItem} from '@material-ui/core';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport ExpandedValueTooltip from '../../../ExpandedValueTooltip/ExpandedValueTooltip';\n\nexport default function Option(props) {\n const {\n innerProps,\n innerRef,\n children,\n isFocused,\n isSelected,\n selectProps: {classes},\n label\n } = props;\n\n return (\n <MenuItem\n className={classNames(classes.option, {[classes['option--selected']]: isSelected})}\n ref={innerRef}\n selected={isFocused}\n component=\"div\"\n {...innerProps}\n >\n <Checkbox color=\"primary\" checked={isSelected} />\n <ExpandedValueTooltip value={label}>\n <div className={classes['option--item']}>{children}</div>\n </ExpandedValueTooltip>\n </MenuItem>\n );\n}\n\nOption.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.shape({\n id: PropTypes.string.isRequired,\n key: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n onMouseMove: PropTypes.func.isRequired,\n onMouseOver: PropTypes.func.isRequired,\n tabIndex: PropTypes.number.isRequired\n }).isRequired,\n innerRef: PropTypes.oneOfType([\n PropTypes.oneOf([null]),\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any.isRequired\n })\n ]),\n isFocused: PropTypes.bool.isRequired,\n isSelected: PropTypes.bool.isRequired,\n label: PropTypes.string,\n selectProps: PropTypes.shape({\n classes: PropTypes.shape({\n option: PropTypes.string\n })\n })\n};\n","import Option from './Option';\n\nconst components = {\n Option\n};\n\nexport default components;\n","import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {omit} from 'ramda';\nimport CreatableSelect from '../CreatableSelect';\nimport Select from '../Select';\nimport AsyncSelect from '../AsyncSelect';\nimport multiSelectComponents from './components';\nimport {makeStyles} from '@material-ui/core/styles';\nimport {mergeClasses} from '../../../core/utils';\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n top: 6,\n left: 16\n },\n placeholder: (props) => ({\n display: !props.placeholder || props.label ? 'none' : undefined\n }),\n 'option--selected': {\n fontWeight: 400\n },\n clearIndicator: {\n padding: theme.spacing(1),\n margin: theme.spacing(0.25, 0.5)\n },\n dropdownIndicator: {\n padding: theme.spacing(1),\n margin: theme.spacing(0.25, 0.5)\n }\n}));\n\nlet id = 0;\nconst getInputId = () => `custom-select-${id++}`;\n\nfunction MultiSelect(props) {\n const {\n label,\n creatable,\n getOptions,\n loadingIndicator,\n components: componentsProp,\n classes: classesProp,\n styles: stylesProp,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n menuPlacement = 'auto',\n ...reactSelectProps\n } = props;\n\n const SelectComponent = creatable ? CreatableSelect : getOptions ? AsyncSelect : Select;\n\n const [inputValue, setInputValue] = useState('');\n const multiSelectClasses = useStyles(omit(['classes'], props));\n const inputId = getInputId();\n\n const components = {\n ...multiSelectComponents,\n ...componentsProp\n };\n\n const classes = mergeClasses(multiSelectClasses, classesProp);\n\n function handleInputChange(value, {action}) {\n onInputChangeProp(value, {action});\n if (action !== 'set-value') {\n setInputValue(value);\n }\n }\n\n function handleChange(value, actionMeta) {\n onChangeProp(value, actionMeta);\n if (actionMeta.action === 'create-option') {\n setInputValue('');\n onInputChangeProp('', {action: 'input-change'});\n }\n }\n\n const styles = {\n indicatorSeparator: (base) => ({\n ...base,\n margin: '10px 0'\n }),\n loadingIndicator: (base) => ({\n ...base,\n display: loadingIndicator ? base.display : 'none'\n }),\n loadingMessage: (base) => ({\n ...base,\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif'\n }),\n ...stylesProp\n };\n\n const labelProps = label\n ? {\n inputId,\n TextFieldProps: {\n label,\n InputLabelProps: {\n htmlFor: inputId,\n shrink: props.value && props.value.length ? true : undefined,\n className: classes.label\n },\n ...props.TextFieldProps\n }\n }\n : {};\n\n return (\n <SelectComponent\n isMulti\n inputId={inputId}\n inputValue={inputValue}\n onChange={handleChange}\n onInputChange={handleInputChange}\n closeMenuOnSelect={false}\n hideSelectedOptions={false}\n classes={classes}\n components={components}\n styles={styles}\n menuPlacement={menuPlacement}\n loadOptions={getOptions}\n {...labelProps}\n {...reactSelectProps}\n />\n );\n}\n\nMultiSelect.defaultProps = {\n creatable: false,\n cacheOptions: true,\n components: {},\n classes: {},\n placeholder: '',\n loadingIndicator: false,\n onInputChange: () => {},\n onChange: () => {}\n};\n\nMultiSelect.propTypes = {\n /**\n * Async creatable multi select with optional placeholder, shrink-label, non-closing menu and options with checkboxes.\n * Based on react-select/creatable and react-select/async.\n * See react-select docs: https://react-select.com\n *\n * Below are listed only props used in the MultiSelect component. Check https://react-select.com/props first.\n * */\n\n /** Ability to create values. React-select/async-creatable is used internally */\n creatable: PropTypes.bool,\n /** True for enabling cache. Recommended. */\n cacheOptions: PropTypes.bool,\n defaultOptions: PropTypes.bool,\n /** Array of selected options. */\n value: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any\n })\n ),\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any\n })\n ),\n /** Way to receive updated values */\n onChange: PropTypes.func,\n /** Way to receive updated inputValue */\n onInputChange: PropTypes.func,\n /** Input placeholder. Will not be shown if the label prop is specified */\n placeholder: PropTypes.string,\n /** Floating label from @material-ui/core/TextField component */\n label: PropTypes.string,\n /** Enable to show default react-select's indicator */\n loadingIndicator: PropTypes.bool,\n /** You could redefine any of these components */\n components: PropTypes.shape({\n ClearIndicator: PropTypes.func,\n Control: PropTypes.func,\n DropdownIndicator: PropTypes.func,\n DownChevron: PropTypes.func,\n CrossIcon: PropTypes.func,\n Group: PropTypes.func,\n GroupHeading: PropTypes.func,\n IndicatorsContainer: PropTypes.func,\n IndicatorSeparator: PropTypes.func,\n Input: PropTypes.func,\n LoadingIndicator: PropTypes.func,\n Menu: PropTypes.func,\n MenuList: PropTypes.func,\n MenuPortal: PropTypes.func,\n LoadingMessage: PropTypes.func,\n NoOptionsMessage: PropTypes.func,\n MultiValue: PropTypes.func,\n MultiValueContainer: PropTypes.func,\n MultiValueLabel: PropTypes.func,\n MultiValueRemove: PropTypes.func,\n Option: PropTypes.func,\n Placeholder: PropTypes.func,\n SelectContainer: PropTypes.func,\n SingleValue: PropTypes.func,\n ValueContainer: PropTypes.func\n }),\n /** Classes are passed to mui skin components. Provided classes will be merged with existing ones. */\n classes: PropTypes.shape({\n control: PropTypes.string,\n valueContainer: PropTypes.string,\n multiValue: PropTypes.string,\n noOptionsMessage: PropTypes.string,\n singleValue: PropTypes.string,\n placeholder: PropTypes.string,\n menu: PropTypes.string,\n clearIndicator: PropTypes.string,\n dropdownIndicator: PropTypes.string,\n option: PropTypes.string,\n 'option--selected': PropTypes.string,\n label: PropTypes.string\n }),\n /**\n * React-select's way to customise style. Could be used to style default react-select components.\n * In other cases better to use classes and components props\n * */\n styles: PropTypes.shape({\n clearIndicator: PropTypes.func,\n container: PropTypes.func,\n control: PropTypes.func,\n dropdownIndicator: PropTypes.func,\n group: PropTypes.func,\n groupHeading: PropTypes.func,\n indicatorsContainer: PropTypes.func,\n indicatorSeparator: PropTypes.func,\n input: PropTypes.func,\n loadingIndicator: PropTypes.func,\n loadingMessage: PropTypes.func,\n menu: PropTypes.func,\n menuList: PropTypes.func,\n menuPortal: PropTypes.func,\n multiValue: PropTypes.func,\n multiValueLabel: PropTypes.func,\n multiValueRemove: PropTypes.func,\n noOptionsMessage: PropTypes.func,\n option: PropTypes.func,\n placeholder: PropTypes.func,\n singleValue: PropTypes.func,\n valueContainer: PropTypes.func\n }),\n /** Props from https://material-ui.com/api/text-field/ */\n TextFieldProps: PropTypes.object /* eslint-disable-line react/forbid-prop-types */,\n getOptions: PropTypes.func,\n menuPlacement: PropTypes.string,\n menuPortalTarget: PropTypes.object,\n getOptionValue: PropTypes.func,\n isSearchable: PropTypes.bool,\n inputRef: PropTypes.shape({current: PropTypes.object})\n};\n\nexport default MultiSelect;\n","import MultiSelect from './MultiSelect';\n\nexport default MultiSelect;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n profileBandNavigation: {\n marginBottom: '10px'\n },\n comments: {\n display: 'flex',\n justifyContent: 'flex-end'\n }\n});\n","import React, {memo, useMemo} from 'react';\nimport classnames from 'classnames';\nimport {\n CollaborationObjectTypes,\n createRelatedObjectUris,\n Entity,\n getEntityUriForLink,\n getProfileBandObjectIdsForCollaboration\n} from '@reltio/mdm-sdk';\nimport {HistorySlice} from '@reltio/mdm-module';\n\nimport ProfileBand from '../ProfileBand/ProfileBand';\nimport {ProfileBandNavigation} from '../ProfileBandNavigation';\nimport CommentsContainer from '../CommentsContainer/CommentsContainer';\nimport {CollaborationContext} from '../../contexts';\nimport {COMMENTS_CONTAINER_VISIBILITY_AREA} from '../../constants';\nimport {useCollaboration} from '../../hooks';\nimport {ProfileBandHistory} from '../history';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n className?: string;\n historySlice?: HistorySlice;\n};\n\nexport const ScreenProfileBand = memo(({entity, className, historySlice}: Props) => {\n const styles = useStyles();\n const objectIds = useMemo(() => getProfileBandObjectIdsForCollaboration(entity), [entity]);\n const collaboration = useCollaboration({objectIds});\n const entityUri = getEntityUriForLink(entity);\n\n return (\n <CollaborationContext.Provider value={collaboration}>\n <ProfileBand\n className={classnames(className, COMMENTS_CONTAINER_VISIBILITY_AREA)}\n entity={historySlice?.aEntity || entity}\n >\n {historySlice ? (\n <ProfileBandHistory />\n ) : (\n <>\n <ProfileBandNavigation className={styles.profileBandNavigation} />\n <CommentsContainer\n className={styles.comments}\n uri={entityUri}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.ENTITY, {\n entityUri\n })}\n objectType={CollaborationObjectTypes.ENTITY}\n />\n </>\n )}\n </ProfileBand>\n </CollaborationContext.Provider>\n );\n});\n\nScreenProfileBand.displayName = 'ScreenProfileBand';\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {findSourceSystemByUri, getAbsoluteImageUrl, getSourceSystemLabel, Source} from '@reltio/mdm-sdk';\nimport AvatarWithFallback from '../AvatarWithFallback/AvatarWithFallback';\n\ntype Props = {\n sourceType: string;\n className?: string;\n classes?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst SOURCE_URL = 'https://s3.amazonaws.com/reltio.images/api';\nconst SourceIcon = ({sourceType, className, classes}: Props) => {\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const {uri, icon}: Source = findSourceSystemByUri(metadata, sourceType) || {};\n const avatarText = uri ? getSourceSystemLabel(metadata, uri)[0] : '';\n const sourceIcon = icon ? getAbsoluteImageUrl(SOURCE_URL, icon) : null;\n\n return (\n <AvatarWithFallback\n className={className}\n avatarText={avatarText}\n icon={sourceIcon}\n variant=\"square\"\n rootClasses={classes}\n />\n );\n};\n\nexport default SourceIcon;\n","import React from 'react';\n\nconst Spacer = () => <div style={{flex: 1}} />;\n\nexport default Spacer;\n","import {AttributeType, AttributeValue, DataTypes, ImageAttributeValue} from '@reltio/mdm-sdk';\nimport React, {memo} from 'react';\nimport {ReadOnlyAttribute} from '../../..';\nimport ImageAttributesLine from '../ImageAttributesLine';\n\ntype SlotParams<T> = {\n attributeType?: AttributeType;\n attributeValue: T;\n};\ntype Props = {\n values: AttributeValue[];\n attributeType: AttributeType;\n expanded?: boolean;\n valueContainerClassName?: string;\n LabelRenderer?: ({attributeType, attributeValue}: SlotParams<AttributeValue>) => JSX.Element;\n RightSlot?: ({attributeType, attributeValue}: SlotParams<AttributeValue>) => JSX.Element;\n showNonOv?: boolean;\n};\n\nconst renderAttributesList = ({values, valueContainerClassName, ...props}: Props) => {\n return (\n <>\n {(values || []).map((attributeValue) => (\n <div key={attributeValue.uri} className={valueContainerClassName}>\n <ReadOnlyAttribute attributeValue={attributeValue} {...props} />\n </div>\n ))}\n </>\n );\n};\n\nconst AttributeValuesBlock = ({expanded, LabelRenderer, RightSlot, ...props}: Props) => {\n const {attributeType, values, valueContainerClassName} = props;\n switch (attributeType.type) {\n case DataTypes.TYPE_NESTED:\n case DataTypes.TYPE_REFERENCE: {\n return renderAttributesList({expanded, LabelRenderer, RightSlot, ...props});\n }\n case DataTypes.TYPE_IMAGE: {\n return (\n <div className={valueContainerClassName}>\n <ImageAttributesLine\n attributeType={attributeType}\n attributeValues={values as ImageAttributeValue[]}\n imageSize={{imageHeight: 40, imageWidth: 40, imageMargin: 2}}\n />\n </div>\n );\n }\n default: {\n return renderAttributesList({...props});\n }\n }\n};\n\nexport default memo(AttributeValuesBlock);\n","import React, {createContext, useCallback, useContext} from 'react';\nimport {CrosswalkBase, getCrosswalkColor, getCrosswalkId} from '@reltio/mdm-sdk';\nimport {pipe, eqBy} from 'ramda';\nimport {noop} from '../../core';\n\nconst CrosswalksDisplayContext = createContext(null);\n\ntype ProviderProps = {\n children: React.ReactNode;\n getCrosswalkColor?: (crosswalk: CrosswalkBase) => string;\n focusedCrosswalks?: CrosswalkBase[];\n highlightedCrosswalks?: CrosswalkBase[];\n toggleCrosswalkFocus?: (crosswalk: CrosswalkBase) => void;\n setCrosswalkHighlighted?: (crosswalk: CrosswalkBase, highlighted: boolean) => void;\n};\n\nexport const CrosswalksDisplayProvider = ({children, ...props}: ProviderProps) => {\n return <CrosswalksDisplayContext.Provider value={props}>{children}</CrosswalksDisplayContext.Provider>;\n};\n\nexport const useCrosswalkColor = (crosswalk?: CrosswalkBase) => {\n const {getCrosswalkColor: getColor = pipe(getCrosswalkId, getCrosswalkColor)} =\n useContext(CrosswalksDisplayContext) || {};\n return crosswalk ? getColor(crosswalk) : '';\n};\n\nexport const useHighlightedCrosswalks = () => {\n const {highlightedCrosswalks = []} = useContext(CrosswalksDisplayContext) || {};\n return highlightedCrosswalks;\n};\n\nexport const useCrosswalkHighlight = (crosswalk?: CrosswalkBase) => {\n const {highlightedCrosswalks = [], setCrosswalkHighlighted = noop} = useContext(CrosswalksDisplayContext) || {};\n const isHighlighted = !!crosswalk && !!highlightedCrosswalks.find(eqBy(getCrosswalkId, crosswalk));\n return {\n isHighlighted,\n isDimmed: highlightedCrosswalks.length > 0 && !isHighlighted,\n highlightCrosswalk: useCallback(() => setCrosswalkHighlighted(crosswalk, true), [\n crosswalk,\n setCrosswalkHighlighted\n ]),\n removeHighlight: useCallback(() => setCrosswalkHighlighted(crosswalk, false), [\n crosswalk,\n setCrosswalkHighlighted\n ])\n };\n};\n\nexport const useCrosswalkFocus = (crosswalk?: CrosswalkBase) => {\n const {toggleCrosswalkFocus = noop, focusedCrosswalks = []} = useContext(CrosswalksDisplayContext) || {};\n const isFocused = !!crosswalk && focusedCrosswalks.some(eqBy(getCrosswalkId, crosswalk));\n return {\n isFocused,\n toggleCrosswalkFocus: useCallback(() => toggleCrosswalkFocus(crosswalk), [crosswalk, toggleCrosswalkFocus])\n };\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"path\", {\n d: \"M20 4v14h2V4c0-1.1-.9-2-2-2H6v2h14zM2 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12z\",\n fill: \"currentColor\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"path\", {\n d: \"M10 12a4 4 0 100-8 4 4 0 000 8zM10.35 14.01C7.62 13.91 2 15.27 2 18v2h9.54c-2.47-2.76-1.23-5.89-1.19-5.99zM19.43 18.02c.36-.59.57-1.28.57-2.02 0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4c.74 0 1.43-.22 2.02-.57L20.59 22 22 20.59l-2.57-2.57zM16 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\",\n fill: \"currentColor\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3 20h15.002L21 23l1.27-1.27-20-20.01L1 2.99l6.172 6.175a4.007 4.007 0 002.66 2.662l2.23 2.23A10.754 10.754 0 0011 14c-2.67 0-8 1.34-8 4v2zm8-16a3.987 3.987 0 00-2.795 1.137l5.656 5.659A3.999 3.999 0 0011 4z\",\n fill: \"#000\",\n fillOpacity: \".54\"\n})));","export enum ActivePanel {\n PotentialMatches,\n FindMatches,\n NotAMatch\n}\n\nexport enum ComparisonViewMode {\n TABLE = 'TABLE',\n COLUMNS = 'COLUMNS'\n}\n\nexport const MAX_PROFILES_TO_COMPARE = 4;\n","import React, {createContext, useContext} from 'react';\n\nconst DataContext = createContext<{\n reloadData: () => void;\n setReloadHandler: (f: () => void) => void;\n }>({\n reloadData: () => {},\n setReloadHandler: () => {}\n });\nconst createContextValue = () => {\n let dataHandler;\n const reloadData = (): void => {\n if (dataHandler) {\n dataHandler();\n }\n };\n const setReloadHandler = (reloadHandler: () => void) => {\n dataHandler = reloadHandler;\n };\n return {\n reloadData,\n setReloadHandler\n };\n};\nconst contextValue = createContextValue();\n\nexport const ReloadDataProvider = ({children}: {children: React.ReactElement}) => {\n return <DataContext.Provider value={contextValue}>{children}</DataContext.Provider>;\n};\n\nexport const useReloadData = () => {\n const dataContext = useContext(DataContext);\n if (dataContext === undefined) {\n throw new Error('useReloadData must be used within a ReloadDataProvider');\n }\n return dataContext;\n};\n","import {append, evolve, remove} from 'ramda';\nimport React, {createContext, useContext, useReducer} from 'react';\n\nimport {createStandardAction, useActions} from '@reltio/components';\nimport {EntitiesMap, Entity, Match} from '@reltio/mdm-sdk';\nimport {ComparisonViewMode, MAX_PROFILES_TO_COMPARE} from '../../constants/views';\n\ntype ActionContext = {\n setGlobalSpinner: (val: boolean) => void;\n setSelectedItems: (matches: Match[]) => void;\n deselectByEntities: (entities: Entity[]) => void;\n toggleSelect: (match: Match) => void;\n setLimitSelection: (value?: number) => void;\n setComparisonViewMode: (mode: ComparisonViewMode) => void;\n setEntitiesMap: (entitiesMap?: EntitiesMap) => void;\n deleteExtraMatches: () => void;\n};\n\ntype StateContext = {\n isGlobalSpinnerActive: boolean;\n selectedItems: Match[];\n limitSelection?: number;\n comparisonViewMode: ComparisonViewMode;\n entitiesMap?: EntitiesMap;\n};\nconst ViewStateContext = createContext<StateContext>(null);\nconst ViewDispatchContext = createContext<ActionContext>(null);\nconst SET_GLOBAL_SPINNER = 'SET_GLOBAL_SPINNER';\nconst SET_SELECTED_ITEMS = 'SET_SELECTED_ITEMS';\nconst DESELECT_BY_ENTITIES = 'DESELECT_BY_ENTITIES';\nconst TOGGLE_SELECT = 'TOGGLE_SELECT';\nconst SET_LIMIT_SELECTION = 'SET_LIMIT_SELECTION';\nconst SET_COMPARISON_VIEW_MODE = 'SET_COMPARISON_VIEW_MODE';\nconst SET_ENTITIES_MAP = 'SET_ENTITIES_MAP';\nconst DELETE_EXTRA_MATCHES = 'DELETE_EXTRA_MATCHES';\n\nconst actions = {\n setGlobalSpinner: createStandardAction(SET_GLOBAL_SPINNER),\n setSelectedItems: createStandardAction(SET_SELECTED_ITEMS),\n deselectByEntities: createStandardAction(DESELECT_BY_ENTITIES),\n toggleSelect: createStandardAction(TOGGLE_SELECT),\n setLimitSelection: createStandardAction(SET_LIMIT_SELECTION),\n setComparisonViewMode: createStandardAction(SET_COMPARISON_VIEW_MODE),\n setEntitiesMap: createStandardAction(SET_ENTITIES_MAP),\n deleteExtraMatches: createStandardAction(DELETE_EXTRA_MATCHES)\n};\n\nconst viewStateReducer = (state: StateContext, action: ReturnType<ReturnType<typeof createStandardAction>>) => {\n switch (action.type) {\n case SET_GLOBAL_SPINNER:\n return {...state, isGlobalSpinnerActive: action.payload};\n case DELETE_EXTRA_MATCHES:\n return {...state, selectedItems: state.selectedItems.slice(0, state.limitSelection)};\n case SET_SELECTED_ITEMS:\n return {...state, selectedItems: action.payload.slice(0, state.limitSelection)};\n case DESELECT_BY_ENTITIES:\n return evolve(\n {\n selectedItems: (selectedItems) =>\n selectedItems.filter(({object}) => !action.payload.some(({uri}) => uri === object.uri))\n },\n state\n );\n case TOGGLE_SELECT:\n return evolve(\n {\n selectedItems: (selected) => {\n const item = action.payload;\n const itemIndex = selected.findIndex(\n (selectedItem) => selectedItem?.object?.uri === item?.object?.uri\n );\n const isSelected = itemIndex > -1;\n if (isSelected) {\n return remove(itemIndex, 1, selected);\n } else {\n return append(item, selected);\n }\n }\n },\n state\n );\n case SET_LIMIT_SELECTION: {\n return {...state, limitSelection: action.payload};\n }\n case SET_COMPARISON_VIEW_MODE: {\n const newMode: ComparisonViewMode = action.payload;\n return {\n ...state,\n comparisonViewMode: newMode,\n limitSelection: newMode === ComparisonViewMode.COLUMNS ? MAX_PROFILES_TO_COMPARE : undefined\n };\n }\n case SET_ENTITIES_MAP: {\n const entitiesMap: EntitiesMap = action.payload;\n return {\n ...state,\n entitiesMap\n };\n }\n }\n};\n\ntype Props = {\n children: React.ReactElement;\n};\n\nexport const ViewStateProvider = ({children}: Props) => {\n const [state, dispatch] = useReducer(viewStateReducer, {\n isGlobalSpinnerActive: false,\n selectedItems: [],\n comparisonViewMode: ComparisonViewMode.COLUMNS,\n limitSelection: MAX_PROFILES_TO_COMPARE,\n entitiesMap: {}\n });\n const viewStateAction = useActions({actions, dispatch});\n\n return (\n <ViewStateContext.Provider value={state}>\n <ViewDispatchContext.Provider value={viewStateAction as ActionContext}>\n {children}\n </ViewDispatchContext.Provider>\n </ViewStateContext.Provider>\n );\n};\n\nexport const useViewState = () => {\n const viewStateContext = useContext<StateContext>(ViewStateContext);\n if (viewStateContext === undefined) {\n throw new Error('useViewState must be used within a ViewStateProvider');\n }\n return viewStateContext;\n};\n\nexport const useViewStateActions = () => {\n const viewStateActions = useContext<ActionContext>(ViewDispatchContext);\n if (viewStateActions === undefined) {\n throw new Error('useViewStateActions must be used within a ViewStateProvider');\n }\n return viewStateActions;\n};\n","import {basicTableViewState, createStandardAction} from '@reltio/components';\n\nconst RESET = 'RESET';\nconst SET_OPTIONS = 'SET_OPTIONS';\n\nconst actions = {\n ...basicTableViewState.actions,\n reset: createStandardAction(RESET),\n setOptions: createStandardAction(SET_OPTIONS)\n};\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case RESET: {\n return {...action.payload};\n }\n case SET_OPTIONS:\n return {...state, options: action.payload};\n default:\n return basicTableViewState.reducer(state, action);\n }\n};\n\nexport {reducer as default, actions};\n","import {\n attributeUriToSearchUri,\n getAttrDataTypeDefinition,\n getEntityAttributesFromMetadata,\n isNested,\n isReference,\n getLabel,\n getAllAttributeTypesTree,\n Metadata,\n TEntityType,\n AttributeNode\n} from '@reltio/mdm-sdk';\nimport {__, curry, either, filter, includes, map, partition, pipe, reject, omit} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {MatchesColumnsData, GroupedColumnData} from '../types/potentialMatchesTypes';\n\ntype AttributeConfig = {\n title: string;\n fieldName: string;\n children?: AttributeConfig[];\n notSelectable?: boolean;\n};\n\nconst createAttributeItemConfig = (metadata: Metadata, attrNode: AttributeNode, fieldName?: string, parents = []) => {\n const config = createAttributeItemBasicConfig(metadata, attrNode, fieldName, parents);\n const children = (attrNode.children || []).map((childNode) =>\n createAttributeItemConfig(metadata, childNode, '', parents.concat({name: attrNode.name, label: attrNode.label}))\n );\n if (children.length) {\n config.children = children;\n config.notSelectable = true;\n }\n return config;\n};\n\nconst createAttributeItemBasicConfig = (\n metadata: Metadata,\n attrNode: AttributeNode,\n fieldName: string,\n parents = []\n): AttributeConfig => {\n const attrType = omit(['children'], attrNode);\n const title = attrType.label || attrType.name;\n return {\n title,\n fieldName: fieldName || attributeUriToSearchUri(attrType.uri, parents)\n };\n};\n\nexport const collectAttributeItems = (metadata: Metadata, entityType?: TEntityType) =>\n entityType\n ? getAllAttributeTypesTree(metadata, entityType).map((attrNode) =>\n createAttributeItemConfig(metadata, attrNode)\n )\n : [];\n\nconst getColumnsDataFromEntityAttributes = pipe(\n map((attr) => ({\n id: attributeUriToSearchUri(attr.uri),\n label: getLabel(attr.label),\n dataTypeDefinition: getAttrDataTypeDefinition(attr)\n }))\n);\n\nexport const getColumnsData = pipe(getEntityAttributesFromMetadata, getColumnsDataFromEntityAttributes);\n\nexport const isMatchAttrColumn = curry((matchAttributes: string[], column: MatchesColumnsData) =>\n matchAttributes\n .map((attrUri) => attributeUriToSearchUri(attrUri))\n .some((id) => column.id === id || (isReferenceAttrColumn(column) && isSubAttrIdForColumn(column, id)))\n);\nconst isNestedAttrColumn = (column: MatchesColumnsData) => isNested(column.dataTypeDefinition);\nconst isReferenceAttrColumn = (column: MatchesColumnsData) => isReference(column.dataTypeDefinition);\nconst isSubAttrIdForColumn = curry((parentColumn: MatchesColumnsData, columnId: string) =>\n columnId.startsWith(`${parentColumn.id}.`)\n);\nconst isNestedForOneOfColumns = curry(\n (columns: MatchesColumnsData[], column: MatchesColumnsData) =>\n isNestedAttrColumn(column) && columns.some(({id}) => isSubAttrIdForColumn(column, id))\n);\nconst isRelatedToColumns = (columns: MatchesColumnsData[]) =>\n either(includes(__, columns), isNestedForOneOfColumns(columns));\n\nexport const getMatchAttrColumns = (\n matchAttributes: string[],\n columnsData: MatchesColumnsData[]\n): MatchesColumnsData[] => pipe(reject(isNestedAttrColumn), filter(isMatchAttrColumn(matchAttributes)))(columnsData);\n\nexport const groupColumnsDataByMatchAttributes = (\n matchAttributes: string[],\n columnsData: MatchesColumnsData[]\n): GroupedColumnData[] => {\n const [matchAttrColumns, otherColumns] = pipe(\n reject(isNestedAttrColumn),\n partition(isMatchAttrColumn(matchAttributes))\n )(columnsData);\n\n return matchAttrColumns.length\n ? ([\n {\n id: 'match',\n label: i18n.text('Match attributes'),\n columns: columnsData.filter(isRelatedToColumns(matchAttrColumns))\n },\n {\n id: 'all',\n label: i18n.text('All attributes'),\n columns: columnsData.filter(isRelatedToColumns(otherColumns))\n }\n ] as GroupedColumnData[])\n : columnsData;\n};\n","import i18n from 'ui-i18n';\nimport {any, equals, flatten, pipe, pluck, prop, values} from 'ramda';\nimport {DataTypes, MatchRulesAttrTypes, Metadata, SearchFilter, getEntityType} from '@reltio/mdm-sdk';\nimport {collectAttributeItems} from './attributesHelpers';\n\nexport const ROWS_PER_PAGE_OPTIONS = [20, 50, 100];\n\nexport const MATCHES_SORT_OPTIONS = [\n {\n id: 'label',\n get label() {\n return i18n.text('Profile name');\n }\n },\n {\n id: 'matchRules',\n get label() {\n return i18n.text('Match rule');\n }\n },\n {\n id: 'mlMatchRules',\n get label() {\n return i18n.text('Match IQ');\n },\n dataTypeDefinition: {\n type: DataTypes.TYPE_SELECT\n }\n },\n {\n id: 'id',\n get label() {\n return i18n.text('Entity ID');\n }\n }\n];\n\nexport const ADDITIONAL_SORT_OPTIONS_DATA = [\n {\n id: 'score',\n get label() {\n return i18n.text('Match score');\n }\n }\n];\n\nexport const DEFAULT_SORT_OPTIONS = [\n {\n id: 'label',\n get label() {\n return i18n.text('Profile name');\n }\n },\n {\n id: 'id',\n get label() {\n return i18n.text('Entity ID');\n }\n }\n];\n\nexport const getSortOptionIdFromData = pluck('id');\n\nexport const getSortingItemsGroups = (metadata: Metadata, entityTypeUri: string) => [\n {\n title: '',\n attributes: collectAttributeItems(metadata, getEntityType(metadata, entityTypeUri))\n }\n];\n\nexport const buildRulesStringFormFilters = (filters: SearchFilter[]): string =>\n flatten(filters.map(prop('values'))).join(',');\n\nexport const isMatchRuleFilter = ({fieldName}: SearchFilter): boolean => {\n return pipe(values, pluck('name'), any(equals(fieldName)))(MatchRulesAttrTypes);\n};\n","import {useReducer} from 'react';\nimport {useActions} from '@reltio/components';\nimport stateReducer, {actions} from './helpers/stateReducer';\nimport {useViewState, useViewStateActions} from '../contexts/ViewStateContext';\nimport {ROWS_PER_PAGE_OPTIONS} from '../helpers/sortHelpers';\n\nexport const useMatchesReducer = (defaultRowsPerPage: number = ROWS_PER_PAGE_OPTIONS[0]) => {\n const initState = {\n page: 0,\n rowsPerPage: defaultRowsPerPage,\n selectedItems: [],\n limitSelection: null\n };\n\n const [state, dispatch] = useReducer(stateReducer, initState);\n const resultActions = useActions({actions, dispatch});\n const viewActions = useViewStateActions();\n const viewState = useViewState();\n return [{...resultActions, ...viewActions}, {...state, ...viewState}, dispatch];\n};\n","import {ApiError, ApiErrorCode} from '@reltio/mdm-sdk';\nimport {ErrorPopup} from '@reltio/components';\nimport i18n from 'ui-i18n';\n\nexport const showAddRelationErrors = (error: ApiError) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: i18n.text(\"Can't add relationship\")\n });\n};\n\nexport const showApiError = (error: ApiError) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: error?.errorMessage || i18n.text('Something went wrong...')\n });\n};\n\nexport const showDCRReviewErrors = (error: ApiError) => {\n if (error?.errorCode === ApiErrorCode.DCR_ALREADY_EXISTS) {\n return;\n }\n showApiError(error);\n};\n","import {useCallback} from 'react';\nimport {useViewState, useViewStateActions} from '../../contexts/ViewStateContext';\nimport {useReloadData} from '../../contexts/ReloadDataContext';\n\nexport const useSpinnerAndReloadData = () => {\n const {setGlobalSpinner} = useViewStateActions();\n const {isGlobalSpinnerActive} = useViewState();\n const {reloadData} = useReloadData();\n const onStartRequest = useCallback(() => {\n setGlobalSpinner(true);\n }, [setGlobalSpinner]);\n const onFinishRequest = useCallback(() => {\n setGlobalSpinner(false);\n reloadData();\n }, [reloadData, setGlobalSpinner]);\n return {onStartRequest, onFinishRequest, isGlobalSpinnerActive};\n};\n","import React, {forwardRef} from 'react';\nimport {ActionButtonMode, MergeButton as MergeButtonComponent, noop} from '@reltio/components';\nimport {Entity} from '@reltio/mdm-sdk';\nimport {showApiError} from '../../utils/errors';\nimport {useViewStateActions} from '../../contexts/ViewStateContext';\nimport {useSpinnerAndReloadData} from './useSpinnerAndReloadData';\n\ntype Props = {\n mode?: ActionButtonMode;\n entity: Entity;\n entities: Entity[];\n size?: string;\n className?: string;\n onMenuClose?: () => void;\n};\n\nexport const MergeButton = forwardRef<HTMLLIElement, Props>(\n ({className, entities, entity, mode = ActionButtonMode.iconButton, size, onMenuClose = noop}: Props, ref) => {\n const {isGlobalSpinnerActive, onFinishRequest, onStartRequest} = useSpinnerAndReloadData();\n const {deselectByEntities} = useViewStateActions();\n\n const onSuccess = () => {\n deselectByEntities(entities);\n };\n\n return (\n <MergeButtonComponent\n className={className}\n disabled={isGlobalSpinnerActive}\n entities={entities}\n entity={entity}\n mode={mode}\n {...(size ? {size} : {})}\n onMenuClose={onMenuClose}\n onStartRequest={onStartRequest}\n onFinishRequest={onFinishRequest}\n onSuccess={onSuccess}\n onError={showApiError}\n data-reltio-id=\"reltio-potential-matches-merge-button\"\n ref={ref}\n />\n );\n }\n);\n\nMergeButton.displayName = 'mergeButton';\n","import React, {forwardRef} from 'react';\nimport {ActionButtonMode, noop, NotMatchButton as NotMatchButtonComponent} from '@reltio/components';\nimport {Entity} from '@reltio/mdm-sdk';\nimport {useViewStateActions} from '../../contexts/ViewStateContext';\nimport {useSpinnerAndReloadData} from './useSpinnerAndReloadData';\n\ntype Props = {\n mode?: ActionButtonMode;\n entity: Entity;\n entities: Entity[];\n size?: string;\n className?: string;\n onMenuClose?: () => void;\n};\n\nexport const NotMatchButton = forwardRef<HTMLLIElement, Props>(\n ({className, entities, entity, mode = ActionButtonMode.iconButton, size, onMenuClose = noop}: Props, ref) => {\n const {isGlobalSpinnerActive, onFinishRequest, onStartRequest} = useSpinnerAndReloadData();\n const {deselectByEntities} = useViewStateActions();\n\n const onSuccess = () => {\n deselectByEntities(entities);\n };\n return (\n <NotMatchButtonComponent\n className={className}\n disabled={isGlobalSpinnerActive}\n entities={entities}\n entity={entity}\n mode={mode}\n {...(size ? {size} : {})}\n onMenuClose={onMenuClose}\n onStartRequest={onStartRequest}\n onFinishRequest={onFinishRequest}\n onSuccess={onSuccess}\n ref={ref}\n />\n );\n }\n);\n\nNotMatchButton.displayName = 'NotMatchButton';\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"path\", {\n d: \"M9 4c4.42 0 8 3.58 8 8s-3.58 8-8 8a8 8 0 01-7.419-5h2.224A6.002 6.002 0 009 18c3.31 0 6-2.69 6-6s-2.69-6-6-6a6.002 6.002 0 00-5.196 3H1.581A8 8 0 019 4zm8 .26c3.45.89 6 4.01 6 7.74 0 3.73-2.55 6.85-6 7.74v-2.09a5.99 5.99 0 000-11.3V4.26zM8 7.5l4.5 4.5L8 16.5V13H0v-2h8V7.5z\",\n fillOpacity: \".541\"\n})));","import React, {forwardRef} from 'react';\nimport {ActionButton, ActionButtonMode, noop} from '@reltio/components';\nimport {Entity} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\nimport {useSetAMatch} from '../../hooks/useSetAMatch';\nimport SetAsMatchIcon from './icons/setAsMatch.svg';\nimport {useViewStateActions} from '../../contexts/ViewStateContext';\n\ntype Props = {\n mode?: ActionButtonMode;\n entity: Entity;\n entities: Entity[];\n className?: string;\n onMenuClose?: () => void;\n};\n\nexport const SetAMatchButton = forwardRef<HTMLLIElement, Props>(\n ({entity, entities, className, mode = ActionButtonMode.iconButton, onMenuClose = noop}: Props, ref) => {\n const {deselectByEntities} = useViewStateActions();\n\n const onSuccess = () => {\n deselectByEntities(entities);\n };\n\n const [markingIsInProgress, setAMatch] = useSetAMatch({entity, entities, onSuccess});\n\n return (\n <ActionButton\n className={className}\n disabled={markingIsInProgress}\n mode={mode}\n label={i18n.text('Save on potential matches')}\n icon={SetAsMatchIcon}\n onClick={setAMatch}\n onMenuClose={onMenuClose}\n ref={ref}\n />\n );\n }\n);\n\nSetAMatchButton.displayName = 'SetAMatchButton';\n","import {Entity, setAsMatch} from '@reltio/mdm-sdk';\nimport {useCallback} from 'react';\nimport {useViewState, useViewStateActions} from '../contexts/ViewStateContext';\nimport {useReloadData} from '../contexts/ReloadDataContext';\n\ntype Props = {\n entity: Entity;\n entities: Entity[];\n onSuccess?: () => void;\n};\n\nexport const useSetAMatch = ({entities, entity, onSuccess}: Props): [boolean, () => void] => {\n const {setGlobalSpinner} = useViewStateActions();\n const {isGlobalSpinnerActive} = useViewState();\n const {reloadData} = useReloadData();\n const setAMatch = useCallback(() => {\n setGlobalSpinner(true);\n setAsMatch(entity.uri, entities)\n .then(() => {\n onSuccess?.();\n })\n .finally(() => {\n setGlobalSpinner(false);\n reloadData();\n });\n }, [entities, entity, setGlobalSpinner, reloadData, onSuccess]);\n\n return [isGlobalSpinnerActive, setAMatch];\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\"\n}, props), React.createElement(\"defs\", null, React.createElement(\"path\", {\n d: \"M10 6v2H4v12.22h12V14h2v6c0 1.05-.82 1.918-1.851 1.994L16 22H4c-1.05 0-1.918-.82-1.994-1.851L2 20V8c0-1.05.82-1.918 1.851-1.994L4 6h6zm4 10v2H6v-2h8zm-3.997-3l-.001 2H6v-2h4.003zM21 2c.55 0 1 .45 1 1v8c0 .55-.45 1-1 1h-7l-2 2 .005-11c0-.55.445-1 .995-1h8zm-10.996 8l-.001 2H6v-2h4.004zm9.286-6.3l-3.17 3.17-1.41-1.42-1.41 1.41 2.82 2.84 4.59-4.58-1.42-1.42z\",\n id: \"svg3192636834a\"\n})), React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\"\n}, React.createElement(\"mask\", {\n id: \"svg3192636834b\",\n fill: \"#fff\"\n}, React.createElement(\"use\", {\n xlinkHref: \"#svg3192636834a\"\n})), React.createElement(\"path\", {\n fillOpacity: \".54\",\n fill: \"#000\",\n mask: \"url(#svg3192636834b)\",\n d: \"M0 0h24v24H0z\"\n}))));","import React, {forwardRef, useContext} from 'react';\nimport {useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport {ActionButton, ActionButtonMode, SnackbarContext, noop} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {Entity, isEmptyValue} from '@reltio/mdm-sdk';\nimport {useRequestDCRReview} from '../../hooks/useRequestDCRReview';\nimport DcrReviewIcon from './icons/dcrReview.svg';\n\ntype Props = {\n className?: string;\n entity: Entity;\n entities: Entity[];\n mode?: ActionButtonMode;\n onMenuClose?: () => void;\n};\n\nexport const DCRReviewButton = forwardRef<HTMLLIElement, Props>(\n ({className, entities, entity, mode = ActionButtonMode.iconButton, onMenuClose = noop}: Props, ref) => {\n const showSnackbarMessage = useContext(SnackbarContext);\n const [operationIsInProgress, startPMReview] = useRequestDCRReview({\n entity,\n entities,\n showSnackbarMessage\n });\n const canStartProcessInstanceSearchQuery = useSelector(mdmModule.selectors.getCanUserStartProcessFromQuery);\n const workflowPath = useSelector(mdmModule.selectors.getWorkflowPath);\n\n return canStartProcessInstanceSearchQuery && !isEmptyValue(workflowPath) ? (\n <ActionButton\n className={className}\n disabled={operationIsInProgress}\n mode={mode}\n label={operationIsInProgress ? '' : i18n.text('Potential match request')}\n icon={DcrReviewIcon}\n onClick={startPMReview}\n onMenuClose={onMenuClose}\n ref={ref}\n />\n ) : null;\n }\n);\n\nDCRReviewButton.displayName = 'DCRReviewButton';\n","import {useCallback} from 'react';\nimport {useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport {concat, map, pipe, prop} from 'ramda';\nimport mdmModule from '@reltio/mdm-module';\nimport {startProcessInstanceByPairs, Entity} from '@reltio/mdm-sdk';\nimport {useViewState, useViewStateActions} from '../contexts/ViewStateContext';\nimport {showDCRReviewErrors} from '../utils/errors';\n\nconst PROCESS_TYPE = 'potentialMatchReview';\n\ntype Props = {\n entities: Entity[];\n entity: Entity;\n showSnackbarMessage?: (message: string) => void;\n};\n\nexport const useRequestDCRReview = ({\n entities,\n entity,\n showSnackbarMessage\n}: Props): [val: boolean, func: () => void] => {\n const {selectors} = mdmModule;\n const {setGlobalSpinner} = useViewStateActions();\n const {isGlobalSpinnerActive} = useViewState();\n const workflowPath = useSelector(selectors.getWorkflowPath);\n const environment = useSelector(selectors.getWorkflowEnvironmentUrl);\n const tenant = useSelector(selectors.getTenant);\n const getUri = prop('uri');\n const getUrisFromEntities = pipe(concat, map(getUri));\n const uris = getUrisFromEntities([entity], entities);\n\n const startPMReview = useCallback(() => {\n setGlobalSpinner(true);\n startProcessInstanceByPairs({\n workflowPath,\n processType: PROCESS_TYPE,\n objectURIs: uris,\n tenant,\n environment\n })\n .then(() => {\n showSnackbarMessage?.(i18n.text('Potential match request: Done'));\n })\n .catch(showDCRReviewErrors)\n .finally(() => {\n setGlobalSpinner(false);\n });\n }, [setGlobalSpinner, workflowPath, uris, tenant, environment, showSnackbarMessage]);\n\n return [isGlobalSpinnerActive, startPMReview];\n};\n","import {useCallback} from 'react';\nimport {useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport {\n isDataTenantEntity,\n reinstateDataTenantEntityMatch,\n reinstateMixedEntitiesMatches,\n Entity\n} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {useViewState, useViewStateActions} from '../contexts/ViewStateContext';\nimport {useReloadData} from '../contexts/ReloadDataContext';\n\ntype Props = {\n entities: Entity[];\n entity: Entity;\n showSnackbarMessage?: (message: string) => void;\n onSuccess?: () => void;\n};\n\nexport const useReinstateMatch = ({entities, entity, showSnackbarMessage, onSuccess}: Props): [boolean, () => void] => {\n const {setGlobalSpinner} = useViewStateActions();\n const {isGlobalSpinnerActive} = useViewState();\n const {reloadData} = useReloadData();\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const onReinstateMatch = useCallback(() => {\n setGlobalSpinner(true);\n const params = {dtssPath, customerTenant: tenant, entity, entities};\n (isDataTenantEntity(entity) ? reinstateDataTenantEntityMatch(params) : reinstateMixedEntitiesMatches(params))\n .then(() => {\n showSnackbarMessage?.(i18n.text('Save as potential match: Done'));\n onSuccess?.();\n })\n .finally(() => {\n setGlobalSpinner(false);\n reloadData();\n });\n }, [setGlobalSpinner, dtssPath, tenant, entity, entities, showSnackbarMessage, reloadData, onSuccess]);\n\n return [isGlobalSpinnerActive, onReinstateMatch];\n};\n","import React, {forwardRef, useContext} from 'react';\n\nimport i18n from 'ui-i18n';\nimport {ActionButton, ActionButtonMode, noop, SnackbarContext} from '@reltio/components';\nimport {Entity} from '@reltio/mdm-sdk';\nimport {useReinstateMatch} from '../../hooks/useReinstateMatch';\nimport SetAsMatchIcon from './icons/setAsMatch.svg';\nimport {useViewStateActions} from '../../contexts/ViewStateContext';\n\ntype Props = {\n mode?: ActionButtonMode;\n entity: Entity;\n entities: Entity[];\n className?: string;\n onMenuClose?: () => void;\n};\n\nexport const ReinstateMatchButton = forwardRef<HTMLLIElement, Props>(\n ({entity, entities, className, mode = ActionButtonMode.iconButton, onMenuClose = noop}: Props, ref) => {\n const showSnackbarMessage = useContext(SnackbarContext);\n const {deselectByEntities} = useViewStateActions();\n const onSuccess = () => {\n deselectByEntities(entities);\n };\n const [reinstateIsInProgress, onReinstateMatch] = useReinstateMatch({\n entity,\n entities,\n showSnackbarMessage,\n onSuccess\n });\n\n return (\n <ActionButton\n className={className}\n disabled={reinstateIsInProgress}\n mode={mode}\n label={i18n.text('Save as potential match')}\n icon={SetAsMatchIcon}\n onClick={onReinstateMatch}\n onMenuClose={onMenuClose}\n ref={ref}\n />\n );\n }\n);\n\nReinstateMatchButton.displayName = 'ReinstateMatchButton';\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\"\n}, props), React.createElement(\"defs\", null, React.createElement(\"path\", {\n d: \"M19 14v3h3v2h-3v3h-2v-3h-3v-2l3-.001V14h2zM17 2a3 3 0 11-1.293 5.708l-4.535 4.535a5 5 0 11-1.414-1.414l4.534-4.536A3 3 0 0117 2zM7 12a3 3 0 100 6 3 3 0 000-6zm10-8a1 1 0 100 2 1 1 0 000-2z\",\n id: \"svg2192258504a\"\n})), React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\"\n}, React.createElement(\"mask\", {\n id: \"svg2192258504b\",\n fill: \"#fff\"\n}, React.createElement(\"use\", {\n xlinkHref: \"#svg2192258504a\"\n})), React.createElement(\"path\", {\n fillOpacity: \".54\",\n fill: \"#000\",\n mask: \"url(#svg2192258504b)\",\n d: \"M0 0h24v24H0z\"\n}))));","import React, {forwardRef} from 'react';\nimport i18n from 'ui-i18n';\nimport {ActionButton, ActionButtonMode, noop} from '@reltio/components';\nimport {Entity} from '@reltio/mdm-sdk';\nimport AddRelationIcon from './icons/addRelationship.svg';\n\ntype Props = {\n className?: string;\n mainEntity?: Entity;\n currentEntity?: Entity;\n mode?: ActionButtonMode;\n onMenuClose?: () => void;\n onClick?: (val: Pick<Props, 'mainEntity' | 'currentEntity' | 'matchRules'>) => void;\n matchRules?: string[];\n};\n\nexport const CreateRelationButton = forwardRef<HTMLLIElement, Props>(\n (\n {\n className,\n mainEntity,\n currentEntity,\n matchRules,\n mode = ActionButtonMode.iconButton,\n onClick = noop,\n onMenuClose = noop\n }: Props,\n ref\n ) => {\n const handleClick = () => onClick({mainEntity, currentEntity, matchRules});\n return (\n <ActionButton\n className={className}\n mode={mode}\n label={i18n.text('Add relationship')}\n icon={AddRelationIcon}\n onClick={handleClick}\n onMenuClose={onMenuClose}\n ref={ref}\n />\n );\n }\n);\n\nCreateRelationButton.displayName = 'CreateRelationButton';\n","import React, {ReactNode} from 'react';\n\nexport const RightSideHeaderContext = React.createContext<{\n mainTitle?: string;\n secondTitle?: string;\n content?: ReactNode;\n rightContent?: ReactNode;\n bottomContent?: ReactNode;\n onClose: () => void;\n }>({\n onClose: () => {}\n });\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(() => ({\n attributeSelect: {\n width: '100%',\n height: '40px'\n }\n}));\n\nexport default useStyles;\n","import React, {memo, useCallback, useMemo} from 'react';\nimport {BasicAttributeSelector, AttributeSelectorItemsGroup} from '@reltio/components';\n\nimport useStyles from './styles';\n\ntype AttributeOption = {\n fieldName: string;\n title: string;\n children?: AttributeOption[];\n};\n\ntype Props = {\n onChange: (field) => void;\n options: AttributeSelectorItemsGroup[];\n field?: string;\n};\n\nconst SortingFieldSelector = ({onChange, options, field}: Props) => {\n const styles = useStyles();\n const value = useMemo(() => {\n const path = field?.split('.');\n const sortLevel = path?.length;\n\n const findNode = (attributes: AttributeOption[]) => {\n const level = attributes[0].fieldName.split('.').length;\n if (level === sortLevel) {\n return attributes.find((attr) => attr.fieldName === field);\n }\n if (level < sortLevel) {\n const parentFieldName = path.slice(0, level).join('.');\n const children = attributes.find((attr) => attr.fieldName === parentFieldName)?.children;\n if (children) {\n return findNode(children);\n }\n }\n };\n\n for (const option of options) {\n const node = findNode(option.attributes);\n if (node) {\n return node;\n }\n }\n }, [field, options]);\n\n const handleChange = useCallback(\n (val: {attribute: AttributeOption}) => {\n onChange(val.attribute.fieldName);\n },\n [onChange]\n );\n\n return (\n <BasicAttributeSelector\n hideCheckBox\n className={styles.attributeSelect}\n value={value}\n itemsGroups={options}\n onSelect={handleChange}\n ungroup\n single\n />\n );\n};\n\nexport default memo(SortingFieldSelector);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n rowCheckbox: {\n marginRight: '20px',\n height: '24px',\n position: 'relative',\n padding: '12px'\n },\n header: {\n padding: '8px 12px 8px 0',\n border: 'rgba(0,0,0,0.05) 1px solid',\n borderTop: 0,\n display: 'flex',\n justifyContent: 'space-between'\n },\n selector: {\n width: '160px'\n },\n sorting: {\n display: 'flex'\n },\n arrow: {\n transition: 'transform 0.3s ease-in'\n },\n rotate: {\n transform: 'rotate(180deg)'\n }\n}));\n","import React, {useContext} from 'react';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport {Order, SortingField} from '@reltio/mdm-sdk';\nimport {AttributeSelectorItemsGroup, SidePanelContentHeader} from '@reltio/components';\nimport {RightSideHeaderContext} from '../../contexts/RightSideHeaderContext';\nimport SortingFieldSelector from '../SortingFieldSelector';\nimport i18n from 'ui-i18n';\nimport ArrowIcon from '@material-ui/icons/ArrowUpward';\nimport classNames from 'classnames';\nimport {IconButton as IconButton} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n selectedCount: number;\n totalCount: number;\n totalOnPage: number;\n onSelect: () => void;\n sortOptions: AttributeSelectorItemsGroup[];\n onSorting?: (SortingField) => void;\n sorting: SortingField;\n children?: React.ReactNode;\n};\n\nconst RightSidePanelHeader = ({\n selectedCount,\n totalCount,\n onSelect,\n sortOptions,\n sorting,\n onSorting,\n totalOnPage,\n children\n}: Props) => {\n const styles = useStyles();\n\n const onChangeSortOrder = () => {\n onSorting({\n ...sorting,\n order: sorting.order === Order.asc ? Order.desc : Order.asc\n });\n };\n\n const onChangeSortField = (field) => {\n onSorting({\n ...sorting,\n field\n });\n };\n\n const sidePanelHeaderProps = useContext(RightSideHeaderContext);\n return (\n <>\n <SidePanelContentHeader\n {...sidePanelHeaderProps}\n secondTitle={!!totalCount && i18n.text('${n} Profiles', {n: totalCount})}\n />\n {children}\n {!!totalOnPage && (\n <div className={styles.header}>\n <Checkbox\n className={styles.rowCheckbox}\n checked={selectedCount === totalOnPage}\n indeterminate={selectedCount > 0 && selectedCount < totalOnPage}\n onChange={onSelect}\n />\n <div className={styles.sorting}>\n <SortingFieldSelector\n field={sorting?.field}\n options={sortOptions}\n onChange={onChangeSortField}\n />\n <IconButton\n onClick={onChangeSortOrder}\n classes={{root: classNames(styles.arrow, {[styles.rotate]: sorting.order === Order.desc})}}\n >\n <ArrowIcon />\n </IconButton>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport default RightSidePanelHeader;\n","import {useMemo} from 'react';\nimport {getSortingItemsGroups} from '../helpers/sortHelpers';\nimport {Metadata} from '@reltio/mdm-sdk';\nimport {AttributeSelectorItemsGroup} from '@reltio/components';\n\ntype SortOption = {\n id: string;\n label: string;\n};\nexport const useSortOptions = (\n defaultOptions: SortOption[],\n additionalOptions: SortOption[],\n metadata: Metadata,\n entityTypeUri: string\n): AttributeSelectorItemsGroup[] => {\n return useMemo(() => {\n const itemsGroups = getSortingItemsGroups(metadata, entityTypeUri);\n const defaultData = {\n title: '',\n attributes: defaultOptions\n .concat(additionalOptions || [])\n .map((col) => ({title: col.label, fieldName: col.id}))\n };\n return [defaultData, ...itemsGroups];\n }, [metadata, entityTypeUri, defaultOptions, additionalOptions]);\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n color?: string;\n};\n\nexport const useStyles = makeStyles((theme) => {\n return {\n hidden: {\n visibility: 'hidden'\n },\n rowCheckbox: {\n marginLeft: '-9px',\n marginRight: '19px',\n height: '24px',\n position: 'relative',\n padding: '9px'\n },\n entity: {\n paddingTop: '12px',\n paddingBottom: '8px',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n actions: {\n marginLeft: 'auto',\n marginRight: 0,\n paddingTop: '15px',\n display: 'flex'\n },\n actionButtons: {\n display: 'none'\n },\n active: {\n display: 'flex'\n },\n wrapper: {\n position: 'relative',\n whiteSpace: 'pre',\n padding: '0 15px 0 15px',\n color: 'rgba(0,0,0,0.87)',\n '&::after': {\n content: '\"\"',\n position: 'absolute' as const,\n right: 0,\n top: 0,\n width: '40px',\n height: '100%',\n pointerEvents: 'none'\n },\n '&:hover': {\n backgroundColor: 'rgba(0,0,0,0.04)',\n '& $actionButtons': {\n display: 'flex'\n },\n '& $commentsContainer': {\n borderLeft: '1px solid rgba(0,0,0,0.12)'\n }\n },\n display: 'flex',\n boxSizing: 'border-box',\n borderBottom: '1px rgba(0,0,0,0.05) solid',\n paddingLeft: '12px'\n },\n entityLabel: {\n color: theme.palette.primary.main,\n cursor: 'pointer',\n textDecoration: 'none',\n fontWeight: 500\n },\n matchRulesWrapper: {\n padding: '12px 15px 4px 10px',\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n '& $divider:nth-child(2):not(:last-child)': {\n display: 'block'\n }\n },\n selectedRow: {\n backgroundColor: 'rgba(0, 114, 206, 0.12)'\n },\n coloredRow: {\n '&:before': {\n content: '\"\"',\n position: 'absolute' as const,\n left: 0,\n top: 0,\n width: '4px',\n height: '100%',\n borderRadius: '0px 4px 4px 0px',\n background: ({color}: StylesProps) => color\n }\n },\n matchScore: {\n paddingLeft: '12px',\n color: 'rgba(0,0,0,0.54)'\n },\n commentsContainer: {\n paddingLeft: '6px',\n paddingRight: '15px',\n height: '24px',\n marginLeft: '6px'\n },\n border: {\n borderLeft: '1px solid rgba(0,0,0,0.12)'\n },\n rightButton: {\n marginLeft: '8px'\n },\n tenantIcon: {\n marginLeft: '12px'\n },\n divider: {\n display: 'none',\n marginLeft: '12px',\n height: '20px',\n background: 'rgba(0,0,0,0.12)'\n }\n };\n});\n","import React, {memo, useState} from 'react';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport {Divider as Divider} from '@material-ui/core';\nimport {\n CommentsContainer,\n COMMENTS_CONTAINER_VISIBILITY_AREA,\n DataTenantBadge,\n EntityUriLink,\n MatchRulesBlock,\n MatchRuleVariant\n} from '@reltio/components';\n\nimport {\n CollaborationObjectTypes,\n createObjectIdForPM,\n createRelatedObjectUris,\n EntitiesMap,\n Entity,\n getEntityColor,\n getEntityUriForLink,\n getLabel,\n Match,\n Metadata,\n isDataTenantEntity\n} from '@reltio/mdm-sdk';\nimport classnames from 'classnames';\nimport {ActionButtonRendererProps} from '../../types/potentialMatchesTypes';\nimport {useStyles} from './styles';\n\ntype Props = {\n isRowSelected?: boolean;\n isColumnViewMode?: boolean;\n rowIndex: number;\n toggleSelect?: (match: Match) => void;\n entityToMatch: Entity;\n actionButtonsRenderer: (props: ActionButtonRendererProps) => React.ReactElement;\n match: Match;\n matches: Match[];\n entitiesMap?: EntitiesMap<Pick<Entity, 'label' | 'uri' | 'type'>>;\n metadata: Metadata;\n matchRules?: string[];\n};\n\nconst ItemRenderer = ({\n rowIndex,\n match,\n toggleSelect,\n entityToMatch,\n isRowSelected,\n isColumnViewMode,\n actionButtonsRenderer,\n metadata,\n entitiesMap = {}\n}: Props) => {\n const entity = match.object;\n const color = getEntityColor(entity.uri);\n const styles = useStyles({color});\n const [openMenu, setOpenMenu] = useState(false);\n const onToggleSelect = () => toggleSelect(match);\n\n const isRowSelectable = entity !== entityToMatch;\n const Actions = actionButtonsRenderer;\n\n return (\n <div\n className={classnames(styles.wrapper, COMMENTS_CONTAINER_VISIBILITY_AREA, {\n [styles.coloredRow]: isColumnViewMode && isRowSelected,\n [styles.selectedRow]: isRowSelected\n })}\n >\n <Checkbox\n className={classnames(styles.rowCheckbox, {[styles.hidden]: !isRowSelectable})}\n checked={isRowSelected}\n onChange={onToggleSelect}\n data-reltio-id={`reltio-matches-table-checkbox-${rowIndex}`}\n />\n <div className={styles.entity}>\n <EntityUriLink value={getEntityUriForLink(entity)} className={styles.entityLabel}>\n {getLabel(entity.label)}\n </EntityUriLink>\n <div className={styles.matchRulesWrapper}>\n <MatchRulesBlock\n entitiesMap={entitiesMap}\n entity={entity}\n match={match}\n metadata={metadata}\n variant={MatchRuleVariant.excludeNotMatch}\n />\n <Divider orientation=\"vertical\" className={styles.divider} />\n {!!match.matchScore && <div className={styles.matchScore}>{match.matchScore}</div>}\n {isDataTenantEntity(entity) && (\n <DataTenantBadge className={styles.tenantIcon} dataTenantId={entity.dataTenant} />\n )}\n </div>\n </div>\n <div className={styles.actions}>\n <div className={classnames(styles.actionButtons, {[styles.active]: openMenu})}>\n <Actions\n buttonClassName={styles.rightButton}\n hoveredMatch={match}\n onActionsMenuOpen={() => setOpenMenu(true)}\n onActionsMenuClose={() => setOpenMenu(false)}\n />\n </div>\n {entityToMatch && (\n <CommentsContainer\n className={classnames(styles.commentsContainer, {[styles.border]: openMenu})}\n uri={createObjectIdForPM(entityToMatch.uri, match.object.uri)}\n objectType={CollaborationObjectTypes.POTENTIAL_MATCH}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.POTENTIAL_MATCH, {\n entityUri: entityToMatch.uri,\n matchEntityUri: match.object.uri\n })}\n allowOnlyOneComment\n showAlways={openMenu}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default memo(ItemRenderer);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n view: {\n position: 'relative',\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n overflowY: 'auto',\n overflowX: 'hidden'\n }\n}));\n","import React from 'react';\nimport {Entity, Metadata, EntitiesMap, Match} from '@reltio/mdm-sdk';\nimport {ComparisonViewMode} from '../../constants/views';\nimport {ItemRenderer} from '../ItemRenderer';\nimport {useViewState} from '../../contexts/ViewStateContext';\nimport {ActionButtonRendererProps} from '../../types/potentialMatchesTypes';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n metadata: Metadata;\n matches: Match[];\n entityToMatch: Entity;\n toggleSelect: (match: Match) => void;\n actionButtonsRenderer: (props: ActionButtonRendererProps) => React.ReactElement;\n entitiesMap?: EntitiesMap<Pick<Entity, 'label' | 'uri' | 'type'>>;\n selectedItems: Match[];\n};\n\nexport const MatchItems = ({\n entityToMatch,\n matches,\n toggleSelect,\n actionButtonsRenderer,\n metadata,\n entitiesMap,\n selectedItems\n}: Props) => {\n const styles = useStyles();\n const {comparisonViewMode} = useViewState();\n\n return (\n <div className={styles.view}>\n {matches.map((match, index) => (\n <ItemRenderer\n key={match.object.uri}\n rowIndex={index}\n match={match}\n entityToMatch={entityToMatch}\n toggleSelect={toggleSelect}\n actionButtonsRenderer={actionButtonsRenderer}\n matches={matches}\n matchRules={match.matchRules}\n metadata={metadata}\n entitiesMap={entitiesMap}\n isColumnViewMode={comparisonViewMode === ComparisonViewMode.COLUMNS}\n isRowSelected={selectedItems.some((item) => item.object.uri === match.object.uri)}\n />\n ))}\n </div>\n );\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n padding: '8px 16px',\n gap: '8px',\n borderBottom: 'rgba(0,0,0,0.05) 1px solid'\n },\n inputRoot: {\n borderRadius: '4px'\n },\n menuButtonRoot: {\n padding: 0\n }\n});\n","import React, {memo, useCallback, useRef, useState} from 'react';\nimport {SearchInput, TenantsDropDownSelector} from '@reltio/components';\nimport {always, isEmpty, pipe, propEq, trim, when} from 'ramda';\nimport {DataTenant} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n onSearch: (searchText: string) => void;\n searchTenant: DataTenant;\n onChangeSearchTenant: (tenant: DataTenant) => void;\n entityTypeUri: string;\n};\n\nconst RightSideSearch = ({onSearch, searchTenant, onChangeSearchTenant, entityTypeUri}: Props) => {\n const styles = useStyles();\n const searchInputRef = useRef<HTMLInputElement>();\n const [currentSearchText, setCurrentSearchText] = useState<string>('');\n const handleSearch = useCallback(when(propEq('key', 'Enter'), pipe(always(currentSearchText), trim, onSearch)), [\n currentSearchText,\n onSearch\n ]);\n\n const handleChangeSearchText = useCallback(\n (newSearchText) => {\n setCurrentSearchText(newSearchText);\n if (isEmpty(newSearchText) && document.activeElement !== searchInputRef.current) {\n onSearch(newSearchText);\n }\n },\n [onSearch]\n );\n\n if (!onSearch) {\n return null;\n }\n\n return (\n <div className={styles.root}>\n <TenantsDropDownSelector\n entityTypeUri={entityTypeUri}\n selectedTenant={searchTenant}\n onChangeTenant={onChangeSearchTenant}\n />\n <SearchInput\n classes={{root: styles.inputRoot}}\n inputRef={searchInputRef}\n fullWidth\n height={40}\n autofocus={false}\n value={currentSearchText}\n onSearch={handleChangeSearchText}\n onKeyPress={handleSearch}\n />\n </div>\n );\n};\nexport default memo(RightSideSearch);\n","import React, {forwardRef} from 'react';\nimport {identity} from 'ramda';\nimport {Action} from './ActionsPanel';\n\ntype Props = {\n item: Action;\n onMenuClose?: () => void;\n};\nconst MenuItemRenderer = forwardRef(({item, onMenuClose = identity}: Props, ref: React.Ref<HTMLLIElement>) => {\n const {ActionButton, props} = item;\n return <ActionButton ref={ref} mode=\"menuItem\" onMenuClose={onMenuClose} {...props} />;\n});\n\nMenuItemRenderer.displayName = 'MenuItemRenderer';\n\nexport default MenuItemRenderer;\n","import React from 'react';\nimport {splitAt} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {ActionButtonMode, DropDownMenuButton, SmallIconButtonWithTooltip} from '@reltio/components';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport MenuItemRenderer from './MenuItemRenderer';\n\nexport type Action = {\n ActionButton: (props) => JSX.Element;\n show: boolean;\n props: Record<string, unknown>;\n};\n\ntype Props = {\n actions: Action[];\n numberOfButtons?: number;\n mode?: 'normal' | 'hover';\n actionButtonSize?: string;\n classes?: {\n actionButton: string;\n moreOptions: string;\n };\n onActionsMenuOpen?: () => void;\n onActionsMenuClose?: () => void;\n};\n\nexport const ActionsPanel = ({\n actions,\n numberOfButtons = 2,\n mode = 'normal',\n actionButtonSize,\n classes,\n onActionsMenuOpen,\n onActionsMenuClose\n}: Props) => {\n const [buttonActions, menuActions] = splitAt(numberOfButtons, actions);\n\n const buttonMode = mode === 'normal' ? ActionButtonMode.button : ActionButtonMode.iconButton;\n const buttonSize = mode === 'normal' ? 'MPlus' : 'S';\n\n return (\n <>\n {buttonActions.map(({ActionButton, props}, index) => (\n <ActionButton\n key={index}\n mode={buttonMode}\n className={classes?.actionButton}\n {...(actionButtonSize ? {size: actionButtonSize} : {})}\n {...props}\n />\n ))}\n {menuActions.length > 0 && (\n <DropDownMenuButton\n buttonComponent={SmallIconButtonWithTooltip}\n buttonProps={{\n icon: MoreVertIcon,\n size: buttonSize,\n tooltipTitle: i18n.text('More actions')\n }}\n className={classes?.moreOptions}\n menuId={'matches-view-actions'}\n menuItems={menuActions}\n onMenuOpen={onActionsMenuOpen}\n onMenuClose={onActionsMenuClose}\n MenuItemRenderer={MenuItemRenderer}\n />\n )}\n </>\n );\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n mainArea: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden'\n }\n}));\n","import {BasicTablePagination, LinearLoadIndicator, useDidUpdateEffect} from '@reltio/components';\nimport {\n Entity,\n getActionPermissionForMatch,\n getEntityUriFromMatchObject,\n Metadata,\n SearchFilter,\n PotentialMatchesPerspectiveConfig,\n DataTenant,\n SortingField,\n isDataTenantEntity\n} from '@reltio/mdm-sdk';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {profile} from '@reltio/mdm-module';\nimport {identity, isEmpty, pathEq, prop} from 'ramda';\nimport React, {memo, useCallback, useEffect, useMemo, useState} from 'react';\nimport {useReloadData} from '../../contexts/ReloadDataContext';\nimport {useFindEntities} from '../../hooks/useFindEntities';\nimport {useMatchesReducer} from '../../hooks/useMatchesReducer';\nimport {MergeButton, NotMatchButton, SetAMatchButton} from '../Actions';\nimport RightSidePanelHeader from '../RightSidePanelHeader';\nimport {ROWS_PER_PAGE_OPTIONS, DEFAULT_SORT_OPTIONS} from '../../helpers/sortHelpers';\nimport {useSortOptions} from '../../hooks/useSortOptions';\nimport {MatchItems} from '../MatchItems';\nimport {ActionButtonRendererProps} from '../../types/potentialMatchesTypes';\nimport RightSideSearch from './RightSideSearch/RightSideSearch';\nimport {ActionsPanel} from '../ActionsPanel/ActionsPanel';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n metadata: Metadata;\n filters: SearchFilter[];\n config: PotentialMatchesPerspectiveConfig;\n sorting: SortingField;\n onSorting: (value: SortingField) => void;\n};\n\nexport const FindMatchesView = memo(({entity, metadata, filters, sorting, onSorting, config}: Props) => {\n const styles = useStyles();\n const dispatch = useDispatch();\n const [actions, state] = useMatchesReducer();\n const {changeRowsPerPage, changePage, setSelectedItems, toggleSelect} = actions;\n const {page, rowsPerPage, selectedItems, isGlobalSpinnerActive} = state;\n const {uri: entityUri, type: entityType} = entity || {};\n const tenant = useSelector(mdmModule.selectors.getTenantObject);\n const [searchText, setSearchText] = useState<string>('');\n const [searchTenant, setSearchTenant] = useState<DataTenant>(tenant);\n\n const handleChangeSearchTenant = useCallback(\n (newSearchTenant) => {\n setSearchTenant(newSearchTenant);\n changePage(0);\n },\n [changePage]\n );\n\n const requestFilters: SearchFilter[] = useMemo(\n () =>\n [\n isEmpty(searchText)\n ? null\n : {\n filter: 'containsWordStartingWith',\n fieldName: 'attributes',\n values: [searchText]\n },\n {\n filter: 'equals',\n fieldName: 'type',\n values: [entityType]\n },\n {filter: 'not equals', fieldName: 'uri', values: [entityUri]},\n ...filters\n ].filter(identity),\n [entityType, entityUri, searchText, filters]\n );\n\n const sortOptions = useSortOptions(DEFAULT_SORT_OPTIONS, [], metadata, entityType);\n\n const {entities, total, findEntities} = useFindEntities({\n enabled: !!entityUri,\n entityType,\n filters: requestFilters,\n sorting,\n page,\n rowsPerPage,\n searchTenantId: searchTenant.id\n });\n\n const {setReloadHandler} = useReloadData();\n setReloadHandler(() => {\n findEntities();\n dispatch(profile.entity.actions.loadEntity({uri: entityUri}));\n });\n\n const resetPage = () => {\n changePage(0);\n };\n\n const resetSelected = useCallback(() => {\n setSelectedItems([]);\n }, [setSelectedItems]);\n const selectAll = useCallback(() => {\n setSelectedItems(entities);\n }, [setSelectedItems, entities]);\n\n useEffect(() => {\n const selected = selectedItems.map((item) => {\n const entity = entities.find(\n (entity) => getEntityUriFromMatchObject(entity) === getEntityUriFromMatchObject(item)\n );\n return entity ? entity : item;\n });\n setSelectedItems(selected);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [entities]);\n\n useDidUpdateEffect(() => {\n resetPage();\n resetSelected();\n }, [entityUri]);\n\n useDidUpdateEffect(() => {\n resetPage();\n }, [filters, searchText]);\n\n const actionButtonsRenderer = useCallback(\n ({hoveredMatch, buttonClassName, onActionsMenuOpen, onActionsMenuClose}: ActionButtonRendererProps) => {\n const {canMerge, canMark} = getActionPermissionForMatch(\n metadata,\n config,\n hoveredMatch.object,\n entity,\n hoveredMatch.matchRules\n );\n\n const entities = [hoveredMatch.object];\n const isDTEntity = isDataTenantEntity(hoveredMatch.object);\n\n const actions = [\n {\n ActionButton: MergeButton,\n show: canMerge,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: NotMatchButton,\n show: canMark,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: SetAMatchButton,\n show: canMark && !isDTEntity,\n props: {\n entity,\n entities\n }\n }\n ].filter(prop('show'));\n\n return (\n <ActionsPanel\n actions={actions}\n classes={{\n actionButton: buttonClassName,\n moreOptions: buttonClassName\n }}\n mode=\"hover\"\n numberOfButtons={3}\n onActionsMenuOpen={onActionsMenuOpen}\n onActionsMenuClose={onActionsMenuClose}\n />\n );\n },\n [entity, config, metadata]\n );\n\n const selectedCount = useMemo(() => {\n return entities\n .map((match) => selectedItems?.find(pathEq(['object', 'uri'], match.object.uri)))\n .filter(identity).length;\n }, [selectedItems, entities]);\n\n return (\n <div className={styles.mainArea}>\n <RightSidePanelHeader\n selectedCount={selectedCount}\n totalCount={total}\n totalOnPage={entities.length}\n sortOptions={sortOptions}\n sorting={sorting}\n onSorting={onSorting}\n onSelect={selectedCount ? resetSelected : selectAll}\n >\n <RightSideSearch\n searchTenant={searchTenant}\n onChangeSearchTenant={handleChangeSearchTenant}\n entityTypeUri={entityType}\n onSearch={setSearchText}\n />\n </RightSidePanelHeader>\n <MatchItems\n entityToMatch={entity}\n toggleSelect={toggleSelect}\n actionButtonsRenderer={actionButtonsRenderer}\n matches={entities}\n metadata={metadata}\n selectedItems={selectedItems}\n />\n <BasicTablePagination\n rowsPerPageOptions={ROWS_PER_PAGE_OPTIONS}\n count={total}\n page={page}\n onChangePage={changePage}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={changeRowsPerPage}\n />\n {isGlobalSpinnerActive && <LinearLoadIndicator />}\n </div>\n );\n});\n\nFindMatchesView.displayName = 'FindMatchesView';\n","import {useSafePromise} from '@reltio/components';\nimport {\n buildFilterQueryString,\n enrichEntityWithDataTenant,\n getFilteredEntities,\n getFilteredEntitiesFromDataTenant,\n getTotalFromDataTenant,\n getTotals,\n GlobalSearchRequestOptions,\n SearchFilter,\n SortingField\n} from '@reltio/mdm-sdk';\nimport {useCallback, useState, useEffect, useMemo} from 'react';\nimport {useViewStateActions} from '../contexts/ViewStateContext';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {map} from 'ramda';\n\ntype Props = {\n entityType: string;\n filters: SearchFilter[];\n sorting: SortingField;\n page: number;\n rowsPerPage: number;\n enabled: boolean;\n searchTenantId: string;\n};\n\nexport const useFindEntities = ({entityType, filters, sorting, page, rowsPerPage, enabled, searchTenantId}: Props) => {\n const {order, field} = sorting;\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const tenant = useSelector(mdmModule.selectors.getTenantObject);\n const {setGlobalSpinner} = useViewStateActions();\n const {activityFilter, globalFilter}: GlobalSearchRequestOptions =\n useSelector(mdmModule.selectors.getGlobalSearchRequestOptions) || {};\n const [total, setTotal] = useState(0);\n const [entities, setEntities] = useState([]);\n const safePromise = useSafePromise();\n const DEFAULT_SELECTION = ['uri', 'label', 'type', 'secondaryLabel', 'attributes', 'crosswalks'];\n const filterQuery: string = useMemo(() => buildFilterQueryString()(filters), [filters]);\n const findEntities = useCallback(\n () => {\n if (enabled) {\n setGlobalSpinner(true);\n const isDtss = searchTenantId !== tenant.id;\n const dtssProps = {\n customerTenant: tenant.id,\n dataTenant: searchTenantId,\n dtssPath\n };\n\n const entityRequestOptions = {\n offset: page * rowsPerPage,\n max: rowsPerPage,\n sort: field,\n order,\n select: DEFAULT_SELECTION.join(','),\n globalFilter,\n activityFilter\n };\n const entityRequest = isDtss\n ? getFilteredEntitiesFromDataTenant({\n filters,\n options: entityRequestOptions,\n ...dtssProps\n }).then(map(enrichEntityWithDataTenant(searchTenantId)))\n : getFilteredEntities(filters, entityRequestOptions);\n\n const totalRequestOption = {activityFilter, globalFilter};\n const totalRequest = isDtss\n ? getTotalFromDataTenant({\n filters,\n options: totalRequestOption,\n ...dtssProps\n })\n : getTotals(filters, totalRequestOption);\n\n safePromise(Promise.all([entityRequest, totalRequest]))\n .then((results) => {\n const [entities, totalResponse] = results;\n const {total} = totalResponse;\n const entityToMatchFormat = (entity) => ({object: entity});\n setEntities(entities.map(entityToMatchFormat));\n setTotal(total);\n })\n .finally(() => setGlobalSpinner(false));\n }\n },\n [\n entityType,\n filterQuery,\n field,\n order,\n page,\n rowsPerPage,\n enabled,\n activityFilter,\n globalFilter,\n searchTenantId,\n tenant\n ] // eslint-disable-line\n );\n useEffect(() => {\n findEntities();\n }, [findEntities]);\n\n return {entities, total, findEntities};\n};\n","import {useCallback, useEffect} from 'react';\nimport {useMatchesLoader} from '@reltio/components';\nimport {useViewStateActions} from '../contexts/ViewStateContext';\nimport {Entity, SortingField} from '@reltio/mdm-sdk';\n\ntype Params = {\n entity: Entity;\n enabled: boolean;\n page: number;\n filter: string;\n rowsPerPage: number;\n options: {\n showTransitiveMatches?: boolean;\n };\n sorting?: SortingField;\n rules?: string;\n};\n\nexport const useMatches = ({entity, filter, rules, sorting, page, rowsPerPage, options, enabled}: Params) => {\n const {setGlobalSpinner, setEntitiesMap} = useViewStateActions();\n const onStartLoading = useCallback(() => {\n setGlobalSpinner(true);\n }, [setGlobalSpinner]);\n const onFinishLoading = useCallback(() => {\n setGlobalSpinner(false);\n }, [setGlobalSpinner]);\n const {total, matches, entitiesMap, loadMatches} = useMatchesLoader({\n enabled,\n entity,\n filter,\n rules,\n onFinishLoading,\n onStartLoading,\n options,\n page,\n rowsPerPage,\n sorting,\n markMatchedValues: true\n });\n\n useEffect(() => {\n setEntitiesMap(entitiesMap);\n }, [setEntitiesMap, entitiesMap]);\n\n return {matches, total, entitiesMap, loadMatches};\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n dialogPaper: {\n height: '600px',\n maxWidth: '600px'\n },\n dialogTitle: {\n padding: '16px 16px 0'\n },\n titleText: {\n color: theme.palette.text.primary,\n fontSize: '18px',\n letterSpacing: 0,\n lineHeight: '21px'\n },\n path: {\n color: theme.palette.text.secondary,\n fontize: '13px',\n letterSpacing: 0,\n lineHeight: '15px',\n padding: '6px 0'\n },\n content: {\n padding: '8px 16px 0px',\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)'\n },\n attributeList: {\n paddingTop: '22px'\n }\n}));\n","import React, {useMemo, useCallback, useRef} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport {identity, isEmpty, pipe, pathOr} from 'ramda';\n\nimport {Typography as Typography} from '@material-ui/core';\nimport {Button as Button} from '@material-ui/core';\nimport {Dialog as Dialog} from '@material-ui/core';\nimport {DialogActions as DialogActions} from '@material-ui/core';\nimport {DialogContent as DialogContent} from '@material-ui/core';\nimport {DialogTitle as DialogTitle} from '@material-ui/core';\nimport {AttributesList, ConnectionRelationTypeSelector, PopupBoundariesContext} from '@reltio/components';\n\nimport {\n createRelation,\n Entity,\n getActivenessAttributes,\n getLabel,\n getRelationAttributesList,\n ModeTypes,\n validateConnectionRelation,\n Connection,\n Metadata,\n AttributeType,\n RecordAttributesType,\n PotentialMatchesPerspectiveConfig\n} from '@reltio/mdm-sdk';\nimport mdm, {profile} from '@reltio/mdm-module';\nimport {getRelationTypesFromConfig} from '../../helpers/relationsHelpers';\nimport {showAddRelationErrors} from '../../utils/errors';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n config: PotentialMatchesPerspectiveConfig;\n mainEntity?: Entity;\n currentEntity?: Entity;\n matchRules?: string[];\n open?: boolean;\n onClose: (relationUri: string) => void;\n};\n\nconst AddRelationDialog = ({config, mainEntity, currentEntity, matchRules, open, onClose = identity}: Props) => {\n const styles = useStyles();\n const dispatch = useDispatch();\n const metadata: Metadata = useSelector(mdm.selectors.getMetadata);\n const containerRef = useRef(null);\n\n const {relation = {}}: Connection =\n useSelector((state) => mdm.selectors.getRelationToAddByViewId(state, config.id)) || {};\n\n const {inRelations: inRelationTypes = [], outRelations: outRelationTypes = []} = useMemo(\n () => getRelationTypesFromConfig(metadata, config, mainEntity, currentEntity, matchRules),\n [config, mainEntity, currentEntity, matchRules, metadata]\n );\n\n const {relationUri, relationType = {}} = relation;\n const attributes: RecordAttributesType = pathOr({}, ['object', 'attributes'], relation);\n\n const relationAttrTypes: AttributeType[] = useMemo(() => getRelationAttributesList(metadata, relationType), [\n relationType,\n metadata\n ]);\n\n const attributeListEntity = useMemo(\n () => ({\n attributes,\n ...getActivenessAttributes(relation)\n }),\n [relation, attributes]\n );\n\n const viewId = config.id;\n\n const onRelationTypeChange = useCallback(\n pipe(profile.relations.actions.setRelationType(config.id, relationUri), dispatch),\n [config, relationUri, dispatch]\n );\n\n const onAddAttributes = useCallback(\n (params) => pipe(profile.actions.addAttributes, dispatch)(params.map((param) => ({...param, viewId}))),\n [viewId, dispatch]\n );\n\n const onChangeAttribute = useCallback(\n (params) => pipe(profile.actions.modifyAttribute, dispatch)({...params, viewId}),\n [viewId, dispatch]\n );\n\n const onDeleteAttribute = useCallback(\n (params) => pipe(profile.actions.removeAttribute, dispatch)({...params, viewId}),\n [viewId, dispatch]\n );\n\n const handleClose = useCallback(() => onClose(relationUri), [relationUri, onClose]);\n\n const resetErrors = useCallback(() => dispatch(profile.errors.actions.errorsSet([])), [dispatch]);\n\n const validate = useCallback(() => {\n const errors = validateConnectionRelation(metadata, {relation});\n dispatch(profile.errors.actions.errorsSet(errors));\n return errors.length === 0;\n }, [relation, metadata, dispatch]);\n\n const onCancel = useCallback(() => {\n resetErrors();\n handleClose();\n }, [resetErrors, handleClose]);\n\n const onAdd = () => {\n const {relationType, startDate, endDate} = relation;\n if (validate()) {\n createRelation({\n startEntityUri: mainEntity.uri,\n endEntityUri: currentEntity.uri,\n relationType,\n attributes: pathOr({}, ['object', 'attributes'], relation),\n startDate,\n endDate\n }).catch(showAddRelationErrors);\n handleClose();\n }\n };\n\n const title = `${getLabel(currentEntity.label)} \\u2192 ${getLabel(mainEntity.label)}`;\n\n const disabled = isEmpty(relationType);\n const boundariesElement = containerRef.current;\n const popupBoundariesValue = useMemo(\n () => ({\n element: boundariesElement,\n priority: ['top', 'bottom']\n }),\n [boundariesElement]\n );\n return (\n <Dialog open={open} fullWidth maxWidth=\"sm\" onClose={onCancel} classes={{paper: styles.dialogPaper}}>\n <DialogTitle disableTypography classes={{root: styles.dialogTitle}}>\n <Typography variant=\"subtitle1\" classes={{root: styles.titleText}}>\n {i18n.text('Add relationship')}\n </Typography>\n <Typography variant=\"body2\" classes={{root: styles.path}}>\n {title}\n </Typography>\n </DialogTitle>\n <DialogContent classes={{root: styles.content}} ref={containerRef}>\n <PopupBoundariesContext.Provider value={popupBoundariesValue}>\n <ConnectionRelationTypeSelector\n relation={relation}\n metadata={metadata}\n inRelationTypes={inRelationTypes}\n outRelationTypes={outRelationTypes}\n onChange={onRelationTypeChange}\n applyFirstByDefault={true}\n />\n <AttributesList\n className={styles.attributeList}\n attrTypes={relationAttrTypes}\n entity={attributeListEntity}\n showEmptyEditors={true}\n mode={ModeTypes.EDITING}\n parentUri={relationUri}\n onAddAttributes={onAddAttributes}\n onChangeAttribute={onChangeAttribute}\n onDeleteAttribute={onDeleteAttribute}\n />\n </PopupBoundariesContext.Provider>\n </DialogContent>\n <DialogActions>\n <Button onClick={onCancel}>{i18n.text('Cancel')}</Button>\n <Button disabled={disabled} color=\"primary\" onClick={onAdd}>\n {i18n.text('Add')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default AddRelationDialog;\n","import {assocPath, evolve, identity, propOr, filter, pipe, map} from 'ramda';\nimport {\n canCreateRelationBetweenEntities,\n generateNewRelationUri,\n getRulesConfig,\n getEntityType,\n getRelationType,\n inOutRelationsDeduplicator,\n Metadata,\n Entity,\n InOutRelation,\n Connection,\n PotentialMatchesPerspectiveConfig\n} from '@reltio/mdm-sdk';\n\nexport const getRelationTypesFromConfig = (\n metadata: Metadata,\n config: PotentialMatchesPerspectiveConfig,\n mainEntity: Entity,\n entity: Entity,\n matchRules: string[]\n): {\n inRelations: InOutRelation;\n outRelations: InOutRelation;\n} => {\n const {isNotDuplicatedInRelation, isNotDuplicatedOutRelation} = inOutRelationsDeduplicator();\n\n const setObjectTypes = (relation) =>\n pipe(\n assocPath(['startObject', 'objectType'], getEntityType(metadata, relation.startObject.objectTypeURI)),\n assocPath(['endObject', 'objectType'], getEntityType(metadata, relation.endObject.objectTypeURI))\n )(relation);\n\n const entityType = getEntityType(metadata, entity.type);\n const matchActionConfig = propOr({}, 'matchActions', config);\n const rulesConfig = getRulesConfig(matchActionConfig, entityType, matchRules);\n const [relationTypeUris] = rulesConfig.map(({createRelation}) => createRelation).filter(identity);\n return (\n evolve(\n {\n inRelations: pipe(\n filter(canCreateRelationBetweenEntities(metadata, entity, mainEntity)),\n map(getRelationType(metadata)),\n filter(isNotDuplicatedInRelation),\n map(setObjectTypes)\n ),\n outRelations: pipe(\n filter(canCreateRelationBetweenEntities(metadata, mainEntity, entity)),\n map(getRelationType(metadata)),\n filter(isNotDuplicatedOutRelation),\n map(setObjectTypes)\n )\n },\n relationTypeUris\n ) || {}\n );\n};\n\nexport const createNewConnection = (entity = {} as Entity): Connection => ({\n relation: {\n relationUri: generateNewRelationUri()\n },\n entity,\n isNew: true\n});\n","import React, {useCallback, useState} from 'react';\nimport {useDispatch} from 'react-redux';\nimport {pipe} from 'ramda';\nimport {profile} from '@reltio/mdm-module';\nimport {createNewConnection} from '../helpers/relationsHelpers';\nimport AddRelationDialog from '../components/AddRelationDialog/AddRelationDialog';\nimport {Entity, PotentialMatchesPerspectiveConfig} from '@reltio/mdm-sdk';\n\nexport const useAddRelationDialog = (config: PotentialMatchesPerspectiveConfig) => {\n const [showDialog, setShowDialog] = useState(false);\n const [relationDialogContent, setRelationDialogContent] = useState({});\n const dispatch = useDispatch();\n\n const openAddRelationDialog = useCallback(\n ({\n mainEntity,\n currentEntity,\n matchRules\n }: {\n mainEntity?: Entity;\n currentEntity?: Entity;\n matchRules?: string[];\n }) => {\n const newConnection = createNewConnection(currentEntity);\n pipe(profile.relations.actions.openRelationEditor(config.id), dispatch)(newConnection);\n setRelationDialogContent({mainEntity, currentEntity, matchRules});\n setShowDialog(true);\n },\n [config, dispatch]\n );\n\n const closeAddRelationDialog = useCallback(\n (relationUri: string) => {\n pipe(profile.relations.actions.closeRelationEditor, dispatch)(config.id, relationUri);\n setShowDialog(false);\n },\n [config.id, dispatch]\n );\n\n const AddRelationDialogRenderer = useCallback(() => {\n return showDialog ? (\n <AddRelationDialog\n config={config}\n open={showDialog}\n onClose={closeAddRelationDialog}\n {...relationDialogContent}\n />\n ) : null;\n }, [showDialog, config, closeAddRelationDialog, relationDialogContent]);\n\n return {showDialog, openAddRelationDialog, AddRelationDialogRenderer};\n};\n","export const DEFAULT_OPTIONS = {\n showTransitiveMatches: true\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n mainArea: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden'\n }\n}));\n","import React, {memo, useCallback, useMemo} from 'react';\nimport {partition, prop, identity, equals} from 'ramda';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {profile} from '@reltio/mdm-module';\nimport {\n BasicTablePagination,\n LinearLoadIndicator,\n useDidUpdateEffect,\n CollaborationContext,\n useCollaboration,\n EntitiesMapContext\n} from '@reltio/components';\nimport {\n Entity,\n getActionPermissionForMatch,\n isDataTenantEntity,\n Metadata,\n getPotentialMatchesObjectIdsForCollaboration,\n PotentialMatchesPerspectiveConfig,\n SearchFilter,\n buildFilterQueryString,\n isEmptyValue,\n SortingField\n} from '@reltio/mdm-sdk';\nimport {useReloadData} from '../../contexts/ReloadDataContext';\nimport {useMatches} from '../../hooks/useMatches';\nimport {useAddRelationDialog} from '../../hooks/useAddRelationDialog';\nimport {useMatchesReducer} from '../../hooks/useMatchesReducer';\nimport {CreateRelationButton, DCRReviewButton, MergeButton, NotMatchButton} from '../Actions';\nimport {\n ROWS_PER_PAGE_OPTIONS,\n MATCHES_SORT_OPTIONS,\n ADDITIONAL_SORT_OPTIONS_DATA,\n isMatchRuleFilter,\n buildRulesStringFormFilters\n} from '../../helpers/sortHelpers';\nimport {ActionsPanel} from '../ActionsPanel/ActionsPanel';\n\nimport RightSidePanelHeader from '../RightSidePanelHeader';\nimport {useSortOptions} from '../../hooks/useSortOptions';\nimport {MatchItems} from '../MatchItems';\nimport {ActionButtonRendererProps, MatchesOptions} from '../../types/potentialMatchesTypes';\nimport {DEFAULT_OPTIONS} from '../../constants/defaultOptions';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n metadata: Metadata;\n filters: SearchFilter[];\n options?: MatchesOptions;\n sorting: SortingField;\n onSorting: (value: SortingField) => void;\n config: PotentialMatchesPerspectiveConfig;\n};\n\nconst MatchesView = memo(\n ({entity, metadata, filters, options = DEFAULT_OPTIONS, sorting, onSorting, config}: Props) => {\n const styles = useStyles();\n const [actions, state] = useMatchesReducer();\n const dispatch = useDispatch();\n const {changeRowsPerPage, changePage, setSelectedItems, toggleSelect} = actions;\n const {page, rowsPerPage, selectedItems, isGlobalSpinnerActive} = state;\n const canStartProcessInstanceSearchQuery = useSelector(mdmModule.selectors.getCanUserStartProcessFromQuery);\n const workflowPath = useSelector(mdmModule.selectors.getWorkflowPath);\n const hasWorkflow = canStartProcessInstanceSearchQuery && !isEmptyValue(workflowPath);\n const {uri: entityUri, type: entityType} = entity || {};\n const {showDialog, openAddRelationDialog, AddRelationDialogRenderer} = useAddRelationDialog(config);\n\n const sortOptions = useSortOptions(MATCHES_SORT_OPTIONS, ADDITIONAL_SORT_OPTIONS_DATA, metadata, entityType);\n\n const [matchRulesFilters, regularFilters] = useMemo(\n (): [SearchFilter[], SearchFilter[]] => partition(isMatchRuleFilter)(filters),\n [filters]\n );\n\n const matchesFilter = useMemo((): string => buildFilterQueryString()(regularFilters), [regularFilters]);\n\n const {matches, total, entitiesMap, loadMatches} = useMatches({\n enabled: !!entityUri,\n entity,\n filter: matchesFilter,\n page,\n sorting,\n rowsPerPage,\n options,\n rules: buildRulesStringFormFilters(matchRulesFilters)\n });\n\n const {setReloadHandler} = useReloadData();\n setReloadHandler(() => {\n loadMatches();\n dispatch(profile.entity.actions.loadEntity({uri: entityUri}));\n });\n\n const resetPage = () => {\n changePage(0);\n };\n\n const resetSelected = useCallback(() => {\n setSelectedItems([]);\n }, [setSelectedItems]);\n const selectAll = useCallback(() => {\n setSelectedItems(matches);\n }, [setSelectedItems, matches]);\n\n useDidUpdateEffect(() => {\n resetPage();\n resetSelected();\n }, [entityUri, options]);\n\n const objectIds = useMemo(\n () => getPotentialMatchesObjectIdsForCollaboration(entityUri, Object.keys(entitiesMap)),\n [entityUri, entitiesMap]\n );\n const collaboration = useCollaboration({objectIds});\n\n const actionButtonsRenderer = useCallback(\n ({hoveredMatch, buttonClassName, onActionsMenuOpen, onActionsMenuClose}: ActionButtonRendererProps) => {\n const {canMerge, canAddRelation, canMark} = getActionPermissionForMatch(\n metadata,\n config,\n hoveredMatch.object,\n entity,\n hoveredMatch.matchRules\n );\n\n const entities = [hoveredMatch.object];\n const hasDTEntity = [...entities, entity].some(isDataTenantEntity);\n\n const actions = [\n {\n ActionButton: MergeButton,\n show: canMerge,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: NotMatchButton,\n show: canMark,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: DCRReviewButton,\n show: !hasDTEntity && hasWorkflow,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: CreateRelationButton,\n show: canAddRelation && !hasDTEntity,\n props: {\n mainEntity: entity,\n currentEntity: hoveredMatch.object,\n matchRules: hoveredMatch.matchRules,\n onClick: openAddRelationDialog\n }\n }\n ].filter(prop('show'));\n\n return (\n <ActionsPanel\n actions={actions}\n classes={{\n actionButton: buttonClassName,\n moreOptions: buttonClassName\n }}\n mode=\"hover\"\n numberOfButtons={2}\n onActionsMenuOpen={onActionsMenuOpen}\n onActionsMenuClose={onActionsMenuClose}\n />\n );\n },\n [entity, config, metadata, openAddRelationDialog, hasWorkflow]\n );\n\n const selectedCount = useMemo(() => {\n return matches.map((match) => selectedItems?.find(equals(match))).filter(identity).length;\n }, [selectedItems, matches]);\n\n return (\n <CollaborationContext.Provider value={collaboration}>\n <EntitiesMapContext.Provider value={entitiesMap}>\n <div className={styles.mainArea}>\n <RightSidePanelHeader\n selectedCount={selectedCount}\n totalCount={total}\n totalOnPage={matches.length}\n sortOptions={sortOptions}\n sorting={sorting}\n onSorting={onSorting}\n onSelect={selectedCount ? resetSelected : selectAll}\n />\n <MatchItems\n entityToMatch={entity}\n toggleSelect={toggleSelect}\n actionButtonsRenderer={actionButtonsRenderer}\n matches={matches}\n metadata={metadata}\n entitiesMap={entitiesMap}\n selectedItems={selectedItems}\n />\n <BasicTablePagination\n rowsPerPageOptions={ROWS_PER_PAGE_OPTIONS}\n count={total}\n page={page}\n onChangePage={changePage}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={changeRowsPerPage}\n />\n {isGlobalSpinnerActive && <LinearLoadIndicator />}\n </div>\n {showDialog && <AddRelationDialogRenderer />}\n </EntitiesMapContext.Provider>\n </CollaborationContext.Provider>\n );\n }\n);\n\nMatchesView.displayName = 'MatchesView';\n\nexport default MatchesView;\n","import {useState, useEffect, useCallback, useMemo} from 'react';\nimport {useSelector} from 'react-redux';\nimport {\n getNotMatch,\n getNotMatchesFromDataTenants,\n withDtssPotentialItems,\n getEntitiesMapForTransitiveMatches,\n GlobalSearchRequestOptions,\n addGlobalFilterToQuery,\n Match,\n NOT_MATCH,\n SortingField\n} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {usePagingSimulator, useSafePromise} from '@reltio/components';\nimport {useViewStateActions} from '../contexts/ViewStateContext';\n\ntype Params = {\n entityUri: string;\n enabled: boolean;\n page: number;\n filter: string;\n rowsPerPage: number;\n sorting?: SortingField;\n};\n\nexport const useNotMatches = ({entityUri, filter, sorting, page, rowsPerPage, enabled}: Params) => {\n const {order, field} = sorting || {};\n const {setGlobalSpinner} = useViewStateActions();\n const [total, setTotal] = useState(0);\n const [matches, setMatches] = useState<Match[]>([]);\n const [entitiesMap, setEntitiesMap] = useState({});\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const dataTenants = useSelector(mdmModule.selectors.getDataTenants);\n const {activityFilter, globalFilter}: GlobalSearchRequestOptions =\n useSelector(mdmModule.selectors.getGlobalSearchRequestOptions) || {};\n const dtssParams = useMemo(\n () => ({\n dtssPath,\n dataTenants,\n entity: {uri: entityUri},\n customerTenant: tenant,\n dtssRequest: getNotMatchesFromDataTenants\n }),\n [dtssPath, dataTenants, entityUri, tenant]\n );\n\n //eslint-disable-next-line react-hooks/exhaustive-deps\n const getNotMatchWithDtss = useCallback(withDtssPotentialItems(dtssParams, getNotMatch), [dtssParams]);\n\n const getNotMatchWithPaging = usePagingSimulator(getNotMatchWithDtss);\n\n const safePromise = useSafePromise();\n const markAsNotMatch = (record) => ({matchRules: [NOT_MATCH], ...record});\n const loadNotMatchesIfNeeded = useCallback(\n (force?: boolean) => {\n if (enabled) {\n setGlobalSpinner(true);\n safePromise(\n getNotMatchWithPaging({\n entityUri: entityUri,\n offset: page * rowsPerPage,\n max: rowsPerPage,\n filter: addGlobalFilterToQuery(globalFilter, filter) || '',\n sort: field,\n force,\n order,\n activeness: activityFilter\n })\n )\n .then((result) => {\n const {response, total, originalResponse} = result;\n setTotal(total);\n setMatches(response.map(markAsNotMatch));\n const notAMatchUris = response.map(({uri}) => uri);\n if (notAMatchUris.length > 0) {\n setEntitiesMap(getEntitiesMapForTransitiveMatches(originalResponse));\n }\n })\n .finally(() => setGlobalSpinner(false));\n }\n },\n [entityUri, filter, field, order, page, rowsPerPage, activityFilter, enabled, globalFilter] // eslint-disable-line\n );\n\n useEffect(() => {\n loadNotMatchesIfNeeded();\n }, [loadNotMatchesIfNeeded]);\n\n const loadNotMatches = useCallback(() => {\n loadNotMatchesIfNeeded(true);\n }, [loadNotMatchesIfNeeded]);\n\n return {matches, total, entitiesMap, loadNotMatches};\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n mainArea: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden'\n }\n}));\n","import React, {memo, useCallback, useMemo} from 'react';\nimport {prop, equals, identity} from 'ramda';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {\n BasicTablePagination,\n LinearLoadIndicator,\n useDidUpdateEffect,\n CollaborationContext,\n useCollaboration,\n EntitiesMapContext\n} from '@reltio/components';\nimport {\n Entity,\n getActionPermissionForMatch,\n isDataTenantEntity,\n Metadata,\n getPotentialMatchesObjectIdsForCollaboration,\n PotentialMatchesPerspectiveConfig,\n SearchFilter,\n buildFilterQueryString,\n isEmptyValue,\n SortingField\n} from '@reltio/mdm-sdk';\nimport mdmModule, {profile} from '@reltio/mdm-module';\nimport {useReloadData} from '../../contexts/ReloadDataContext';\nimport {useMatchesReducer} from '../../hooks/useMatchesReducer';\nimport {useNotMatches} from '../../hooks/useNotMatches';\nimport {DCRReviewButton, MergeButton, ReinstateMatchButton} from '../Actions';\nimport {ROWS_PER_PAGE_OPTIONS, DEFAULT_SORT_OPTIONS} from '../../helpers/sortHelpers';\nimport {ActionsPanel} from '../ActionsPanel/ActionsPanel';\nimport {ActionButtonRendererProps} from '../../types/potentialMatchesTypes';\n\nimport RightSidePanelHeader from '../RightSidePanelHeader';\nimport {useSortOptions} from '../../hooks/useSortOptions';\nimport {MatchItems} from '../MatchItems';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n metadata: Metadata;\n filters: SearchFilter[];\n config: PotentialMatchesPerspectiveConfig;\n sorting: SortingField;\n onSorting: (value: SortingField) => void;\n};\n\nexport const NotMatchView = memo(({entity, metadata, filters, sorting, onSorting, config}: Props) => {\n const styles = useStyles();\n const dispatch = useDispatch();\n const [actions, state] = useMatchesReducer();\n const {changeRowsPerPage, changePage, setSelectedItems, toggleSelect} = actions;\n const {page, rowsPerPage, selectedItems, isGlobalSpinnerActive} = state;\n const {uri: entityUri, type: entityType} = entity || {};\n const canStartProcessInstanceSearchQuery = useSelector(mdmModule.selectors.getCanUserStartProcessFromQuery);\n const workflowPath = useSelector(mdmModule.selectors.getWorkflowPath);\n const hasWorkflow = canStartProcessInstanceSearchQuery && !isEmptyValue(workflowPath);\n const {matches, total, entitiesMap, loadNotMatches} = useNotMatches({\n enabled: !!entityUri,\n entityUri,\n filter: buildFilterQueryString()(filters),\n page,\n rowsPerPage,\n sorting\n });\n const objectIds = useMemo(\n () => getPotentialMatchesObjectIdsForCollaboration(entityUri, Object.keys(entitiesMap)),\n [entityUri, entitiesMap]\n );\n const collaboration = useCollaboration({objectIds});\n\n const sortOptions = useSortOptions(DEFAULT_SORT_OPTIONS, [], metadata, entityType);\n\n const {setReloadHandler} = useReloadData();\n setReloadHandler(() => {\n loadNotMatches();\n dispatch(profile.entity.actions.loadEntity({uri: entityUri}));\n });\n\n const resetPage = () => {\n changePage(0);\n };\n\n const resetSelected = useCallback(() => {\n setSelectedItems([]);\n }, [setSelectedItems]);\n const selectAll = useCallback(() => {\n setSelectedItems(matches);\n }, [setSelectedItems, matches]);\n\n useDidUpdateEffect(() => {\n resetPage();\n resetSelected();\n }, [entityUri]);\n\n const actionButtonsRenderer = useCallback(\n ({hoveredMatch, buttonClassName, onActionsMenuOpen, onActionsMenuClose}: ActionButtonRendererProps) => {\n const {canMerge, canMark} = getActionPermissionForMatch(\n metadata,\n config,\n hoveredMatch.object,\n entity,\n hoveredMatch.matchRules\n );\n const entities = [hoveredMatch.object];\n const hasDTEntity = [...entities, entity].some(isDataTenantEntity);\n\n const actions = [\n {\n ActionButton: MergeButton,\n show: canMerge,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: ReinstateMatchButton,\n show: canMark,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: DCRReviewButton,\n show: !hasDTEntity && hasWorkflow,\n props: {\n entity,\n entities\n }\n }\n ].filter(prop('show'));\n\n return (\n <ActionsPanel\n actions={actions}\n classes={{\n actionButton: buttonClassName,\n moreOptions: buttonClassName\n }}\n mode=\"hover\"\n numberOfButtons={2}\n onActionsMenuOpen={onActionsMenuOpen}\n onActionsMenuClose={onActionsMenuClose}\n />\n );\n },\n [entity, config, metadata, hasWorkflow]\n );\n\n const selectedCount = useMemo(() => {\n return matches.map((match) => selectedItems?.find(equals(match))).filter(identity).length;\n }, [selectedItems, matches]);\n\n return (\n <CollaborationContext.Provider value={collaboration}>\n <EntitiesMapContext.Provider value={entitiesMap}>\n <div className={styles.mainArea}>\n <RightSidePanelHeader\n selectedCount={selectedCount}\n totalCount={total}\n totalOnPage={matches.length}\n sortOptions={sortOptions}\n sorting={sorting}\n onSorting={onSorting}\n onSelect={selectedCount ? resetSelected : selectAll}\n />\n <MatchItems\n entityToMatch={entity}\n toggleSelect={toggleSelect}\n actionButtonsRenderer={actionButtonsRenderer}\n matches={matches}\n metadata={metadata}\n selectedItems={selectedItems}\n />\n <BasicTablePagination\n rowsPerPageOptions={ROWS_PER_PAGE_OPTIONS}\n count={total}\n page={page}\n onChangePage={changePage}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={changeRowsPerPage}\n />\n {isGlobalSpinnerActive && <LinearLoadIndicator />}\n </div>\n </EntitiesMapContext.Provider>\n </CollaborationContext.Provider>\n );\n});\n\nNotMatchView.displayName = 'NotMatchView';\n","import {Entity, Metadata, PotentialMatchesPerspectiveConfig, SearchFilter, SortingField} from '@reltio/mdm-sdk';\nimport React from 'react';\nimport {UsersContext, useUsers} from '@reltio/components';\nimport {ActivePanel} from '../../constants/views';\nimport FindMatchesView from '../FindMatchesView';\nimport {MatchesView} from '../MatchesView';\nimport NotMatchView from '../NotMatchView';\nimport {MatchesOptions} from '../../types/potentialMatchesTypes';\n\ntype Props = {\n entity: Entity;\n metadata: Metadata;\n filters: SearchFilter[];\n sorting: SortingField;\n onSorting: (value: SortingField) => void;\n activeView: ActivePanel;\n config: PotentialMatchesPerspectiveConfig;\n options?: MatchesOptions;\n};\n\nexport const Content = ({entity, metadata, filters, options, sorting, onSorting, config, activeView}: Props) => {\n const users = useUsers();\n\n const render = () => {\n switch (activeView) {\n case ActivePanel.PotentialMatches:\n return (\n <MatchesView\n entity={entity}\n metadata={metadata}\n filters={filters}\n options={options}\n config={config}\n sorting={sorting}\n onSorting={onSorting}\n />\n );\n case ActivePanel.FindMatches:\n return (\n <FindMatchesView\n entity={entity}\n metadata={metadata}\n filters={filters}\n config={config}\n sorting={sorting}\n onSorting={onSorting}\n />\n );\n case ActivePanel.NotAMatch:\n return (\n <NotMatchView\n entity={entity}\n metadata={metadata}\n filters={filters}\n config={config}\n sorting={sorting}\n onSorting={onSorting}\n />\n );\n default:\n return <div />;\n }\n };\n\n return <UsersContext.Provider value={users}>{render()}</UsersContext.Provider>;\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n input: {\n margin: 0,\n borderRadius: '4px',\n width: '100%',\n paddingTop: 0,\n paddingBottom: 0\n }\n});\n","import React, {useCallback, useMemo} from 'react';\nimport {\n MatchRulesSelector,\n SourceSystemsSelector,\n AttributesValuesEditor,\n AttributeFiltersComponentProps\n} from '@reltio/components';\nimport {isMatchRuleAttrType, isSourceSystemAttrType, SearchFilter, MatchRulesAttrNames} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\ntype RowData = AttributeFiltersComponentProps['rowData'];\n\nexport const ValuesEditor = ({rowData, rowContext}: AttributeFiltersComponentProps) => {\n const styles = useStyles();\n const {values = [], attribute: {attrType, fieldName = null} = {}, filter, id} = (rowData || {}) as RowData;\n const {changeFilter} = rowContext;\n const {entityType} = rowContext;\n\n const changeValue = useCallback(\n (newValues: SearchFilter['values']) => {\n const newFilter: SearchFilter = {\n fieldName,\n filter,\n values: newValues\n };\n\n changeFilter(newFilter, id);\n },\n [changeFilter, id, fieldName, filter]\n );\n\n const TextFieldProps = useMemo(\n () => ({\n InputProps: {\n classes: {\n root: styles.input\n }\n }\n }),\n [styles]\n );\n\n const commonProps = {\n values: values as string[],\n onChange: changeValue,\n TextFieldProps,\n fullWidth: true\n };\n\n if (isMatchRuleAttrType(attrType)) {\n return (\n <MatchRulesSelector {...commonProps} name={attrType.name as MatchRulesAttrNames} entityType={entityType} />\n );\n } else if (isSourceSystemAttrType(attrType)) {\n return <SourceSystemsSelector {...commonProps} />;\n } else {\n return <AttributesValuesEditor rowContext={rowContext} rowData={rowData} />;\n }\n};\n","import React from 'react';\nimport capitalize from '@material-ui/core/utils/capitalize';\nimport {AttributesFilterSelector, AttributeFiltersComponentProps} from '@reltio/components';\nimport {FilterOptions, getFilterOptionLabel, isMatchRuleAttrType} from '@reltio/mdm-sdk';\n\ntype RowData = AttributeFiltersComponentProps['rowData'];\n\ntype Props = AttributeFiltersComponentProps & {textFieldInputRef: React.MutableRefObject<HTMLInputElement>};\n\nexport const FilterSelector = (props: Props) => {\n const {rowData} = props;\n const {attribute: {attrType} = {}} = (rowData || {}) as RowData;\n const options = isMatchRuleAttrType(attrType)\n ? [FilterOptions.EQUALS].map((value) => ({value, label: capitalize(getFilterOptionLabel(value))}))\n : null;\n\n return <AttributesFilterSelector {...props} options={options} />;\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n divider: {\n marginBottom: '14px',\n marginRight: '16px',\n background: 'rgba(0, 0, 0, 0.121569)'\n },\n optionLabel: {\n fontSize: '13px',\n paddingLeft: '10px'\n }\n});\n","import React, {useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {FormControlLabel as FormControlLabel} from '@material-ui/core';\nimport {Divider as Divider} from '@material-ui/core';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport {AttributesFiltersButton} from '@reltio/components';\nimport {AttributeType, buildFilterQueryString, SearchFilter} from '@reltio/mdm-sdk';\nimport {FilterSelector} from '../FilterSelector/FilterSelector';\nimport {ValuesEditor} from '../ValuesEditor/ValuesEditor';\nimport {MatchesOptions} from '../../../types/potentialMatchesTypes';\n\nimport {useStyles} from './styles';\n\nconst potentialMatchesComponents = {\n FilterSelector,\n ValuesEditor\n};\n\ntype Props = {\n filters: SearchFilter[];\n options: MatchesOptions;\n onChange: (filters: SearchFilter[], option: MatchesOptions) => void;\n attributeTypes: AttributeType[];\n};\n\nexport const MatchesAttributesFiltersButton = ({filters, onChange, attributeTypes, options}: Props) => {\n const styles = useStyles();\n const [showTransitiveMatches, setShowTransitiveMatches] = useState(options.showTransitiveMatches);\n return (\n <AttributesFiltersButton\n filters={filters}\n onChange={(filters) => onChange(filters, {showTransitiveMatches})}\n attributeTypes={attributeTypes}\n components={potentialMatchesComponents}\n onTogglePopup={(open) => {\n if (open) {\n setShowTransitiveMatches(options.showTransitiveMatches);\n }\n }}\n isFiltersApplied={!!buildFilterQueryString()(filters) || !options.showTransitiveMatches}\n >\n <FormControlLabel\n classes={{label: styles.optionLabel}}\n control={\n <Checkbox\n checked={showTransitiveMatches}\n onChange={(e) => setShowTransitiveMatches(e.target.checked)}\n color=\"primary\"\n />\n }\n label={i18n.text('Show transitive matches')}\n />\n <Divider light className={styles.divider} />\n </AttributesFiltersButton>\n );\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n wrapper: {\n display: 'flex',\n overflow: 'hidden',\n marginLeft: 'auto',\n flexShrink: 0\n }\n});\n","import React, {useCallback, useMemo, useState, memo, useEffect} from 'react';\nimport {pluck, propOr} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {useSelector} from 'react-redux';\nimport {AttributesFiltersButton, SideButtonsPanel, SidePanel} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n CrosswalksAttrTypes,\n EntityAttrTypes,\n getEntityType,\n hasMatchRulesWithoutML,\n hasMlMatchRule,\n isReadableAttribute,\n MatchRulesAttrTypes,\n Order,\n PotentialMatchesPerspectiveConfig,\n SearchFilter,\n SortingField\n} from '@reltio/mdm-sdk';\nimport PotentialMatchesIcon from './icons/potential-matches-icon.svg';\nimport FindMatchesIcon from './icons/find-matches-icon.svg';\nimport NotAMatchIcon from './icons/not-a-match-icon.svg';\nimport {ActivePanel} from '../../constants/views';\nimport Content from '../../components/Content';\nimport {RightSideHeaderContext} from '../../contexts/RightSideHeaderContext';\nimport {ValuesEditor} from './ValuesEditor/ValuesEditor';\nimport {MatchesOptions, PotentialMatchesSavedState} from '../../types/potentialMatchesTypes';\nimport {MatchesAttributesFiltersButton} from './MatchesAttributesFiltersButton/MatchesAttributesFiltersButton';\n\nimport {ADDITIONAL_SORT_OPTIONS_DATA, DEFAULT_SORT_OPTIONS, getSortOptionIdFromData} from '../../helpers/sortHelpers';\nimport {DEFAULT_OPTIONS} from '../../constants/defaultOptions';\n\nimport {useStyles} from './styles';\n\nconst DEFAULT_PANEL_WIDTH = 480;\n\nconst sourceSystemsComponents = {\n ValuesEditor\n};\n\ntype Props = {\n config: PotentialMatchesPerspectiveConfig;\n isLoaded: boolean;\n savedState: PotentialMatchesSavedState;\n onUpdateSavedState: (stateToSave: PotentialMatchesSavedState) => void;\n};\n\nexport const RightSidePanel = memo(({config, isLoaded, savedState, onUpdateSavedState}: Props) => {\n const styles = useStyles();\n const [matchesFilters, setMatchesFilters] = useState<SearchFilter[]>([]);\n const [matchesOptions, setMatchesOptions] = useState<MatchesOptions>(DEFAULT_OPTIONS);\n const [findMatchesFilters, setFindMatchesFilters] = useState<SearchFilter[]>([]);\n const [notMatchFilters, setNotMatchFilters] = useState<SearchFilter[]>([]);\n const [matchesSorting, setMatchesSorting] = useState<SortingField>({\n field: ADDITIONAL_SORT_OPTIONS_DATA[0].id,\n order: Order.desc\n });\n const [findMatchesSorting, setFindMatchesSorting] = useState<SortingField>({\n field: getSortOptionIdFromData(DEFAULT_SORT_OPTIONS)[0],\n order: Order.asc\n });\n const [notMatchSorting, setNotMatchSorting] = useState<SortingField>({\n field: getSortOptionIdFromData(DEFAULT_SORT_OPTIONS)[0],\n order: Order.asc\n });\n\n const [active, setActive] = useState<ActivePanel>(null);\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const entity = useSelector(mdmModule.selectors.getEntity);\n\n const toggleActive = useCallback((newId: ActivePanel) => {\n setActive((active) => (active === newId ? null : newId));\n }, []);\n const resetActive = useCallback(() => {\n setActive(null);\n }, []);\n const isOpen = active !== null;\n\n const entityType = getEntityType(metadata, entity?.type);\n\n const getAttributeTypes = (entityType) =>\n (entityType.attributes || []).concat(entityType.analyticsAttributes || []).filter(isReadableAttribute);\n\n const attributeTypes = useMemo(() => getAttributeTypes(entityType), [entityType]);\n\n const matchRulesAttributes = useMemo(() => {\n const matchRulesAttributes = [\n {...MatchRulesAttrTypes.matchRules, check: hasMatchRulesWithoutML},\n {...MatchRulesAttrTypes.MLRecommendedMatch, check: hasMlMatchRule}\n ];\n\n return matchRulesAttributes.reduce((attributes, {check, ...attrType}) => {\n check(entityType) && attributes.push(attrType);\n return attributes;\n }, []);\n }, [entityType]);\n\n const potentialMatchesAttributeTypes = useMemo(\n () => [...matchRulesAttributes, ...attributeTypes],\n [attributeTypes, matchRulesAttributes]\n );\n\n const findMatchesAttributeTypes = useMemo(\n () => [EntityAttrTypes.id, CrosswalksAttrTypes.sourceSystems, ...attributeTypes],\n [attributeTypes]\n );\n\n const onChangeMatchesFilters = (matchesFilters: SearchFilter[], options: MatchesOptions) => {\n setMatchesOptions(options);\n setMatchesFilters(matchesFilters);\n };\n\n const elements = useMemo(\n () => [\n {\n buttonProps: {\n id: ActivePanel.PotentialMatches,\n icon: PotentialMatchesIcon,\n tooltipTitle: i18n.text('Potential Matches')\n },\n headerProps: {\n mainTitle: i18n.text('Potential Matches'),\n rightContent: (\n <MatchesAttributesFiltersButton\n filters={matchesFilters}\n onChange={onChangeMatchesFilters}\n attributeTypes={potentialMatchesAttributeTypes}\n options={matchesOptions}\n />\n )\n },\n filters: matchesFilters,\n options: matchesOptions,\n sorting: matchesSorting,\n onSorting: setMatchesSorting\n },\n {\n buttonProps: {\n id: ActivePanel.FindMatches,\n icon: FindMatchesIcon,\n tooltipTitle: i18n.text('Find Matches')\n },\n headerProps: {\n mainTitle: i18n.text('Find Matches'),\n rightContent: (\n <AttributesFiltersButton\n filters={findMatchesFilters}\n onChange={setFindMatchesFilters}\n attributeTypes={findMatchesAttributeTypes}\n components={sourceSystemsComponents}\n />\n )\n },\n filters: findMatchesFilters,\n sorting: findMatchesSorting,\n onSorting: setFindMatchesSorting\n },\n {\n buttonProps: {\n id: ActivePanel.NotAMatch,\n icon: NotAMatchIcon,\n tooltipTitle: i18n.text('Not a Match')\n },\n headerProps: {\n mainTitle: i18n.text('Not a Match'),\n rightContent: (\n <AttributesFiltersButton\n filters={notMatchFilters}\n onChange={setNotMatchFilters}\n attributeTypes={attributeTypes}\n />\n )\n },\n filters: notMatchFilters,\n sorting: notMatchSorting,\n onSorting: setNotMatchSorting\n }\n ],\n [\n matchesFilters,\n matchesOptions,\n findMatchesFilters,\n notMatchFilters,\n potentialMatchesAttributeTypes,\n findMatchesAttributeTypes,\n matchesSorting,\n findMatchesSorting,\n notMatchSorting,\n attributeTypes\n ]\n );\n\n const headerProps = useMemo(\n () => ({...elements[active]?.headerProps, onClose: resetActive}),\n [resetActive, active, elements]\n );\n\n const {sorting, filters, options, onSorting} = elements[active] || {};\n\n useEffect(() => {\n if (!isLoaded) return;\n const showSidePanel = propOr(true, 'showSidePanel')(savedState);\n setActive(showSidePanel ? ActivePanel.PotentialMatches : null);\n }, [isLoaded]);\n\n useEffect(() => {\n if (!isLoaded) return;\n onUpdateSavedState({showSidePanel: active !== null});\n }, [active]); // eslint-disable-line\n\n return (\n <div className={styles.wrapper}>\n <SidePanel open={isOpen} width={DEFAULT_PANEL_WIDTH}>\n <RightSideHeaderContext.Provider value={headerProps}>\n <Content\n config={config}\n entity={entity}\n filters={filters}\n options={options}\n sorting={sorting}\n onSorting={onSorting}\n metadata={metadata}\n activeView={active}\n />\n </RightSideHeaderContext.Provider>\n </SidePanel>\n <SideButtonsPanel\n buttonsProps={pluck('buttonProps', elements)}\n onButtonClick={toggleActive}\n activeIndexId={active}\n />\n </div>\n );\n});\n\nRightSidePanel.displayName = 'RightSidePanel';\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(() => ({\n button: {\n minWidth: '90px',\n padding: '8px 12px'\n }\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {ModeSwitcher} from '@reltio/components';\n\nimport useStyles from './styles';\nimport ViewColumnRoundedIcon from '@material-ui/icons/ViewColumnRounded';\nimport TableRowsOutlinedIcon from '@material-ui/icons/TableChartOutlined';\nimport {useViewState, useViewStateActions} from '../../contexts/ViewStateContext';\nimport {ComparisonViewMode} from '../../constants/views';\nimport {MAX_PROFILES_TO_COMPARE} from '../../constants/views';\n\ntype Mode = {\n id: ComparisonViewMode;\n tooltipTitle: string;\n title: string;\n Icon: React.ElementType;\n disabled?: boolean;\n};\n\nconst MODES: Mode[] = [\n {\n id: ComparisonViewMode.COLUMNS,\n tooltipTitle: i18n.text('Column'),\n title: i18n.text('Column'),\n Icon: ViewColumnRoundedIcon\n },\n {\n id: ComparisonViewMode.TABLE,\n tooltipTitle: i18n.text('Table'),\n title: i18n.text('Table'),\n Icon: TableRowsOutlinedIcon\n }\n];\n\ntype Props = {\n className?: string;\n};\n\nconst ComparisonViewModeSwitcher = ({className}: Props) => {\n const styles = useStyles();\n const {comparisonViewMode, selectedItems} = useViewState();\n const {setComparisonViewMode} = useViewStateActions();\n const isTableOnly = selectedItems.length > MAX_PROFILES_TO_COMPARE;\n const getMode = (baseMode: Mode) =>\n baseMode.id === ComparisonViewMode.COLUMNS\n ? {\n ...baseMode,\n disabled: isTableOnly,\n tooltipTitle: isTableOnly\n ? i18n.text('Column view supports maximum ${maxProfiles} profiles', {\n maxProfiles: MAX_PROFILES_TO_COMPARE\n })\n : baseMode.tooltipTitle\n }\n : baseMode;\n return (\n <ModeSwitcher\n className={className}\n classes={{button: styles.button}}\n modes={MODES.map(getMode)}\n modeId={comparisonViewMode}\n onChange={setComparisonViewMode}\n />\n );\n};\n\nexport default ComparisonViewModeSwitcher;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n header: {\n padding: '0 8px 0 16px',\n backgroundColor: '#fff',\n '& $splitter': {\n height: '32px',\n marginRight: '16px',\n marginLeft: '4px',\n color: 'rgba(0, 0, 0, 0.12)'\n }\n },\n title: {\n fontSize: '16px',\n fontWeight: 400,\n lineHeight: '24px',\n letterSpacing: '0.15px',\n color: theme.palette.text.primary\n },\n clearAllButton: {\n marginLeft: '16px'\n },\n mergeButton: {\n marginRight: '12px'\n },\n total: {\n color: theme.palette.text.secondary\n },\n splitter: {},\n actionSplitter: {\n height: '32px',\n margin: '0 8px',\n color: 'rgba(0, 0, 0, 0.12)'\n }\n}));\n","import React, {useCallback, useMemo} from 'react';\nimport i18n from 'ui-i18n';\nimport {prop, map, not} from 'ramda';\nimport {useSelector} from 'react-redux';\nimport mdm from '@reltio/mdm-module';\nimport {BasicViewHeader, ColumnsSettings, DropDownMenuItem, SettingsMenu, Spacer} from '@reltio/components';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Button as Button} from '@material-ui/core';\nimport {\n getActionPermissionForMatches,\n Entity,\n Metadata,\n isDataTenantEntity,\n PotentialMatchesPerspectiveConfig\n} from '@reltio/mdm-sdk';\nimport {DCRReviewButton, MergeButton, NotMatchButton} from '../Actions';\nimport {ActionsPanel} from '../ActionsPanel/ActionsPanel';\nimport ComparisonViewModeSwitcher from '../ComparisonViewModeSwitcher/ComparisonViewModeSwitcher';\nimport {useViewState, useViewStateActions} from '../../contexts/ViewStateContext';\nimport {GroupedColumnData} from '../../types/potentialMatchesTypes';\nimport {useStyles} from './styles';\nimport {Divider as Divider} from '@material-ui/core';\n\ntype Props = {\n config: PotentialMatchesPerspectiveConfig;\n columnsData: GroupedColumnData[];\n selectedColumns: string[];\n onChangeColumns: (columns: string[]) => void;\n showNonOv: boolean;\n onChangeShowNonOv: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nconst getEntityObjects = map(prop('object'));\n\nexport const TableHeader = ({\n config,\n columnsData,\n selectedColumns,\n onChangeColumns,\n showNonOv,\n onChangeShowNonOv\n}: Props) => {\n const styles = useStyles();\n const entity: Entity = useSelector(mdm.selectors.getEntity);\n const metadata: Metadata = useSelector(mdm.selectors.getMetadata);\n\n const {selectedItems, limitSelection} = useViewState();\n const {setSelectedItems} = useViewStateActions();\n\n const entities = getEntityObjects(selectedItems);\n const {canMerge, canMark} = getActionPermissionForMatches(metadata, config, entity, selectedItems);\n const hasDTEntity = [...entities, entity].some(isDataTenantEntity);\n\n const actions = useMemo(\n () =>\n [\n {\n ActionButton: MergeButton,\n show: canMerge,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: NotMatchButton,\n show: canMark,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: DCRReviewButton,\n show: !hasDTEntity,\n props: {\n entity,\n entities\n }\n }\n ].filter(prop('show')),\n [canMark, canMerge, entity, entities, hasDTEntity]\n );\n\n const hasSelectedItems = selectedItems.length !== 0;\n\n const handleClearSelection = () => {\n setSelectedItems([]);\n };\n\n const handleToggleShowOvValue = useCallback(() => {\n onChangeShowNonOv(not);\n }, [onChangeShowNonOv]);\n const settingItems = useMemo<Array<DropDownMenuItem>>(() => {\n return [\n {\n selected: !showNonOv,\n selectable: true,\n text: i18n.text('Show only OV'),\n onClick: handleToggleShowOvValue,\n id: 'showNonOv'\n }\n ];\n }, [handleToggleShowOvValue, showNonOv]);\n return (\n <BasicViewHeader title={''} classes={{root: styles.header}}>\n <Typography className={styles.title}>\n <span>{i18n.text('Match Review')}</span>\n {hasSelectedItems && (\n <span className={styles.total}>\n {' '}\n ({selectedItems.length}\n {limitSelection && '/' + limitSelection})\n </span>\n )}\n </Typography>\n {hasSelectedItems && (\n <Button onClick={handleClearSelection} className={styles.clearAllButton} color=\"primary\">\n {i18n.text('Clear All')}\n </Button>\n )}\n <Spacer />\n {hasSelectedItems && (\n <>\n <ActionsPanel actions={actions} numberOfButtons={2} />\n <Divider orientation={'vertical'} classes={{vertical: styles.actionSplitter}} />\n </>\n )}\n <SettingsMenu items={settingItems} menuId=\"matches-view-settings\" />\n <ColumnsSettings\n columnsData={columnsData}\n selectedColumns={selectedColumns}\n onChangeColumns={onChangeColumns}\n />\n <Divider orientation=\"vertical\" classes={{vertical: styles.splitter}} />\n <ComparisonViewModeSwitcher />\n </BasicViewHeader>\n );\n};\n","import React from 'react';\n\nexport const ExpandedContext = React.createContext<{\n expandedMap: {\n [attrTypeUri: string]: boolean;\n };\n onExpandType: (attrTypeUri: string) => void;\n }>({\n expandedMap: {},\n onExpandType: () => {}\n });\n\nExpandedContext.displayName = 'ExpandedContext';\n","import React, {useContext, forwardRef, ComponentType} from 'react';\nimport {AttributeType} from '@reltio/mdm-sdk';\n\nimport {ExpandedContext} from './ExpandedContext';\n\ntype Props = {\n attributeType: AttributeType;\n};\n\nconst withExpanded = <P extends Props>(Component: ComponentType<P>) => {\n const WithExpanded = forwardRef((componentProps: P, ref) => {\n const {attributeType} = componentProps;\n const {expandedMap} = useContext(ExpandedContext);\n const expanded = expandedMap[attributeType.uri];\n return <Component {...componentProps} expanded={expanded} ref={ref} />;\n });\n\n WithExpanded.displayName = 'WithExpanded';\n return WithExpanded;\n};\n\nexport default withExpanded;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const matchedAttributeBackground = 'rgba(140, 193, 82, 0.12)';\n\nexport const useStyles = makeStyles({\n complexAttributesHeadRenderer: {\n height: '100%',\n width: '100%',\n display: 'flex',\n alignItems: 'flex-start'\n },\n complexAttributesHeadLabel: {\n flex: 1,\n marginLeft: '5px'\n },\n arrowButton: {\n cursor: 'pointer',\n marginLeft: '-3px'\n },\n attribute: {\n whiteSpace: 'pre-wrap'\n },\n matchedAttribute: {\n fontWeight: 500,\n position: 'relative',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: '-1000px',\n top: 0,\n width: '5000px',\n height: '100%',\n background: matchedAttributeBackground,\n pointerEvents: 'none'\n }\n }\n});\n","import {makeStyles} from '@material-ui/core/styles';\nimport {matchedAttributeBackground} from '../styles';\n\nexport const useStyles = makeStyles({\n badge: {\n borderRadius: '50%',\n background: matchedAttributeBackground,\n fontWeight: 500,\n height: '20px',\n width: '20px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n alignSelf: 'flex-start',\n marginBottom: '2px',\n marginTop: '-2px'\n }\n});\n","import React, {useContext} from 'react';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport {areOneHierarchyUris, ComplexAttributeValue} from '@reltio/mdm-sdk';\nimport {HighlightedValuesContext} from '@reltio/components';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeValue: ComplexAttributeValue;\n};\n\nconst MatchedValuesCounter = ({attributeValue}: Props) => {\n const styles = useStyles();\n const {highlightedValuesUris = []} = useContext(HighlightedValuesContext);\n const count = highlightedValuesUris.filter((uri) => areOneHierarchyUris(uri, attributeValue.uri)).length;\n return count > 0 ? (\n <Tooltip title={count === 1 ? i18n.text('${count} match', {count}) : i18n.text('${count} matches', {count})}>\n <div className={styles.badge}>{count}</div>\n </Tooltip>\n ) : null;\n};\n\nexport default MatchedValuesCounter;\n","import React, {useMemo} from 'react';\nimport {HighlightedValuesContext, ReadOnlyAttributeValuesBlock} from '@reltio/components';\nimport {AttributeType, AttributeValue} from '@reltio/mdm-sdk';\nimport withExpanded from '../withExpanded';\nimport MatchedValuesCounter from './MatchedValuesCounter/MatchedValuesCounter';\n\nimport {useStyles} from './styles';\n\nconst ExpandableAttributeValuesBlock = withExpanded(\n ReadOnlyAttributeValuesBlock\n) as typeof ReadOnlyAttributeValuesBlock;\n\ntype Props = {\n value: {\n attributeType: AttributeType;\n attributeValues: AttributeValue[];\n matchedValuesUris?: string[];\n showNonOv?: boolean;\n };\n};\n\nexport const AttributesRenderer = ({value: {attributeType, attributeValues, matchedValuesUris, showNonOv}}: Props) => {\n const styles = useStyles();\n const highlightedValuesContextValue = useMemo(\n () => ({highlightedValuesUris: matchedValuesUris, highlightedClassName: styles.matchedAttribute}),\n [matchedValuesUris, styles.matchedAttribute]\n );\n return (\n <div className={styles.attribute}>\n <HighlightedValuesContext.Provider value={highlightedValuesContextValue}>\n <ExpandableAttributeValuesBlock\n values={attributeValues}\n attributeType={attributeType}\n showNonOv={showNonOv}\n RightSlot={MatchedValuesCounter}\n />\n </HighlightedValuesContext.Provider>\n </div>\n );\n};\n","import React from 'react';\n\nexport const ColumnDataContext = React.createContext<{\n setHoveredId?: React.Dispatch<React.SetStateAction<string>>;\n hoveredId?: string;\n setAnchor?: (anchor: HTMLElement) => void;\n }>({});\n\nColumnDataContext.displayName = 'ColumnDataContext';\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n menuButtonWrapper: {\n display: 'none',\n position: 'absolute',\n top: '-4px',\n right: '-14px'\n },\n headCell: {\n display: 'flex',\n position: 'relative',\n 'th:hover &': {\n '& $menuButtonWrapper': {\n display: 'block'\n }\n }\n },\n active: {\n display: 'block'\n }\n});\n","import React, {useContext, useRef} from 'react';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {SmallIconButton} from '@reltio/components';\nimport {ColumnDataContext} from '../../../../contexts/ColumnsDataContext';\nimport {useStyles} from './styles';\nimport classnames from 'classnames';\n\ntype Props = {\n label?: string;\n id: string;\n hideable?: boolean;\n};\n\nexport const HeadCellRenderer = ({label, id, hideable}: Props) => {\n const styles = useStyles();\n const {setAnchor, setHoveredId, hoveredId} = useContext(ColumnDataContext);\n const ref = useRef<HTMLDivElement>();\n const openConfigColumnPopup = () => {\n setAnchor(ref.current);\n setHoveredId(id);\n };\n return (\n <div className={styles.headCell}>\n {label}\n {hideable !== false && (\n <div className={classnames(styles.menuButtonWrapper, {[styles.active]: hoveredId === id})} ref={ref}>\n <SmallIconButton icon={MoreVertIcon} onClick={openConfigColumnPopup} size={'S'} />\n </div>\n )}\n </div>\n );\n};\n","import React, {useCallback, useContext} from 'react';\nimport {ArrowExpandButton} from '@reltio/components';\nimport {AttributeType} from '@reltio/mdm-sdk';\nimport {ExpandedContext} from '../ExpandedContext';\nimport {HeadCellRenderer} from './HeadCellRenderer';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n label: string;\n attributeType: AttributeType;\n id: string;\n};\n\nexport const ComplexAttributesHeadRenderer = ({label, attributeType, id}: Props) => {\n const styles = useStyles();\n const {expandedMap, onExpandType} = useContext(ExpandedContext);\n const onExpandClick = useCallback(() => onExpandType(attributeType.uri), [onExpandType, attributeType]);\n const expanded = expandedMap[attributeType.uri];\n return (\n <div className={styles.complexAttributesHeadRenderer}>\n <ArrowExpandButton expanded={expanded} onClick={onExpandClick} className={styles.arrowButton} />\n <div className={styles.complexAttributesHeadLabel}>\n <HeadCellRenderer label={label} id={id} />\n </div>\n </div>\n );\n};\n","import React from 'react';\n\nexport const HoveredEntityContext = React.createContext<{\n hoveredEntity: string;\n resetHoveredEntity: () => void;\n }>({\n hoveredEntity: null,\n resetHoveredEntity: () => {}\n });\n\nHoveredEntityContext.displayName = 'HoveredEntityContext';\n","import React, {memo} from 'react';\nimport {prop} from 'ramda';\n\nimport {Entity, isDataTenantEntity, NOT_MATCH} from '@reltio/mdm-sdk';\nimport {\n CreateRelationButton,\n DCRReviewButton,\n MergeButton,\n NotMatchButton,\n ReinstateMatchButton,\n SetAMatchButton\n} from '../Actions';\nimport {ActionsPanel} from '../ActionsPanel/ActionsPanel';\n\ntype Props = {\n value: {\n mainEntity: Entity;\n entity: Entity;\n matchRules: string[];\n permission: {\n canMerge?: boolean;\n canAddRelation?: boolean;\n canMark?: boolean;\n };\n };\n onActionsMenuClose?: () => void;\n onActionsMenuOpen?: () => void;\n openAddRelationDialog?: (param: {mainEntity?: Entity; currentEntity?: Entity; matchRules?: string[]}) => void;\n classes?: {\n actionButton?: string;\n moreOptions?: string;\n };\n mode?: 'normal' | 'hover';\n};\n\nconst MatchesControls = ({\n value: {mainEntity, entity, matchRules, permission},\n onActionsMenuClose,\n onActionsMenuOpen,\n openAddRelationDialog,\n classes = {},\n mode = 'hover'\n}: Props) => {\n const {canMerge, canAddRelation, canMark} = permission;\n const hasDTEntity = [mainEntity, entity].some(isDataTenantEntity);\n\n const isEntityFindMatch = !matchRules;\n const isEntityNotMatch = !isEntityFindMatch && matchRules.includes(NOT_MATCH);\n const isEntityPotentialMatch = !isEntityNotMatch && !isEntityFindMatch;\n\n const actions = [\n {\n ActionButton: MergeButton,\n show: canMerge && (isEntityNotMatch || isEntityPotentialMatch || isEntityFindMatch),\n props: {\n entity: mainEntity,\n entities: [entity]\n }\n },\n {\n ActionButton: NotMatchButton,\n show: canMark && (isEntityPotentialMatch || isEntityFindMatch),\n props: {\n entity: mainEntity,\n entities: [entity]\n }\n },\n {\n ActionButton: ReinstateMatchButton,\n show: canMark && isEntityNotMatch,\n props: {\n entity: mainEntity,\n entities: [entity]\n }\n },\n {\n ActionButton: DCRReviewButton,\n show: !hasDTEntity && (isEntityNotMatch || isEntityPotentialMatch),\n props: {\n entity: mainEntity,\n entities: [entity]\n }\n },\n {\n ActionButton: SetAMatchButton,\n show: canMark && isEntityFindMatch && !isDataTenantEntity(entity),\n props: {\n entity: mainEntity,\n entities: [entity]\n }\n },\n {\n ActionButton: CreateRelationButton,\n show: canAddRelation && !hasDTEntity,\n props: {\n mainEntity,\n currentEntity: entity,\n matchRules,\n onClick: openAddRelationDialog\n }\n }\n ].filter(prop('show'));\n\n return (\n <ActionsPanel\n actions={actions}\n numberOfButtons={2}\n mode={mode}\n actionButtonSize={mode === 'hover' ? 'XS' : undefined}\n classes={{\n actionButton: classes.actionButton,\n moreOptions: classes.moreOptions\n }}\n onActionsMenuClose={onActionsMenuClose}\n onActionsMenuOpen={onActionsMenuOpen}\n />\n );\n};\n\nexport default memo(MatchesControls);\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n color?: string;\n};\n\nconst styles = makeStyles({\n container: {\n position: 'relative',\n width: '100%',\n height: '140px',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n overflow: 'hidden'\n },\n hovered: {\n backgroundColor: 'rgb(245, 245, 245)'\n },\n colored: {\n '&:before': {\n content: '\"\"',\n position: 'absolute' as const,\n left: 0,\n top: 0,\n width: '100%',\n height: '4px',\n background: ({color}: StylesProps) => color\n }\n },\n removeButton: {\n position: 'absolute',\n zIndex: 1,\n margin: '4px'\n },\n matchControlsContainer: {\n display: 'flex',\n alignItems: 'center',\n height: '45px',\n margin: '4px 8px'\n },\n rightButton: {\n display: 'flex',\n alignItems: 'center'\n },\n moreOptions: {\n marginLeft: '8px'\n }\n});\n\nexport default styles;\n","export const POTENTIAL_MATCH_REVIEW = 'potentialMatchReview';\n","import {useCallback, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {allPass, includes, map, mergeLeft, propEq, propSatisfies, when} from 'ramda';\nimport mdmModule from '@reltio/mdm-module';\nimport {Entity, getEntityUriFromMatchObject, getTasksForEntity, Match, WorkflowTaskData} from '@reltio/mdm-sdk';\nimport {useSafePromise} from '@reltio/components';\n\nimport {POTENTIAL_MATCH_REVIEW} from '../constants/workflow';\nimport {useViewStateActions} from '../contexts/ViewStateContext';\n\nconst isPotentialMatchesTask = (task) => task.processType === POTENTIAL_MATCH_REVIEW;\n\ntype Props = {\n match: Match;\n entity: Entity;\n};\n\nexport const useWorkflowTasks = ({entity, match}: Props) => {\n const workflowPath: string = useSelector(mdmModule.selectors.getWorkflowPath);\n const environment: string = useSelector(mdmModule.selectors.getWorkflowEnvironmentUrl);\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const safePromise = useSafePromise();\n const {uri: entityUri} = entity;\n const matchUri: string = getEntityUriFromMatchObject(match);\n const [requestIsInProgress, setRequestIsInProgress] = useState(false);\n const [tasks, setTasks] = useState<WorkflowTaskData[]>([]);\n\n const loadTasks = useCallback(\n () => {\n if (workflowPath && matchUri !== entityUri) {\n setRequestIsInProgress(true);\n safePromise(\n getTasksForEntity({\n entityUri,\n workflowPath,\n environment,\n tenant\n })\n )\n .then((result) => {\n const {data} = result;\n const hasMatchEntityUri = propSatisfies(includes(matchUri), 'objectURIs');\n const isTaskBelongsToMatch = allPass([isPotentialMatchesTask, hasMatchEntityUri]);\n const tasks = data.filter(isTaskBelongsToMatch);\n setTasks(tasks);\n })\n .finally(() => setRequestIsInProgress(false));\n }\n },\n [entityUri, environment, tenant, workflowPath, matchUri] // eslint-disable-line\n );\n\n const updateTaskState = useCallback((taskId: WorkflowTaskData['taskId'], payload: Partial<WorkflowTaskData>) => {\n setTasks(map(when(propEq('taskId', taskId), mergeLeft(payload))));\n }, []);\n\n const {deselectByEntities} = useViewStateActions();\n const onActionSuccess = useCallback(() => {\n deselectByEntities([match.object]);\n }, [deselectByEntities, match.object]);\n\n return {\n loading: requestIsInProgress,\n tasks,\n loadTasks,\n updateTaskState,\n total: tasks.length,\n onActionSuccess\n };\n};\n","import React from 'react';\n\nexport const WorkflowTasksAvailabilityContext = React.createContext<(entityUri: string, value: boolean) => void>(\n () => {}\n);\n\nWorkflowTasksAvailabilityContext.displayName = 'WorkflowTasksAvailabilityContext';\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n container: {\n position: 'relative',\n minHeight: '86px',\n display: 'flex',\n overflow: 'hidden',\n margin: '-16px'\n },\n assigneeContainer: {\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n padding: '16px 14px 16px 48px'\n }\n});\n","import React, {useContext, useEffect} from 'react';\nimport {pick} from 'ramda';\nimport {\n AssigneeSelector,\n PotentialMatchReviewCard,\n TaskActions,\n WorkflowComments,\n WorkflowTasksContext\n} from '@reltio/components';\nimport {Entity, getEntityUriFromMatchObject, Match, WorkflowTaskData} from '@reltio/mdm-sdk';\n\nimport {useWorkflowTasks} from '../../hooks/useWorkflowTasks';\nimport {WorkflowTasksAvailabilityContext} from '../ComparisonTable/WorkflowTasksAvailabilityContext';\n\nimport {useStyles} from './styles';\n\nconst getPropsFromTasks = (task: WorkflowTaskData) => ({\n date: task.dueDate,\n type: task.processDefinitionDisplayName,\n createdBy: task.createdBy,\n step: task.displayName\n});\nconst getCommentsInfoFromTasks = pick(['processInstanceComments', 'taskId']);\n\ntype Props = {\n match: Match;\n entity: Entity;\n};\n\nexport const WorkflowCard = ({entity, match}: Props) => {\n const styles = useStyles();\n const workflowTasks = useWorkflowTasks({entity, match});\n const {tasks, loadTasks} = workflowTasks;\n const setWorkflowTaskAvailability = useContext(WorkflowTasksAvailabilityContext);\n useEffect(() => {\n loadTasks();\n }, [loadTasks]);\n const task = tasks[0];\n const matchEntityUri = getEntityUriFromMatchObject(match);\n useEffect(() => {\n setWorkflowTaskAvailability?.(matchEntityUri, !!task);\n }, [setWorkflowTaskAvailability, matchEntityUri, task]);\n const Actions = task && (\n <TaskActions\n taskId={task.taskId}\n possibleActions={task.possibleActions}\n assignee={task.assignee}\n isTaskOpen={task.isOpen}\n />\n );\n return task ? (\n <WorkflowTasksContext.Provider value={workflowTasks}>\n <div className={styles.container}>\n <PotentialMatchReviewCard {...getPropsFromTasks(task)} Actions={Actions}>\n <div className={styles.assigneeContainer}>\n <AssigneeSelector assignee={task.assignee} taskId={task.taskId} isTaskOpen={task.isOpen} />\n </div>\n <WorkflowComments {...getCommentsInfoFromTasks(task)} />\n </PotentialMatchReviewCard>\n </div>\n </WorkflowTasksContext.Provider>\n ) : null;\n};\n","import i18n from 'ui-i18n';\nimport {DataTypes} from '@reltio/mdm-sdk';\nimport {ComparisonViewMode} from './views';\n\nexport const DEFAULT_ROWS = [\n {\n id: 'profile',\n label: i18n.text('Profile name'),\n dataTypeDefinition: {\n type: DataTypes.TYPE_STRING\n },\n hideable: false,\n draggable: false,\n initialWidth: 280,\n autoResize: false,\n modes: [ComparisonViewMode.COLUMNS, ComparisonViewMode.TABLE]\n },\n {\n id: 'matchRules',\n label: i18n.text('Match method'),\n dataTypeDefinition: {\n type: DataTypes.TYPE_SELECT\n },\n initialWidth: 130,\n minWidth: 130,\n autoResize: false,\n modes: [ComparisonViewMode.COLUMNS, ComparisonViewMode.TABLE]\n },\n {\n id: 'workflowCard',\n label: i18n.text('Workflow'),\n modes: [ComparisonViewMode.COLUMNS]\n },\n {\n id: 'entityId',\n label: i18n.text('Entity ID'),\n dataTypeDefinition: {\n type: DataTypes.TYPE_ENTITY_ID\n },\n initialWidth: 100,\n autoResize: false,\n modes: [ComparisonViewMode.COLUMNS, ComparisonViewMode.TABLE]\n },\n {\n id: 'score',\n label: i18n.text('Match score'),\n dataTypeDefinition: {\n type: DataTypes.TYPE_INT\n },\n initialWidth: 100,\n modes: [ComparisonViewMode.TABLE, ComparisonViewMode.COLUMNS]\n },\n {\n id: 'sources',\n label: i18n.text('Sources'),\n modes: [ComparisonViewMode.COLUMNS, ComparisonViewMode.TABLE]\n },\n {\n id: 'crosswalks',\n label: i18n.text('Crosswalks'),\n modes: [ComparisonViewMode.COLUMNS]\n }\n];\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n itemContainer: {\n width: '18px',\n height: '18px'\n },\n item: {\n width: '18px',\n height: '18px',\n background: 'none',\n fontSize: '1rem'\n }\n});\n","import React, {memo} from 'react';\nimport classnames from 'classnames';\nimport {useSelector} from 'react-redux';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport {SourceIcon, useCrosswalkColor} from '@reltio/components';\nimport {Crosswalk, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport mdm from '@reltio/mdm-module';\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: Crosswalk;\n className?: string;\n showTooltip?: boolean;\n};\n\nconst ColoredSourceIcon = ({className, crosswalk, showTooltip = true}: Props) => {\n const styles = useStyles();\n const color = useCrosswalkColor(crosswalk);\n const metadata = useSelector(mdm.selectors.getMetadata) || {};\n\n const content = (\n <div className={classnames(styles.itemContainer, className)} style={{background: color}}>\n <SourceIcon sourceType={crosswalk.type} className={styles.item} />\n </div>\n );\n return showTooltip ? <Tooltip title={getSourceSystemLabel(metadata, crosswalk.type)}>{content}</Tooltip> : content;\n};\n\nexport default memo(ColoredSourceIcon);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n crosswalk: {\n marginBottom: '8px'\n },\n crosswalkIcon: {\n marginRight: '5px'\n },\n labelContainer: {\n display: 'flex',\n alignItems: 'center',\n width: '100%'\n },\n spacer: {\n flex: 1\n }\n});\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport mdm from '@reltio/mdm-module';\nimport {Crosswalk, getSourceSystemLabel, NestedAttributeValue} from '@reltio/mdm-sdk';\n\nimport ColoredSourceIcon from '../../../ColoredSourceIcon/ColoredSourceIcon';\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeValue: NestedAttributeValue & {\n value: NestedAttributeValue['value'] & {\n crosswalk: Crosswalk;\n };\n };\n};\n\nconst LabelRenderer = ({attributeValue}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdm.selectors.getMetadata);\n const crosswalk = attributeValue.value.crosswalk;\n return (\n <div className={styles.labelContainer}>\n <ColoredSourceIcon className={styles.crosswalkIcon} crosswalk={crosswalk} showTooltip={false} />\n <div>{getSourceSystemLabel(metadata, crosswalk.type)}</div>\n <div className={styles.spacer} />\n <div>{crosswalk.value}</div>\n </div>\n );\n};\n\nexport default LabelRenderer;\n","import React, {useMemo} from 'react';\nimport {ReadOnlyAttributeValuesBlock} from '@reltio/components';\nimport {\n AttributeType,\n Crosswalk,\n CrosswalksAttrTypes,\n getSourceSystemLabel,\n Metadata,\n NestedAttributeValue\n} from '@reltio/mdm-sdk';\nimport mdm from '@reltio/mdm-module';\n\nimport withExpanded from '../../withExpanded';\nimport LabelRenderer from './LabelRenderer';\nimport {useStyles} from './styles';\nimport {useSelector} from 'react-redux';\n\nexport const ExpandableAttributeValuesBlock = withExpanded(\n ReadOnlyAttributeValuesBlock\n) as typeof ReadOnlyAttributeValuesBlock;\n\ntype Props = {\n value: {\n crosswalks: Crosswalk[];\n attributeType: AttributeType;\n };\n};\n\nconst getFakeAttributeValueForCrosswalk = (crosswalk: Crosswalk, attributeType: AttributeType, metadata: Metadata) => {\n return attributeType.attributes.reduce(\n (nestedAttributeValue: NestedAttributeValue, subAttributeType) => {\n if (subAttributeType.uri === CrosswalksAttrTypes.sourceSystems.uri) {\n nestedAttributeValue.value[subAttributeType.uri] = getSourceSystemLabel(metadata, crosswalk.type);\n } else if (crosswalk[subAttributeType.uri]) {\n nestedAttributeValue.value[subAttributeType.uri] = crosswalk[subAttributeType.uri];\n }\n return nestedAttributeValue;\n },\n {value: {crosswalk}, uri: crosswalk.uri} as NestedAttributeValue\n );\n};\n\nconst CrosswalksRenderer = ({value: {crosswalks, attributeType}}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdm.selectors.getMetadata);\n const attributeValues = useMemo(\n () => crosswalks?.map((crosswalk) => getFakeAttributeValueForCrosswalk(crosswalk, attributeType, metadata)),\n [metadata, crosswalks, attributeType]\n );\n return attributeValues ? (\n <ExpandableAttributeValuesBlock\n values={attributeValues}\n attributeType={attributeType}\n LabelRenderer={LabelRenderer}\n valueContainerClassName={styles.crosswalk}\n />\n ) : null;\n};\n\nexport default CrosswalksRenderer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n wrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n marginBottom: '-8px'\n },\n crosswalkIcon: {\n marginRight: '5px',\n marginBottom: '8px'\n }\n});\n","import React from 'react';\nimport {Entity, isDataTenantEntity as checkIsDataTenantEntity, isEmptyValue} from '@reltio/mdm-sdk';\nimport {DataTenantBadge} from '@reltio/components';\nimport ColoredSourceIcon from '../../ColoredSourceIcon/ColoredSourceIcon';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: Entity;\n};\n\nconst SourcesRenderer = ({value}: Props) => {\n const {crosswalks, dataTenant} = value;\n const styles = useStyles();\n const isDataTenantEntity = checkIsDataTenantEntity(value);\n \n return isDataTenantEntity || !isEmptyValue(crosswalks) ? (\n <div className={styles.wrapper}>\n {crosswalks.map((crosswalk) => (\n <ColoredSourceIcon key={crosswalk.uri} className={styles.crosswalkIcon} crosswalk={crosswalk} />\n ))}\n {isDataTenantEntity && <DataTenantBadge dataTenantId={dataTenant} />}\n </div>\n ) : null;\n};\n\nexport default SourcesRenderer;\n","import {\n always,\n chain,\n cond,\n filter,\n identity,\n last,\n map,\n path,\n pathOr,\n pipe,\n prop,\n split,\n values,\n when,\n pick\n} from 'ramda';\n\nimport {\n AttributeType,\n CrosswalksAttrTypes,\n EntitiesMap,\n Entity,\n findAttributeTypeByUri,\n getActionPermissionForMatch,\n getAttributeSource,\n getEntityId,\n isAttributeSearchUri,\n isComplexAttribute,\n isOv,\n MatchedValues,\n Match,\n Metadata,\n PotentialMatchesPerspectiveConfig,\n searchUriToAttrUri\n} from '@reltio/mdm-sdk';\nimport {AttributesRenderer} from '../cell-renderers/AttributesRenderer';\nimport {HeadCellRenderer} from '../cell-renderers/HeadCellRenderer';\nimport {ComplexAttributesHeadRenderer} from '../cell-renderers/ComplexAttributesHeadRenderer';\nimport EntityCard from '../cell-renderers/EntityCard/EntityCard';\nimport MatchMethod from '../cell-renderers/MatchMethod/MatchMethod';\nimport WorkflowCardRenderer from '../cell-renderers/WorkflowCardRenderer/WorkflowCardRenderer';\nimport {DEFAULT_ROWS} from '../../../constants/defaultRows';\nimport CrosswalksRenderer from '../cell-renderers/CrosswalksRenderer/CrosswalksRenderer';\nimport {ComparisonViewMode} from '../../../constants/views';\nimport SourcesRenderer from '../../cell-renderers/SourcesRenderer/SourcesRenderer';\n\nexport type RowData = {\n id: string;\n label: string;\n cellRenderer?: (props: unknown) => JSX.Element;\n headCellRenderer?: (props: unknown) => JSX.Element;\n rowClassName?: string;\n attributeType?: AttributeType;\n hideable?: boolean;\n};\n\nconst additionalPropsForDefaultRows = {\n profile: {\n cellRenderer: EntityCard,\n headCellRenderer: HeadCellRenderer,\n label: ''\n },\n matchRules: {\n cellRenderer: MatchMethod,\n headCellRenderer: HeadCellRenderer\n },\n workflowCard: {\n cellRenderer: WorkflowCardRenderer,\n headCellRenderer: HeadCellRenderer\n },\n sources: {\n cellRenderer: SourcesRenderer,\n headCellRenderer: HeadCellRenderer\n },\n entityId: {\n headCellRenderer: HeadCellRenderer\n },\n crosswalks: {\n cellRenderer: CrosswalksRenderer,\n headCellRenderer: ComplexAttributesHeadRenderer,\n attributeType: {\n uri: 'crosswalks',\n name: 'crosswalks',\n type: 'Nested',\n attributes: Object.values(CrosswalksAttrTypes)\n }\n },\n score: {\n headCellRenderer: HeadCellRenderer\n }\n};\n\nconst defaultRows: RowData[] = DEFAULT_ROWS.filter(({modes}) => modes.includes(ComparisonViewMode.COLUMNS)).map(\n (row) => ({\n ...pick(['id', 'label', 'hideable'], row),\n ...additionalPropsForDefaultRows[row.id]\n })\n);\n\nconst getAttrTypeNameByUri = pipe(split('/'), last);\n\nexport const getTableRowsData = (metadata: Metadata, entity: Entity, selectedColumns: string[]): RowData[] => {\n return selectedColumns\n .map((searchUri) => {\n const defaultRow = defaultRows.find(({id}) => id === searchUri);\n\n if (defaultRow) {\n return defaultRow;\n }\n\n if (!isAttributeSearchUri(searchUri)) {\n return null;\n }\n\n const attrTypeUri = searchUriToAttrUri(searchUri, entity.type);\n const attributeType = findAttributeTypeByUri(metadata, attrTypeUri, entity.type);\n const collectionName = getAttributeSource(attrTypeUri);\n\n if (attributeType) {\n return {\n id: `${collectionName}.${getAttrTypeNameByUri(attrTypeUri)}`,\n label: attributeType.label,\n attributeType,\n cellRenderer: AttributesRenderer,\n headCellRenderer: isComplexAttribute(attributeType)\n ? ComplexAttributesHeadRenderer\n : HeadCellRenderer\n };\n }\n\n return null;\n })\n .filter(identity);\n};\n\nexport const getMatchedValuesUris = (matchedValues: MatchedValues): string[] => {\n return when(\n identity,\n pipe(\n values,\n chain(\n chain(\n cond([\n [path(['value', 'uri']), path(['value', 'uri'])],\n [path(['value', 'values']), pipe(path(['value', 'values']), map(prop('uri')))]\n ])\n )\n ),\n filter(identity)\n )\n )(matchedValues);\n};\n\nconst getColumnDataForRowData = (\n metadata: Metadata,\n match: Match,\n entitiesMap: EntitiesMap,\n entity: Entity,\n rowData: RowData,\n config: PotentialMatchesPerspectiveConfig,\n onRemoveItem: (match: Match) => void,\n showNonOv: boolean\n) => {\n const {object, isMainEntity, matchRules, matchedValues, matchScore} = match;\n switch (rowData.id) {\n case 'entityId':\n return getEntityId(object);\n case 'profile':\n return {\n mainEntity: entity,\n isSelectedEntity: !isMainEntity,\n onRemove: () => onRemoveItem(match),\n entity: object,\n matchRules: matchRules,\n permission: getActionPermissionForMatch(metadata, config, object, entity, matchRules),\n config: config\n };\n case 'matchRules':\n return {\n metadata,\n entity,\n match,\n entitiesMap,\n show: !isMainEntity && !!matchRules\n };\n case 'sources':\n return object;\n case 'crosswalks':\n return {\n crosswalks: object.crosswalks,\n attributeType: rowData.attributeType\n };\n case 'workflowCard':\n return {\n entity,\n match\n };\n case 'score':\n return matchScore || 0;\n }\n if (isAttributeSearchUri(rowData.id)) {\n const attrSource = getAttributeSource(rowData.attributeType);\n const getAttributeValues = pipe(\n pathOr([], [attrSource, rowData.attributeType.name]),\n when(always(!showNonOv), filter(isOv))\n );\n const attributeValues = getAttributeValues(object);\n return {\n attributeType: rowData.attributeType,\n attributeValues,\n matchedValuesUris: getMatchedValuesUris(matchedValues),\n showNonOv\n };\n }\n};\n\ntype TableColumnsData = {\n id: string;\n isDraggable: boolean;\n [key: string]: unknown;\n};\n\nexport const getTableColumnsData = (\n metadata: Metadata,\n rowsData: RowData[],\n entity: Entity,\n matches: Match[],\n entitiesMap?: EntitiesMap,\n config?: PotentialMatchesPerspectiveConfig,\n onRemoveItem?: (match: Match) => void,\n showNonOnly = false\n) => {\n return [{object: entity, isMainEntity: true} as Match].concat(matches).map((match) => {\n return rowsData.reduce((column, rowData) => {\n column[rowData.id] = getColumnDataForRowData(\n metadata,\n match,\n entitiesMap,\n entity,\n rowData,\n config,\n onRemoveItem,\n showNonOnly\n );\n return {...column, isDraggable: !match.isMainEntity, id: match.object.uri};\n }, {} as TableColumnsData);\n });\n};\n","import React, {useContext, useMemo} from 'react';\nimport classnames from 'classnames';\nimport {ProfileCard, SmallIconButton} from '@reltio/components';\nimport {Entity, getEntityColor, getEntityId, PotentialMatchesPerspectiveConfig} from '@reltio/mdm-sdk';\nimport CloseIcon from '@material-ui/icons/Close';\nimport {HoveredEntityContext} from '../../HoveredEntityContext';\nimport {useAddRelationDialog} from '../../../../hooks/useAddRelationDialog';\nimport MatchControls from '../../../MatchControls/MatchControls';\n\nimport useStyles from './styles';\n\ntype Props = {\n value: {\n onRemove?: () => void;\n isSelectedEntity?: boolean;\n mainEntity: Entity;\n entity: Entity;\n matchRules: string[];\n config: PotentialMatchesPerspectiveConfig;\n permission: {\n canMerge?: boolean;\n canAddRelation?: boolean;\n canMark?: boolean;\n };\n };\n};\n\nconst EntityCard = ({value: {entity, config, isSelectedEntity, onRemove, ...rest}}: Props) => {\n const color = getEntityColor(entity.uri);\n const styles = useStyles({color});\n const {hoveredEntity, resetHoveredEntity} = useContext(HoveredEntityContext);\n const isHovered = getEntityId(entity) === hoveredEntity;\n const {showDialog, openAddRelationDialog, AddRelationDialogRenderer} = useAddRelationDialog(config);\n\n const controlProps = useMemo(\n () => ({\n ...rest,\n entity\n }),\n [rest, entity]\n );\n\n return (\n <>\n <div\n className={classnames(styles.container, {\n [styles.hovered]: isSelectedEntity && isHovered,\n [styles.colored]: isSelectedEntity\n })}\n >\n {isSelectedEntity && (\n <SmallIconButton className={styles.removeButton} icon={CloseIcon} onClick={onRemove} size=\"XXS\" />\n )}\n <ProfileCard entity={entity} />\n {isSelectedEntity && (\n <div className={styles.matchControlsContainer}>\n <MatchControls\n mode=\"normal\"\n value={controlProps}\n onActionsMenuClose={resetHoveredEntity}\n openAddRelationDialog={openAddRelationDialog}\n classes={{\n actionButton: styles.rightButton,\n moreOptions: styles.moreOptions\n }}\n />\n </div>\n )}\n </div>\n {showDialog && <AddRelationDialogRenderer />}\n </>\n );\n};\n\nexport default EntityCard;\n","import React from 'react';\nimport {MatchRulesBlock} from '@reltio/components';\n\ntype Props = {\n value: React.ComponentProps<typeof MatchRulesBlock> & {show?: boolean};\n};\nconst MatchMethod = ({value: {metadata, entity, match, entitiesMap, show}}: Props) => {\n if (!show) {\n return null;\n }\n return <MatchRulesBlock entity={entity} match={match} entitiesMap={entitiesMap} metadata={metadata} />;\n};\n\nexport default MatchMethod;\n","import React from 'react';\n\nimport {Entity, Match} from '@reltio/mdm-sdk';\n\nimport WorkflowCard from '../../../WorkflowCard';\n\ntype Props = {\n value: {\n match: Match;\n entity: Entity;\n };\n};\n\nconst WorkflowCardRenderer = ({value: {entity, match}}: Props) => {\n return <WorkflowCard entity={entity} match={match} />;\n};\n\nexport default WorkflowCardRenderer;\n","import React from 'react';\nimport {Match} from '@reltio/mdm-sdk';\n\nexport const ColumnHandlerContext = React.createContext<(match: Match) => void>(() => {});\n\nColumnHandlerContext.displayName = 'ColumnHandlerContext';\n","import {filter, join, map, pipe, slice, split, uniq, when} from 'ramda';\n\nimport {isAttributeSearchUri, searchUriToAttrUri} from '@reltio/mdm-sdk';\n\nconst getFirstLevelParentAttribute = pipe(split('.'), slice(0, 2), join('.'));\nexport const replaceSubAttributesWithParent = pipe(map(when(isAttributeSearchUri, getFirstLevelParentAttribute)), uniq);\n\nexport const getAttributesTypeUris = (entityTypeUri: string, attributes: string[]): string[] =>\n pipe(\n filter(isAttributeSearchUri),\n map((searchUri: string) => searchUriToAttrUri(searchUri, entityTypeUri))\n )(attributes);\n","import React from 'react';\nimport {Popover as Popover} from '@material-ui/core';\nimport {List as List} from '@material-ui/core';\nimport {ListItem as ListItem} from '@material-ui/core';\nimport {ListItemText as ListItemText} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nexport enum Action {\n INSERT_BELOW = 'below',\n INSERT_ABOVE = 'above',\n HIDE = 'hide'\n}\n\nconst TEXT = {\n [Action.INSERT_BELOW]: i18n.text('Insert row below'),\n [Action.INSERT_ABOVE]: i18n.text('Insert row above'),\n [Action.HIDE]: i18n.text('Hide row')\n};\n\nconst renderListItem = (action: Action, handler: () => void, index: number) => (\n <ListItem button component={'div'} key={index} onClick={handler}>\n <ListItemText primary={TEXT[action]} primaryTypographyProps={{variant: 'body2'}} />\n </ListItem>\n);\n\ntype Props = {\n open?: boolean;\n anchorEl: HTMLElement;\n onClick: (action: Action) => void;\n onClose: () => void;\n actions: Action[];\n};\n\nconst ConfigRowPopup = ({open, anchorEl, onClick, onClose, actions}: Props) => {\n const getClickHandler = (action) => () => {\n onClick(action);\n };\n\n return (\n <Popover open={open} anchorEl={anchorEl} onClose={onClose}>\n <List component=\"div\">\n {actions.map((action, index) => renderListItem(action, getClickHandler(action), index))}\n </List>\n </Popover>\n );\n};\n\nexport default ConfigRowPopup;\n","import {GroupedColumns, GroupedColumnData} from '../../../types/potentialMatchesTypes';\n\nconst deepFilter = (nodes: GroupedColumnData[], filter: (col: GroupedColumns) => boolean) =>\n nodes.filter(filter).map((node: GroupedColumns) =>\n node.columns\n ? {\n ...node,\n columns: deepFilter(node.columns, filter)\n }\n : node\n );\n\nexport const getAdditionalRows = (\n groupColumnsData: GroupedColumnData[],\n headColumns: string[] = []\n): GroupedColumnData[] =>\n deepFilter(groupColumnsData, (column: GroupedColumns) => !headColumns.some((elemId) => column.id === elemId));\n","import React, {useEffect, useMemo, useState, memo} from 'react';\nimport ConfigRowPopup, {Action} from './ConfigRowPopup';\nimport {ColumnsSettingsPopup} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {getAdditionalRows} from './helpers';\nimport {GroupedColumnData} from '../../../types/potentialMatchesTypes';\n\ntype Props = {\n anchorEl: HTMLElement;\n onClose: () => void;\n actions: Action[];\n id: string;\n selectedAttributes?: string[];\n setSelectedAttributes?: (cols: string[]) => void;\n groupColumnsData: GroupedColumnData[];\n};\n\nconst AddRowPopups = ({\n anchorEl,\n onClose,\n actions,\n id,\n selectedAttributes,\n setSelectedAttributes,\n groupColumnsData\n}: Props) => {\n const groupedItems = useMemo(() => getAdditionalRows(groupColumnsData, selectedAttributes), [\n groupColumnsData,\n selectedAttributes\n ]);\n const [action, setAction] = useState<Action>();\n const [isOpenConfigPopup, setIsOpenConfigPopup] = useState(false);\n useEffect(() => {\n if (anchorEl) {\n setIsOpenConfigPopup(true);\n }\n }, [anchorEl]);\n const onClosePopup = () => {\n setIsOpenConfigPopup(false);\n if (!action) onClose();\n };\n const onChooseAction = (action: Action) => {\n if (action === Action.HIDE) {\n const newAttributes = [...selectedAttributes];\n const index = selectedAttributes.indexOf(id);\n if (index > -1) {\n newAttributes.splice(index, 1);\n setSelectedAttributes(newAttributes);\n closeAddRowPopup();\n }\n return;\n }\n setAction(action);\n setIsOpenConfigPopup(false);\n };\n\n const closeAddRowPopup = () => {\n setAction(null);\n setIsOpenConfigPopup(false);\n onClose();\n };\n const addRowHandler = ({id: newId}: {id: string}) => {\n const newAttributes = [...selectedAttributes];\n const index = selectedAttributes.indexOf(id);\n const newIndex = action === Action.INSERT_ABOVE ? index : index + 1;\n newAttributes.splice(newIndex, 0, newId);\n setSelectedAttributes(newAttributes);\n closeAddRowPopup();\n };\n\n return (\n <>\n <ConfigRowPopup\n open={isOpenConfigPopup}\n anchorEl={anchorEl}\n actions={actions}\n onClose={onClosePopup}\n onClick={onChooseAction}\n />\n <ColumnsSettingsPopup\n hideCheckBox\n anchorEl={action ? anchorEl : undefined}\n columnsData={groupedItems}\n selectedColumns={selectedAttributes}\n onColumnClick={addRowHandler}\n onClose={closeAddRowPopup}\n title={i18n.text('Add row')}\n />\n </>\n );\n};\n\nexport default memo(AddRowPopups);\n","import {useCallback, useState} from 'react';\nimport {any, map, pipe} from 'ramda';\nimport {getEntityUriFromMatchObject} from '@reltio/mdm-sdk';\n\nexport const useWorkflowTasksAvailability = (matches) => {\n const [workflowTasksAvailabilityMap, setWorkflowTasksAvailabilityMap] = useState<{[entityUri: string]: boolean}>(\n {}\n );\n const setWorkflowTaskAvailability = useCallback((entityUri: string, value: boolean) => {\n setWorkflowTasksAvailabilityMap((map) => ({\n ...map,\n [entityUri]: value\n }));\n }, []);\n const isThereAnyTask: boolean = pipe(\n map(getEntityUriFromMatchObject),\n any((uri) => workflowTasksAvailabilityMap[uri])\n )(matches);\n\n return {isThereAnyTask, setWorkflowTaskAvailability};\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst headCellWidth = 212;\nconst dataCellWidth = 310;\nconst borderStyle = '1px solid rgba(0,0,0,0.12)';\nconst thickBorderStyle = '2px solid rgba(0,0,0,0.12)';\nconst firstColumnColor = 'rgb(245, 245, 245)';\nconst secondColumnColor = 'rgb(224, 238, 249)';\nconst firstRowHeight = 141;\n\nexport const useStyles = makeStyles((theme) => ({\n container: {\n overflow: 'auto',\n height: '100%',\n width: '100%'\n },\n comparisonTableWrapper: {\n display: 'flex',\n alignItems: 'flex-start',\n position: 'relative'\n },\n collapsedRow: {\n display: 'none'\n },\n comparisonTable: {\n borderSpacing: 0,\n '& tbody tr:hover td, & tbody tr:hover th': {\n backgroundColor: 'rgb(235, 235, 235)'\n },\n 'table& tbody tr:hover td:nth-child(2)': {\n backgroundColor: 'rgb(215, 228, 239)'\n },\n '& td, & th': {\n borderRight: borderStyle,\n borderBottom: borderStyle,\n margin: 0,\n verticalAlign: 'top',\n textAlign: 'left',\n fontSize: '13px',\n minHeight: '16px',\n boxSizing: 'border-box',\n wordBreak: 'break-word',\n wordWrap: 'break-word',\n backgroundColor: 'white'\n },\n '& td': {\n minWidth: dataCellWidth,\n maxWidth: dataCellWidth,\n padding: '16px',\n overflow: 'hidden',\n height: 0\n },\n '& td:empty, th:empty': {\n padding: '0px 16px'\n },\n '& th': {\n minWidth: headCellWidth,\n maxWidth: headCellWidth,\n padding: '16px'\n },\n // sticky columns\n '& td:first-child, th:first-child': {\n borderLeft: borderStyle,\n position: 'sticky',\n left: '0',\n zIndex: 2,\n backgroundColor: firstColumnColor,\n color: theme.palette.text.secondary,\n fontWeight: 'normal'\n },\n '& td:nth-child(2), th:nth-child(2)': {\n borderRight: thickBorderStyle,\n position: 'sticky',\n left: `${headCellWidth}px`,\n zIndex: 2\n },\n // sticky rows\n '& thead tr:first-child td, & thead tr:first-child th': {\n borderTop: 'none',\n position: 'sticky',\n top: '0',\n height: firstRowHeight,\n padding: 0,\n zIndex: 2\n },\n // always visible corner\n '& thead tr:nth-child(-n+2) td:nth-child(-n+2), & thead tr:nth-child(-n+2) th:nth-child(-n+2)': {\n zIndex: 3\n },\n // special color for second column\n 'table& tr td:nth-child(2), th:nth-child(2)': {\n backgroundColor: secondColumnColor\n }\n },\n emptyState: {\n position: 'sticky',\n top: '10vh',\n display: 'flex',\n width: '100%'\n }\n}));\n","import React, {useCallback, useContext, useMemo, useState} from 'react';\nimport classnames from 'classnames';\nimport {chain, groupBy, insert, nth, pipe, prop, remove, toPairs} from 'ramda';\nimport {\n EntitiesMap,\n Entity,\n getFirstLevelSearchUri,\n isAttributeSearchUri,\n Metadata,\n PotentialMatchesPerspectiveConfig,\n Match\n} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\nimport {EMPTY_STATE_ICONS, EMPTY_STATE_VARIANTS, EmptyState, VerticalHeadingsTable} from '@reltio/components';\nimport {getTableColumnsData, getTableRowsData} from './helpers/tableHelpers';\nimport {ExpandedContext} from './ExpandedContext';\nimport {ColumnHandlerContext} from '../../contexts/ColumnHandlerContext';\nimport {replaceSubAttributesWithParent} from './helpers/attributesHelpers';\nimport {GroupedColumnData} from '../../types/potentialMatchesTypes';\nimport AddRowPopups from './AddRowPopups';\nimport {ColumnDataContext} from '../../contexts/ColumnsDataContext';\nimport {Action} from './AddRowPopups/ConfigRowPopup';\nimport {HoveredEntityContext} from './HoveredEntityContext';\nimport {WorkflowTasksAvailabilityContext} from './WorkflowTasksAvailabilityContext';\nimport {useWorkflowTasksAvailability} from '../../hooks/useWorkflowTasksAvailability';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n className?: string;\n entity: Entity;\n metadata: Metadata;\n config: PotentialMatchesPerspectiveConfig;\n entitiesMap?: EntitiesMap;\n selectedItems: Match[];\n setSelectedItems: (items: Match[]) => void;\n selectedColumns: string[];\n setSelectedColumns: (items: string[]) => void;\n columnsData: GroupedColumnData[];\n showNonOv?: boolean;\n};\n\nconst actions = [Action.INSERT_BELOW, Action.INSERT_ABOVE, Action.HIDE];\n\nexport const ComparisonTable = ({\n className,\n entity,\n metadata,\n config,\n selectedItems,\n setSelectedItems,\n selectedColumns,\n setSelectedColumns,\n entitiesMap = {},\n columnsData: allColumnsData,\n showNonOv = false\n}: Props) => {\n const styles = useStyles();\n\n const [hoveredEntity, setHoveredEntity] = useState(null);\n const [hoveredId, setHoveredId] = useState<string>();\n const [anchor, setAnchor] = useState<HTMLElement>();\n\n const matches = useMemo(() => selectedItems.slice(-4), [selectedItems]);\n const selectedColumnsWithoutSubAttributes: string[] = useMemo(\n () => replaceSubAttributesWithParent(selectedColumns),\n [selectedColumns]\n );\n\n const rowsData = useMemo(\n () => getTableRowsData(metadata, entity, selectedColumnsWithoutSubAttributes),\n [metadata, entity, selectedColumnsWithoutSubAttributes]\n );\n\n const onRemoveItem = useContext(ColumnHandlerContext);\n\n const columnsData = useMemo(\n () => getTableColumnsData(metadata, rowsData, entity, matches, entitiesMap, config, onRemoveItem, showNonOv),\n [metadata, rowsData, matches, entity, entitiesMap, config, onRemoveItem, showNonOv]\n );\n\n const [expandedMap, setExpandedMap] = useState<{\n [attrTypeUri: string]: boolean;\n }>({});\n\n const onExpandType = useCallback((attrTypeUri: string) => {\n setExpandedMap((map) => ({\n ...map,\n [attrTypeUri]: !map[attrTypeUri]\n }));\n }, []);\n\n const expandedContextValue = useMemo(\n () => ({\n expandedMap,\n onExpandType\n }),\n [onExpandType, expandedMap]\n );\n\n const headCellData = useMemo(\n () => ({\n setHoveredId,\n setAnchor,\n hoveredId\n }),\n [hoveredId]\n );\n\n const onClosePopup = useCallback(() => {\n setHoveredId(null);\n setAnchor(null);\n }, []);\n\n const handleMoveRow = (dragId: string, hoverId: string) => {\n const newArr: Array<[string, string[]]> = pipe(\n groupBy((item) => (isAttributeSearchUri(item) ? getFirstLevelSearchUri(item) : item)),\n toPairs\n )(selectedColumns);\n\n const dragIndex = newArr.findIndex(([searchUri]) => searchUri === dragId);\n const hoverIndex = newArr.findIndex(([searchUri]) => searchUri === hoverId);\n const dragRow = newArr[dragIndex];\n if (dragRow) {\n setSelectedColumns(pipe(remove(dragIndex, 1), insert(hoverIndex, dragRow), chain(nth(1)))(newArr));\n }\n };\n\n const handleMoveColumn = (dragId: string, hoverId: string) => {\n const dragIndex = selectedItems.findIndex(({object}) => object.uri === dragId);\n const hoverIndex = selectedItems.findIndex(({object}) => object.uri === hoverId);\n const dragColumn = selectedItems[dragIndex];\n if (dragColumn) {\n setSelectedItems(pipe(remove(dragIndex, 1), insert(hoverIndex, dragColumn))(selectedItems));\n }\n };\n\n const selectedAttributeUris: string[] = useMemo(() => rowsData.map(prop('id')), [rowsData]);\n\n const setHoveredEntityHandler = (columnValue) => {\n setHoveredEntity(columnValue?.entityId || null);\n };\n\n const resetHoveredEntity = useCallback(() => {\n setHoveredEntity(null);\n }, []);\n\n const hoveredEntityContextValue = useMemo(\n () => ({\n hoveredEntity,\n resetHoveredEntity\n }),\n [hoveredEntity, resetHoveredEntity]\n );\n\n const {isThereAnyTask, setWorkflowTaskAvailability} = useWorkflowTasksAvailability(matches);\n const workflowCardRowClassname = isThereAnyTask ? undefined : styles.collapsedRow;\n const displayedRowsData = useMemo(\n () =>\n rowsData.map((rowData) =>\n workflowCardRowClassname && rowData.id === 'workflowCard'\n ? {\n ...rowData,\n rowClassName: workflowCardRowClassname\n }\n : rowData\n ),\n [rowsData, workflowCardRowClassname]\n );\n\n return (\n <div className={classnames(styles.container, className)}>\n <div className={styles.comparisonTableWrapper}>\n <HoveredEntityContext.Provider value={hoveredEntityContextValue}>\n <ExpandedContext.Provider value={expandedContextValue}>\n <ColumnDataContext.Provider value={headCellData}>\n <WorkflowTasksAvailabilityContext.Provider value={setWorkflowTaskAvailability}>\n <VerticalHeadingsTable\n className={styles.comparisonTable}\n rowsData={displayedRowsData}\n columnsData={columnsData}\n theadRowsNumber={1}\n onMoveRow={handleMoveRow}\n onMoveColumn={handleMoveColumn}\n setHoveredColumn={setHoveredEntityHandler}\n resetHoveredColumn={resetHoveredEntity}\n />\n </WorkflowTasksAvailabilityContext.Provider>\n </ColumnDataContext.Provider>\n </ExpandedContext.Provider>\n </HoveredEntityContext.Provider>\n {!matches.length && (\n <div className={styles.emptyState}>\n <EmptyState\n LogoRenderer={EMPTY_STATE_ICONS.SELECT_ATTRIBUTES}\n variant={EMPTY_STATE_VARIANTS.embedded}\n text={i18n.text('Select profiles')}\n secondaryText={i18n.text(\n 'Select one or more profiles to compare it with the current profile'\n )}\n />\n </div>\n )}\n <AddRowPopups\n id={hoveredId}\n anchorEl={anchor}\n onClose={onClosePopup}\n actions={actions}\n selectedAttributes={selectedAttributeUris}\n setSelectedAttributes={setSelectedColumns}\n groupColumnsData={allColumnsData}\n />\n </div>\n </div>\n );\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column'\n },\n table: {\n flex: 1\n }\n});\n","import React from 'react';\nimport classnames from 'classnames';\nimport {EntitiesMap, Match, Entity, Metadata, PotentialMatchesPerspectiveConfig} from '@reltio/mdm-sdk';\nimport ComparisonTable from '../ComparisonTable';\nimport {GroupedColumnData} from '../../types/potentialMatchesTypes';\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n metadata: Metadata;\n selectedColumns: string[];\n setSelectedColumns: (newColumns: string[]) => void;\n selectedItems: Match[];\n setSelectedItems: (newItems: Match[]) => void;\n classes: {\n root?: string;\n };\n config: PotentialMatchesPerspectiveConfig;\n entitiesMap?: EntitiesMap;\n columnsData: GroupedColumnData[];\n showNonOv: boolean;\n};\n\nexport const ComparisonView = ({\n classes = {},\n selectedColumns,\n setSelectedColumns,\n selectedItems,\n setSelectedItems,\n config,\n metadata,\n entity,\n entitiesMap = {},\n columnsData,\n showNonOv\n}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={classnames(classes.root, styles.container)}>\n <ComparisonTable\n className={styles.table}\n entity={entity}\n metadata={metadata}\n config={config}\n selectedColumns={selectedColumns}\n setSelectedColumns={setSelectedColumns}\n selectedItems={selectedItems}\n setSelectedItems={setSelectedItems}\n columnsData={columnsData}\n entitiesMap={entitiesMap}\n showNonOv={showNonOv}\n />\n </div>\n );\n};\n","import {makeStyles, fade, lighten, Theme} from '@material-ui/core/styles';\nimport {CSSProperties} from '@material-ui/styles';\n\nconst defaultWrapperStyles: CSSProperties = {\n position: 'relative',\n whiteSpace: 'pre',\n padding: '15px 15px 0 15px',\n '&:last-child': {\n paddingBottom: '15px'\n },\n color: 'rgba(0,0,0,0.87)'\n};\n\nconst textOverflow: CSSProperties = {\n content: '\"\"',\n position: 'absolute',\n right: 0,\n top: 0,\n width: '40px',\n height: '100%',\n background: 'linear-gradient(to right, rgba(255, 255, 255, 0.2), #fff 100%)',\n pointerEvents: 'none'\n};\n\nconst tableHoveredRowSelector = 'div.hoveredRow';\n\nconst getColoredRowCellStyle = (color: string, hoveredColor?: string) => {\n return {\n '& > *': {\n position: 'relative'\n },\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n right: 0,\n top: 0,\n width: '100%',\n height: '100%',\n background: color,\n pointerEvents: 'none',\n [`${tableHoveredRowSelector} &`]: {\n background: hoveredColor || 'none'\n }\n },\n '& $defaultWrapper::after': {\n background: `linear-gradient(to right, ${fade(color, 0)}, ${color} 100%)`,\n [`${tableHoveredRowSelector} &`]: {\n background: hoveredColor && `linear-gradient(to right, ${fade(hoveredColor, 0)}, ${hoveredColor} 100%)`\n }\n }\n };\n};\n\nexport const useStyles = makeStyles((theme: Theme & {inactive: Record<string, number>}) => {\n const lightPrimaryBackground = lighten(theme.palette.primary.main, 0.88);\n const lightPrimaryBackgroundHovered = lighten(theme.palette.primary.main, 0.82);\n const highlightBackground = lighten('rgb(140,193,82)', 0.88);\n const entityBackground = lighten('rgb(0, 114, 206)', 0.88);\n\n const link = {\n color: theme.palette.primary.main,\n cursor: 'pointer',\n textDecoration: 'none'\n };\n\n return {\n link,\n hidden: {\n visibility: 'hidden'\n },\n rowCloseIcon: {\n color: 'rgba(0, 0, 0, 0.54)',\n margin: '0 24px 0 8px'\n },\n headCell: {\n display: 'flex',\n alignItems: 'center',\n height: '56px',\n fontSize: '12px',\n position: 'relative',\n flex: 1,\n overflow: 'hidden',\n color: 'rgba(0,0,0,0.87)',\n backgroundColor: 'rgba(0, 0, 0, 0.06)',\n '&::after': {\n ...textOverflow,\n width: '30px',\n backgroundImage: 'none'\n }\n },\n firstHeadCell: {\n paddingLeft: '42px'\n },\n headCellWithEntity: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n },\n rowCell: {\n fontSize: '12px',\n overflow: 'hidden'\n },\n rowCellFirstColumn: {\n height: '100%'\n },\n firstEntityCell: {\n maxHeight: '200px'\n },\n entityRowCell: {\n fontSize: '12px',\n position: 'relative'\n },\n entityRowCellSelected: getColoredRowCellStyle(entityBackground),\n rowCellHighlighted: getColoredRowCellStyle(highlightBackground),\n rowCellSelected: getColoredRowCellStyle(lightPrimaryBackground, lightPrimaryBackgroundHovered),\n defaultWrapper: {\n ...defaultWrapperStyles,\n '&::after': {\n ...textOverflow,\n [`${tableHoveredRowSelector} &`]: {\n background: 'linear-gradient(to right, rgba(238, 238, 238, 0), rgba(238, 238, 238, 1) 100%)'\n }\n }\n },\n hoveredDefaultWrapper: {\n ...defaultWrapperStyles\n },\n entityWrapper: {\n paddingLeft: '12px'\n },\n profileWrapper: {\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n position: 'relative'\n },\n entityLabel: {\n ...link,\n fontWeight: 500\n },\n commentsContainer: {\n position: 'absolute',\n right: 0,\n top: 0,\n zIndex: 1,\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n paddingRight: '15px',\n backgroundColor: '#fff',\n '&$checked': {\n backgroundColor: lightPrimaryBackground\n }\n },\n checked: {},\n matchRulesWrapper: {\n padding: '8px 15px 8px 10px',\n display: 'flex',\n flexDirection: 'column',\n boxSizing: 'border-box'\n },\n blobWrapper: {\n ...defaultWrapperStyles,\n whiteSpace: 'pre-wrap',\n height: '100px',\n boxSizing: 'border-box',\n overflowY: 'auto',\n overflowX: 'hidden'\n },\n imageWrapper: {\n ...defaultWrapperStyles,\n display: 'flex',\n '& > img': {\n height: '64px',\n width: '64px'\n }\n },\n referenceWrapper: {\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n height: '48px'\n },\n entityAvatar: {\n transform: 'scale(0.5)',\n marginLeft: '-10px'\n },\n collapseButton: {\n position: 'absolute',\n left: '40px',\n zIndex: 2\n },\n dragIcon: {\n position: 'absolute',\n left: '-5px',\n zIndex: 2,\n opacity: 0.38\n },\n ovFalse: theme.inactive\n };\n});\n","import React from 'react';\n\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport {withFilterAtBottom} from '@reltio/components';\n\nimport {useStyles} from './styles';\n\ntype Props = Record<string, unknown>;\n\nconst HeadCellRenderer = (props: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.headCell}>\n <DefaultHeadCellRenderer {...props} />\n </div>\n );\n};\n\nexport default withFilterAtBottom(HeadCellRenderer);\n","import React from 'react';\nimport classnames from 'classnames';\nimport {AttributeValue, DataTypes} from '@reltio/mdm-sdk';\nimport {DataTypeValue} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: AttributeValue;\n columnData: {\n dataTypeDefinition: {\n type: DataTypes;\n };\n };\n};\n\nconst DefaultCellValueRenderer = ({value, columnData: {dataTypeDefinition}}: Props) => {\n const {value: simpleValue, ov} = value;\n const styles = useStyles();\n return (\n <div className={classnames(styles.defaultWrapper, {[styles.ovFalse]: ov === false})}>\n <DataTypeValue value={simpleValue} dataTypeDefinition={dataTypeDefinition} />\n </div>\n );\n};\n\nexport default DefaultCellValueRenderer;\n","import React, {useContext} from 'react';\nimport classnames from 'classnames';\nimport {\n CollapseRowButton,\n EntityUriLink,\n IdContext,\n withTableContext,\n CommentsContainer,\n SmallIconButton\n} from '@reltio/components';\nimport {\n getEntityUriForLink,\n getLabel,\n createObjectIdForPM,\n CollaborationObjectTypes,\n createRelatedObjectUris,\n Entity\n} from '@reltio/mdm-sdk';\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\nimport CloseIcon from '@material-ui/icons/Close';\nimport {MatchesTableContextProps, MatchesTableRowValue} from '../../../types/potentialMatchesTypes';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: Entity;\n rowIndex: number;\n rowValue: MatchesTableRowValue;\n onRemove: () => void;\n entityToMatch: Entity;\n isRowSelected: boolean;\n hoverRowIndex: number;\n};\n\nconst EntityProfileRenderer = ({\n value: entity,\n rowIndex,\n rowValue,\n onRemove,\n entityToMatch,\n isRowSelected,\n hoverRowIndex\n}: Props) => {\n const styles = useStyles();\n const containerId = useContext(IdContext);\n\n const isRowRemovable = entity !== entityToMatch;\n const isRowHovered = rowIndex === hoverRowIndex;\n const isFirstRow = rowIndex === 0;\n const wrapperStyle = isRowHovered ? styles.hoveredDefaultWrapper : styles.defaultWrapper;\n const shouldRenderCommentsContainer = entity.uri !== entityToMatch.uri && !isRowHovered;\n\n return (\n <>\n <div\n className={classnames(wrapperStyle, styles.profileWrapper, styles.entityWrapper, {\n [styles.firstEntityCell]: isFirstRow && !isRowRemovable\n })}\n >\n {isRowHovered && <DragIndicatorIcon className={styles.dragIcon} />}\n <CollapseRowButton className={styles.collapseButton} rowIndex={rowIndex} rowValue={rowValue} />\n <SmallIconButton\n icon={CloseIcon}\n size=\"XS\"\n className={classnames(styles.rowCloseIcon, {[styles.hidden]: !isRowRemovable})}\n onClick={onRemove}\n data-reltio-id={`reltio-matches-table-${containerId ? containerId + '-' : ''}checkbox-${rowIndex}`}\n />\n <EntityUriLink value={getEntityUriForLink(entity)} className={styles.entityLabel}>\n {getLabel(entity.label)}\n </EntityUriLink>\n {shouldRenderCommentsContainer && (\n <CommentsContainer\n className={classnames(styles.commentsContainer, {[styles.checked]: isRowSelected})}\n uri={createObjectIdForPM(entityToMatch.uri, entity.uri)}\n objectType={CollaborationObjectTypes.POTENTIAL_MATCH}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.POTENTIAL_MATCH, {\n entityUri: entityToMatch.uri,\n matchEntityUri: entity.uri\n })}\n allowOnlyOneComment\n />\n )}\n </div>\n </>\n );\n};\n\nexport default withTableContext(\n ({onToggleSelect, entityToMatch}: MatchesTableContextProps, {rowValue, value}: Props) => {\n const {rawValue: match} = rowValue;\n return {\n onRemove: () => onToggleSelect(match),\n isRowRemovable: value !== entityToMatch,\n entityToMatch\n };\n }\n)(EntityProfileRenderer);\n","import React from 'react';\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport {withFilterAtBottom, withTableContext} from '@reltio/components';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\ntype Props = {\n headIndex: number;\n [key: string]: unknown;\n};\n\nconst ProfileHeadCellRenderer = (props: Props) => {\n const isFirstColumn = props.headIndex === 0;\n const styles = useStyles();\n return (\n <div className={classnames(styles.headCell, {[styles.firstHeadCell]: isFirstColumn})}>\n <DefaultHeadCellRenderer {...props} />\n </div>\n );\n};\n\nexport default withTableContext()(withFilterAtBottom(ProfileHeadCellRenderer));\n","import {MatchRulesBlock} from '@reltio/components';\nimport {EntitiesMap, Entity, Match, Metadata} from '@reltio/mdm-sdk';\nimport React, {ComponentProps} from 'react';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {\n metadata: Metadata;\n match: Match;\n entitiesMap: EntitiesMap;\n entity: Entity;\n variant?: ComponentProps<typeof MatchRulesBlock>['variant'];\n };\n};\n\nconst MatchRulesRenderer = ({value}: Props) => {\n const styles = useStyles();\n if (!value) {\n return null;\n }\n const {metadata, match, entitiesMap, entity, variant} = value;\n return (\n <div className={styles.matchRulesWrapper}>\n <MatchRulesBlock\n variant={variant}\n metadata={metadata}\n entitiesMap={entitiesMap}\n match={match}\n entity={entity}\n />\n </div>\n );\n};\n\nexport default MatchRulesRenderer;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {stopPropagation} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {value: string; ov: boolean};\n};\n\nconst BlobRenderer = ({value}: Props) => {\n const {value: blobValue, ov} = value;\n const styles = useStyles();\n return (\n <div className={classnames(styles.blobWrapper, {[styles.ovFalse]: ov === false})} onScroll={stopPropagation}>\n {blobValue}\n </div>\n );\n};\n\nexport default BlobRenderer;\n","import React from 'react';\nimport {BasicImageAttributesValue, getImageAttributeOvThumbnailUrl} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {value: BasicImageAttributesValue; ov: boolean};\n};\n\nconst ImageRenderer = ({value}: Props) => {\n const {value: imgValue} = value;\n const styles = useStyles();\n const src = getImageAttributeOvThumbnailUrl({value: imgValue});\n return (\n src && (\n <div className={styles.imageWrapper}>\n <img src={src} />\n </div>\n )\n );\n};\n\nexport default ImageRenderer;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport classnames from 'classnames';\nimport {EntityTypeIcon, EntityUriLink} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {getEntityType, getLabel, getReferencedEntityFromAttrValue, ReferenceAttributeValue} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: ReferenceAttributeValue;\n};\n\nconst ReferenceRenderer = ({value}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n return (\n value && (\n <div\n className={classnames(styles.defaultWrapper, styles.referenceWrapper, {\n [styles.ovFalse]: value.ov === false\n })}\n >\n <EntityTypeIcon\n className={styles.entityAvatar}\n entityType={getEntityType(metadata, getReferencedEntityFromAttrValue(value).type)}\n />\n <EntityUriLink value={getReferencedEntityFromAttrValue(value).objectURI} className={styles.link}>\n {getLabel(value.label)}\n </EntityUriLink>\n </div>\n )\n );\n};\n\nexport default ReferenceRenderer;\n","import React from 'react';\nimport {Entity} from '@reltio/mdm-sdk';\nimport CommonSourcesRenderer from '../../cell-renderers/SourcesRenderer/SourcesRenderer';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {\n entity: Entity;\n };\n};\n\nconst SourcesRenderer = ({value}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={styles.defaultWrapper}>\n <CommonSourcesRenderer value={value.entity} />\n </div>\n );\n};\n\nexport default SourcesRenderer;\n","import {assoc, map, pipe, prop, propOr, reduce, split, filter, ifElse, always} from 'ramda';\nimport {\n DataTypes,\n EntitiesMap,\n Entity,\n getAttributesForMatchRules,\n getEntityId,\n isAttributeSearchUri,\n Metadata,\n Match,\n getAttributeValuesByPathWithOvFlag,\n getOvAttributeValuesByPathWithOvFlag\n} from '@reltio/mdm-sdk';\n\nimport HeadCellRenderer from './cell-renderers/HeadCellRenderer';\nimport DefaultCellValueRenderer from './cell-renderers/DefaultCellValueRenderer';\nimport EntityProfileRenderer from './cell-renderers/EntityProfileRenderer';\nimport ProfileHeadCellRenderer from './cell-renderers/ProfileHeadCellRenderer';\nimport MatchRulesRenderer from './cell-renderers/MatchRulesRenderer';\nimport BlobRender from './cell-renderers/BlobRenderer';\nimport ImageRenderer from './cell-renderers/ImageRenderer';\nimport ReferenceRenderer from './cell-renderers/ReferenceRenderer';\nimport {MatchesColumnsData, MatchesTableRowValue} from '../../types/potentialMatchesTypes';\nimport {ComparisonViewMode} from '../../constants/views';\nimport SourcesRenderer from './cell-renderers/SourcesRenderer';\n\nconst getAttrPathFromColumnId = split('.');\n\ntype RowValue = {\n entity: Entity;\n metadata: Metadata;\n match: Match;\n entitiesMap?: EntitiesMap;\n matchScore: number;\n};\n\nconst getRowValueForColumn = (\n columnData: MatchesColumnsData,\n {entity, metadata, match, entitiesMap, matchScore}: RowValue,\n showNonOv\n) => {\n switch (columnData.id) {\n case 'profile':\n return entity;\n case 'entityId':\n return {value: getEntityId(entity)};\n case 'matchRules':\n return {metadata, match, entitiesMap, entity, variant: 'all'};\n case 'score':\n return {value: matchScore};\n case 'sources':\n return {entity};\n default: {\n const [attrSource, ...attrPath]: string[] = getAttrPathFromColumnId(columnData.id);\n return pipe(\n prop(attrSource),\n ifElse(\n always(showNonOv),\n getAttributeValuesByPathWithOvFlag(attrPath),\n getOvAttributeValuesByPathWithOvFlag(attrPath)\n )\n )(entity);\n }\n }\n};\n\nconst getBasicTableRowsData = (\n metadata: Metadata,\n columnsData: MatchesColumnsData[],\n matches: Match[],\n showNonOv: boolean,\n entitiesMap?: EntitiesMap\n): MatchesTableRowValue[] =>\n matches.map((match) => {\n const entity = match.object;\n const allMatchRules = match.matchRules || [];\n const matchScore = match.matchScore || 0;\n const matchAttributes = getAttributesForMatchRules(metadata, entity.type, allMatchRules);\n const rowValue = {entity, metadata, match, entitiesMap, matchScore};\n const filteredColumnsData = columnsData.filter(({modes}) =>\n modes ? modes.includes(ComparisonViewMode.TABLE) : true\n );\n\n return pipe(\n reduce(\n (acc, columnData) => assoc(columnData.id, getRowValueForColumn(columnData, rowValue, showNonOv), acc),\n {}\n ),\n assoc('matchAttributes', matchAttributes),\n assoc('rawValue', match)\n )(filteredColumnsData);\n });\n\nconst getNestedPathByColumnId = (columnId: string) => {\n if (isAttributeSearchUri(columnId) as boolean) {\n const [, ...attrPath]: string[] = getAttrPathFromColumnId(columnId);\n return attrPath.length > 1 ? attrPath.slice(0, -1) : null;\n } else {\n return null;\n }\n};\n\nconst getCellValueRendererByDataType = (dataType: DataTypes) => {\n switch (dataType) {\n case DataTypes.TYPE_BLOB: {\n return BlobRender;\n }\n case DataTypes.TYPE_IMAGE: {\n return ImageRenderer;\n }\n case DataTypes.TYPE_REFERENCE: {\n return ReferenceRenderer;\n }\n default:\n return DefaultCellValueRenderer;\n }\n};\n\nconst getCellValueRenderer = (columnData: MatchesColumnsData) => {\n switch (columnData.id) {\n case 'profile': {\n return EntityProfileRenderer;\n }\n case 'matchRules': {\n return MatchRulesRenderer;\n }\n case 'sources': {\n return SourcesRenderer;\n }\n default:\n return getCellValueRendererByDataType(columnData.dataTypeDefinition.type);\n }\n};\n\nconst getBasicTableColumnsData = (sortable: boolean, columnData: MatchesColumnsData[]) =>\n pipe(\n filter(({modes}) => (modes ? modes.includes(ComparisonViewMode.TABLE) : true)),\n map((columnData: MatchesColumnsData) => ({\n sortable,\n ...columnData,\n resizable: true,\n nestedPath: getNestedPathByColumnId(columnData.id),\n headCellRenderer: columnData.id === 'profile' ? ProfileHeadCellRenderer : HeadCellRenderer,\n rowCellValueRenderer: getCellValueRenderer(columnData),\n draggable: propOr(true, 'draggable')(columnData)\n }))\n )(columnData);\n\nexport {getBasicTableRowsData, getBasicTableColumnsData};\n","import React from 'react';\nimport classnames from 'classnames';\nimport {withTableContext} from '@reltio/components';\nimport {isEmptyValue} from '@reltio/mdm-sdk';\nimport {isMatchAttrColumn} from '../../../helpers/attributesHelpers';\nimport {MatchesTableContextProps, RowCellRendererProps} from '../../../types/potentialMatchesTypes';\nimport {useStyles} from './styles';\n\ntype Props = {\n isRowSelected: boolean;\n isCellHighlighted: boolean;\n} & RowCellRendererProps;\n\nconst RowCellRenderer = ({\n rowValue,\n cell,\n CellValueRenderer,\n isRowSelected,\n isCellHighlighted,\n columnIndex,\n ...otherProps\n}: Props) => {\n const styles = useStyles();\n const isFirstColumn = columnIndex === 0;\n return (\n <div\n className={classnames(\n {\n [styles.rowCellSelected]: isRowSelected,\n [styles.rowCellHighlighted]: isCellHighlighted,\n [styles.rowCellFirstColumn]: isFirstColumn\n },\n styles.rowCell\n )}\n >\n {cell.values.map((value, index) => (\n <CellValueRenderer\n key={index}\n value={value}\n rowValue={rowValue}\n isRowSelected={isRowSelected}\n {...otherProps}\n />\n ))}\n </div>\n );\n};\n\nexport default withTableContext(({selected}: MatchesTableContextProps, {columnData, rowValue, cell}: Props) => ({\n isRowSelected: !!selected && selected.includes(rowValue.rawValue),\n isCellHighlighted: isMatchAttrColumn(rowValue.matchAttributes, columnData) && !cell.values.every(isEmptyValue)\n}))(RowCellRenderer);\n","import {lighten, makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n tableContainer: {\n flex: 1,\n display: 'flex',\n color: 'rgba(0,0,0,0.54)',\n overflow: 'hidden',\n background: theme.palette.background.paper\n },\n rowActionButtonsWrapper: {\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n marginRight: '1px'\n },\n rowActionButtons: {\n backgroundColor: 'rgba(238, 238, 238, 1)',\n '&$checked': {\n backgroundColor: lighten(theme.palette.primary.main, 0.82)\n }\n },\n commentsContainer: {\n paddingLeft: '6px',\n paddingRight: '15px',\n backgroundColor: 'rgba(238, 238, 238, 1)',\n borderLeft: '1px solid rgba(0,0,0,0.12)',\n '&$checked': {\n backgroundColor: lighten(theme.palette.primary.main, 0.82)\n }\n },\n checked: {},\n actionButton: {\n marginLeft: '12px',\n '&:last-child': {\n marginRight: '3px'\n }\n },\n hoveredRowRightContentContainer: {\n alignItems: 'center !important' //overlapping inline style for buttons centering\n },\n dragColumnHead: {\n '& #headCell': {\n border: '1px solid',\n borderColor: theme.palette.primary.main\n },\n '& #entityCell': {\n borderLeft: '1px solid',\n borderRight: '1px solid',\n borderLeftColor: theme.palette.primary.main,\n borderRightColor: theme.palette.primary.main\n }\n },\n dragColumnBody: {\n borderLeft: '1px solid',\n borderRight: '1px solid',\n borderLeftColor: theme.palette.primary.main,\n borderRightColor: theme.palette.primary.main\n }\n}));\n","import React, {useCallback, useEffect, useLayoutEffect, useMemo, useState} from 'react';\nimport classnames from 'classnames';\nimport {either, evolve, move} from 'ramda';\nimport {\n BasicTable,\n defaultGetRowCellHeight,\n RowCellAutoSizer,\n CommentsContainer,\n useBasicTableCellRenderer,\n useDynamicRowCellHeight\n} from '@reltio/components';\nimport {\n CollaborationObjectTypes,\n createObjectIdForPM,\n createRelatedObjectUris,\n Entity,\n Metadata,\n Match,\n EntitiesMap,\n getActionPermissionForMatch,\n PotentialMatchesPerspectiveConfig\n} from '@reltio/mdm-sdk';\nimport {getBasicTableColumnsData, getBasicTableRowsData} from './dataHelpers';\nimport withEntityCellValue from './cell-renderers/withEntityCellValue';\nimport RowCellRenderer from './cell-renderers/RowCellRenderer';\nimport {MatchesColumnsData, RowCellRendererProps, MatchesTableContextProps} from '../../types/potentialMatchesTypes';\nimport {useAddRelationDialog} from '../../hooks/useAddRelationDialog';\nimport {useStyles} from './styles';\nimport MatchControls from '../MatchControls/MatchControls';\n\nconst MAX_ROW_VALUES_COUNT = 3;\n\ntype Sorting = {\n field: string;\n order: 'asc' | 'desc';\n};\n\ntype Filter = {\n filter: string;\n value: unknown[];\n};\n\ntype Props = {\n entity?: Entity;\n matches: Match[];\n metadata: Metadata;\n columnsData: MatchesColumnsData[];\n onReorderingColumn: (what, where) => void;\n config: PotentialMatchesPerspectiveConfig;\n filters?: Record<string, Filter>;\n onFilter?: (value: {columnId: string; filter: Filter}) => void;\n sorting?: Sorting;\n onSort?: (column: string) => void;\n selected: Match[];\n onToggleSelect: (match: Match) => void;\n onResetSelect: () => void;\n onSelectAll: () => void;\n isComparisonViewShown: boolean;\n entitiesMap?: EntitiesMap;\n basicTableRef?: React.Ref<HTMLElement>;\n showNonOv: boolean;\n};\n\nconst MatchesTable = ({\n entity,\n matches,\n metadata,\n columnsData,\n onReorderingColumn,\n config,\n filters,\n onFilter,\n sorting,\n onSort,\n selected,\n onToggleSelect,\n onResetSelect,\n onSelectAll,\n entitiesMap,\n basicTableRef,\n isComparisonViewShown,\n showNonOv\n}: Props) => {\n const styles = useStyles();\n const [orderedMatches, setOrderedMatches] = useState(matches);\n useEffect(() => {\n setOrderedMatches(matches);\n }, [matches]);\n const onDndRowReorder = useCallback((oldPosition: number, newPosition: number) => {\n setOrderedMatches(move(oldPosition, newPosition));\n setHoverRowIndex(newPosition);\n }, []);\n\n const tableRowsData = useMemo(\n () => getBasicTableRowsData(metadata, columnsData, orderedMatches, showNonOv, entitiesMap),\n [metadata, columnsData, orderedMatches, showNonOv, entitiesMap]\n );\n\n const sortable = !!onSort;\n const tableColumnsData = useMemo(() => getBasicTableColumnsData(sortable, columnsData), [columnsData, sortable]);\n\n const entityRowData = useMemo(\n () => (entity ? getBasicTableRowsData(metadata, columnsData, [{object: entity}], showNonOv) : []),\n [entity, metadata, columnsData, showNonOv]\n );\n\n const {getRowHeight, CellRenderer: EntityCellRenderer} = useBasicTableCellRenderer({\n rowsData: entityRowData,\n columnsData: tableColumnsData,\n maxRowValuesCount: MAX_ROW_VALUES_COUNT\n });\n\n const entityRowHeight = getRowHeight(0);\n const enhancedColumnsData = useMemo(() => {\n const withEntityCell = withEntityCellValue(EntityCellRenderer);\n return tableColumnsData.map(\n evolve({\n headCellRenderer: withEntityCell\n })\n );\n }, [tableColumnsData, EntityCellRenderer]);\n\n const onDndColumnReorder = useCallback(\n ({what, where}) => {\n const oldPositionId = tableColumnsData[what.columnIndex].id;\n const newPositionId = tableColumnsData[where.columnIndex].id;\n onReorderingColumn(oldPositionId, newPositionId);\n },\n [tableColumnsData]\n );\n\n const tableContext: MatchesTableContextProps = useMemo(\n () => ({\n isAllSelected: selected.length > 0 && selected.length === matches.length,\n entityToMatch: entity,\n selected,\n onToggleSelect,\n onResetSelect,\n onSelectAll,\n isComparisonViewShown\n }),\n [entity, selected, onToggleSelect, onResetSelect, onSelectAll, matches, isComparisonViewShown]\n );\n\n const {getDynamicRowCellHeight, changeRowCellHeight, clearHeightsCache} = useDynamicRowCellHeight();\n\n useLayoutEffect(clearHeightsCache, [matches]);\n\n const [openActionsMenu, setOpenActionsMenu] = useState(false);\n const onActionsMenuOpen = useCallback(() => setOpenActionsMenu(true), []);\n const onActionsMenuClose = useCallback(() => setOpenActionsMenu(false), []);\n\n const [openCollaborationPopup, setOpenCollaborationPopup] = useState(false);\n\n const [hoverRowIndex, setHoverRowIndex] = useState<number>(null);\n const onRowHover = useCallback(\n (rowIndex: number) => {\n setHoverRowIndex((prevHoverRowIndex) =>\n openActionsMenu || openCollaborationPopup ? prevHoverRowIndex : rowIndex\n );\n },\n [openActionsMenu, openCollaborationPopup]\n );\n\n const {showDialog, openAddRelationDialog, AddRelationDialogRenderer} = useAddRelationDialog(config);\n\n const hoveredRowRightContent = useMemo(() => {\n if (hoverRowIndex === null) {\n return null;\n }\n\n const hoveredMatch = orderedMatches[hoverRowIndex];\n\n if (!hoveredMatch) {\n return null;\n }\n\n const permission = getActionPermissionForMatch(\n metadata,\n config,\n hoveredMatch.object,\n entity,\n hoveredMatch.matchRules\n );\n\n const isChecked = selected.includes(hoveredMatch);\n return (\n <div className={classnames(styles.rowActionButtonsWrapper)}>\n <div className={classnames(styles.rowActionButtons, {[styles.checked]: isChecked})}>\n <MatchControls\n value={{\n mainEntity: entity,\n entity: hoveredMatch.object,\n matchRules: hoveredMatch.matchRules,\n permission\n }}\n openAddRelationDialog={openAddRelationDialog}\n onActionsMenuClose={onActionsMenuClose}\n onActionsMenuOpen={onActionsMenuOpen}\n classes={{\n actionButton: styles.actionButton,\n moreOptions: styles.actionButton\n }}\n />\n </div>\n {entity && (\n <CommentsContainer\n className={classnames(styles.commentsContainer, {[styles.checked]: isChecked})}\n uri={createObjectIdForPM(entity.uri, hoveredMatch.object.uri)}\n objectType={CollaborationObjectTypes.POTENTIAL_MATCH}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.POTENTIAL_MATCH, {\n entityUri: entity.uri,\n matchEntityUri: hoveredMatch.object.uri\n })}\n onChangePopupVisibility={setOpenCollaborationPopup}\n allowOnlyOneComment\n showAlways\n />\n )}\n </div>\n );\n }, [\n hoverRowIndex,\n orderedMatches,\n selected,\n styles,\n entity,\n config,\n metadata,\n onActionsMenuOpen,\n onActionsMenuClose,\n openAddRelationDialog\n ]);\n\n const renderRowCell = useCallback(\n (props: RowCellRendererProps) => {\n switch (props.columnData.id) {\n case 'profile':\n return (\n <RowCellRenderer\n {...props}\n hoverRowIndex={hoverRowIndex}\n actionsContent={hoveredRowRightContent}\n tableRef={basicTableRef}\n />\n );\n case 'matchRules':\n return (\n <RowCellAutoSizer onChangeHeight={changeRowCellHeight} {...props}>\n <RowCellRenderer {...props} />\n </RowCellAutoSizer>\n );\n default:\n return <RowCellRenderer {...props} />;\n }\n },\n [changeRowCellHeight, hoverRowIndex, hoveredRowRightContent, basicTableRef]\n );\n\n const getRowCellHeight = useCallback(either(getDynamicRowCellHeight, defaultGetRowCellHeight), [\n getDynamicRowCellHeight,\n defaultGetRowCellHeight\n ]);\n\n const tableClasses = useMemo(\n () => ({\n hoveredRowRightContentContainer: styles.hoveredRowRightContentContainer,\n dragColumnHead: styles.dragColumnHead,\n dragColumnBody: styles.dragColumnBody\n }),\n [styles]\n );\n\n return (\n <div className={styles.tableContainer}>\n <BasicTable\n fixFirstColumn={true}\n columnsData={enhancedColumnsData}\n rowsData={tableRowsData}\n context={tableContext}\n sorting={sorting}\n onSort={onSort}\n filters={filters}\n onFilter={onFilter}\n defaultColumnWidth={250}\n defaultColumnMinWidth={100}\n headRowHeight={56 + entityRowHeight}\n renderRowCell={renderRowCell}\n getRowCellHeight={getRowCellHeight}\n hoverStateEnabled={true}\n hoveredRowRightContent={hoveredRowRightContent}\n hoverRowIndex={hoverRowIndex}\n onRowHover={onRowHover}\n classes={tableClasses}\n maxRowValuesCount={MAX_ROW_VALUES_COUNT}\n dndRowReorderingEnabled\n dndColumnReorderingEnabled\n dndColumnReorderingHandler={onDndColumnReorder}\n dndRowReorderingHandler={onDndRowReorder}\n ref={basicTableRef}\n hoveredContentPosition={0}\n />\n {showDialog && <AddRelationDialogRenderer />}\n </div>\n );\n};\n\nexport default MatchesTable;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {IdContext} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype Props = {\n headCellData: {\n id: string;\n };\n [key: string]: unknown;\n};\n\nconst withEntityCellValue = (EntityCellRenderer: (props: Record<string, unknown>) => JSX.Element) => (\n HeadCellRenderer: (props: Record<string, unknown>) => JSX.Element\n) => {\n const HeadCellWithEntityValue = (props: Props) => {\n const styles = useStyles();\n return (\n <IdContext.Provider value=\"tableHeader\">\n <div className={styles.headCellWithEntity}>\n <div id=\"headCell\">\n <HeadCellRenderer {...props} />\n </div>\n <EntityCellRenderer\n className={classnames(styles.entityRowCell, styles.entityRowCellSelected)}\n columnId={props.headCellData.id}\n rowIndex={0}\n id=\"entityCell\"\n />\n </div>\n </IdContext.Provider>\n );\n };\n\n return HeadCellWithEntityValue;\n};\n\nexport default withEntityCellValue;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n comparisonView: {\n width: '100%',\n overflow: 'auto'\n }\n});\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {propEq, identity, has, move} from 'ramda';\nimport {\n Entity,\n getPotentialMatchesObjectIdsForCollaboration,\n Metadata,\n PotentialMatchesPerspectiveConfig\n} from '@reltio/mdm-sdk';\nimport {DragAndDrop, useCollaboration, CollaborationContext} from '@reltio/components';\nimport mdm from '@reltio/mdm-module';\nimport {LinearLoadIndicator} from '@reltio/components';\nimport {TableHeader} from '../TableHeader/TableHeader';\nimport {useMatchesColumnsData} from '../../hooks/useMatchesColumnData';\nimport ComparisonView from '../ComparisonView';\nimport {useViewState, useViewStateActions} from '../../contexts/ViewStateContext';\nimport {ColumnHandlerContext} from '../../contexts/ColumnHandlerContext';\nimport {PotentialMatchesSavedState} from '../../types/potentialMatchesTypes';\nimport {DEFAULT_ROWS} from '../../constants/defaultRows';\nimport {useFirstPotentialMatches} from '../../hooks/useFirstPotentialMatches';\nimport {useSpinnerAndReloadData} from '../Actions/useSpinnerAndReloadData';\nimport {ComparisonViewMode} from '../../constants/views';\nimport MatchesTable from '../MatchesTable/MatchesTable';\nimport {addFixedAttributes} from './helpers/helpers';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n config: PotentialMatchesPerspectiveConfig;\n isLoaded: boolean;\n savedState: PotentialMatchesSavedState;\n onUpdateSavedState: (stateToSave: PotentialMatchesSavedState) => void;\n};\n\nexport const MatchReviewTable = ({config, isLoaded, savedState, onUpdateSavedState}: Props) => {\n const metadata: Metadata = useSelector(mdm.selectors.getMetadata);\n const entity: Entity = useSelector(mdm.selectors.getEntity);\n const {selectedItems, entitiesMap, comparisonViewMode} = useViewState();\n const {toggleSelect, setSelectedItems, setComparisonViewMode} = useViewStateActions();\n const {isGlobalSpinnerActive} = useSpinnerAndReloadData();\n\n const {uri: entityUri} = entity || {};\n useFirstPotentialMatches(!!entityUri, entity);\n\n const objectIds = useMemo(() => getPotentialMatchesObjectIdsForCollaboration(entityUri, Object.keys(entitiesMap)), [\n entityUri,\n entitiesMap\n ]);\n\n const collaboration = useCollaboration({objectIds});\n\n const styles = useStyles();\n const [allColumnsData, groupedColumnsData, defaultColumns] = useMatchesColumnsData({\n defaultColumnsData: DEFAULT_ROWS,\n metadata,\n entityTypeUri: entity.type\n });\n\n const [visibleColumns, setVisibleColumns] = useState<string[]>(defaultColumns);\n const [showNonOv, setShowNonOv] = useState(false);\n\n const visibleColumnsData = useMemo(\n () => visibleColumns.map((id) => allColumnsData.find(propEq('id', id))).filter(identity),\n [visibleColumns, allColumnsData]\n );\n\n const onReorderingColumn = useCallback(\n (oldPositionId, newPositionId) => {\n const oldPosition = visibleColumns.indexOf(oldPositionId);\n const newPosition = visibleColumns.indexOf(newPositionId);\n setVisibleColumns(move(oldPosition, newPosition));\n },\n [visibleColumns]\n );\n\n const comparisonViewProps = {\n entity,\n metadata,\n selectedItems: selectedItems || [],\n setSelectedItems,\n config,\n selectedColumns: visibleColumns,\n setSelectedColumns: setVisibleColumns,\n entitiesMap,\n columnsData: groupedColumnsData,\n showNonOv\n };\n\n const matchesTableProps = {\n entity,\n metadata,\n entitiesMap,\n config,\n matches: selectedItems,\n columnsData: visibleColumnsData,\n onReorderingColumn,\n onSelectAll: () => {},\n onToggleSelect: toggleSelect,\n onResetSelect: () => {},\n selected: [],\n isComparisonViewShown: false,\n showNonOv\n };\n\n useEffect(() => {\n if (!isLoaded) {\n return;\n }\n if (savedState?.visibleColumns) {\n setVisibleColumns(addFixedAttributes(savedState.visibleColumns));\n }\n if (savedState?.comparisonViewMode) {\n setComparisonViewMode(savedState.comparisonViewMode);\n }\n if (has('showNonOv', savedState)) {\n setShowNonOv(savedState.showNonOv);\n }\n }, [isLoaded]); // eslint-disable-line\n\n useEffect(() => {\n if (!isLoaded) {\n return;\n }\n onUpdateSavedState({comparisonViewMode, visibleColumns, showNonOv});\n }, [visibleColumns, comparisonViewMode, showNonOv]); // eslint-disable-line\n\n return (\n <>\n <TableHeader\n config={config}\n columnsData={groupedColumnsData}\n selectedColumns={visibleColumns}\n onChangeColumns={setVisibleColumns}\n showNonOv={showNonOv}\n onChangeShowNonOv={setShowNonOv}\n />\n <CollaborationContext.Provider value={collaboration}>\n {comparisonViewMode === ComparisonViewMode.COLUMNS ? (\n <DragAndDrop>\n <ColumnHandlerContext.Provider value={toggleSelect}>\n {isLoaded && (\n <ComparisonView {...comparisonViewProps} classes={{root: styles.comparisonView}} />\n )}\n </ColumnHandlerContext.Provider>\n </DragAndDrop>\n ) : (\n isLoaded && <MatchesTable {...matchesTableProps} />\n )}\n </CollaborationContext.Provider>\n {isGlobalSpinnerActive && <LinearLoadIndicator />}\n </>\n );\n};\n","import {useEffect, useMemo} from 'react';\nimport {Entity, Order} from '@reltio/mdm-sdk';\nimport {prop} from 'ramda';\nimport {useViewStateActions} from '../contexts/ViewStateContext';\nimport {DEFAULT_OPTIONS} from '../constants/defaultOptions';\nimport {useMatches} from './useMatches';\n\nexport const useFirstPotentialMatches = (enabled: boolean, entity: Entity) => {\n const {setSelectedItems} = useViewStateActions();\n\n const entityUri = prop('uri', entity);\n const dataTenant = prop('dataTenant', entity);\n const initialRequestParam = useMemo(\n () => ({\n enabled: !!entityUri,\n entity,\n filter: '',\n page: 0,\n sorting: {\n field: 'score',\n order: Order.desc\n },\n rowsPerPage: 3,\n options: DEFAULT_OPTIONS\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dataTenant, entityUri]\n );\n\n const {matches} = useMatches(initialRequestParam);\n\n useEffect(() => {\n setSelectedItems(matches);\n }, [matches, setSelectedItems]);\n};\n","import {getEntityTypeMatchAttributes, Metadata} from '@reltio/mdm-sdk';\nimport {concat, pipe} from 'ramda';\nimport {useMemo} from 'react';\nimport {getColumnsData, getMatchAttrColumns, groupColumnsDataByMatchAttributes} from '../helpers/attributesHelpers';\nimport {getSortOptionIdFromData} from '../helpers/sortHelpers';\n\nimport {MatchesColumnsData, GroupedColumnData} from '../types/potentialMatchesTypes';\n\ntype MatchesColumnsDataProps = {\n defaultColumnsData: MatchesColumnsData[];\n additionalColumnsData?: MatchesColumnsData[];\n metadata: Metadata;\n entityTypeUri: string;\n};\n\nexport const useMatchesColumnsData = ({\n defaultColumnsData,\n additionalColumnsData,\n metadata,\n entityTypeUri\n}: MatchesColumnsDataProps): [MatchesColumnsData[], GroupedColumnData[], string[]] => {\n return useMemo(() => {\n const attrColumnsData = getColumnsData(metadata, entityTypeUri);\n const allColumnsData: MatchesColumnsData[] = defaultColumnsData\n .concat(additionalColumnsData || [])\n .concat(attrColumnsData);\n const matchAttributes: string[] = getEntityTypeMatchAttributes(metadata, entityTypeUri);\n const groupedColumnsData: GroupedColumnData[] = groupColumnsDataByMatchAttributes(\n matchAttributes,\n allColumnsData\n );\n const defaultColumns: string[] = pipe(\n getMatchAttrColumns,\n concat(defaultColumnsData),\n getSortOptionIdFromData\n )(matchAttributes, attrColumnsData);\n return [allColumnsData, groupedColumnsData, defaultColumns];\n }, [defaultColumnsData, additionalColumnsData, metadata, entityTypeUri]);\n};\n","import {concat, filter, map, pipe, prop, propEq, uniq} from 'ramda';\nimport {DEFAULT_ROWS} from '../../../constants/defaultRows';\n\nconst addFixedAttributes = (visibleAttributes: string[] = []): string[] => {\n const getFixedAttributesIds = pipe(filter(propEq('hideable', false)), map(prop('id')));\n const getUnique = pipe(concat, uniq);\n\n const fixedAttributesIds = getFixedAttributesIds(DEFAULT_ROWS);\n return getUnique(fixedAttributesIds, visibleAttributes);\n};\n\nexport {addFixedAttributes};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.25 3H3.75c-.825 0-1.5.675-1.5 1.5v9c0 .825.675 1.5 1.5 1.5h10.5c.825 0 1.5-.675 1.5-1.5v-9c0-.825-.675-1.5-1.5-1.5zm-9 10.5h-1.5v-6h1.5v6zM3.75 6h1.5V4.5h-1.5V6zm6 7.5h-3v-6h3v6zm-3-7.5h3V4.5h-3V6zm7.5 7.5h-3v-6h3v6zm-3-7.5h3V4.5h-3V6z\",\n fill: \"#000\",\n fillOpacity: \".541\"\n})));","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n flexBox: {\n display: 'flex',\n alignItems: 'center'\n },\n icon: {\n display: 'flex',\n alignItems: 'center',\n margin: '0 4px'\n }\n});\n","import {useViewState, useViewStateActions} from '../../contexts/ViewStateContext';\nimport i18n from 'ui-i18n';\nimport {ConfirmationDialog} from '@reltio/components';\nimport React, {useCallback} from 'react';\nimport {ComparisonViewMode, MAX_PROFILES_TO_COMPARE} from '../../constants/views';\nimport TableIcon from './TableIcon.svg';\nimport {useStyles} from './styles';\n\nexport const ChangeModeConfirmation = () => {\n const {selectedItems, comparisonViewMode, limitSelection} = useViewState();\n const {setComparisonViewMode, deleteExtraMatches} = useViewStateActions();\n const styles = useStyles();\n const onSave = useCallback(() => {\n setComparisonViewMode(ComparisonViewMode.TABLE);\n }, [setComparisonViewMode]);\n const open = comparisonViewMode === ComparisonViewMode.COLUMNS && selectedItems.length > limitSelection;\n const title = i18n.text('Switch to table view');\n const content = (\n <div className={styles.flexBox}>\n {i18n.text('Please switch to')}\n <div className={styles.icon}>\n <TableIcon />\n </div>\n {i18n.text('Table View to compare more than ${max} profiles', {max: MAX_PROFILES_TO_COMPARE})}\n </div>\n );\n return (\n <ConfirmationDialog\n open={open}\n title={title}\n content={content}\n onSave={onSave}\n onDiscard={deleteExtraMatches}\n saveCaption={i18n.text('Proceed')}\n discardCaption={i18n.text('Cancel')}\n />\n );\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n perspectiveView: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif',\n overflowX: 'hidden',\n overflowY: 'auto',\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: theme.palette.background.default\n },\n potentialMatchesWrapper: {\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n flexGrow: 1\n },\n potentialMatchesContainer: {\n display: 'flex',\n overflow: 'hidden',\n flexGrow: 1\n },\n '@global div[role=tooltip]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n },\n '@global div[role=presentation]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n }\n}));\n","import React, {useCallback, useEffect, useRef} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdm from '@reltio/mdm-module';\nimport {equals} from 'ramda';\nimport {useSnackbar, SnackbarContext, useSavedStateForEntityType, ScreenProfileBand} from '@reltio/components';\nimport {Entity, PotentialMatchesPerspectiveConfig} from '@reltio/mdm-sdk';\nimport {RightSidePanel} from './components/RightSidePanel/RightSidePanel';\nimport {MatchReviewTable} from './components/MatchReviewTable/MatchReviewTable';\nimport {ViewStateProvider} from './contexts/ViewStateContext';\nimport {ReloadDataProvider} from './contexts/ReloadDataContext';\nimport {PotentialMatchesSavedState} from './types/potentialMatchesTypes';\nimport {ChangeModeConfirmation} from './components/ChangeModeConfirmation';\nimport {useStyles} from './styles';\n\ntype Props = {\n config: PotentialMatchesPerspectiveConfig;\n saveState: (state: Record<string, PotentialMatchesSavedState>) => void;\n getSavedState: () => Promise<Record<string, PotentialMatchesSavedState>>;\n};\n\nexport const PotentialMatchesView = ({config, getSavedState, saveState}: Props) => {\n const styles = useStyles();\n const entity: Entity = useSelector(mdm.selectors.getEntity);\n const {SnackbarRenderer, showSnackbarMessage} = useSnackbar();\n const lastSavedState = useRef<PotentialMatchesSavedState>();\n\n const {isLoaded, savedState, updateSavedState} = useSavedStateForEntityType<PotentialMatchesSavedState>({\n getSavedState,\n saveState,\n entityTypeUri: entity.type\n });\n\n useEffect(() => {\n if (!isLoaded) return;\n lastSavedState.current = savedState || {};\n }, [isLoaded, savedState]); // eslint-disable-line\n\n const onUpdateSavedState = useCallback(\n (stateToSave = {}) => {\n if (!lastSavedState.current) return;\n const newSavedState = {...lastSavedState.current, ...stateToSave};\n if (!equals(newSavedState, lastSavedState.current)) {\n updateSavedState(newSavedState);\n lastSavedState.current = newSavedState;\n }\n },\n [updateSavedState]\n );\n\n return (\n <ViewStateProvider>\n <ReloadDataProvider>\n <SnackbarContext.Provider value={showSnackbarMessage}>\n <div className={styles.perspectiveView}>\n {entity?.uri && (\n <div className={styles.potentialMatchesContainer}>\n <div className={styles.potentialMatchesWrapper}>\n <ScreenProfileBand entity={entity} />\n <MatchReviewTable\n config={config}\n isLoaded={isLoaded}\n savedState={savedState}\n onUpdateSavedState={onUpdateSavedState}\n />\n </div>\n <RightSidePanel\n config={config}\n isLoaded={isLoaded}\n savedState={savedState}\n onUpdateSavedState={onUpdateSavedState}\n />\n <SnackbarRenderer />\n <ChangeModeConfirmation />\n </div>\n )}\n </div>\n </SnackbarContext.Provider>\n </ReloadDataProvider>\n </ViewStateProvider>\n );\n};\n","import MomentUtils from '@date-io/moment';\nimport PropTypes from 'prop-types';\nimport React, {useCallback} from 'react';\nimport ReactResizeDetector from 'react-resize-detector';\nimport {createGenerateClassName, StylesProvider} from '@material-ui/core/styles';\n\nimport {MuiPickersUtilsProvider} from '@material-ui/pickers';\nimport {Provider} from 'react-redux';\nimport {identity} from 'ramda';\nimport {PotentialMatchesConfigType, promisifyCallback} from '@reltio/mdm-sdk';\nimport {PotentialMatchesView as PMView} from './PotentialMatchesView/PotentialMatchesView';\nimport {ErrorPopup, ViewIdContext} from '@reltio/components';\nimport {PotentialMatchesSavedState} from './PotentialMatchesView/types/potentialMatchesTypes';\n\nconst generateClassName = createGenerateClassName({\n productionPrefix: 'potentialMatchesView',\n disableGlobal: true\n});\n\nconst PotentialMatchesView = ({config, store, onResize = identity, saveState, getSavedState}) => {\n const getSavedStatePromisified = useCallback(\n promisifyCallback<Record<string, PotentialMatchesSavedState>>(getSavedState),\n [getSavedState]\n );\n\n return (\n <Provider store={store}>\n <ViewIdContext.Provider value={config.id}>\n <StylesProvider generateClassName={generateClassName}>\n <MuiPickersUtilsProvider utils={MomentUtils}>\n <ReactResizeDetector\n handleHeight\n onResize={(width, height) => onResize(Math.floor(width), Math.floor(height))}\n />\n {config && (\n <PMView config={config} saveState={saveState} getSavedState={getSavedStatePromisified} />\n )}\n <ErrorPopup />\n </MuiPickersUtilsProvider>\n </StylesProvider>\n </ViewIdContext.Provider>\n </Provider>\n );\n};\n\nPotentialMatchesView.propTypes = {\n config: PotentialMatchesConfigType,\n store: PropTypes.object,\n onResize: PropTypes.func,\n saveState: PropTypes.func,\n getSavedState: PropTypes.func\n};\n\nexport default PotentialMatchesView;\n","import {PotentialMatchesView} from '@reltio/potential-matches';\n\nexport default PotentialMatchesView;\n"],"names":["useStyles","makeStyles","icon","maxHeight","maxWidth","marginRight","group","metadata","styles","absoluteImagePath","useSelector","mdm","entityTypeGraphIcon","getEntityTypeGraphIcon","type","id","absoluteImageUrl","getAbsoluteImageUrl","AvatarWithFallback","className","avatarText","title","AvatarStates","rootClasses","otherProps","state","setState","useState","useEffect","ICON_MODE","TEXT_MODE","onImageLoadFail","ERROR_MODE","Avatar","classnames","iconRoot","src","onError","textRoot","attribute","cursor","lineHeight","flexBasis","display","alignItems","padding","width","borderBottom","disabled","attributeWithValue","noSelect","name","fontSize","color","overflow","whiteSpace","textOverflow","direction","textAlign","flex","defaultGetLabel","either","prop","value","getLabel","onSelectAttributeClick","label","onClick","undefined","ExpandedValueTooltip","i18n","SmallIconButton","size","ArrowDropDown","isEqualAttributes","eqBy","pick","checkAttributeIncludes","selectedAttributes","find","filterItem","item","filterText","toLowerCase","includes","filterItemsTree","children","some","getAttributeIndex","findIndex","getContainerWidth","getMaxItemWidth","getAttributeGroupData","groupId","groupName","level","noFilter","isItemFiltered","concat","filter","subItem","flatMap","flat","prepareGroupsForSelectAttributeList","curry","groups","map","items","attributes","length","subHeader","backgroundColor","margin","fontWeight","memo","onItemClick","focusIndex","hideCheckBox","mdmModule","VirtualGroupedList","getItemSize","i","renderItem","style","index","checked","isFocused","AttributeListItem","key","fieldName","data","notSelectable","Highlighter","text","highlight","labelInText","LogoIcon","renderGroupTitle","ListItem","component","needGroupIcon","AttributeGroupIcon","selector","minWidth","background","boxSizing","borderRadius","itemsGroups","onSelect","onRestoreFocus","identity","onOpenPopup","disableRestoreFocus","disableEnforceFocus","single","ungroup","selectAnchor","setSelectAnchor","closePopup","useCallback","isPopupOpen","setFilterText","clearFilterText","setSelectedAttributes","clearSelectedAttributes","filteredItemsGroups","useMemo","pipe","when","always","chain","flatten","flattenGroupedItemsData","containerWidth","Math","max","handleOnClose","tap","searchInputRef","useRef","onListItemClick","selectedAttribute","filterSelectedAttributes","current","focus","handleSearchOnEnter","groupData","getOnEnterHandler","handleKeyDown","useKeyboardNavigation","open","onSelectFocusedItem","selectedItems","onClose","event","currentTarget","SelectionPopup","anchorEl","onSearch","containerHeight","searchInputOnKeyDown","anchorOrigin","horizontal","vertical","height","contextSelector","CellRenderer","withContext","TableContext","getRowCellKey","rowIndex","columnData","cellIndex","rowCellHeightsMap","setRowCellHeightsMap","rowCellHeightsMapCache","flushHeightUpdates","debounce","clearHeightsCache","getDynamicRowCellHeight","__","changeRowCellHeight","useWith","hidden","visibility","CollapseRowButton","rowValue","toggleRowCollapse","getIsRowCollapsible","getIsRowCollapsed","useContext","RowCollapseContext","isCollapsibleRow","isCollapsedRow","CollapseButton","isOpen","e","stopPropagation","propTypes","PropTypes","RowCellAutoSizer","onChangeHeight","cell","cellProps","cellRef","changeCellHeight","adjustCellHeight","clientHeight","useDidUpdateEffect","rawValue","handleHeight","onResize","RootRef","rootRef","collapseButton","expandLess","transform","tooltipTitle","buttonProps","ExpandMore","iconClassName","tooltipProps","theme","root","flexWrap","flexDirection","justifyContent","minHeight","palette","primary","letterSpacing","secondary","paddingTop","root_small","embedded","flexShrink","full","textBox","marginTop","secondaryText","button","boxShadow","EMPTY_STATE_VARIANTS","EMPTY_STATE_ICONS","SEARCH_RESULTS","props","viewBox","xmlns","xmlnsXlink","cx","cy","fx","fy","r","gradientTransform","stopColor","stopOpacity","offset","x1","y1","x2","y2","x","y","filterUnits","stdDeviation","in","stroke","strokeWidth","fill","fillRule","xlinkHref","fillOpacity","mask","opacity","d","rx","ry","SELECT_ATTRIBUTES","maskType","maskUnits","clipRule","gradientUnits","NO_DATA","dx","dy","result","values","mixBlendMode","ERROR","colorInterpolationFilters","floodOpacity","mode","in2","variant","LogoRenderer","buttonTitle","access","showButton","Typography","classes","h5","subtitle1","Button","row","marginBottom","rowItem","paddingRight","fullWidth","flexGrow","readOnlyLogicOperatorContainer","readOnlyFilter","marginLeft","ReadOnlyLogicOperator","rowData","operator","capitalize","ReadOnlyFilter","getFilterOptionLabel","QueryBuilderRow","previousRowData","LogicOperatorComponent","AttributeSelectorComponent","FilterSelectorComponent","ValuesEditorComponent","ActionsComponent","filterSelectorRef","attributeSelectorProps","rowContext","logicOperatorContainer","attributeSelectorContainer","filterSelectorContainer","textFieldInputRef","valuesEditorContainer","actionsContainer","QueryBuilderAttributeType","onOpen","disablePopoverRestoreFocus","QueryBuilderRowsGroup","rowClasses","rowsData","lastRowAttributeSelectorProps","filterSelectorRefIndex","rowProps","renderRow","previousRow","path","lastRowProps","withMuiSkin","CreatableSelect","Option","innerProps","innerRef","isSelected","selectProps","MenuItem","classNames","option","ref","selected","Checkbox","onMouseMove","onMouseOver","tabIndex","isRequired","top","left","placeholder","clearIndicator","spacing","dropdownIndicator","MultiSelect","creatable","getOptions","loadingIndicator","components","componentsProp","classesProp","stylesProp","onChange","onChangeProp","onInputChange","onInputChangeProp","menuPlacement","reactSelectProps","SelectComponent","AsyncSelect","Select","inputValue","setInputValue","multiSelectClasses","omit","inputId","multiSelectComponents","mergeClasses","indicatorSeparator","base","loadingMessage","fontFamily","labelProps","TextFieldProps","InputLabelProps","htmlFor","shrink","isMulti","actionMeta","action","closeMenuOnSelect","hideSelectedOptions","loadOptions","defaultProps","cacheOptions","defaultOptions","options","ClearIndicator","Control","DropdownIndicator","DownChevron","CrossIcon","Group","GroupHeading","IndicatorsContainer","IndicatorSeparator","Input","LoadingIndicator","Menu","MenuList","MenuPortal","LoadingMessage","NoOptionsMessage","MultiValue","MultiValueContainer","MultiValueLabel","MultiValueRemove","Placeholder","SelectContainer","SingleValue","ValueContainer","control","valueContainer","multiValue","noOptionsMessage","singleValue","menu","container","groupHeading","indicatorsContainer","input","menuList","menuPortal","multiValueLabel","multiValueRemove","menuPortalTarget","getOptionValue","isSearchable","inputRef","profileBandNavigation","comments","ScreenProfileBand","entity","historySlice","objectIds","getProfileBandObjectIdsForCollaboration","collaboration","useCollaboration","entityUri","getEntityUriForLink","CollaborationContext","ProfileBand","COMMENTS_CONTAINER_VISIBILITY_AREA","aEntity","ProfileBandHistory","ProfileBandNavigation","CommentsContainer","uri","relatedObjectUris","createRelatedObjectUris","CollaborationObjectTypes","objectType","displayName","sourceType","findSourceSystemByUri","getSourceSystemLabel","sourceIcon","renderAttributesList","valueContainerClassName","attributeValue","expanded","LabelRenderer","RightSlot","attributeType","DataTypes","attributeValues","imageSize","imageHeight","imageWidth","imageMargin","CrosswalksDisplayContext","createContext","CrosswalksDisplayProvider","Provider","useCrosswalkColor","crosswalk","getCrosswalkColor","getColor","getCrosswalkId","useHighlightedCrosswalks","highlightedCrosswalks","useCrosswalkHighlight","setCrosswalkHighlighted","noop","isHighlighted","isDimmed","highlightCrosswalk","removeHighlight","useCrosswalkFocus","toggleCrosswalkFocus","focusedCrosswalks","_extends","Object","assign","target","arguments","source","prototype","hasOwnProperty","call","apply","this","React","ActivePanel","ComparisonViewMode","DataContext","reloadData","setReloadHandler","contextValue","dataHandler","reloadHandler","createContextValue","ReloadDataProvider","useReloadData","dataContext","Error","ViewStateContext","ViewDispatchContext","SET_GLOBAL_SPINNER","SET_SELECTED_ITEMS","DESELECT_BY_ENTITIES","TOGGLE_SELECT","SET_LIMIT_SELECTION","SET_COMPARISON_VIEW_MODE","SET_ENTITIES_MAP","DELETE_EXTRA_MATCHES","actions","setGlobalSpinner","createStandardAction","setSelectedItems","deselectByEntities","toggleSelect","setLimitSelection","setComparisonViewMode","setEntitiesMap","deleteExtraMatches","viewStateReducer","isGlobalSpinnerActive","payload","slice","limitSelection","evolve","object","itemIndex","selectedItem","remove","append","newMode","comparisonViewMode","COLUMNS","entitiesMap","ViewStateProvider","dispatch","useReducer","viewStateAction","useActions","useViewState","viewStateContext","useViewStateActions","viewStateActions","RESET","SET_OPTIONS","basicTableViewState","reset","setOptions","reducer","createAttributeItemConfig","attrNode","parents","config","createAttributeItemBasicConfig","childNode","attrType","attributeUriToSearchUri","collectAttributeItems","entityType","getAllAttributeTypesTree","getColumnsDataFromEntityAttributes","attr","dataTypeDefinition","getAttrDataTypeDefinition","getColumnsData","getEntityAttributesFromMetadata","isMatchAttrColumn","matchAttributes","column","attrUri","isReferenceAttrColumn","isSubAttrIdForColumn","isNestedAttrColumn","isNested","isReference","parentColumn","columnId","startsWith","isNestedForOneOfColumns","columns","isRelatedToColumns","getMatchAttrColumns","columnsData","reject","ROWS_PER_PAGE_OPTIONS","MATCHES_SORT_OPTIONS","ADDITIONAL_SORT_OPTIONS_DATA","DEFAULT_SORT_OPTIONS","getSortOptionIdFromData","pluck","buildRulesStringFormFilters","filters","join","isMatchRuleFilter","any","equals","MatchRulesAttrTypes","useMatchesReducer","defaultRowsPerPage","initState","page","rowsPerPage","stateReducer","resultActions","viewActions","viewState","showAddRelationErrors","error","console","ErrorPopup","message","showApiError","errorMessage","showDCRReviewErrors","errorCode","ApiErrorCode","useSpinnerAndReloadData","onStartRequest","onFinishRequest","MergeButton","forwardRef","entities","ActionButtonMode","onMenuClose","onSuccess","NotMatchButton","version","SetAMatchButton","markingIsInProgress","setAMatch","setAsMatch","then","finally","useSetAMatch","ActionButton","SetAsMatchIcon","DCRReviewButton","showSnackbarMessage","SnackbarContext","operationIsInProgress","startPMReview","selectors","workflowPath","getWorkflowPath","environment","getWorkflowEnvironmentUrl","tenant","getTenant","getUri","uris","getUrisFromEntities","startProcessInstanceByPairs","processType","objectURIs","catch","useRequestDCRReview","canStartProcessInstanceSearchQuery","isEmptyValue","DcrReviewIcon","ReinstateMatchButton","reinstateIsInProgress","onReinstateMatch","dtssPath","params","customerTenant","isDataTenantEntity","reinstateDataTenantEntityMatch","reinstateMixedEntitiesMatches","useReinstateMatch","CreateRelationButton","mainEntity","currentEntity","matchRules","AddRelationIcon","RightSideHeaderContext","attributeSelect","field","split","sortLevel","findNode","parentFieldName","node","handleChange","val","BasicAttributeSelector","rowCheckbox","position","header","border","borderTop","sorting","arrow","transition","rotate","selectedCount","totalCount","sortOptions","onSorting","totalOnPage","sidePanelHeaderProps","SidePanelContentHeader","secondTitle","n","indeterminate","IconButton","order","Order","useSortOptions","additionalOptions","entityTypeUri","getEntityType","getSortingItemsGroups","col","paddingBottom","actionButtons","active","wrapper","content","right","pointerEvents","borderLeft","paddingLeft","entityLabel","main","textDecoration","matchRulesWrapper","selectedRow","coloredRow","matchScore","commentsContainer","rightButton","tenantIcon","divider","match","entityToMatch","isRowSelected","isColumnViewMode","actionButtonsRenderer","getEntityColor","openMenu","setOpenMenu","isRowSelectable","Actions","EntityUriLink","MatchRulesBlock","MatchRuleVariant","Divider","orientation","DataTenantBadge","dataTenantId","dataTenant","buttonClassName","hoveredMatch","onActionsMenuOpen","onActionsMenuClose","createObjectIdForPM","matchEntityUri","allowOnlyOneComment","showAlways","view","overflowY","overflowX","MatchItems","matches","gap","inputRoot","menuButtonRoot","searchTenant","onChangeSearchTenant","currentSearchText","setCurrentSearchText","handleSearch","propEq","trim","handleChangeSearchText","newSearchText","isEmpty","document","activeElement","TenantsDropDownSelector","selectedTenant","onChangeTenant","SearchInput","autofocus","onKeyPress","MenuItemRenderer","ActionsPanel","numberOfButtons","actionButtonSize","buttonActions","menuActions","splitAt","buttonMode","buttonSize","actionButton","DropDownMenuButton","buttonComponent","SmallIconButtonWithTooltip","MoreVertIcon","moreOptions","menuId","menuItems","onMenuOpen","mainArea","FindMatchesView","useDispatch","changeRowsPerPage","changePage","searchText","setSearchText","setSearchTenant","handleChangeSearchTenant","newSearchTenant","requestFilters","total","findEntities","enabled","searchTenantId","activityFilter","globalFilter","setTotal","setEntities","safePromise","useSafePromise","DEFAULT_SELECTION","filterQuery","buildFilterQueryString","isDtss","dtssProps","entityRequestOptions","sort","select","entityRequest","getFilteredEntitiesFromDataTenant","enrichEntityWithDataTenant","getFilteredEntities","totalRequestOption","totalRequest","getTotalFromDataTenant","getTotals","Promise","all","results","totalResponse","useFindEntities","profile","resetPage","resetSelected","selectAll","getEntityUriFromMatchObject","canMerge","canMark","getActionPermissionForMatch","isDTEntity","show","pathEq","BasicTablePagination","rowsPerPageOptions","count","onChangePage","onChangeRowsPerPage","LinearLoadIndicator","useMatches","rules","onStartLoading","onFinishLoading","loadMatches","useMatchesLoader","markMatchedValues","dialogPaper","dialogTitle","titleText","fontize","attributeList","containerRef","relation","inRelations","inRelationTypes","outRelations","outRelationTypes","isNotDuplicatedInRelation","isNotDuplicatedOutRelation","inOutRelationsDeduplicator","setObjectTypes","assocPath","startObject","objectTypeURI","endObject","matchActionConfig","propOr","rulesConfig","getRulesConfig","relationTypeUris","createRelation","canCreateRelationBetweenEntities","getRelationType","getRelationTypesFromConfig","relationUri","relationType","pathOr","relationAttrTypes","getRelationAttributesList","attributeListEntity","getActivenessAttributes","viewId","onRelationTypeChange","onAddAttributes","param","onChangeAttribute","onDeleteAttribute","handleClose","resetErrors","validate","errors","validateConnectionRelation","onCancel","boundariesElement","popupBoundariesValue","element","priority","Dialog","paper","DialogTitle","disableTypography","DialogContent","PopupBoundariesContext","ConnectionRelationTypeSelector","applyFirstByDefault","AttributesList","attrTypes","showEmptyEditors","ModeTypes","parentUri","DialogActions","startDate","endDate","startEntityUri","endEntityUri","useAddRelationDialog","showDialog","setShowDialog","relationDialogContent","setRelationDialogContent","openAddRelationDialog","newConnection","generateNewRelationUri","isNew","createNewConnection","closeAddRelationDialog","AddRelationDialogRenderer","DEFAULT_OPTIONS","showTransitiveMatches","MatchesView","hasWorkflow","matchRulesFilters","regularFilters","partition","matchesFilter","getPotentialMatchesObjectIdsForCollaboration","keys","canAddRelation","hasDTEntity","EntitiesMapContext","NotMatchView","loadNotMatches","setMatches","dataTenants","dtssParams","dtssRequest","getNotMatchesFromDataTenants","getNotMatchWithDtss","withDtssPotentialItems","getNotMatch","getNotMatchWithPaging","usePagingSimulator","markAsNotMatch","record","NOT_MATCH","loadNotMatchesIfNeeded","force","addGlobalFilterToQuery","activeness","response","originalResponse","getEntitiesMapForTransitiveMatches","useNotMatches","Content","activeView","users","useUsers","UsersContext","PotentialMatches","FindMatches","NotAMatch","render","ValuesEditor","changeFilter","commonProps","newValues","InputProps","isMatchRuleAttrType","MatchRulesSelector","isSourceSystemAttrType","SourceSystemsSelector","optionLabel","potentialMatchesComponents","FilterSelector","FilterOptions","MatchesAttributesFiltersButton","attributeTypes","setShowTransitiveMatches","AttributesFiltersButton","onTogglePopup","isFiltersApplied","FormControlLabel","light","sourceSystemsComponents","RightSidePanel","isLoaded","savedState","onUpdateSavedState","matchesFilters","setMatchesFilters","matchesOptions","setMatchesOptions","findMatchesFilters","setFindMatchesFilters","notMatchFilters","setNotMatchFilters","matchesSorting","setMatchesSorting","findMatchesSorting","setFindMatchesSorting","notMatchSorting","setNotMatchSorting","setActive","toggleActive","newId","resetActive","analyticsAttributes","isReadableAttribute","getAttributeTypes","matchRulesAttributes","check","hasMatchRulesWithoutML","hasMlMatchRule","reduce","push","potentialMatchesAttributeTypes","findMatchesAttributeTypes","EntityAttrTypes","CrosswalksAttrTypes","onChangeMatchesFilters","elements","PotentialMatchesIcon","headerProps","mainTitle","rightContent","FindMatchesIcon","NotAMatchIcon","showSidePanel","SidePanel","SideButtonsPanel","buttonsProps","onButtonClick","activeIndexId","MODES","Icon","ViewColumnRoundedIcon","TABLE","TableRowsOutlinedIcon","isTableOnly","ModeSwitcher","modes","baseMode","maxProfiles","modeId","clearAllButton","mergeButton","splitter","actionSplitter","getEntityObjects","TableHeader","selectedColumns","onChangeColumns","showNonOv","onChangeShowNonOv","getActionPermissionForMatches","hasSelectedItems","handleToggleShowOvValue","not","settingItems","selectable","BasicViewHeader","Spacer","SettingsMenu","ColumnsSettings","ExpandedContext","expandedMap","onExpandType","Component","WithExpanded","componentProps","matchedAttributeBackground","complexAttributesHeadRenderer","complexAttributesHeadLabel","arrowButton","matchedAttribute","badge","alignSelf","highlightedValuesUris","HighlightedValuesContext","areOneHierarchyUris","Tooltip","ExpandableAttributeValuesBlock","withExpanded","ReadOnlyAttributeValuesBlock","AttributesRenderer","matchedValuesUris","highlightedValuesContextValue","highlightedClassName","MatchedValuesCounter","ColumnDataContext","menuButtonWrapper","headCell","HeadCellRenderer","hideable","setAnchor","setHoveredId","hoveredId","ComplexAttributesHeadRenderer","onExpandClick","ArrowExpandButton","HoveredEntityContext","hoveredEntity","resetHoveredEntity","permission","isEntityFindMatch","isEntityNotMatch","isEntityPotentialMatch","hovered","colored","removeButton","zIndex","matchControlsContainer","isPotentialMatchesTask","task","WorkflowTasksAvailabilityContext","assigneeContainer","getCommentsInfoFromTasks","WorkflowCard","workflowTasks","matchUri","requestIsInProgress","setRequestIsInProgress","tasks","setTasks","loadTasks","getTasksForEntity","hasMatchEntityUri","propSatisfies","isTaskBelongsToMatch","allPass","updateTaskState","taskId","mergeLeft","onActionSuccess","loading","useWorkflowTasks","setWorkflowTaskAvailability","TaskActions","possibleActions","assignee","isTaskOpen","WorkflowTasksContext","PotentialMatchReviewCard","date","dueDate","processDefinitionDisplayName","createdBy","step","getPropsFromTasks","AssigneeSelector","WorkflowComments","DEFAULT_ROWS","draggable","initialWidth","autoResize","itemContainer","showTooltip","SourceIcon","crosswalkIcon","labelContainer","spacer","crosswalks","checkIsDataTenantEntity","additionalPropsForDefaultRows","cellRenderer","isSelectedEntity","onRemove","rest","isHovered","getEntityId","controlProps","CloseIcon","ProfileCard","MatchControls","headCellRenderer","workflowCard","sources","SourcesRenderer","entityId","nestedAttributeValue","subAttributeType","getFakeAttributeValueForCrosswalk","score","defaultRows","getAttrTypeNameByUri","last","getMatchedValuesUris","matchedValues","cond","getColumnDataForRowData","onRemoveItem","isMainEntity","isAttributeSearchUri","attrSource","getAttributeSource","isOv","getAttributeValues","ColumnHandlerContext","getFirstLevelParentAttribute","replaceSubAttributesWithParent","uniq","Action","TEXT","INSERT_BELOW","INSERT_ABOVE","HIDE","Popover","List","handler","ListItemText","primaryTypographyProps","renderListItem","getClickHandler","deepFilter","nodes","groupColumnsData","groupedItems","headColumns","elemId","getAdditionalRows","setAction","isOpenConfigPopup","setIsOpenConfigPopup","closeAddRowPopup","newAttributes","indexOf","splice","ColumnsSettingsPopup","onColumnClick","newIndex","borderStyle","comparisonTableWrapper","collapsedRow","comparisonTable","borderSpacing","borderRight","verticalAlign","wordBreak","wordWrap","emptyState","ComparisonTable","setSelectedColumns","allColumnsData","setHoveredEntity","anchor","selectedColumnsWithoutSubAttributes","searchUri","defaultRow","attrTypeUri","searchUriToAttrUri","findAttributeTypeByUri","collectionName","isComplexAttribute","getTableRowsData","showNonOnly","isDraggable","getTableColumnsData","setExpandedMap","expandedContextValue","headCellData","onClosePopup","selectedAttributeUris","hoveredEntityContextValue","isThereAnyTask","workflowTasksAvailabilityMap","setWorkflowTasksAvailabilityMap","useWorkflowTasksAvailability","workflowCardRowClassname","displayedRowsData","rowClassName","VerticalHeadingsTable","theadRowsNumber","onMoveRow","dragId","hoverId","newArr","groupBy","getFirstLevelSearchUri","toPairs","dragIndex","hoverIndex","dragRow","insert","nth","onMoveColumn","dragColumn","setHoveredColumn","columnValue","resetHoveredColumn","EmptyState","table","ComparisonView","defaultWrapperStyles","getColoredRowCellStyle","hoveredColor","fade","lightPrimaryBackground","lighten","lightPrimaryBackgroundHovered","highlightBackground","entityBackground","link","rowCloseIcon","backgroundImage","firstHeadCell","headCellWithEntity","rowCell","rowCellFirstColumn","firstEntityCell","entityRowCell","entityRowCellSelected","rowCellHighlighted","rowCellSelected","defaultWrapper","hoveredDefaultWrapper","entityWrapper","profileWrapper","blobWrapper","imageWrapper","referenceWrapper","entityAvatar","dragIcon","ovFalse","inactive","withFilterAtBottom","DefaultHeadCellRenderer","simpleValue","ov","DataTypeValue","withTableContext","onToggleSelect","isRowRemovable","hoverRowIndex","containerId","IdContext","isRowHovered","isFirstRow","wrapperStyle","shouldRenderCommentsContainer","DragIndicator","isFirstColumn","headIndex","blobValue","onScroll","imgValue","getImageAttributeOvThumbnailUrl","EntityTypeIcon","getReferencedEntityFromAttrValue","objectURI","getAttrPathFromColumnId","getBasicTableRowsData","allMatchRules","getAttributesForMatchRules","filteredColumnsData","acc","assoc","attrPath","ifElse","getAttributeValuesByPathWithOvFlag","getOvAttributeValuesByPathWithOvFlag","getRowValueForColumn","getNestedPathByColumnId","getCellValueRenderer","EntityProfileRenderer","MatchRulesRenderer","dataType","BlobRender","ImageRenderer","ReferenceRenderer","DefaultCellValueRenderer","getCellValueRendererByDataType","isCellHighlighted","every","CellValueRenderer","columnIndex","tableContainer","rowActionButtonsWrapper","rowActionButtons","hoveredRowRightContentContainer","dragColumnHead","borderColor","borderLeftColor","borderRightColor","dragColumnBody","onReorderingColumn","onFilter","onSort","onResetSelect","onSelectAll","basicTableRef","isComparisonViewShown","orderedMatches","setOrderedMatches","onDndRowReorder","oldPosition","newPosition","move","setHoverRowIndex","tableRowsData","sortable","tableColumnsData","resizable","nestedPath","ProfileHeadCellRenderer","rowCellValueRenderer","getBasicTableColumnsData","entityRowData","getRowHeight","EntityCellRenderer","useBasicTableCellRenderer","maxRowValuesCount","entityRowHeight","enhancedColumnsData","withEntityCell","withEntityCellValue","onDndColumnReorder","what","where","oldPositionId","newPositionId","tableContext","isAllSelected","useDynamicRowCellHeight","useLayoutEffect","openActionsMenu","setOpenActionsMenu","openCollaborationPopup","setOpenCollaborationPopup","onRowHover","prevHoverRowIndex","hoveredRowRightContent","isChecked","onChangePopupVisibility","renderRowCell","actionsContent","tableRef","getRowCellHeight","defaultGetRowCellHeight","tableClasses","BasicTable","fixFirstColumn","context","defaultColumnWidth","defaultColumnMinWidth","headRowHeight","hoverStateEnabled","dndRowReorderingEnabled","dndColumnReorderingEnabled","dndColumnReorderingHandler","dndRowReorderingHandler","hoveredContentPosition","comparisonView","MatchReviewTable","initialRequestParam","useFirstPotentialMatches","groupedColumnsData","defaultColumns","defaultColumnsData","additionalColumnsData","attrColumnsData","getEntityTypeMatchAttributes","matchAttrColumns","otherColumns","groupColumnsDataByMatchAttributes","useMatchesColumnsData","visibleColumns","setVisibleColumns","setShowNonOv","visibleColumnsData","comparisonViewProps","matchesTableProps","visibleAttributes","getFixedAttributesIds","getUnique","fixedAttributesIds","addFixedAttributes","has","DragAndDrop","flexBox","ChangeModeConfirmation","onSave","TableIcon","ConfirmationDialog","onDiscard","saveCaption","discardCaption","perspectiveView","bottom","default","potentialMatchesWrapper","potentialMatchesContainer","PotentialMatchesView","getSavedState","saveState","SnackbarRenderer","useSnackbar","lastSavedState","updateSavedState","useSavedStateForEntityType","stateToSave","newSavedState","S","generateClassName","createGenerateClassName","productionPrefix","disableGlobal","store","getSavedStatePromisified","promisifyCallback","ViewIdContext","StylesProvider","MuiPickersUtilsProvider","utils","MomentUtils","floor","PotentialMatchesConfigType"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"5601.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/AttributeGroupIcon/styles.ts","webpack://@reltio/remotes/../components/src/components/AttributeGroupIcon/AttributeGroupIcon.tsx","webpack://@reltio/remotes/../components/src/components/AvatarWithFallback/AvatarWithFallback.tsx","webpack://@reltio/remotes/../components/src/components/BasicAttributeSelector/AttributeTitle/styles.ts","webpack://@reltio/remotes/../components/src/components/BasicAttributeSelector/AttributeTitle/AttributeTitle.tsx","webpack://@reltio/remotes/../components/src/components/BasicAttributeSelector/helpers.ts","webpack://@reltio/remotes/../components/src/components/SelectAttributesList/styles.ts","webpack://@reltio/remotes/../components/src/components/SelectAttributesList/SelectAttributesList.tsx","webpack://@reltio/remotes/../components/src/components/BasicAttributeSelector/styles.ts","webpack://@reltio/remotes/../components/src/components/BasicAttributeSelector/BasicAttributeSelector.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withTableContext.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/hooks/useDynamicRowCellHeight.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/CollapseRowButton/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/CollapseRowButton/CollapseRowButton.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/RowCellAutoSizer/RowCellAutoSizer.js","webpack://@reltio/remotes/../components/src/components/CollapseButton/styles.ts","webpack://@reltio/remotes/../components/src/components/CollapseButton/CollapseButton.tsx","webpack://@reltio/remotes/../components/src/components/EmptyState/styles.ts","webpack://@reltio/remotes/../components/src/components/EmptyState/EmptyState.tsx","webpack://@reltio/remotes/../components/src/icons/EmptySearchResults.tsx","webpack://@reltio/remotes/../components/src/icons/SelectAttributes.tsx","webpack://@reltio/remotes/../components/src/icons/NoData.tsx","webpack://@reltio/remotes/../components/src/icons/Error.tsx","webpack://@reltio/remotes/../components/src/components/QueryBuilderRow/styles.js","webpack://@reltio/remotes/../components/src/components/QueryBuilderRow/components/styles.js","webpack://@reltio/remotes/../components/src/components/QueryBuilderRow/components/ReadOnlyLogicOperator.js","webpack://@reltio/remotes/../components/src/components/QueryBuilderRow/components/ReadOnlyFilter.js","webpack://@reltio/remotes/../components/src/components/QueryBuilderRow/QueryBuilderRow.js","webpack://@reltio/remotes/../components/src/components/QueryBuilderRowsGroup/QueryBuilderRowsGroup.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/CreatableSelect.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/components/Option.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/components/index.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/MultiSelect.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/index.js","webpack://@reltio/remotes/../components/src/components/ScreenProfileBand/styles.ts","webpack://@reltio/remotes/../components/src/components/ScreenProfileBand/ScreenProfileBand.tsx","webpack://@reltio/remotes/../components/src/components/SourceIcon/SourceIcon.tsx","webpack://@reltio/remotes/../components/src/components/Spacer/Spacer.js","webpack://@reltio/remotes/../components/src/components/attributes/readMode/AttributeValuesBlock/AttributeValuesBlock.tsx","webpack://@reltio/remotes/../components/src/contexts/CrosswalksDisplayContext/index.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/icons/potential-matches-icon.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/icons/find-matches-icon.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/icons/not-a-match-icon.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/constants/views.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/contexts/ReloadDataContext/index.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/contexts/ViewStateContext/index.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/helpers/stateReducer.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/helpers/attributesHelpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/helpers/sortHelpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useMatchesReducer.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/utils/errors.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/useSpinnerAndReloadData.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/MergeButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/NotMatchButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/icons/setAsMatch.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/SetAMatchButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useSetAMatch.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/icons/dcrReview.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/DcrReviewButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useRequestDCRReview.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useReinstateMatch.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/ReinstateMatchButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/icons/addRelationship.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Actions/CreateRelationButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/contexts/RightSideHeaderContext/index.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/SortingFieldSelector/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/SortingFieldSelector/SortingFieldSelector.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanelHeader/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanelHeader/RightSidePanelHeader.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useSortOptions.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ItemRenderer/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ItemRenderer/ItemRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchItems/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchItems/MatchItems.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/FindMatchesView/RightSideSearch/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/FindMatchesView/RightSideSearch/RightSideSearch.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ActionsPanel/MenuItemRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ActionsPanel/ActionsPanel.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/FindMatchesView/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/FindMatchesView/FindMatchesView.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useFindEntities.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useMatches.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/AddRelationDialog/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/AddRelationDialog/AddRelationDialog.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/helpers/relationsHelpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useAddRelationDialog.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/constants/defaultOptions.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesView/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesView/MatchesView.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useNotMatches.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/NotMatchView/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/NotMatchView/NotMatchView.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/Content/Content.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/ValuesEditor/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/ValuesEditor/ValuesEditor.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/FilterSelector/FilterSelector.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/MatchesAttributesFiltersButton/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/MatchesAttributesFiltersButton/MatchesAttributesFiltersButton.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/RightSidePanel/RightSidePanel.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonViewModeSwitcher/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonViewModeSwitcher/ComparisonViewModeSwitcher.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/TableHeader/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/TableHeader/TableHeader.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/ExpandedContext.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/withExpanded.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/MatchedValuesCounter/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/MatchedValuesCounter/MatchedValuesCounter.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/AttributesRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/contexts/ColumnsDataContext/index.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/HeadCellRenderer/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/HeadCellRenderer/HeadCellRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/ComplexAttributesHeadRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/HoveredEntityContext.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchControls/MatchControls.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/EntityCard/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/constants/workflow.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useWorkflowTasks.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/WorkflowTasksAvailabilityContext.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/WorkflowCard/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/WorkflowCard/WorkflowCard.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/constants/defaultRows.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ColoredSourceIcon/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ColoredSourceIcon/ColoredSourceIcon.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/CrosswalksRenderer/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/CrosswalksRenderer/LabelRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/CrosswalksRenderer/CrosswalksRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/cell-renderers/SourcesRenderer/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/cell-renderers/SourcesRenderer/SourcesRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/helpers/tableHelpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/EntityCard/EntityCard.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/MatchMethod/MatchMethod.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/cell-renderers/WorkflowCardRenderer/WorkflowCardRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/contexts/ColumnHandlerContext/index.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/helpers/attributesHelpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/AddRowPopups/ConfigRowPopup.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/AddRowPopups/helpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/AddRowPopups/AddRowPopups.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useWorkflowTasksAvailability.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonTable/ComparisonTable.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonView/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ComparisonView/ComparisonView.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/HeadCellRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/DefaultCellValueRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/EntityProfileRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/ProfileHeadCellRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/MatchRulesRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/BlobRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/ImageRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/ReferenceRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/SourcesRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/dataHelpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/RowCellRenderer.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/MatchesTable.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchesTable/cell-renderers/withEntityCellValue.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchReviewTable/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchReviewTable/MatchReviewTable.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useFirstPotentialMatches.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/hooks/useMatchesColumnData.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/MatchReviewTable/helpers/helpers.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ChangeModeConfirmation/TableIcon.svg","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ChangeModeConfirmation/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/components/ChangeModeConfirmation/ChangeModeConfirmation.tsx","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/styles.ts","webpack://@reltio/remotes/../potential-matches/src/PotentialMatchesView/PotentialMatchesView.tsx","webpack://@reltio/remotes/../potential-matches/src/index.tsx","webpack://@reltio/remotes/./src/potential-matches.ts"],"sourcesContent":["import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n icon: {\n maxHeight: '25px',\n maxWidth: '25px',\n marginRight: '16px'\n }\n});\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport mdm from '@reltio/mdm-module';\nimport {getAbsoluteImageUrl, getEntityTypeGraphIcon, Metadata} from '@reltio/mdm-sdk';\nimport AvatarWithFallback from '../AvatarWithFallback/AvatarWithFallback';\nimport {useStyles} from './styles';\n\ntype Props = {\n group: {id: string; title: string};\n metadata: Metadata;\n};\n\nconst AttributeGroupIcon = ({group, metadata}: Props) => {\n const styles = useStyles();\n const absoluteImagePath = useSelector(mdm.selectors.getAbsoluteImagePath);\n const entityTypeGraphIcon = getEntityTypeGraphIcon(metadata, {type: group.id});\n const absoluteImageUrl = getAbsoluteImageUrl(absoluteImagePath, entityTypeGraphIcon);\n return <AvatarWithFallback className={styles.icon} icon={absoluteImageUrl} avatarText={group.title[0]} />;\n};\n\nexport default AttributeGroupIcon;\n","import {Avatar as Avatar} from '@material-ui/core';\nimport classnames from 'classnames';\nimport React, {useEffect, useState} from 'react';\n\nenum AvatarStates {\n ICON_MODE,\n TEXT_MODE,\n ERROR_MODE\n}\ntype Props = {\n className?: string;\n icon?: string;\n avatarText?: string;\n variant?: 'circle' | 'circular' | 'rounded' | 'square';\n rootClasses?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst AvatarWithFallback = ({className, icon, avatarText, rootClasses, ...otherProps}: Props) => {\n const [state, setState] = useState<AvatarStates>(null);\n useEffect(() => {\n if (icon) {\n setState(AvatarStates.ICON_MODE);\n } else {\n setState(AvatarStates.TEXT_MODE);\n }\n }, [icon, avatarText]);\n const onImageLoadFail = () => {\n setState(AvatarStates.ERROR_MODE);\n };\n\n switch (state) {\n case AvatarStates.ICON_MODE:\n return (\n <Avatar\n className={classnames(className, rootClasses?.iconRoot)}\n src={icon}\n onError={onImageLoadFail}\n {...otherProps}\n />\n );\n case AvatarStates.TEXT_MODE:\n case AvatarStates.ERROR_MODE:\n return (\n <Avatar className={classnames(className, rootClasses?.textRoot)} {...otherProps}>\n {avatarText}\n </Avatar>\n );\n default:\n return null;\n }\n};\n\nexport default AvatarWithFallback;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n attribute: {\n cursor: 'pointer',\n lineHeight: '16px',\n flexBasis: '100%',\n display: 'flex',\n alignItems: 'center',\n padding: '0 10px 0 16px',\n width: 'calc(100% - 32px)',\n '&$attributeWithValue': {\n borderBottom: '1px solid rgba(0,0,0,0.38)'\n },\n '&$disabled': {\n cursor: 'default'\n }\n },\n disabled: {},\n attributeWithValue: {},\n noSelect: {},\n name: {\n fontSize: '14px',\n color: 'rgba(0,0,0,0.87)',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n direction: 'rtl',\n textAlign: 'left',\n flex: '1 0',\n width: '0',\n '& $noSelect': {\n color: 'rgba(0,0,0,0.38)'\n },\n '&$disabled': {\n color: 'rgba(0,0,0,0.26)',\n '& $noSelect': {\n color: 'rgba(0,0,0,0.26)'\n }\n }\n }\n});\n\nexport default useStyles;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {either, prop} from 'ramda';\nimport {ArrowDropDown} from '@material-ui/icons';\nimport ExpandedValueTooltip from '../../ExpandedValueTooltip/ExpandedValueTooltip';\nimport SmallIconButton from '../../SmallIconButton/SmallIconButton';\nimport {AttributeSelectorItem} from '../../../types';\nimport useStyles from './styles';\n\ntype Value = {\n fieldName: string;\n title: string;\n};\ntype Props = {\n value: AttributeSelectorItem;\n disabled: boolean;\n getLabel: (value: Value) => string;\n onSelectAttributeClick: (event) => void;\n};\n\nconst defaultGetLabel = either(prop('title'), prop('fieldName'));\n\nconst AttributeTitle = ({value, getLabel = defaultGetLabel, onSelectAttributeClick, disabled = false}: Props) => {\n const styles = useStyles();\n const label = value && getLabel(value);\n return (\n <div\n onClick={disabled ? undefined : onSelectAttributeClick}\n className={classnames(\n styles.attribute,\n {\n [styles.attributeWithValue]: !!label\n },\n {[styles.disabled]: disabled}\n )}\n >\n <ExpandedValueTooltip value={label}>\n <div className={classnames(styles.name, {[styles.disabled]: disabled})}>\n {label || <span className={styles.noSelect}>{i18n.text('Select attribute')}</span>}\n </div>\n </ExpandedValueTooltip>\n <SmallIconButton size={'M'} icon={ArrowDropDown} disabled={disabled} />\n </div>\n );\n};\n\nexport default AttributeTitle;\n","import {eqBy, pick, curry} from 'ramda';\nimport {getMaxItemWidth} from '@reltio/mdm-sdk';\nimport {AttributeSelectorItem, AttributeSelectorItemsGroup} from '../../types';\n\nexport const isEqualAttributes = eqBy(pick(['fieldName', 'uri', 'entityTypeUri']));\n\nexport const checkAttributeIncludes = (attribute: AttributeSelectorItem, selectedAttributes: AttributeSelectorItem[]) =>\n selectedAttributes && !!selectedAttributes.find(isEqualAttributes(attribute));\n\nconst filterItem = (item: AttributeSelectorItem, filterText: string) =>\n item.title.toLowerCase().includes(filterText.toLowerCase());\n\nexport const filterItemsTree = (item: AttributeSelectorItem, filterText: string): boolean =>\n filterItem(item, filterText) || (item.children || []).some((item) => filterItemsTree(item, filterText));\n\nexport const filterSelectedAttributes = ({\n attribute,\n selectedAttributes,\n checked\n}: {\n attribute: AttributeSelectorItem;\n selectedAttributes: AttributeSelectorItem[];\n checked: boolean;\n}) => {\n return checked\n ? selectedAttributes.concat(attribute)\n : selectedAttributes.filter((selectedAttribute) => !isEqualAttributes(attribute, selectedAttribute));\n};\n\nexport const getAttributeIndex = (selectedAttributes: AttributeSelectorItem[], attribute: AttributeSelectorItem) =>\n selectedAttributes.findIndex(isEqualAttributes(attribute));\n\nexport const getContainerWidth = getMaxItemWidth('title');\n\nexport const getOnEnterHandler = ({\n onListItemClick,\n selectedAttributes\n}: {\n selectedAttributes: AttributeSelectorItem[];\n onListItemClick: (attribute: AttributeSelectorItem, checked: boolean) => void;\n}) => ({item, groupData}) => {\n const checked = checkAttributeIncludes(item, selectedAttributes);\n onListItemClick({...item, groupName: groupData.groupName}, !checked);\n};\n\nconst getAttributeGroupData = (\n item: AttributeSelectorItem,\n groupId: string,\n groupName: string,\n filterText: string,\n level = 0,\n noFilter = false\n) => {\n const isItemFiltered = filterItem(item, filterText);\n return [\n {\n item: filterText ? {...item, filterText} : item,\n level,\n groupId,\n groupName\n }\n ]\n .concat(\n item.children\n ? item.children\n .filter((subItem) => noFilter || isItemFiltered || filterItemsTree(subItem, filterText))\n .flatMap((subItem) =>\n getAttributeGroupData(\n subItem,\n groupId,\n groupName,\n filterText,\n level + 1,\n noFilter || isItemFiltered\n )\n )\n : []\n )\n .flat();\n};\n\nexport const prepareGroupsForSelectAttributeList: (\n filterText: string,\n groups: AttributeSelectorItemsGroup[]\n) => {item: AttributeSelectorItemsGroup[]; items: AttributeSelectorItem[]} = curry(\n (filterText: string, groups: AttributeSelectorItemsGroup[]) =>\n groups\n .map((group) => ({\n item: group,\n items: group.attributes\n .filter((attribute) => filterItemsTree(attribute, filterText))\n .map((item) => getAttributeGroupData(item, group.id, group.title, filterText))\n }))\n .filter((group) => group.items.length)\n);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n subHeader: {\n backgroundColor: '#f5f5f5',\n padding: '0 16px',\n margin: 0,\n display: 'flex',\n alignItems: 'center',\n color: 'rgba(0,0,0,0.84)',\n fontSize: '14px',\n fontWeight: 500\n }\n});\n","import React, {memo} from 'react';\nimport {useSelector} from 'react-redux';\nimport {ListItem as ListItem} from '@material-ui/core';\nimport mdmModule from '@reltio/mdm-module';\nimport {AttributeType} from '@reltio/mdm-sdk';\nimport AttributeListItem from '../AttributeListItem/AttributeListItem';\nimport VirtualGroupedList from '../VirtualGroupedList/VirtualGroupedList';\nimport Highlighter from '../Highlighter/Highlighter';\nimport AttributeGroupIcon from '../AttributeGroupIcon/AttributeGroupIcon';\nimport {checkAttributeIncludes} from '../BasicAttributeSelector/helpers';\nimport {AttributeSelectorItem} from '../../types';\nimport {useStyles} from './styles';\n\nconst ITEM_HEIGHT = 28;\nconst ITEM_GROUP_TITLE_HEIGHT = 40;\n\ntype Data = {\n attrType?: AttributeType;\n};\ntype Props = {\n selectedAttributes: AttributeSelectorItem[];\n focusIndex: number;\n hideCheckBox: boolean;\n onItemClick: (data: Data, checked: boolean, groupId: string) => void;\n} & Record<string, unknown>;\n\nconst SelectAttributesList = ({selectedAttributes, onItemClick, focusIndex, hideCheckBox, ...otherProps}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const getItemSize = (i, item) => (item.items ? ITEM_GROUP_TITLE_HEIGHT : ITEM_HEIGHT);\n\n const renderGroupTitle = (style, item) => (\n <ListItem component={'div'} className={styles.subHeader} style={style} key={`group-${item.item.id}`}>\n {item.item.needGroupIcon && <AttributeGroupIcon group={item.item} metadata={metadata} />}\n {item.item.title}\n </ListItem>\n );\n\n const renderItem = (style, {item, level, groupId, groupName}, index) => {\n const checked = checkAttributeIncludes(item, selectedAttributes);\n const isFocused = index === focusIndex;\n return (\n <AttributeListItem\n key={`item-${groupId}-${item.fieldName}`}\n onClick={onItemClick}\n checked={checked}\n data={{\n ...item,\n groupName\n }}\n notSelectable={item.notSelectable}\n hideCheckBox={hideCheckBox}\n label={<Highlighter text={item.title} highlight={item.filterText} />}\n labelInText={item.title}\n level={level}\n style={style}\n isFocused={isFocused}\n groupId={groupId}\n LogoIcon={item.LogoIcon}\n />\n );\n };\n\n return (\n <VirtualGroupedList\n getItemSize={getItemSize}\n renderItem={renderItem}\n renderGroupTitle={renderGroupTitle}\n focusIndex={focusIndex}\n {...otherProps}\n />\n );\n};\n\nexport default memo(SelectAttributesList);\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n selector: {\n minWidth: '200px',\n alignItems: 'stretch',\n background: 'rgba(0,0,0, 0.0267)',\n boxSizing: 'border-box',\n borderRadius: '4px',\n display: 'flex'\n }\n});\n\nexport default useStyles;\n","import React, {memo, useCallback, useMemo, useRef, useState} from 'react';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {identity, pipe, tap, prop, flatten, pick, map, chain, when, always} from 'ramda';\nimport SelectionPopup from '../SelectionPopup/SelectionPopup';\nimport {useKeyboardNavigation} from '../SelectionPopup/helpers';\nimport AttributeTitle from './AttributeTitle/AttributeTitle';\nimport {\n filterSelectedAttributes,\n getAttributeIndex,\n getContainerWidth,\n getOnEnterHandler,\n prepareGroupsForSelectAttributeList\n} from './helpers';\nimport SelectAttributesList from '../SelectAttributesList/SelectAttributesList';\nimport {flattenGroupedItemsData} from '../VirtualGroupedList/helpers';\nimport {AttributeSelectorItem, BasicAttributeSelectorProps} from '../../types';\nimport useStyles from './styles';\n\nconst ATTRIBUTES_LIST_HEIGHT = 400;\nconst ATTRIBUTES_LIST_WIDTH = 308;\nconst ATTRIBUTES_POPUP_HEIGHT = 507;\n\nconst BasicAttributeSelector = ({\n className,\n itemsGroups,\n value,\n getLabel,\n onSelect,\n onRestoreFocus = identity,\n onOpenPopup = identity,\n disableRestoreFocus = false,\n disableEnforceFocus = false,\n single = false,\n ungroup = false,\n disabled = false,\n hideCheckBox = false\n}: BasicAttributeSelectorProps) => {\n const styles = useStyles();\n const [selectAnchor, setSelectAnchor] = useState(null);\n const openPopup = (event) => {\n onOpenPopup();\n setSelectAnchor(event.currentTarget);\n };\n const closePopup = useCallback(() => setSelectAnchor(null), []);\n const isPopupOpen = !!selectAnchor;\n\n const [filterText, setFilterText] = useState('');\n const clearFilterText = useCallback(() => setFilterText(''), []);\n\n const [selectedAttributes, setSelectedAttributes] = useState([]);\n const clearSelectedAttributes = useCallback(() => setSelectedAttributes([]), []);\n\n const filteredItemsGroups = useMemo(() => prepareGroupsForSelectAttributeList(filterText, itemsGroups), [\n itemsGroups,\n filterText\n ]);\n\n const items = useMemo(\n () =>\n pipe(\n when(always(ungroup), chain(pipe(prop('items'), flatten, map(pick(['item', 'level']))))),\n flattenGroupedItemsData\n )(filteredItemsGroups),\n [ungroup, filteredItemsGroups]\n );\n\n const containerWidth = useMemo(() => Math.max(getContainerWidth(filteredItemsGroups), ATTRIBUTES_LIST_WIDTH), [\n filteredItemsGroups\n ]);\n\n const handleOnClose = pipe(tap(pipe(clearSelectedAttributes, clearFilterText, closePopup)), onRestoreFocus);\n\n const searchInputRef = useRef<HTMLInputElement>();\n\n const onListItemClick = useCallback(\n (attribute: AttributeSelectorItem, checked: boolean) => {\n onSelect({\n checked,\n attribute,\n index: checked ? selectedAttributes.length : getAttributeIndex(selectedAttributes, attribute),\n selectedAttributes\n });\n\n if (single) {\n setSelectedAttributes(checked ? [attribute] : []);\n handleOnClose({});\n } else {\n setSelectedAttributes(filterSelectedAttributes({selectedAttributes, attribute, checked}));\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }\n },\n [selectedAttributes, onSelect, single, handleOnClose, searchInputRef]\n );\n\n const handleSearchOnEnter = useCallback(getOnEnterHandler({onListItemClick, selectedAttributes}), [\n onListItemClick,\n selectedAttributes\n ]);\n\n const {focusIndex, handleKeyDown} = useKeyboardNavigation({\n items,\n open: isPopupOpen,\n onSelectFocusedItem: handleSearchOnEnter,\n selectedItems: selectedAttributes,\n onClose: handleOnClose\n });\n\n return (\n <div className={classnames(styles.selector, className)} data-reltio-id=\"attribute-selector\">\n <AttributeTitle value={value} getLabel={getLabel} onSelectAttributeClick={openPopup} disabled={disabled} />\n <SelectionPopup\n open={isPopupOpen}\n anchorEl={selectAnchor}\n onClose={handleOnClose}\n onSearch={setFilterText}\n title={i18n.text('Select attribute')}\n containerWidth={containerWidth}\n containerHeight={ATTRIBUTES_POPUP_HEIGHT}\n searchInputOnKeyDown={handleKeyDown}\n anchorOrigin={{horizontal: 'right', vertical: 'bottom'}}\n searchInputRef={searchInputRef}\n disableRestoreFocus={disableRestoreFocus}\n disableEnforceFocus={disableEnforceFocus}\n >\n <SelectAttributesList\n items={items}\n onItemClick={onListItemClick}\n selectedAttributes={selectedAttributes}\n width={containerWidth}\n height={ATTRIBUTES_LIST_HEIGHT}\n focusIndex={focusIndex}\n hideCheckBox={hideCheckBox}\n />\n </SelectionPopup>\n </div>\n );\n};\n\nexport default memo(BasicAttributeSelector);\n","import {TableContext} from '../contexts/TableContext';\nimport {withContext} from '../../../../HOCs/withContext/withContext';\n\nconst withTableContext = (contextSelector) => (CellRenderer) =>\n withContext(TableContext, contextSelector, CellRenderer);\n\nexport default withTableContext;\n","import {useCallback, useRef, useState} from 'react';\nimport {__, curry, identity, pipe, prop, useWith} from 'ramda';\nimport {debounce} from '@reltio/mdm-sdk';\n\nconst getRowCellKey = ({rowIndex, columnData: {id}, cellIndex}) => `${id}[${rowIndex}][${cellIndex}]`;\n\nconst useDynamicRowCellHeight = () => {\n const [rowCellHeightsMap, setRowCellHeightsMap] = useState({});\n const rowCellHeightsMapCache = useRef({});\n const batchHeightUpdate = (key, value) => {\n rowCellHeightsMapCache.current[key] = value;\n };\n const flushHeightUpdates = useCallback(\n debounce(() => {\n setRowCellHeightsMap({...rowCellHeightsMapCache.current});\n }),\n []\n );\n const clearHeightsCache = useCallback(() => {\n rowCellHeightsMapCache.current = {};\n }, []);\n\n const getDynamicRowCellHeight = useCallback(pipe(getRowCellKey, prop(__, rowCellHeightsMap)), [rowCellHeightsMap]);\n\n const changeRowCellHeight = useCallback(\n curry(useWith(pipe(batchHeightUpdate, flushHeightUpdates), [getRowCellKey, identity])),\n []\n );\n\n return {getDynamicRowCellHeight, changeRowCellHeight, clearHeightsCache};\n};\n\nexport default useDynamicRowCellHeight;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n hidden: {\n visibility: 'hidden'\n }\n}));\n","import React, {useContext} from 'react';\nimport PropTypes from 'prop-types';\n\nimport {RowCollapseContext} from '../BasicTable/contexts/RowCollapseContext';\nimport CollapseButton from '../../CollapseButton/CollapseButton';\n\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst CollapseRowButton = ({rowIndex, rowValue, className}) => {\n const styles = useStyles();\n const {toggleRowCollapse, getIsRowCollapsible, getIsRowCollapsed} = useContext(RowCollapseContext);\n\n const isCollapsibleRow = getIsRowCollapsible(rowValue);\n const isCollapsedRow = getIsRowCollapsed(rowIndex);\n\n return (\n <CollapseButton\n className={classnames(className, {[styles.hidden]: !isCollapsibleRow})}\n isOpen={!isCollapsedRow}\n onClick={(e) => {\n toggleRowCollapse(rowIndex);\n e.stopPropagation();\n }}\n />\n );\n};\n\nCollapseRowButton.propTypes = {\n rowIndex: PropTypes.number,\n rowValue: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default CollapseRowButton;\n","import React, {useRef} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ReactResizeDetector from 'react-resize-detector';\nimport {RootRef as RootRef} from '@material-ui/core';\nimport {useDidUpdateEffect} from '../../../hooks';\n\nconst RowCellAutoSizer = ({onChangeHeight, children: cell, ...cellProps}) => {\n const cellRef = useRef(null);\n\n const {rowValue, rowIndex, columnData, cellIndex} = cellProps;\n const changeCellHeight = onChangeHeight({rowIndex, cellIndex, columnData});\n\n const adjustCellHeight = () => cellRef.current && changeCellHeight(cellRef.current.clientHeight);\n\n useDidUpdateEffect(adjustCellHeight, [rowValue.rawValue]);\n\n return (\n <div>\n <ReactResizeDetector handleHeight={true} onResize={adjustCellHeight} />\n <RootRef rootRef={cellRef}>{cell}</RootRef>\n </div>\n );\n};\n\nRowCellAutoSizer.propTypes = {\n onChangeHeight: PropTypes.func,\n children: PropTypes.node\n};\n\nexport default RowCellAutoSizer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n collapseButton: {\n cursor: 'pointer'\n },\n expandLess: {\n transform: 'rotate( -180deg )'\n }\n});\n","import React from 'react';\nimport classnames from 'classnames';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport {useStyles} from './styles';\n\ntype SmallIconButtonWithTooltipProps = React.ComponentPropsWithoutRef<typeof SmallIconButtonWithTooltip>;\n\ntype Props = Omit<SmallIconButtonWithTooltipProps, 'tooltipTitle'> & {\n isOpen?: boolean;\n tooltipTitle?: string;\n};\n\nconst CollapseButton = ({isOpen = false, tooltipTitle, ...otherProps}: Props) => {\n const styles = useStyles();\n const buttonProps = {\n icon: ExpandMore,\n className: styles.collapseButton,\n iconClassName: classnames({[styles.expandLess]: isOpen})\n };\n const tooltipProps = {\n tooltipTitle: tooltipTitle\n };\n return <SmallIconButtonWithTooltip {...buttonProps} {...tooltipProps} {...otherProps} />;\n};\n\nexport default CollapseButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst maxWidth = 500;\n\nexport const useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flex: '1 1 auto',\n flexWrap: 'nowrap',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '10px',\n overflow: 'auto',\n height: '100%',\n minHeight: '350px',\n boxSizing: 'border-box',\n '&$root_small': {\n minHeight: '160px'\n },\n '& $text': {\n color: theme.palette.text.primary,\n fontSize: '20px',\n fontWeight: 500,\n lineHeight: '24px',\n letterSpacing: '0.25px',\n textAlign: 'center'\n },\n '& $secondaryText': {\n color: theme.palette.text.secondary,\n fontSize: '15px',\n fontWeight: 300,\n lineHeight: '18px',\n letterSpacing: '0.11px',\n textAlign: 'center',\n paddingTop: '3px'\n }\n },\n root_small: {},\n embedded: {\n flexShrink: 0,\n width: '190px',\n height: '190px',\n padding: '8px'\n },\n full: {\n width: '256px',\n height: '256px'\n },\n textBox: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n maxWidth: maxWidth,\n marginTop: '16px'\n },\n text: {},\n secondaryText: {},\n button: {\n minHeight: 36,\n minWidth: 64,\n maxWidth: maxWidth,\n padding: '10px 16px',\n borderRadius: '2px',\n boxShadow:\n '0 0 2px 0 rgba(0,0,0,0.12), 0 2px 2px 0 rgba(0,0,0,0.24), 0 0 8px 0 rgba(0,0,0,0.12), 0 8px 8px 0 rgba(0,0,0,0.24)',\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '16px',\n marginTop: '24px'\n }\n}));\n","import React from 'react';\nimport classnames from 'classnames';\nimport {identity} from 'ramda';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Button as Button} from '@material-ui/core';\nimport EmptySearchResultsIcon from '../../icons/EmptySearchResults';\nimport SelectAttributesIcon from '../../icons/SelectAttributes';\nimport NoData from '../../icons/NoData';\nimport Error from '../../icons/Error';\nimport {useStyles} from './styles';\n\nexport enum EMPTY_STATE_VARIANTS {\n full = 'full',\n embedded = 'embedded',\n small = 'small'\n}\n\nexport const EMPTY_STATE_ICONS = {\n SEARCH_RESULTS: EmptySearchResultsIcon,\n SELECT_ATTRIBUTES: SelectAttributesIcon,\n NO_DATA: NoData,\n ERROR: Error\n};\n\ntype Props = {\n variant?: EMPTY_STATE_VARIANTS;\n LogoRenderer?: React.ElementType;\n text: string;\n secondaryText?: string;\n buttonTitle?: string;\n access?: boolean;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\nconst EmptyState = ({\n variant = EMPTY_STATE_VARIANTS.full,\n LogoRenderer = EMPTY_STATE_ICONS.SEARCH_RESULTS,\n text,\n secondaryText,\n buttonTitle,\n onClick = identity,\n access\n}: Props) => {\n const styles = useStyles();\n const showButton = access && buttonTitle;\n\n return (\n <div className={classnames(styles.root, styles[`root_${variant}`])}>\n <LogoRenderer className={styles[`${variant}`]} />\n <div className={styles.textBox}>\n <Typography variant=\"h5\" classes={{h5: styles.text}}>\n {text}\n </Typography>\n {secondaryText && (\n <Typography variant=\"subtitle1\" classes={{subtitle1: styles.secondaryText}}>\n {secondaryText}\n </Typography>\n )}\n </div>\n {showButton && (\n <Button className={styles.button} variant=\"contained\" color=\"primary\" onClick={onClick}>\n {buttonTitle}\n </Button>\n )}\n </div>\n );\n};\n\nexport default EmptyState;\n","import React from 'react';\n\nconst SvgEmptySearchResults: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg\n width={256}\n height={256}\n viewBox=\"0 0 256 256\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}\n >\n <defs>\n <radialGradient\n cx=\"50%\"\n cy=\"100%\"\n fx=\"50%\"\n fy=\"100%\"\n r=\"81.681%\"\n gradientTransform=\"matrix(.98998 0 0 .612 .005 .388)\"\n id=\"EmptySearchResults_svg__c\"\n >\n <stop stopColor=\"#00BFFF\" stopOpacity={0.5} offset=\"0%\" />\n <stop stopColor=\"#9EE8FF\" stopOpacity={0} offset=\"100%\" />\n </radialGradient>\n <radialGradient\n cx=\"50%\"\n cy=\"111.651%\"\n fx=\"50%\"\n fy=\"111.651%\"\n r=\"87.693%\"\n gradientTransform=\"matrix(0 -.97693 .7263 0 -.31 1.605)\"\n id=\"EmptySearchResults_svg__f\"\n >\n <stop stopColor=\"#91F8E5\" stopOpacity={0.6} offset=\"0%\" />\n <stop stopColor=\"#14F7FF\" stopOpacity={0} offset=\"100%\" />\n </radialGradient>\n <radialGradient\n cx=\"50%\"\n cy=\"103.659%\"\n fx=\"50%\"\n fy=\"103.659%\"\n r=\"90.207%\"\n gradientTransform=\"matrix(0 -1 2.23905 0 -1.821 1.537)\"\n id=\"EmptySearchResults_svg__g\"\n >\n <stop stopColor=\"#FFF\" offset=\"0%\" />\n <stop stopColor=\"#73FAFF\" stopOpacity={0.21} offset=\"59.38%\" />\n <stop stopColor=\"#14F7FF\" stopOpacity={0} offset=\"100%\" />\n </radialGradient>\n <linearGradient x1=\"50%\" y1=\"170.771%\" x2=\"50%\" y2=\"10.303%\" id=\"EmptySearchResults_svg__e\">\n <stop stopColor=\"#91F8E5\" offset=\"0%\" />\n <stop stopColor=\"#99FCFF\" stopOpacity={0} offset=\"100%\" />\n </linearGradient>\n <filter\n x=\"-25.9%\"\n y=\"-26.2%\"\n width=\"151.8%\"\n height=\"152.3%\"\n filterUnits=\"objectBoundingBox\"\n id=\"EmptySearchResults_svg__d\"\n >\n <feGaussianBlur stdDeviation={15} in=\"SourceGraphic\" />\n </filter>\n <circle id=\"EmptySearchResults_svg__a\" cx={128} cy={128} r={128} />\n </defs>\n <g stroke=\"none\" strokeWidth={1} fill=\"none\" fillRule=\"evenodd\">\n <mask id=\"EmptySearchResults_svg__b\" fill=\"#fff\">\n <use xlinkHref=\"#EmptySearchResults_svg__a\" />\n </mask>\n <use fillOpacity={0.2} fill=\"#A792CD\" xlinkHref=\"#EmptySearchResults_svg__a\" />\n <g mask=\"url(#EmptySearchResults_svg__b)\">\n <g transform=\"translate(56 34)\">\n <g opacity={0.9} strokeWidth={1} fill=\"#FFF\">\n <path d=\"M0 6.99C0 3.13 3.137 0 7 0h247.067c3.866 0 7 3.144 7 6.99v169.353c0 3.86-3.137 6.99-7 6.99H7c-3.866 0-7-3.143-7-6.99V6.99z\" />\n <path\n d=\"M13 25.99c0-3.86 3.137-6.99 7-6.99h247.067c3.866 0 7 3.144 7 6.99v169.353c0 3.86-3.137 6.99-7 6.99H20c-3.866 0-7-3.143-7-6.99V25.99z\"\n opacity={0.4}\n />\n </g>\n <g strokeWidth={1} fill=\"none\" transform=\"translate(21.756 45.833)\">\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={213.204} cy={5.456} rx={4.351} ry={4.365} />\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={197.976} cy={5.456} rx={4.351} ry={4.365} />\n <path\n d=\"M10.334 1.091c5.707 0 10.334 4.627 10.334 10.334v.067c0 5.707-4.627 10.333-10.334 10.333S0 17.2 0 11.492v-.067C0 5.718 4.627 1.091 10.334 1.091z\"\n fill=\"#E3EBF4\"\n />\n <path\n d=\"M35.365.861h69.768a3.82 3.82 0 010 7.639H35.365a3.82 3.82 0 010-7.639z\"\n fill=\"#B1AABD\"\n opacity={0.5}\n />\n <path\n d=\"M34.274 15.048h126.164a2.728 2.728 0 010 5.456H34.274a2.728 2.728 0 110-5.456z\"\n fill=\"#B1AABD\"\n opacity={0.43}\n />\n <path\n d=\"M33.182 24.869H73.89a1.637 1.637 0 110 3.274H33.182a1.637 1.637 0 010-3.274z\"\n fill=\"#B1AABD\"\n opacity={0.2}\n />\n </g>\n <rect\n fill=\"#645F6D\"\n opacity={0.5}\n x={21.756}\n y={17.46}\n width={87.022}\n height={12.004}\n rx={6.002}\n />\n <g strokeWidth={1} fill=\"none\" transform=\"translate(21.756 87.302)\">\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={213.204} cy={5.456} rx={4.351} ry={4.365} />\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={197.976} cy={5.456} rx={4.351} ry={4.365} />\n <rect fill=\"#E3EBF4\" x={0} y={1.091} width={20.668} height={20.734} rx={10.334} />\n <path\n d=\"M35.365.861h82.647a3.82 3.82 0 010 7.639H35.365a3.82 3.82 0 010-7.639z\"\n fill=\"#B1AABD\"\n opacity={0.5}\n />\n <path\n d=\"M34.274 15.048H174.58a2.728 2.728 0 010 5.456H34.274a2.728 2.728 0 110-5.456z\"\n fill=\"#B1AABD\"\n opacity={0.43}\n />\n <path\n d=\"M33.182 24.869h113.119a1.637 1.637 0 110 3.274H33.182a1.637 1.637 0 010-3.274z\"\n fill=\"#B1AABD\"\n opacity={0.2}\n />\n </g>\n <g strokeWidth={1} fill=\"none\" transform=\"translate(21.756 128.77)\">\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={213.204} cy={5.456} rx={4.351} ry={4.365} />\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={197.976} cy={5.456} rx={4.351} ry={4.365} />\n <path\n d=\"M10.334 1.091c5.707 0 10.334 4.627 10.334 10.334v.067c0 5.707-4.627 10.333-10.334 10.333S0 17.2 0 11.492v-.067C0 5.718 4.627 1.091 10.334 1.091z\"\n fill=\"#E3EBF4\"\n />\n <path\n d=\"M35.365.861h110.929a3.82 3.82 0 010 7.639H35.365a3.82 3.82 0 010-7.639z\"\n fill=\"#B1AABD\"\n opacity={0.5}\n />\n <path\n d=\"M34.274 15.048h92.443a2.728 2.728 0 010 5.456H34.274a2.728 2.728 0 110-5.456z\"\n fill=\"#B1AABD\"\n opacity={0.43}\n />\n <path\n d=\"M33.182 24.869H73.89a1.637 1.637 0 110 3.274H33.182a1.637 1.637 0 010-3.274z\"\n fill=\"#B1AABD\"\n opacity={0.2}\n />\n </g>\n </g>\n </g>\n <g mask=\"url(#EmptySearchResults_svg__b)\">\n <path\n fill=\"#446275\"\n d=\"M72.246 84.033l8.66 5-35.5 61.488-8.66-5-12.556-24.729-51.307-29.622 20.431-35.388 50.648 29.242z\"\n />\n <path\n d=\"M62.906 120.21l-80.091-46.24 10.5-18.188 50.647 29.242 28.284-.99 8.66 5-18 31.176z\"\n fillOpacity={0.2}\n fill=\"#FFF\"\n />\n <path\n d=\"M27.566 75.558L3.877 109.065l-5.013-2.895 26.045-32.146 2.657 1.534zm9.467 5.466L13.345 114.53l-5.014-2.895L34.377 79.49l2.656 1.534zm8.158 4.71l-22.32 34.297-5.013-2.895L43.903 84.99l1.288.744z\"\n fill=\"#527585\"\n />\n <path\n d=\"M11.524 90.544l13.385-16.52 2.657 1.534-12.174 17.22-3.868-2.234zm9.467 5.467L34.377 79.49l2.656 1.534-12.174 17.22-3.868-2.233zm9.527 5.5L43.903 84.99l1.288.744-11.47 17.626-3.203-1.85z\"\n fill=\"#76A2B5\"\n opacity={0.6}\n />\n <path\n d=\"M.355 59.848l-23.689 33.507-5.013-2.895 26.045-32.146 2.657 1.534zm9.468 5.466L-13.866 98.82l-5.013-2.895L7.166 63.78l2.657 1.534zm8.158 4.71L-4.34 104.32l-5.014-2.895L16.692 69.28l1.289.744z\"\n fillOpacity={0.1}\n fill=\"#000\"\n />\n <g>\n <path\n fill=\"url(#EmptySearchResults_svg__c)\"\n opacity={0.993}\n filter=\"url(#EmptySearchResults_svg__d)\"\n d=\"M.63 0h173.74L123 172H52z\"\n transform=\"rotate(120 90.404 138.861)\"\n />\n <path\n fill=\"url(#EmptySearchResults_svg__e)\"\n opacity={0.3}\n d=\"M4 9h166.37L120.73 172.299H53.64z\"\n transform=\"rotate(120 90.404 138.861)\"\n />\n <path\n fill=\"url(#EmptySearchResults_svg__f)\"\n opacity={0.3}\n d=\"M4 2h166.37L120.73 172.299H53.64z\"\n transform=\"rotate(120 90.404 138.861)\"\n />\n <path\n fill=\"url(#EmptySearchResults_svg__g)\"\n d=\"M4 9h166.37L120.73 172.299H53.64z\"\n transform=\"rotate(120 90.404 138.861)\"\n />\n <path fill=\"#FFF\" opacity={0.196} d=\"M212.363 205.344l-1 1.732L60.418 124.52l4.977-8.62z\" />\n </g>\n <path fill=\"#76A2B5\" d=\"M73.112 84.533l-35.5 61.488-.866-.5 35.5-61.488z\" />\n <path fill=\"#F3F3F3\" d=\"M80.906 89.033l-35.5 61.488-.866-.5 35.5-61.488z\" />\n <path fill=\"#538196\" d=\"M55.112 115.71l-17.5 30.311-.866-.5 17.5-30.31z\" />\n </g>\n </g>\n </svg>\n );\n};\n\nexport default SvgEmptySearchResults;\n","import React from 'react';\n\nconst SvgSelectAttributes: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={256} height={256} viewBox=\"0 0 256 256\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <circle cx={128} cy={128} r={128} fill=\"#0072CE\" fillOpacity={0.1} />\n <mask\n id=\"SelectAttributes_svg__a\"\n style={{\n maskType: 'alpha'\n }}\n maskUnits=\"userSpaceOnUse\"\n x={0}\n y={0}\n width={256}\n height={256}\n >\n <circle cx={128} cy={128} r={128} fill=\"#fff\" />\n </mask>\n <g mask=\"url(#SelectAttributes_svg__a)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M-16 9h256v247H-16V9z\"\n fill=\"url(#SelectAttributes_svg__paint0_linear_0_19219)\"\n />\n <path\n opacity={0.05}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M187.761 56.865l58.639 58.639v148.871H93.383L52 225.083V56.865h135.761z\"\n fill=\"url(#SelectAttributes_svg__paint1_linear_0_19219)\"\n />\n <path\n opacity={0.06}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M47 58h202a7 7 0 017 7v157a7 7 0 01-7 7H47a7 7 0 01-7-7V65a7 7 0 017-7z\"\n fill=\"#000\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M50 56h201a5 5 0 015 5v157a5 5 0 01-5 5H50a5 5 0 01-5-5V61a5 5 0 015-5z\"\n fill=\"#fff\"\n />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105.376 72.635a3 3 0 013-3H150a3 3 0 110 6h-41.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105 84.635a3 3 0 013-3h64.205a3 3 0 110 6H108a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105.376 163a3 3 0 013-3H150a3 3 0 110 6h-41.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105 175a3 3 0 013-3h64.205a3 3 0 110 6H108a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105.376 193a3 3 0 013-3H190a3 3 0 110 6h-81.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105 205a3 3 0 013-3h74.205a3 3 0 110 6H108a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M138.376 103a3 3 0 013-3H223a3 3 0 110 6h-81.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M138 115a3 3 0 013-3h64.205a3 3 0 110 6H141a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <circle cx={67} cy={79} r={9} fill=\"#B6C7DB\" />\n <circle cx={67} cy={79} r={9} fill=\"#B6C7DB\" />\n <circle cx={120} cy={106} r={6} fill=\"#B6C7DB\" />\n <circle cx={120} cy={136} r={6} fill=\"#B6C7DB\" />\n <circle cx={67} cy={169} r={9} fill=\"#B6C7DB\" />\n <circle cx={67} cy={199} r={9} fill=\"#B6C7DB\" />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M138.376 133a3 3 0 013-3H223a3 3 0 110 6h-81.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M138 145a3 3 0 013-3h74.205a3 3 0 110 6H141a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M92.514 108v-8h-2V140.365h11.178v-2h-9.178V110h9.178v-2h-9.178z\"\n fill=\"#2B98F0\"\n />\n <path\n opacity={0.54}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M95.071 77l-3.535 3.535L88 77h7.071z\"\n fill=\"#000\"\n />\n <path\n opacity={0.6}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M50 22h186a6 6 0 016 6v18a6 6 0 01-6 6H50a6 6 0 01-6-6V28a6 6 0 016-6z\"\n fill=\"#fff\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M58 37a6 6 0 016-6h70a6 6 0 110 12H64a6 6 0 01-6-6zM148 37a6 6 0 016-6h10a6 6 0 110 12h-10a6 6 0 01-6-6z\"\n fill=\"#979797\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"SelectAttributes_svg__paint0_linear_0_19219\"\n x1={-16}\n y1={9}\n x2={-16}\n y2={256}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FAFAFA\" stopOpacity={0.01} />\n <stop offset={1} stopColor=\"#F4F4F4\" />\n </linearGradient>\n <linearGradient\n id=\"SelectAttributes_svg__paint1_linear_0_19219\"\n x1={266.117}\n y1={181.111}\n x2={154.882}\n y2={77.681}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopOpacity={0.01} />\n <stop offset={1} />\n </linearGradient>\n </defs>\n </svg>\n );\n};\n\nexport default SvgSelectAttributes;\n","import React from 'react';\n\nconst SvgNoData: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg\n width={256}\n height={256}\n viewBox=\"0 0 256 256\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}\n >\n <defs>\n <linearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"NoData_svg__b\">\n <stop stopColor=\"#FAFAFA\" stopOpacity={0} offset=\"0%\" />\n <stop stopColor=\"#F4F4F4\" offset=\"100%\" />\n </linearGradient>\n <linearGradient x1=\"69.573%\" y1=\"86.747%\" x2=\"38.144%\" y2=\"33.403%\" id=\"NoData_svg__d\">\n <stop stopColor=\"#000\" stopOpacity={0} offset=\"0%\" />\n <stop stopColor=\"#000\" offset=\"100%\" />\n </linearGradient>\n <linearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"NoData_svg__e\">\n <stop stopColor=\"#EEFBFF\" offset=\"0%\" />\n <stop stopColor=\"#0072CE\" offset=\"100%\" />\n </linearGradient>\n <filter\n x=\"-7.7%\"\n y=\"-7.5%\"\n width=\"115.3%\"\n height=\"115%\"\n filterUnits=\"objectBoundingBox\"\n id=\"NoData_svg__f\"\n >\n <feOffset dx={0} dy={2} in=\"SourceAlpha\" result=\"shadowOffsetOuter1\" />\n <feGaussianBlur stdDeviation={2} in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\" />\n <feColorMatrix\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n type=\"matrix\"\n in=\"shadowBlurOuter1\"\n result=\"shadowMatrixOuter1\"\n />\n <feMerge>\n <feMergeNode in=\"shadowMatrixOuter1\" />\n <feMergeNode in=\"SourceGraphic\" />\n </feMerge>\n </filter>\n <circle id=\"NoData_svg__a\" cx={128} cy={128} r={128} />\n </defs>\n <g stroke=\"none\" strokeWidth={1} fill=\"none\" fillRule=\"evenodd\">\n <mask id=\"NoData_svg__c\" fill=\"#fff\">\n <use xlinkHref=\"#NoData_svg__a\" />\n </mask>\n <use fillOpacity={0.1} fill=\"#0072CE\" xlinkHref=\"#NoData_svg__a\" />\n <path fill=\"url(#NoData_svg__b)\" mask=\"url(#NoData_svg__c)\" d=\"M0 9h256v247H0z\" />\n <g mask=\"url(#NoData_svg__c)\">\n <g transform=\"translate(29 37)\">\n <g opacity={0.9} strokeWidth={1} fill=\"#FFF\">\n <path fillOpacity={0.8} opacity={0.5} d=\"M14.565 8h228.144v176.476H14.565z\" />\n <path d=\"M0 8.01C0 3.586 3.576 0 7.997 0h223.838a7.997 7.997 0 017.997 8.01v152.401c0 4.424-3.577 8.01-7.997 8.01H7.997A7.997 7.997 0 010 160.411V8.01z\" />\n </g>\n <g strokeWidth={1} fill=\"none\" transform=\"translate(19.986 42.105)\">\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={195.862} cy={5.013} rx={3.997} ry={4.01} />\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={181.872} cy={5.013} rx={3.997} ry={4.01} />\n <path\n d=\"M9.493 1.003a9.493 9.493 0 019.494 9.493v.06a9.493 9.493 0 01-18.987 0v-.06a9.493 9.493 0 019.493-9.493z\"\n fill=\"#E3EBF4\"\n />\n <path\n d=\"M32.488.791h64.093a3.509 3.509 0 110 7.018H32.488a3.509 3.509 0 110-7.018z\"\n fill=\"#B1AABD\"\n opacity={0.5}\n />\n <path\n d=\"M31.486 13.824h115.902a2.506 2.506 0 010 5.012H31.486a2.506 2.506 0 010-5.012z\"\n fill=\"#B1AABD\"\n opacity={0.43}\n />\n <path\n d=\"M30.483 22.846H67.88a1.504 1.504 0 110 3.008H30.483a1.504 1.504 0 110-3.008z\"\n fill=\"#B1AABD\"\n opacity={0.2}\n />\n </g>\n <rect\n fill=\"#645F6D\"\n opacity={0.5}\n x={19.986}\n y={16.04}\n width={79.944}\n height={11.028}\n rx={5.514}\n />\n <g strokeWidth={1} fill=\"none\" transform=\"translate(19.986 80.2)\">\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={195.862} cy={5.013} rx={3.997} ry={4.01} />\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={181.872} cy={5.013} rx={3.997} ry={4.01} />\n <rect fill=\"#E3EBF4\" x={0} y={1.003} width={18.987} height={19.048} rx={9.493} />\n <path\n d=\"M32.488.791h75.925a3.509 3.509 0 010 7.018H32.488a3.509 3.509 0 110-7.018z\"\n fill=\"#B1AABD\"\n opacity={0.5}\n />\n <path\n d=\"M31.486 13.824h128.893a2.506 2.506 0 110 5.012H31.486a2.506 2.506 0 010-5.012z\"\n fill=\"#B1AABD\"\n opacity={0.43}\n />\n <path\n d=\"M30.483 22.846h103.918a1.504 1.504 0 010 3.008H30.483a1.504 1.504 0 110-3.008z\"\n fill=\"#B1AABD\"\n opacity={0.2}\n />\n </g>\n <g strokeWidth={1} fill=\"none\" transform=\"translate(19.986 118.296)\">\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={195.862} cy={5.013} rx={3.997} ry={4.01} />\n <ellipse fill=\"#6DBCFF\" opacity={0.5} cx={181.872} cy={5.013} rx={3.997} ry={4.01} />\n <path\n d=\"M9.493 1.003a9.493 9.493 0 019.494 9.493v.06a9.493 9.493 0 01-18.987 0v-.06a9.493 9.493 0 019.493-9.493z\"\n fill=\"#E3EBF4\"\n />\n <path\n d=\"M32.488.791h101.906a3.509 3.509 0 010 7.018H32.488a3.509 3.509 0 110-7.018z\"\n fill=\"#B1AABD\"\n opacity={0.5}\n />\n <path\n d=\"M31.486 13.824h84.924a2.506 2.506 0 010 5.012H31.486a2.506 2.506 0 010-5.012z\"\n fill=\"#B1AABD\"\n opacity={0.43}\n />\n <path\n d=\"M30.483 22.846H67.88a1.504 1.504 0 110 3.008H30.483a1.504 1.504 0 110-3.008z\"\n fill=\"#B1AABD\"\n opacity={0.2}\n />\n </g>\n </g>\n </g>\n <g mask=\"url(#NoData_svg__c)\">\n <path\n d=\"M154.445 45.134v154.072H36.625V45.134h.811C35.508 62.52 41.07 80.609 54.12 93.944c22.74 23.235 59.61 23.235 82.352 0 13.05-13.335 18.612-31.424 16.683-48.81h1.29z\"\n fill=\"url(#NoData_svg__d)\"\n opacity={0.1}\n transform=\"rotate(-30 291.014 34.548)\"\n />\n <path\n d=\"M27.473 93.234c17.964 18.355 47.09 18.355 65.054 0s17.964-48.113 0-66.468c-17.964-18.355-47.09-18.355-65.054 0s-17.964 48.113 0 66.468z\"\n fill=\"url(#NoData_svg__e)\"\n opacity={0.2}\n transform=\"translate(70 86)\"\n />\n <g filter=\"url(#NoData_svg__f)\" strokeWidth={1} fill=\"none\" transform=\"translate(70 86)\">\n <path\n d=\"M59.697 0c32.97 0 59.697 26.746 59.697 59.738 0 15.185-5.662 29.047-14.988 39.587l51.204 51.24a89.336 89.336 0 01-10.097 9.392l-51.38-51.416c-9.73 6.888-21.61 10.936-34.436 10.936C26.727 119.477 0 92.73 0 59.738 0 26.746 26.727 0 59.697 0zm0 17.756c-23.17 0-41.953 18.796-41.953 41.982s18.783 41.982 41.953 41.982 41.953-18.796 41.953-41.982-18.783-41.982-41.953-41.982z\"\n fill=\"#B5C8C9\"\n />\n <path\n d=\"M21.508 105.656C8.365 94.698 0 78.196 0 59.738 0 26.746 26.727 0 59.697 0c18.444 0 34.935 8.37 45.885 21.523l-9.794 9.8c-8.408-10.68-21.45-17.537-36.091-17.537-25.361 0-45.92 20.573-45.92 45.952 0 14.652 6.852 27.702 17.525 36.117l-9.794 9.8z\"\n fillOpacity={0.4}\n fill=\"#FFF\"\n />\n </g>\n <path\n d=\"M97.473 179.234c17.964 18.355 47.09 18.355 65.054 0s17.964-48.113 0-66.468c-17.964-18.355-47.09-18.355-65.054 0s-17.964 48.113 0 66.468z\"\n fill=\"#D9F5FF\"\n opacity={0.4}\n style={{\n mixBlendMode: 'soft-light'\n }}\n />\n <path\n d=\"M123.885 158.736c0-3.929.444-7.03 1.332-9.304.888-2.274 2.328-4.245 4.32-5.914 1.99-1.668 3.504-3.195 4.54-4.581 1.037-1.386 1.555-2.913 1.555-4.581 0-4.064-1.75-6.095-5.248-6.095-1.614 0-2.92.592-3.915 1.776-.996 1.184-1.52 2.785-1.574 4.803H111.25c.054-5.382 1.75-9.573 5.086-12.574 3.337-3 8.02-4.5 14.047-4.5 6.001 0 10.65 1.386 13.946 4.157 3.297 2.772 4.945 6.714 4.945 11.827 0 2.234-.444 4.265-1.332 6.095-.888 1.83-2.315 3.7-4.279 5.61l-4.642 4.32c-1.318 1.265-2.233 2.563-2.745 3.895-.51 1.332-.793 3.02-.847 5.066h-11.545zm-1.655 12.27c0-1.99.72-3.625 2.16-4.904 1.44-1.278 3.236-1.917 5.389-1.917 2.152 0 3.949.64 5.388 1.917 1.44 1.279 2.16 2.913 2.16 4.905 0 1.991-.72 3.626-2.16 4.904-1.44 1.278-3.236 1.917-5.388 1.917-2.153 0-3.95-.639-5.389-1.917-1.44-1.278-2.16-2.913-2.16-4.904z\"\n fillOpacity={0.87}\n fill=\"#000\"\n style={{\n mixBlendMode: 'overlay'\n }}\n />\n <path\n d=\"M123.885 158.736c0-3.929.444-7.03 1.332-9.304.888-2.274 2.328-4.245 4.32-5.914 1.99-1.668 3.504-3.195 4.54-4.581 1.037-1.386 1.555-2.913 1.555-4.581 0-4.064-1.75-6.095-5.248-6.095-1.614 0-2.92.592-3.915 1.776-.996 1.184-1.52 2.785-1.574 4.803H111.25c.054-5.382 1.75-9.573 5.086-12.574 3.337-3 8.02-4.5 14.047-4.5 6.001 0 10.65 1.386 13.946 4.157 3.297 2.772 4.945 6.714 4.945 11.827 0 2.234-.444 4.265-1.332 6.095-.888 1.83-2.315 3.7-4.279 5.61l-4.642 4.32c-1.318 1.265-2.233 2.563-2.745 3.895-.51 1.332-.793 3.02-.847 5.066h-11.545zm-1.655 12.27c0-1.99.72-3.625 2.16-4.904 1.44-1.278 3.236-1.917 5.389-1.917 2.152 0 3.949.64 5.388 1.917 1.44 1.279 2.16 2.913 2.16 4.905 0 1.991-.72 3.626-2.16 4.904-1.44 1.278-3.236 1.917-5.388 1.917-2.153 0-3.95-.639-5.389-1.917-1.44-1.278-2.16-2.913-2.16-4.904z\"\n fillOpacity={0.38}\n fill=\"#3C74B4\"\n />\n </g>\n </g>\n </svg>\n );\n};\n\nexport default SvgNoData;\n","import React from 'react';\n\nconst SvgError: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={88} height={88} viewBox=\"0 0 88 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <mask\n id=\"Error_svg__a\"\n style={{\n maskType: 'alpha'\n }}\n maskUnits=\"userSpaceOnUse\"\n x={0}\n y={0}\n width={88}\n height={88}\n >\n <path d=\"M44 88c24.3 0 44-19.7 44-44S68.3 0 44 0 0 19.7 0 44s19.7 44 44 44z\" fill=\"#fff\" />\n </mask>\n <g mask=\"url(#Error_svg__a)\">\n <path\n d=\"M44 88c24.3 0 44-19.7 44-44S68.3 0 44 0 0 19.7 0 44s19.7 44 44 44z\"\n fill=\"#CAC4D5\"\n fillOpacity={0.3}\n />\n <path\n opacity={0.3}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M19.987 6.73l49.449 6.072a.687.687 0 01.596.767l-7.845 63.888a.688.688 0 01-.766.6L7.214 71.4a.688.688 0 01-.599-.763l.408-3.326L19.987 6.73z\"\n fill=\"#fff\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.267 25.921l45.86-19.466a.687.687 0 01.9.366l25.15 59.251a.61.61 0 01-.386.84L22.34 82.765a.719.719 0 01-.887-.445l-20.185-56.4z\"\n fill=\"#fff\"\n />\n <path\n d=\"M65.631 9.23H11.017a.688.688 0 00-.687.687v64.37c0 .38.307.687.687.687h54.614c.38 0 .688-.308.688-.687V9.917a.688.688 0 00-.688-.688z\"\n fill=\"#F9F9F9\"\n />\n <path\n opacity={0.1}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.885 34.95l3.105-1.666 7.31-4.025 8.852 3.472 7.89-5.223 8.036-2.628 8.113 5.193 3.352-10.255v16.967H14.935l-.05-1.835z\"\n fill=\"#9C6CF0\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.885 32.331l3.105-3.761 7.31 4.31 8.852 1.656 7.89-2.205 8.036 1.827 8.113-12.643 3.352.742V36.36H14.935l-.05-4.029z\"\n fill=\"#FA82AA\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.885 34.946l3.105.432 7.31 1.01 8.852-5.117 7.89 3.675 8.036 1.839 8.113-1.839 3.352.811v1.028H14.935l-.05-1.839z\"\n fill=\"#4DBEE9\"\n />\n <path\n opacity={0.1}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M61.543 35.288l-.05 1.497H14.885v-5.239l3.352-.276 8.114 4.697 8.036-.679 7.889.82 8.852-.616 7.31-1.601 3.105 1.397z\"\n fill=\"#4DBEE9\"\n />\n <path d=\"M21.036 40.178h-5.09a.636.636 0 000 1.272h5.09a.636.636 0 100-1.272z\" fill=\"#ACACAC\" />\n <path\n opacity={0.3}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.582 55.872c.703 0 1.273.57 1.273 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.272-1.272zM25.914 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.273-1.272zM39.91 55.872c.703 0 1.273.57 1.273 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.273-1.272zM21.248 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.273 1.273 0 01-2.545 0V57.144c0-.702.57-1.272 1.273-1.272zM35.245 55.872c.703 0 1.273.57 1.273 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.272-1.272zM30.58 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.272-1.272zM44.577 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.273 1.273 0 01-2.545 0V57.144c0-.702.57-1.272 1.273-1.272z\"\n fill=\"#BDBDBD\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.582 65.628c.703 0 1.273.57 1.273 1.272v2.121a1.272 1.272 0 11-2.545 0v-2.12c0-.703.57-1.273 1.272-1.273zM25.914 62.658c.702 0 1.272.57 1.272 1.273v5.09a1.272 1.272 0 11-2.545 0v-5.09c0-.703.57-1.273 1.273-1.273zM39.91 65.628c.703 0 1.273.57 1.273 1.272v2.121a1.272 1.272 0 11-2.545 0v-2.12c0-.703.57-1.273 1.273-1.273zM21.248 66.477c.702 0 1.272.57 1.272 1.272v1.273a1.273 1.273 0 01-2.545 0v-1.273c0-.703.57-1.272 1.273-1.272z\"\n fill=\"#4DBEE9\"\n />\n <path\n d=\"M36.518 65.628a1.272 1.272 0 00-2.545 0v3.393a1.272 1.272 0 102.545 0v-3.393zM31.852 62.234a1.272 1.272 0 10-2.545 0v6.787a1.272 1.272 0 102.545 0v-6.787z\"\n fill=\"#4DBEE9\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M44.577 60.962c.702 0 1.272.57 1.272 1.272v6.787a1.273 1.273 0 01-2.545 0v-6.787c0-.702.57-1.272 1.273-1.272z\"\n fill=\"#4DBEE9\"\n />\n <path d=\"M18.915 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\" fill=\"#9C6CF0\" />\n <path\n opacity={0.5}\n d=\"M34.185 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\"\n fill=\"#4DBEE9\"\n />\n <path\n opacity={0.3}\n d=\"M49.454 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\"\n fill=\"#4DBEE9\"\n />\n <path opacity={0.8} d=\"M26.55 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\" fill=\"#FB6597\" />\n <path d=\"M41.82 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\" fill=\"#4DBEE9\" />\n <path opacity={0.2} d=\"M57.09 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\" fill=\"#4DBEE9\" />\n <path\n opacity={0.5}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.582 19.818h4.666a.424.424 0 110 .849h-4.666a.424.424 0 110-.849zM31.851 19.818h4.666a.424.424 0 010 .849h-4.666a.424.424 0 110-.849zM47.121 19.818h4.666a.424.424 0 010 .849h-4.666a.424.424 0 010-.849zM24.217 19.818h4.665a.424.424 0 010 .849h-4.665a.424.424 0 010-.849zM39.486 19.818h4.666a.424.424 0 110 .849h-4.666a.424.424 0 110-.849zM54.756 19.818h4.666a.424.424 0 110 .849h-4.666a.424.424 0 110-.849z\"\n fill=\"#ACACAC\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.946 43.571h5.09a.636.636 0 110 1.273h-5.09a.636.636 0 010-1.273zM15.946 46.116h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 010-1.273zM15.946 48.661h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 110-1.273zM23.58 43.571h5.09a.636.636 0 110 1.273h-5.09a.636.636 0 010-1.273zM23.58 46.116h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 010-1.273zM23.58 48.661h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 110-1.273zM49.454 43.571h11.028a.636.636 0 010 1.273H49.454a.636.636 0 010-1.273zM49.454 46.116h11.028a.636.636 0 010 1.273H49.454a.636.636 0 010-1.273zM49.454 48.661h11.028a.636.636 0 010 1.273H49.454a.636.636 0 110-1.273zM31.215 43.571h15.27a.636.636 0 110 1.273h-15.27a.636.636 0 010-1.273zM31.215 46.116h15.27a.636.636 0 010 1.273h-15.27a.636.636 0 010-1.273zM31.215 48.661h15.27a.636.636 0 010 1.273h-15.27a.636.636 0 010-1.273zM15.946 51.206h5.09a.636.636 0 110 1.272h-5.09a.636.636 0 110-1.272zM23.58 51.206h5.09a.636.636 0 110 1.272h-5.09a.636.636 0 110-1.272zM49.454 51.206h11.028a.636.636 0 010 1.272H49.454a.636.636 0 110-1.272zM31.215 51.206h15.27a.636.636 0 110 1.272h-15.27a.636.636 0 010-1.272z\"\n fill=\"#E9E9E9\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M49.878 55.872h5.09a.636.636 0 110 1.273h-5.09a.636.636 0 110-1.273z\"\n fill=\"#ACACAC\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M49.878 59.69h11.029a.636.636 0 010 1.272H49.878a.636.636 0 110-1.273zM49.878 62.234h11.029a.636.636 0 010 1.273H49.878a.636.636 0 010-1.273zM49.878 64.78h11.029a.636.636 0 010 1.272H49.878a.636.636 0 010-1.273z\"\n fill=\"#E9E9E9\"\n />\n <path d=\"M54.968 67.324h-5.09a.636.636 0 000 1.273h5.09a.636.636 0 000-1.273z\" fill=\"#E9E9E9\" />\n <g filter=\"url(#Error_svg__filter0_d)\">\n <path\n d=\"M57.406 74.25c9.493 0 17.188-7.695 17.188-17.188 0-9.492-7.695-17.187-17.188-17.187-9.492 0-17.187 7.695-17.187 17.188 0 9.492 7.695 17.187 17.187 17.187z\"\n fill=\"#000\"\n />\n </g>\n <path\n d=\"M57.406 74.25c9.493 0 17.188-7.695 17.188-17.188 0-9.492-7.695-17.187-17.188-17.187-9.492 0-17.187 7.695-17.187 17.188 0 9.492 7.695 17.187 17.187 17.187z\"\n fill=\"#F25252\"\n />\n <path\n opacity={0.15}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M57.406 34.719c12.34 0 22.344 10.003 22.344 22.343S69.746 79.406 57.406 79.406c-12.34 0-22.343-10.003-22.343-22.344 0-12.34 10.003-22.343 22.343-22.343zm-.172 2.406c-10.916 0-19.765 8.85-19.765 19.766 0 10.916 8.85 19.765 19.765 19.765C68.151 76.656 77 67.806 77 56.891c0-10.917-8.85-19.766-19.766-19.766z\"\n fill=\"#F25252\"\n />\n <path\n opacity={0.3}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M57.406 38.844c10.062 0 18.219 8.157 18.219 18.218 0 10.062-8.157 18.22-18.219 18.22-10.062 0-18.218-8.158-18.218-18.22 0-10.061 8.156-18.218 18.218-18.218zm0 2.043c-8.933 0-16.175 7.242-16.175 16.175 0 8.934 7.242 16.176 16.175 16.176 8.934 0 16.176-7.242 16.176-16.175 0-8.934-7.242-16.176-16.176-16.176z\"\n fill=\"#F25252\"\n />\n <path\n opacity={0.05}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M57.406 26.469C74.303 26.469 88 40.166 88 57.062c0 16.897-13.697 30.594-30.594 30.594-16.896 0-30.593-13.697-30.593-30.594 0-16.896 13.697-30.593 30.593-30.593zm-.172 3.437c-14.903 0-26.984 12.082-26.984 26.985 0 14.903 12.081 26.984 26.984 26.984 14.903 0 26.985-12.081 26.985-26.984 0-14.903-12.082-26.985-26.985-26.985z\"\n fill=\"#F25252\"\n />\n <path\n d=\"M57.406 71.844c8.164 0 14.782-6.618 14.782-14.781 0-8.164-6.618-14.782-14.782-14.782-8.163 0-14.781 6.618-14.781 14.782 0 8.163 6.618 14.78 14.781 14.78z\"\n fill=\"#FF6A6A\"\n />\n <path\n opacity={0.05}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M58.298 46.448L75.18 63.331l-9.114 12.078h-2.029l-7.582-7.582 1.006-3.178.837-18.2z\"\n fill=\"url(#Error_svg__paint0_linear)\"\n />\n <g filter=\"url(#Error_svg__filter1_d)\">\n <path d=\"M57.406 68.063a1.719 1.719 0 100-3.438 1.719 1.719 0 000 3.438z\" fill=\"#000\" />\n </g>\n <path d=\"M57.406 68.063a1.719 1.719 0 100-3.438 1.719 1.719 0 000 3.438z\" fill=\"#fff\" />\n <g filter=\"url(#Error_svg__filter2_d)\">\n <path\n d=\"M57.406 46.063c.95 0 1.719.769 1.719 1.718v12.375a1.719 1.719 0 11-3.438 0V47.781c0-.949.77-1.718 1.72-1.718z\"\n fill=\"#000\"\n />\n </g>\n <path\n d=\"M57.406 46.063c.95 0 1.719.769 1.719 1.718v12.375a1.719 1.719 0 11-3.438 0V47.781c0-.949.77-1.718 1.72-1.718z\"\n fill=\"#fff\"\n />\n </g>\n <defs>\n <filter\n id=\"Error_svg__filter0_d\"\n x={36.219}\n y={37.875}\n width={42.375}\n height={42.375}\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={2} />\n <feGaussianBlur stdDeviation={2} />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow\" result=\"shape\" />\n </filter>\n <filter\n id=\"Error_svg__filter1_d\"\n x={51.688}\n y={62.625}\n width={11.438}\n height={11.438}\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={2} />\n <feGaussianBlur stdDeviation={2} />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow\" result=\"shape\" />\n </filter>\n <filter\n id=\"Error_svg__filter2_d\"\n x={51.688}\n y={44.063}\n width={11.438}\n height={23.813}\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={2} />\n <feGaussianBlur stdDeviation={2} />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow\" result=\"shape\" />\n </filter>\n <linearGradient\n id=\"Error_svg__paint0_linear\"\n x1={68.438}\n y1={71.571}\n x2={60.119}\n y2={58.801}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopOpacity={0} />\n <stop offset={1} />\n </linearGradient>\n </defs>\n </svg>\n );\n};\n\nexport default SvgError;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(() => ({\n row: {\n display: 'flex',\n marginBottom: '12px'\n },\n rowItem: {\n paddingRight: '10px',\n display: 'flex'\n },\n fullWidth: {\n flexGrow: '1',\n flexBasis: '0',\n overflow: 'hidden'\n },\n hidden: {\n visibility: 'hidden'\n }\n}));\n\nexport default useStyles;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst height = '46px';\n\nconst useStyles = makeStyles((theme) => ({\n readOnlyLogicOperatorContainer: {\n display: 'flex',\n alignItems: 'center',\n marginRight: '40px',\n width: '76px',\n fontSize: '14px',\n color: theme.palette.text.secondary,\n maxHeight: height\n },\n readOnlyFilter: {\n display: 'flex',\n alignItems: 'center',\n fontSize: '14px',\n color: theme.palette.text.secondary,\n width: '50px',\n marginLeft: '12px',\n maxHeight: height\n }\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport capitalize from '@material-ui/core/utils/capitalize';\n\nimport useStyles from './styles';\n\nconst ReadOnlyLogicOperator = ({className, rowData}) => {\n const styles = useStyles();\n return (\n <div className={classnames(styles.readOnlyLogicOperatorContainer, className)}>\n {rowData && rowData.operator ? capitalize(rowData.operator) : i18n.text('Where')}\n </div>\n );\n};\n\nReadOnlyLogicOperator.propTypes = {\n className: PropTypes.string,\n rowData: PropTypes.object\n};\n\nexport default ReadOnlyLogicOperator;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport {getFilterOptionLabel} from '@reltio/mdm-sdk';\n\nimport useStyles from './styles';\n\nconst ReadOnlyFilter = ({className, rowData}) => {\n const styles = useStyles();\n return (\n <div className={classnames(styles.readOnlyFilter, className)}>\n {rowData && rowData.filter ? getFilterOptionLabel(rowData.filter) : i18n.text('equals')}\n </div>\n );\n};\n\nReadOnlyFilter.propTypes = {\n className: PropTypes.string,\n rowData: PropTypes.object\n};\n\nexport default ReadOnlyFilter;\n","import React, {memo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nimport useStyles from './styles';\n\nimport ReadOnlyLogicOperator from './components/ReadOnlyLogicOperator';\nimport ReadOnlyFilter from './components/ReadOnlyFilter';\nimport {QueryBuilderAttributeType} from '../../constants';\n\nconst QueryBuilderRow = ({\n classes = {},\n rowData,\n previousRowData,\n LogicOperatorComponent = ReadOnlyLogicOperator,\n AttributeSelectorComponent,\n FilterSelectorComponent = ReadOnlyFilter,\n ValuesEditorComponent,\n ActionsComponent,\n filterSelectorRef,\n attributeSelectorProps = {},\n ...rowContext\n}) => {\n const styles = useStyles();\n\n return (\n <div className={classnames(styles.row, classes.root)}>\n <LogicOperatorComponent\n className={classes.logicOperatorContainer}\n rowContext={rowContext}\n rowData={previousRowData}\n />\n <div className={classnames(styles.rowItem, classes.attributeSelectorContainer)}>\n <AttributeSelectorComponent\n attributeSelectorProps={attributeSelectorProps}\n rowContext={rowContext}\n rowData={rowData}\n />\n </div>\n <div className={classnames(styles.rowItem, classes.filterSelectorContainer)}>\n <FilterSelectorComponent\n textFieldInputRef={filterSelectorRef}\n rowContext={rowContext}\n rowData={rowData}\n />\n </div>\n <div className={classnames(styles.rowItem, styles.fullWidth, classes.valuesEditorContainer)}>\n <ValuesEditorComponent rowContext={rowContext} rowData={rowData} />\n </div>\n <div className={classnames(styles.rowItem, classes.actionsContainer, {[styles.hidden]: !rowData})}>\n <ActionsComponent rowContext={rowContext} rowData={rowData} />\n </div>\n </div>\n );\n};\n\nQueryBuilderRow.propTypes = {\n classes: PropTypes.shape({\n root: PropTypes.string,\n logicOperatorContainer: PropTypes.string,\n attributeSelectorContainer: PropTypes.string,\n filterSelectorContainer: PropTypes.string,\n valuesEditorContainer: PropTypes.string,\n actionsContainer: PropTypes.string\n }),\n rowData: QueryBuilderAttributeType,\n previousRowData: QueryBuilderAttributeType,\n LogicOperatorComponent: PropTypes.elementType,\n AttributeSelectorComponent: PropTypes.elementType,\n FilterSelectorComponent: PropTypes.elementType,\n ValuesEditorComponent: PropTypes.elementType,\n ActionsComponent: PropTypes.elementType,\n filterSelectorRef: PropTypes.object,\n attributeSelectorProps: PropTypes.shape({\n onRestoreFocus: PropTypes.func,\n onOpen: PropTypes.func,\n disablePopoverRestoreFocus: PropTypes.bool\n })\n};\n\nexport default memo(QueryBuilderRow);\n","import React, {memo} from 'react';\nimport PropTypes from 'prop-types';\nimport {path} from 'ramda';\n\nimport QueryBuilderRow from '../QueryBuilderRow/QueryBuilderRow';\nimport {QueryBuilderAttributeType} from '../../constants';\n\nconst QueryBuilderRowsGroup = ({\n className = undefined,\n rowClasses,\n rowsData,\n lastRowAttributeSelectorProps,\n filterSelectorRef,\n filterSelectorRefIndex,\n ...rowProps\n}) => {\n const renderRow = (rowData, index, rowsData) => {\n const previousRow = index > 0 ? path([index - 1], rowsData) : null;\n const lastRowProps =\n index === rowsData.length\n ? {\n attributeSelectorProps: lastRowAttributeSelectorProps\n }\n : {};\n return (\n <QueryBuilderRow\n key={rowData && rowData.id}\n rowData={rowData}\n previousRowData={previousRow}\n classes={rowClasses}\n filterSelectorRef={index === filterSelectorRefIndex ? filterSelectorRef : undefined}\n {...rowProps}\n {...lastRowProps}\n />\n );\n };\n\n return (\n <div className={className}>\n {rowsData.map(renderRow)}\n {renderRow(null, rowsData.length, rowsData)}\n </div>\n );\n};\n\nQueryBuilderRowsGroup.propTypes = {\n className: PropTypes.string,\n rowClasses: PropTypes.shape({\n root: PropTypes.string,\n logicOperatorContainer: PropTypes.string,\n attributeSelectorContainer: PropTypes.string,\n filterSelectorContainer: PropTypes.string,\n valuesEditorContainer: PropTypes.string,\n actionsContainer: PropTypes.string\n }),\n rowsData: PropTypes.arrayOf(QueryBuilderAttributeType),\n LogicOperatorComponent: PropTypes.elementType,\n AttributeSelectorComponent: PropTypes.elementType,\n FilterSelectorComponent: PropTypes.elementType,\n ValuesEditorComponent: PropTypes.elementType,\n ActionsComponent: PropTypes.elementType,\n filterSelectorRef: PropTypes.object,\n filterSelectorRefIndex: PropTypes.number,\n lastRowAttributeSelectorProps: PropTypes.shape({\n onRestoreFocus: PropTypes.func,\n onOpen: PropTypes.func,\n disablePopoverRestoreFocus: PropTypes.bool\n })\n};\n\nexport default memo(QueryBuilderRowsGroup);\n","import CreatableSelect from 'react-select/creatable';\nimport withMuiSkin from './withMuiSkin';\n\nexport default withMuiSkin(CreatableSelect);\n","import {MenuItem as MenuItem} from '@material-ui/core';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport ExpandedValueTooltip from '../../../ExpandedValueTooltip/ExpandedValueTooltip';\n\nexport default function Option(props) {\n const {\n innerProps,\n innerRef,\n children,\n isFocused,\n isSelected,\n selectProps: {classes},\n label\n } = props;\n\n return (\n <MenuItem\n className={classNames(classes.option, {[classes['option--selected']]: isSelected})}\n ref={innerRef}\n selected={isFocused}\n component=\"div\"\n {...innerProps}\n >\n <Checkbox color=\"primary\" checked={isSelected} />\n <ExpandedValueTooltip value={label}>\n <div className={classes['option--item']}>{children}</div>\n </ExpandedValueTooltip>\n </MenuItem>\n );\n}\n\nOption.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.shape({\n id: PropTypes.string.isRequired,\n key: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n onMouseMove: PropTypes.func.isRequired,\n onMouseOver: PropTypes.func.isRequired,\n tabIndex: PropTypes.number.isRequired\n }).isRequired,\n innerRef: PropTypes.oneOfType([\n PropTypes.oneOf([null]),\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any.isRequired\n })\n ]),\n isFocused: PropTypes.bool.isRequired,\n isSelected: PropTypes.bool.isRequired,\n label: PropTypes.string,\n selectProps: PropTypes.shape({\n classes: PropTypes.shape({\n option: PropTypes.string\n })\n })\n};\n","import Option from './Option';\n\nconst components = {\n Option\n};\n\nexport default components;\n","import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {omit} from 'ramda';\nimport CreatableSelect from '../CreatableSelect';\nimport Select from '../Select';\nimport AsyncSelect from '../AsyncSelect';\nimport multiSelectComponents from './components';\nimport {makeStyles} from '@material-ui/core/styles';\nimport {mergeClasses} from '../../../core/utils';\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n top: 6,\n left: 16\n },\n placeholder: (props) => ({\n display: !props.placeholder || props.label ? 'none' : undefined\n }),\n 'option--selected': {\n fontWeight: 400\n },\n clearIndicator: {\n padding: theme.spacing(1),\n margin: theme.spacing(0.25, 0.5)\n },\n dropdownIndicator: {\n padding: theme.spacing(1),\n margin: theme.spacing(0.25, 0.5)\n }\n}));\n\nlet id = 0;\nconst getInputId = () => `custom-select-${id++}`;\n\nfunction MultiSelect(props) {\n const {\n label,\n creatable,\n getOptions,\n loadingIndicator,\n components: componentsProp,\n classes: classesProp,\n styles: stylesProp,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n menuPlacement = 'auto',\n ...reactSelectProps\n } = props;\n\n const SelectComponent = creatable ? CreatableSelect : getOptions ? AsyncSelect : Select;\n\n const [inputValue, setInputValue] = useState('');\n const multiSelectClasses = useStyles(omit(['classes'], props));\n const inputId = getInputId();\n\n const components = {\n ...multiSelectComponents,\n ...componentsProp\n };\n\n const classes = mergeClasses(multiSelectClasses, classesProp);\n\n function handleInputChange(value, {action}) {\n onInputChangeProp(value, {action});\n if (action !== 'set-value') {\n setInputValue(value);\n }\n }\n\n function handleChange(value, actionMeta) {\n onChangeProp(value, actionMeta);\n if (actionMeta.action === 'create-option') {\n setInputValue('');\n onInputChangeProp('', {action: 'input-change'});\n }\n }\n\n const styles = {\n indicatorSeparator: (base) => ({\n ...base,\n margin: '10px 0'\n }),\n loadingIndicator: (base) => ({\n ...base,\n display: loadingIndicator ? base.display : 'none'\n }),\n loadingMessage: (base) => ({\n ...base,\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif'\n }),\n ...stylesProp\n };\n\n const labelProps = label\n ? {\n inputId,\n TextFieldProps: {\n label,\n InputLabelProps: {\n htmlFor: inputId,\n shrink: props.value && props.value.length ? true : undefined,\n className: classes.label\n },\n ...props.TextFieldProps\n }\n }\n : {};\n\n return (\n <SelectComponent\n isMulti\n inputId={inputId}\n inputValue={inputValue}\n onChange={handleChange}\n onInputChange={handleInputChange}\n closeMenuOnSelect={false}\n hideSelectedOptions={false}\n classes={classes}\n components={components}\n styles={styles}\n menuPlacement={menuPlacement}\n loadOptions={getOptions}\n {...labelProps}\n {...reactSelectProps}\n />\n );\n}\n\nMultiSelect.defaultProps = {\n creatable: false,\n cacheOptions: true,\n components: {},\n classes: {},\n placeholder: '',\n loadingIndicator: false,\n onInputChange: () => {},\n onChange: () => {}\n};\n\nMultiSelect.propTypes = {\n /**\n * Async creatable multi select with optional placeholder, shrink-label, non-closing menu and options with checkboxes.\n * Based on react-select/creatable and react-select/async.\n * See react-select docs: https://react-select.com\n *\n * Below are listed only props used in the MultiSelect component. Check https://react-select.com/props first.\n * */\n\n /** Ability to create values. React-select/async-creatable is used internally */\n creatable: PropTypes.bool,\n /** True for enabling cache. Recommended. */\n cacheOptions: PropTypes.bool,\n defaultOptions: PropTypes.bool,\n /** Array of selected options. */\n value: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any\n })\n ),\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any\n })\n ),\n /** Way to receive updated values */\n onChange: PropTypes.func,\n /** Way to receive updated inputValue */\n onInputChange: PropTypes.func,\n /** Input placeholder. Will not be shown if the label prop is specified */\n placeholder: PropTypes.string,\n /** Floating label from @material-ui/core/TextField component */\n label: PropTypes.string,\n /** Enable to show default react-select's indicator */\n loadingIndicator: PropTypes.bool,\n /** You could redefine any of these components */\n components: PropTypes.shape({\n ClearIndicator: PropTypes.func,\n Control: PropTypes.func,\n DropdownIndicator: PropTypes.func,\n DownChevron: PropTypes.func,\n CrossIcon: PropTypes.func,\n Group: PropTypes.func,\n GroupHeading: PropTypes.func,\n IndicatorsContainer: PropTypes.func,\n IndicatorSeparator: PropTypes.func,\n Input: PropTypes.func,\n LoadingIndicator: PropTypes.func,\n Menu: PropTypes.func,\n MenuList: PropTypes.func,\n MenuPortal: PropTypes.func,\n LoadingMessage: PropTypes.func,\n NoOptionsMessage: PropTypes.func,\n MultiValue: PropTypes.func,\n MultiValueContainer: PropTypes.func,\n MultiValueLabel: PropTypes.func,\n MultiValueRemove: PropTypes.func,\n Option: PropTypes.func,\n Placeholder: PropTypes.func,\n SelectContainer: PropTypes.func,\n SingleValue: PropTypes.func,\n ValueContainer: PropTypes.func\n }),\n /** Classes are passed to mui skin components. Provided classes will be merged with existing ones. */\n classes: PropTypes.shape({\n control: PropTypes.string,\n valueContainer: PropTypes.string,\n multiValue: PropTypes.string,\n noOptionsMessage: PropTypes.string,\n singleValue: PropTypes.string,\n placeholder: PropTypes.string,\n menu: PropTypes.string,\n clearIndicator: PropTypes.string,\n dropdownIndicator: PropTypes.string,\n option: PropTypes.string,\n 'option--selected': PropTypes.string,\n label: PropTypes.string\n }),\n /**\n * React-select's way to customise style. Could be used to style default react-select components.\n * In other cases better to use classes and components props\n * */\n styles: PropTypes.shape({\n clearIndicator: PropTypes.func,\n container: PropTypes.func,\n control: PropTypes.func,\n dropdownIndicator: PropTypes.func,\n group: PropTypes.func,\n groupHeading: PropTypes.func,\n indicatorsContainer: PropTypes.func,\n indicatorSeparator: PropTypes.func,\n input: PropTypes.func,\n loadingIndicator: PropTypes.func,\n loadingMessage: PropTypes.func,\n menu: PropTypes.func,\n menuList: PropTypes.func,\n menuPortal: PropTypes.func,\n multiValue: PropTypes.func,\n multiValueLabel: PropTypes.func,\n multiValueRemove: PropTypes.func,\n noOptionsMessage: PropTypes.func,\n option: PropTypes.func,\n placeholder: PropTypes.func,\n singleValue: PropTypes.func,\n valueContainer: PropTypes.func\n }),\n /** Props from https://material-ui.com/api/text-field/ */\n TextFieldProps: PropTypes.object /* eslint-disable-line react/forbid-prop-types */,\n getOptions: PropTypes.func,\n menuPlacement: PropTypes.string,\n menuPortalTarget: PropTypes.object,\n getOptionValue: PropTypes.func,\n isSearchable: PropTypes.bool,\n inputRef: PropTypes.shape({current: PropTypes.object})\n};\n\nexport default MultiSelect;\n","import MultiSelect from './MultiSelect';\n\nexport default MultiSelect;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n profileBandNavigation: {\n marginBottom: '10px'\n },\n comments: {\n display: 'flex',\n justifyContent: 'flex-end'\n }\n});\n","import React, {memo, useMemo} from 'react';\nimport classnames from 'classnames';\nimport {\n CollaborationObjectTypes,\n createRelatedObjectUris,\n Entity,\n getEntityUriForLink,\n getProfileBandObjectIdsForCollaboration\n} from '@reltio/mdm-sdk';\nimport {HistorySlice} from '@reltio/mdm-module';\n\nimport ProfileBand from '../ProfileBand/ProfileBand';\nimport {ProfileBandNavigation} from '../ProfileBandNavigation';\nimport CommentsContainer from '../CommentsContainer/CommentsContainer';\nimport {CollaborationContext} from '../../contexts';\nimport {COMMENTS_CONTAINER_VISIBILITY_AREA} from '../../constants';\nimport {useCollaboration} from '../../hooks';\nimport {ProfileBandHistory} from '../history';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n className?: string;\n historySlice?: HistorySlice;\n};\n\nexport const ScreenProfileBand = memo(({entity, className, historySlice}: Props) => {\n const styles = useStyles();\n const objectIds = useMemo(() => getProfileBandObjectIdsForCollaboration(entity), [entity]);\n const collaboration = useCollaboration({objectIds});\n const entityUri = getEntityUriForLink(entity);\n\n return (\n <CollaborationContext.Provider value={collaboration}>\n <ProfileBand\n className={classnames(className, COMMENTS_CONTAINER_VISIBILITY_AREA)}\n entity={historySlice?.aEntity || entity}\n >\n {historySlice ? (\n <ProfileBandHistory />\n ) : (\n <>\n <ProfileBandNavigation className={styles.profileBandNavigation} />\n <CommentsContainer\n className={styles.comments}\n uri={entityUri}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.ENTITY, {\n entityUri\n })}\n objectType={CollaborationObjectTypes.ENTITY}\n />\n </>\n )}\n </ProfileBand>\n </CollaborationContext.Provider>\n );\n});\n\nScreenProfileBand.displayName = 'ScreenProfileBand';\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {findSourceSystemByUri, getAbsoluteImageUrl, getSourceSystemLabel, Source} from '@reltio/mdm-sdk';\nimport AvatarWithFallback from '../AvatarWithFallback/AvatarWithFallback';\n\ntype Props = {\n sourceType: string;\n className?: string;\n classes?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst SOURCE_URL = 'https://s3.amazonaws.com/reltio.images/api';\nconst SourceIcon = ({sourceType, className, classes}: Props) => {\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const {uri, icon}: Source = findSourceSystemByUri(metadata, sourceType) || {};\n const avatarText = uri ? getSourceSystemLabel(metadata, uri)[0] : '';\n const sourceIcon = icon ? getAbsoluteImageUrl(SOURCE_URL, icon) : null;\n\n return (\n <AvatarWithFallback\n className={className}\n avatarText={avatarText}\n icon={sourceIcon}\n variant=\"square\"\n rootClasses={classes}\n />\n );\n};\n\nexport default SourceIcon;\n","import React from 'react';\n\nconst Spacer = () => <div style={{flex: 1}} />;\n\nexport default Spacer;\n","import {AttributeType, AttributeValue, DataTypes, ImageAttributeValue} from '@reltio/mdm-sdk';\nimport React, {memo} from 'react';\nimport {ReadOnlyAttribute} from '../../..';\nimport ImageAttributesLine from '../ImageAttributesLine';\n\ntype SlotParams<T> = {\n attributeType?: AttributeType;\n attributeValue: T;\n};\ntype Props = {\n values: AttributeValue[];\n attributeType: AttributeType;\n expanded?: boolean;\n valueContainerClassName?: string;\n LabelRenderer?: ({attributeType, attributeValue}: SlotParams<AttributeValue>) => JSX.Element;\n RightSlot?: ({attributeType, attributeValue}: SlotParams<AttributeValue>) => JSX.Element;\n showNonOv?: boolean;\n};\n\nconst renderAttributesList = ({values, valueContainerClassName, ...props}: Props) => {\n return (\n <>\n {(values || []).map((attributeValue) => (\n <div key={attributeValue.uri} className={valueContainerClassName}>\n <ReadOnlyAttribute attributeValue={attributeValue} {...props} />\n </div>\n ))}\n </>\n );\n};\n\nconst AttributeValuesBlock = ({expanded, LabelRenderer, RightSlot, ...props}: Props) => {\n const {attributeType, values, valueContainerClassName} = props;\n switch (attributeType.type) {\n case DataTypes.TYPE_NESTED:\n case DataTypes.TYPE_REFERENCE: {\n return renderAttributesList({expanded, LabelRenderer, RightSlot, ...props});\n }\n case DataTypes.TYPE_IMAGE: {\n return (\n <div className={valueContainerClassName}>\n <ImageAttributesLine\n attributeType={attributeType}\n attributeValues={values as ImageAttributeValue[]}\n imageSize={{imageHeight: 40, imageWidth: 40, imageMargin: 2}}\n />\n </div>\n );\n }\n default: {\n return renderAttributesList({...props});\n }\n }\n};\n\nexport default memo(AttributeValuesBlock);\n","import React, {createContext, useCallback, useContext} from 'react';\nimport {CrosswalkBase, getCrosswalkColor, getCrosswalkId} from '@reltio/mdm-sdk';\nimport {pipe, eqBy} from 'ramda';\nimport {noop} from '../../core';\n\nconst CrosswalksDisplayContext = createContext(null);\n\ntype ProviderProps = {\n children: React.ReactNode;\n getCrosswalkColor?: (crosswalk: CrosswalkBase) => string;\n focusedCrosswalks?: CrosswalkBase[];\n highlightedCrosswalks?: CrosswalkBase[];\n toggleCrosswalkFocus?: (crosswalk: CrosswalkBase) => void;\n setCrosswalkHighlighted?: (crosswalk: CrosswalkBase, highlighted: boolean) => void;\n};\n\nexport const CrosswalksDisplayProvider = ({children, ...props}: ProviderProps) => {\n return <CrosswalksDisplayContext.Provider value={props}>{children}</CrosswalksDisplayContext.Provider>;\n};\n\nexport const useCrosswalkColor = (crosswalk?: CrosswalkBase) => {\n const {getCrosswalkColor: getColor = pipe(getCrosswalkId, getCrosswalkColor)} =\n useContext(CrosswalksDisplayContext) || {};\n return crosswalk ? getColor(crosswalk) : '';\n};\n\nexport const useHighlightedCrosswalks = () => {\n const {highlightedCrosswalks = []} = useContext(CrosswalksDisplayContext) || {};\n return highlightedCrosswalks;\n};\n\nexport const useCrosswalkHighlight = (crosswalk?: CrosswalkBase) => {\n const {highlightedCrosswalks = [], setCrosswalkHighlighted = noop} = useContext(CrosswalksDisplayContext) || {};\n const isHighlighted = !!crosswalk && !!highlightedCrosswalks.find(eqBy(getCrosswalkId, crosswalk));\n return {\n isHighlighted,\n isDimmed: highlightedCrosswalks.length > 0 && !isHighlighted,\n highlightCrosswalk: useCallback(() => setCrosswalkHighlighted(crosswalk, true), [\n crosswalk,\n setCrosswalkHighlighted\n ]),\n removeHighlight: useCallback(() => setCrosswalkHighlighted(crosswalk, false), [\n crosswalk,\n setCrosswalkHighlighted\n ])\n };\n};\n\nexport const useCrosswalkFocus = (crosswalk?: CrosswalkBase) => {\n const {toggleCrosswalkFocus = noop, focusedCrosswalks = []} = useContext(CrosswalksDisplayContext) || {};\n const isFocused = !!crosswalk && focusedCrosswalks.some(eqBy(getCrosswalkId, crosswalk));\n return {\n isFocused,\n toggleCrosswalkFocus: useCallback(() => toggleCrosswalkFocus(crosswalk), [crosswalk, toggleCrosswalkFocus])\n };\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"path\", {\n d: \"M20 4v14h2V4c0-1.1-.9-2-2-2H6v2h14zM2 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12z\",\n fill: \"currentColor\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"path\", {\n d: \"M10 12a4 4 0 100-8 4 4 0 000 8zM10.35 14.01C7.62 13.91 2 15.27 2 18v2h9.54c-2.47-2.76-1.23-5.89-1.19-5.99zM19.43 18.02c.36-.59.57-1.28.57-2.02 0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4c.74 0 1.43-.22 2.02-.57L20.59 22 22 20.59l-2.57-2.57zM16 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\",\n fill: \"currentColor\"\n})));","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3 20h15.002L21 23l1.27-1.27-20-20.01L1 2.99l6.172 6.175a4.007 4.007 0 002.66 2.662l2.23 2.23A10.754 10.754 0 0011 14c-2.67 0-8 1.34-8 4v2zm8-16a3.987 3.987 0 00-2.795 1.137l5.656 5.659A3.999 3.999 0 0011 4z\",\n fill: \"#000\",\n fillOpacity: \".54\"\n})));","export enum ActivePanel {\n PotentialMatches,\n FindMatches,\n NotAMatch\n}\n\nexport enum ComparisonViewMode {\n TABLE = 'TABLE',\n COLUMNS = 'COLUMNS'\n}\n\nexport const MAX_PROFILES_TO_COMPARE = 4;\n","import React, {createContext, useContext} from 'react';\n\nconst DataContext = createContext<{\n reloadData: () => void;\n setReloadHandler: (f: () => void) => void;\n }>({\n reloadData: () => {},\n setReloadHandler: () => {}\n });\nconst createContextValue = () => {\n let dataHandler;\n const reloadData = (): void => {\n if (dataHandler) {\n dataHandler();\n }\n };\n const setReloadHandler = (reloadHandler: () => void) => {\n dataHandler = reloadHandler;\n };\n return {\n reloadData,\n setReloadHandler\n };\n};\nconst contextValue = createContextValue();\n\nexport const ReloadDataProvider = ({children}: {children: React.ReactElement}) => {\n return <DataContext.Provider value={contextValue}>{children}</DataContext.Provider>;\n};\n\nexport const useReloadData = () => {\n const dataContext = useContext(DataContext);\n if (dataContext === undefined) {\n throw new Error('useReloadData must be used within a ReloadDataProvider');\n }\n return dataContext;\n};\n","import {append, evolve, remove} from 'ramda';\nimport React, {createContext, useContext, useReducer} from 'react';\n\nimport {createStandardAction, useActions} from '@reltio/components';\nimport {EntitiesMap, Entity, Match} from '@reltio/mdm-sdk';\nimport {ComparisonViewMode, MAX_PROFILES_TO_COMPARE} from '../../constants/views';\n\ntype ActionContext = {\n setGlobalSpinner: (val: boolean) => void;\n setSelectedItems: (matches: Match[]) => void;\n deselectByEntities: (entities: Entity[]) => void;\n toggleSelect: (match: Match) => void;\n setLimitSelection: (value?: number) => void;\n setComparisonViewMode: (mode: ComparisonViewMode) => void;\n setEntitiesMap: (entitiesMap?: EntitiesMap) => void;\n deleteExtraMatches: () => void;\n};\n\ntype StateContext = {\n isGlobalSpinnerActive: boolean;\n selectedItems: Match[];\n limitSelection?: number;\n comparisonViewMode: ComparisonViewMode;\n entitiesMap?: EntitiesMap;\n};\nconst ViewStateContext = createContext<StateContext>(null);\nconst ViewDispatchContext = createContext<ActionContext>(null);\nconst SET_GLOBAL_SPINNER = 'SET_GLOBAL_SPINNER';\nconst SET_SELECTED_ITEMS = 'SET_SELECTED_ITEMS';\nconst DESELECT_BY_ENTITIES = 'DESELECT_BY_ENTITIES';\nconst TOGGLE_SELECT = 'TOGGLE_SELECT';\nconst SET_LIMIT_SELECTION = 'SET_LIMIT_SELECTION';\nconst SET_COMPARISON_VIEW_MODE = 'SET_COMPARISON_VIEW_MODE';\nconst SET_ENTITIES_MAP = 'SET_ENTITIES_MAP';\nconst DELETE_EXTRA_MATCHES = 'DELETE_EXTRA_MATCHES';\n\nconst actions = {\n setGlobalSpinner: createStandardAction(SET_GLOBAL_SPINNER),\n setSelectedItems: createStandardAction(SET_SELECTED_ITEMS),\n deselectByEntities: createStandardAction(DESELECT_BY_ENTITIES),\n toggleSelect: createStandardAction(TOGGLE_SELECT),\n setLimitSelection: createStandardAction(SET_LIMIT_SELECTION),\n setComparisonViewMode: createStandardAction(SET_COMPARISON_VIEW_MODE),\n setEntitiesMap: createStandardAction(SET_ENTITIES_MAP),\n deleteExtraMatches: createStandardAction(DELETE_EXTRA_MATCHES)\n};\n\nconst viewStateReducer = (state: StateContext, action: ReturnType<ReturnType<typeof createStandardAction>>) => {\n switch (action.type) {\n case SET_GLOBAL_SPINNER:\n return {...state, isGlobalSpinnerActive: action.payload};\n case DELETE_EXTRA_MATCHES:\n return {...state, selectedItems: state.selectedItems.slice(0, state.limitSelection)};\n case SET_SELECTED_ITEMS:\n return {...state, selectedItems: action.payload.slice(0, state.limitSelection)};\n case DESELECT_BY_ENTITIES:\n return evolve(\n {\n selectedItems: (selectedItems) =>\n selectedItems.filter(({object}) => !action.payload.some(({uri}) => uri === object.uri))\n },\n state\n );\n case TOGGLE_SELECT:\n return evolve(\n {\n selectedItems: (selected) => {\n const item = action.payload;\n const itemIndex = selected.findIndex(\n (selectedItem) => selectedItem?.object?.uri === item?.object?.uri\n );\n const isSelected = itemIndex > -1;\n if (isSelected) {\n return remove(itemIndex, 1, selected);\n } else {\n return append(item, selected);\n }\n }\n },\n state\n );\n case SET_LIMIT_SELECTION: {\n return {...state, limitSelection: action.payload};\n }\n case SET_COMPARISON_VIEW_MODE: {\n const newMode: ComparisonViewMode = action.payload;\n return {\n ...state,\n comparisonViewMode: newMode,\n limitSelection: newMode === ComparisonViewMode.COLUMNS ? MAX_PROFILES_TO_COMPARE : undefined\n };\n }\n case SET_ENTITIES_MAP: {\n const entitiesMap: EntitiesMap = action.payload;\n return {\n ...state,\n entitiesMap\n };\n }\n }\n};\n\ntype Props = {\n children: React.ReactElement;\n};\n\nexport const ViewStateProvider = ({children}: Props) => {\n const [state, dispatch] = useReducer(viewStateReducer, {\n isGlobalSpinnerActive: false,\n selectedItems: [],\n comparisonViewMode: ComparisonViewMode.COLUMNS,\n limitSelection: MAX_PROFILES_TO_COMPARE,\n entitiesMap: {}\n });\n const viewStateAction = useActions({actions, dispatch});\n\n return (\n <ViewStateContext.Provider value={state}>\n <ViewDispatchContext.Provider value={viewStateAction as ActionContext}>\n {children}\n </ViewDispatchContext.Provider>\n </ViewStateContext.Provider>\n );\n};\n\nexport const useViewState = () => {\n const viewStateContext = useContext<StateContext>(ViewStateContext);\n if (viewStateContext === undefined) {\n throw new Error('useViewState must be used within a ViewStateProvider');\n }\n return viewStateContext;\n};\n\nexport const useViewStateActions = () => {\n const viewStateActions = useContext<ActionContext>(ViewDispatchContext);\n if (viewStateActions === undefined) {\n throw new Error('useViewStateActions must be used within a ViewStateProvider');\n }\n return viewStateActions;\n};\n","import {basicTableViewState, createStandardAction} from '@reltio/components';\n\nconst RESET = 'RESET';\nconst SET_OPTIONS = 'SET_OPTIONS';\n\nconst actions = {\n ...basicTableViewState.actions,\n reset: createStandardAction(RESET),\n setOptions: createStandardAction(SET_OPTIONS)\n};\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case RESET: {\n return {...action.payload};\n }\n case SET_OPTIONS:\n return {...state, options: action.payload};\n default:\n return basicTableViewState.reducer(state, action);\n }\n};\n\nexport {reducer as default, actions};\n","import {\n attributeUriToSearchUri,\n getAttrDataTypeDefinition,\n getEntityAttributesFromMetadata,\n isNested,\n isReference,\n getLabel,\n getAllAttributeTypesTree,\n Metadata,\n TEntityType,\n AttributeNode\n} from '@reltio/mdm-sdk';\nimport {__, curry, either, filter, includes, map, partition, pipe, reject, omit} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {MatchesColumnsData, GroupedColumnData} from '../types/potentialMatchesTypes';\n\ntype AttributeConfig = {\n title: string;\n fieldName: string;\n children?: AttributeConfig[];\n notSelectable?: boolean;\n};\n\nconst createAttributeItemConfig = (metadata: Metadata, attrNode: AttributeNode, fieldName?: string, parents = []) => {\n const config = createAttributeItemBasicConfig(metadata, attrNode, fieldName, parents);\n const children = (attrNode.children || []).map((childNode) =>\n createAttributeItemConfig(metadata, childNode, '', parents.concat({name: attrNode.name, label: attrNode.label}))\n );\n if (children.length) {\n config.children = children;\n config.notSelectable = true;\n }\n return config;\n};\n\nconst createAttributeItemBasicConfig = (\n metadata: Metadata,\n attrNode: AttributeNode,\n fieldName: string,\n parents = []\n): AttributeConfig => {\n const attrType = omit(['children'], attrNode);\n const title = attrType.label || attrType.name;\n return {\n title,\n fieldName: fieldName || attributeUriToSearchUri(attrType.uri, parents)\n };\n};\n\nexport const collectAttributeItems = (metadata: Metadata, entityType?: TEntityType) =>\n entityType\n ? getAllAttributeTypesTree(metadata, entityType).map((attrNode) =>\n createAttributeItemConfig(metadata, attrNode)\n )\n : [];\n\nconst getColumnsDataFromEntityAttributes = pipe(\n map((attr) => ({\n id: attributeUriToSearchUri(attr.uri),\n label: getLabel(attr.label),\n dataTypeDefinition: getAttrDataTypeDefinition(attr)\n }))\n);\n\nexport const getColumnsData = pipe(getEntityAttributesFromMetadata, getColumnsDataFromEntityAttributes);\n\nexport const isMatchAttrColumn = curry((matchAttributes: string[], column: MatchesColumnsData) =>\n matchAttributes\n .map((attrUri) => attributeUriToSearchUri(attrUri))\n .some((id) => column.id === id || (isReferenceAttrColumn(column) && isSubAttrIdForColumn(column, id)))\n);\nconst isNestedAttrColumn = (column: MatchesColumnsData) => isNested(column.dataTypeDefinition);\nconst isReferenceAttrColumn = (column: MatchesColumnsData) => isReference(column.dataTypeDefinition);\nconst isSubAttrIdForColumn = curry((parentColumn: MatchesColumnsData, columnId: string) =>\n columnId.startsWith(`${parentColumn.id}.`)\n);\nconst isNestedForOneOfColumns = curry(\n (columns: MatchesColumnsData[], column: MatchesColumnsData) =>\n isNestedAttrColumn(column) && columns.some(({id}) => isSubAttrIdForColumn(column, id))\n);\nconst isRelatedToColumns = (columns: MatchesColumnsData[]) =>\n either(includes(__, columns), isNestedForOneOfColumns(columns));\n\nexport const getMatchAttrColumns = (\n matchAttributes: string[],\n columnsData: MatchesColumnsData[]\n): MatchesColumnsData[] => pipe(reject(isNestedAttrColumn), filter(isMatchAttrColumn(matchAttributes)))(columnsData);\n\nexport const groupColumnsDataByMatchAttributes = (\n matchAttributes: string[],\n columnsData: MatchesColumnsData[]\n): GroupedColumnData[] => {\n const [matchAttrColumns, otherColumns] = pipe(\n reject(isNestedAttrColumn),\n partition(isMatchAttrColumn(matchAttributes))\n )(columnsData);\n\n return matchAttrColumns.length\n ? ([\n {\n id: 'match',\n label: i18n.text('Match attributes'),\n columns: columnsData.filter(isRelatedToColumns(matchAttrColumns))\n },\n {\n id: 'all',\n label: i18n.text('All attributes'),\n columns: columnsData.filter(isRelatedToColumns(otherColumns))\n }\n ] as GroupedColumnData[])\n : columnsData;\n};\n","import i18n from 'ui-i18n';\nimport {any, equals, flatten, pipe, pluck, prop, values} from 'ramda';\nimport {DataTypes, MatchRulesAttrTypes, Metadata, SearchFilter, getEntityType} from '@reltio/mdm-sdk';\nimport {collectAttributeItems} from './attributesHelpers';\n\nexport const ROWS_PER_PAGE_OPTIONS = [20, 50, 100];\n\nexport const MATCHES_SORT_OPTIONS = [\n {\n id: 'label',\n get label() {\n return i18n.text('Profile name');\n }\n },\n {\n id: 'matchRules',\n get label() {\n return i18n.text('Match rule');\n }\n },\n {\n id: 'mlMatchRules',\n get label() {\n return i18n.text('Match IQ');\n },\n dataTypeDefinition: {\n type: DataTypes.TYPE_SELECT\n }\n },\n {\n id: 'id',\n get label() {\n return i18n.text('Entity ID');\n }\n }\n];\n\nexport const ADDITIONAL_SORT_OPTIONS_DATA = [\n {\n id: 'score',\n get label() {\n return i18n.text('Match score');\n }\n }\n];\n\nexport const DEFAULT_SORT_OPTIONS = [\n {\n id: 'label',\n get label() {\n return i18n.text('Profile name');\n }\n },\n {\n id: 'id',\n get label() {\n return i18n.text('Entity ID');\n }\n }\n];\n\nexport const getSortOptionIdFromData = pluck('id');\n\nexport const getSortingItemsGroups = (metadata: Metadata, entityTypeUri: string) => [\n {\n title: '',\n attributes: collectAttributeItems(metadata, getEntityType(metadata, entityTypeUri))\n }\n];\n\nexport const buildRulesStringFormFilters = (filters: SearchFilter[]): string =>\n flatten(filters.map(prop('values'))).join(',');\n\nexport const isMatchRuleFilter = ({fieldName}: SearchFilter): boolean => {\n return pipe(values, pluck('name'), any(equals(fieldName)))(MatchRulesAttrTypes);\n};\n","import {useReducer} from 'react';\nimport {useActions} from '@reltio/components';\nimport stateReducer, {actions} from './helpers/stateReducer';\nimport {useViewState, useViewStateActions} from '../contexts/ViewStateContext';\nimport {ROWS_PER_PAGE_OPTIONS} from '../helpers/sortHelpers';\n\nexport const useMatchesReducer = (defaultRowsPerPage: number = ROWS_PER_PAGE_OPTIONS[0]) => {\n const initState = {\n page: 0,\n rowsPerPage: defaultRowsPerPage,\n selectedItems: [],\n limitSelection: null\n };\n\n const [state, dispatch] = useReducer(stateReducer, initState);\n const resultActions = useActions({actions, dispatch});\n const viewActions = useViewStateActions();\n const viewState = useViewState();\n return [{...resultActions, ...viewActions}, {...state, ...viewState}, dispatch];\n};\n","import {ApiError, ApiErrorCode} from '@reltio/mdm-sdk';\nimport {ErrorPopup} from '@reltio/components';\nimport i18n from 'ui-i18n';\n\nexport const showAddRelationErrors = (error: ApiError) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: i18n.text(\"Can't add relationship\")\n });\n};\n\nexport const showApiError = (error: ApiError) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: error?.errorMessage || i18n.text('Something went wrong...')\n });\n};\n\nexport const showDCRReviewErrors = (error: ApiError) => {\n if (error?.errorCode === ApiErrorCode.DCR_ALREADY_EXISTS) {\n return;\n }\n showApiError(error);\n};\n","import {useCallback} from 'react';\nimport {useViewState, useViewStateActions} from '../../contexts/ViewStateContext';\nimport {useReloadData} from '../../contexts/ReloadDataContext';\n\nexport const useSpinnerAndReloadData = () => {\n const {setGlobalSpinner} = useViewStateActions();\n const {isGlobalSpinnerActive} = useViewState();\n const {reloadData} = useReloadData();\n const onStartRequest = useCallback(() => {\n setGlobalSpinner(true);\n }, [setGlobalSpinner]);\n const onFinishRequest = useCallback(() => {\n setGlobalSpinner(false);\n reloadData();\n }, [reloadData, setGlobalSpinner]);\n return {onStartRequest, onFinishRequest, isGlobalSpinnerActive};\n};\n","import React, {forwardRef} from 'react';\nimport {ActionButtonMode, MergeButton as MergeButtonComponent, noop} from '@reltio/components';\nimport {Entity} from '@reltio/mdm-sdk';\nimport {showApiError} from '../../utils/errors';\nimport {useViewStateActions} from '../../contexts/ViewStateContext';\nimport {useSpinnerAndReloadData} from './useSpinnerAndReloadData';\n\ntype Props = {\n mode?: ActionButtonMode;\n entity: Entity;\n entities: Entity[];\n size?: string;\n className?: string;\n onMenuClose?: () => void;\n};\n\nexport const MergeButton = forwardRef<HTMLLIElement, Props>(\n ({className, entities, entity, mode = ActionButtonMode.iconButton, size, onMenuClose = noop}: Props, ref) => {\n const {isGlobalSpinnerActive, onFinishRequest, onStartRequest} = useSpinnerAndReloadData();\n const {deselectByEntities} = useViewStateActions();\n\n const onSuccess = () => {\n deselectByEntities(entities);\n };\n\n return (\n <MergeButtonComponent\n className={className}\n disabled={isGlobalSpinnerActive}\n entities={entities}\n entity={entity}\n mode={mode}\n {...(size ? {size} : {})}\n onMenuClose={onMenuClose}\n onStartRequest={onStartRequest}\n onFinishRequest={onFinishRequest}\n onSuccess={onSuccess}\n onError={showApiError}\n data-reltio-id=\"reltio-potential-matches-merge-button\"\n ref={ref}\n />\n );\n }\n);\n\nMergeButton.displayName = 'mergeButton';\n","import React, {forwardRef} from 'react';\nimport {ActionButtonMode, noop, NotMatchButton as NotMatchButtonComponent} from '@reltio/components';\nimport {Entity} from '@reltio/mdm-sdk';\nimport {useViewStateActions} from '../../contexts/ViewStateContext';\nimport {useSpinnerAndReloadData} from './useSpinnerAndReloadData';\n\ntype Props = {\n mode?: ActionButtonMode;\n entity: Entity;\n entities: Entity[];\n size?: string;\n className?: string;\n onMenuClose?: () => void;\n};\n\nexport const NotMatchButton = forwardRef<HTMLLIElement, Props>(\n ({className, entities, entity, mode = ActionButtonMode.iconButton, size, onMenuClose = noop}: Props, ref) => {\n const {isGlobalSpinnerActive, onFinishRequest, onStartRequest} = useSpinnerAndReloadData();\n const {deselectByEntities} = useViewStateActions();\n\n const onSuccess = () => {\n deselectByEntities(entities);\n };\n return (\n <NotMatchButtonComponent\n className={className}\n disabled={isGlobalSpinnerActive}\n entities={entities}\n entity={entity}\n mode={mode}\n {...(size ? {size} : {})}\n onMenuClose={onMenuClose}\n onStartRequest={onStartRequest}\n onFinishRequest={onFinishRequest}\n onSuccess={onSuccess}\n ref={ref}\n />\n );\n }\n);\n\nNotMatchButton.displayName = 'NotMatchButton';\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"path\", {\n d: \"M9 4c4.42 0 8 3.58 8 8s-3.58 8-8 8a8 8 0 01-7.419-5h2.224A6.002 6.002 0 009 18c3.31 0 6-2.69 6-6s-2.69-6-6-6a6.002 6.002 0 00-5.196 3H1.581A8 8 0 019 4zm8 .26c3.45.89 6 4.01 6 7.74 0 3.73-2.55 6.85-6 7.74v-2.09a5.99 5.99 0 000-11.3V4.26zM8 7.5l4.5 4.5L8 16.5V13H0v-2h8V7.5z\",\n fillOpacity: \".541\"\n})));","import React, {forwardRef} from 'react';\nimport {ActionButton, ActionButtonMode, noop} from '@reltio/components';\nimport {Entity} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\nimport {useSetAMatch} from '../../hooks/useSetAMatch';\nimport SetAsMatchIcon from './icons/setAsMatch.svg';\nimport {useViewStateActions} from '../../contexts/ViewStateContext';\n\ntype Props = {\n mode?: ActionButtonMode;\n entity: Entity;\n entities: Entity[];\n className?: string;\n onMenuClose?: () => void;\n};\n\nexport const SetAMatchButton = forwardRef<HTMLLIElement, Props>(\n ({entity, entities, className, mode = ActionButtonMode.iconButton, onMenuClose = noop}: Props, ref) => {\n const {deselectByEntities} = useViewStateActions();\n\n const onSuccess = () => {\n deselectByEntities(entities);\n };\n\n const [markingIsInProgress, setAMatch] = useSetAMatch({entity, entities, onSuccess});\n\n return (\n <ActionButton\n className={className}\n disabled={markingIsInProgress}\n mode={mode}\n label={i18n.text('Save on potential matches')}\n icon={SetAsMatchIcon}\n onClick={setAMatch}\n onMenuClose={onMenuClose}\n ref={ref}\n />\n );\n }\n);\n\nSetAMatchButton.displayName = 'SetAMatchButton';\n","import {Entity, setAsMatch} from '@reltio/mdm-sdk';\nimport {useCallback} from 'react';\nimport {useViewState, useViewStateActions} from '../contexts/ViewStateContext';\nimport {useReloadData} from '../contexts/ReloadDataContext';\n\ntype Props = {\n entity: Entity;\n entities: Entity[];\n onSuccess?: () => void;\n};\n\nexport const useSetAMatch = ({entities, entity, onSuccess}: Props): [boolean, () => void] => {\n const {setGlobalSpinner} = useViewStateActions();\n const {isGlobalSpinnerActive} = useViewState();\n const {reloadData} = useReloadData();\n const setAMatch = useCallback(() => {\n setGlobalSpinner(true);\n setAsMatch(entity.uri, entities)\n .then(() => {\n onSuccess?.();\n })\n .finally(() => {\n setGlobalSpinner(false);\n reloadData();\n });\n }, [entities, entity, setGlobalSpinner, reloadData, onSuccess]);\n\n return [isGlobalSpinnerActive, setAMatch];\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\"\n}, props), React.createElement(\"defs\", null, React.createElement(\"path\", {\n d: \"M10 6v2H4v12.22h12V14h2v6c0 1.05-.82 1.918-1.851 1.994L16 22H4c-1.05 0-1.918-.82-1.994-1.851L2 20V8c0-1.05.82-1.918 1.851-1.994L4 6h6zm4 10v2H6v-2h8zm-3.997-3l-.001 2H6v-2h4.003zM21 2c.55 0 1 .45 1 1v8c0 .55-.45 1-1 1h-7l-2 2 .005-11c0-.55.445-1 .995-1h8zm-10.996 8l-.001 2H6v-2h4.004zm9.286-6.3l-3.17 3.17-1.41-1.42-1.41 1.41 2.82 2.84 4.59-4.58-1.42-1.42z\",\n id: \"svg3192636834a\"\n})), React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\"\n}, React.createElement(\"mask\", {\n id: \"svg3192636834b\",\n fill: \"#fff\"\n}, React.createElement(\"use\", {\n xlinkHref: \"#svg3192636834a\"\n})), React.createElement(\"path\", {\n fillOpacity: \".54\",\n fill: \"#000\",\n mask: \"url(#svg3192636834b)\",\n d: \"M0 0h24v24H0z\"\n}))));","import React, {forwardRef, useContext} from 'react';\nimport {useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport {ActionButton, ActionButtonMode, SnackbarContext, noop} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {Entity, isEmptyValue} from '@reltio/mdm-sdk';\nimport {useRequestDCRReview} from '../../hooks/useRequestDCRReview';\nimport DcrReviewIcon from './icons/dcrReview.svg';\n\ntype Props = {\n className?: string;\n entity: Entity;\n entities: Entity[];\n mode?: ActionButtonMode;\n onMenuClose?: () => void;\n};\n\nexport const DCRReviewButton = forwardRef<HTMLLIElement, Props>(\n ({className, entities, entity, mode = ActionButtonMode.iconButton, onMenuClose = noop}: Props, ref) => {\n const showSnackbarMessage = useContext(SnackbarContext);\n const [operationIsInProgress, startPMReview] = useRequestDCRReview({\n entity,\n entities,\n showSnackbarMessage\n });\n const canStartProcessInstanceSearchQuery = useSelector(mdmModule.selectors.getCanUserStartProcessFromQuery);\n const workflowPath = useSelector(mdmModule.selectors.getWorkflowPath);\n\n return canStartProcessInstanceSearchQuery && !isEmptyValue(workflowPath) ? (\n <ActionButton\n className={className}\n disabled={operationIsInProgress}\n mode={mode}\n label={operationIsInProgress ? '' : i18n.text('Potential match request')}\n icon={DcrReviewIcon}\n onClick={startPMReview}\n onMenuClose={onMenuClose}\n ref={ref}\n />\n ) : null;\n }\n);\n\nDCRReviewButton.displayName = 'DCRReviewButton';\n","import {useCallback} from 'react';\nimport {useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport {concat, map, pipe, prop} from 'ramda';\nimport mdmModule from '@reltio/mdm-module';\nimport {startProcessInstanceByPairs, Entity} from '@reltio/mdm-sdk';\nimport {useViewState, useViewStateActions} from '../contexts/ViewStateContext';\nimport {showDCRReviewErrors} from '../utils/errors';\n\nconst PROCESS_TYPE = 'potentialMatchReview';\n\ntype Props = {\n entities: Entity[];\n entity: Entity;\n showSnackbarMessage?: (message: string) => void;\n};\n\nexport const useRequestDCRReview = ({\n entities,\n entity,\n showSnackbarMessage\n}: Props): [val: boolean, func: () => void] => {\n const {selectors} = mdmModule;\n const {setGlobalSpinner} = useViewStateActions();\n const {isGlobalSpinnerActive} = useViewState();\n const workflowPath = useSelector(selectors.getWorkflowPath);\n const environment = useSelector(selectors.getWorkflowEnvironmentUrl);\n const tenant = useSelector(selectors.getTenant);\n const getUri = prop('uri');\n const getUrisFromEntities = pipe(concat, map(getUri));\n const uris = getUrisFromEntities([entity], entities);\n\n const startPMReview = useCallback(() => {\n setGlobalSpinner(true);\n startProcessInstanceByPairs({\n workflowPath,\n processType: PROCESS_TYPE,\n objectURIs: uris,\n tenant,\n environment\n })\n .then(() => {\n showSnackbarMessage?.(i18n.text('Potential match request: Done'));\n })\n .catch(showDCRReviewErrors)\n .finally(() => {\n setGlobalSpinner(false);\n });\n }, [setGlobalSpinner, workflowPath, uris, tenant, environment, showSnackbarMessage]);\n\n return [isGlobalSpinnerActive, startPMReview];\n};\n","import {useCallback} from 'react';\nimport {useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport {\n isDataTenantEntity,\n reinstateDataTenantEntityMatch,\n reinstateMixedEntitiesMatches,\n Entity\n} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {useViewState, useViewStateActions} from '../contexts/ViewStateContext';\nimport {useReloadData} from '../contexts/ReloadDataContext';\n\ntype Props = {\n entities: Entity[];\n entity: Entity;\n showSnackbarMessage?: (message: string) => void;\n onSuccess?: () => void;\n};\n\nexport const useReinstateMatch = ({entities, entity, showSnackbarMessage, onSuccess}: Props): [boolean, () => void] => {\n const {setGlobalSpinner} = useViewStateActions();\n const {isGlobalSpinnerActive} = useViewState();\n const {reloadData} = useReloadData();\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const onReinstateMatch = useCallback(() => {\n setGlobalSpinner(true);\n const params = {dtssPath, customerTenant: tenant, entity, entities};\n (isDataTenantEntity(entity) ? reinstateDataTenantEntityMatch(params) : reinstateMixedEntitiesMatches(params))\n .then(() => {\n showSnackbarMessage?.(i18n.text('Save as potential match: Done'));\n onSuccess?.();\n })\n .finally(() => {\n setGlobalSpinner(false);\n reloadData();\n });\n }, [setGlobalSpinner, dtssPath, tenant, entity, entities, showSnackbarMessage, reloadData, onSuccess]);\n\n return [isGlobalSpinnerActive, onReinstateMatch];\n};\n","import React, {forwardRef, useContext} from 'react';\n\nimport i18n from 'ui-i18n';\nimport {ActionButton, ActionButtonMode, noop, SnackbarContext} from '@reltio/components';\nimport {Entity} from '@reltio/mdm-sdk';\nimport {useReinstateMatch} from '../../hooks/useReinstateMatch';\nimport SetAsMatchIcon from './icons/setAsMatch.svg';\nimport {useViewStateActions} from '../../contexts/ViewStateContext';\n\ntype Props = {\n mode?: ActionButtonMode;\n entity: Entity;\n entities: Entity[];\n className?: string;\n onMenuClose?: () => void;\n};\n\nexport const ReinstateMatchButton = forwardRef<HTMLLIElement, Props>(\n ({entity, entities, className, mode = ActionButtonMode.iconButton, onMenuClose = noop}: Props, ref) => {\n const showSnackbarMessage = useContext(SnackbarContext);\n const {deselectByEntities} = useViewStateActions();\n const onSuccess = () => {\n deselectByEntities(entities);\n };\n const [reinstateIsInProgress, onReinstateMatch] = useReinstateMatch({\n entity,\n entities,\n showSnackbarMessage,\n onSuccess\n });\n\n return (\n <ActionButton\n className={className}\n disabled={reinstateIsInProgress}\n mode={mode}\n label={i18n.text('Save as potential match')}\n icon={SetAsMatchIcon}\n onClick={onReinstateMatch}\n onMenuClose={onMenuClose}\n ref={ref}\n />\n );\n }\n);\n\nReinstateMatchButton.displayName = 'ReinstateMatchButton';\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\"\n}, props), React.createElement(\"defs\", null, React.createElement(\"path\", {\n d: \"M19 14v3h3v2h-3v3h-2v-3h-3v-2l3-.001V14h2zM17 2a3 3 0 11-1.293 5.708l-4.535 4.535a5 5 0 11-1.414-1.414l4.534-4.536A3 3 0 0117 2zM7 12a3 3 0 100 6 3 3 0 000-6zm10-8a1 1 0 100 2 1 1 0 000-2z\",\n id: \"svg2192258504a\"\n})), React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\"\n}, React.createElement(\"mask\", {\n id: \"svg2192258504b\",\n fill: \"#fff\"\n}, React.createElement(\"use\", {\n xlinkHref: \"#svg2192258504a\"\n})), React.createElement(\"path\", {\n fillOpacity: \".54\",\n fill: \"#000\",\n mask: \"url(#svg2192258504b)\",\n d: \"M0 0h24v24H0z\"\n}))));","import React, {forwardRef} from 'react';\nimport i18n from 'ui-i18n';\nimport {ActionButton, ActionButtonMode, noop} from '@reltio/components';\nimport {Entity} from '@reltio/mdm-sdk';\nimport AddRelationIcon from './icons/addRelationship.svg';\n\ntype Props = {\n className?: string;\n mainEntity?: Entity;\n currentEntity?: Entity;\n mode?: ActionButtonMode;\n onMenuClose?: () => void;\n onClick?: (val: Pick<Props, 'mainEntity' | 'currentEntity' | 'matchRules'>) => void;\n matchRules?: string[];\n};\n\nexport const CreateRelationButton = forwardRef<HTMLLIElement, Props>(\n (\n {\n className,\n mainEntity,\n currentEntity,\n matchRules,\n mode = ActionButtonMode.iconButton,\n onClick = noop,\n onMenuClose = noop\n }: Props,\n ref\n ) => {\n const handleClick = () => onClick({mainEntity, currentEntity, matchRules});\n return (\n <ActionButton\n className={className}\n mode={mode}\n label={i18n.text('Add relationship')}\n icon={AddRelationIcon}\n onClick={handleClick}\n onMenuClose={onMenuClose}\n ref={ref}\n />\n );\n }\n);\n\nCreateRelationButton.displayName = 'CreateRelationButton';\n","import React, {ReactNode} from 'react';\n\nexport const RightSideHeaderContext = React.createContext<{\n mainTitle?: string;\n secondTitle?: string;\n content?: ReactNode;\n rightContent?: ReactNode;\n bottomContent?: ReactNode;\n onClose: () => void;\n }>({\n onClose: () => {}\n });\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(() => ({\n attributeSelect: {\n width: '100%',\n height: '40px'\n }\n}));\n\nexport default useStyles;\n","import React, {memo, useCallback, useMemo} from 'react';\nimport {BasicAttributeSelector, AttributeSelectorItemsGroup} from '@reltio/components';\n\nimport useStyles from './styles';\n\ntype AttributeOption = {\n fieldName: string;\n title: string;\n children?: AttributeOption[];\n};\n\ntype Props = {\n onChange: (field) => void;\n options: AttributeSelectorItemsGroup[];\n field?: string;\n};\n\nconst SortingFieldSelector = ({onChange, options, field}: Props) => {\n const styles = useStyles();\n const value = useMemo(() => {\n const path = field?.split('.');\n const sortLevel = path?.length;\n\n const findNode = (attributes: AttributeOption[]) => {\n const level = attributes[0].fieldName.split('.').length;\n if (level === sortLevel) {\n return attributes.find((attr) => attr.fieldName === field);\n }\n if (level < sortLevel) {\n const parentFieldName = path.slice(0, level).join('.');\n const children = attributes.find((attr) => attr.fieldName === parentFieldName)?.children;\n if (children) {\n return findNode(children);\n }\n }\n };\n\n for (const option of options) {\n const node = findNode(option.attributes);\n if (node) {\n return node;\n }\n }\n }, [field, options]);\n\n const handleChange = useCallback(\n (val: {attribute: AttributeOption}) => {\n onChange(val.attribute.fieldName);\n },\n [onChange]\n );\n\n return (\n <BasicAttributeSelector\n hideCheckBox\n className={styles.attributeSelect}\n value={value}\n itemsGroups={options}\n onSelect={handleChange}\n ungroup\n single\n />\n );\n};\n\nexport default memo(SortingFieldSelector);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n rowCheckbox: {\n marginRight: '20px',\n height: '24px',\n position: 'relative',\n padding: '12px'\n },\n header: {\n padding: '8px 12px 8px 0',\n border: 'rgba(0,0,0,0.05) 1px solid',\n borderTop: 0,\n display: 'flex',\n justifyContent: 'space-between'\n },\n selector: {\n width: '160px'\n },\n sorting: {\n display: 'flex'\n },\n arrow: {\n transition: 'transform 0.3s ease-in'\n },\n rotate: {\n transform: 'rotate(180deg)'\n }\n}));\n","import React, {useContext} from 'react';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport {Order, SortingField} from '@reltio/mdm-sdk';\nimport {AttributeSelectorItemsGroup, SidePanelContentHeader} from '@reltio/components';\nimport {RightSideHeaderContext} from '../../contexts/RightSideHeaderContext';\nimport SortingFieldSelector from '../SortingFieldSelector';\nimport i18n from 'ui-i18n';\nimport ArrowIcon from '@material-ui/icons/ArrowUpward';\nimport classNames from 'classnames';\nimport {IconButton as IconButton} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n selectedCount: number;\n totalCount: number;\n totalOnPage: number;\n onSelect: () => void;\n sortOptions: AttributeSelectorItemsGroup[];\n onSorting?: (SortingField) => void;\n sorting: SortingField;\n children?: React.ReactNode;\n};\n\nconst RightSidePanelHeader = ({\n selectedCount,\n totalCount,\n onSelect,\n sortOptions,\n sorting,\n onSorting,\n totalOnPage,\n children\n}: Props) => {\n const styles = useStyles();\n\n const onChangeSortOrder = () => {\n onSorting({\n ...sorting,\n order: sorting.order === Order.asc ? Order.desc : Order.asc\n });\n };\n\n const onChangeSortField = (field) => {\n onSorting({\n ...sorting,\n field\n });\n };\n\n const sidePanelHeaderProps = useContext(RightSideHeaderContext);\n return (\n <>\n <SidePanelContentHeader\n {...sidePanelHeaderProps}\n secondTitle={!!totalCount && i18n.text('${n} Profiles', {n: totalCount})}\n />\n {children}\n {!!totalOnPage && (\n <div className={styles.header}>\n <Checkbox\n className={styles.rowCheckbox}\n checked={selectedCount === totalOnPage}\n indeterminate={selectedCount > 0 && selectedCount < totalOnPage}\n onChange={onSelect}\n />\n <div className={styles.sorting}>\n <SortingFieldSelector\n field={sorting?.field}\n options={sortOptions}\n onChange={onChangeSortField}\n />\n <IconButton\n onClick={onChangeSortOrder}\n classes={{root: classNames(styles.arrow, {[styles.rotate]: sorting.order === Order.desc})}}\n >\n <ArrowIcon />\n </IconButton>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport default RightSidePanelHeader;\n","import {useMemo} from 'react';\nimport {getSortingItemsGroups} from '../helpers/sortHelpers';\nimport {Metadata} from '@reltio/mdm-sdk';\nimport {AttributeSelectorItemsGroup} from '@reltio/components';\n\ntype SortOption = {\n id: string;\n label: string;\n};\nexport const useSortOptions = (\n defaultOptions: SortOption[],\n additionalOptions: SortOption[],\n metadata: Metadata,\n entityTypeUri: string\n): AttributeSelectorItemsGroup[] => {\n return useMemo(() => {\n const itemsGroups = getSortingItemsGroups(metadata, entityTypeUri);\n const defaultData = {\n title: '',\n attributes: defaultOptions\n .concat(additionalOptions || [])\n .map((col) => ({title: col.label, fieldName: col.id}))\n };\n return [defaultData, ...itemsGroups];\n }, [metadata, entityTypeUri, defaultOptions, additionalOptions]);\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n color?: string;\n};\n\nexport const useStyles = makeStyles((theme) => {\n return {\n hidden: {\n visibility: 'hidden'\n },\n rowCheckbox: {\n marginLeft: '-9px',\n marginRight: '19px',\n height: '24px',\n position: 'relative',\n padding: '9px'\n },\n entity: {\n paddingTop: '12px',\n paddingBottom: '8px',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n actions: {\n marginLeft: 'auto',\n marginRight: 0,\n paddingTop: '15px',\n display: 'flex'\n },\n actionButtons: {\n display: 'none'\n },\n active: {\n display: 'flex'\n },\n wrapper: {\n position: 'relative',\n whiteSpace: 'pre',\n padding: '0 15px 0 15px',\n color: 'rgba(0,0,0,0.87)',\n '&::after': {\n content: '\"\"',\n position: 'absolute' as const,\n right: 0,\n top: 0,\n width: '40px',\n height: '100%',\n pointerEvents: 'none'\n },\n '&:hover': {\n backgroundColor: 'rgba(0,0,0,0.04)',\n '& $actionButtons': {\n display: 'flex'\n },\n '& $commentsContainer': {\n borderLeft: '1px solid rgba(0,0,0,0.12)'\n }\n },\n display: 'flex',\n boxSizing: 'border-box',\n borderBottom: '1px rgba(0,0,0,0.05) solid',\n paddingLeft: '12px'\n },\n entityLabel: {\n color: theme.palette.primary.main,\n cursor: 'pointer',\n textDecoration: 'none',\n fontWeight: 500\n },\n matchRulesWrapper: {\n padding: '12px 15px 4px 10px',\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n '& $divider:nth-child(2):not(:last-child)': {\n display: 'block'\n }\n },\n selectedRow: {\n backgroundColor: 'rgba(0, 114, 206, 0.12)'\n },\n coloredRow: {\n '&:before': {\n content: '\"\"',\n position: 'absolute' as const,\n left: 0,\n top: 0,\n width: '4px',\n height: '100%',\n borderRadius: '0px 4px 4px 0px',\n background: ({color}: StylesProps) => color\n }\n },\n matchScore: {\n paddingLeft: '12px',\n color: 'rgba(0,0,0,0.54)'\n },\n commentsContainer: {\n paddingLeft: '6px',\n paddingRight: '15px',\n height: '24px',\n marginLeft: '6px'\n },\n border: {\n borderLeft: '1px solid rgba(0,0,0,0.12)'\n },\n rightButton: {\n marginLeft: '8px'\n },\n tenantIcon: {\n marginLeft: '12px'\n },\n divider: {\n display: 'none',\n marginLeft: '12px',\n height: '20px',\n background: 'rgba(0,0,0,0.12)'\n }\n };\n});\n","import React, {memo, useState} from 'react';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport {Divider as Divider} from '@material-ui/core';\nimport {\n CommentsContainer,\n COMMENTS_CONTAINER_VISIBILITY_AREA,\n DataTenantBadge,\n EntityUriLink,\n MatchRulesBlock,\n MatchRuleVariant\n} from '@reltio/components';\n\nimport {\n CollaborationObjectTypes,\n createObjectIdForPM,\n createRelatedObjectUris,\n EntitiesMap,\n Entity,\n getEntityColor,\n getEntityUriForLink,\n getLabel,\n Match,\n Metadata,\n isDataTenantEntity\n} from '@reltio/mdm-sdk';\nimport classnames from 'classnames';\nimport {ActionButtonRendererProps} from '../../types/potentialMatchesTypes';\nimport {useStyles} from './styles';\n\ntype Props = {\n isRowSelected?: boolean;\n isColumnViewMode?: boolean;\n rowIndex: number;\n toggleSelect?: (match: Match) => void;\n entityToMatch: Entity;\n actionButtonsRenderer: (props: ActionButtonRendererProps) => React.ReactElement;\n match: Match;\n matches: Match[];\n entitiesMap?: EntitiesMap<Pick<Entity, 'label' | 'uri' | 'type'>>;\n metadata: Metadata;\n matchRules?: string[];\n};\n\nconst ItemRenderer = ({\n rowIndex,\n match,\n toggleSelect,\n entityToMatch,\n isRowSelected,\n isColumnViewMode,\n actionButtonsRenderer,\n metadata,\n entitiesMap = {}\n}: Props) => {\n const entity = match.object;\n const color = getEntityColor(entity.uri);\n const styles = useStyles({color});\n const [openMenu, setOpenMenu] = useState(false);\n const onToggleSelect = () => toggleSelect(match);\n\n const isRowSelectable = entity !== entityToMatch;\n const Actions = actionButtonsRenderer;\n\n return (\n <div\n className={classnames(styles.wrapper, COMMENTS_CONTAINER_VISIBILITY_AREA, {\n [styles.coloredRow]: isColumnViewMode && isRowSelected,\n [styles.selectedRow]: isRowSelected\n })}\n >\n <Checkbox\n className={classnames(styles.rowCheckbox, {[styles.hidden]: !isRowSelectable})}\n checked={isRowSelected}\n onChange={onToggleSelect}\n data-reltio-id={`reltio-matches-table-checkbox-${rowIndex}`}\n />\n <div className={styles.entity}>\n <EntityUriLink value={getEntityUriForLink(entity)} className={styles.entityLabel}>\n {getLabel(entity.label)}\n </EntityUriLink>\n <div className={styles.matchRulesWrapper}>\n <MatchRulesBlock\n entitiesMap={entitiesMap}\n entity={entity}\n match={match}\n metadata={metadata}\n variant={MatchRuleVariant.excludeNotMatch}\n />\n <Divider orientation=\"vertical\" className={styles.divider} />\n {!!match.matchScore && <div className={styles.matchScore}>{match.matchScore}</div>}\n {isDataTenantEntity(entity) && (\n <DataTenantBadge className={styles.tenantIcon} dataTenantId={entity.dataTenant} />\n )}\n </div>\n </div>\n <div className={styles.actions}>\n <div className={classnames(styles.actionButtons, {[styles.active]: openMenu})}>\n <Actions\n buttonClassName={styles.rightButton}\n hoveredMatch={match}\n onActionsMenuOpen={() => setOpenMenu(true)}\n onActionsMenuClose={() => setOpenMenu(false)}\n />\n </div>\n {entityToMatch && (\n <CommentsContainer\n className={classnames(styles.commentsContainer, {[styles.border]: openMenu})}\n uri={createObjectIdForPM(entityToMatch.uri, match.object.uri)}\n objectType={CollaborationObjectTypes.POTENTIAL_MATCH}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.POTENTIAL_MATCH, {\n entityUri: entityToMatch.uri,\n matchEntityUri: match.object.uri\n })}\n allowOnlyOneComment\n showAlways={openMenu}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default memo(ItemRenderer);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n view: {\n position: 'relative',\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n overflowY: 'auto',\n overflowX: 'hidden'\n }\n}));\n","import React from 'react';\nimport {Entity, Metadata, EntitiesMap, Match} from '@reltio/mdm-sdk';\nimport {ComparisonViewMode} from '../../constants/views';\nimport {ItemRenderer} from '../ItemRenderer';\nimport {useViewState} from '../../contexts/ViewStateContext';\nimport {ActionButtonRendererProps} from '../../types/potentialMatchesTypes';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n metadata: Metadata;\n matches: Match[];\n entityToMatch: Entity;\n toggleSelect: (match: Match) => void;\n actionButtonsRenderer: (props: ActionButtonRendererProps) => React.ReactElement;\n entitiesMap?: EntitiesMap<Pick<Entity, 'label' | 'uri' | 'type'>>;\n selectedItems: Match[];\n};\n\nexport const MatchItems = ({\n entityToMatch,\n matches,\n toggleSelect,\n actionButtonsRenderer,\n metadata,\n entitiesMap,\n selectedItems\n}: Props) => {\n const styles = useStyles();\n const {comparisonViewMode} = useViewState();\n\n return (\n <div className={styles.view}>\n {matches.map((match, index) => (\n <ItemRenderer\n key={match.object.uri}\n rowIndex={index}\n match={match}\n entityToMatch={entityToMatch}\n toggleSelect={toggleSelect}\n actionButtonsRenderer={actionButtonsRenderer}\n matches={matches}\n matchRules={match.matchRules}\n metadata={metadata}\n entitiesMap={entitiesMap}\n isColumnViewMode={comparisonViewMode === ComparisonViewMode.COLUMNS}\n isRowSelected={selectedItems.some((item) => item.object.uri === match.object.uri)}\n />\n ))}\n </div>\n );\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n padding: '8px 16px',\n gap: '8px',\n borderBottom: 'rgba(0,0,0,0.05) 1px solid'\n },\n inputRoot: {\n borderRadius: '4px'\n },\n menuButtonRoot: {\n padding: 0\n }\n});\n","import React, {memo, useCallback, useRef, useState} from 'react';\nimport {SearchInput, TenantsDropDownSelector} from '@reltio/components';\nimport {always, isEmpty, pipe, propEq, trim, when} from 'ramda';\nimport {DataTenant} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n onSearch: (searchText: string) => void;\n searchTenant: DataTenant;\n onChangeSearchTenant: (tenant: DataTenant) => void;\n entityTypeUri: string;\n};\n\nconst RightSideSearch = ({onSearch, searchTenant, onChangeSearchTenant, entityTypeUri}: Props) => {\n const styles = useStyles();\n const searchInputRef = useRef<HTMLInputElement>();\n const [currentSearchText, setCurrentSearchText] = useState<string>('');\n const handleSearch = useCallback(when(propEq('key', 'Enter'), pipe(always(currentSearchText), trim, onSearch)), [\n currentSearchText,\n onSearch\n ]);\n\n const handleChangeSearchText = useCallback(\n (newSearchText) => {\n setCurrentSearchText(newSearchText);\n if (isEmpty(newSearchText) && document.activeElement !== searchInputRef.current) {\n onSearch(newSearchText);\n }\n },\n [onSearch]\n );\n\n if (!onSearch) {\n return null;\n }\n\n return (\n <div className={styles.root}>\n <TenantsDropDownSelector\n entityTypeUri={entityTypeUri}\n selectedTenant={searchTenant}\n onChangeTenant={onChangeSearchTenant}\n />\n <SearchInput\n classes={{root: styles.inputRoot}}\n inputRef={searchInputRef}\n fullWidth\n height={40}\n autofocus={false}\n value={currentSearchText}\n onSearch={handleChangeSearchText}\n onKeyPress={handleSearch}\n />\n </div>\n );\n};\nexport default memo(RightSideSearch);\n","import React, {forwardRef} from 'react';\nimport {identity} from 'ramda';\nimport {Action} from './ActionsPanel';\n\ntype Props = {\n item: Action;\n onMenuClose?: () => void;\n};\nconst MenuItemRenderer = forwardRef(({item, onMenuClose = identity}: Props, ref: React.Ref<HTMLLIElement>) => {\n const {ActionButton, props} = item;\n return <ActionButton ref={ref} mode=\"menuItem\" onMenuClose={onMenuClose} {...props} />;\n});\n\nMenuItemRenderer.displayName = 'MenuItemRenderer';\n\nexport default MenuItemRenderer;\n","import React from 'react';\nimport {splitAt} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {ActionButtonMode, DropDownMenuButton, SmallIconButtonWithTooltip} from '@reltio/components';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport MenuItemRenderer from './MenuItemRenderer';\n\nexport type Action = {\n ActionButton: (props) => JSX.Element;\n show: boolean;\n props: Record<string, unknown>;\n};\n\ntype Props = {\n actions: Action[];\n numberOfButtons?: number;\n mode?: 'normal' | 'hover';\n actionButtonSize?: string;\n classes?: {\n actionButton: string;\n moreOptions: string;\n };\n onActionsMenuOpen?: () => void;\n onActionsMenuClose?: () => void;\n};\n\nexport const ActionsPanel = ({\n actions,\n numberOfButtons = 2,\n mode = 'normal',\n actionButtonSize,\n classes,\n onActionsMenuOpen,\n onActionsMenuClose\n}: Props) => {\n const [buttonActions, menuActions] = splitAt(numberOfButtons, actions);\n\n const buttonMode = mode === 'normal' ? ActionButtonMode.button : ActionButtonMode.iconButton;\n const buttonSize = mode === 'normal' ? 'MPlus' : 'S';\n\n return (\n <>\n {buttonActions.map(({ActionButton, props}, index) => (\n <ActionButton\n key={index}\n mode={buttonMode}\n className={classes?.actionButton}\n {...(actionButtonSize ? {size: actionButtonSize} : {})}\n {...props}\n />\n ))}\n {menuActions.length > 0 && (\n <DropDownMenuButton\n buttonComponent={SmallIconButtonWithTooltip}\n buttonProps={{\n icon: MoreVertIcon,\n size: buttonSize,\n tooltipTitle: i18n.text('More actions')\n }}\n className={classes?.moreOptions}\n menuId={'matches-view-actions'}\n menuItems={menuActions}\n onMenuOpen={onActionsMenuOpen}\n onMenuClose={onActionsMenuClose}\n MenuItemRenderer={MenuItemRenderer}\n />\n )}\n </>\n );\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n mainArea: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden'\n }\n}));\n","import {BasicTablePagination, LinearLoadIndicator, useDidUpdateEffect} from '@reltio/components';\nimport {\n Entity,\n getActionPermissionForMatch,\n getEntityUriFromMatchObject,\n Metadata,\n SearchFilter,\n PotentialMatchesPerspectiveConfig,\n DataTenant,\n SortingField,\n isDataTenantEntity\n} from '@reltio/mdm-sdk';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {profile} from '@reltio/mdm-module';\nimport {identity, isEmpty, pathEq, prop} from 'ramda';\nimport React, {memo, useCallback, useEffect, useMemo, useState} from 'react';\nimport {useReloadData} from '../../contexts/ReloadDataContext';\nimport {useFindEntities} from '../../hooks/useFindEntities';\nimport {useMatchesReducer} from '../../hooks/useMatchesReducer';\nimport {MergeButton, NotMatchButton, SetAMatchButton} from '../Actions';\nimport RightSidePanelHeader from '../RightSidePanelHeader';\nimport {ROWS_PER_PAGE_OPTIONS, DEFAULT_SORT_OPTIONS} from '../../helpers/sortHelpers';\nimport {useSortOptions} from '../../hooks/useSortOptions';\nimport {MatchItems} from '../MatchItems';\nimport {ActionButtonRendererProps} from '../../types/potentialMatchesTypes';\nimport RightSideSearch from './RightSideSearch/RightSideSearch';\nimport {ActionsPanel} from '../ActionsPanel/ActionsPanel';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n metadata: Metadata;\n filters: SearchFilter[];\n config: PotentialMatchesPerspectiveConfig;\n sorting: SortingField;\n onSorting: (value: SortingField) => void;\n};\n\nexport const FindMatchesView = memo(({entity, metadata, filters, sorting, onSorting, config}: Props) => {\n const styles = useStyles();\n const dispatch = useDispatch();\n const [actions, state] = useMatchesReducer();\n const {changeRowsPerPage, changePage, setSelectedItems, toggleSelect} = actions;\n const {page, rowsPerPage, selectedItems, isGlobalSpinnerActive} = state;\n const {uri: entityUri, type: entityType} = entity || {};\n const tenant = useSelector(mdmModule.selectors.getTenantObject);\n const [searchText, setSearchText] = useState<string>('');\n const [searchTenant, setSearchTenant] = useState<DataTenant>(tenant);\n\n const handleChangeSearchTenant = useCallback(\n (newSearchTenant) => {\n setSearchTenant(newSearchTenant);\n changePage(0);\n },\n [changePage]\n );\n\n const requestFilters: SearchFilter[] = useMemo(\n () =>\n [\n isEmpty(searchText)\n ? null\n : {\n filter: 'containsWordStartingWith',\n fieldName: 'attributes',\n values: [searchText]\n },\n {\n filter: 'equals',\n fieldName: 'type',\n values: [entityType]\n },\n {filter: 'not equals', fieldName: 'uri', values: [entityUri]},\n ...filters\n ].filter(identity),\n [entityType, entityUri, searchText, filters]\n );\n\n const sortOptions = useSortOptions(DEFAULT_SORT_OPTIONS, [], metadata, entityType);\n\n const {entities, total, findEntities} = useFindEntities({\n enabled: !!entityUri,\n entityType,\n filters: requestFilters,\n sorting,\n page,\n rowsPerPage,\n searchTenantId: searchTenant.id\n });\n\n const {setReloadHandler} = useReloadData();\n setReloadHandler(() => {\n findEntities();\n dispatch(profile.entity.actions.loadEntity({uri: entityUri}));\n });\n\n const resetPage = () => {\n changePage(0);\n };\n\n const resetSelected = useCallback(() => {\n setSelectedItems([]);\n }, [setSelectedItems]);\n const selectAll = useCallback(() => {\n setSelectedItems(entities);\n }, [setSelectedItems, entities]);\n\n useEffect(() => {\n const selected = selectedItems.map((item) => {\n const entity = entities.find(\n (entity) => getEntityUriFromMatchObject(entity) === getEntityUriFromMatchObject(item)\n );\n return entity ? entity : item;\n });\n setSelectedItems(selected);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [entities]);\n\n useDidUpdateEffect(() => {\n resetPage();\n resetSelected();\n }, [entityUri]);\n\n useDidUpdateEffect(() => {\n resetPage();\n }, [filters, searchText]);\n\n const actionButtonsRenderer = useCallback(\n ({hoveredMatch, buttonClassName, onActionsMenuOpen, onActionsMenuClose}: ActionButtonRendererProps) => {\n const {canMerge, canMark} = getActionPermissionForMatch(\n metadata,\n config,\n hoveredMatch.object,\n entity,\n hoveredMatch.matchRules\n );\n\n const entities = [hoveredMatch.object];\n const isDTEntity = isDataTenantEntity(hoveredMatch.object);\n\n const actions = [\n {\n ActionButton: MergeButton,\n show: canMerge,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: NotMatchButton,\n show: canMark,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: SetAMatchButton,\n show: canMark && !isDTEntity,\n props: {\n entity,\n entities\n }\n }\n ].filter(prop('show'));\n\n return (\n <ActionsPanel\n actions={actions}\n classes={{\n actionButton: buttonClassName,\n moreOptions: buttonClassName\n }}\n mode=\"hover\"\n numberOfButtons={3}\n onActionsMenuOpen={onActionsMenuOpen}\n onActionsMenuClose={onActionsMenuClose}\n />\n );\n },\n [entity, config, metadata]\n );\n\n const selectedCount = useMemo(() => {\n return entities\n .map((match) => selectedItems?.find(pathEq(['object', 'uri'], match.object.uri)))\n .filter(identity).length;\n }, [selectedItems, entities]);\n\n return (\n <div className={styles.mainArea}>\n <RightSidePanelHeader\n selectedCount={selectedCount}\n totalCount={total}\n totalOnPage={entities.length}\n sortOptions={sortOptions}\n sorting={sorting}\n onSorting={onSorting}\n onSelect={selectedCount ? resetSelected : selectAll}\n >\n <RightSideSearch\n searchTenant={searchTenant}\n onChangeSearchTenant={handleChangeSearchTenant}\n entityTypeUri={entityType}\n onSearch={setSearchText}\n />\n </RightSidePanelHeader>\n <MatchItems\n entityToMatch={entity}\n toggleSelect={toggleSelect}\n actionButtonsRenderer={actionButtonsRenderer}\n matches={entities}\n metadata={metadata}\n selectedItems={selectedItems}\n />\n <BasicTablePagination\n rowsPerPageOptions={ROWS_PER_PAGE_OPTIONS}\n count={total}\n page={page}\n onChangePage={changePage}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={changeRowsPerPage}\n />\n {isGlobalSpinnerActive && <LinearLoadIndicator />}\n </div>\n );\n});\n\nFindMatchesView.displayName = 'FindMatchesView';\n","import {useSafePromise} from '@reltio/components';\nimport {\n buildFilterQueryString,\n enrichEntityWithDataTenant,\n getFilteredEntities,\n getFilteredEntitiesFromDataTenant,\n getTotalFromDataTenant,\n getTotals,\n GlobalSearchRequestOptions,\n SearchFilter,\n SortingField\n} from '@reltio/mdm-sdk';\nimport {useCallback, useState, useEffect, useMemo} from 'react';\nimport {useViewStateActions} from '../contexts/ViewStateContext';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {map} from 'ramda';\n\ntype Props = {\n entityType: string;\n filters: SearchFilter[];\n sorting: SortingField;\n page: number;\n rowsPerPage: number;\n enabled: boolean;\n searchTenantId: string;\n};\n\nexport const useFindEntities = ({entityType, filters, sorting, page, rowsPerPage, enabled, searchTenantId}: Props) => {\n const {order, field} = sorting;\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const tenant = useSelector(mdmModule.selectors.getTenantObject);\n const {setGlobalSpinner} = useViewStateActions();\n const {activityFilter, globalFilter}: GlobalSearchRequestOptions =\n useSelector(mdmModule.selectors.getGlobalSearchRequestOptions) || {};\n const [total, setTotal] = useState(0);\n const [entities, setEntities] = useState([]);\n const safePromise = useSafePromise();\n const DEFAULT_SELECTION = ['uri', 'label', 'type', 'secondaryLabel', 'attributes', 'crosswalks'];\n const filterQuery: string = useMemo(() => buildFilterQueryString()(filters), [filters]);\n const findEntities = useCallback(\n () => {\n if (enabled) {\n setGlobalSpinner(true);\n const isDtss = searchTenantId !== tenant.id;\n const dtssProps = {\n customerTenant: tenant.id,\n dataTenant: searchTenantId,\n dtssPath\n };\n\n const entityRequestOptions = {\n offset: page * rowsPerPage,\n max: rowsPerPage,\n sort: field,\n order,\n select: DEFAULT_SELECTION.join(','),\n globalFilter,\n activityFilter\n };\n const entityRequest = isDtss\n ? getFilteredEntitiesFromDataTenant({\n filters,\n options: entityRequestOptions,\n ...dtssProps\n }).then(map(enrichEntityWithDataTenant(searchTenantId)))\n : getFilteredEntities(filters, entityRequestOptions);\n\n const totalRequestOption = {activityFilter, globalFilter};\n const totalRequest = isDtss\n ? getTotalFromDataTenant({\n filters,\n options: totalRequestOption,\n ...dtssProps\n })\n : getTotals(filters, totalRequestOption);\n\n safePromise(Promise.all([entityRequest, totalRequest]))\n .then((results) => {\n const [entities, totalResponse] = results;\n const {total} = totalResponse;\n const entityToMatchFormat = (entity) => ({object: entity});\n setEntities(entities.map(entityToMatchFormat));\n setTotal(total);\n })\n .finally(() => setGlobalSpinner(false));\n }\n },\n [\n entityType,\n filterQuery,\n field,\n order,\n page,\n rowsPerPage,\n enabled,\n activityFilter,\n globalFilter,\n searchTenantId,\n tenant\n ] // eslint-disable-line\n );\n useEffect(() => {\n findEntities();\n }, [findEntities]);\n\n return {entities, total, findEntities};\n};\n","import {useCallback, useEffect} from 'react';\nimport {useMatchesLoader} from '@reltio/components';\nimport {useViewStateActions} from '../contexts/ViewStateContext';\nimport {Entity, SortingField} from '@reltio/mdm-sdk';\n\ntype Params = {\n entity: Entity;\n enabled: boolean;\n page: number;\n filter: string;\n rowsPerPage: number;\n options: {\n showTransitiveMatches?: boolean;\n };\n sorting?: SortingField;\n rules?: string;\n};\n\nexport const useMatches = ({entity, filter, rules, sorting, page, rowsPerPage, options, enabled}: Params) => {\n const {setGlobalSpinner, setEntitiesMap} = useViewStateActions();\n const onStartLoading = useCallback(() => {\n setGlobalSpinner(true);\n }, [setGlobalSpinner]);\n const onFinishLoading = useCallback(() => {\n setGlobalSpinner(false);\n }, [setGlobalSpinner]);\n const {total, matches, entitiesMap, loadMatches} = useMatchesLoader({\n enabled,\n entity,\n filter,\n rules,\n onFinishLoading,\n onStartLoading,\n options,\n page,\n rowsPerPage,\n sorting,\n markMatchedValues: true\n });\n\n useEffect(() => {\n setEntitiesMap(entitiesMap);\n }, [setEntitiesMap, entitiesMap]);\n\n return {matches, total, entitiesMap, loadMatches};\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n dialogPaper: {\n height: '600px',\n maxWidth: '600px'\n },\n dialogTitle: {\n padding: '16px 16px 0'\n },\n titleText: {\n color: theme.palette.text.primary,\n fontSize: '18px',\n letterSpacing: 0,\n lineHeight: '21px'\n },\n path: {\n color: theme.palette.text.secondary,\n fontize: '13px',\n letterSpacing: 0,\n lineHeight: '15px',\n padding: '6px 0'\n },\n content: {\n padding: '8px 16px 0px',\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)'\n },\n attributeList: {\n paddingTop: '22px'\n }\n}));\n","import React, {useMemo, useCallback, useRef} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport {identity, isEmpty, pipe, pathOr} from 'ramda';\n\nimport {Typography as Typography} from '@material-ui/core';\nimport {Button as Button} from '@material-ui/core';\nimport {Dialog as Dialog} from '@material-ui/core';\nimport {DialogActions as DialogActions} from '@material-ui/core';\nimport {DialogContent as DialogContent} from '@material-ui/core';\nimport {DialogTitle as DialogTitle} from '@material-ui/core';\nimport {AttributesList, ConnectionRelationTypeSelector, PopupBoundariesContext} from '@reltio/components';\n\nimport {\n createRelation,\n Entity,\n getActivenessAttributes,\n getLabel,\n getRelationAttributesList,\n ModeTypes,\n validateConnectionRelation,\n Connection,\n Metadata,\n AttributeType,\n RecordAttributesType,\n PotentialMatchesPerspectiveConfig\n} from '@reltio/mdm-sdk';\nimport mdm, {profile} from '@reltio/mdm-module';\nimport {getRelationTypesFromConfig} from '../../helpers/relationsHelpers';\nimport {showAddRelationErrors} from '../../utils/errors';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n config: PotentialMatchesPerspectiveConfig;\n mainEntity?: Entity;\n currentEntity?: Entity;\n matchRules?: string[];\n open?: boolean;\n onClose: (relationUri: string) => void;\n};\n\nconst AddRelationDialog = ({config, mainEntity, currentEntity, matchRules, open, onClose = identity}: Props) => {\n const styles = useStyles();\n const dispatch = useDispatch();\n const metadata: Metadata = useSelector(mdm.selectors.getMetadata);\n const containerRef = useRef(null);\n\n const {relation = {}}: Connection =\n useSelector((state) => mdm.selectors.getRelationToAddByViewId(state, config.id)) || {};\n\n const {inRelations: inRelationTypes = [], outRelations: outRelationTypes = []} = useMemo(\n () => getRelationTypesFromConfig(metadata, config, mainEntity, currentEntity, matchRules),\n [config, mainEntity, currentEntity, matchRules, metadata]\n );\n\n const {relationUri, relationType = {}} = relation;\n const attributes: RecordAttributesType = pathOr({}, ['object', 'attributes'], relation);\n\n const relationAttrTypes: AttributeType[] = useMemo(() => getRelationAttributesList(metadata, relationType), [\n relationType,\n metadata\n ]);\n\n const attributeListEntity = useMemo(\n () => ({\n attributes,\n ...getActivenessAttributes(relation)\n }),\n [relation, attributes]\n );\n\n const viewId = config.id;\n\n const onRelationTypeChange = useCallback(\n pipe(profile.relations.actions.setRelationType(config.id, relationUri), dispatch),\n [config, relationUri, dispatch]\n );\n\n const onAddAttributes = useCallback(\n (params) => pipe(profile.actions.addAttributes, dispatch)(params.map((param) => ({...param, viewId}))),\n [viewId, dispatch]\n );\n\n const onChangeAttribute = useCallback(\n (params) => pipe(profile.actions.modifyAttribute, dispatch)({...params, viewId}),\n [viewId, dispatch]\n );\n\n const onDeleteAttribute = useCallback(\n (params) => pipe(profile.actions.removeAttribute, dispatch)({...params, viewId}),\n [viewId, dispatch]\n );\n\n const handleClose = useCallback(() => onClose(relationUri), [relationUri, onClose]);\n\n const resetErrors = useCallback(() => dispatch(profile.errors.actions.errorsSet([])), [dispatch]);\n\n const validate = useCallback(() => {\n const errors = validateConnectionRelation(metadata, {relation});\n dispatch(profile.errors.actions.errorsSet(errors));\n return errors.length === 0;\n }, [relation, metadata, dispatch]);\n\n const onCancel = useCallback(() => {\n resetErrors();\n handleClose();\n }, [resetErrors, handleClose]);\n\n const onAdd = () => {\n const {relationType, startDate, endDate} = relation;\n if (validate()) {\n createRelation({\n startEntityUri: mainEntity.uri,\n endEntityUri: currentEntity.uri,\n relationType,\n attributes: pathOr({}, ['object', 'attributes'], relation),\n startDate,\n endDate\n }).catch(showAddRelationErrors);\n handleClose();\n }\n };\n\n const title = `${getLabel(currentEntity.label)} \\u2192 ${getLabel(mainEntity.label)}`;\n\n const disabled = isEmpty(relationType);\n const boundariesElement = containerRef.current;\n const popupBoundariesValue = useMemo(\n () => ({\n element: boundariesElement,\n priority: ['top', 'bottom']\n }),\n [boundariesElement]\n );\n return (\n <Dialog open={open} fullWidth maxWidth=\"sm\" onClose={onCancel} classes={{paper: styles.dialogPaper}}>\n <DialogTitle disableTypography classes={{root: styles.dialogTitle}}>\n <Typography variant=\"subtitle1\" classes={{root: styles.titleText}}>\n {i18n.text('Add relationship')}\n </Typography>\n <Typography variant=\"body2\" classes={{root: styles.path}}>\n {title}\n </Typography>\n </DialogTitle>\n <DialogContent classes={{root: styles.content}} ref={containerRef}>\n <PopupBoundariesContext.Provider value={popupBoundariesValue}>\n <ConnectionRelationTypeSelector\n relation={relation}\n metadata={metadata}\n inRelationTypes={inRelationTypes}\n outRelationTypes={outRelationTypes}\n onChange={onRelationTypeChange}\n applyFirstByDefault={true}\n />\n <AttributesList\n className={styles.attributeList}\n attrTypes={relationAttrTypes}\n entity={attributeListEntity}\n showEmptyEditors={true}\n mode={ModeTypes.EDITING}\n parentUri={relationUri}\n onAddAttributes={onAddAttributes}\n onChangeAttribute={onChangeAttribute}\n onDeleteAttribute={onDeleteAttribute}\n />\n </PopupBoundariesContext.Provider>\n </DialogContent>\n <DialogActions>\n <Button onClick={onCancel}>{i18n.text('Cancel')}</Button>\n <Button disabled={disabled} color=\"primary\" onClick={onAdd}>\n {i18n.text('Add')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default AddRelationDialog;\n","import {assocPath, evolve, identity, propOr, filter, pipe, map} from 'ramda';\nimport {\n canCreateRelationBetweenEntities,\n generateNewRelationUri,\n getRulesConfig,\n getEntityType,\n getRelationType,\n inOutRelationsDeduplicator,\n Metadata,\n Entity,\n InOutRelation,\n Connection,\n PotentialMatchesPerspectiveConfig\n} from '@reltio/mdm-sdk';\n\nexport const getRelationTypesFromConfig = (\n metadata: Metadata,\n config: PotentialMatchesPerspectiveConfig,\n mainEntity: Entity,\n entity: Entity,\n matchRules: string[]\n): {\n inRelations: InOutRelation;\n outRelations: InOutRelation;\n} => {\n const {isNotDuplicatedInRelation, isNotDuplicatedOutRelation} = inOutRelationsDeduplicator();\n\n const setObjectTypes = (relation) =>\n pipe(\n assocPath(['startObject', 'objectType'], getEntityType(metadata, relation.startObject.objectTypeURI)),\n assocPath(['endObject', 'objectType'], getEntityType(metadata, relation.endObject.objectTypeURI))\n )(relation);\n\n const entityType = getEntityType(metadata, entity.type);\n const matchActionConfig = propOr({}, 'matchActions', config);\n const rulesConfig = getRulesConfig(matchActionConfig, entityType, matchRules);\n const [relationTypeUris] = rulesConfig.map(({createRelation}) => createRelation).filter(identity);\n return (\n evolve(\n {\n inRelations: pipe(\n filter(canCreateRelationBetweenEntities(metadata, entity, mainEntity)),\n map(getRelationType(metadata)),\n filter(isNotDuplicatedInRelation),\n map(setObjectTypes)\n ),\n outRelations: pipe(\n filter(canCreateRelationBetweenEntities(metadata, mainEntity, entity)),\n map(getRelationType(metadata)),\n filter(isNotDuplicatedOutRelation),\n map(setObjectTypes)\n )\n },\n relationTypeUris\n ) || {}\n );\n};\n\nexport const createNewConnection = (entity = {} as Entity): Connection => ({\n relation: {\n relationUri: generateNewRelationUri()\n },\n entity,\n isNew: true\n});\n","import React, {useCallback, useState} from 'react';\nimport {useDispatch} from 'react-redux';\nimport {pipe} from 'ramda';\nimport {profile} from '@reltio/mdm-module';\nimport {createNewConnection} from '../helpers/relationsHelpers';\nimport AddRelationDialog from '../components/AddRelationDialog/AddRelationDialog';\nimport {Entity, PotentialMatchesPerspectiveConfig} from '@reltio/mdm-sdk';\n\nexport const useAddRelationDialog = (config: PotentialMatchesPerspectiveConfig) => {\n const [showDialog, setShowDialog] = useState(false);\n const [relationDialogContent, setRelationDialogContent] = useState({});\n const dispatch = useDispatch();\n\n const openAddRelationDialog = useCallback(\n ({\n mainEntity,\n currentEntity,\n matchRules\n }: {\n mainEntity?: Entity;\n currentEntity?: Entity;\n matchRules?: string[];\n }) => {\n const newConnection = createNewConnection(currentEntity);\n pipe(profile.relations.actions.openRelationEditor(config.id), dispatch)(newConnection);\n setRelationDialogContent({mainEntity, currentEntity, matchRules});\n setShowDialog(true);\n },\n [config, dispatch]\n );\n\n const closeAddRelationDialog = useCallback(\n (relationUri: string) => {\n pipe(profile.relations.actions.closeRelationEditor, dispatch)(config.id, relationUri);\n setShowDialog(false);\n },\n [config.id, dispatch]\n );\n\n const AddRelationDialogRenderer = useCallback(() => {\n return showDialog ? (\n <AddRelationDialog\n config={config}\n open={showDialog}\n onClose={closeAddRelationDialog}\n {...relationDialogContent}\n />\n ) : null;\n }, [showDialog, config, closeAddRelationDialog, relationDialogContent]);\n\n return {showDialog, openAddRelationDialog, AddRelationDialogRenderer};\n};\n","export const DEFAULT_OPTIONS = {\n showTransitiveMatches: true\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n mainArea: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden'\n }\n}));\n","import React, {memo, useCallback, useMemo} from 'react';\nimport {partition, prop, identity, equals} from 'ramda';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {profile} from '@reltio/mdm-module';\nimport {\n BasicTablePagination,\n LinearLoadIndicator,\n useDidUpdateEffect,\n CollaborationContext,\n useCollaboration,\n EntitiesMapContext\n} from '@reltio/components';\nimport {\n Entity,\n getActionPermissionForMatch,\n isDataTenantEntity,\n Metadata,\n getPotentialMatchesObjectIdsForCollaboration,\n PotentialMatchesPerspectiveConfig,\n SearchFilter,\n buildFilterQueryString,\n isEmptyValue,\n SortingField\n} from '@reltio/mdm-sdk';\nimport {useReloadData} from '../../contexts/ReloadDataContext';\nimport {useMatches} from '../../hooks/useMatches';\nimport {useAddRelationDialog} from '../../hooks/useAddRelationDialog';\nimport {useMatchesReducer} from '../../hooks/useMatchesReducer';\nimport {CreateRelationButton, DCRReviewButton, MergeButton, NotMatchButton} from '../Actions';\nimport {\n ROWS_PER_PAGE_OPTIONS,\n MATCHES_SORT_OPTIONS,\n ADDITIONAL_SORT_OPTIONS_DATA,\n isMatchRuleFilter,\n buildRulesStringFormFilters\n} from '../../helpers/sortHelpers';\nimport {ActionsPanel} from '../ActionsPanel/ActionsPanel';\n\nimport RightSidePanelHeader from '../RightSidePanelHeader';\nimport {useSortOptions} from '../../hooks/useSortOptions';\nimport {MatchItems} from '../MatchItems';\nimport {ActionButtonRendererProps, MatchesOptions} from '../../types/potentialMatchesTypes';\nimport {DEFAULT_OPTIONS} from '../../constants/defaultOptions';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n metadata: Metadata;\n filters: SearchFilter[];\n options?: MatchesOptions;\n sorting: SortingField;\n onSorting: (value: SortingField) => void;\n config: PotentialMatchesPerspectiveConfig;\n};\n\nconst MatchesView = memo(\n ({entity, metadata, filters, options = DEFAULT_OPTIONS, sorting, onSorting, config}: Props) => {\n const styles = useStyles();\n const [actions, state] = useMatchesReducer();\n const dispatch = useDispatch();\n const {changeRowsPerPage, changePage, setSelectedItems, toggleSelect} = actions;\n const {page, rowsPerPage, selectedItems, isGlobalSpinnerActive} = state;\n const canStartProcessInstanceSearchQuery = useSelector(mdmModule.selectors.getCanUserStartProcessFromQuery);\n const workflowPath = useSelector(mdmModule.selectors.getWorkflowPath);\n const hasWorkflow = canStartProcessInstanceSearchQuery && !isEmptyValue(workflowPath);\n const {uri: entityUri, type: entityType} = entity || {};\n const {showDialog, openAddRelationDialog, AddRelationDialogRenderer} = useAddRelationDialog(config);\n\n const sortOptions = useSortOptions(MATCHES_SORT_OPTIONS, ADDITIONAL_SORT_OPTIONS_DATA, metadata, entityType);\n\n const [matchRulesFilters, regularFilters] = useMemo(\n (): [SearchFilter[], SearchFilter[]] => partition(isMatchRuleFilter)(filters),\n [filters]\n );\n\n const matchesFilter = useMemo((): string => buildFilterQueryString()(regularFilters), [regularFilters]);\n\n const {matches, total, entitiesMap, loadMatches} = useMatches({\n enabled: !!entityUri,\n entity,\n filter: matchesFilter,\n page,\n sorting,\n rowsPerPage,\n options,\n rules: buildRulesStringFormFilters(matchRulesFilters)\n });\n\n const {setReloadHandler} = useReloadData();\n setReloadHandler(() => {\n loadMatches();\n dispatch(profile.entity.actions.loadEntity({uri: entityUri}));\n });\n\n const resetPage = () => {\n changePage(0);\n };\n\n const resetSelected = useCallback(() => {\n setSelectedItems([]);\n }, [setSelectedItems]);\n const selectAll = useCallback(() => {\n setSelectedItems(matches);\n }, [setSelectedItems, matches]);\n\n useDidUpdateEffect(() => {\n resetPage();\n resetSelected();\n }, [entityUri, options]);\n\n const objectIds = useMemo(\n () => getPotentialMatchesObjectIdsForCollaboration(entityUri, Object.keys(entitiesMap)),\n [entityUri, entitiesMap]\n );\n const collaboration = useCollaboration({objectIds});\n\n const actionButtonsRenderer = useCallback(\n ({hoveredMatch, buttonClassName, onActionsMenuOpen, onActionsMenuClose}: ActionButtonRendererProps) => {\n const {canMerge, canAddRelation, canMark} = getActionPermissionForMatch(\n metadata,\n config,\n hoveredMatch.object,\n entity,\n hoveredMatch.matchRules\n );\n\n const entities = [hoveredMatch.object];\n const hasDTEntity = [...entities, entity].some(isDataTenantEntity);\n\n const actions = [\n {\n ActionButton: MergeButton,\n show: canMerge,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: NotMatchButton,\n show: canMark,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: DCRReviewButton,\n show: !hasDTEntity && hasWorkflow,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: CreateRelationButton,\n show: canAddRelation && !hasDTEntity,\n props: {\n mainEntity: entity,\n currentEntity: hoveredMatch.object,\n matchRules: hoveredMatch.matchRules,\n onClick: openAddRelationDialog\n }\n }\n ].filter(prop('show'));\n\n return (\n <ActionsPanel\n actions={actions}\n classes={{\n actionButton: buttonClassName,\n moreOptions: buttonClassName\n }}\n mode=\"hover\"\n numberOfButtons={2}\n onActionsMenuOpen={onActionsMenuOpen}\n onActionsMenuClose={onActionsMenuClose}\n />\n );\n },\n [entity, config, metadata, openAddRelationDialog, hasWorkflow]\n );\n\n const selectedCount = useMemo(() => {\n return matches.map((match) => selectedItems?.find(equals(match))).filter(identity).length;\n }, [selectedItems, matches]);\n\n return (\n <CollaborationContext.Provider value={collaboration}>\n <EntitiesMapContext.Provider value={entitiesMap}>\n <div className={styles.mainArea}>\n <RightSidePanelHeader\n selectedCount={selectedCount}\n totalCount={total}\n totalOnPage={matches.length}\n sortOptions={sortOptions}\n sorting={sorting}\n onSorting={onSorting}\n onSelect={selectedCount ? resetSelected : selectAll}\n />\n <MatchItems\n entityToMatch={entity}\n toggleSelect={toggleSelect}\n actionButtonsRenderer={actionButtonsRenderer}\n matches={matches}\n metadata={metadata}\n entitiesMap={entitiesMap}\n selectedItems={selectedItems}\n />\n <BasicTablePagination\n rowsPerPageOptions={ROWS_PER_PAGE_OPTIONS}\n count={total}\n page={page}\n onChangePage={changePage}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={changeRowsPerPage}\n />\n {isGlobalSpinnerActive && <LinearLoadIndicator />}\n </div>\n {showDialog && <AddRelationDialogRenderer />}\n </EntitiesMapContext.Provider>\n </CollaborationContext.Provider>\n );\n }\n);\n\nMatchesView.displayName = 'MatchesView';\n\nexport default MatchesView;\n","import {useState, useEffect, useCallback, useMemo} from 'react';\nimport {useSelector} from 'react-redux';\nimport {\n getNotMatch,\n getNotMatchesFromDataTenants,\n withDtssPotentialItems,\n getEntitiesMapForTransitiveMatches,\n GlobalSearchRequestOptions,\n addGlobalFilterToQuery,\n Match,\n NOT_MATCH,\n SortingField\n} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {usePagingSimulator, useSafePromise} from '@reltio/components';\nimport {useViewStateActions} from '../contexts/ViewStateContext';\n\ntype Params = {\n entityUri: string;\n enabled: boolean;\n page: number;\n filter: string;\n rowsPerPage: number;\n sorting?: SortingField;\n};\n\nexport const useNotMatches = ({entityUri, filter, sorting, page, rowsPerPage, enabled}: Params) => {\n const {order, field} = sorting || {};\n const {setGlobalSpinner} = useViewStateActions();\n const [total, setTotal] = useState(0);\n const [matches, setMatches] = useState<Match[]>([]);\n const [entitiesMap, setEntitiesMap] = useState({});\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const dataTenants = useSelector(mdmModule.selectors.getDataTenants);\n const {activityFilter, globalFilter}: GlobalSearchRequestOptions =\n useSelector(mdmModule.selectors.getGlobalSearchRequestOptions) || {};\n const dtssParams = useMemo(\n () => ({\n dtssPath,\n dataTenants,\n entity: {uri: entityUri},\n customerTenant: tenant,\n dtssRequest: getNotMatchesFromDataTenants\n }),\n [dtssPath, dataTenants, entityUri, tenant]\n );\n\n //eslint-disable-next-line react-hooks/exhaustive-deps\n const getNotMatchWithDtss = useCallback(withDtssPotentialItems(dtssParams, getNotMatch), [dtssParams]);\n\n const getNotMatchWithPaging = usePagingSimulator(getNotMatchWithDtss);\n\n const safePromise = useSafePromise();\n const markAsNotMatch = (record) => ({matchRules: [NOT_MATCH], ...record});\n const loadNotMatchesIfNeeded = useCallback(\n (force?: boolean) => {\n if (enabled) {\n setGlobalSpinner(true);\n safePromise(\n getNotMatchWithPaging({\n entityUri: entityUri,\n offset: page * rowsPerPage,\n max: rowsPerPage,\n filter: addGlobalFilterToQuery(globalFilter, filter) || '',\n sort: field,\n force,\n order,\n activeness: activityFilter\n })\n )\n .then((result) => {\n const {response, total, originalResponse} = result;\n setTotal(total);\n setMatches(response.map(markAsNotMatch));\n const notAMatchUris = response.map(({uri}) => uri);\n if (notAMatchUris.length > 0) {\n setEntitiesMap(getEntitiesMapForTransitiveMatches(originalResponse));\n }\n })\n .finally(() => setGlobalSpinner(false));\n }\n },\n [entityUri, filter, field, order, page, rowsPerPage, activityFilter, enabled, globalFilter] // eslint-disable-line\n );\n\n useEffect(() => {\n loadNotMatchesIfNeeded();\n }, [loadNotMatchesIfNeeded]);\n\n const loadNotMatches = useCallback(() => {\n loadNotMatchesIfNeeded(true);\n }, [loadNotMatchesIfNeeded]);\n\n return {matches, total, entitiesMap, loadNotMatches};\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n mainArea: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden'\n }\n}));\n","import React, {memo, useCallback, useMemo} from 'react';\nimport {prop, equals, identity} from 'ramda';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {\n BasicTablePagination,\n LinearLoadIndicator,\n useDidUpdateEffect,\n CollaborationContext,\n useCollaboration,\n EntitiesMapContext\n} from '@reltio/components';\nimport {\n Entity,\n getActionPermissionForMatch,\n isDataTenantEntity,\n Metadata,\n getPotentialMatchesObjectIdsForCollaboration,\n PotentialMatchesPerspectiveConfig,\n SearchFilter,\n buildFilterQueryString,\n isEmptyValue,\n SortingField\n} from '@reltio/mdm-sdk';\nimport mdmModule, {profile} from '@reltio/mdm-module';\nimport {useReloadData} from '../../contexts/ReloadDataContext';\nimport {useMatchesReducer} from '../../hooks/useMatchesReducer';\nimport {useNotMatches} from '../../hooks/useNotMatches';\nimport {DCRReviewButton, MergeButton, ReinstateMatchButton} from '../Actions';\nimport {ROWS_PER_PAGE_OPTIONS, DEFAULT_SORT_OPTIONS} from '../../helpers/sortHelpers';\nimport {ActionsPanel} from '../ActionsPanel/ActionsPanel';\nimport {ActionButtonRendererProps} from '../../types/potentialMatchesTypes';\n\nimport RightSidePanelHeader from '../RightSidePanelHeader';\nimport {useSortOptions} from '../../hooks/useSortOptions';\nimport {MatchItems} from '../MatchItems';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n metadata: Metadata;\n filters: SearchFilter[];\n config: PotentialMatchesPerspectiveConfig;\n sorting: SortingField;\n onSorting: (value: SortingField) => void;\n};\n\nexport const NotMatchView = memo(({entity, metadata, filters, sorting, onSorting, config}: Props) => {\n const styles = useStyles();\n const dispatch = useDispatch();\n const [actions, state] = useMatchesReducer();\n const {changeRowsPerPage, changePage, setSelectedItems, toggleSelect} = actions;\n const {page, rowsPerPage, selectedItems, isGlobalSpinnerActive} = state;\n const {uri: entityUri, type: entityType} = entity || {};\n const canStartProcessInstanceSearchQuery = useSelector(mdmModule.selectors.getCanUserStartProcessFromQuery);\n const workflowPath = useSelector(mdmModule.selectors.getWorkflowPath);\n const hasWorkflow = canStartProcessInstanceSearchQuery && !isEmptyValue(workflowPath);\n const {matches, total, entitiesMap, loadNotMatches} = useNotMatches({\n enabled: !!entityUri,\n entityUri,\n filter: buildFilterQueryString()(filters),\n page,\n rowsPerPage,\n sorting\n });\n const objectIds = useMemo(\n () => getPotentialMatchesObjectIdsForCollaboration(entityUri, Object.keys(entitiesMap)),\n [entityUri, entitiesMap]\n );\n const collaboration = useCollaboration({objectIds});\n\n const sortOptions = useSortOptions(DEFAULT_SORT_OPTIONS, [], metadata, entityType);\n\n const {setReloadHandler} = useReloadData();\n setReloadHandler(() => {\n loadNotMatches();\n dispatch(profile.entity.actions.loadEntity({uri: entityUri}));\n });\n\n const resetPage = () => {\n changePage(0);\n };\n\n const resetSelected = useCallback(() => {\n setSelectedItems([]);\n }, [setSelectedItems]);\n const selectAll = useCallback(() => {\n setSelectedItems(matches);\n }, [setSelectedItems, matches]);\n\n useDidUpdateEffect(() => {\n resetPage();\n resetSelected();\n }, [entityUri]);\n\n const actionButtonsRenderer = useCallback(\n ({hoveredMatch, buttonClassName, onActionsMenuOpen, onActionsMenuClose}: ActionButtonRendererProps) => {\n const {canMerge, canMark} = getActionPermissionForMatch(\n metadata,\n config,\n hoveredMatch.object,\n entity,\n hoveredMatch.matchRules\n );\n const entities = [hoveredMatch.object];\n const hasDTEntity = [...entities, entity].some(isDataTenantEntity);\n\n const actions = [\n {\n ActionButton: MergeButton,\n show: canMerge,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: ReinstateMatchButton,\n show: canMark,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: DCRReviewButton,\n show: !hasDTEntity && hasWorkflow,\n props: {\n entity,\n entities\n }\n }\n ].filter(prop('show'));\n\n return (\n <ActionsPanel\n actions={actions}\n classes={{\n actionButton: buttonClassName,\n moreOptions: buttonClassName\n }}\n mode=\"hover\"\n numberOfButtons={2}\n onActionsMenuOpen={onActionsMenuOpen}\n onActionsMenuClose={onActionsMenuClose}\n />\n );\n },\n [entity, config, metadata, hasWorkflow]\n );\n\n const selectedCount = useMemo(() => {\n return matches.map((match) => selectedItems?.find(equals(match))).filter(identity).length;\n }, [selectedItems, matches]);\n\n return (\n <CollaborationContext.Provider value={collaboration}>\n <EntitiesMapContext.Provider value={entitiesMap}>\n <div className={styles.mainArea}>\n <RightSidePanelHeader\n selectedCount={selectedCount}\n totalCount={total}\n totalOnPage={matches.length}\n sortOptions={sortOptions}\n sorting={sorting}\n onSorting={onSorting}\n onSelect={selectedCount ? resetSelected : selectAll}\n />\n <MatchItems\n entityToMatch={entity}\n toggleSelect={toggleSelect}\n actionButtonsRenderer={actionButtonsRenderer}\n matches={matches}\n metadata={metadata}\n selectedItems={selectedItems}\n />\n <BasicTablePagination\n rowsPerPageOptions={ROWS_PER_PAGE_OPTIONS}\n count={total}\n page={page}\n onChangePage={changePage}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={changeRowsPerPage}\n />\n {isGlobalSpinnerActive && <LinearLoadIndicator />}\n </div>\n </EntitiesMapContext.Provider>\n </CollaborationContext.Provider>\n );\n});\n\nNotMatchView.displayName = 'NotMatchView';\n","import {Entity, Metadata, PotentialMatchesPerspectiveConfig, SearchFilter, SortingField} from '@reltio/mdm-sdk';\nimport React from 'react';\nimport {UsersContext, useUsers} from '@reltio/components';\nimport {ActivePanel} from '../../constants/views';\nimport FindMatchesView from '../FindMatchesView';\nimport {MatchesView} from '../MatchesView';\nimport NotMatchView from '../NotMatchView';\nimport {MatchesOptions} from '../../types/potentialMatchesTypes';\n\ntype Props = {\n entity: Entity;\n metadata: Metadata;\n filters: SearchFilter[];\n sorting: SortingField;\n onSorting: (value: SortingField) => void;\n activeView: ActivePanel;\n config: PotentialMatchesPerspectiveConfig;\n options?: MatchesOptions;\n};\n\nexport const Content = ({entity, metadata, filters, options, sorting, onSorting, config, activeView}: Props) => {\n const users = useUsers();\n\n const render = () => {\n switch (activeView) {\n case ActivePanel.PotentialMatches:\n return (\n <MatchesView\n entity={entity}\n metadata={metadata}\n filters={filters}\n options={options}\n config={config}\n sorting={sorting}\n onSorting={onSorting}\n />\n );\n case ActivePanel.FindMatches:\n return (\n <FindMatchesView\n entity={entity}\n metadata={metadata}\n filters={filters}\n config={config}\n sorting={sorting}\n onSorting={onSorting}\n />\n );\n case ActivePanel.NotAMatch:\n return (\n <NotMatchView\n entity={entity}\n metadata={metadata}\n filters={filters}\n config={config}\n sorting={sorting}\n onSorting={onSorting}\n />\n );\n default:\n return <div />;\n }\n };\n\n return <UsersContext.Provider value={users}>{render()}</UsersContext.Provider>;\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n input: {\n margin: 0,\n borderRadius: '4px',\n width: '100%',\n paddingTop: 0,\n paddingBottom: 0\n }\n});\n","import React, {useCallback, useMemo} from 'react';\nimport {\n MatchRulesSelector,\n SourceSystemsSelector,\n AttributesValuesEditor,\n AttributeFiltersComponentProps\n} from '@reltio/components';\nimport {isMatchRuleAttrType, isSourceSystemAttrType, SearchFilter, MatchRulesAttrNames} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\ntype RowData = AttributeFiltersComponentProps['rowData'];\n\nexport const ValuesEditor = ({rowData, rowContext}: AttributeFiltersComponentProps) => {\n const styles = useStyles();\n const {values = [], attribute: {attrType, fieldName = null} = {}, filter, id} = (rowData || {}) as RowData;\n const {changeFilter} = rowContext;\n const {entityType} = rowContext;\n\n const changeValue = useCallback(\n (newValues: SearchFilter['values']) => {\n const newFilter: SearchFilter = {\n fieldName,\n filter,\n values: newValues\n };\n\n changeFilter(newFilter, id);\n },\n [changeFilter, id, fieldName, filter]\n );\n\n const TextFieldProps = useMemo(\n () => ({\n InputProps: {\n classes: {\n root: styles.input\n }\n }\n }),\n [styles]\n );\n\n const commonProps = {\n values: values as string[],\n onChange: changeValue,\n TextFieldProps,\n fullWidth: true\n };\n\n if (isMatchRuleAttrType(attrType)) {\n return (\n <MatchRulesSelector {...commonProps} name={attrType.name as MatchRulesAttrNames} entityType={entityType} />\n );\n } else if (isSourceSystemAttrType(attrType)) {\n return <SourceSystemsSelector {...commonProps} />;\n } else {\n return <AttributesValuesEditor rowContext={rowContext} rowData={rowData} />;\n }\n};\n","import React from 'react';\nimport capitalize from '@material-ui/core/utils/capitalize';\nimport {AttributesFilterSelector, AttributeFiltersComponentProps} from '@reltio/components';\nimport {FilterOptions, getFilterOptionLabel, isMatchRuleAttrType} from '@reltio/mdm-sdk';\n\ntype RowData = AttributeFiltersComponentProps['rowData'];\n\ntype Props = AttributeFiltersComponentProps & {textFieldInputRef: React.MutableRefObject<HTMLInputElement>};\n\nexport const FilterSelector = (props: Props) => {\n const {rowData} = props;\n const {attribute: {attrType} = {}} = (rowData || {}) as RowData;\n const options = isMatchRuleAttrType(attrType)\n ? [FilterOptions.EQUALS].map((value) => ({value, label: capitalize(getFilterOptionLabel(value))}))\n : null;\n\n return <AttributesFilterSelector {...props} options={options} />;\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n divider: {\n marginBottom: '14px',\n marginRight: '16px',\n background: 'rgba(0, 0, 0, 0.121569)'\n },\n optionLabel: {\n fontSize: '13px',\n paddingLeft: '10px'\n }\n});\n","import React, {useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {FormControlLabel as FormControlLabel} from '@material-ui/core';\nimport {Divider as Divider} from '@material-ui/core';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport {AttributesFiltersButton} from '@reltio/components';\nimport {AttributeType, buildFilterQueryString, SearchFilter} from '@reltio/mdm-sdk';\nimport {FilterSelector} from '../FilterSelector/FilterSelector';\nimport {ValuesEditor} from '../ValuesEditor/ValuesEditor';\nimport {MatchesOptions} from '../../../types/potentialMatchesTypes';\n\nimport {useStyles} from './styles';\n\nconst potentialMatchesComponents = {\n FilterSelector,\n ValuesEditor\n};\n\ntype Props = {\n filters: SearchFilter[];\n options: MatchesOptions;\n onChange: (filters: SearchFilter[], option: MatchesOptions) => void;\n attributeTypes: AttributeType[];\n};\n\nexport const MatchesAttributesFiltersButton = ({filters, onChange, attributeTypes, options}: Props) => {\n const styles = useStyles();\n const [showTransitiveMatches, setShowTransitiveMatches] = useState(options.showTransitiveMatches);\n return (\n <AttributesFiltersButton\n filters={filters}\n onChange={(filters) => onChange(filters, {showTransitiveMatches})}\n attributeTypes={attributeTypes}\n components={potentialMatchesComponents}\n onTogglePopup={(open) => {\n if (open) {\n setShowTransitiveMatches(options.showTransitiveMatches);\n }\n }}\n isFiltersApplied={!!buildFilterQueryString()(filters) || !options.showTransitiveMatches}\n >\n <FormControlLabel\n classes={{label: styles.optionLabel}}\n control={\n <Checkbox\n checked={showTransitiveMatches}\n onChange={(e) => setShowTransitiveMatches(e.target.checked)}\n color=\"primary\"\n />\n }\n label={i18n.text('Show transitive matches')}\n />\n <Divider light className={styles.divider} />\n </AttributesFiltersButton>\n );\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n wrapper: {\n display: 'flex',\n overflow: 'hidden',\n marginLeft: 'auto',\n flexShrink: 0\n }\n});\n","import React, {useCallback, useMemo, useState, memo, useEffect} from 'react';\nimport {pluck, propOr} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {useSelector} from 'react-redux';\nimport {AttributesFiltersButton, SideButtonsPanel, SidePanel} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n CrosswalksAttrTypes,\n EntityAttrTypes,\n getEntityType,\n hasMatchRulesWithoutML,\n hasMlMatchRule,\n isReadableAttribute,\n MatchRulesAttrTypes,\n Order,\n PotentialMatchesPerspectiveConfig,\n SearchFilter,\n SortingField\n} from '@reltio/mdm-sdk';\nimport PotentialMatchesIcon from './icons/potential-matches-icon.svg';\nimport FindMatchesIcon from './icons/find-matches-icon.svg';\nimport NotAMatchIcon from './icons/not-a-match-icon.svg';\nimport {ActivePanel} from '../../constants/views';\nimport Content from '../../components/Content';\nimport {RightSideHeaderContext} from '../../contexts/RightSideHeaderContext';\nimport {ValuesEditor} from './ValuesEditor/ValuesEditor';\nimport {MatchesOptions, PotentialMatchesSavedState} from '../../types/potentialMatchesTypes';\nimport {MatchesAttributesFiltersButton} from './MatchesAttributesFiltersButton/MatchesAttributesFiltersButton';\n\nimport {ADDITIONAL_SORT_OPTIONS_DATA, DEFAULT_SORT_OPTIONS, getSortOptionIdFromData} from '../../helpers/sortHelpers';\nimport {DEFAULT_OPTIONS} from '../../constants/defaultOptions';\n\nimport {useStyles} from './styles';\n\nconst DEFAULT_PANEL_WIDTH = 480;\n\nconst sourceSystemsComponents = {\n ValuesEditor\n};\n\ntype Props = {\n config: PotentialMatchesPerspectiveConfig;\n isLoaded: boolean;\n savedState: PotentialMatchesSavedState;\n onUpdateSavedState: (stateToSave: PotentialMatchesSavedState) => void;\n};\n\nexport const RightSidePanel = memo(({config, isLoaded, savedState, onUpdateSavedState}: Props) => {\n const styles = useStyles();\n const [matchesFilters, setMatchesFilters] = useState<SearchFilter[]>([]);\n const [matchesOptions, setMatchesOptions] = useState<MatchesOptions>(DEFAULT_OPTIONS);\n const [findMatchesFilters, setFindMatchesFilters] = useState<SearchFilter[]>([]);\n const [notMatchFilters, setNotMatchFilters] = useState<SearchFilter[]>([]);\n const [matchesSorting, setMatchesSorting] = useState<SortingField>({\n field: ADDITIONAL_SORT_OPTIONS_DATA[0].id,\n order: Order.desc\n });\n const [findMatchesSorting, setFindMatchesSorting] = useState<SortingField>({\n field: getSortOptionIdFromData(DEFAULT_SORT_OPTIONS)[0],\n order: Order.asc\n });\n const [notMatchSorting, setNotMatchSorting] = useState<SortingField>({\n field: getSortOptionIdFromData(DEFAULT_SORT_OPTIONS)[0],\n order: Order.asc\n });\n\n const [active, setActive] = useState<ActivePanel>(null);\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const entity = useSelector(mdmModule.selectors.getEntity);\n\n const toggleActive = useCallback((newId: ActivePanel) => {\n setActive((active) => (active === newId ? null : newId));\n }, []);\n const resetActive = useCallback(() => {\n setActive(null);\n }, []);\n const isOpen = active !== null;\n\n const entityType = getEntityType(metadata, entity?.type);\n\n const getAttributeTypes = (entityType) =>\n (entityType.attributes || []).concat(entityType.analyticsAttributes || []).filter(isReadableAttribute);\n\n const attributeTypes = useMemo(() => getAttributeTypes(entityType), [entityType]);\n\n const matchRulesAttributes = useMemo(() => {\n const matchRulesAttributes = [\n {...MatchRulesAttrTypes.matchRules, check: hasMatchRulesWithoutML},\n {...MatchRulesAttrTypes.MLRecommendedMatch, check: hasMlMatchRule}\n ];\n\n return matchRulesAttributes.reduce((attributes, {check, ...attrType}) => {\n check(entityType) && attributes.push(attrType);\n return attributes;\n }, []);\n }, [entityType]);\n\n const potentialMatchesAttributeTypes = useMemo(\n () => [...matchRulesAttributes, ...attributeTypes],\n [attributeTypes, matchRulesAttributes]\n );\n\n const findMatchesAttributeTypes = useMemo(\n () => [EntityAttrTypes.id, CrosswalksAttrTypes.sourceSystems, ...attributeTypes],\n [attributeTypes]\n );\n\n const onChangeMatchesFilters = (matchesFilters: SearchFilter[], options: MatchesOptions) => {\n setMatchesOptions(options);\n setMatchesFilters(matchesFilters);\n };\n\n const elements = useMemo(\n () => [\n {\n buttonProps: {\n id: ActivePanel.PotentialMatches,\n icon: PotentialMatchesIcon,\n tooltipTitle: i18n.text('Potential Matches')\n },\n headerProps: {\n mainTitle: i18n.text('Potential Matches'),\n rightContent: (\n <MatchesAttributesFiltersButton\n filters={matchesFilters}\n onChange={onChangeMatchesFilters}\n attributeTypes={potentialMatchesAttributeTypes}\n options={matchesOptions}\n />\n )\n },\n filters: matchesFilters,\n options: matchesOptions,\n sorting: matchesSorting,\n onSorting: setMatchesSorting\n },\n {\n buttonProps: {\n id: ActivePanel.FindMatches,\n icon: FindMatchesIcon,\n tooltipTitle: i18n.text('Find Matches')\n },\n headerProps: {\n mainTitle: i18n.text('Find Matches'),\n rightContent: (\n <AttributesFiltersButton\n filters={findMatchesFilters}\n onChange={setFindMatchesFilters}\n attributeTypes={findMatchesAttributeTypes}\n components={sourceSystemsComponents}\n />\n )\n },\n filters: findMatchesFilters,\n sorting: findMatchesSorting,\n onSorting: setFindMatchesSorting\n },\n {\n buttonProps: {\n id: ActivePanel.NotAMatch,\n icon: NotAMatchIcon,\n tooltipTitle: i18n.text('Not a Match')\n },\n headerProps: {\n mainTitle: i18n.text('Not a Match'),\n rightContent: (\n <AttributesFiltersButton\n filters={notMatchFilters}\n onChange={setNotMatchFilters}\n attributeTypes={attributeTypes}\n />\n )\n },\n filters: notMatchFilters,\n sorting: notMatchSorting,\n onSorting: setNotMatchSorting\n }\n ],\n [\n matchesFilters,\n matchesOptions,\n findMatchesFilters,\n notMatchFilters,\n potentialMatchesAttributeTypes,\n findMatchesAttributeTypes,\n matchesSorting,\n findMatchesSorting,\n notMatchSorting,\n attributeTypes\n ]\n );\n\n const headerProps = useMemo(\n () => ({...elements[active]?.headerProps, onClose: resetActive}),\n [resetActive, active, elements]\n );\n\n const {sorting, filters, options, onSorting} = elements[active] || {};\n\n useEffect(() => {\n if (!isLoaded) return;\n const showSidePanel = propOr(true, 'showSidePanel')(savedState);\n setActive(showSidePanel ? ActivePanel.PotentialMatches : null);\n }, [isLoaded]);\n\n useEffect(() => {\n if (!isLoaded) return;\n onUpdateSavedState({showSidePanel: active !== null});\n }, [active]); // eslint-disable-line\n\n return (\n <div className={styles.wrapper}>\n <SidePanel open={isOpen} width={DEFAULT_PANEL_WIDTH}>\n <RightSideHeaderContext.Provider value={headerProps}>\n <Content\n config={config}\n entity={entity}\n filters={filters}\n options={options}\n sorting={sorting}\n onSorting={onSorting}\n metadata={metadata}\n activeView={active}\n />\n </RightSideHeaderContext.Provider>\n </SidePanel>\n <SideButtonsPanel\n buttonsProps={pluck('buttonProps', elements)}\n onButtonClick={toggleActive}\n activeIndexId={active}\n />\n </div>\n );\n});\n\nRightSidePanel.displayName = 'RightSidePanel';\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(() => ({\n button: {\n minWidth: '90px',\n padding: '8px 12px'\n }\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {ModeSwitcher} from '@reltio/components';\n\nimport useStyles from './styles';\nimport ViewColumnRoundedIcon from '@material-ui/icons/ViewColumnRounded';\nimport TableRowsOutlinedIcon from '@material-ui/icons/TableChartOutlined';\nimport {useViewState, useViewStateActions} from '../../contexts/ViewStateContext';\nimport {ComparisonViewMode} from '../../constants/views';\nimport {MAX_PROFILES_TO_COMPARE} from '../../constants/views';\n\ntype Mode = {\n id: ComparisonViewMode;\n tooltipTitle: string;\n title: string;\n Icon: React.ElementType;\n disabled?: boolean;\n};\n\nconst MODES: Mode[] = [\n {\n id: ComparisonViewMode.COLUMNS,\n tooltipTitle: i18n.text('Column'),\n title: i18n.text('Column'),\n Icon: ViewColumnRoundedIcon\n },\n {\n id: ComparisonViewMode.TABLE,\n tooltipTitle: i18n.text('Table'),\n title: i18n.text('Table'),\n Icon: TableRowsOutlinedIcon\n }\n];\n\ntype Props = {\n className?: string;\n};\n\nconst ComparisonViewModeSwitcher = ({className}: Props) => {\n const styles = useStyles();\n const {comparisonViewMode, selectedItems} = useViewState();\n const {setComparisonViewMode} = useViewStateActions();\n const isTableOnly = selectedItems.length > MAX_PROFILES_TO_COMPARE;\n const getMode = (baseMode: Mode) =>\n baseMode.id === ComparisonViewMode.COLUMNS\n ? {\n ...baseMode,\n disabled: isTableOnly,\n tooltipTitle: isTableOnly\n ? i18n.text('Column view supports maximum ${maxProfiles} profiles', {\n maxProfiles: MAX_PROFILES_TO_COMPARE\n })\n : baseMode.tooltipTitle\n }\n : baseMode;\n return (\n <ModeSwitcher\n className={className}\n classes={{button: styles.button}}\n modes={MODES.map(getMode)}\n modeId={comparisonViewMode}\n onChange={setComparisonViewMode}\n />\n );\n};\n\nexport default ComparisonViewModeSwitcher;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n header: {\n padding: '0 8px 0 16px',\n backgroundColor: '#fff',\n '& $splitter': {\n height: '32px',\n marginRight: '16px',\n marginLeft: '4px',\n color: 'rgba(0, 0, 0, 0.12)'\n }\n },\n title: {\n fontSize: '16px',\n fontWeight: 400,\n lineHeight: '24px',\n letterSpacing: '0.15px',\n color: theme.palette.text.primary\n },\n clearAllButton: {\n marginLeft: '16px'\n },\n mergeButton: {\n marginRight: '12px'\n },\n total: {\n color: theme.palette.text.secondary\n },\n splitter: {},\n actionSplitter: {\n height: '32px',\n margin: '0 8px',\n color: 'rgba(0, 0, 0, 0.12)'\n }\n}));\n","import React, {useCallback, useMemo} from 'react';\nimport i18n from 'ui-i18n';\nimport {prop, map, not} from 'ramda';\nimport {useSelector} from 'react-redux';\nimport mdm from '@reltio/mdm-module';\nimport {BasicViewHeader, ColumnsSettings, DropDownMenuItem, SettingsMenu, Spacer} from '@reltio/components';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Button as Button} from '@material-ui/core';\nimport {\n getActionPermissionForMatches,\n Entity,\n Metadata,\n isDataTenantEntity,\n PotentialMatchesPerspectiveConfig\n} from '@reltio/mdm-sdk';\nimport {DCRReviewButton, MergeButton, NotMatchButton} from '../Actions';\nimport {ActionsPanel} from '../ActionsPanel/ActionsPanel';\nimport ComparisonViewModeSwitcher from '../ComparisonViewModeSwitcher/ComparisonViewModeSwitcher';\nimport {useViewState, useViewStateActions} from '../../contexts/ViewStateContext';\nimport {GroupedColumnData} from '../../types/potentialMatchesTypes';\nimport {useStyles} from './styles';\nimport {Divider as Divider} from '@material-ui/core';\n\ntype Props = {\n config: PotentialMatchesPerspectiveConfig;\n columnsData: GroupedColumnData[];\n selectedColumns: string[];\n onChangeColumns: (columns: string[]) => void;\n showNonOv: boolean;\n onChangeShowNonOv: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nconst getEntityObjects = map(prop('object'));\n\nexport const TableHeader = ({\n config,\n columnsData,\n selectedColumns,\n onChangeColumns,\n showNonOv,\n onChangeShowNonOv\n}: Props) => {\n const styles = useStyles();\n const entity: Entity = useSelector(mdm.selectors.getEntity);\n const metadata: Metadata = useSelector(mdm.selectors.getMetadata);\n\n const {selectedItems, limitSelection} = useViewState();\n const {setSelectedItems} = useViewStateActions();\n\n const entities = getEntityObjects(selectedItems);\n const {canMerge, canMark} = getActionPermissionForMatches(metadata, config, entity, selectedItems);\n const hasDTEntity = [...entities, entity].some(isDataTenantEntity);\n\n const actions = useMemo(\n () =>\n [\n {\n ActionButton: MergeButton,\n show: canMerge,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: NotMatchButton,\n show: canMark,\n props: {\n entity,\n entities\n }\n },\n {\n ActionButton: DCRReviewButton,\n show: !hasDTEntity,\n props: {\n entity,\n entities\n }\n }\n ].filter(prop('show')),\n [canMark, canMerge, entity, entities, hasDTEntity]\n );\n\n const hasSelectedItems = selectedItems.length !== 0;\n\n const handleClearSelection = () => {\n setSelectedItems([]);\n };\n\n const handleToggleShowOvValue = useCallback(() => {\n onChangeShowNonOv(not);\n }, [onChangeShowNonOv]);\n const settingItems = useMemo<Array<DropDownMenuItem>>(() => {\n return [\n {\n selected: !showNonOv,\n selectable: true,\n text: i18n.text('Show only OV'),\n onClick: handleToggleShowOvValue,\n id: 'showNonOv'\n }\n ];\n }, [handleToggleShowOvValue, showNonOv]);\n return (\n <BasicViewHeader title={''} classes={{root: styles.header}}>\n <Typography className={styles.title}>\n <span>{i18n.text('Match Review')}</span>\n {hasSelectedItems && (\n <span className={styles.total}>\n {' '}\n ({selectedItems.length}\n {limitSelection && '/' + limitSelection})\n </span>\n )}\n </Typography>\n {hasSelectedItems && (\n <Button onClick={handleClearSelection} className={styles.clearAllButton} color=\"primary\">\n {i18n.text('Clear All')}\n </Button>\n )}\n <Spacer />\n {hasSelectedItems && (\n <>\n <ActionsPanel actions={actions} numberOfButtons={2} />\n <Divider orientation={'vertical'} classes={{vertical: styles.actionSplitter}} />\n </>\n )}\n <SettingsMenu items={settingItems} menuId=\"matches-view-settings\" />\n <ColumnsSettings\n columnsData={columnsData}\n selectedColumns={selectedColumns}\n onChangeColumns={onChangeColumns}\n />\n <Divider orientation=\"vertical\" classes={{vertical: styles.splitter}} />\n <ComparisonViewModeSwitcher />\n </BasicViewHeader>\n );\n};\n","import React from 'react';\n\nexport const ExpandedContext = React.createContext<{\n expandedMap: {\n [attrTypeUri: string]: boolean;\n };\n onExpandType: (attrTypeUri: string) => void;\n }>({\n expandedMap: {},\n onExpandType: () => {}\n });\n\nExpandedContext.displayName = 'ExpandedContext';\n","import React, {useContext, forwardRef, ComponentType} from 'react';\nimport {AttributeType} from '@reltio/mdm-sdk';\n\nimport {ExpandedContext} from './ExpandedContext';\n\ntype Props = {\n attributeType: AttributeType;\n};\n\nconst withExpanded = <P extends Props>(Component: ComponentType<P>) => {\n const WithExpanded = forwardRef((componentProps: P, ref) => {\n const {attributeType} = componentProps;\n const {expandedMap} = useContext(ExpandedContext);\n const expanded = expandedMap[attributeType.uri];\n return <Component {...componentProps} expanded={expanded} ref={ref} />;\n });\n\n WithExpanded.displayName = 'WithExpanded';\n return WithExpanded;\n};\n\nexport default withExpanded;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const matchedAttributeBackground = 'rgba(140, 193, 82, 0.12)';\n\nexport const useStyles = makeStyles({\n complexAttributesHeadRenderer: {\n height: '100%',\n width: '100%',\n display: 'flex',\n alignItems: 'flex-start'\n },\n complexAttributesHeadLabel: {\n flex: 1,\n marginLeft: '5px'\n },\n arrowButton: {\n cursor: 'pointer',\n marginLeft: '-3px'\n },\n attribute: {\n whiteSpace: 'pre-wrap'\n },\n matchedAttribute: {\n fontWeight: 500,\n position: 'relative',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: '-1000px',\n top: 0,\n width: '5000px',\n height: '100%',\n background: matchedAttributeBackground,\n pointerEvents: 'none'\n }\n }\n});\n","import {makeStyles} from '@material-ui/core/styles';\nimport {matchedAttributeBackground} from '../styles';\n\nexport const useStyles = makeStyles({\n badge: {\n borderRadius: '50%',\n background: matchedAttributeBackground,\n fontWeight: 500,\n height: '20px',\n width: '20px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n alignSelf: 'flex-start',\n marginBottom: '2px',\n marginTop: '-2px'\n }\n});\n","import React, {useContext} from 'react';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport {areOneHierarchyUris, ComplexAttributeValue} from '@reltio/mdm-sdk';\nimport {HighlightedValuesContext} from '@reltio/components';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeValue: ComplexAttributeValue;\n};\n\nconst MatchedValuesCounter = ({attributeValue}: Props) => {\n const styles = useStyles();\n const {highlightedValuesUris = []} = useContext(HighlightedValuesContext);\n const count = highlightedValuesUris.filter((uri) => areOneHierarchyUris(uri, attributeValue.uri)).length;\n return count > 0 ? (\n <Tooltip title={count === 1 ? i18n.text('${count} match', {count}) : i18n.text('${count} matches', {count})}>\n <div className={styles.badge}>{count}</div>\n </Tooltip>\n ) : null;\n};\n\nexport default MatchedValuesCounter;\n","import React, {useMemo} from 'react';\nimport {HighlightedValuesContext, ReadOnlyAttributeValuesBlock} from '@reltio/components';\nimport {AttributeType, AttributeValue} from '@reltio/mdm-sdk';\nimport withExpanded from '../withExpanded';\nimport MatchedValuesCounter from './MatchedValuesCounter/MatchedValuesCounter';\n\nimport {useStyles} from './styles';\n\nconst ExpandableAttributeValuesBlock = withExpanded(\n ReadOnlyAttributeValuesBlock\n) as typeof ReadOnlyAttributeValuesBlock;\n\ntype Props = {\n value: {\n attributeType: AttributeType;\n attributeValues: AttributeValue[];\n matchedValuesUris?: string[];\n showNonOv?: boolean;\n };\n};\n\nexport const AttributesRenderer = ({value: {attributeType, attributeValues, matchedValuesUris, showNonOv}}: Props) => {\n const styles = useStyles();\n const highlightedValuesContextValue = useMemo(\n () => ({highlightedValuesUris: matchedValuesUris, highlightedClassName: styles.matchedAttribute}),\n [matchedValuesUris, styles.matchedAttribute]\n );\n return (\n <div className={styles.attribute}>\n <HighlightedValuesContext.Provider value={highlightedValuesContextValue}>\n <ExpandableAttributeValuesBlock\n values={attributeValues}\n attributeType={attributeType}\n showNonOv={showNonOv}\n RightSlot={MatchedValuesCounter}\n />\n </HighlightedValuesContext.Provider>\n </div>\n );\n};\n","import React from 'react';\n\nexport const ColumnDataContext = React.createContext<{\n setHoveredId?: React.Dispatch<React.SetStateAction<string>>;\n hoveredId?: string;\n setAnchor?: (anchor: HTMLElement) => void;\n }>({});\n\nColumnDataContext.displayName = 'ColumnDataContext';\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n menuButtonWrapper: {\n display: 'none',\n position: 'absolute',\n top: '-4px',\n right: '-14px'\n },\n headCell: {\n display: 'flex',\n position: 'relative',\n 'th:hover &': {\n '& $menuButtonWrapper': {\n display: 'block'\n }\n }\n },\n active: {\n display: 'block'\n }\n});\n","import React, {useContext, useRef} from 'react';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {SmallIconButton} from '@reltio/components';\nimport {ColumnDataContext} from '../../../../contexts/ColumnsDataContext';\nimport {useStyles} from './styles';\nimport classnames from 'classnames';\n\ntype Props = {\n label?: string;\n id: string;\n hideable?: boolean;\n};\n\nexport const HeadCellRenderer = ({label, id, hideable}: Props) => {\n const styles = useStyles();\n const {setAnchor, setHoveredId, hoveredId} = useContext(ColumnDataContext);\n const ref = useRef<HTMLDivElement>();\n const openConfigColumnPopup = () => {\n setAnchor(ref.current);\n setHoveredId(id);\n };\n return (\n <div className={styles.headCell}>\n {label}\n {hideable !== false && (\n <div className={classnames(styles.menuButtonWrapper, {[styles.active]: hoveredId === id})} ref={ref}>\n <SmallIconButton icon={MoreVertIcon} onClick={openConfigColumnPopup} size={'S'} />\n </div>\n )}\n </div>\n );\n};\n","import React, {useCallback, useContext} from 'react';\nimport {ArrowExpandButton} from '@reltio/components';\nimport {AttributeType} from '@reltio/mdm-sdk';\nimport {ExpandedContext} from '../ExpandedContext';\nimport {HeadCellRenderer} from './HeadCellRenderer';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n label: string;\n attributeType: AttributeType;\n id: string;\n};\n\nexport const ComplexAttributesHeadRenderer = ({label, attributeType, id}: Props) => {\n const styles = useStyles();\n const {expandedMap, onExpandType} = useContext(ExpandedContext);\n const onExpandClick = useCallback(() => onExpandType(attributeType.uri), [onExpandType, attributeType]);\n const expanded = expandedMap[attributeType.uri];\n return (\n <div className={styles.complexAttributesHeadRenderer}>\n <ArrowExpandButton expanded={expanded} onClick={onExpandClick} className={styles.arrowButton} />\n <div className={styles.complexAttributesHeadLabel}>\n <HeadCellRenderer label={label} id={id} />\n </div>\n </div>\n );\n};\n","import React from 'react';\n\nexport const HoveredEntityContext = React.createContext<{\n hoveredEntity: string;\n resetHoveredEntity: () => void;\n }>({\n hoveredEntity: null,\n resetHoveredEntity: () => {}\n });\n\nHoveredEntityContext.displayName = 'HoveredEntityContext';\n","import React, {memo} from 'react';\nimport {prop} from 'ramda';\n\nimport {Entity, isDataTenantEntity, NOT_MATCH} from '@reltio/mdm-sdk';\nimport {\n CreateRelationButton,\n DCRReviewButton,\n MergeButton,\n NotMatchButton,\n ReinstateMatchButton,\n SetAMatchButton\n} from '../Actions';\nimport {ActionsPanel} from '../ActionsPanel/ActionsPanel';\n\ntype Props = {\n value: {\n mainEntity: Entity;\n entity: Entity;\n matchRules: string[];\n permission: {\n canMerge?: boolean;\n canAddRelation?: boolean;\n canMark?: boolean;\n };\n };\n onActionsMenuClose?: () => void;\n onActionsMenuOpen?: () => void;\n openAddRelationDialog?: (param: {mainEntity?: Entity; currentEntity?: Entity; matchRules?: string[]}) => void;\n classes?: {\n actionButton?: string;\n moreOptions?: string;\n };\n mode?: 'normal' | 'hover';\n};\n\nconst MatchesControls = ({\n value: {mainEntity, entity, matchRules, permission},\n onActionsMenuClose,\n onActionsMenuOpen,\n openAddRelationDialog,\n classes = {},\n mode = 'hover'\n}: Props) => {\n const {canMerge, canAddRelation, canMark} = permission;\n const hasDTEntity = [mainEntity, entity].some(isDataTenantEntity);\n\n const isEntityFindMatch = !matchRules;\n const isEntityNotMatch = !isEntityFindMatch && matchRules.includes(NOT_MATCH);\n const isEntityPotentialMatch = !isEntityNotMatch && !isEntityFindMatch;\n\n const actions = [\n {\n ActionButton: MergeButton,\n show: canMerge && (isEntityNotMatch || isEntityPotentialMatch || isEntityFindMatch),\n props: {\n entity: mainEntity,\n entities: [entity]\n }\n },\n {\n ActionButton: NotMatchButton,\n show: canMark && (isEntityPotentialMatch || isEntityFindMatch),\n props: {\n entity: mainEntity,\n entities: [entity]\n }\n },\n {\n ActionButton: ReinstateMatchButton,\n show: canMark && isEntityNotMatch,\n props: {\n entity: mainEntity,\n entities: [entity]\n }\n },\n {\n ActionButton: DCRReviewButton,\n show: !hasDTEntity && (isEntityNotMatch || isEntityPotentialMatch),\n props: {\n entity: mainEntity,\n entities: [entity]\n }\n },\n {\n ActionButton: SetAMatchButton,\n show: canMark && isEntityFindMatch && !isDataTenantEntity(entity),\n props: {\n entity: mainEntity,\n entities: [entity]\n }\n },\n {\n ActionButton: CreateRelationButton,\n show: canAddRelation && !hasDTEntity,\n props: {\n mainEntity,\n currentEntity: entity,\n matchRules,\n onClick: openAddRelationDialog\n }\n }\n ].filter(prop('show'));\n\n return (\n <ActionsPanel\n actions={actions}\n numberOfButtons={2}\n mode={mode}\n actionButtonSize={mode === 'hover' ? 'XS' : undefined}\n classes={{\n actionButton: classes.actionButton,\n moreOptions: classes.moreOptions\n }}\n onActionsMenuClose={onActionsMenuClose}\n onActionsMenuOpen={onActionsMenuOpen}\n />\n );\n};\n\nexport default memo(MatchesControls);\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n color?: string;\n};\n\nconst styles = makeStyles({\n container: {\n position: 'relative',\n width: '100%',\n height: '140px',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n overflow: 'hidden'\n },\n hovered: {\n backgroundColor: 'rgb(245, 245, 245)'\n },\n colored: {\n '&:before': {\n content: '\"\"',\n position: 'absolute' as const,\n left: 0,\n top: 0,\n width: '100%',\n height: '4px',\n background: ({color}: StylesProps) => color\n }\n },\n removeButton: {\n position: 'absolute',\n zIndex: 1,\n margin: '4px'\n },\n matchControlsContainer: {\n display: 'flex',\n alignItems: 'center',\n height: '45px',\n margin: '4px 8px'\n },\n rightButton: {\n display: 'flex',\n alignItems: 'center'\n },\n moreOptions: {\n marginLeft: '8px'\n }\n});\n\nexport default styles;\n","export const POTENTIAL_MATCH_REVIEW = 'potentialMatchReview';\n","import {useCallback, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {allPass, includes, map, mergeLeft, propEq, propSatisfies, when} from 'ramda';\nimport mdmModule from '@reltio/mdm-module';\nimport {Entity, getEntityUriFromMatchObject, getTasksForEntity, Match, WorkflowTaskData} from '@reltio/mdm-sdk';\nimport {useSafePromise} from '@reltio/components';\n\nimport {POTENTIAL_MATCH_REVIEW} from '../constants/workflow';\nimport {useViewStateActions} from '../contexts/ViewStateContext';\n\nconst isPotentialMatchesTask = (task) => task.processType === POTENTIAL_MATCH_REVIEW;\n\ntype Props = {\n match: Match;\n entity: Entity;\n};\n\nexport const useWorkflowTasks = ({entity, match}: Props) => {\n const workflowPath: string = useSelector(mdmModule.selectors.getWorkflowPath);\n const environment: string = useSelector(mdmModule.selectors.getWorkflowEnvironmentUrl);\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const safePromise = useSafePromise();\n const {uri: entityUri} = entity;\n const matchUri: string = getEntityUriFromMatchObject(match);\n const [requestIsInProgress, setRequestIsInProgress] = useState(false);\n const [tasks, setTasks] = useState<WorkflowTaskData[]>([]);\n\n const loadTasks = useCallback(\n () => {\n if (workflowPath && matchUri !== entityUri) {\n setRequestIsInProgress(true);\n safePromise(\n getTasksForEntity({\n entityUri,\n workflowPath,\n environment,\n tenant\n })\n )\n .then((result) => {\n const {data} = result;\n const hasMatchEntityUri = propSatisfies(includes(matchUri), 'objectURIs');\n const isTaskBelongsToMatch = allPass([isPotentialMatchesTask, hasMatchEntityUri]);\n const tasks = data.filter(isTaskBelongsToMatch);\n setTasks(tasks);\n })\n .finally(() => setRequestIsInProgress(false));\n }\n },\n [entityUri, environment, tenant, workflowPath, matchUri] // eslint-disable-line\n );\n\n const updateTaskState = useCallback((taskId: WorkflowTaskData['taskId'], payload: Partial<WorkflowTaskData>) => {\n setTasks(map(when(propEq('taskId', taskId), mergeLeft(payload))));\n }, []);\n\n const {deselectByEntities} = useViewStateActions();\n const onActionSuccess = useCallback(() => {\n deselectByEntities([match.object]);\n }, [deselectByEntities, match.object]);\n\n return {\n loading: requestIsInProgress,\n tasks,\n loadTasks,\n updateTaskState,\n total: tasks.length,\n onActionSuccess\n };\n};\n","import React from 'react';\n\nexport const WorkflowTasksAvailabilityContext = React.createContext<(entityUri: string, value: boolean) => void>(\n () => {}\n);\n\nWorkflowTasksAvailabilityContext.displayName = 'WorkflowTasksAvailabilityContext';\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n container: {\n position: 'relative',\n minHeight: '86px',\n display: 'flex',\n overflow: 'hidden',\n margin: '-16px'\n },\n assigneeContainer: {\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n padding: '16px 14px 16px 48px'\n }\n});\n","import React, {useContext, useEffect} from 'react';\nimport {pick} from 'ramda';\nimport {\n AssigneeSelector,\n PotentialMatchReviewCard,\n TaskActions,\n WorkflowComments,\n WorkflowTasksContext\n} from '@reltio/components';\nimport {Entity, getEntityUriFromMatchObject, Match, WorkflowTaskData} from '@reltio/mdm-sdk';\n\nimport {useWorkflowTasks} from '../../hooks/useWorkflowTasks';\nimport {WorkflowTasksAvailabilityContext} from '../ComparisonTable/WorkflowTasksAvailabilityContext';\n\nimport {useStyles} from './styles';\n\nconst getPropsFromTasks = (task: WorkflowTaskData) => ({\n date: task.dueDate,\n type: task.processDefinitionDisplayName,\n createdBy: task.createdBy,\n step: task.displayName\n});\nconst getCommentsInfoFromTasks = pick(['processInstanceComments', 'taskId']);\n\ntype Props = {\n match: Match;\n entity: Entity;\n};\n\nexport const WorkflowCard = ({entity, match}: Props) => {\n const styles = useStyles();\n const workflowTasks = useWorkflowTasks({entity, match});\n const {tasks, loadTasks} = workflowTasks;\n const setWorkflowTaskAvailability = useContext(WorkflowTasksAvailabilityContext);\n useEffect(() => {\n loadTasks();\n }, [loadTasks]);\n const task = tasks[0];\n const matchEntityUri = getEntityUriFromMatchObject(match);\n useEffect(() => {\n setWorkflowTaskAvailability?.(matchEntityUri, !!task);\n }, [setWorkflowTaskAvailability, matchEntityUri, task]);\n const Actions = task && (\n <TaskActions\n taskId={task.taskId}\n possibleActions={task.possibleActions}\n assignee={task.assignee}\n isTaskOpen={task.isOpen}\n />\n );\n return task ? (\n <WorkflowTasksContext.Provider value={workflowTasks}>\n <div className={styles.container}>\n <PotentialMatchReviewCard {...getPropsFromTasks(task)} Actions={Actions}>\n <div className={styles.assigneeContainer}>\n <AssigneeSelector assignee={task.assignee} taskId={task.taskId} isTaskOpen={task.isOpen} />\n </div>\n <WorkflowComments {...getCommentsInfoFromTasks(task)} />\n </PotentialMatchReviewCard>\n </div>\n </WorkflowTasksContext.Provider>\n ) : null;\n};\n","import i18n from 'ui-i18n';\nimport {DataTypes} from '@reltio/mdm-sdk';\nimport {ComparisonViewMode} from './views';\n\nexport const DEFAULT_ROWS = [\n {\n id: 'profile',\n label: i18n.text('Profile name'),\n dataTypeDefinition: {\n type: DataTypes.TYPE_STRING\n },\n hideable: false,\n draggable: false,\n initialWidth: 280,\n autoResize: false,\n modes: [ComparisonViewMode.COLUMNS, ComparisonViewMode.TABLE]\n },\n {\n id: 'matchRules',\n label: i18n.text('Match method'),\n dataTypeDefinition: {\n type: DataTypes.TYPE_SELECT\n },\n initialWidth: 130,\n minWidth: 130,\n autoResize: false,\n modes: [ComparisonViewMode.COLUMNS, ComparisonViewMode.TABLE]\n },\n {\n id: 'workflowCard',\n label: i18n.text('Workflow'),\n modes: [ComparisonViewMode.COLUMNS]\n },\n {\n id: 'entityId',\n label: i18n.text('Entity ID'),\n dataTypeDefinition: {\n type: DataTypes.TYPE_ENTITY_ID\n },\n initialWidth: 100,\n autoResize: false,\n modes: [ComparisonViewMode.COLUMNS, ComparisonViewMode.TABLE]\n },\n {\n id: 'score',\n label: i18n.text('Match score'),\n dataTypeDefinition: {\n type: DataTypes.TYPE_INT\n },\n initialWidth: 100,\n modes: [ComparisonViewMode.TABLE, ComparisonViewMode.COLUMNS]\n },\n {\n id: 'sources',\n label: i18n.text('Sources'),\n modes: [ComparisonViewMode.COLUMNS, ComparisonViewMode.TABLE]\n },\n {\n id: 'crosswalks',\n label: i18n.text('Crosswalks'),\n modes: [ComparisonViewMode.COLUMNS]\n }\n];\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n itemContainer: {\n width: '18px',\n height: '18px'\n },\n item: {\n width: '18px',\n height: '18px',\n background: 'none',\n fontSize: '1rem'\n }\n});\n","import React, {memo} from 'react';\nimport classnames from 'classnames';\nimport {useSelector} from 'react-redux';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport {SourceIcon, useCrosswalkColor} from '@reltio/components';\nimport {Crosswalk, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport mdm from '@reltio/mdm-module';\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: Crosswalk;\n className?: string;\n showTooltip?: boolean;\n};\n\nconst ColoredSourceIcon = ({className, crosswalk, showTooltip = true}: Props) => {\n const styles = useStyles();\n const color = useCrosswalkColor(crosswalk);\n const metadata = useSelector(mdm.selectors.getMetadata) || {};\n\n const content = (\n <div className={classnames(styles.itemContainer, className)} style={{background: color}}>\n <SourceIcon sourceType={crosswalk.type} className={styles.item} />\n </div>\n );\n return showTooltip ? <Tooltip title={getSourceSystemLabel(metadata, crosswalk.type)}>{content}</Tooltip> : content;\n};\n\nexport default memo(ColoredSourceIcon);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n crosswalk: {\n marginBottom: '8px'\n },\n crosswalkIcon: {\n marginRight: '5px'\n },\n labelContainer: {\n display: 'flex',\n alignItems: 'center',\n width: '100%'\n },\n spacer: {\n flex: 1\n }\n});\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport mdm from '@reltio/mdm-module';\nimport {Crosswalk, getSourceSystemLabel, NestedAttributeValue} from '@reltio/mdm-sdk';\n\nimport ColoredSourceIcon from '../../../ColoredSourceIcon/ColoredSourceIcon';\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeValue: NestedAttributeValue & {\n value: NestedAttributeValue['value'] & {\n crosswalk: Crosswalk;\n };\n };\n};\n\nconst LabelRenderer = ({attributeValue}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdm.selectors.getMetadata);\n const crosswalk = attributeValue.value.crosswalk;\n return (\n <div className={styles.labelContainer}>\n <ColoredSourceIcon className={styles.crosswalkIcon} crosswalk={crosswalk} showTooltip={false} />\n <div>{getSourceSystemLabel(metadata, crosswalk.type)}</div>\n <div className={styles.spacer} />\n <div>{crosswalk.value}</div>\n </div>\n );\n};\n\nexport default LabelRenderer;\n","import React, {useMemo} from 'react';\nimport {ReadOnlyAttributeValuesBlock} from '@reltio/components';\nimport {\n AttributeType,\n Crosswalk,\n CrosswalksAttrTypes,\n getSourceSystemLabel,\n Metadata,\n NestedAttributeValue\n} from '@reltio/mdm-sdk';\nimport mdm from '@reltio/mdm-module';\n\nimport withExpanded from '../../withExpanded';\nimport LabelRenderer from './LabelRenderer';\nimport {useStyles} from './styles';\nimport {useSelector} from 'react-redux';\n\nexport const ExpandableAttributeValuesBlock = withExpanded(\n ReadOnlyAttributeValuesBlock\n) as typeof ReadOnlyAttributeValuesBlock;\n\ntype Props = {\n value: {\n crosswalks: Crosswalk[];\n attributeType: AttributeType;\n };\n};\n\nconst getFakeAttributeValueForCrosswalk = (crosswalk: Crosswalk, attributeType: AttributeType, metadata: Metadata) => {\n return attributeType.attributes.reduce(\n (nestedAttributeValue: NestedAttributeValue, subAttributeType) => {\n if (subAttributeType.uri === CrosswalksAttrTypes.sourceSystems.uri) {\n nestedAttributeValue.value[subAttributeType.uri] = getSourceSystemLabel(metadata, crosswalk.type);\n } else if (crosswalk[subAttributeType.uri]) {\n nestedAttributeValue.value[subAttributeType.uri] = crosswalk[subAttributeType.uri];\n }\n return nestedAttributeValue;\n },\n {value: {crosswalk}, uri: crosswalk.uri} as NestedAttributeValue\n );\n};\n\nconst CrosswalksRenderer = ({value: {crosswalks, attributeType}}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdm.selectors.getMetadata);\n const attributeValues = useMemo(\n () => crosswalks?.map((crosswalk) => getFakeAttributeValueForCrosswalk(crosswalk, attributeType, metadata)),\n [metadata, crosswalks, attributeType]\n );\n return attributeValues ? (\n <ExpandableAttributeValuesBlock\n values={attributeValues}\n attributeType={attributeType}\n LabelRenderer={LabelRenderer}\n valueContainerClassName={styles.crosswalk}\n />\n ) : null;\n};\n\nexport default CrosswalksRenderer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n wrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n marginBottom: '-8px'\n },\n crosswalkIcon: {\n marginRight: '5px',\n marginBottom: '8px'\n }\n});\n","import React from 'react';\nimport {Entity, isDataTenantEntity as checkIsDataTenantEntity, isEmptyValue} from '@reltio/mdm-sdk';\nimport {DataTenantBadge} from '@reltio/components';\nimport ColoredSourceIcon from '../../ColoredSourceIcon/ColoredSourceIcon';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: Entity;\n};\n\nconst SourcesRenderer = ({value}: Props) => {\n const {crosswalks, dataTenant} = value;\n const styles = useStyles();\n const isDataTenantEntity = checkIsDataTenantEntity(value);\n \n return isDataTenantEntity || !isEmptyValue(crosswalks) ? (\n <div className={styles.wrapper}>\n {crosswalks.map((crosswalk) => (\n <ColoredSourceIcon key={crosswalk.uri} className={styles.crosswalkIcon} crosswalk={crosswalk} />\n ))}\n {isDataTenantEntity && <DataTenantBadge dataTenantId={dataTenant} />}\n </div>\n ) : null;\n};\n\nexport default SourcesRenderer;\n","import {\n always,\n chain,\n cond,\n filter,\n identity,\n last,\n map,\n path,\n pathOr,\n pipe,\n prop,\n split,\n values,\n when,\n pick\n} from 'ramda';\n\nimport {\n AttributeType,\n CrosswalksAttrTypes,\n EntitiesMap,\n Entity,\n findAttributeTypeByUri,\n getActionPermissionForMatch,\n getAttributeSource,\n getEntityId,\n isAttributeSearchUri,\n isComplexAttribute,\n isOv,\n MatchedValues,\n Match,\n Metadata,\n PotentialMatchesPerspectiveConfig,\n searchUriToAttrUri\n} from '@reltio/mdm-sdk';\nimport {AttributesRenderer} from '../cell-renderers/AttributesRenderer';\nimport {HeadCellRenderer} from '../cell-renderers/HeadCellRenderer';\nimport {ComplexAttributesHeadRenderer} from '../cell-renderers/ComplexAttributesHeadRenderer';\nimport EntityCard from '../cell-renderers/EntityCard/EntityCard';\nimport MatchMethod from '../cell-renderers/MatchMethod/MatchMethod';\nimport WorkflowCardRenderer from '../cell-renderers/WorkflowCardRenderer/WorkflowCardRenderer';\nimport {DEFAULT_ROWS} from '../../../constants/defaultRows';\nimport CrosswalksRenderer from '../cell-renderers/CrosswalksRenderer/CrosswalksRenderer';\nimport {ComparisonViewMode} from '../../../constants/views';\nimport SourcesRenderer from '../../cell-renderers/SourcesRenderer/SourcesRenderer';\n\nexport type RowData = {\n id: string;\n label: string;\n cellRenderer?: (props: unknown) => JSX.Element;\n headCellRenderer?: (props: unknown) => JSX.Element;\n rowClassName?: string;\n attributeType?: AttributeType;\n hideable?: boolean;\n};\n\nconst additionalPropsForDefaultRows = {\n profile: {\n cellRenderer: EntityCard,\n headCellRenderer: HeadCellRenderer,\n label: ''\n },\n matchRules: {\n cellRenderer: MatchMethod,\n headCellRenderer: HeadCellRenderer\n },\n workflowCard: {\n cellRenderer: WorkflowCardRenderer,\n headCellRenderer: HeadCellRenderer\n },\n sources: {\n cellRenderer: SourcesRenderer,\n headCellRenderer: HeadCellRenderer\n },\n entityId: {\n headCellRenderer: HeadCellRenderer\n },\n crosswalks: {\n cellRenderer: CrosswalksRenderer,\n headCellRenderer: ComplexAttributesHeadRenderer,\n attributeType: {\n uri: 'crosswalks',\n name: 'crosswalks',\n type: 'Nested',\n attributes: Object.values(CrosswalksAttrTypes)\n }\n },\n score: {\n headCellRenderer: HeadCellRenderer\n }\n};\n\nconst defaultRows: RowData[] = DEFAULT_ROWS.filter(({modes}) => modes.includes(ComparisonViewMode.COLUMNS)).map(\n (row) => ({\n ...pick(['id', 'label', 'hideable'], row),\n ...additionalPropsForDefaultRows[row.id]\n })\n);\n\nconst getAttrTypeNameByUri = pipe(split('/'), last);\n\nexport const getTableRowsData = (metadata: Metadata, entity: Entity, selectedColumns: string[]): RowData[] => {\n return selectedColumns\n .map((searchUri) => {\n const defaultRow = defaultRows.find(({id}) => id === searchUri);\n\n if (defaultRow) {\n return defaultRow;\n }\n\n if (!isAttributeSearchUri(searchUri)) {\n return null;\n }\n\n const attrTypeUri = searchUriToAttrUri(searchUri, entity.type);\n const attributeType = findAttributeTypeByUri(metadata, attrTypeUri, entity.type);\n const collectionName = getAttributeSource(attrTypeUri);\n\n if (attributeType) {\n return {\n id: `${collectionName}.${getAttrTypeNameByUri(attrTypeUri)}`,\n label: attributeType.label,\n attributeType,\n cellRenderer: AttributesRenderer,\n headCellRenderer: isComplexAttribute(attributeType)\n ? ComplexAttributesHeadRenderer\n : HeadCellRenderer\n };\n }\n\n return null;\n })\n .filter(identity);\n};\n\nexport const getMatchedValuesUris = (matchedValues: MatchedValues): string[] => {\n return when(\n identity,\n pipe(\n values,\n chain(\n chain(\n cond([\n [path(['value', 'uri']), path(['value', 'uri'])],\n [path(['value', 'values']), pipe(path(['value', 'values']), map(prop('uri')))]\n ])\n )\n ),\n filter(identity)\n )\n )(matchedValues);\n};\n\nconst getColumnDataForRowData = (\n metadata: Metadata,\n match: Match,\n entitiesMap: EntitiesMap,\n entity: Entity,\n rowData: RowData,\n config: PotentialMatchesPerspectiveConfig,\n onRemoveItem: (match: Match) => void,\n showNonOv: boolean\n) => {\n const {object, isMainEntity, matchRules, matchedValues, matchScore} = match;\n switch (rowData.id) {\n case 'entityId':\n return getEntityId(object);\n case 'profile':\n return {\n mainEntity: entity,\n isSelectedEntity: !isMainEntity,\n onRemove: () => onRemoveItem(match),\n entity: object,\n matchRules: matchRules,\n permission: getActionPermissionForMatch(metadata, config, object, entity, matchRules),\n config: config\n };\n case 'matchRules':\n return {\n metadata,\n entity,\n match,\n entitiesMap,\n show: !isMainEntity && !!matchRules\n };\n case 'sources':\n return object;\n case 'crosswalks':\n return {\n crosswalks: object.crosswalks,\n attributeType: rowData.attributeType\n };\n case 'workflowCard':\n return {\n entity,\n match\n };\n case 'score':\n return matchScore || 0;\n }\n if (isAttributeSearchUri(rowData.id)) {\n const attrSource = getAttributeSource(rowData.attributeType);\n const getAttributeValues = pipe(\n pathOr([], [attrSource, rowData.attributeType.name]),\n when(always(!showNonOv), filter(isOv))\n );\n const attributeValues = getAttributeValues(object);\n return {\n attributeType: rowData.attributeType,\n attributeValues,\n matchedValuesUris: getMatchedValuesUris(matchedValues),\n showNonOv\n };\n }\n};\n\ntype TableColumnsData = {\n id: string;\n isDraggable: boolean;\n [key: string]: unknown;\n};\n\nexport const getTableColumnsData = (\n metadata: Metadata,\n rowsData: RowData[],\n entity: Entity,\n matches: Match[],\n entitiesMap?: EntitiesMap,\n config?: PotentialMatchesPerspectiveConfig,\n onRemoveItem?: (match: Match) => void,\n showNonOnly = false\n) => {\n return [{object: entity, isMainEntity: true} as Match].concat(matches).map((match) => {\n return rowsData.reduce((column, rowData) => {\n column[rowData.id] = getColumnDataForRowData(\n metadata,\n match,\n entitiesMap,\n entity,\n rowData,\n config,\n onRemoveItem,\n showNonOnly\n );\n return {...column, isDraggable: !match.isMainEntity, id: match.object.uri};\n }, {} as TableColumnsData);\n });\n};\n","import React, {useContext, useMemo} from 'react';\nimport classnames from 'classnames';\nimport {ProfileCard, SmallIconButton} from '@reltio/components';\nimport {Entity, getEntityColor, getEntityId, PotentialMatchesPerspectiveConfig} from '@reltio/mdm-sdk';\nimport CloseIcon from '@material-ui/icons/Close';\nimport {HoveredEntityContext} from '../../HoveredEntityContext';\nimport {useAddRelationDialog} from '../../../../hooks/useAddRelationDialog';\nimport MatchControls from '../../../MatchControls/MatchControls';\n\nimport useStyles from './styles';\n\ntype Props = {\n value: {\n onRemove?: () => void;\n isSelectedEntity?: boolean;\n mainEntity: Entity;\n entity: Entity;\n matchRules: string[];\n config: PotentialMatchesPerspectiveConfig;\n permission: {\n canMerge?: boolean;\n canAddRelation?: boolean;\n canMark?: boolean;\n };\n };\n};\n\nconst EntityCard = ({value: {entity, config, isSelectedEntity, onRemove, ...rest}}: Props) => {\n const color = getEntityColor(entity.uri);\n const styles = useStyles({color});\n const {hoveredEntity, resetHoveredEntity} = useContext(HoveredEntityContext);\n const isHovered = getEntityId(entity) === hoveredEntity;\n const {showDialog, openAddRelationDialog, AddRelationDialogRenderer} = useAddRelationDialog(config);\n\n const controlProps = useMemo(\n () => ({\n ...rest,\n entity\n }),\n [rest, entity]\n );\n\n return (\n <>\n <div\n className={classnames(styles.container, {\n [styles.hovered]: isSelectedEntity && isHovered,\n [styles.colored]: isSelectedEntity\n })}\n >\n {isSelectedEntity && (\n <SmallIconButton className={styles.removeButton} icon={CloseIcon} onClick={onRemove} size=\"XXS\" />\n )}\n <ProfileCard entity={entity} />\n {isSelectedEntity && (\n <div className={styles.matchControlsContainer}>\n <MatchControls\n mode=\"normal\"\n value={controlProps}\n onActionsMenuClose={resetHoveredEntity}\n openAddRelationDialog={openAddRelationDialog}\n classes={{\n actionButton: styles.rightButton,\n moreOptions: styles.moreOptions\n }}\n />\n </div>\n )}\n </div>\n {showDialog && <AddRelationDialogRenderer />}\n </>\n );\n};\n\nexport default EntityCard;\n","import React from 'react';\nimport {MatchRulesBlock} from '@reltio/components';\n\ntype Props = {\n value: React.ComponentProps<typeof MatchRulesBlock> & {show?: boolean};\n};\nconst MatchMethod = ({value: {metadata, entity, match, entitiesMap, show}}: Props) => {\n if (!show) {\n return null;\n }\n return <MatchRulesBlock entity={entity} match={match} entitiesMap={entitiesMap} metadata={metadata} />;\n};\n\nexport default MatchMethod;\n","import React from 'react';\n\nimport {Entity, Match} from '@reltio/mdm-sdk';\n\nimport WorkflowCard from '../../../WorkflowCard';\n\ntype Props = {\n value: {\n match: Match;\n entity: Entity;\n };\n};\n\nconst WorkflowCardRenderer = ({value: {entity, match}}: Props) => {\n return <WorkflowCard entity={entity} match={match} />;\n};\n\nexport default WorkflowCardRenderer;\n","import React from 'react';\nimport {Match} from '@reltio/mdm-sdk';\n\nexport const ColumnHandlerContext = React.createContext<(match: Match) => void>(() => {});\n\nColumnHandlerContext.displayName = 'ColumnHandlerContext';\n","import {filter, join, map, pipe, slice, split, uniq, when} from 'ramda';\n\nimport {isAttributeSearchUri, searchUriToAttrUri} from '@reltio/mdm-sdk';\n\nconst getFirstLevelParentAttribute = pipe(split('.'), slice(0, 2), join('.'));\nexport const replaceSubAttributesWithParent = pipe(map(when(isAttributeSearchUri, getFirstLevelParentAttribute)), uniq);\n\nexport const getAttributesTypeUris = (entityTypeUri: string, attributes: string[]): string[] =>\n pipe(\n filter(isAttributeSearchUri),\n map((searchUri: string) => searchUriToAttrUri(searchUri, entityTypeUri))\n )(attributes);\n","import React from 'react';\nimport {Popover as Popover} from '@material-ui/core';\nimport {List as List} from '@material-ui/core';\nimport {ListItem as ListItem} from '@material-ui/core';\nimport {ListItemText as ListItemText} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nexport enum Action {\n INSERT_BELOW = 'below',\n INSERT_ABOVE = 'above',\n HIDE = 'hide'\n}\n\nconst TEXT = {\n [Action.INSERT_BELOW]: i18n.text('Insert row below'),\n [Action.INSERT_ABOVE]: i18n.text('Insert row above'),\n [Action.HIDE]: i18n.text('Hide row')\n};\n\nconst renderListItem = (action: Action, handler: () => void, index: number) => (\n <ListItem button component={'div'} key={index} onClick={handler}>\n <ListItemText primary={TEXT[action]} primaryTypographyProps={{variant: 'body2'}} />\n </ListItem>\n);\n\ntype Props = {\n open?: boolean;\n anchorEl: HTMLElement;\n onClick: (action: Action) => void;\n onClose: () => void;\n actions: Action[];\n};\n\nconst ConfigRowPopup = ({open, anchorEl, onClick, onClose, actions}: Props) => {\n const getClickHandler = (action) => () => {\n onClick(action);\n };\n\n return (\n <Popover open={open} anchorEl={anchorEl} onClose={onClose}>\n <List component=\"div\">\n {actions.map((action, index) => renderListItem(action, getClickHandler(action), index))}\n </List>\n </Popover>\n );\n};\n\nexport default ConfigRowPopup;\n","import {GroupedColumns, GroupedColumnData} from '../../../types/potentialMatchesTypes';\n\nconst deepFilter = (nodes: GroupedColumnData[], filter: (col: GroupedColumns) => boolean) =>\n nodes.filter(filter).map((node: GroupedColumns) =>\n node.columns\n ? {\n ...node,\n columns: deepFilter(node.columns, filter)\n }\n : node\n );\n\nexport const getAdditionalRows = (\n groupColumnsData: GroupedColumnData[],\n headColumns: string[] = []\n): GroupedColumnData[] =>\n deepFilter(groupColumnsData, (column: GroupedColumns) => !headColumns.some((elemId) => column.id === elemId));\n","import React, {useEffect, useMemo, useState, memo} from 'react';\nimport ConfigRowPopup, {Action} from './ConfigRowPopup';\nimport {ColumnsSettingsPopup} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {getAdditionalRows} from './helpers';\nimport {GroupedColumnData} from '../../../types/potentialMatchesTypes';\n\ntype Props = {\n anchorEl: HTMLElement;\n onClose: () => void;\n actions: Action[];\n id: string;\n selectedAttributes?: string[];\n setSelectedAttributes?: (cols: string[]) => void;\n groupColumnsData: GroupedColumnData[];\n};\n\nconst AddRowPopups = ({\n anchorEl,\n onClose,\n actions,\n id,\n selectedAttributes,\n setSelectedAttributes,\n groupColumnsData\n}: Props) => {\n const groupedItems = useMemo(() => getAdditionalRows(groupColumnsData, selectedAttributes), [\n groupColumnsData,\n selectedAttributes\n ]);\n const [action, setAction] = useState<Action>();\n const [isOpenConfigPopup, setIsOpenConfigPopup] = useState(false);\n useEffect(() => {\n if (anchorEl) {\n setIsOpenConfigPopup(true);\n }\n }, [anchorEl]);\n const onClosePopup = () => {\n setIsOpenConfigPopup(false);\n if (!action) onClose();\n };\n const onChooseAction = (action: Action) => {\n if (action === Action.HIDE) {\n const newAttributes = [...selectedAttributes];\n const index = selectedAttributes.indexOf(id);\n if (index > -1) {\n newAttributes.splice(index, 1);\n setSelectedAttributes(newAttributes);\n closeAddRowPopup();\n }\n return;\n }\n setAction(action);\n setIsOpenConfigPopup(false);\n };\n\n const closeAddRowPopup = () => {\n setAction(null);\n setIsOpenConfigPopup(false);\n onClose();\n };\n const addRowHandler = ({id: newId}: {id: string}) => {\n const newAttributes = [...selectedAttributes];\n const index = selectedAttributes.indexOf(id);\n const newIndex = action === Action.INSERT_ABOVE ? index : index + 1;\n newAttributes.splice(newIndex, 0, newId);\n setSelectedAttributes(newAttributes);\n closeAddRowPopup();\n };\n\n return (\n <>\n <ConfigRowPopup\n open={isOpenConfigPopup}\n anchorEl={anchorEl}\n actions={actions}\n onClose={onClosePopup}\n onClick={onChooseAction}\n />\n <ColumnsSettingsPopup\n hideCheckBox\n anchorEl={action ? anchorEl : undefined}\n columnsData={groupedItems}\n selectedColumns={selectedAttributes}\n onColumnClick={addRowHandler}\n onClose={closeAddRowPopup}\n title={i18n.text('Add row')}\n />\n </>\n );\n};\n\nexport default memo(AddRowPopups);\n","import {useCallback, useState} from 'react';\nimport {any, map, pipe} from 'ramda';\nimport {getEntityUriFromMatchObject} from '@reltio/mdm-sdk';\n\nexport const useWorkflowTasksAvailability = (matches) => {\n const [workflowTasksAvailabilityMap, setWorkflowTasksAvailabilityMap] = useState<{[entityUri: string]: boolean}>(\n {}\n );\n const setWorkflowTaskAvailability = useCallback((entityUri: string, value: boolean) => {\n setWorkflowTasksAvailabilityMap((map) => ({\n ...map,\n [entityUri]: value\n }));\n }, []);\n const isThereAnyTask: boolean = pipe(\n map(getEntityUriFromMatchObject),\n any((uri) => workflowTasksAvailabilityMap[uri])\n )(matches);\n\n return {isThereAnyTask, setWorkflowTaskAvailability};\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst headCellWidth = 212;\nconst dataCellWidth = 310;\nconst borderStyle = '1px solid rgba(0,0,0,0.12)';\nconst thickBorderStyle = '2px solid rgba(0,0,0,0.12)';\nconst firstColumnColor = 'rgb(245, 245, 245)';\nconst secondColumnColor = 'rgb(224, 238, 249)';\nconst firstRowHeight = 141;\n\nexport const useStyles = makeStyles((theme) => ({\n container: {\n overflow: 'auto',\n height: '100%',\n width: '100%'\n },\n comparisonTableWrapper: {\n display: 'flex',\n alignItems: 'flex-start',\n position: 'relative'\n },\n collapsedRow: {\n display: 'none'\n },\n comparisonTable: {\n borderSpacing: 0,\n '& tbody tr:hover td, & tbody tr:hover th': {\n backgroundColor: 'rgb(235, 235, 235)'\n },\n 'table& tbody tr:hover td:nth-child(2)': {\n backgroundColor: 'rgb(215, 228, 239)'\n },\n '& td, & th': {\n borderRight: borderStyle,\n borderBottom: borderStyle,\n margin: 0,\n verticalAlign: 'top',\n textAlign: 'left',\n fontSize: '13px',\n minHeight: '16px',\n boxSizing: 'border-box',\n wordBreak: 'break-word',\n wordWrap: 'break-word',\n backgroundColor: 'white'\n },\n '& td': {\n minWidth: dataCellWidth,\n maxWidth: dataCellWidth,\n padding: '16px',\n overflow: 'hidden',\n height: 0\n },\n '& td:empty, th:empty': {\n padding: '0px 16px'\n },\n '& th': {\n minWidth: headCellWidth,\n maxWidth: headCellWidth,\n padding: '16px'\n },\n // sticky columns\n '& td:first-child, th:first-child': {\n borderLeft: borderStyle,\n position: 'sticky',\n left: '0',\n zIndex: 2,\n backgroundColor: firstColumnColor,\n color: theme.palette.text.secondary,\n fontWeight: 'normal'\n },\n '& td:nth-child(2), th:nth-child(2)': {\n borderRight: thickBorderStyle,\n position: 'sticky',\n left: `${headCellWidth}px`,\n zIndex: 2\n },\n // sticky rows\n '& thead tr:first-child td, & thead tr:first-child th': {\n borderTop: 'none',\n position: 'sticky',\n top: '0',\n height: firstRowHeight,\n padding: 0,\n zIndex: 2\n },\n // always visible corner\n '& thead tr:nth-child(-n+2) td:nth-child(-n+2), & thead tr:nth-child(-n+2) th:nth-child(-n+2)': {\n zIndex: 3\n },\n // special color for second column\n 'table& tr td:nth-child(2), th:nth-child(2)': {\n backgroundColor: secondColumnColor\n }\n },\n emptyState: {\n position: 'sticky',\n top: '10vh',\n display: 'flex',\n width: '100%'\n }\n}));\n","import React, {useCallback, useContext, useMemo, useState} from 'react';\nimport classnames from 'classnames';\nimport {chain, groupBy, insert, nth, pipe, prop, remove, toPairs} from 'ramda';\nimport {\n EntitiesMap,\n Entity,\n getFirstLevelSearchUri,\n isAttributeSearchUri,\n Metadata,\n PotentialMatchesPerspectiveConfig,\n Match\n} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\nimport {EMPTY_STATE_ICONS, EMPTY_STATE_VARIANTS, EmptyState, VerticalHeadingsTable} from '@reltio/components';\nimport {getTableColumnsData, getTableRowsData} from './helpers/tableHelpers';\nimport {ExpandedContext} from './ExpandedContext';\nimport {ColumnHandlerContext} from '../../contexts/ColumnHandlerContext';\nimport {replaceSubAttributesWithParent} from './helpers/attributesHelpers';\nimport {GroupedColumnData} from '../../types/potentialMatchesTypes';\nimport AddRowPopups from './AddRowPopups';\nimport {ColumnDataContext} from '../../contexts/ColumnsDataContext';\nimport {Action} from './AddRowPopups/ConfigRowPopup';\nimport {HoveredEntityContext} from './HoveredEntityContext';\nimport {WorkflowTasksAvailabilityContext} from './WorkflowTasksAvailabilityContext';\nimport {useWorkflowTasksAvailability} from '../../hooks/useWorkflowTasksAvailability';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n className?: string;\n entity: Entity;\n metadata: Metadata;\n config: PotentialMatchesPerspectiveConfig;\n entitiesMap?: EntitiesMap;\n selectedItems: Match[];\n setSelectedItems: (items: Match[]) => void;\n selectedColumns: string[];\n setSelectedColumns: (items: string[]) => void;\n columnsData: GroupedColumnData[];\n showNonOv?: boolean;\n};\n\nconst actions = [Action.INSERT_BELOW, Action.INSERT_ABOVE, Action.HIDE];\n\nexport const ComparisonTable = ({\n className,\n entity,\n metadata,\n config,\n selectedItems,\n setSelectedItems,\n selectedColumns,\n setSelectedColumns,\n entitiesMap = {},\n columnsData: allColumnsData,\n showNonOv = false\n}: Props) => {\n const styles = useStyles();\n\n const [hoveredEntity, setHoveredEntity] = useState(null);\n const [hoveredId, setHoveredId] = useState<string>();\n const [anchor, setAnchor] = useState<HTMLElement>();\n\n const matches = useMemo(() => selectedItems.slice(-4), [selectedItems]);\n const selectedColumnsWithoutSubAttributes: string[] = useMemo(\n () => replaceSubAttributesWithParent(selectedColumns),\n [selectedColumns]\n );\n\n const rowsData = useMemo(\n () => getTableRowsData(metadata, entity, selectedColumnsWithoutSubAttributes),\n [metadata, entity, selectedColumnsWithoutSubAttributes]\n );\n\n const onRemoveItem = useContext(ColumnHandlerContext);\n\n const columnsData = useMemo(\n () => getTableColumnsData(metadata, rowsData, entity, matches, entitiesMap, config, onRemoveItem, showNonOv),\n [metadata, rowsData, matches, entity, entitiesMap, config, onRemoveItem, showNonOv]\n );\n\n const [expandedMap, setExpandedMap] = useState<{\n [attrTypeUri: string]: boolean;\n }>({});\n\n const onExpandType = useCallback((attrTypeUri: string) => {\n setExpandedMap((map) => ({\n ...map,\n [attrTypeUri]: !map[attrTypeUri]\n }));\n }, []);\n\n const expandedContextValue = useMemo(\n () => ({\n expandedMap,\n onExpandType\n }),\n [onExpandType, expandedMap]\n );\n\n const headCellData = useMemo(\n () => ({\n setHoveredId,\n setAnchor,\n hoveredId\n }),\n [hoveredId]\n );\n\n const onClosePopup = useCallback(() => {\n setHoveredId(null);\n setAnchor(null);\n }, []);\n\n const handleMoveRow = (dragId: string, hoverId: string) => {\n const newArr: Array<[string, string[]]> = pipe(\n groupBy((item) => (isAttributeSearchUri(item) ? getFirstLevelSearchUri(item) : item)),\n toPairs\n )(selectedColumns);\n\n const dragIndex = newArr.findIndex(([searchUri]) => searchUri === dragId);\n const hoverIndex = newArr.findIndex(([searchUri]) => searchUri === hoverId);\n const dragRow = newArr[dragIndex];\n if (dragRow) {\n setSelectedColumns(pipe(remove(dragIndex, 1), insert(hoverIndex, dragRow), chain(nth(1)))(newArr));\n }\n };\n\n const handleMoveColumn = (dragId: string, hoverId: string) => {\n const dragIndex = selectedItems.findIndex(({object}) => object.uri === dragId);\n const hoverIndex = selectedItems.findIndex(({object}) => object.uri === hoverId);\n const dragColumn = selectedItems[dragIndex];\n if (dragColumn) {\n setSelectedItems(pipe(remove(dragIndex, 1), insert(hoverIndex, dragColumn))(selectedItems));\n }\n };\n\n const selectedAttributeUris: string[] = useMemo(() => rowsData.map(prop('id')), [rowsData]);\n\n const setHoveredEntityHandler = (columnValue) => {\n setHoveredEntity(columnValue?.entityId || null);\n };\n\n const resetHoveredEntity = useCallback(() => {\n setHoveredEntity(null);\n }, []);\n\n const hoveredEntityContextValue = useMemo(\n () => ({\n hoveredEntity,\n resetHoveredEntity\n }),\n [hoveredEntity, resetHoveredEntity]\n );\n\n const {isThereAnyTask, setWorkflowTaskAvailability} = useWorkflowTasksAvailability(matches);\n const workflowCardRowClassname = isThereAnyTask ? undefined : styles.collapsedRow;\n const displayedRowsData = useMemo(\n () =>\n rowsData.map((rowData) =>\n workflowCardRowClassname && rowData.id === 'workflowCard'\n ? {\n ...rowData,\n rowClassName: workflowCardRowClassname\n }\n : rowData\n ),\n [rowsData, workflowCardRowClassname]\n );\n\n return (\n <div className={classnames(styles.container, className)}>\n <div className={styles.comparisonTableWrapper}>\n <HoveredEntityContext.Provider value={hoveredEntityContextValue}>\n <ExpandedContext.Provider value={expandedContextValue}>\n <ColumnDataContext.Provider value={headCellData}>\n <WorkflowTasksAvailabilityContext.Provider value={setWorkflowTaskAvailability}>\n <VerticalHeadingsTable\n className={styles.comparisonTable}\n rowsData={displayedRowsData}\n columnsData={columnsData}\n theadRowsNumber={1}\n onMoveRow={handleMoveRow}\n onMoveColumn={handleMoveColumn}\n setHoveredColumn={setHoveredEntityHandler}\n resetHoveredColumn={resetHoveredEntity}\n />\n </WorkflowTasksAvailabilityContext.Provider>\n </ColumnDataContext.Provider>\n </ExpandedContext.Provider>\n </HoveredEntityContext.Provider>\n {!matches.length && (\n <div className={styles.emptyState}>\n <EmptyState\n LogoRenderer={EMPTY_STATE_ICONS.SELECT_ATTRIBUTES}\n variant={EMPTY_STATE_VARIANTS.embedded}\n text={i18n.text('Select profiles')}\n secondaryText={i18n.text(\n 'Select one or more profiles to compare it with the current profile'\n )}\n />\n </div>\n )}\n <AddRowPopups\n id={hoveredId}\n anchorEl={anchor}\n onClose={onClosePopup}\n actions={actions}\n selectedAttributes={selectedAttributeUris}\n setSelectedAttributes={setSelectedColumns}\n groupColumnsData={allColumnsData}\n />\n </div>\n </div>\n );\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column'\n },\n table: {\n flex: 1\n }\n});\n","import React from 'react';\nimport classnames from 'classnames';\nimport {EntitiesMap, Match, Entity, Metadata, PotentialMatchesPerspectiveConfig} from '@reltio/mdm-sdk';\nimport ComparisonTable from '../ComparisonTable';\nimport {GroupedColumnData} from '../../types/potentialMatchesTypes';\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n metadata: Metadata;\n selectedColumns: string[];\n setSelectedColumns: (newColumns: string[]) => void;\n selectedItems: Match[];\n setSelectedItems: (newItems: Match[]) => void;\n classes: {\n root?: string;\n };\n config: PotentialMatchesPerspectiveConfig;\n entitiesMap?: EntitiesMap;\n columnsData: GroupedColumnData[];\n showNonOv: boolean;\n};\n\nexport const ComparisonView = ({\n classes = {},\n selectedColumns,\n setSelectedColumns,\n selectedItems,\n setSelectedItems,\n config,\n metadata,\n entity,\n entitiesMap = {},\n columnsData,\n showNonOv\n}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={classnames(classes.root, styles.container)}>\n <ComparisonTable\n className={styles.table}\n entity={entity}\n metadata={metadata}\n config={config}\n selectedColumns={selectedColumns}\n setSelectedColumns={setSelectedColumns}\n selectedItems={selectedItems}\n setSelectedItems={setSelectedItems}\n columnsData={columnsData}\n entitiesMap={entitiesMap}\n showNonOv={showNonOv}\n />\n </div>\n );\n};\n","import {makeStyles, fade, lighten, Theme} from '@material-ui/core/styles';\nimport {CSSProperties} from '@material-ui/styles';\n\nconst defaultWrapperStyles: CSSProperties = {\n position: 'relative',\n whiteSpace: 'pre',\n padding: '15px 15px 0 15px',\n '&:last-child': {\n paddingBottom: '15px'\n },\n color: 'rgba(0,0,0,0.87)'\n};\n\nconst textOverflow: CSSProperties = {\n content: '\"\"',\n position: 'absolute',\n right: 0,\n top: 0,\n width: '40px',\n height: '100%',\n background: 'linear-gradient(to right, rgba(255, 255, 255, 0.2), #fff 100%)',\n pointerEvents: 'none'\n};\n\nconst tableHoveredRowSelector = 'div.hoveredRow';\n\nconst getColoredRowCellStyle = (color: string, hoveredColor?: string) => {\n return {\n '& > *': {\n position: 'relative'\n },\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n right: 0,\n top: 0,\n width: '100%',\n height: '100%',\n background: color,\n pointerEvents: 'none',\n [`${tableHoveredRowSelector} &`]: {\n background: hoveredColor || 'none'\n }\n },\n '& $defaultWrapper::after': {\n background: `linear-gradient(to right, ${fade(color, 0)}, ${color} 100%)`,\n [`${tableHoveredRowSelector} &`]: {\n background: hoveredColor && `linear-gradient(to right, ${fade(hoveredColor, 0)}, ${hoveredColor} 100%)`\n }\n }\n };\n};\n\nexport const useStyles = makeStyles((theme: Theme & {inactive: Record<string, number>}) => {\n const lightPrimaryBackground = lighten(theme.palette.primary.main, 0.88);\n const lightPrimaryBackgroundHovered = lighten(theme.palette.primary.main, 0.82);\n const highlightBackground = lighten('rgb(140,193,82)', 0.88);\n const entityBackground = lighten('rgb(0, 114, 206)', 0.88);\n\n const link = {\n color: theme.palette.primary.main,\n cursor: 'pointer',\n textDecoration: 'none'\n };\n\n return {\n link,\n hidden: {\n visibility: 'hidden'\n },\n rowCloseIcon: {\n color: 'rgba(0, 0, 0, 0.54)',\n margin: '0 24px 0 8px'\n },\n headCell: {\n display: 'flex',\n alignItems: 'center',\n height: '56px',\n fontSize: '12px',\n position: 'relative',\n flex: 1,\n overflow: 'hidden',\n color: 'rgba(0,0,0,0.87)',\n backgroundColor: 'rgba(0, 0, 0, 0.06)',\n '&::after': {\n ...textOverflow,\n width: '30px',\n backgroundImage: 'none'\n }\n },\n firstHeadCell: {\n paddingLeft: '42px'\n },\n headCellWithEntity: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n },\n rowCell: {\n fontSize: '12px',\n overflow: 'hidden'\n },\n rowCellFirstColumn: {\n height: '100%'\n },\n firstEntityCell: {\n maxHeight: '200px'\n },\n entityRowCell: {\n fontSize: '12px',\n position: 'relative'\n },\n entityRowCellSelected: getColoredRowCellStyle(entityBackground),\n rowCellHighlighted: getColoredRowCellStyle(highlightBackground),\n rowCellSelected: getColoredRowCellStyle(lightPrimaryBackground, lightPrimaryBackgroundHovered),\n defaultWrapper: {\n ...defaultWrapperStyles,\n '&::after': {\n ...textOverflow,\n [`${tableHoveredRowSelector} &`]: {\n background: 'linear-gradient(to right, rgba(238, 238, 238, 0), rgba(238, 238, 238, 1) 100%)'\n }\n }\n },\n hoveredDefaultWrapper: {\n ...defaultWrapperStyles\n },\n entityWrapper: {\n paddingLeft: '12px'\n },\n profileWrapper: {\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n position: 'relative'\n },\n entityLabel: {\n ...link,\n fontWeight: 500\n },\n commentsContainer: {\n position: 'absolute',\n right: 0,\n top: 0,\n zIndex: 1,\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n paddingRight: '15px',\n backgroundColor: '#fff',\n '&$checked': {\n backgroundColor: lightPrimaryBackground\n }\n },\n checked: {},\n matchRulesWrapper: {\n padding: '8px 15px 8px 10px',\n display: 'flex',\n flexDirection: 'column',\n boxSizing: 'border-box'\n },\n blobWrapper: {\n ...defaultWrapperStyles,\n whiteSpace: 'pre-wrap',\n height: '100px',\n boxSizing: 'border-box',\n overflowY: 'auto',\n overflowX: 'hidden'\n },\n imageWrapper: {\n ...defaultWrapperStyles,\n display: 'flex',\n '& > img': {\n height: '64px',\n width: '64px'\n }\n },\n referenceWrapper: {\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n height: '48px'\n },\n entityAvatar: {\n transform: 'scale(0.5)',\n marginLeft: '-10px'\n },\n collapseButton: {\n position: 'absolute',\n left: '40px',\n zIndex: 2\n },\n dragIcon: {\n position: 'absolute',\n left: '-5px',\n zIndex: 2,\n opacity: 0.38\n },\n ovFalse: theme.inactive\n };\n});\n","import React from 'react';\n\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport {withFilterAtBottom} from '@reltio/components';\n\nimport {useStyles} from './styles';\n\ntype Props = Record<string, unknown>;\n\nconst HeadCellRenderer = (props: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.headCell}>\n <DefaultHeadCellRenderer {...props} />\n </div>\n );\n};\n\nexport default withFilterAtBottom(HeadCellRenderer);\n","import React from 'react';\nimport classnames from 'classnames';\nimport {AttributeValue, DataTypes} from '@reltio/mdm-sdk';\nimport {DataTypeValue} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: AttributeValue;\n columnData: {\n dataTypeDefinition: {\n type: DataTypes;\n };\n };\n};\n\nconst DefaultCellValueRenderer = ({value, columnData: {dataTypeDefinition}}: Props) => {\n const {value: simpleValue, ov} = value;\n const styles = useStyles();\n return (\n <div className={classnames(styles.defaultWrapper, {[styles.ovFalse]: ov === false})}>\n <DataTypeValue value={simpleValue} dataTypeDefinition={dataTypeDefinition} />\n </div>\n );\n};\n\nexport default DefaultCellValueRenderer;\n","import React, {useContext} from 'react';\nimport classnames from 'classnames';\nimport {\n CollapseRowButton,\n EntityUriLink,\n IdContext,\n withTableContext,\n CommentsContainer,\n SmallIconButton\n} from '@reltio/components';\nimport {\n getEntityUriForLink,\n getLabel,\n createObjectIdForPM,\n CollaborationObjectTypes,\n createRelatedObjectUris,\n Entity\n} from '@reltio/mdm-sdk';\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\nimport CloseIcon from '@material-ui/icons/Close';\nimport {MatchesTableContextProps, MatchesTableRowValue} from '../../../types/potentialMatchesTypes';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: Entity;\n rowIndex: number;\n rowValue: MatchesTableRowValue;\n onRemove: () => void;\n entityToMatch: Entity;\n isRowSelected: boolean;\n hoverRowIndex: number;\n};\n\nconst EntityProfileRenderer = ({\n value: entity,\n rowIndex,\n rowValue,\n onRemove,\n entityToMatch,\n isRowSelected,\n hoverRowIndex\n}: Props) => {\n const styles = useStyles();\n const containerId = useContext(IdContext);\n\n const isRowRemovable = entity !== entityToMatch;\n const isRowHovered = rowIndex === hoverRowIndex;\n const isFirstRow = rowIndex === 0;\n const wrapperStyle = isRowHovered ? styles.hoveredDefaultWrapper : styles.defaultWrapper;\n const shouldRenderCommentsContainer = entity.uri !== entityToMatch.uri && !isRowHovered;\n\n return (\n <>\n <div\n className={classnames(wrapperStyle, styles.profileWrapper, styles.entityWrapper, {\n [styles.firstEntityCell]: isFirstRow && !isRowRemovable\n })}\n >\n {isRowHovered && <DragIndicatorIcon className={styles.dragIcon} />}\n <CollapseRowButton className={styles.collapseButton} rowIndex={rowIndex} rowValue={rowValue} />\n <SmallIconButton\n icon={CloseIcon}\n size=\"XS\"\n className={classnames(styles.rowCloseIcon, {[styles.hidden]: !isRowRemovable})}\n onClick={onRemove}\n data-reltio-id={`reltio-matches-table-${containerId ? containerId + '-' : ''}checkbox-${rowIndex}`}\n />\n <EntityUriLink value={getEntityUriForLink(entity)} className={styles.entityLabel}>\n {getLabel(entity.label)}\n </EntityUriLink>\n {shouldRenderCommentsContainer && (\n <CommentsContainer\n className={classnames(styles.commentsContainer, {[styles.checked]: isRowSelected})}\n uri={createObjectIdForPM(entityToMatch.uri, entity.uri)}\n objectType={CollaborationObjectTypes.POTENTIAL_MATCH}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.POTENTIAL_MATCH, {\n entityUri: entityToMatch.uri,\n matchEntityUri: entity.uri\n })}\n allowOnlyOneComment\n />\n )}\n </div>\n </>\n );\n};\n\nexport default withTableContext(\n ({onToggleSelect, entityToMatch}: MatchesTableContextProps, {rowValue, value}: Props) => {\n const {rawValue: match} = rowValue;\n return {\n onRemove: () => onToggleSelect(match),\n isRowRemovable: value !== entityToMatch,\n entityToMatch\n };\n }\n)(EntityProfileRenderer);\n","import React from 'react';\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport {withFilterAtBottom, withTableContext} from '@reltio/components';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\ntype Props = {\n headIndex: number;\n [key: string]: unknown;\n};\n\nconst ProfileHeadCellRenderer = (props: Props) => {\n const isFirstColumn = props.headIndex === 0;\n const styles = useStyles();\n return (\n <div className={classnames(styles.headCell, {[styles.firstHeadCell]: isFirstColumn})}>\n <DefaultHeadCellRenderer {...props} />\n </div>\n );\n};\n\nexport default withTableContext()(withFilterAtBottom(ProfileHeadCellRenderer));\n","import {MatchRulesBlock} from '@reltio/components';\nimport {EntitiesMap, Entity, Match, Metadata} from '@reltio/mdm-sdk';\nimport React, {ComponentProps} from 'react';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {\n metadata: Metadata;\n match: Match;\n entitiesMap: EntitiesMap;\n entity: Entity;\n variant?: ComponentProps<typeof MatchRulesBlock>['variant'];\n };\n};\n\nconst MatchRulesRenderer = ({value}: Props) => {\n const styles = useStyles();\n if (!value) {\n return null;\n }\n const {metadata, match, entitiesMap, entity, variant} = value;\n return (\n <div className={styles.matchRulesWrapper}>\n <MatchRulesBlock\n variant={variant}\n metadata={metadata}\n entitiesMap={entitiesMap}\n match={match}\n entity={entity}\n />\n </div>\n );\n};\n\nexport default MatchRulesRenderer;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {stopPropagation} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {value: string; ov: boolean};\n};\n\nconst BlobRenderer = ({value}: Props) => {\n const {value: blobValue, ov} = value;\n const styles = useStyles();\n return (\n <div className={classnames(styles.blobWrapper, {[styles.ovFalse]: ov === false})} onScroll={stopPropagation}>\n {blobValue}\n </div>\n );\n};\n\nexport default BlobRenderer;\n","import React from 'react';\nimport {BasicImageAttributesValue, getImageAttributeOvThumbnailUrl} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {value: BasicImageAttributesValue; ov: boolean};\n};\n\nconst ImageRenderer = ({value}: Props) => {\n const {value: imgValue} = value;\n const styles = useStyles();\n const src = getImageAttributeOvThumbnailUrl({value: imgValue});\n return (\n src && (\n <div className={styles.imageWrapper}>\n <img src={src} />\n </div>\n )\n );\n};\n\nexport default ImageRenderer;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport classnames from 'classnames';\nimport {EntityTypeIcon, EntityUriLink} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {getEntityType, getLabel, getReferencedEntityFromAttrValue, ReferenceAttributeValue} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: ReferenceAttributeValue;\n};\n\nconst ReferenceRenderer = ({value}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n return (\n value && (\n <div\n className={classnames(styles.defaultWrapper, styles.referenceWrapper, {\n [styles.ovFalse]: value.ov === false\n })}\n >\n <EntityTypeIcon\n className={styles.entityAvatar}\n entityType={getEntityType(metadata, getReferencedEntityFromAttrValue(value).type)}\n />\n <EntityUriLink value={getReferencedEntityFromAttrValue(value).objectURI} className={styles.link}>\n {getLabel(value.label)}\n </EntityUriLink>\n </div>\n )\n );\n};\n\nexport default ReferenceRenderer;\n","import React from 'react';\nimport {Entity} from '@reltio/mdm-sdk';\nimport CommonSourcesRenderer from '../../cell-renderers/SourcesRenderer/SourcesRenderer';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {\n entity: Entity;\n };\n};\n\nconst SourcesRenderer = ({value}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={styles.defaultWrapper}>\n <CommonSourcesRenderer value={value.entity} />\n </div>\n );\n};\n\nexport default SourcesRenderer;\n","import {assoc, map, pipe, prop, propOr, reduce, split, filter, ifElse, always} from 'ramda';\nimport {\n DataTypes,\n EntitiesMap,\n Entity,\n getAttributesForMatchRules,\n getEntityId,\n isAttributeSearchUri,\n Metadata,\n Match,\n getAttributeValuesByPathWithOvFlag,\n getOvAttributeValuesByPathWithOvFlag\n} from '@reltio/mdm-sdk';\n\nimport HeadCellRenderer from './cell-renderers/HeadCellRenderer';\nimport DefaultCellValueRenderer from './cell-renderers/DefaultCellValueRenderer';\nimport EntityProfileRenderer from './cell-renderers/EntityProfileRenderer';\nimport ProfileHeadCellRenderer from './cell-renderers/ProfileHeadCellRenderer';\nimport MatchRulesRenderer from './cell-renderers/MatchRulesRenderer';\nimport BlobRender from './cell-renderers/BlobRenderer';\nimport ImageRenderer from './cell-renderers/ImageRenderer';\nimport ReferenceRenderer from './cell-renderers/ReferenceRenderer';\nimport {MatchesColumnsData, MatchesTableRowValue} from '../../types/potentialMatchesTypes';\nimport {ComparisonViewMode} from '../../constants/views';\nimport SourcesRenderer from './cell-renderers/SourcesRenderer';\n\nconst getAttrPathFromColumnId = split('.');\n\ntype RowValue = {\n entity: Entity;\n metadata: Metadata;\n match: Match;\n entitiesMap?: EntitiesMap;\n matchScore: number;\n};\n\nconst getRowValueForColumn = (\n columnData: MatchesColumnsData,\n {entity, metadata, match, entitiesMap, matchScore}: RowValue,\n showNonOv\n) => {\n switch (columnData.id) {\n case 'profile':\n return entity;\n case 'entityId':\n return {value: getEntityId(entity)};\n case 'matchRules':\n return {metadata, match, entitiesMap, entity, variant: 'all'};\n case 'score':\n return {value: matchScore};\n case 'sources':\n return {entity};\n default: {\n const [attrSource, ...attrPath]: string[] = getAttrPathFromColumnId(columnData.id);\n return pipe(\n prop(attrSource),\n ifElse(\n always(showNonOv),\n getAttributeValuesByPathWithOvFlag(attrPath),\n getOvAttributeValuesByPathWithOvFlag(attrPath)\n )\n )(entity);\n }\n }\n};\n\nconst getBasicTableRowsData = (\n metadata: Metadata,\n columnsData: MatchesColumnsData[],\n matches: Match[],\n showNonOv: boolean,\n entitiesMap?: EntitiesMap\n): MatchesTableRowValue[] =>\n matches.map((match) => {\n const entity = match.object;\n const allMatchRules = match.matchRules || [];\n const matchScore = match.matchScore || 0;\n const matchAttributes = getAttributesForMatchRules(metadata, entity.type, allMatchRules);\n const rowValue = {entity, metadata, match, entitiesMap, matchScore};\n const filteredColumnsData = columnsData.filter(({modes}) =>\n modes ? modes.includes(ComparisonViewMode.TABLE) : true\n );\n\n return pipe(\n reduce(\n (acc, columnData) => assoc(columnData.id, getRowValueForColumn(columnData, rowValue, showNonOv), acc),\n {}\n ),\n assoc('matchAttributes', matchAttributes),\n assoc('rawValue', match)\n )(filteredColumnsData);\n });\n\nconst getNestedPathByColumnId = (columnId: string) => {\n if (isAttributeSearchUri(columnId) as boolean) {\n const [, ...attrPath]: string[] = getAttrPathFromColumnId(columnId);\n return attrPath.length > 1 ? attrPath.slice(0, -1) : null;\n } else {\n return null;\n }\n};\n\nconst getCellValueRendererByDataType = (dataType: DataTypes) => {\n switch (dataType) {\n case DataTypes.TYPE_BLOB: {\n return BlobRender;\n }\n case DataTypes.TYPE_IMAGE: {\n return ImageRenderer;\n }\n case DataTypes.TYPE_REFERENCE: {\n return ReferenceRenderer;\n }\n default:\n return DefaultCellValueRenderer;\n }\n};\n\nconst getCellValueRenderer = (columnData: MatchesColumnsData) => {\n switch (columnData.id) {\n case 'profile': {\n return EntityProfileRenderer;\n }\n case 'matchRules': {\n return MatchRulesRenderer;\n }\n case 'sources': {\n return SourcesRenderer;\n }\n default:\n return getCellValueRendererByDataType(columnData.dataTypeDefinition.type);\n }\n};\n\nconst getBasicTableColumnsData = (sortable: boolean, columnData: MatchesColumnsData[]) =>\n pipe(\n filter(({modes}) => (modes ? modes.includes(ComparisonViewMode.TABLE) : true)),\n map((columnData: MatchesColumnsData) => ({\n sortable,\n ...columnData,\n resizable: true,\n nestedPath: getNestedPathByColumnId(columnData.id),\n headCellRenderer: columnData.id === 'profile' ? ProfileHeadCellRenderer : HeadCellRenderer,\n rowCellValueRenderer: getCellValueRenderer(columnData),\n draggable: propOr(true, 'draggable')(columnData)\n }))\n )(columnData);\n\nexport {getBasicTableRowsData, getBasicTableColumnsData};\n","import React from 'react';\nimport classnames from 'classnames';\nimport {withTableContext} from '@reltio/components';\nimport {isEmptyValue} from '@reltio/mdm-sdk';\nimport {isMatchAttrColumn} from '../../../helpers/attributesHelpers';\nimport {MatchesTableContextProps, RowCellRendererProps} from '../../../types/potentialMatchesTypes';\nimport {useStyles} from './styles';\n\ntype Props = {\n isRowSelected: boolean;\n isCellHighlighted: boolean;\n} & RowCellRendererProps;\n\nconst RowCellRenderer = ({\n rowValue,\n cell,\n CellValueRenderer,\n isRowSelected,\n isCellHighlighted,\n columnIndex,\n ...otherProps\n}: Props) => {\n const styles = useStyles();\n const isFirstColumn = columnIndex === 0;\n return (\n <div\n className={classnames(\n {\n [styles.rowCellSelected]: isRowSelected,\n [styles.rowCellHighlighted]: isCellHighlighted,\n [styles.rowCellFirstColumn]: isFirstColumn\n },\n styles.rowCell\n )}\n >\n {cell.values.map((value, index) => (\n <CellValueRenderer\n key={index}\n value={value}\n rowValue={rowValue}\n isRowSelected={isRowSelected}\n {...otherProps}\n />\n ))}\n </div>\n );\n};\n\nexport default withTableContext(({selected}: MatchesTableContextProps, {columnData, rowValue, cell}: Props) => ({\n isRowSelected: !!selected && selected.includes(rowValue.rawValue),\n isCellHighlighted: isMatchAttrColumn(rowValue.matchAttributes, columnData) && !cell.values.every(isEmptyValue)\n}))(RowCellRenderer);\n","import {lighten, makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n tableContainer: {\n flex: 1,\n display: 'flex',\n color: 'rgba(0,0,0,0.54)',\n overflow: 'hidden',\n background: theme.palette.background.paper\n },\n rowActionButtonsWrapper: {\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n marginRight: '1px'\n },\n rowActionButtons: {\n backgroundColor: 'rgba(238, 238, 238, 1)',\n '&$checked': {\n backgroundColor: lighten(theme.palette.primary.main, 0.82)\n }\n },\n commentsContainer: {\n paddingLeft: '6px',\n paddingRight: '15px',\n backgroundColor: 'rgba(238, 238, 238, 1)',\n borderLeft: '1px solid rgba(0,0,0,0.12)',\n '&$checked': {\n backgroundColor: lighten(theme.palette.primary.main, 0.82)\n }\n },\n checked: {},\n actionButton: {\n marginLeft: '12px',\n '&:last-child': {\n marginRight: '3px'\n }\n },\n hoveredRowRightContentContainer: {\n alignItems: 'center !important' //overlapping inline style for buttons centering\n },\n dragColumnHead: {\n '& #headCell': {\n border: '1px solid',\n borderColor: theme.palette.primary.main\n },\n '& #entityCell': {\n borderLeft: '1px solid',\n borderRight: '1px solid',\n borderLeftColor: theme.palette.primary.main,\n borderRightColor: theme.palette.primary.main\n }\n },\n dragColumnBody: {\n borderLeft: '1px solid',\n borderRight: '1px solid',\n borderLeftColor: theme.palette.primary.main,\n borderRightColor: theme.palette.primary.main\n }\n}));\n","import React, {useCallback, useEffect, useLayoutEffect, useMemo, useState} from 'react';\nimport classnames from 'classnames';\nimport {either, evolve, move} from 'ramda';\nimport {\n BasicTable,\n defaultGetRowCellHeight,\n RowCellAutoSizer,\n CommentsContainer,\n useBasicTableCellRenderer,\n useDynamicRowCellHeight\n} from '@reltio/components';\nimport {\n CollaborationObjectTypes,\n createObjectIdForPM,\n createRelatedObjectUris,\n Entity,\n Metadata,\n Match,\n EntitiesMap,\n getActionPermissionForMatch,\n PotentialMatchesPerspectiveConfig\n} from '@reltio/mdm-sdk';\nimport {getBasicTableColumnsData, getBasicTableRowsData} from './dataHelpers';\nimport withEntityCellValue from './cell-renderers/withEntityCellValue';\nimport RowCellRenderer from './cell-renderers/RowCellRenderer';\nimport {MatchesColumnsData, RowCellRendererProps, MatchesTableContextProps} from '../../types/potentialMatchesTypes';\nimport {useAddRelationDialog} from '../../hooks/useAddRelationDialog';\nimport {useStyles} from './styles';\nimport MatchControls from '../MatchControls/MatchControls';\n\nconst MAX_ROW_VALUES_COUNT = 3;\n\ntype Sorting = {\n field: string;\n order: 'asc' | 'desc';\n};\n\ntype Filter = {\n filter: string;\n value: unknown[];\n};\n\ntype Props = {\n entity?: Entity;\n matches: Match[];\n metadata: Metadata;\n columnsData: MatchesColumnsData[];\n onReorderingColumn: (what, where) => void;\n config: PotentialMatchesPerspectiveConfig;\n filters?: Record<string, Filter>;\n onFilter?: (value: {columnId: string; filter: Filter}) => void;\n sorting?: Sorting;\n onSort?: (column: string) => void;\n selected: Match[];\n onToggleSelect: (match: Match) => void;\n onResetSelect: () => void;\n onSelectAll: () => void;\n isComparisonViewShown: boolean;\n entitiesMap?: EntitiesMap;\n basicTableRef?: React.Ref<HTMLElement>;\n showNonOv: boolean;\n};\n\nconst MatchesTable = ({\n entity,\n matches,\n metadata,\n columnsData,\n onReorderingColumn,\n config,\n filters,\n onFilter,\n sorting,\n onSort,\n selected,\n onToggleSelect,\n onResetSelect,\n onSelectAll,\n entitiesMap,\n basicTableRef,\n isComparisonViewShown,\n showNonOv\n}: Props) => {\n const styles = useStyles();\n const [orderedMatches, setOrderedMatches] = useState(matches);\n useEffect(() => {\n setOrderedMatches(matches);\n }, [matches]);\n const onDndRowReorder = useCallback((oldPosition: number, newPosition: number) => {\n setOrderedMatches(move(oldPosition, newPosition));\n setHoverRowIndex(newPosition);\n }, []);\n\n const tableRowsData = useMemo(\n () => getBasicTableRowsData(metadata, columnsData, orderedMatches, showNonOv, entitiesMap),\n [metadata, columnsData, orderedMatches, showNonOv, entitiesMap]\n );\n\n const sortable = !!onSort;\n const tableColumnsData = useMemo(() => getBasicTableColumnsData(sortable, columnsData), [columnsData, sortable]);\n\n const entityRowData = useMemo(\n () => (entity ? getBasicTableRowsData(metadata, columnsData, [{object: entity}], showNonOv) : []),\n [entity, metadata, columnsData, showNonOv]\n );\n\n const {getRowHeight, CellRenderer: EntityCellRenderer} = useBasicTableCellRenderer({\n rowsData: entityRowData,\n columnsData: tableColumnsData,\n maxRowValuesCount: MAX_ROW_VALUES_COUNT\n });\n\n const entityRowHeight = getRowHeight(0);\n const enhancedColumnsData = useMemo(() => {\n const withEntityCell = withEntityCellValue(EntityCellRenderer);\n return tableColumnsData.map(\n evolve({\n headCellRenderer: withEntityCell\n })\n );\n }, [tableColumnsData, EntityCellRenderer]);\n\n const onDndColumnReorder = useCallback(\n ({what, where}) => {\n const oldPositionId = tableColumnsData[what.columnIndex].id;\n const newPositionId = tableColumnsData[where.columnIndex].id;\n onReorderingColumn(oldPositionId, newPositionId);\n },\n [tableColumnsData]\n );\n\n const tableContext: MatchesTableContextProps = useMemo(\n () => ({\n isAllSelected: selected.length > 0 && selected.length === matches.length,\n entityToMatch: entity,\n selected,\n onToggleSelect,\n onResetSelect,\n onSelectAll,\n isComparisonViewShown\n }),\n [entity, selected, onToggleSelect, onResetSelect, onSelectAll, matches, isComparisonViewShown]\n );\n\n const {getDynamicRowCellHeight, changeRowCellHeight, clearHeightsCache} = useDynamicRowCellHeight();\n\n useLayoutEffect(clearHeightsCache, [matches]);\n\n const [openActionsMenu, setOpenActionsMenu] = useState(false);\n const onActionsMenuOpen = useCallback(() => setOpenActionsMenu(true), []);\n const onActionsMenuClose = useCallback(() => setOpenActionsMenu(false), []);\n\n const [openCollaborationPopup, setOpenCollaborationPopup] = useState(false);\n\n const [hoverRowIndex, setHoverRowIndex] = useState<number>(null);\n const onRowHover = useCallback(\n (rowIndex: number) => {\n setHoverRowIndex((prevHoverRowIndex) =>\n openActionsMenu || openCollaborationPopup ? prevHoverRowIndex : rowIndex\n );\n },\n [openActionsMenu, openCollaborationPopup]\n );\n\n const {showDialog, openAddRelationDialog, AddRelationDialogRenderer} = useAddRelationDialog(config);\n\n const hoveredRowRightContent = useMemo(() => {\n if (hoverRowIndex === null) {\n return null;\n }\n\n const hoveredMatch = orderedMatches[hoverRowIndex];\n\n if (!hoveredMatch) {\n return null;\n }\n\n const permission = getActionPermissionForMatch(\n metadata,\n config,\n hoveredMatch.object,\n entity,\n hoveredMatch.matchRules\n );\n\n const isChecked = selected.includes(hoveredMatch);\n return (\n <div className={classnames(styles.rowActionButtonsWrapper)}>\n <div className={classnames(styles.rowActionButtons, {[styles.checked]: isChecked})}>\n <MatchControls\n value={{\n mainEntity: entity,\n entity: hoveredMatch.object,\n matchRules: hoveredMatch.matchRules,\n permission\n }}\n openAddRelationDialog={openAddRelationDialog}\n onActionsMenuClose={onActionsMenuClose}\n onActionsMenuOpen={onActionsMenuOpen}\n classes={{\n actionButton: styles.actionButton,\n moreOptions: styles.actionButton\n }}\n />\n </div>\n {entity && (\n <CommentsContainer\n className={classnames(styles.commentsContainer, {[styles.checked]: isChecked})}\n uri={createObjectIdForPM(entity.uri, hoveredMatch.object.uri)}\n objectType={CollaborationObjectTypes.POTENTIAL_MATCH}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.POTENTIAL_MATCH, {\n entityUri: entity.uri,\n matchEntityUri: hoveredMatch.object.uri\n })}\n onChangePopupVisibility={setOpenCollaborationPopup}\n allowOnlyOneComment\n showAlways\n />\n )}\n </div>\n );\n }, [\n hoverRowIndex,\n orderedMatches,\n selected,\n styles,\n entity,\n config,\n metadata,\n onActionsMenuOpen,\n onActionsMenuClose,\n openAddRelationDialog\n ]);\n\n const renderRowCell = useCallback(\n (props: RowCellRendererProps) => {\n switch (props.columnData.id) {\n case 'profile':\n return (\n <RowCellRenderer\n {...props}\n hoverRowIndex={hoverRowIndex}\n actionsContent={hoveredRowRightContent}\n tableRef={basicTableRef}\n />\n );\n case 'matchRules':\n return (\n <RowCellAutoSizer onChangeHeight={changeRowCellHeight} {...props}>\n <RowCellRenderer {...props} />\n </RowCellAutoSizer>\n );\n default:\n return <RowCellRenderer {...props} />;\n }\n },\n [changeRowCellHeight, hoverRowIndex, hoveredRowRightContent, basicTableRef]\n );\n\n const getRowCellHeight = useCallback(either(getDynamicRowCellHeight, defaultGetRowCellHeight), [\n getDynamicRowCellHeight,\n defaultGetRowCellHeight\n ]);\n\n const tableClasses = useMemo(\n () => ({\n hoveredRowRightContentContainer: styles.hoveredRowRightContentContainer,\n dragColumnHead: styles.dragColumnHead,\n dragColumnBody: styles.dragColumnBody\n }),\n [styles]\n );\n\n return (\n <div className={styles.tableContainer}>\n <BasicTable\n fixFirstColumn={true}\n columnsData={enhancedColumnsData}\n rowsData={tableRowsData}\n context={tableContext}\n sorting={sorting}\n onSort={onSort}\n filters={filters}\n onFilter={onFilter}\n defaultColumnWidth={250}\n defaultColumnMinWidth={100}\n headRowHeight={56 + entityRowHeight}\n renderRowCell={renderRowCell}\n getRowCellHeight={getRowCellHeight}\n hoverStateEnabled={true}\n hoveredRowRightContent={hoveredRowRightContent}\n hoverRowIndex={hoverRowIndex}\n onRowHover={onRowHover}\n classes={tableClasses}\n maxRowValuesCount={MAX_ROW_VALUES_COUNT}\n dndRowReorderingEnabled\n dndColumnReorderingEnabled\n dndColumnReorderingHandler={onDndColumnReorder}\n dndRowReorderingHandler={onDndRowReorder}\n ref={basicTableRef}\n hoveredContentPosition={0}\n />\n {showDialog && <AddRelationDialogRenderer />}\n </div>\n );\n};\n\nexport default MatchesTable;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {IdContext} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype Props = {\n headCellData: {\n id: string;\n };\n [key: string]: unknown;\n};\n\nconst withEntityCellValue = (EntityCellRenderer: (props: Record<string, unknown>) => JSX.Element) => (\n HeadCellRenderer: (props: Record<string, unknown>) => JSX.Element\n) => {\n const HeadCellWithEntityValue = (props: Props) => {\n const styles = useStyles();\n return (\n <IdContext.Provider value=\"tableHeader\">\n <div className={styles.headCellWithEntity}>\n <div id=\"headCell\">\n <HeadCellRenderer {...props} />\n </div>\n <EntityCellRenderer\n className={classnames(styles.entityRowCell, styles.entityRowCellSelected)}\n columnId={props.headCellData.id}\n rowIndex={0}\n id=\"entityCell\"\n />\n </div>\n </IdContext.Provider>\n );\n };\n\n return HeadCellWithEntityValue;\n};\n\nexport default withEntityCellValue;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n comparisonView: {\n width: '100%',\n overflow: 'auto'\n }\n});\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {propEq, identity, has, move} from 'ramda';\nimport {\n Entity,\n getPotentialMatchesObjectIdsForCollaboration,\n Metadata,\n PotentialMatchesPerspectiveConfig\n} from '@reltio/mdm-sdk';\nimport {DragAndDrop, useCollaboration, CollaborationContext} from '@reltio/components';\nimport mdm from '@reltio/mdm-module';\nimport {LinearLoadIndicator} from '@reltio/components';\nimport {TableHeader} from '../TableHeader/TableHeader';\nimport {useMatchesColumnsData} from '../../hooks/useMatchesColumnData';\nimport ComparisonView from '../ComparisonView';\nimport {useViewState, useViewStateActions} from '../../contexts/ViewStateContext';\nimport {ColumnHandlerContext} from '../../contexts/ColumnHandlerContext';\nimport {PotentialMatchesSavedState} from '../../types/potentialMatchesTypes';\nimport {DEFAULT_ROWS} from '../../constants/defaultRows';\nimport {useFirstPotentialMatches} from '../../hooks/useFirstPotentialMatches';\nimport {useSpinnerAndReloadData} from '../Actions/useSpinnerAndReloadData';\nimport {ComparisonViewMode} from '../../constants/views';\nimport MatchesTable from '../MatchesTable/MatchesTable';\nimport {addFixedAttributes} from './helpers/helpers';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n config: PotentialMatchesPerspectiveConfig;\n isLoaded: boolean;\n savedState: PotentialMatchesSavedState;\n onUpdateSavedState: (stateToSave: PotentialMatchesSavedState) => void;\n};\n\nexport const MatchReviewTable = ({config, isLoaded, savedState, onUpdateSavedState}: Props) => {\n const metadata: Metadata = useSelector(mdm.selectors.getMetadata);\n const entity: Entity = useSelector(mdm.selectors.getEntity);\n const {selectedItems, entitiesMap, comparisonViewMode} = useViewState();\n const {toggleSelect, setSelectedItems, setComparisonViewMode} = useViewStateActions();\n const {isGlobalSpinnerActive} = useSpinnerAndReloadData();\n\n const {uri: entityUri} = entity || {};\n useFirstPotentialMatches(!!entityUri, entity);\n\n const objectIds = useMemo(() => getPotentialMatchesObjectIdsForCollaboration(entityUri, Object.keys(entitiesMap)), [\n entityUri,\n entitiesMap\n ]);\n\n const collaboration = useCollaboration({objectIds});\n\n const styles = useStyles();\n const [allColumnsData, groupedColumnsData, defaultColumns] = useMatchesColumnsData({\n defaultColumnsData: DEFAULT_ROWS,\n metadata,\n entityTypeUri: entity.type\n });\n\n const [visibleColumns, setVisibleColumns] = useState<string[]>(defaultColumns);\n const [showNonOv, setShowNonOv] = useState(false);\n\n const visibleColumnsData = useMemo(\n () => visibleColumns.map((id) => allColumnsData.find(propEq('id', id))).filter(identity),\n [visibleColumns, allColumnsData]\n );\n\n const onReorderingColumn = useCallback(\n (oldPositionId, newPositionId) => {\n const oldPosition = visibleColumns.indexOf(oldPositionId);\n const newPosition = visibleColumns.indexOf(newPositionId);\n setVisibleColumns(move(oldPosition, newPosition));\n },\n [visibleColumns]\n );\n\n const comparisonViewProps = {\n entity,\n metadata,\n selectedItems: selectedItems || [],\n setSelectedItems,\n config,\n selectedColumns: visibleColumns,\n setSelectedColumns: setVisibleColumns,\n entitiesMap,\n columnsData: groupedColumnsData,\n showNonOv\n };\n\n const matchesTableProps = {\n entity,\n metadata,\n entitiesMap,\n config,\n matches: selectedItems,\n columnsData: visibleColumnsData,\n onReorderingColumn,\n onSelectAll: () => {},\n onToggleSelect: toggleSelect,\n onResetSelect: () => {},\n selected: [],\n isComparisonViewShown: false,\n showNonOv\n };\n\n useEffect(() => {\n if (!isLoaded) {\n return;\n }\n if (savedState?.visibleColumns) {\n setVisibleColumns(addFixedAttributes(savedState.visibleColumns));\n }\n if (savedState?.comparisonViewMode) {\n setComparisonViewMode(savedState.comparisonViewMode);\n }\n if (has('showNonOv', savedState)) {\n setShowNonOv(savedState.showNonOv);\n }\n }, [isLoaded]); // eslint-disable-line\n\n useEffect(() => {\n if (!isLoaded) {\n return;\n }\n onUpdateSavedState({comparisonViewMode, visibleColumns, showNonOv});\n }, [visibleColumns, comparisonViewMode, showNonOv]); // eslint-disable-line\n\n return (\n <>\n <TableHeader\n config={config}\n columnsData={groupedColumnsData}\n selectedColumns={visibleColumns}\n onChangeColumns={setVisibleColumns}\n showNonOv={showNonOv}\n onChangeShowNonOv={setShowNonOv}\n />\n <CollaborationContext.Provider value={collaboration}>\n {comparisonViewMode === ComparisonViewMode.COLUMNS ? (\n <DragAndDrop>\n <ColumnHandlerContext.Provider value={toggleSelect}>\n {isLoaded && (\n <ComparisonView {...comparisonViewProps} classes={{root: styles.comparisonView}} />\n )}\n </ColumnHandlerContext.Provider>\n </DragAndDrop>\n ) : (\n isLoaded && <MatchesTable {...matchesTableProps} />\n )}\n </CollaborationContext.Provider>\n {isGlobalSpinnerActive && <LinearLoadIndicator />}\n </>\n );\n};\n","import {useEffect, useMemo} from 'react';\nimport {Entity, Order} from '@reltio/mdm-sdk';\nimport {prop} from 'ramda';\nimport {useViewStateActions} from '../contexts/ViewStateContext';\nimport {DEFAULT_OPTIONS} from '../constants/defaultOptions';\nimport {useMatches} from './useMatches';\n\nexport const useFirstPotentialMatches = (enabled: boolean, entity: Entity) => {\n const {setSelectedItems} = useViewStateActions();\n\n const entityUri = prop('uri', entity);\n const dataTenant = prop('dataTenant', entity);\n const initialRequestParam = useMemo(\n () => ({\n enabled: !!entityUri,\n entity,\n filter: '',\n page: 0,\n sorting: {\n field: 'score',\n order: Order.desc\n },\n rowsPerPage: 3,\n options: DEFAULT_OPTIONS\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dataTenant, entityUri]\n );\n\n const {matches} = useMatches(initialRequestParam);\n\n useEffect(() => {\n setSelectedItems(matches);\n }, [matches, setSelectedItems]);\n};\n","import {getEntityTypeMatchAttributes, Metadata} from '@reltio/mdm-sdk';\nimport {concat, pipe} from 'ramda';\nimport {useMemo} from 'react';\nimport {getColumnsData, getMatchAttrColumns, groupColumnsDataByMatchAttributes} from '../helpers/attributesHelpers';\nimport {getSortOptionIdFromData} from '../helpers/sortHelpers';\n\nimport {MatchesColumnsData, GroupedColumnData} from '../types/potentialMatchesTypes';\n\ntype MatchesColumnsDataProps = {\n defaultColumnsData: MatchesColumnsData[];\n additionalColumnsData?: MatchesColumnsData[];\n metadata: Metadata;\n entityTypeUri: string;\n};\n\nexport const useMatchesColumnsData = ({\n defaultColumnsData,\n additionalColumnsData,\n metadata,\n entityTypeUri\n}: MatchesColumnsDataProps): [MatchesColumnsData[], GroupedColumnData[], string[]] => {\n return useMemo(() => {\n const attrColumnsData = getColumnsData(metadata, entityTypeUri);\n const allColumnsData: MatchesColumnsData[] = defaultColumnsData\n .concat(additionalColumnsData || [])\n .concat(attrColumnsData);\n const matchAttributes: string[] = getEntityTypeMatchAttributes(metadata, entityTypeUri);\n const groupedColumnsData: GroupedColumnData[] = groupColumnsDataByMatchAttributes(\n matchAttributes,\n allColumnsData\n );\n const defaultColumns: string[] = pipe(\n getMatchAttrColumns,\n concat(defaultColumnsData),\n getSortOptionIdFromData\n )(matchAttributes, attrColumnsData);\n return [allColumnsData, groupedColumnsData, defaultColumns];\n }, [defaultColumnsData, additionalColumnsData, metadata, entityTypeUri]);\n};\n","import {concat, filter, map, pipe, prop, propEq, uniq} from 'ramda';\nimport {DEFAULT_ROWS} from '../../../constants/defaultRows';\n\nconst addFixedAttributes = (visibleAttributes: string[] = []): string[] => {\n const getFixedAttributesIds = pipe(filter(propEq('hideable', false)), map(prop('id')));\n const getUnique = pipe(concat, uniq);\n\n const fixedAttributesIds = getFixedAttributesIds(DEFAULT_ROWS);\n return getUnique(fixedAttributesIds, visibleAttributes);\n};\n\nexport {addFixedAttributes};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.25 3H3.75c-.825 0-1.5.675-1.5 1.5v9c0 .825.675 1.5 1.5 1.5h10.5c.825 0 1.5-.675 1.5-1.5v-9c0-.825-.675-1.5-1.5-1.5zm-9 10.5h-1.5v-6h1.5v6zM3.75 6h1.5V4.5h-1.5V6zm6 7.5h-3v-6h3v6zm-3-7.5h3V4.5h-3V6zm7.5 7.5h-3v-6h3v6zm-3-7.5h3V4.5h-3V6z\",\n fill: \"#000\",\n fillOpacity: \".541\"\n})));","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n flexBox: {\n display: 'flex',\n alignItems: 'center'\n },\n icon: {\n display: 'flex',\n alignItems: 'center',\n margin: '0 4px'\n }\n});\n","import {useViewState, useViewStateActions} from '../../contexts/ViewStateContext';\nimport i18n from 'ui-i18n';\nimport {ConfirmationDialog} from '@reltio/components';\nimport React, {useCallback} from 'react';\nimport {ComparisonViewMode, MAX_PROFILES_TO_COMPARE} from '../../constants/views';\nimport TableIcon from './TableIcon.svg';\nimport {useStyles} from './styles';\n\nexport const ChangeModeConfirmation = () => {\n const {selectedItems, comparisonViewMode, limitSelection} = useViewState();\n const {setComparisonViewMode, deleteExtraMatches} = useViewStateActions();\n const styles = useStyles();\n const onSave = useCallback(() => {\n setComparisonViewMode(ComparisonViewMode.TABLE);\n }, [setComparisonViewMode]);\n const open = comparisonViewMode === ComparisonViewMode.COLUMNS && selectedItems.length > limitSelection;\n const title = i18n.text('Switch to table view');\n const content = (\n <div className={styles.flexBox}>\n {i18n.text('Please switch to')}\n <div className={styles.icon}>\n <TableIcon />\n </div>\n {i18n.text('Table View to compare more than ${max} profiles', {max: MAX_PROFILES_TO_COMPARE})}\n </div>\n );\n return (\n <ConfirmationDialog\n open={open}\n title={title}\n content={content}\n onSave={onSave}\n onDiscard={deleteExtraMatches}\n saveCaption={i18n.text('Proceed')}\n discardCaption={i18n.text('Cancel')}\n />\n );\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n perspectiveView: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif',\n overflowX: 'hidden',\n overflowY: 'auto',\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: theme.palette.background.default\n },\n potentialMatchesWrapper: {\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n flexGrow: 1\n },\n potentialMatchesContainer: {\n display: 'flex',\n overflow: 'hidden',\n flexGrow: 1\n },\n '@global div[role=tooltip]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n },\n '@global div[role=presentation]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n }\n}));\n","import React, {useCallback, useEffect, useRef} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdm from '@reltio/mdm-module';\nimport {equals} from 'ramda';\nimport {useSnackbar, SnackbarContext, useSavedStateForEntityType, ScreenProfileBand} from '@reltio/components';\nimport {Entity, PotentialMatchesPerspectiveConfig} from '@reltio/mdm-sdk';\nimport {RightSidePanel} from './components/RightSidePanel/RightSidePanel';\nimport {MatchReviewTable} from './components/MatchReviewTable/MatchReviewTable';\nimport {ViewStateProvider} from './contexts/ViewStateContext';\nimport {ReloadDataProvider} from './contexts/ReloadDataContext';\nimport {PotentialMatchesSavedState} from './types/potentialMatchesTypes';\nimport {ChangeModeConfirmation} from './components/ChangeModeConfirmation';\nimport {useStyles} from './styles';\n\ntype Props = {\n config: PotentialMatchesPerspectiveConfig;\n saveState: (state: Record<string, PotentialMatchesSavedState>) => void;\n getSavedState: () => Promise<Record<string, PotentialMatchesSavedState>>;\n};\n\nexport const PotentialMatchesView = ({config, getSavedState, saveState}: Props) => {\n const styles = useStyles();\n const entity: Entity = useSelector(mdm.selectors.getEntity);\n const {SnackbarRenderer, showSnackbarMessage} = useSnackbar();\n const lastSavedState = useRef<PotentialMatchesSavedState>();\n\n const {isLoaded, savedState, updateSavedState} = useSavedStateForEntityType<PotentialMatchesSavedState>({\n getSavedState,\n saveState,\n entityTypeUri: entity.type\n });\n\n useEffect(() => {\n if (!isLoaded) return;\n lastSavedState.current = savedState || {};\n }, [isLoaded, savedState]); // eslint-disable-line\n\n const onUpdateSavedState = useCallback(\n (stateToSave = {}) => {\n if (!lastSavedState.current) return;\n const newSavedState = {...lastSavedState.current, ...stateToSave};\n if (!equals(newSavedState, lastSavedState.current)) {\n updateSavedState(newSavedState);\n lastSavedState.current = newSavedState;\n }\n },\n [updateSavedState]\n );\n\n return (\n <ViewStateProvider>\n <ReloadDataProvider>\n <SnackbarContext.Provider value={showSnackbarMessage}>\n <div className={styles.perspectiveView}>\n {entity?.uri && (\n <div className={styles.potentialMatchesContainer}>\n <div className={styles.potentialMatchesWrapper}>\n <ScreenProfileBand entity={entity} />\n <MatchReviewTable\n config={config}\n isLoaded={isLoaded}\n savedState={savedState}\n onUpdateSavedState={onUpdateSavedState}\n />\n </div>\n <RightSidePanel\n config={config}\n isLoaded={isLoaded}\n savedState={savedState}\n onUpdateSavedState={onUpdateSavedState}\n />\n <SnackbarRenderer />\n <ChangeModeConfirmation />\n </div>\n )}\n </div>\n </SnackbarContext.Provider>\n </ReloadDataProvider>\n </ViewStateProvider>\n );\n};\n","import MomentUtils from '@date-io/moment';\nimport PropTypes from 'prop-types';\nimport React, {useCallback} from 'react';\nimport ReactResizeDetector from 'react-resize-detector';\nimport {createGenerateClassName, StylesProvider} from '@material-ui/core/styles';\n\nimport {MuiPickersUtilsProvider} from '@material-ui/pickers';\nimport {Provider} from 'react-redux';\nimport {identity} from 'ramda';\nimport {PotentialMatchesConfigType, promisifyCallback} from '@reltio/mdm-sdk';\nimport {PotentialMatchesView as PMView} from './PotentialMatchesView/PotentialMatchesView';\nimport {ErrorPopup, ViewIdContext} from '@reltio/components';\nimport {PotentialMatchesSavedState} from './PotentialMatchesView/types/potentialMatchesTypes';\n\nconst generateClassName = createGenerateClassName({\n productionPrefix: 'potentialMatchesView',\n disableGlobal: true\n});\n\nconst PotentialMatchesView = ({config, store, onResize = identity, saveState, getSavedState}) => {\n const getSavedStatePromisified = useCallback(\n promisifyCallback<Record<string, PotentialMatchesSavedState>>(getSavedState),\n [getSavedState]\n );\n\n return (\n <Provider store={store}>\n <ViewIdContext.Provider value={config.id}>\n <StylesProvider generateClassName={generateClassName}>\n <MuiPickersUtilsProvider utils={MomentUtils}>\n <ReactResizeDetector\n handleHeight\n onResize={(width, height) => onResize(Math.floor(width), Math.floor(height))}\n />\n {config && (\n <PMView config={config} saveState={saveState} getSavedState={getSavedStatePromisified} />\n )}\n <ErrorPopup />\n </MuiPickersUtilsProvider>\n </StylesProvider>\n </ViewIdContext.Provider>\n </Provider>\n );\n};\n\nPotentialMatchesView.propTypes = {\n config: PotentialMatchesConfigType,\n store: PropTypes.object,\n onResize: PropTypes.func,\n saveState: PropTypes.func,\n getSavedState: PropTypes.func\n};\n\nexport default PotentialMatchesView;\n","import {PotentialMatchesView} from '@reltio/potential-matches';\n\nexport default PotentialMatchesView;\n"],"names":["useStyles","makeStyles","icon","maxHeight","maxWidth","marginRight","group","metadata","styles","absoluteImagePath","useSelector","mdm","entityTypeGraphIcon","getEntityTypeGraphIcon","type","id","absoluteImageUrl","getAbsoluteImageUrl","AvatarWithFallback","className","avatarText","title","AvatarStates","rootClasses","otherProps","state","setState","useState","useEffect","ICON_MODE","TEXT_MODE","onImageLoadFail","ERROR_MODE","Avatar","classnames","iconRoot","src","onError","textRoot","attribute","cursor","lineHeight","flexBasis","display","alignItems","padding","width","borderBottom","disabled","attributeWithValue","noSelect","name","fontSize","color","overflow","whiteSpace","textOverflow","direction","textAlign","flex","defaultGetLabel","either","prop","value","getLabel","onSelectAttributeClick","label","onClick","undefined","ExpandedValueTooltip","i18n","SmallIconButton","size","ArrowDropDown","isEqualAttributes","eqBy","pick","checkAttributeIncludes","selectedAttributes","find","filterItem","item","filterText","toLowerCase","includes","filterItemsTree","children","some","getAttributeIndex","findIndex","getContainerWidth","getMaxItemWidth","getAttributeGroupData","groupId","groupName","level","noFilter","isItemFiltered","concat","filter","subItem","flatMap","flat","prepareGroupsForSelectAttributeList","curry","groups","map","items","attributes","length","subHeader","backgroundColor","margin","fontWeight","memo","onItemClick","focusIndex","hideCheckBox","mdmModule","VirtualGroupedList","getItemSize","i","renderItem","style","index","checked","isFocused","AttributeListItem","key","fieldName","data","notSelectable","Highlighter","text","highlight","labelInText","LogoIcon","renderGroupTitle","ListItem","component","needGroupIcon","AttributeGroupIcon","selector","minWidth","background","boxSizing","borderRadius","itemsGroups","onSelect","onRestoreFocus","identity","onOpenPopup","disableRestoreFocus","disableEnforceFocus","single","ungroup","selectAnchor","setSelectAnchor","closePopup","useCallback","isPopupOpen","setFilterText","clearFilterText","setSelectedAttributes","clearSelectedAttributes","filteredItemsGroups","useMemo","pipe","when","always","chain","flatten","flattenGroupedItemsData","containerWidth","Math","max","handleOnClose","tap","searchInputRef","useRef","onListItemClick","selectedAttribute","filterSelectedAttributes","current","focus","handleSearchOnEnter","groupData","getOnEnterHandler","handleKeyDown","useKeyboardNavigation","open","onSelectFocusedItem","selectedItems","onClose","event","currentTarget","SelectionPopup","anchorEl","onSearch","containerHeight","searchInputOnKeyDown","anchorOrigin","horizontal","vertical","height","contextSelector","CellRenderer","withContext","TableContext","getRowCellKey","rowIndex","columnData","cellIndex","rowCellHeightsMap","setRowCellHeightsMap","rowCellHeightsMapCache","flushHeightUpdates","debounce","clearHeightsCache","getDynamicRowCellHeight","__","changeRowCellHeight","useWith","hidden","visibility","CollapseRowButton","rowValue","toggleRowCollapse","getIsRowCollapsible","getIsRowCollapsed","useContext","RowCollapseContext","isCollapsibleRow","isCollapsedRow","CollapseButton","isOpen","e","stopPropagation","propTypes","PropTypes","RowCellAutoSizer","onChangeHeight","cell","cellProps","cellRef","changeCellHeight","adjustCellHeight","clientHeight","useDidUpdateEffect","rawValue","handleHeight","onResize","RootRef","rootRef","collapseButton","expandLess","transform","tooltipTitle","buttonProps","ExpandMore","iconClassName","tooltipProps","theme","root","flexWrap","flexDirection","justifyContent","minHeight","palette","primary","letterSpacing","secondary","paddingTop","root_small","embedded","flexShrink","full","textBox","marginTop","secondaryText","button","boxShadow","EMPTY_STATE_VARIANTS","EMPTY_STATE_ICONS","SEARCH_RESULTS","props","viewBox","xmlns","xmlnsXlink","cx","cy","fx","fy","r","gradientTransform","stopColor","stopOpacity","offset","x1","y1","x2","y2","x","y","filterUnits","stdDeviation","in","stroke","strokeWidth","fill","fillRule","xlinkHref","fillOpacity","mask","opacity","d","rx","ry","SELECT_ATTRIBUTES","maskType","maskUnits","clipRule","gradientUnits","NO_DATA","dx","dy","result","values","mixBlendMode","ERROR","colorInterpolationFilters","floodOpacity","mode","in2","variant","LogoRenderer","buttonTitle","access","showButton","Typography","classes","h5","subtitle1","Button","row","marginBottom","rowItem","paddingRight","fullWidth","flexGrow","readOnlyLogicOperatorContainer","readOnlyFilter","marginLeft","ReadOnlyLogicOperator","rowData","operator","capitalize","ReadOnlyFilter","getFilterOptionLabel","QueryBuilderRow","previousRowData","LogicOperatorComponent","AttributeSelectorComponent","FilterSelectorComponent","ValuesEditorComponent","ActionsComponent","filterSelectorRef","attributeSelectorProps","rowContext","logicOperatorContainer","attributeSelectorContainer","filterSelectorContainer","textFieldInputRef","valuesEditorContainer","actionsContainer","QueryBuilderAttributeType","onOpen","disablePopoverRestoreFocus","QueryBuilderRowsGroup","rowClasses","rowsData","lastRowAttributeSelectorProps","filterSelectorRefIndex","rowProps","renderRow","previousRow","path","lastRowProps","withMuiSkin","CreatableSelect","Option","innerProps","innerRef","isSelected","selectProps","MenuItem","classNames","option","ref","selected","Checkbox","onMouseMove","onMouseOver","tabIndex","isRequired","top","left","placeholder","clearIndicator","spacing","dropdownIndicator","MultiSelect","creatable","getOptions","loadingIndicator","components","componentsProp","classesProp","stylesProp","onChange","onChangeProp","onInputChange","onInputChangeProp","menuPlacement","reactSelectProps","SelectComponent","AsyncSelect","Select","inputValue","setInputValue","multiSelectClasses","omit","inputId","multiSelectComponents","mergeClasses","indicatorSeparator","base","loadingMessage","fontFamily","labelProps","TextFieldProps","InputLabelProps","htmlFor","shrink","isMulti","actionMeta","action","closeMenuOnSelect","hideSelectedOptions","loadOptions","defaultProps","cacheOptions","defaultOptions","options","ClearIndicator","Control","DropdownIndicator","DownChevron","CrossIcon","Group","GroupHeading","IndicatorsContainer","IndicatorSeparator","Input","LoadingIndicator","Menu","MenuList","MenuPortal","LoadingMessage","NoOptionsMessage","MultiValue","MultiValueContainer","MultiValueLabel","MultiValueRemove","Placeholder","SelectContainer","SingleValue","ValueContainer","control","valueContainer","multiValue","noOptionsMessage","singleValue","menu","container","groupHeading","indicatorsContainer","input","menuList","menuPortal","multiValueLabel","multiValueRemove","menuPortalTarget","getOptionValue","isSearchable","inputRef","profileBandNavigation","comments","ScreenProfileBand","entity","historySlice","objectIds","getProfileBandObjectIdsForCollaboration","collaboration","useCollaboration","entityUri","getEntityUriForLink","CollaborationContext","ProfileBand","COMMENTS_CONTAINER_VISIBILITY_AREA","aEntity","ProfileBandHistory","ProfileBandNavigation","CommentsContainer","uri","relatedObjectUris","createRelatedObjectUris","CollaborationObjectTypes","objectType","displayName","sourceType","findSourceSystemByUri","getSourceSystemLabel","sourceIcon","renderAttributesList","valueContainerClassName","attributeValue","expanded","LabelRenderer","RightSlot","attributeType","DataTypes","attributeValues","imageSize","imageHeight","imageWidth","imageMargin","CrosswalksDisplayContext","createContext","CrosswalksDisplayProvider","Provider","useCrosswalkColor","crosswalk","getCrosswalkColor","getColor","getCrosswalkId","useHighlightedCrosswalks","highlightedCrosswalks","useCrosswalkHighlight","setCrosswalkHighlighted","noop","isHighlighted","isDimmed","highlightCrosswalk","removeHighlight","useCrosswalkFocus","toggleCrosswalkFocus","focusedCrosswalks","_extends","Object","assign","target","arguments","source","prototype","hasOwnProperty","call","apply","this","React","ActivePanel","ComparisonViewMode","DataContext","reloadData","setReloadHandler","contextValue","dataHandler","reloadHandler","createContextValue","ReloadDataProvider","useReloadData","dataContext","Error","ViewStateContext","ViewDispatchContext","SET_GLOBAL_SPINNER","SET_SELECTED_ITEMS","DESELECT_BY_ENTITIES","TOGGLE_SELECT","SET_LIMIT_SELECTION","SET_COMPARISON_VIEW_MODE","SET_ENTITIES_MAP","DELETE_EXTRA_MATCHES","actions","setGlobalSpinner","createStandardAction","setSelectedItems","deselectByEntities","toggleSelect","setLimitSelection","setComparisonViewMode","setEntitiesMap","deleteExtraMatches","viewStateReducer","isGlobalSpinnerActive","payload","slice","limitSelection","evolve","object","itemIndex","selectedItem","remove","append","newMode","comparisonViewMode","COLUMNS","entitiesMap","ViewStateProvider","dispatch","useReducer","viewStateAction","useActions","useViewState","viewStateContext","useViewStateActions","viewStateActions","RESET","SET_OPTIONS","basicTableViewState","reset","setOptions","reducer","createAttributeItemConfig","attrNode","parents","config","createAttributeItemBasicConfig","childNode","attrType","attributeUriToSearchUri","collectAttributeItems","entityType","getAllAttributeTypesTree","getColumnsDataFromEntityAttributes","attr","dataTypeDefinition","getAttrDataTypeDefinition","getColumnsData","getEntityAttributesFromMetadata","isMatchAttrColumn","matchAttributes","column","attrUri","isReferenceAttrColumn","isSubAttrIdForColumn","isNestedAttrColumn","isNested","isReference","parentColumn","columnId","startsWith","isNestedForOneOfColumns","columns","isRelatedToColumns","getMatchAttrColumns","columnsData","reject","ROWS_PER_PAGE_OPTIONS","MATCHES_SORT_OPTIONS","ADDITIONAL_SORT_OPTIONS_DATA","DEFAULT_SORT_OPTIONS","getSortOptionIdFromData","pluck","buildRulesStringFormFilters","filters","join","isMatchRuleFilter","any","equals","MatchRulesAttrTypes","useMatchesReducer","defaultRowsPerPage","initState","page","rowsPerPage","stateReducer","resultActions","viewActions","viewState","showAddRelationErrors","error","console","ErrorPopup","message","showApiError","errorMessage","showDCRReviewErrors","errorCode","ApiErrorCode","useSpinnerAndReloadData","onStartRequest","onFinishRequest","MergeButton","forwardRef","entities","ActionButtonMode","onMenuClose","onSuccess","NotMatchButton","version","SetAMatchButton","markingIsInProgress","setAMatch","setAsMatch","then","finally","useSetAMatch","ActionButton","SetAsMatchIcon","DCRReviewButton","showSnackbarMessage","SnackbarContext","operationIsInProgress","startPMReview","selectors","workflowPath","getWorkflowPath","environment","getWorkflowEnvironmentUrl","tenant","getTenant","getUri","uris","getUrisFromEntities","startProcessInstanceByPairs","processType","objectURIs","catch","useRequestDCRReview","canStartProcessInstanceSearchQuery","isEmptyValue","DcrReviewIcon","ReinstateMatchButton","reinstateIsInProgress","onReinstateMatch","dtssPath","params","customerTenant","isDataTenantEntity","reinstateDataTenantEntityMatch","reinstateMixedEntitiesMatches","useReinstateMatch","CreateRelationButton","mainEntity","currentEntity","matchRules","AddRelationIcon","RightSideHeaderContext","attributeSelect","field","split","sortLevel","findNode","parentFieldName","node","handleChange","val","BasicAttributeSelector","rowCheckbox","position","header","border","borderTop","sorting","arrow","transition","rotate","selectedCount","totalCount","sortOptions","onSorting","totalOnPage","sidePanelHeaderProps","SidePanelContentHeader","secondTitle","n","indeterminate","IconButton","order","Order","useSortOptions","additionalOptions","entityTypeUri","getEntityType","getSortingItemsGroups","col","paddingBottom","actionButtons","active","wrapper","content","right","pointerEvents","borderLeft","paddingLeft","entityLabel","main","textDecoration","matchRulesWrapper","selectedRow","coloredRow","matchScore","commentsContainer","rightButton","tenantIcon","divider","match","entityToMatch","isRowSelected","isColumnViewMode","actionButtonsRenderer","getEntityColor","openMenu","setOpenMenu","isRowSelectable","Actions","EntityUriLink","MatchRulesBlock","MatchRuleVariant","Divider","orientation","DataTenantBadge","dataTenantId","dataTenant","buttonClassName","hoveredMatch","onActionsMenuOpen","onActionsMenuClose","createObjectIdForPM","matchEntityUri","allowOnlyOneComment","showAlways","view","overflowY","overflowX","MatchItems","matches","gap","inputRoot","menuButtonRoot","searchTenant","onChangeSearchTenant","currentSearchText","setCurrentSearchText","handleSearch","propEq","trim","handleChangeSearchText","newSearchText","isEmpty","document","activeElement","TenantsDropDownSelector","selectedTenant","onChangeTenant","SearchInput","autofocus","onKeyPress","MenuItemRenderer","ActionsPanel","numberOfButtons","actionButtonSize","buttonActions","menuActions","splitAt","buttonMode","buttonSize","actionButton","DropDownMenuButton","buttonComponent","SmallIconButtonWithTooltip","MoreVertIcon","moreOptions","menuId","menuItems","onMenuOpen","mainArea","FindMatchesView","useDispatch","changeRowsPerPage","changePage","searchText","setSearchText","setSearchTenant","handleChangeSearchTenant","newSearchTenant","requestFilters","total","findEntities","enabled","searchTenantId","activityFilter","globalFilter","setTotal","setEntities","safePromise","useSafePromise","DEFAULT_SELECTION","filterQuery","buildFilterQueryString","isDtss","dtssProps","entityRequestOptions","sort","select","entityRequest","getFilteredEntitiesFromDataTenant","enrichEntityWithDataTenant","getFilteredEntities","totalRequestOption","totalRequest","getTotalFromDataTenant","getTotals","Promise","all","results","totalResponse","useFindEntities","profile","resetPage","resetSelected","selectAll","getEntityUriFromMatchObject","canMerge","canMark","getActionPermissionForMatch","isDTEntity","show","pathEq","BasicTablePagination","rowsPerPageOptions","count","onChangePage","onChangeRowsPerPage","LinearLoadIndicator","useMatches","rules","onStartLoading","onFinishLoading","loadMatches","useMatchesLoader","markMatchedValues","dialogPaper","dialogTitle","titleText","fontize","attributeList","containerRef","relation","inRelations","inRelationTypes","outRelations","outRelationTypes","isNotDuplicatedInRelation","isNotDuplicatedOutRelation","inOutRelationsDeduplicator","setObjectTypes","assocPath","startObject","objectTypeURI","endObject","matchActionConfig","propOr","rulesConfig","getRulesConfig","relationTypeUris","createRelation","canCreateRelationBetweenEntities","getRelationType","getRelationTypesFromConfig","relationUri","relationType","pathOr","relationAttrTypes","getRelationAttributesList","attributeListEntity","getActivenessAttributes","viewId","onRelationTypeChange","onAddAttributes","param","onChangeAttribute","onDeleteAttribute","handleClose","resetErrors","validate","errors","validateConnectionRelation","onCancel","boundariesElement","popupBoundariesValue","element","priority","Dialog","paper","DialogTitle","disableTypography","DialogContent","PopupBoundariesContext","ConnectionRelationTypeSelector","applyFirstByDefault","AttributesList","attrTypes","showEmptyEditors","ModeTypes","parentUri","DialogActions","startDate","endDate","startEntityUri","endEntityUri","useAddRelationDialog","showDialog","setShowDialog","relationDialogContent","setRelationDialogContent","openAddRelationDialog","newConnection","generateNewRelationUri","isNew","createNewConnection","closeAddRelationDialog","AddRelationDialogRenderer","DEFAULT_OPTIONS","showTransitiveMatches","MatchesView","hasWorkflow","matchRulesFilters","regularFilters","partition","matchesFilter","getPotentialMatchesObjectIdsForCollaboration","keys","canAddRelation","hasDTEntity","EntitiesMapContext","NotMatchView","loadNotMatches","setMatches","dataTenants","dtssParams","dtssRequest","getNotMatchesFromDataTenants","getNotMatchWithDtss","withDtssPotentialItems","getNotMatch","getNotMatchWithPaging","usePagingSimulator","markAsNotMatch","record","NOT_MATCH","loadNotMatchesIfNeeded","force","addGlobalFilterToQuery","activeness","response","originalResponse","getEntitiesMapForTransitiveMatches","useNotMatches","Content","activeView","users","useUsers","UsersContext","PotentialMatches","FindMatches","NotAMatch","render","ValuesEditor","changeFilter","commonProps","newValues","InputProps","isMatchRuleAttrType","MatchRulesSelector","isSourceSystemAttrType","SourceSystemsSelector","optionLabel","potentialMatchesComponents","FilterSelector","FilterOptions","MatchesAttributesFiltersButton","attributeTypes","setShowTransitiveMatches","AttributesFiltersButton","onTogglePopup","isFiltersApplied","FormControlLabel","light","sourceSystemsComponents","RightSidePanel","isLoaded","savedState","onUpdateSavedState","matchesFilters","setMatchesFilters","matchesOptions","setMatchesOptions","findMatchesFilters","setFindMatchesFilters","notMatchFilters","setNotMatchFilters","matchesSorting","setMatchesSorting","findMatchesSorting","setFindMatchesSorting","notMatchSorting","setNotMatchSorting","setActive","toggleActive","newId","resetActive","analyticsAttributes","isReadableAttribute","getAttributeTypes","matchRulesAttributes","check","hasMatchRulesWithoutML","hasMlMatchRule","reduce","push","potentialMatchesAttributeTypes","findMatchesAttributeTypes","EntityAttrTypes","CrosswalksAttrTypes","onChangeMatchesFilters","elements","PotentialMatchesIcon","headerProps","mainTitle","rightContent","FindMatchesIcon","NotAMatchIcon","showSidePanel","SidePanel","SideButtonsPanel","buttonsProps","onButtonClick","activeIndexId","MODES","Icon","ViewColumnRoundedIcon","TABLE","TableRowsOutlinedIcon","isTableOnly","ModeSwitcher","modes","baseMode","maxProfiles","modeId","clearAllButton","mergeButton","splitter","actionSplitter","getEntityObjects","TableHeader","selectedColumns","onChangeColumns","showNonOv","onChangeShowNonOv","getActionPermissionForMatches","hasSelectedItems","handleToggleShowOvValue","not","settingItems","selectable","BasicViewHeader","Spacer","SettingsMenu","ColumnsSettings","ExpandedContext","expandedMap","onExpandType","Component","WithExpanded","componentProps","matchedAttributeBackground","complexAttributesHeadRenderer","complexAttributesHeadLabel","arrowButton","matchedAttribute","badge","alignSelf","highlightedValuesUris","HighlightedValuesContext","areOneHierarchyUris","Tooltip","ExpandableAttributeValuesBlock","withExpanded","ReadOnlyAttributeValuesBlock","AttributesRenderer","matchedValuesUris","highlightedValuesContextValue","highlightedClassName","MatchedValuesCounter","ColumnDataContext","menuButtonWrapper","headCell","HeadCellRenderer","hideable","setAnchor","setHoveredId","hoveredId","ComplexAttributesHeadRenderer","onExpandClick","ArrowExpandButton","HoveredEntityContext","hoveredEntity","resetHoveredEntity","permission","isEntityFindMatch","isEntityNotMatch","isEntityPotentialMatch","hovered","colored","removeButton","zIndex","matchControlsContainer","isPotentialMatchesTask","task","WorkflowTasksAvailabilityContext","assigneeContainer","getCommentsInfoFromTasks","WorkflowCard","workflowTasks","matchUri","requestIsInProgress","setRequestIsInProgress","tasks","setTasks","loadTasks","getTasksForEntity","hasMatchEntityUri","propSatisfies","isTaskBelongsToMatch","allPass","updateTaskState","taskId","mergeLeft","onActionSuccess","loading","useWorkflowTasks","setWorkflowTaskAvailability","TaskActions","possibleActions","assignee","isTaskOpen","WorkflowTasksContext","PotentialMatchReviewCard","date","dueDate","processDefinitionDisplayName","createdBy","step","getPropsFromTasks","AssigneeSelector","WorkflowComments","DEFAULT_ROWS","draggable","initialWidth","autoResize","itemContainer","showTooltip","SourceIcon","crosswalkIcon","labelContainer","spacer","crosswalks","checkIsDataTenantEntity","additionalPropsForDefaultRows","cellRenderer","isSelectedEntity","onRemove","rest","isHovered","getEntityId","controlProps","CloseIcon","ProfileCard","MatchControls","headCellRenderer","workflowCard","sources","SourcesRenderer","entityId","nestedAttributeValue","subAttributeType","getFakeAttributeValueForCrosswalk","score","defaultRows","getAttrTypeNameByUri","last","getMatchedValuesUris","matchedValues","cond","getColumnDataForRowData","onRemoveItem","isMainEntity","isAttributeSearchUri","attrSource","getAttributeSource","isOv","getAttributeValues","ColumnHandlerContext","getFirstLevelParentAttribute","replaceSubAttributesWithParent","uniq","Action","TEXT","INSERT_BELOW","INSERT_ABOVE","HIDE","Popover","List","handler","ListItemText","primaryTypographyProps","renderListItem","getClickHandler","deepFilter","nodes","groupColumnsData","groupedItems","headColumns","elemId","getAdditionalRows","setAction","isOpenConfigPopup","setIsOpenConfigPopup","closeAddRowPopup","newAttributes","indexOf","splice","ColumnsSettingsPopup","onColumnClick","newIndex","borderStyle","comparisonTableWrapper","collapsedRow","comparisonTable","borderSpacing","borderRight","verticalAlign","wordBreak","wordWrap","emptyState","ComparisonTable","setSelectedColumns","allColumnsData","setHoveredEntity","anchor","selectedColumnsWithoutSubAttributes","searchUri","defaultRow","attrTypeUri","searchUriToAttrUri","findAttributeTypeByUri","collectionName","isComplexAttribute","getTableRowsData","showNonOnly","isDraggable","getTableColumnsData","setExpandedMap","expandedContextValue","headCellData","onClosePopup","selectedAttributeUris","hoveredEntityContextValue","isThereAnyTask","workflowTasksAvailabilityMap","setWorkflowTasksAvailabilityMap","useWorkflowTasksAvailability","workflowCardRowClassname","displayedRowsData","rowClassName","VerticalHeadingsTable","theadRowsNumber","onMoveRow","dragId","hoverId","newArr","groupBy","getFirstLevelSearchUri","toPairs","dragIndex","hoverIndex","dragRow","insert","nth","onMoveColumn","dragColumn","setHoveredColumn","columnValue","resetHoveredColumn","EmptyState","table","ComparisonView","defaultWrapperStyles","getColoredRowCellStyle","hoveredColor","fade","lightPrimaryBackground","lighten","lightPrimaryBackgroundHovered","highlightBackground","entityBackground","link","rowCloseIcon","backgroundImage","firstHeadCell","headCellWithEntity","rowCell","rowCellFirstColumn","firstEntityCell","entityRowCell","entityRowCellSelected","rowCellHighlighted","rowCellSelected","defaultWrapper","hoveredDefaultWrapper","entityWrapper","profileWrapper","blobWrapper","imageWrapper","referenceWrapper","entityAvatar","dragIcon","ovFalse","inactive","withFilterAtBottom","DefaultHeadCellRenderer","simpleValue","ov","DataTypeValue","withTableContext","onToggleSelect","isRowRemovable","hoverRowIndex","containerId","IdContext","isRowHovered","isFirstRow","wrapperStyle","shouldRenderCommentsContainer","DragIndicator","isFirstColumn","headIndex","blobValue","onScroll","imgValue","getImageAttributeOvThumbnailUrl","EntityTypeIcon","getReferencedEntityFromAttrValue","objectURI","getAttrPathFromColumnId","getBasicTableRowsData","allMatchRules","getAttributesForMatchRules","filteredColumnsData","acc","assoc","attrPath","ifElse","getAttributeValuesByPathWithOvFlag","getOvAttributeValuesByPathWithOvFlag","getRowValueForColumn","getNestedPathByColumnId","getCellValueRenderer","EntityProfileRenderer","MatchRulesRenderer","dataType","BlobRender","ImageRenderer","ReferenceRenderer","DefaultCellValueRenderer","getCellValueRendererByDataType","isCellHighlighted","every","CellValueRenderer","columnIndex","tableContainer","rowActionButtonsWrapper","rowActionButtons","hoveredRowRightContentContainer","dragColumnHead","borderColor","borderLeftColor","borderRightColor","dragColumnBody","onReorderingColumn","onFilter","onSort","onResetSelect","onSelectAll","basicTableRef","isComparisonViewShown","orderedMatches","setOrderedMatches","onDndRowReorder","oldPosition","newPosition","move","setHoverRowIndex","tableRowsData","sortable","tableColumnsData","resizable","nestedPath","ProfileHeadCellRenderer","rowCellValueRenderer","getBasicTableColumnsData","entityRowData","getRowHeight","EntityCellRenderer","useBasicTableCellRenderer","maxRowValuesCount","entityRowHeight","enhancedColumnsData","withEntityCell","withEntityCellValue","onDndColumnReorder","what","where","oldPositionId","newPositionId","tableContext","isAllSelected","useDynamicRowCellHeight","useLayoutEffect","openActionsMenu","setOpenActionsMenu","openCollaborationPopup","setOpenCollaborationPopup","onRowHover","prevHoverRowIndex","hoveredRowRightContent","isChecked","onChangePopupVisibility","renderRowCell","actionsContent","tableRef","getRowCellHeight","defaultGetRowCellHeight","tableClasses","BasicTable","fixFirstColumn","context","defaultColumnWidth","defaultColumnMinWidth","headRowHeight","hoverStateEnabled","dndRowReorderingEnabled","dndColumnReorderingEnabled","dndColumnReorderingHandler","dndRowReorderingHandler","hoveredContentPosition","comparisonView","MatchReviewTable","initialRequestParam","useFirstPotentialMatches","groupedColumnsData","defaultColumns","defaultColumnsData","additionalColumnsData","attrColumnsData","getEntityTypeMatchAttributes","matchAttrColumns","otherColumns","groupColumnsDataByMatchAttributes","useMatchesColumnsData","visibleColumns","setVisibleColumns","setShowNonOv","visibleColumnsData","comparisonViewProps","matchesTableProps","visibleAttributes","getFixedAttributesIds","getUnique","fixedAttributesIds","addFixedAttributes","has","DragAndDrop","flexBox","ChangeModeConfirmation","onSave","TableIcon","ConfirmationDialog","onDiscard","saveCaption","discardCaption","perspectiveView","bottom","default","potentialMatchesWrapper","potentialMatchesContainer","PotentialMatchesView","getSavedState","saveState","SnackbarRenderer","useSnackbar","lastSavedState","updateSavedState","useSavedStateForEntityType","stateToSave","newSavedState","S","generateClassName","createGenerateClassName","productionPrefix","disableGlobal","store","getSavedStatePromisified","promisifyCallback","ViewIdContext","StylesProvider","MuiPickersUtilsProvider","utils","MomentUtils","floor","PotentialMatchesConfigType"],"sourceRoot":""}
|