@reltio/remotes 1.4.1387 → 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.
Files changed (130) hide show
  1. package/1219.js +2 -0
  2. package/1219.js.map +1 -0
  3. package/1375.js +1 -1
  4. package/1375.js.map +1 -1
  5. package/1689.css +636 -0
  6. package/1689.css.map +1 -0
  7. package/1689.js +2 -0
  8. package/1689.js.map +1 -0
  9. package/2114.js +1 -1
  10. package/2114.js.map +1 -1
  11. package/2443.js +3 -0
  12. package/{8782.js.LICENSE.txt → 2443.js.LICENSE.txt} +0 -0
  13. package/2443.js.map +1 -0
  14. package/2890.js +1 -1
  15. package/2890.js.map +1 -1
  16. package/3149.js +2 -0
  17. package/3149.js.map +1 -0
  18. package/3213.js +3 -0
  19. package/{3723.js.LICENSE.txt → 3213.js.LICENSE.txt} +0 -0
  20. package/3213.js.map +1 -0
  21. package/3273.js +2 -0
  22. package/3273.js.map +1 -0
  23. package/3540.js +1 -1
  24. package/3540.js.map +1 -1
  25. package/3602.js +2 -0
  26. package/3602.js.map +1 -0
  27. package/4015.js +2 -0
  28. package/4015.js.map +1 -0
  29. package/447.js +1 -1
  30. package/447.js.map +1 -1
  31. package/461.js +1 -1
  32. package/461.js.map +1 -1
  33. package/4678.js +2 -0
  34. package/4678.js.map +1 -0
  35. package/4843.js +1 -1
  36. package/{7880.css → 4881.css} +1 -1
  37. package/{7880.css.map → 4881.css.map} +1 -1
  38. package/4881.js +2 -0
  39. package/4881.js.map +1 -0
  40. package/4889.js +1 -1
  41. package/4889.js.map +1 -1
  42. package/5400.js +1 -1
  43. package/5400.js.map +1 -1
  44. package/5601.js +2 -0
  45. package/5601.js.map +1 -0
  46. package/5709.js +1 -1
  47. package/5709.js.map +1 -1
  48. package/5720.js +1 -1
  49. package/5720.js.map +1 -1
  50. package/5937.js +1 -1
  51. package/5937.js.map +1 -1
  52. package/6103.js +1 -1
  53. package/6103.js.map +1 -1
  54. package/6312.js +1 -1
  55. package/6312.js.map +1 -1
  56. package/6413.js +3 -0
  57. package/{5312.js.LICENSE.txt → 6413.js.LICENSE.txt} +0 -0
  58. package/6413.js.map +1 -0
  59. package/6617.js +2 -0
  60. package/6617.js.map +1 -0
  61. package/6669.js +2 -0
  62. package/6669.js.map +1 -0
  63. package/6710.js +2 -0
  64. package/6710.js.map +1 -0
  65. package/6913.js +2 -0
  66. package/6913.js.map +1 -0
  67. package/7584.js +2 -0
  68. package/7584.js.map +1 -0
  69. package/7937.js +1 -1
  70. package/7937.js.map +1 -1
  71. package/8051.js +2 -0
  72. package/8051.js.map +1 -0
  73. package/8183.js +2 -0
  74. package/8183.js.map +1 -0
  75. package/8443.js +2 -0
  76. package/8443.js.map +1 -0
  77. package/9043.js +1 -1
  78. package/9043.js.map +1 -1
  79. package/9211.js +1 -1
  80. package/9211.js.map +1 -1
  81. package/9431.js +1 -1
  82. package/9431.js.map +1 -1
  83. package/9630.js +1 -1
  84. package/9630.js.map +1 -1
  85. package/9754.js +3 -0
  86. package/{9396.js.LICENSE.txt → 9754.js.LICENSE.txt} +0 -0
  87. package/9754.js.map +1 -0
  88. package/99.js +2 -0
  89. package/99.js.map +1 -0
  90. package/package.json +1 -1
  91. package/remoteEntry.js +1 -1
  92. package/remoteEntry.js.map +1 -1
  93. package/162.js +0 -2
  94. package/162.js.map +0 -1
  95. package/1807.js +0 -2
  96. package/1807.js.map +0 -1
  97. package/3723.js +0 -3
  98. package/3723.js.map +0 -1
  99. package/376.js +0 -2
  100. package/376.js.map +0 -1
  101. package/3760.js +0 -2
  102. package/3760.js.map +0 -1
  103. package/39.js +0 -2
  104. package/39.js.map +0 -1
  105. package/4038.js +0 -2
  106. package/4038.js.map +0 -1
  107. package/4312.js +0 -2
  108. package/4312.js.map +0 -1
  109. package/4689.js +0 -2
  110. package/4689.js.map +0 -1
  111. package/4713.js +0 -2
  112. package/4713.js.map +0 -1
  113. package/5312.js +0 -3
  114. package/5312.js.map +0 -1
  115. package/7861.js +0 -2
  116. package/7861.js.map +0 -1
  117. package/7880.js +0 -2
  118. package/7880.js.map +0 -1
  119. package/8782.js +0 -3
  120. package/8782.js.map +0 -1
  121. package/8922.js +0 -2
  122. package/8922.js.map +0 -1
  123. package/9396.js +0 -3
  124. package/9396.js.map +0 -1
  125. package/9606.css +0 -3
  126. package/9606.css.map +0 -1
  127. package/9606.js +0 -2
  128. package/9606.js.map +0 -1
  129. package/9992.js +0 -2
  130. package/9992.js.map +0 -1
package/8922.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"8922.js","mappings":"wIAIKA,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,UAACC,EAAD,KAAYC,EAAZ,WAAkBC,EAAlB,YAA8BC,GAAuC,EAAvBC,E,kXAAuB,oDAC7F,MAAOC,EAAOC,IAAYC,EAAAA,EAAAA,UAAuB,OACjDC,EAAAA,EAAAA,YAAU,KAEFF,EADAL,EACSF,EAAaU,UAEbV,EAAaW,aAE3B,CAACT,EAAMC,IACV,MAAMS,EAAkB,KACpBL,EAASP,EAAaa,aAG1B,OAAQP,GACJ,KAAKN,EAAaU,UACd,OACI,kBAAC,EAAAI,OAAD,GACIb,UAAWc,GAAAA,CAAWd,EAAWG,MAAAA,OAAZ,EAAYA,EAAaY,UAC9CC,IAAKf,EACLgB,QAASN,GACLP,IAGhB,KAAKL,EAAaW,UAClB,KAAKX,EAAaa,WACd,OACI,kBAAC,EAAAC,OAAD,GAAQb,UAAWc,GAAAA,CAAWd,EAAWG,MAAAA,OAAZ,EAAYA,EAAae,WAAed,GAChEF,GAGb,QACI,OAAO,Q,2IChDZ,MAAMiB,GAAYC,E,SAAAA,GAAW,CAChCC,KAAM,CACFC,QAAS,OACTC,WAAY,SACZC,eAAgB,SAChBC,MAAO,OACPC,OAAQ,QAEZC,MAAO,CACHC,MAAO,aCDR,IAAKC,G,SAAAA,GAAAA,EAAAA,EAAAA,KAAAA,GAAAA,OAAAA,EAAAA,EAAAA,SAAAA,GAAAA,WAAAA,EAAAA,EAAAA,QAAAA,GAAAA,UAAAA,EAAAA,EAAAA,KAAAA,GAAAA,O,CAAAA,IAAAA,EAAAA,KAcZ,MA2BA,EA3BqB,IAAkF,IAAjF,QAACC,EAAU,GAAX,QAAeC,EAAU,GAAzB,QAA6BC,EAAUC,EAAAA,GAAvC,KAA6CC,EAAOL,EAAYM,MAAiB,EACnG,MAAMC,EAASjB,IAuBf,OAAO,yBAAKnB,UAAWc,GAAAA,CAAWsB,EAAOf,KAAMS,EAAQT,OArB7B,MACtB,OAAQa,GACJ,KAAKL,EAAYM,KACb,OACI,kBAACE,EAAA,EAAD,CACIrC,UAAW8B,EAAQQ,OACnBC,KAAM,IACNC,aAAcT,EACd9B,KAAMwC,EAAAA,EACNT,QAASA,IAIrB,KAAKH,EAAYa,SACb,OAAO,kBAAC,EAAAC,iBAAD,CAAkB3C,UAAW8B,EAAQc,QAASL,KAAM,KAC/D,KAAKV,EAAYgB,QACb,OAAO,kBAACC,EAAA,EAAD,CAAU9C,UAAWc,GAAAA,CAAWsB,EAAOT,MAAOG,EAAQH,SACjE,QACI,OAAO,OAG4CoB,M,qKChD5D,MAAMC,EAAUC,GAAYA,GAAWA,EAAQC,eAAe,CAACC,MAAO,MAAOC,SAAU,WAEjFC,EAAoBC,IACzBA,GACAC,aAAaD,IAIRE,EAAqB,CAACP,EAASQ,KACxC,GAAIR,GAAWQ,EAAkB,CAC7B,MAAMC,EAAUT,EAAQU,UAClBC,EAAaX,EAAQU,UAAYV,EAAQY,cACzC,aAACA,EAAD,UAAeC,GAAaL,EAClC,OAAOC,GAAW,GAAKE,EAAaE,GAAaF,EAAaE,EAAYD,I,qCCV3E,MAAM1C,GAAYC,EAAAA,EAAAA,IAEjB2C,IAOO,CACH,qBAAsB,CAClBC,KAAM,CAACC,WAAY,eACnB,MAAO,CAACA,WAAY,WACpB,OAAQ,CAACA,WAAY,gBAGzBC,YAAa,CACTC,cAAe,WACfC,kBAAmB,KACnBC,wBAAyB,GAG7BC,KAAM,CACFhD,QAAS,OACTiD,UAAW,OACXC,aAAc,+BACdC,cAAe,MAEf,UAAW,CAEPC,QAAS,GACTH,UAAW,UACXI,SAAU,GAGd,UAAW,CACPC,gBAAiB,wBAIzBC,UAAW,CACPC,OAAQ,WAGZC,SAAU,CACNd,YAAYe,EAAAA,EAAAA,IAAKjB,EAAMkB,QAAQC,QAAQC,KAAM,KAC7C,UAAW,CACPlB,YAAYe,EAAAA,EAAAA,IAAKjB,EAAMkB,QAAQC,QAAQC,KAAM,OAIrDC,SAAU,CACNnB,WAAYF,EAAMsB,mBAElB,UAAW,CACPpB,WAAYF,EAAMuB,yBAGtB,aAAc,CACVrB,WAAYF,EAAMwB,2BAElB,UAAW,CACPtB,WAAYF,EAAMyB,mCAK9BC,aAAc,CACVb,gBAAiB,sBAGrBc,OAAQ,CACJC,WAAY,QAGhBC,MAAO,CACHlE,OAAQ,OACRD,MAAO,OACPoE,UAAW,MACXC,aAAc,OAGlBC,KAAM,CACFJ,WAAY,OACZK,SAAU,EACV1E,QAAS,OACTmD,cAAe,SACfjD,eAAgB,SAChBmD,SAAU,OACVlD,MAAO,OACPwE,SAAU,SACVC,aAAc,aACdC,SAAU,cAGdC,MAAO,CACHzB,SAAU,OACV0B,WAAY,OACZC,WAAY,IACZ1E,MAAOmC,EAAMkB,QAAQC,QAAQC,KAC7BoB,YAAa,OACbC,eAAgB,QAGpBC,eAAgB,CACZF,YAAa,QAGjBG,aAAc,CACV9E,MAAO,uBAGX+E,UAAW,CACPrF,QAAS,OACTuE,UAAW,MACXtE,WAAY,SACZK,MAAO,sBACP+C,SAAU,YC5G1B,GAAeiC,EAAAA,EAAAA,UARUvG,IACd,CACHwG,SAAUC,EAAAA,GAAAA,UAAAA,YAAgCzG,MAMlD,ECsBqB,IASR,IATS,SAClB0G,EADkB,SAElBF,EAFkB,kBAGlBG,EAHkB,kBAIlBC,EAJkB,cAKlBC,EALkB,cAMlBC,EANkB,qBAOlBC,EAPkB,sBAQlBC,GACS,EACT,MAAMjF,EAASjB,IAETmG,GAAOC,EAAAA,EAAAA,QAAO,MACdjE,GAAciE,EAAAA,EAAAA,QAAO,MAwB3B,OAtBAC,EAAAA,EAAAA,IAAmB,KACf,GAAIR,EAAmB,OACnB,MAAM/D,EAAO,UAAGqE,EAAKG,eAAR,aAAG,EAAcC,iBAAkB,qBAAoBV,OAEpE,GADA3D,EAAiBC,EAAYmE,UACzBxE,MAAAA,OAAA,EAAAA,EAAS0E,QAAS,EAAG,OACrB,MAAMlE,EAAgB,UAAG6D,EAAKG,eAAR,aAAG,EAAcG,cAClCpE,EAAmBP,EAAQ,GAAIQ,KAChCT,EAAOC,EAAQ,IACfK,EAAYmE,QAAUI,YAAW,KACxBrE,EAAmBP,EAAQ,GAAIQ,IAChCT,EAAOC,EAAQ,MAtCf,OA6CpB,MAAO,KACHI,EAAiBC,EAAYmE,YAElC,CAACT,IAGA,yBAAKc,IAAKR,IACJP,GAAY,IAAIgB,KAAKC,IACnB,MAAM5B,GAAQ6B,EAAAA,EAAAA,KAASD,EAAO5B,OACxBK,EAAiBuB,EAAOvB,eACxByB,GAAmBC,EAAAA,EAAAA,KAA8BtB,EAAUmB,GAC3DI,GAAWC,EAAAA,EAAAA,KAAeL,GAC1BM,EAAYN,EAAOO,IACnBC,GAAmBC,EAAAA,EAAAA,KAAoBT,GAEvCU,GAAeC,EAAAA,EAAAA,MAAKL,EAAWlB,GAErC,OACI,yBACIwB,IAAKN,EACLtI,UAAWc,GAAAA,CAAWsB,EAAOkC,KAAM,CAC/B,CAAClC,EAAOyC,aAAcqC,EACtB,CAAC9E,EAAO2C,UAAWuD,IAAcrB,EACjC,CAAC7E,EAAO8B,aAAcoE,IAActB,EACpC,CAAC5E,EAAOgD,WAAYgD,EACpB,CAAChG,EAAOqD,cAAeiD,IAAiB7G,EAAAA,EAAAA,UAE5CG,QAASkF,EAAgB,IAAMA,EAAcoB,QAAaO,EAC1DC,aAAc3B,EAAgB,IAAMA,EAAcmB,QAAaO,EAC/DE,aAAc5B,EAAgB,IAAMA,EAAc,WAAQ0B,EAC1D,kBAAiBP,GAEjB,kBAACU,EAAA,EAAD,CAAchB,OAAQA,EAAQiB,gBAAiB7G,EAAOsD,OAAQwD,eAAgB9G,EAAOwD,QACrF,yBAAK5F,UAAWoC,EAAO2D,MACnB,6BACI,kBAACoD,EAAA,EAAD,CAAeC,MAAOZ,EAAkBxI,UAAWoC,EAAOgE,OACrDA,GAEJK,GAAkB,0BAAMzG,UAAWoC,EAAOqE,gBAAiBA,EAAzC,KAClByB,GAAoB,0BAAMlI,UAAWoC,EAAOsE,cAAewB,IAEhE,yBAAKlI,UAAWoC,EAAOuE,WACnB,kBAAC0C,EAAA,EAAD,CAAiBrB,OAAQA,IACzB,8BAAMsB,EAAAA,EAAAA,KAAYtB,MAGzBX,GAAyBA,EAAsBW,Y,gBChHjE,IAAKuB,E,0BAAAA,GAAAA,EAAAA,cAAAA,uBAAAA,EAAAA,eAAAA,wBAAAA,EAAAA,cAAAA,uBAAAA,EAAAA,iBAAAA,0BAAAA,EAAAA,YAAAA,qBAAAA,EAAAA,qBAAAA,8BAAAA,EAAAA,sBAAAA,+BAAAA,EAAAA,kBAAAA,2BAAAA,EAAAA,uBAAAA,gCAAAA,EAAAA,0BAAAA,mCAAAA,EAAAA,4BAAAA,qCAAAA,EAAAA,6BAAAA,sCAAAA,EAAAA,uBAAAA,gCAAAA,EAAAA,uBAAAA,gCAAAA,EAAAA,6BAAAA,sC,CAAAA,IAAAA,EAAAA,M,uJCAZ,SAASC,IAA2Q,OAA9PA,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUlC,OAAQiC,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIhB,KAAOkB,EAAcL,OAAOM,UAAUC,eAAeC,KAAKH,EAAQlB,KAAQe,EAAOf,GAAOkB,EAAOlB,IAAY,OAAOe,GAAkBH,EAASU,MAAMC,KAAMN,WAGhT,QAAgB,QAAC,OACfzH,EAAS,IADK,EAEXgI,E,kXAFW,sBAGVC,IAAAA,cAAoB,MAAOb,EAAS,CACxC/H,MAAO,KACPC,OAAQ,KACR4I,QAAS,YACTC,QAAS,MACTC,MAAO,8BACNJ,GAAQC,IAAAA,cAAoB,IAAK,CAClCI,OAAQ,OACRC,YAAa,IACbC,KAAM,OACNC,SAAU,UACVC,QAAS,OACRR,IAAAA,cAAoB,OAAQ,CAC7BS,EAAG,4gBACHH,KAAM,OACNC,SAAU,e,yOCPZ,MAAMG,EAAyB,IAA8E,IAA7E,cAACC,EAAD,YAAgBC,EAAc,GAA9B,gBAAkCC,EAAkBjJ,EAAAA,IAAyB,EAAhB7B,E,kXAAgB,sDACzG,MAAO+K,EAAaC,IAAkB7K,EAAAA,EAAAA,UAAS,OACxC8K,EAAYC,IAAiB/K,EAAAA,EAAAA,UAAS,IAEvCsG,GAAW0E,EAAAA,EAAAA,aAAYzE,EAAAA,GAAAA,UAAAA,aAKvB0E,EAAmB,KAFgBJ,EAAe,MAIpDE,EAAc,KAGZG,GAAoBC,EAAAA,EAAAA,cACtB,CAACC,EAAMC,KACH,MAAMC,GAAgBC,EAAAA,EAAAA,IAAyCjF,EAAUmE,GACnEe,GAAWC,EAAAA,EAAAA,IAA2BH,EAAeF,EAAKM,IAChE,IAAIC,EAEAA,EADAH,EAASpE,OACSiE,EACZX,EAAYkB,OAAOJ,GACnBd,EAAYmB,QAAQC,IAAYN,EAASO,MAAMC,GAAUA,EAAMN,KAAOI,EAAOJ,OAEjEL,EACZX,EAAYkB,OAAOR,GACnBV,EAAYmB,QAAQC,GAAWA,EAAOJ,KAAON,EAAKM,KAG5Df,EAAgBgB,KAEpB,CAACrF,EAAUmE,EAAeC,EAAaC,IAmB3C,OACI,oCACI,kBAAC7I,EAAA,EAAD,GACIG,aAAcgK,IAAAA,KAAU,qBACxBjK,KAAK,IACLtC,KAAMwM,EACNzK,QAlDuB0K,GAAMtB,EAAesB,EAAEC,eAmD9C3M,UAAWoC,EAAAA,EAAAA,YACPhC,IAxBoB,MAChC,MAAMyL,GAAgBC,EAAAA,EAAAA,IAAyCjF,EAAUmE,GACzE,OACI,kBAAC4B,EAAA,EAAD,CACIC,OAAQ1B,EACR2B,SAAU3B,EACVQ,KAAME,EACNkB,gBAAiBtB,EACjB1G,SAAUkG,EACVI,WAAYA,EACZ2B,QAASxB,EACTyB,SAAU3B,KAeb4B,KAKbnC,EAAuBoC,UAAY,CAC/BnC,cAAeoC,IAAAA,OACfnC,YAAamC,IAAAA,MACblC,gBAAiBkC,IAAAA,MAGrB,W,0LCpFA,MCUMC,EAAmB,IAUnB,IAVoB,aACtBC,EADsB,UAEtBC,EAFsB,UAGtBC,EAHsB,UAItBC,EAJsB,YAKtBC,EALsB,SAMtBC,EANsB,QAOtBC,EAPsB,oBAQtBC,EARsB,sBAStBC,GACE,EACF,OACI,yBAAK9N,UAAW+N,GAAAA,CDtBiB,yDCsByBC,EAAAA,EAAAA,MAAK,CAAC,oBAAqBV,KAChFA,GAAgBK,GACb,kBAAC,EAAAM,SAAD,CACIjO,UDzBwF,0CC0BxF4L,QAASiC,IAAuB,EAChCK,cAAuC,OAAxBL,EACfM,SAAU,IAAMP,MAGxB,yBAAK5N,UD/B2M,+CCgC3MsN,IACIA,EAAac,SACV,kBAAC,EAAAC,eAAD,CACIC,OAAQC,QAAQf,GAAaC,IAAcH,EAAarB,IACxDuC,UAAWhB,EACXxL,QAAS0L,EACT5L,QAAS,CAACT,KDtC4H,4CCuCtIoN,UAAU,OAETnB,EAAalH,OAGlBkH,EAAalH,QAGxB0H,GACG,yBAAK9N,UDhDyQ,oDCiD1Q,kBAACqC,EAAA,EAAD,CACIpC,KAAMyO,EAAAA,EACN1M,QAAS8L,EACTvL,KAAM,IACN,oBAAmBgL,OAQ3CF,EAAiBF,UAAY,CACzBG,aAAcF,IAAAA,MAAgB,CAC1BnB,GAAImB,IAAAA,OACJhH,MAAOgH,IAAAA,UAAoB,CAACA,IAAAA,OAAkBA,IAAAA,OAC9CgB,SAAUhB,IAAAA,OAEdG,UAAWH,IAAAA,OACXI,UAAWJ,IAAAA,OACXK,UAAWL,IAAAA,OACXM,YAAaN,IAAAA,KACbO,SAAUP,IAAAA,KACVQ,QAASR,IAAAA,KACTS,oBAAqBT,IAAAA,MAAgB,EAAC,GAAM,EAAO,OACnDU,sBAAuBV,IAAAA,MAG3B,SAAeuB,EAAAA,EAAAA,IAAiBC,EAAAA,EAAAA,MAAK,CAAC,0BAAtC,CAAiEvB,GAEpDwB,GAA+BF,EAAAA,EAAAA,IACxCC,EAAAA,EAAAA,MAAK,CAAC,wBAAyB,WAAY,UAAW,wBADdD,CAE1CtB,G,qCCjFF,SAAgB,cAAgB,4CAA4C,aAAe,2CAA2C,oBAAsB,kDAAkD,YAAc,0CAA0C,iBAAmB,+CAA+C,mBAAqB,iDAAiD,wBAA0B,sDAAsD,2BAA6B,yDAAyD,gCAAkC,8DAA8D,aAAe,2CAA2C,qBAAuB,mDAAmD,KAAO,mCAAmC,eAAiB,6CAA6C,MAAQ,oCAAoC,aAAe,2CAA2C,YAAc,0CAA0C,4BAA8B,0DAA0D,iBAAmB,+CAA+C,iBAAmB,+CAA+C,cAAgB,4CAA4C,kBAAoB,gDAAgD,uBAAyB,qDAAqD,eAAiB,6CAA6C,aAAe,2CAA2C,kBAAoB,gDAAgD,YAAc,0CAA0C,OAAS,qCAAqC,eAAiB,6CAA6C,eAAiB,6CAA6C,kBAAoB,gDAAgD,YAAc,0CAA0C,cAAgB,4CAA4C,sBAAwB,oDAAoD,0BAA4B,wDAAwD,yBAA2B,wDCQntEyB,EAAwB,IAA0B,IAAxB1F,MAAOpB,EAAS,IAAQ,EACpD,MAAM5B,GAAQ6B,EAAAA,EAAAA,KAASD,EAAO5B,OAC9B,OACI,yBAAKpG,UAAW+N,GAAAA,CAAW3L,EAAAA,eAAuBA,EAAAA,iBAC9C,kBAAC4G,EAAA,EAAD,CACIC,gBAAiB7G,EAAAA,aACjB8G,eAAgB9G,EAAAA,kBAChB4F,OAAQA,IAEZ,kBAACmB,EAAA,EAAD,CAAeC,OAAOX,EAAAA,EAAAA,KAAoBT,GAAShI,UAAWoC,EAAAA,aACzDgE,KAMjB0I,EAAsB3B,UAAY,CAC9B/D,MAAOgE,IAAAA,QAGX,U,eCvBA,MAAM2B,EAAkB,IAA+C,IAA9C,MAAC3F,EAAO4F,YAAY,mBAACC,IAAyB,EACnE,OACI,yBAAKjP,UAAWoC,EAAAA,gBACX6M,EAAqB,kBAACC,EAAA,EAAD,CAAe9F,MAAOA,EAAO6F,mBAAoBA,IAAyB7F,IAK5G2F,EAAgB5B,UAAY,CACxB/D,MAAOgE,IAAAA,IACP4B,WAAY5B,IAAAA,QAGhB,U,eCfA,MAEa+B,EAAmB,CAACtI,EAAoBmE,KAEjD,OAJ0BgD,GAGEoB,EAAAA,EAAAA,KAAuBvI,EAAU,CAACwI,KAAMrE,KAHjBsE,EAAAA,EAAAA,MAAoBC,EAAAA,EAAAA,QAAkBC,EAAAA,EAAAA,MAAcxB,GAA7EA,IAAAA,G,0BCO9B,MAAMyB,EAAoB,IAAa,IAAZ,MAACrG,GAAW,EACnC,MAAMvC,GAAW0E,EAAAA,EAAAA,aAAYzE,EAAAA,GAAAA,UAAAA,aAC7B,OACIsC,GACI,yBAAKpJ,UAAWc,GAAAA,CAAWsB,EAAAA,eAAuBA,EAAAA,mBAC9C,kBAACsN,EAAA,EAAD,CACI1P,UAAWoC,EAAAA,cACXnC,KAAMkP,EAAiBtI,EAAUuC,EAAMuG,UAAUN,QAErD,kBAAClG,EAAA,EAAD,CAAeC,MAAOA,EAAMuG,UAAUC,UAAW5P,UAAWoC,EAAAA,mBACvD6F,EAAAA,EAAAA,KAASmB,EAAMhD,UAOpCqJ,EAAkBtC,UAAY,CAC1B/D,MAAOgE,IAAAA,QAGX,UC3BMyC,EAAmBC,IACrBA,EAAMD,mBAGJE,EAAgB3F,IAClB,MAAM,MAAChB,GAASgB,EAChB,OACI,yBAAKpK,UAAWoC,EAAAA,YAAoB4N,SAAUH,GACzCzG,IAKb2G,EAAa5C,UAAY,CACrB/D,MAAOgE,IAAAA,KAGX,UCjBM6C,EAAgB,IAAa,IAAZ,MAAC7G,GAAW,EAC/B,MAAMpI,GAAMkP,EAAAA,EAAAA,KAAgC,CAAC9G,MAAAA,IAC7C,OACIpI,GACI,yBAAKhB,UAAWoC,EAAAA,cACZ,yBAAKpB,IAAKA,MAM1BiP,EAAc9C,UAAY,CACtB/D,MAAOgE,IAAAA,QAGX,UCKA,EAjBmC+C,IAC/B,GAAsB,UAAlBA,EAAWlE,GACX,OAAO6C,EAGX,QAAQd,EAAAA,EAAAA,MAAK,CAAC,WAAY,QAASmC,IAC/B,IAAK,YACD,OAAOV,EACX,IAAK,OACD,OAAOM,EACX,IAAK,QACD,OAAOE,EAGf,OAAOlB,G,4zBChBX,MAAMqB,GAA0BC,EAAAA,EAAAA,OAAM,KA2BhCC,EAA0B,CAAC,YAC3BC,EAAoBlE,IAAYiE,EAAwBE,SAASnE,EAAOJ,IAExEwE,EAA2BC,IAC7B,IAAIC,EAAAA,EAAAA,KAAqBD,GAAW,CAChC,MAAO,IAAKE,GAAYR,EAAwBM,GAChD,OAAOE,EAASjJ,OAAS,EAAIiJ,EAASC,MAAM,GAAI,GAAK,KAErD,OAAO,M,0BChCf,MAAMC,EAAmB,IAMnB,IANoB,OACtB9I,EADsB,iBAEtB+I,EAFsB,oBAGtBC,EAHsB,mBAItBC,EAJsB,2BAKtBC,GACE,EACF,OACI,yBACIlR,UAAWc,GAAAA,CAAWsB,EAAAA,cAAsB,CACxC,CAACA,EAAAA,uBAA+B2O,EAChC,CAAC3O,EAAAA,2BAAmC6O,IAAuBpP,EAAAA,EAAAA,QAC3D,CAACO,EAAAA,0BAAkC4O,KAGvC,kBAACG,EAAA,EAAD,CACInJ,OAAQA,EACRiJ,mBAAoBA,EACpBC,2BAA4BA,MAM5CJ,EAAiB3D,UAAY,CACzBnF,OAAQoF,IAAAA,OACR2D,iBAAkB3D,IAAAA,KAClB4D,oBAAqB5D,IAAAA,KACrB6D,mBAAoB7D,IAAAA,MAAgB3D,OAAO2H,OAAOvP,EAAAA,IAClDqP,2BAA4B9D,IAAAA,MAGhC,SAAeuB,EAAAA,EAAAA,IACX,CAAC,EAAD,KAGK,IAFD,qBAACvH,EAAD,2BAAuB8J,EAAvB,kBAAmDjK,EAAnD,uBAAsEoK,GAErE,GADD,OAACrJ,EAAD,SAASsJ,GACR,EAED,MAAO,CACHL,mBAFuBjJ,GAAUZ,EAAqBY,EAAOO,KAG7D2I,2BAAAA,EACAH,iBAAkB9J,IAAsBe,EAAOO,IAC/CyI,oBAAqBK,IAA2BC,KAV5D,CAaER,G,ifCpDF,MAAMS,GAA0B,CAC5B7P,OAAQ,OACRJ,QAAS,OACTmD,cAAe,UAGNtD,IAAYC,EAAAA,EAAAA,IAAY2C,IAAD,CAChCyN,aAAc,IACVvN,WAAYF,EAAMsB,oBACfkM,GAFK,CAGR,oBAAqB,CACjBtN,WAAYF,EAAMwB,8BAG1BkM,gBAAiB,IACbxN,YAAYyN,EAAAA,GAAAA,IAAQ3N,EAAMkB,QAAQC,QAAQC,KAAM,MAC7CoM,IAEP1M,UAAW,IACPC,OAAQ,WACLyM,IAEP9L,aAAc,IACVb,gBAAiB,sBACd2M,QCnBLI,GAA8B,CAChC3J,OAAQoF,IAAAA,OACRwE,WAAYxE,IAAAA,KACZlG,cAAekG,IAAAA,KACfyE,eAAgBzE,IAAAA,MCTPjM,IAAYC,EAAAA,EAAAA,GAAW,CAChC0Q,gBAAiB,CACbxQ,QAAS,OACTC,WAAY,UAEhBwQ,SAAU,CACNxL,YAAa,OACbZ,WAAY,UCFpB,MAAMqM,GAAwB,CAC1BpE,QAASR,IAAAA,KACT6E,UAAW7E,IAAAA,KACX8E,YAAa9E,IAAAA,MCRJjM,IAAYC,EAAAA,EAAAA,GAAW,CAChC+Q,UAAW,CACPxM,WAAY,U,gBCEpB,MAAMyM,GAA8B,CAChCC,kBAAmBjF,IAAAA,MCDvB,IAAekF,EAAAA,EAAAA,ODGaC,IACxB,MAAMC,EAAsBC,IACxB,MAAMrQ,EAASjB,MACT,kBAACkR,GAAmCI,EAAbC,E,kXAA7B,CAA0CD,EAA1C,wBACM,SAACE,EAAD,SAAWrB,GAAYoB,EAE7B,OAAOL,EACH,yBAAKrS,UAAW,qBACZ,kBAAC4S,GAAA,EAAD,CAAmB5S,UAAWoC,EAAO+P,UAAWb,SAAUA,EAAUqB,SAAUA,IAC9E,kBAACJ,EAAcG,IAGnB,kBAACH,EAAcG,IAMvB,OAFAF,EAAmBrF,UAAYiF,GAExBI,KFdWD,IAClB,MAAMM,EAAgBJ,IAClB,MAAMrQ,EAASjB,MACT,QAACyM,EAAD,UAAUqE,EAAV,YAAqBC,GAA6BO,EAAbC,E,kXAA3C,CAAwDD,EAAxD,wCAEIE,UAAWG,SAAU9K,IACrB0K,EAEJ,OAAOR,EACH,yBAAKlS,UAAWc,GAAAA,CAAWsB,EAAO0P,gBAAiB,qBAC/C,kBAAC,EAAA7D,SAAD,CACIjO,UAAWoC,EAAO2P,SAClBnG,QAASqG,EACTjQ,QAAU0K,GAAMA,EAAEmD,kBAClB1B,SAAWzB,GAAMkB,EAAQ5F,EAAOO,IAAKmE,EAAE/C,OAAOiC,WAElD,kBAAC2G,EAAcG,IAGnB,kBAACH,EAAcG,IAMvB,OAFAG,EAAa1F,UAAY6E,GAElBa,KFxBiBN,IACxB,MAAMQ,EAAsBN,IACxB,MAAMrQ,EAASjB,MAEXwR,UAAWG,SAAU9K,GADnB,WAEF4J,EAFE,cAGF1K,EAHE,eAIF2K,GACAY,EACEO,EAAc9L,EAAgB,IAAMA,EAAcc,EAAOO,UAAOM,EAChEoK,EAAajL,KAAWK,EAAAA,EAAAA,KAAeL,GAE7C,OAAOgL,GAAeC,GAAcrB,GAAcC,EAC9C,yBACI7R,UAAWc,GAAAA,CACP,CAAC,CAACsB,EAAOoP,cAAeyB,GACxB,CAACzB,aAAcyB,GACf,CAAC,CAAC7Q,EAAOqP,iBAAkBG,GAC3B,CAACH,gBAAiBG,GAClB,CAAC,CAACxP,EAAOyC,aAAcmO,GACvB,CAAC,CAAC5Q,EAAOqD,cAAeoM,GACxB,CAACpM,aAAcoM,IAEnB7P,QAASgR,GAET,kBAACT,EAAcE,IAGnB,kBAACF,EAAcE,IAMvB,OAFAM,EAAmB5F,UAAYwE,GAExBoB,KKtCPpE,EAAAA,EAAAA,IACI,CAAC,EAAD,KAGK,IAFD,cAACzH,EAAD,kBAAgBD,EAAhB,qBAAmCG,EAAnC,SAAyDuG,EAAzD,QAAmEC,EAAnE,oBAA4EsF,GAE3E,GADD,SAACP,EAAD,YAAWQ,GACV,EACD,MAAOL,SAAU9K,GAAU2K,EACrBS,EAAgC,IAAhBD,EACtB,MAAO,CACHvF,QAAAA,EACAqE,UAAWiB,GAAuBA,EAAoB1C,SAASxI,EAAOO,KACtE2J,YAAavE,GAAYyF,EACzBf,kBAAmBe,EACnBxB,WAAY3K,IAAsBe,EAAOO,IACzCsJ,eAAgBzK,EAAqBY,EAAOO,OAAS1G,EAAAA,EAAAA,QACrDqF,cAAAA,MAlBhB,CAsBEmM,EAAAA,GCrBWC,GAAqB,IAAwB,IAAvB,WAACtE,EAAD,KAAauE,GAAU,EACtD,MAAMC,EAAkBD,EAAKnC,OAAOzJ,OAC9B8L,EAAgB,GAAKC,KAAKC,IAAIH,EAAiB,GAAK,GAE1D,IAAKA,EACD,OAAOC,EAGX,QAAQzF,EAAAA,EAAAA,MAAK,CAAC,qBAAsB,QAASgB,IACzC,IAAK,YACD,OAfoB,GAeMwE,EAZtB,GAaR,IAAK,OACD,OAhBe,IAgBMA,EACzB,IAAK,QACD,OAjBgB,GAiBMA,EAhBlB,GAiBR,QACI,OAAOC,ICDbG,IAAgBC,EAAAA,EAAAA,aAClB,CAAC,EA0BG/L,KACC,IA1BD,YACImD,EADJ,SAEIlE,EAFJ,kBAGIC,EAHJ,kBAIIC,EAJJ,mBAKI6M,EALJ,2BAMIC,EANJ,YAOIC,EAPJ,oBAQIC,EARJ,SASIjE,EATJ,OAUIkE,EAVJ,UAWIzG,EAXJ,UAYID,EAZJ,cAaIrG,EAbJ,cAcID,EAdJ,qBAeIE,EAfJ,2BAgBI8J,EAhBJ,OAiBIiD,EAjBJ,SAkBIxG,EAlBJ,oBAmBIuF,EAnBJ,oBAoBIrF,EApBJ,QAqBID,EArBJ,sBAsBIE,EAtBJ,oBAuBIsG,GAGH,EACD,MAAMC,GAAeC,EAAAA,EAAAA,UACjB,KAAM,CACFC,aAAc,sBACdC,eAAgBpS,EAAAA,eAChBqS,eAAgBrS,EAAAA,eAChBsS,kBAAmBtS,EAAAA,kBACnBuS,YAAavS,EAAAA,eAEjB,IAGEyE,GAAW0E,EAAAA,EAAAA,aAAYzE,EAAAA,GAAAA,UAAAA,cAEtB8N,EAAeC,IAAoBtU,EAAAA,EAAAA,UAAS,MAC7CuU,GAAiBpJ,EAAAA,EAAAA,cAClBkJ,IACGC,EAAiBD,GACbzN,GACAA,GAAc6G,EAAAA,EAAAA,MAAK,CAAC4G,EAAe,OAAQ7N,MAGnD,CAACI,EAAeJ,IAGdgO,GAAWxN,EAAAA,EAAAA,WACjByN,EAAAA,EAAAA,qBAAoBlN,GAAK,KAAM,CAC3BmN,uBAAwB,KACpBF,EAAStN,SAAWsN,EAAStN,QAAQwN,uBAAuB,CAACC,WAAW,SAIhF,MAAMC,GAAazJ,EAAAA,EAAAA,cACd0J,IACQ5H,GAAa4H,IAAU3H,EAEjBD,IAAc6H,EAAAA,mBACrBnB,EAAO,CAACkB,MAAAA,EAAOE,MAAOC,EAAAA,sBAEtBrB,EAAO,CAACkB,MAAAA,IAJRlB,EAAO,CAACkB,MAAAA,EAAOE,MAAOD,EAAAA,uBAO9B,CAACnB,EAAQzG,EAAWD,IAGlBgI,GAAmB9J,EAAAA,EAAAA,cACpB4F,IACG,MAAMtJ,GAASW,EAAAA,EAAAA,MAAK2I,EAAUvK,GAC9B,OAAOiB,EAAS,kBAAC,EAAD,CAAkBA,OAAQA,EAAQsJ,SAAUA,IAAe,OAE/E,CAACvK,IAGC0O,GAAgB/J,EAAAA,EAAAA,cAAatB,GACxB,kBAACsL,GAAoBtL,IAC7B,IAEGuL,IAAsBxO,EACtByO,IAAmB1B,EAEnB2B,IAAcvB,EAAAA,EAAAA,UAChB,IVlE4B,SAACrJ,GAAuC,IAA1B2K,IAA0B,yDAC5E,OAAO3K,EAAYlD,KAAI,CAAC,EAAuB6B,KAAM,UAA7B,SAACkM,GAA4B,EAAfzJ,EAAe,kBACjD,MAAM+G,EAAsB,IAANxJ,EACtB,YACOyC,EADP,CAEI4C,mBAAoB6G,IAAYC,EAAAA,EAAAA,KAA0BD,GAC1DE,WAAW,EACXC,WAAU,UAAE5J,EAAO4J,kBAAT,SAAwB7C,EAClC8C,WAAY9C,EACZhF,SAAUwH,GAAkBrF,EAAiBlE,GAC7C8J,WAAY1F,EAAwBpE,EAAOJ,IAC3CmK,iBAAkBhD,EAAgBvE,EAA+BxB,EACjEgJ,qBAAsBC,EAA0B,EAAD,GAAKjK,EAAL,CAAayJ,SAAAA,UUsDtDS,CAAyBtL,EAAa2K,IAC5C,CAAC3K,EAAa2K,IAEZY,IAAWlC,EAAAA,EAAAA,UACb,IV9FyB,EAACzN,EAAUoE,EAAalE,IAClDA,EAASgB,KAAKC,IACVsK,EAAAA,EAAAA,OACHmE,EAAAA,EAAAA,SACI,CAACC,EAAK1H,KAAe2H,EAAAA,EAAAA,OAAM3H,EAAW/C,GAjBzB,EAACpF,EAAUmI,EAAYhH,KAChD,OAAQgH,EAAW/C,IACf,IAAK,QACD,OAAOjE,EACX,IAAK,WACD,OAAOsB,EAAAA,EAAAA,KAAYtB,GACvB,QAAS,CACL,MAAO4O,KAAehG,GAAYR,EAAwBpB,EAAW/C,IACrE,OAAOqG,EAAAA,EAAAA,OAAK3J,EAAAA,EAAAA,MAAKiO,IAAaC,EAAAA,EAAAA,KAA2BjG,GAAlD0B,CAA6DtK,MAStB8O,CAAqBjQ,EAAUmI,EAAYhH,GAAS0O,IAC9F,KAEJC,EAAAA,EAAAA,OAAM,WAAY3O,GALfsK,CAMLrH,KUsFQ8L,CAAsBlQ,EAAUoE,EAAalE,IACnD,CAACF,EAAUoE,EAAalE,IAGtBsK,GAAyBrK,EAAoBD,EAASiQ,WAAUC,EAAAA,EAAAA,QAAO,MAAOjQ,KAAuB,EAErGkQ,IAAe5C,EAAAA,EAAAA,UACjB,KAAM,CACFpN,cAAAA,EACAD,kBAAAA,EACAoK,uBAAAA,GACAjK,qBAAAA,EACA8J,2BAAAA,EACAvD,SAAAA,EACAuF,oBAAAA,EACArF,oBAAAA,EACAD,QAAAA,EACAE,sBAAAA,KAEJ,CACIoF,EACA9L,EACAyG,EACAwD,GACA1D,EACAC,EACA1G,EACAgK,EACAjK,EACA6G,IAIR,OACI,kBAACqJ,EAAA,EAAD,CACIC,gBAAgB,EAChBpH,SAAUA,EACVwG,SAAUA,GACVX,YAAaA,GACb3B,OAAQiB,EACRZ,cAA0C,IAA5BlD,GAAgCA,GAAyB,KACvEvJ,IAAKiN,EACLsC,mBAAoBjV,EAAAA,aACpBkV,mBAAoBlV,EAAAA,MACpBN,QAASuS,EACTkD,mBA9IoB,IA+IpBC,cAhJe,GAiJfC,sBA/IwB,IAgJxBC,iBAnJkB,GAoJlBC,QAAS,CACLvC,MAAO3H,EACP6H,MAAO9H,GAEXoK,2BAA4B9D,EAC5BC,2BAA4BA,EAC5BE,oBAAqBA,EACrBD,YAAaA,EACbI,oBAAqBA,MAAAA,EAAAA,EAxJA,IAyJrByD,WAAYlC,EAAoBb,OAAiBjM,EACjD8M,kBAAmBA,EACnBf,cAAeA,EACfY,iBAAkBA,EAClBrB,OAAQA,EACR2D,QAASZ,GACTa,kBApKgB,EAqKhBtC,cAAeA,EACfuC,iBAAkB1E,QAMlCM,GAAczG,UAAY,CACtBpG,SAAUqG,IAAAA,MACVpG,kBAAmBoG,IAAAA,OACnBnG,kBAAmBmG,IAAAA,OACnBnC,YAAamC,IAAAA,MACb4G,YAAa5G,IAAAA,MACb4C,SAAU5C,IAAAA,KACV8G,OAAQ9G,IAAAA,KACR0G,mBAAoB1G,IAAAA,KACpB6G,oBAAqB7G,IAAAA,KACrB2G,2BAA4B3G,IAAAA,KAC5BlG,cAAekG,IAAAA,KACfjG,cAAeiG,IAAAA,KACfK,UAAWL,IAAAA,OACXI,UAAWJ,IAAAA,MAAgB,CAACiI,EAAAA,mBAAoBE,EAAAA,sBAChDnO,qBAAsBgG,IAAAA,OACtB8D,2BAA4B9D,IAAAA,KAC5B+G,OAAQ/G,IAAAA,KACRO,SAAUP,IAAAA,KACV8F,oBAAqB9F,IAAAA,QAAkBA,IAAAA,QACvCS,oBAAqBT,IAAAA,MAAgB,EAAC,GAAM,EAAO,OACnDQ,QAASR,IAAAA,KACTU,sBAAuBV,IAAAA,KACvBgH,oBAAqBhH,IAAAA,QAGzBwG,GAAcqE,aAAe,CACzBlR,SAAU,GACVkE,YAAa,IAGjB2I,GAAcsE,YAAc,gBAE5B,UAAeC,EAAAA,EAAAA,MAAKvE,I,uCCpNb,MAAMwE,GAAc,OACdC,GAAe,QACfC,GAAO,OAEdC,GAAO,CACT,CAACH,IAAc5L,KAAAA,KAAU,iBACzB,CAAC6L,IAAe7L,KAAAA,KAAU,kBAC1B,CAAC8L,IAAO9L,KAAAA,KAAU,gBAShBgM,GAAoB,IAAiD,IAAhD,KAAC3L,EAAD,SAAOC,EAAP,QAAiB9K,EAAjB,QAA0BgL,EAA1B,QAAmCyL,GAAa,EAKvE,OACI,kBAAC,EAAAC,QAAD,CAAS7L,KAAMA,EAAMC,SAAUA,EAAUE,QAASA,GAC9C,kBAAC,EAAA2L,KAAD,CAAMlK,UAAU,OACXgK,EAAQ1Q,KAAI,CAAC6Q,EAAQC,IAdf,EAACD,EAAQE,EAASD,IACrC,kBAAC,EAAAE,SAAD,CAAUzW,QAAM,EAACmM,UAAW,MAAO7F,IAAKiQ,EAAO7W,QAAS8W,GACpD,kBAAC,EAAAE,aAAD,CAAc9T,QAASqT,GAAKK,GAASK,uBAAwB,CAACC,QAAS,YAY/BC,CAAeP,EAPlCA,CAAAA,GAAW,KAChC5W,EAAQ4W,IAMuDQ,CAAgBR,GAASC,QAMhGL,GAAkBrL,UAAY,CAC1BN,KAAMO,IAAAA,KACNN,SAAUM,IAAAA,IACVpL,QAASoL,IAAAA,KACTJ,QAASI,IAAAA,KACTqL,QAASrL,IAAAA,OAGb,Y,gBCpCA,MAAMiM,WAA6ChP,IAAAA,cAAoB,uCACnEhK,MAAQ,CACJiZ,oBAAoB,EACpBC,uBAAuB,EACvBC,yBAAyB,EACzBrO,YAAa,KACbE,WAAY,IANmD,KASnEoO,iBAAoB9N,IAChB,MAAM,oBAAC+N,GAAuBvP,KAAK9J,OAC7B,oBAACsZ,EAAD,YAAsB1O,GAAed,KAAKC,MAC1CwP,EAAU3O,EAAY4F,QAC5B+I,EAAQC,OAAOH,EAAqB,EAAG/N,GACvCgO,EAAoB,CAACC,QAAAA,IACrBzP,KAAK2P,uBAf0D,KAkBnEC,mBAAqB,IAA2B,IAA1B,oBAACL,GAAyB,EAC5CvP,KAAK7J,SAAS,CAACoZ,oBAAAA,EAAqBH,uBAAuB,EAAOD,oBAAoB,KAnBvB,KAsBnEQ,oBAAsB,KAClB3P,KAAK7J,SAAS,CAAC6K,YAAa,KAAMmO,oBAAoB,EAAOjO,WAAY,MAvBV,KA0BnEC,cAAiBD,IACblB,KAAK7J,SAAS,CAAC+K,WAAAA,KA3BgD,KA8BnEyC,sBAAyBgC,IACrB3F,KAAK7J,SAAS,CACV6K,YAAa2E,EAAMnD,cACnB4M,uBAAuB,EACvBC,wBAAyBQ,SAASlK,EAAMnD,cAAcsN,aAAa,yBAlCR,KAsCnEC,uBAAyB,KACrB/P,KAAK7J,SAAS,CAACiZ,uBAAuB,KAvCyB,KA0CnEY,oBAAuBvB,IACnB,MAAM,wBAACY,GAA2BrP,KAAK9J,MACvC,OAAQuY,GACJ,KAAKR,GACDjO,KAAK4P,mBAAmB,CAACL,oBAAqBF,IAC9C,MACJ,KAAKnB,GACDlO,KAAK4P,mBAAmB,CAACL,oBAAqBF,EAA0B,IACxE,MACJ,KAAKlB,GACDnO,KAAKiQ,4BApDkD,KAyDnEA,wBAA0B,KACtB,MAAM,wBAACZ,GAA2BrP,KAAK9J,OACjC,oBAACsZ,EAAD,YAAsB1O,GAAed,KAAKC,MAC1CwP,EAAU3O,EAAY4F,QAC5B+I,EAAQC,OAAOL,EAAyB,GACxCG,EAAoB,CAACC,QAAAA,IACrBzP,KAAK+P,0BA/D0D,KA+EnEG,uBAAwBC,EAAAA,EAAAA,aACpBjB,GAAqCkB,uBACrClB,GAAqCmB,8BAfN,oCAACvP,GAChC,OAAOA,EAAYlD,KAAKsE,IAAD,CACnBJ,GAAII,EAAOJ,GACX1J,KAAM8J,EAAO9J,SAIQ,8BAAC0I,EAAaD,EAAeyP,GACtD,MAAQ,GAAEA,IAAiBzP,KAAgB0P,EAAAA,EAAAA,UACvCzP,EAAYlD,KAAK6R,IAAYhL,EAAAA,EAAAA,MAAK,CAAC,KAAM,QAASgL,QAS1De,SACI,MAAM,SACF5T,EADE,kBAEFC,EAFE,kBAGFC,EAHE,SAIF+I,EAJE,YAKF/E,EALE,UAMFwC,EANE,UAOFD,EAPE,2BAQFuG,EARE,cASF7M,EATE,cAUFC,EAVE,iBAWFyT,EAXE,kBAYFC,EAZE,oBAaFlB,EAbE,mBAcF7F,EAdE,OAeFI,EAfE,oBAgBFD,EAhBE,cAiBFjJ,EAjBE,qBAkBF5D,EAAuB,GAlBrB,2BAmBF8J,EAnBE,OAoBFiD,EApBE,SAqBFxG,EArBE,oBAsBFuF,EAtBE,oBAuBFrF,EAvBE,QAwBFD,EAxBE,oBAyBFwG,GACAjK,KAAKC,OAEH,mBAACkP,EAAD,sBAAqBC,EAArB,YAA4CpO,EAA5C,WAAyDE,EAAzD,wBAAqEmO,GACvErP,KAAK9J,MAEH2T,EAAc7J,KAAKkQ,sBAAsBpP,EAAaD,GAAeyP,EAAAA,GAAAA,OAC3E,OACI,oCACI,kBAAC,GAAD,CACI1T,SAAUA,EACVC,kBAAmBA,EACnBC,kBAAmBA,EACnB+I,SAAUA,EACVkE,OAAQA,EACRhN,cAAeA,EACfC,cAAeA,EACf8D,YAAaA,EACbwC,UAAWA,EACXD,UAAWA,EACXsG,mBAAoBA,EACpBhM,IAAK8S,EACLjB,oBAAqBA,EACrB5F,2BAA4BA,EAC5BE,oBAAqBA,EACrBD,YAAaA,EACb5M,qBAAsBA,EACtB8J,2BAA4BA,EAC5BiD,OAAQA,EACRxG,SAAUA,EACVuF,oBAAqBA,EACrBrF,oBAAqBA,EACrBD,QAASA,EACTE,sBAAuB3D,KAAK2D,sBAC5BsG,oBAAqBA,IAEzB,kBAACxH,GAAA,EAAD,CACIC,KAAMyM,EACNxM,SAAU3B,EACVQ,KAAMkP,EACN9N,gBAAiB5C,KAAKsP,iBACtBpO,WAAYA,EACZ2B,QAAS7C,KAAK2P,oBACd7M,SAAU9C,KAAKmB,cACfwP,cAAc,EACdC,UAAWvO,GAAAA,KAAU,gBAEzB,kBAAC,GAAD,CACIxK,QAASmI,KAAKgQ,oBACdnN,QAAS7C,KAAK+P,uBACdpN,SAAU3B,EACV0B,KAAM0M,EACNd,QAASe,EAA0B,EAAI,CAACpB,GAAaC,GAAcC,IAAQ,CAACD,QAlK1FgB,GAwKKlM,UAAY,CACfpG,SAAUqG,IAAAA,MACVpG,kBAAmBoG,IAAAA,OACnBnG,kBAAmBmG,IAAAA,OACnBpC,cAAeoC,IAAAA,OACfnC,YAAamC,IAAAA,MACb2G,2BAA4B3G,IAAAA,KAC5B4C,SAAU5C,IAAAA,KACV8G,OAAQ9G,IAAAA,KACR0G,mBAAoB1G,IAAAA,KACpB6G,oBAAqB7G,IAAAA,KACrBuM,oBAAqBvM,IAAAA,KACrBlG,cAAekG,IAAAA,KACfjG,cAAeiG,IAAAA,KACfK,UAAWL,IAAAA,OACXI,UAAWJ,IAAAA,MAAgB,CAACiI,EAAAA,mBAAoBE,EAAAA,sBAChDqF,iBAAkBxN,IAAAA,MAAgB,CAC9B3F,QAAS2F,IAAAA,MAAgB,CACrB6H,uBAAwB7H,IAAAA,SAGhCyN,kBAAmBzN,IAAAA,QACfA,IAAAA,MAAgB,CACZnB,GAAImB,IAAAA,OACJhH,MAAOgH,IAAAA,UAGfhG,qBAAsBgG,IAAAA,OACtB8D,2BAA4B9D,IAAAA,KAC5B+G,OAAQ/G,IAAAA,KACRO,SAAUP,IAAAA,KACV8F,oBAAqB9F,IAAAA,QAAkBA,IAAAA,QACvCS,oBAAqBT,IAAAA,MAAgB,EAAC,GAAM,EAAO,OACnDQ,QAASR,IAAAA,MAIjB,a,mXC5MA,MAAM4N,EAAqB,IAAmF,IAAlF,OAAChT,EAAD,aAASU,EAAT,qBAAuBuS,EAAvB,UAA6CC,EAAY,KAAyB,EAAhB9a,E,kXAAgB,iEAC1G,MAAM+a,GAAW5P,EAAAA,EAAAA,aAAYzE,EAAAA,GAAAA,UAAAA,aACvBsU,GAAS7P,EAAAA,EAAAA,aAAYzE,EAAAA,GAAAA,UAAAA,WAE3B,OACI,kBAACuU,EAAA,EAAD,KACQjb,EADR,CAEI8B,KAAMwG,EACN3G,QAASyK,IAAAA,KAAU,sBACnBxK,QAAU0K,IACNA,EAAEmD,kBACFoL,EAAqBpZ,EAAAA,EAAAA,WACrByZ,EAAAA,EAAAA,IAA2B,CACvBH,SAAAA,EACAI,eAAgBH,EAChBpT,OAAAA,IAECwT,MAAK,IAAqB,IAApB,QAACC,EAAD,KAAUC,GAAU,EACvB,IAAID,EAKA,MAAM,IAAIE,MAAM,2BAJhB3T,EAAO4T,iBAAmBF,EAC1BT,EAAqBpZ,EAAAA,EAAAA,SACrBgG,YAAW,IAAMoT,EAAqBpZ,EAAAA,EAAAA,OAAmBqZ,MAKhEW,OAAM,KACHZ,EAAqBpZ,EAAAA,EAAAA,OACrBia,EAAAA,EAAAA,cAOxBd,EAAmB7N,UAAY,CAC3BnF,OAAQ+T,EAAAA,IACRrT,aAAc0E,IAAAA,OAAgBgE,EAAAA,EAAAA,QAAOvP,EAAAA,IACrCoZ,qBAAsB7N,IAAAA,KACtB8N,UAAW9N,IAAAA,QAGf,UCnDajM,GAAYC,E,SAAAA,GAAW,CAChC4a,wBAAyB,CACrB1a,QAAS,OACTC,WAAY,SACZ0a,QAAS,SACTxa,MAAO,OACPya,WAAY,EACZC,SAAU,cCyClB,EA5BgC,IAAqE,IAApE,OAACnU,EAAD,mBAASiJ,EAAT,2BAA6BC,GAAuC,EACjG,MAAM9O,EAASjB,IAET0F,GAAqB0E,EAAAA,EAAAA,aAAYzE,EAAAA,GAAAA,UAAAA,aACjCsV,GAAmC7Q,EAAAA,EAAAA,aAAYzE,EAAAA,GAAAA,UAAAA,gCAC/CuV,GAAYC,EAAAA,EAAAA,KAAmBtU,IAAWoU,EAC1CG,GAAaC,EAAAA,EAAAA,KAAc3V,EAAUmB,EAAOqH,MAC5CoN,GAAkBC,EAAAA,EAAAA,KAA2BH,MAAgBI,EAAAA,EAAAA,KAAqB3U,GAElF4U,EADqB3L,GAAsBA,IAAuBpP,EAAAA,EAAAA,MACzB4a,EAE/C,OACI,oCACKJ,GACG,yBAAKrc,UAAWoC,EAAO4Z,yBAClBY,GACG,kBAAC,EAAD,CACI5U,OAAQA,EACRU,aAAcuI,EACdgK,qBAAuB4B,GAAW3L,EAA2BlJ,EAAOO,IAAKsU,S,uHCtCrG,MAAM1b,GAAYC,EAAAA,EAAAA,IAAY2C,IAAD,CACzB+Y,MAAO,CACHlb,MAAOmC,EAAMkB,QAAQ8X,KAAKC,UAC1BrY,SAAU,OACVsY,cAAe,EACf5W,WAAY,QAEhB,CAAC6W,EAAAA,IAAAA,iBAAiD,CAC9Ctb,MAAO,WAEX,CAACsb,EAAAA,IAAAA,gBAAgD,CAC7Ctb,MAAO,WAEX,CAACsb,EAAAA,IAAAA,uBAAuD,CACpDtb,MAAO,WAEX,CAACsb,EAAAA,IAAAA,iBAAiD,CAC9Ctb,MAAO,WAEX,CAACsb,EAAAA,IAAAA,gBAAgD,CAC7Ctb,MAAO,e,gNClBf,MAAMub,GAAsBtJ,EAAAA,EAAAA,aAAW,CAAC,EAAgD/L,KAAQ,IAAxD,cAACsV,EAAgB,GAAjB,UAAqBpd,GAAmC,EAArBI,E,kXAAqB,kCAC5F,MAAMgC,EAASjB,IACf,OACI,4BAAM2G,IAAKA,EAAK9H,UAAWc,GAAAA,CAAWsB,EAAO0a,MAAO9c,IAAgBI,GAC/Dgd,EAAcrV,KAAI,CAAC,EAAc6B,KAAf,IAAC,KAACyF,EAAD,KAAO0N,GAAR,SACf,0BAAMnU,IAAKgB,EAAG5J,UAAWoC,EAAOiN,IAC3B0N,UAOrBI,EAAoBjF,YAAc,sBAElCiF,EAAoBhQ,UAAY,CAC5BiQ,cAAehQ,IAAAA,MACfpN,UAAWoN,IAAAA,QAGf,W,iCCzBA,SACIiQ,gBAAiB,yBACjBC,WAAY,oBACZC,cAAe,uBACfC,2BAA4B,oCAC5BC,QAAS,iBACTC,UAAW,mBACXC,kCAAmC,2CACnCC,aAAc,sBACdC,YAAa,qBACbC,WAAY,oBACZC,qBAAsB,8BACtBC,YAAa,qBACbC,eAAgB,wBAChBC,iBAAkB,0BAClBC,cAAe,uBACfC,eAAgB,wBAChBC,iBAAkB,0BAClBC,sBAAuB,iC,8WCfpB,MAAMC,EAAQ,WAERC,EAAwB,CAAC,GAAI,GAAI,KAEjCC,EAA0B,EAC1BC,EAA0B,IAS1BC,EANO,MAChB,MAAMC,EAAc,IAAIC,KAExB,OADAD,EAAYE,SAAS,EAAG,EAAG,EAAG,GACvBF,EAAYG,YAAYH,EAAYI,cAAgB,IAG3BC,GACvBC,GARa,IAAIL,MAAOC,SAAS,EAAG,EAAG,EAAG,GAU1CK,EAAuB,CAChCC,MAAO,QACPC,KAAM,OACNC,IAAK,OAGIC,EAAeJ,EAAqBC,MAEpCI,EAAsB,CAC/BC,QAAS,UACTH,IAAK,OAGII,EAA0B,GAE1BC,EAAY,CACrB,CACIvZ,MAAO,MACPgD,MAAO,OAEX,CACIhD,MAAO,KACPgD,MAAO,MAEX,CACIhD,MAAO,UACPgD,MAAO,WAEX,CACIhD,MAAO,SACPgD,MAAO,WAGFwW,EAAkBD,EAAU,GAC5BE,EAAuBF,EAAU,GAEjCG,EAAwB,CACjCC,MAAO,QACPC,OAAQ,UAGCC,EAAwC,CACjDC,OAAQ,SACRC,QAAS,WAGAC,EAA+B,CACxCC,KAAM,OACNC,WAAY,cAGHC,EAAgC,CACzC,CAACH,EAA6BC,MAAO,OACrC,CAACD,EAA6BE,YAAa,eAGlCE,EAAmC,CAC5CC,IAAK,MACLC,KAAM,QAGGC,EAAiC,CAC1C,CACIva,MAAOoG,IAAAA,KAAU,WACjBpD,MAAO6W,EAAsCE,SAEjD,CACI/Z,MAAOoG,IAAAA,KAAU,aACjBpD,MAAO6W,EAAsCC,SAIxCU,EAAqB,CAC9B7a,KAAM,OACN8a,MAAO,SAGEC,EAAgB,CAACC,aAAc,iBAE/BC,EAA8B,EAE9BC,EAAuB,IAEvBC,EAA8B,CACvCC,QAAS,UACTC,QAAS,WAGAC,EAAgC,CACzCC,eAAgB,iBAChBC,eAAgB,kBAGPC,EAAyB,CAClCC,OAAQ,SACRC,MAAO,QACPC,eAAgB,iBAChBC,eAAgB,iBAChBC,cAAe,gBACfC,iBAAkB,oBAGTC,EAA+B,CACxC,CAACP,EAAuBC,QAASjV,IAAAA,KAAU,WAC3C,CAACgV,EAAuBE,OAAQlV,IAAAA,KAAU,mBAC1C,CAACgV,EAAuBG,gBAAiBnV,IAAAA,KAAU,oBACnD,CAACgV,EAAuBI,gBAAiBpV,IAAAA,KAAU,oBACnD,CAACgV,EAAuBK,eAAgBrV,IAAAA,KAAU,mBAClD,CAACgV,EAAuBM,kBAAmBtV,IAAAA,KAAU,sBAG5CwV,EAA6C,CACtD,CAACR,EAAuBC,QAAS,CAAC,kBAClC,CAACD,EAAuBE,OAAQ,GAChC,CAACF,EAAuBG,gBAAiB,CAAC,kBAC1C,CAACH,EAAuBI,gBAAiB,CAAC,iBAAkB,wBAC5D,CAACJ,EAAuBK,eAAgB,CAAC,wBACzC,CAACL,EAAuBM,kBAAmB,CAAC,mBAGnCG,GAA0C3P,EAAAA,EAAAA,MACnDlB,EAAAA,QACA8Q,EAAAA,EAAAA,SAAQV,EAAuBM,kBAFoBxP,CAGrDkP,GAEWW,EAA0C,CACnDX,EAAuBC,OACvBD,EAAuBE,MACvBF,EAAuBG,gBAEdS,EAA6C,CACtDZ,EAAuBC,OACvBD,EAAuBE,MACvBF,EAAuBM,kBAGdO,EAA6B,CACtCC,aAAc,eACdC,gBAAiB,kBACjBC,gBAAiB,kBACjBC,wBAAyB,0BACzBC,QAAS,UACTC,WAAY,aACZC,WAAY,aACZC,UAAW,aAGFC,EAA8C,uBAE9CC,EAAwB,CACjC,MACA,QACA,OACA,iBACA,oBACA,yBACA,qBACA,yBACA,4B,oiCC3KG,MAAMC,EAAqB,WACrBC,EAAmB,SACnBC,EAAmB,SAEnBC,EAA0B,eAAClX,EAAD,uDAAMmX,GAAAA,GAAN,MAAoB,CACvD,CAACJ,GAAqBpD,EAAAA,GAAAA,MACtB3T,GAAAA,IAGSoX,EAAqB,SAACC,GAA6B,IAAlBrX,EAAkB,uDAAbmX,GAAAA,GAC/C,MAAMzX,EAAO4X,EAAiBD,GAC9B,MAAO,CACH3X,KAAAA,EACA,CAACqX,GAAqBpD,EAAAA,GAAAA,MACtB,CAACsD,IAAmBM,EAAAA,EAAAA,QAAO,GAAI,CAAC,gBAAiB,GAAI7X,GACrDM,GAAAA,IAIKsX,EAAoBD,GAAD,KACzBA,EADyB,CAE5BG,cACIH,EAAUI,wBAAyBC,EAAAA,EAAAA,KAAgCL,EAAUxN,SAAUwN,EAAUM,aAG5FC,GAAuBC,EAAAA,EAAAA,QAAM,CAAC7X,EAAI8X,KAC3C,MAAMC,EAAaD,EAAO/M,WAAWiN,GAAUA,EAAMhY,KAAOA,IAC5D,OAAO+X,GAAc,EAAI,CAACA,GAAc,QAG/BE,EAAqB,SAACC,GAAD,IAAiBC,EAAjB,uDAAiCP,EAAjC,MAA0D,CAACxjB,EAAO4L,KAChG,MACM8X,GADgBM,EAAAA,EAAAA,OAAeF,GACRG,IAAIjkB,GAC3BkkB,EAAYH,EAAcnY,EAAI8X,GACpC,QAAOQ,IAAYF,EAAAA,EAAAA,OAAeF,KAAmBI,KAG5CC,EAA0B,CAACC,EAAcC,IAAuB,CAACrkB,EAAOskB,KACjF,MAAMC,EAAYH,EAAapkB,EAAOskB,GACtC,OAAOC,GAAaA,EAAUC,SAAQC,EAAAA,EAAAA,IAAWJ,KAGxCK,EAA2BC,GAAsB,CAAC3kB,EAAOskB,EAASM,KAC3E,MAAMC,EAAiBF,EAAkB3kB,EAAOskB,GAChD,OAAIO,EACmBA,EAAeZ,IAAIjkB,GACpB2W,WAAWsM,GAAcA,EAAUrX,KAAOgZ,KAExD,GAGCE,EAA0BH,GAAsB,CAAC3kB,EAAOskB,EAASM,KAC1E,MAAMC,EAAiBF,EAAkB3kB,EAAOskB,GAE1CS,EADoBL,EAAwBC,EAC3BK,CAAkBhlB,EAAOskB,EAASM,GACzD,OAA2B,IAApBG,EAAwBF,EAAeL,SAAQR,EAAAA,EAAAA,IAAYe,IAAmB,MAG5EE,EAA0BC,GAAqB,CAACllB,EAAOskB,EAASM,EAAaO,EAAUpc,KAChG,MAAMqc,EAAkBF,EAAiBllB,EAAOskB,EAASM,GACzD,GAAIQ,EAAiB,CACjB,MAAMC,EAAe,EAAH,GAAOD,EAAgBnB,IAAIjkB,IAE7C,OADAqlB,EAAaF,GAAYpc,EAClBqc,EAAgBE,IAAItlB,EAAOqlB,GAGtC,OAAOrlB,GAGEulB,EAA0BL,GAAqB,CAACllB,EAAOskB,EAASM,EAAaO,KACtF,MAAMC,EAAkBF,EAAiBllB,EAAOskB,EAASM,GACzD,GAAIQ,EACA,OAAOA,EAAgBnB,IAAIjkB,GAAOmlB,IAY7BK,EAAoB,IAAoF,IAAnF,MAACxlB,EAAD,QAAQskB,EAAR,YAAiBM,EAAjB,UAA8B3B,EAA9B,kBAAyC0B,EAAzC,kBAA4DK,GAAuB,EACjH,MAAMS,EAAmBd,EAAkB3kB,EAAOskB,GAClD,GAAImB,EAAkB,CAClB,IAAIC,EAAgB,IAAID,EAAiBxB,IAAIjkB,IAC7C,MAAM2lB,EAAYX,EAAkBhlB,EAAOskB,EAASM,GAC9CgB,GAAmBF,EAAcC,EAAY,GAgBnD,OAfmB,IAAfA,GAAoBC,EACpBF,EAAclM,OAAOmM,EAAY,EAAG,EAAG1C,IACjB,IAAf0C,GACPD,EAAclM,OAAOmM,EAAY,EAAG,EAApC,KACO1C,EADP,CAEI4C,SAAUH,EAAcC,GAAWE,YAGvCH,EAAcC,GAAd,KACOD,EAAcC,GADrB,CAEIE,SAAUtG,EAAAA,GAAAA,SAGdmG,EAAcI,KAAK7C,GAEhBwC,EAAiBH,IAAItlB,EAAO0lB,GAEvC,OAAO1lB,GAGE+lB,EAAsB,IAO7B,IAP8B,MAChC/lB,EADgC,QAEhCskB,EAFgC,YAGhCM,EAHgC,cAIhCoB,EAJgC,iBAKhCC,EALgC,iBAMhCf,GACE,EACEgB,EAAWlmB,EACf,GAAIgmB,EAIA,MA/C0B,EAAChmB,EAAOskB,EAASM,EAAa3B,EAAWiC,KACvE,MAAME,EAAkBF,EAAiBllB,EAAOskB,EAASM,GACzD,IAAIuB,EAGJ,OAFIf,IAAiBe,EAAgBf,EAAgBnB,IAAIjkB,GAAO+L,QAEzDkX,EAAUG,cAAc9b,UAAY6e,IAAkBlD,EAAUG,cAAcjT,SAASgW,KAuCtFC,CAA0BpmB,EAAOskB,EAASM,EAAaoB,EAAed,KACtEgB,EAAWD,EAAiBjmB,EAAOskB,EAASM,EAAa/B,EAAkBmD,EAAc5C,cAAc,KAC3G8C,EAAWD,EAAiBC,EAAU5B,EAASM,EAAahC,EAAkB,IACvEqD,EAAiBC,EAAU5B,EAASM,EAAa,OAAQoB,GAC7D,CACH,MAAMK,EAAWnB,EAAiBllB,EAAOskB,EAASM,GAIlD,OAHIyB,IACAH,EAAWG,EAASf,IAAIY,EAAUpD,EAAwB8B,KAEvDsB,IAIFI,EAAuB,IAA+D,IAA9D,MAACtmB,EAAD,QAAQskB,EAAR,YAAiBM,EAAjB,SAA8BiB,EAA9B,iBAAwCI,GAAsB,EAC/F,OAAOA,EAAiBjmB,EAAOskB,EAASM,EAAajC,EAAoBkD,IAGhEU,EAAkB,IAAsD,IAArD,MAACvmB,EAAD,QAAQskB,EAAR,YAAiBM,EAAjB,kBAA8BD,GAAuB,EACjF,MAAMc,EAAmBd,EAAkB3kB,EAAOskB,GAClD,GAAImB,EAAkB,CAClB,MAAMe,EAAa,IAAIf,EAAiBxB,IAAIjkB,IACtC+kB,EAAiByB,EAAW7P,WAAWsM,GAAcA,EAAUrX,KAAOgZ,IAE5E,GAAIG,GAAkB,EAAG,CACrB,MAAM0B,GAAmBC,EAAAA,EAAAA,QAAO3B,EAAgB,EAAGyB,GAC7CG,EAAgBF,EAAiB1B,EAAiB,GAClD6B,EAAmBJ,EAAWzB,GASpC,OAPI4B,IACAF,EAAiB1B,EAAiB,GAAlC,KACO4B,EADP,CAEId,SAAUe,EAAiBf,YAI5BJ,EAAiBH,IAAItlB,EAAOymB,IAG3C,OAAOzmB,GAGE6mB,EAAqB,IAA0D,IAAzD,MAAC7mB,EAAD,QAAQskB,EAAR,YAAiBM,EAAjB,GAA8BhZ,EAA9B,kBAAkC+Y,GAAuB,EACxF,MAAMc,EAAmBd,EAAkB3kB,EAAOskB,GAClD,GAAImB,EAAkB,CAClB,MAAMe,EAAa,IAAIf,EAAiBxB,IAAIjkB,IACtC+kB,EAAiByB,EAAW7P,WAAWsM,GAAcA,EAAUrX,KAAOgZ,IAC5E,GAAIG,GAAkB,EAElB,OADAyB,EAAWV,KAAX,KAAoBU,EAAWzB,GAA/B,CAAgDnZ,GAAAA,KACzC6Z,EAAiBH,IAAItlB,EAAOwmB,GAG3C,OAAOxmB,GAGE8mB,EAAY,IAA+E,IAA9E,MAAC9mB,EAAD,QAAQskB,EAAR,YAAiBM,EAAjB,OAA8B7Y,EAA9B,iBAAsCgb,EAAtC,iBAAwDd,GAAsB,EACpG,MAAME,EAAgBY,EAAiB/mB,EAAOskB,EAASM,EAAa/B,GAE9DqD,GAAWc,EAAAA,EAAAA,KAAoBb,EAAepa,GAC9C/L,EACAimB,EAAiBjmB,EAAOskB,EAASM,EAAahC,EAAkB,IACtE,OAAOqD,EAAiBC,EAAU5B,EAASM,EAAa/B,EAAkB9W,IAGjEkb,EAAY,IAA6D,IAA5D,MAACjnB,EAAD,QAAQskB,EAAR,YAAiBM,EAAjB,OAA8B7T,EAA9B,iBAAsCkV,GAAsB,EAClF,OAAOA,EAAiBjmB,EAAOskB,EAASM,EAAahC,EAAkB7R,K,6GC3LpE,SAAUmW,EAAV,GAQJ,IARgD,OAC/CxD,EAD+C,cAE/CK,EAAgBP,EAAAA,qBAF+B,mBAG/C2D,EAH+C,QAI/C7C,EAJ+C,YAK/CM,EAL+C,WAM/CwC,EAN+C,QAO/ChP,GACD,EACC,MAAM,QAAC7M,EAAS0X,UAAWoE,EAAmB7O,MAAO8O,EAA/C,mBAA4DC,GAAsBH,GAClF,kBAAC5B,EAAD,gBAAoBgC,EAApB,eAAqCC,EAArC,gBAAqDlB,GAAmBnO,EAExEsP,GAAkBzV,EAAAA,EAAAA,MAAK8R,EAAcO,IAAU3W,EAAAA,EAAAA,MAAKga,EAAAA,GAAIjE,IAASkE,EAAAA,EAAAA,QAAO,GAAIT,GAA1DlV,CAA+EyR,GACjGmE,EAAyBrP,IAAU7K,EAAAA,EAAAA,MAAK,CAAC6K,EAAO,MAAOkP,GAEvD3C,EAAiB2C,EAAgB/Q,WAAUC,EAAAA,EAAAA,QAAO,KAAMgO,IAG9D,GAF8BA,GAA+B,IAAhB0C,EAGzC,GAAI/b,QACMuc,EAAAA,EAAAA,IAAIN,EAAgBlD,EAASM,EAAayC,QAC7C,CACH,IAAIU,EAAwBR,EAAmBD,EAAc,GACzDS,SACMD,EAAAA,EAAAA,IAAIN,EAAgBlD,EAASM,EAAamD,UAC1CD,EAAAA,EAAAA,IAAIvB,EAAgBjC,EAASuD,EAAsB9C,EAAiB,YAEpE+C,EAAAA,EAAAA,IAAIL,EAAenD,EAASM,QAGvC,CACH,MAAMoD,EAAqBT,EAAmBjgB,OAASggB,EACjDW,EAAcrD,EAAcG,EAAiBuC,EAAcI,EAAgBpgB,OAAS0gB,EAE1Fzc,QACYuc,EAAAA,EAAAA,IAAItC,EAAkBlB,EAASuD,EAAsBI,EAAc,GAAIZ,UACvES,EAAAA,EAAAA,IAAIvB,EAAgBjC,EAASuD,EAAsBI,Q,2jBC1BvE,MAAMC,GAAuBjW,EAAAA,EAAAA,MACzBlB,EAAAA,QACArJ,EAAAA,EAAAA,MAAK+N,IAAD,CACA0S,MAAO1S,EAAS1P,MAChBwd,UAAW9N,EAASuK,KACpBhR,KAAMyG,EAASzG,KACfoZ,QAAS3S,EAAS2S,QAClBC,kBAAmB5S,EAAS4S,uBAIvBC,EAAmB,CAC5B1c,GAAI,SACJuc,MAAOhc,IAAAA,KAAU,UACjBqa,WAAY0B,EAAqBK,EAAAA,MAGxBC,EAAqB,CAC9B5c,GAAI,WACJuc,MAAOhc,IAAAA,KAAU,YACjBqa,WAAY0B,EAAqBO,EAAAA,MAGxBC,EAA+B,CACxC9c,GAAI,qBACJuc,MAAOhc,IAAAA,KAAU,uBACjBqa,WAAY0B,EAAqBS,EAAAA,MAGxBC,EAAqB,CAC9Bhd,GAAI,WACJuc,MAAOhc,IAAAA,KAAU,6BACjBqa,WAAY0B,EAAqBW,EAAAA,MAGxBC,EAAuB,CAChCld,GAAI,aACJuc,MAAOhc,IAAAA,KAAU,eACjBqa,WAAY0B,EAAqBa,EAAAA,MAGxBC,EAA6B,CACtCpd,GAAI,mBACJuc,MAAOhc,IAAAA,KAAU,qBACjBqa,WAAY0B,EAAqBe,EAAAA,MAGxBC,EAA4B,CACrCtd,GAAI,kBACJuc,MAAOhc,IAAAA,KAAU,oBACjBqa,WAAY0B,GAAqBiB,EAAAA,EAAAA,MAAK,CAAC,eAAgBC,EAAAA,OAGrDC,EAAsB,IAAMf,EAC5BgB,EAAwB,IAAMd,EAC9Be,EAAkC,IAAMb,EACxCc,EAAwB,IAAMZ,EAC9Ba,EAA0B,IAAMX,EAChCY,EAAiCC,GACnCA,GACMC,EAAAA,EAAAA,QACE,CACIpD,YAAY1a,EAAAA,EAAAA,QACR6b,EAAAA,GACAgC,EAAYjiB,KAAKmiB,GAAD,KACTb,EAA2BxC,WAAWva,MACrC2K,EAAAA,EAAAA,QAAO,YAAaqS,EAAAA,IAAAA,QAAAA,OAFZ,CAIZY,WAAAA,EACAC,oBAAqB,6BACrBC,oBAAqB,sCAIjCf,GAEFA,EACJgB,EAA+B,IAAMd,EAE9Be,EAA6B,IAOpC,IAPqC,MACvC9B,EADuC,UAEvC5E,EAFuC,WAGvCsG,EAHuC,oBAIvCC,EAJuC,oBAKvCC,GAEE,EADCtU,E,kXACD,mFAeF,UACI0S,MAAAA,EACA5E,UAAAA,EACA9N,SAAAA,GAjBwBA,EAAS2S,QAC/B,CACE8B,UAAUC,EAAAA,EAAAA,IAAsB1U,GAChC2U,WAAWC,EAAAA,EAAAA,IAAuB5U,IAEpC,GACiBoU,GACjBS,EAAAA,EAAAA,IAA2B,CACzBT,WAAAA,EACAC,oBAAAA,EACAC,oBAAAA,EACAQ,cAAepC,IAEjB,KAUGqC,EAAwB,CAAC5e,EAAIuc,EAAO3B,IAC7CA,GAAcA,EAAWlf,OACnB,CACEsE,GAAAA,EACAuc,MAAAA,EACA3B,WAAAA,GAEF,KAEGiE,EAAiC,WAInC,IAJoC,iBAC3CC,EAAmBC,EAAAA,EADwB,YAE3ChB,EAF2C,4BAG3CiB,GAA8B,GACvB,uDAAP,GACA,MAAMC,EAAyB,QAAC,GAACjf,EAAD,MAAKuc,EAAL,WAAY3B,GAAb,SAC3BgE,EAAsB5e,EAAIuc,EAAO3B,EAAW9e,IAAIuiB,GAA4Ble,OAAO2e,KACjFI,EAAoB,CACtBzB,OACIuB,EAA8B,CAACtB,KAA2B,GAC9DC,IACAC,IACAC,IACAC,EAA8BC,GAC9BK,KAGJ,OAAOc,EAAkBpjB,IAAImjB,GAAwB9e,OAAOgf,EAAAA,WAGnDC,EAAsB,CAACzH,EAAWoG,EAAaiB,KACxD,MAAMK,EAAwBR,EAA+B,CACzDd,YAAAA,EACAiB,4BAAAA,IACD3e,MAAM2X,GAAUA,EAAM4C,WAAWva,MAAMif,GAASA,EAAK3H,YAAcA,MACtE,OAAO0H,GAAyBA,EAAsBzE,WAAWva,MAAMif,GAASA,EAAK3H,YAAcA,M,uMC9JvG,SAASpa,IAA2Q,OAA9PA,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUlC,OAAQiC,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIhB,KAAOkB,EAAcL,OAAOM,UAAUC,eAAeC,KAAKH,EAAQlB,KAAQe,EAAOf,GAAOkB,EAAOlB,IAAY,OAAOe,GAAkBH,EAASU,MAAMC,KAAMN,W,sfCsCzS,MAAM2hB,EAAgC,CAAC1V,EAAU2V,IAAX,GACzCjD,MAAO1S,EAAS1P,MAChBwd,UAAW9N,EAASuK,KACpBhR,MAAMqc,EAAAA,EAAAA,KAAwB5V,GAC9BA,SAAU,CACNzG,KAAMyG,EAASzG,KACfsc,YAAa7V,EAAS6V,YACtBjD,kBAAmB5S,EAAS4S,kBAC5BD,SAAS,IAEVgD,GAGMd,EAA6B,QAAC,WAACT,EAAD,oBAAaC,EAAb,oBAAkCC,EAAlC,cAAuDQ,GAAxD,QAA4E,CAClHhH,WAAWgI,EAAAA,EAAAA,KAAuCzB,EAAqBD,EAAWje,IAClFke,oBAAAA,EACAD,WAAYA,EAAWje,GACvBme,oBAAAA,EACA5B,MAAQ,GAAE0B,EAAW9jB,SAASwkB,MAG5BiB,EAA4B,CAC9B,CACIvI,UAAWkI,EAA8BM,EAAAA,IAAAA,WAA6B,CAClEvB,SAAU7K,EAAAA,GACV+K,UAAW,kBAEf9oB,MAAOoqB,EAAAA,IAEX,CACIzI,UAAWkI,EAA8BM,EAAAA,IAAAA,mBAAqC,CAC1E3B,oBAAqB,aACrBI,SAAU7K,EAAAA,GACV+K,UAAW,gBACXuB,SDrEI,QAAC,OACf5pB,EAAS,IADK,EAEXgI,E,kXAFW,sBAGVC,IAAAA,cAAoB,MAAOb,EAAS,CACxC/H,MAAO,KACPC,OAAQ,KACR4I,QAAS,YACTC,QAAS,MACTC,MAAO,6BACPyhB,WAAY,gCACX7hB,GAAQC,IAAAA,cAAoB,OAAQ,KAAMA,IAAAA,cAAoB,iBAAkB,CACjF6hB,GAAI,UACJC,GAAI,SACJC,GAAI,UACJC,GAAI,UACJpgB,GAAI,kBACH5B,IAAAA,cAAoB,OAAQ,CAC7BiiB,UAAW,UACXC,OAAQ,OACNliB,IAAAA,cAAoB,OAAQ,CAC9BiiB,UAAW,UACXC,OAAQ,UACLliB,IAAAA,cAAoB,iBAAkB,CACzC6hB,GAAI,UACJC,GAAI,SACJC,GAAI,UACJC,GAAI,UACJpgB,GAAI,kBACH5B,IAAAA,cAAoB,OAAQ,CAC7BiiB,UAAW,OACXC,OAAQ,OACNliB,IAAAA,cAAoB,OAAQ,CAC9BiiB,UAAW,UACXC,OAAQ,UACLliB,IAAAA,cAAoB,iBAAkB,CACzC6hB,GAAI,UACJC,GAAI,UACJC,GAAI,UACJC,GAAI,WACJpgB,GAAI,kBACH5B,IAAAA,cAAoB,OAAQ,CAC7BiiB,UAAW,UACXE,YAAa,IACbD,OAAQ,OACNliB,IAAAA,cAAoB,OAAQ,CAC9BiiB,UAAW,UACXC,OAAQ,UACLliB,IAAAA,cAAoB,iBAAkB,CACzC6hB,GAAI,MACJC,GAAI,KACJC,GAAI,MACJC,GAAI,UACJpgB,GAAI,kBACH5B,IAAAA,cAAoB,OAAQ,CAC7BiiB,UAAW,UACXC,OAAQ,OACNliB,IAAAA,cAAoB,OAAQ,CAC9BiiB,UAAW,UACXC,OAAQ,UACLliB,IAAAA,cAAoB,OAAQ,CAC/BS,EAAG,6QACHmB,GAAI,mBACF5B,IAAAA,cAAoB,OAAQ,CAC9BS,EAAG,uQACHmB,GAAI,mBACF5B,IAAAA,cAAoB,OAAQ,CAC9BS,EAAG,2IACHmB,GAAI,mBACF5B,IAAAA,cAAoB,OAAQ,CAC9BS,EAAG,gXACHmB,GAAI,oBACD5B,IAAAA,cAAoB,IAAK,CAC5BI,OAAQ,OACRC,YAAa,IACbC,KAAM,OACNC,SAAU,WACTP,IAAAA,cAAoB,IAAK,KAAMA,IAAAA,cAAoB,IAAK,CACzDoiB,UAAW,sBACVpiB,IAAAA,cAAoB,MAAO,CAC5BM,KAAM,uBACN+hB,UAAW,oBACTriB,IAAAA,cAAoB,MAAO,CAC7BM,KAAM,uBACNE,QAAS,KACT6hB,UAAW,qBACRriB,IAAAA,cAAoB,IAAK,CAC5BoiB,UAAW,0BACVpiB,IAAAA,cAAoB,OAAQ,CAC7BM,KAAM,UACNgiB,EAAG,QACHC,EAAG,SACHnrB,MAAO,QACPC,OAAQ,QACRmrB,GAAI,UACFxiB,IAAAA,cAAoB,OAAQ,CAC9BS,EAAG,kIACHH,KAAM,YACJN,IAAAA,cAAoB,OAAQ,CAC9BS,EAAG,yFACHH,KAAM,YACJN,IAAAA,cAAoB,OAAQ,CAC9BS,EAAG,8IACHH,KAAM,YACJN,IAAAA,cAAoB,OAAQ,CAC9BS,EAAG,gEACHH,KAAM,YACJN,IAAAA,cAAoB,IAAK,CAC3BoiB,UAAW,oBACVpiB,IAAAA,cAAoB,OAAQ,CAC7B4B,GAAI,iBACJtB,KAAM,QACLN,IAAAA,cAAoB,MAAO,CAC5BqiB,UAAW,qBACRriB,IAAAA,cAAoB,MAAO,CAC9BM,KAAM,UACN+hB,UAAW,oBACTriB,IAAAA,cAAoB,OAAQ,CAC9BS,EAAG,6LACHH,KAAM,UACNmiB,KAAM,yBACJziB,IAAAA,cAAoB,OAAQ,CAC9BS,EAAG,6LACHH,KAAM,UACNmiB,KAAM,yBACJziB,IAAAA,cAAoB,OAAQ,CAC9BS,EAAG,uPACHH,KAAM,UACNmiB,KAAM,yBACJziB,IAAAA,cAAoB,UAAW,CACjCM,KAAM,uBACNmiB,KAAM,uBACNC,GAAI,QACJC,GAAI,QACJH,GAAI,QACJI,GAAI,aACC5iB,IAAAA,cAAoB,IAAK,KAAMA,IAAAA,cAAoB,IAAK,CAC7DoiB,UAAW,0BACVpiB,IAAAA,cAAoB,OAAQ,CAC7B4B,GAAI,iBACJtB,KAAM,QACLN,IAAAA,cAAoB,MAAO,CAC5BqiB,UAAW,qBACRriB,IAAAA,cAAoB,MAAO,CAC9BM,KAAM,uBACN+hB,UAAW,oBACTriB,IAAAA,cAAoB,OAAQ,CAC9BM,KAAM,UACNC,SAAU,UACVC,QAAS,KACTiiB,KAAM,uBACNhiB,EAAG,uRACCT,IAAAA,cAAoB,SAAU,CAClCM,KAAM,UACNoiB,GAAI,QACJC,GAAI,QACJE,EAAG,eCpFGvrB,MAAOwrB,EAAAA,MAIFC,GAA0BtJ,EAAAA,EAAAA,QAAM,CAACkG,EAAazN,KACvD,MAAM8Q,EAAuBxB,EAA0BpV,QAAO,CAACoQ,EAAD,KAAoC,IAAvB,UAACvD,EAAD,MAAY3hB,GAAW,EAE9F,OADAA,EAAM4a,IAAesK,EAAWV,KAAX,KAAoB7C,EAApB,CAA+BtY,cAAeuR,EAAWhU,OACvEse,IACR,IACGyG,GAAkCtD,GAAe,IAAIuD,SAASrD,GAChEmD,EACKjhB,QAAO6K,EAAAA,EAAAA,QAAO,YAAa6U,EAAAA,IAAAA,WAAAA,OAC3B/jB,KAAKylB,GAAD,KACEA,EACA7C,EAA2B,CAC1BT,WAAAA,EACAC,oBAAqB,gCACrBC,oBAAqB,gCACrBQ,cAAe4C,EAAoBhF,aAInD,OAAO6E,EAAqBlhB,OAAOmhB,MAG1B9C,EAAwB,WAAmB,IAAlB1U,EAAkB,uDAAP,GAC7C,OAAQA,EAASzG,MACb,IAAK,MACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,iBACL,IAAK,YACD,OAAO,EACX,QACI,OAAOqQ,EAAAA,KAINgL,EAAyB,WAAmB,IAAlB5U,EAAkB,uDAAP,GAC9C,OAAQA,EAASzG,MACb,IAAK,MACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,iBACL,IAAK,YACD,MAAO,eACX,QACI,MAAO,kBAINoe,EAAoC,WAAmB,IAAlB3X,EAAkB,uDAAP,GACzD,OAAQA,EAASzG,MACb,IAAK,MACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,iBACL,IAAK,YACD,OAAO,EACX,QACI,OAAO,IAIbqe,GAAY5J,EAAAA,EAAAA,QAAM,CAACjd,EAAUiP,KAC3B6X,EAAAA,EAAAA,KAAmB7X,IACA8X,EAAAA,EAAAA,KAA8B/mB,EAAUiP,GACzC+X,KAAKH,EAAU7mB,MAExBiP,EAAS2S,UAIbqF,EAAwB,WAAiB,IAAhB9lB,EAAgB,uDAAP,GAC3C,OAAQA,EAAO+D,SACT/D,EAAO+D,SAASI,OAAOnE,EAAO+D,SAAShE,IAAI+lB,IAAwBC,KAAKC,EAAAA,GACxE,IACJ5hB,QAAO6hB,EAAAA,EAAAA,YAAWC,EAAAA,WAGXC,EAAgC,SACzCtnB,EACAunB,EACApjB,EACA4Y,EACAyK,GAEC,IADDC,EACC,uDADS,GAEV,MAAMC,EAAY,EAAH,GACRF,EAAsBxnB,EAAUunB,EAAUpjB,EAAe4Y,EAAW0K,GAD5D,CAEX/lB,IAAK6lB,EAAS7lB,MAEZwD,EAAWqiB,EAASriB,SACpBqiB,EAASriB,SAAShE,KAAKymB,GACrBL,EACItnB,EACA2nB,EACAxjB,EACA,GACAqjB,EACAC,EAAQniB,OAAO,CAACkU,KAAM+N,EAAS/N,KAAMja,MAAOgoB,EAAShoB,WAG3D,GAIN,OAFI2F,EAASpE,SAAQ4mB,EAAUxiB,SAAWA,GAEnCwiB,GAGEE,EAAsB,CAAC5nB,EAAUiP,EAAU9K,EAAe4Y,EAAW0K,KAC9E,MAAMI,GAAkBC,EAAAA,EAAAA,KAAmB9nB,EAAU,CAACwI,KAAMrE,IACtDwd,EAAQ1S,EAAS1P,OAAS0P,EAASuK,KACzC,MAAO,CACHmI,MAAOA,EACPoG,YAAaC,MAAMC,QAAQR,GACrB,CAACI,MAAoBK,EAAAA,EAAAA,QAAMpmB,EAAAA,EAAAA,MAAK,SAAU2lB,GAAU9F,GACpD,CAACkG,EAAiBlG,GACxB5E,UAAWA,IAAaoL,EAAAA,EAAAA,IAAwBlZ,EAASvN,IAAK+lB,GAC9DtjB,cAAeA,EACf8K,SAAUA,EACVyU,SAAUC,EAAsB1U,GAChC2U,UAAWC,EAAuB5U,GAClCmZ,WAAWtB,EAAAA,EAAAA,KAAmB7X,GAC9BoZ,qBAAsBzB,EAAkC3X,KAInDqZ,EAAoB,SAACtoB,EAAUuoB,GAA2C,IAAzBC,IAAyB,yDACnF,OAAOC,EAAAA,EAAAA,KAAyBzoB,EAAUuoB,GAAkBG,EAAAA,EAAAA,SAAOC,EAAAA,EAAAA,SAAQH,GAAgB3B,EAAU7mB,MAG5F4oB,GAAyBC,EAAAA,EAAAA,IAClC,SACI7oB,GAOC,IAND8oB,EAMC,uDANqB,GACtBC,EAKC,uCAJDvB,EAIC,uCAHDgB,IAGC,yDAFDQ,IAEC,yDADD7F,EACC,uCACD,MAAM8F,EAAmB1mB,GAAUumB,EAAoBnf,SAASpH,GAC1D2mB,EAAoB,IAAMF,EAC1BG,EAA4B,KAAM/Y,EAAAA,EAAAA,QAAO,SAAU,EAAG0Y,IACtD,YAACM,GAAeppB,EAEtB,OAAOopB,EACF7jB,OAAO8jB,EAAAA,KACP9jB,QACG+jB,EAAAA,EAAAA,SAAQ,EACJX,EAAAA,EAAAA,SAAQG,EAAoBhoB,SAC5ByoB,EAAAA,EAAAA,SAAQ,CAACL,EAAmBC,GAA2B/Y,EAAAA,EAAAA,QAAO,MAAO0Y,EAAoB,OACzFS,EAAAA,EAAAA,SAAQ,EAACnC,EAAAA,EAAAA,YAAW8B,IAAoBzd,EAAAA,EAAAA,OAAK3J,EAAAA,EAAAA,MAAK,OAAQmnB,QAGjE/nB,KAAKwU,IACF,MAAMiM,GAAQmG,EAAAA,EAAAA,KAAmB9nB,EAAU,CAACwI,KAAMkN,EAAWhU,MAEvD8nB,EAAoBjD,EAAwBpD,EAAazN,GAAYpQ,OACvEgjB,EAAkBtoB,EAAU0V,EAAY8S,GAAetnB,KAAKqmB,GACxDD,EAA8BtnB,EAAUunB,EAAU7R,EAAWhU,IAAK,GAAI8lB,MAI9E,OAAOgC,EAAkB1oB,OAASioB,EAAYrT,EAAWhU,IAAKigB,EAAO6H,GAAqB,QAE7FjkB,OAAOgf,EAAAA,aAIPkF,GAAiCZ,EAAAA,EAAAA,IAC1C,SAAC7oB,GAA0E,IAAhE8oB,EAAgE,uDAA1C,GAAI5E,EAAsC,uDAAnBC,EAAAA,EAAGhB,EAAgB,uCACvE,GAAmC,IAA/B2F,EAAoBhoB,OACpB,OAAO8nB,EACH5oB,OACAgC,EACAgiB,EAAAA,GACA4D,GACA,GACA,EACAzE,GAIR,MAAMjG,EAAS,GACT/Y,EACF2kB,EAAoBhoB,OAAS,GACvB4oB,EAAAA,EAAAA,KAA0B1pB,EAAU8oB,GACpCA,EAAoB,GAE9B,GAAI3kB,EAAe,CACf,MAAMuR,GAAaC,EAAAA,EAAAA,KAAc3V,EAAUmE,GACrCwd,EACFmH,EAAoBhoB,OAAS,EACvB6E,IAAAA,KAAU,eACVmiB,EAAAA,EAAAA,KAAmB9nB,EAAU,CAACwI,KAAMkN,EAAWhU,MAGnD8nB,EADuBjD,EAAwBpD,EAAazN,GAAYnQ,OAAO2e,GACtC5e,OAC3CgjB,EAAkBtoB,EAAU0V,GAAY,GAAOxU,KAAKqmB,GAChDD,EAA8BtnB,EAAUunB,EAAU7R,EAAWhU,IAAK,GAAIkmB,MAG1E4B,EAAkB1oB,QAClBoc,EAAOoC,MAAK0E,EAAAA,EAAAA,IAAsBtO,EAAWhU,IAAKigB,EAAO6H,IAIjE,OAAOtM,KAKFyM,EAA2BC,IACpC,MAAMC,EAAqBC,IACvBC,EAAAA,EAAAA,SAAQD,EAAM5oB,KAAKzD,GAAS,CAACA,GAAM6H,OAAO7H,EAAKqsB,MAAQD,EAAkBpsB,EAAKqsB,OAAS,OAE3F,IAAIE,EAAiB,KAOrB,OANcH,EAAkBD,GAAc1oB,KAAI,CAACzD,EAAMuU,KACjDvU,GAAQA,EAAKqsB,QACbE,EAAiBhY,GAEd,CAACvU,KAAAA,EAAMuU,MAAAA,EAAOgY,eAAAA,Q,8qBC/QtB,MAAMC,EAA4BC,IACrCvF,EAAAA,EAAAA,IAA8BM,EAAAA,IAAAA,KAAuB,CACjDkF,YAAaxkB,IAAAA,KAAU,gBACvB0iB,sBAAsB,EACtB3E,SAAU,IACV0G,UAAU,EACVC,SAAU,UACVC,uBAAuB,EACvBC,kBAAkB,IAGpBC,GAA8B7F,EAAAA,EAAAA,IAA8BM,EAAAA,IAAAA,QAA0B,CACxFvB,SAAU,EACVE,UAAW,eACXyE,sBAAsB,IAGboC,EAAgB,EACzB9F,EAAAA,EAAAA,IAA8BM,EAAAA,IAAAA,UAA4B,CACtDvB,SAAU7K,EAAAA,MAEd8L,EAAAA,EAAAA,IAA8BM,EAAAA,IAAAA,UAA4B,CACtDvB,SAAU7K,EAAAA,MAEd8L,EAAAA,EAAAA,IAA8BM,EAAAA,IAAAA,YAA8B,CACxDoD,sBAAsB,EACtB3E,SAAU,EACVE,UAAW,kBAEfe,EAAAA,EAAAA,IAA8BM,EAAAA,IAAAA,YAA8B,CACxDoD,sBAAsB,EACtB3E,SAAU,EACVE,UAAW,kBAEfe,EAAAA,EAAAA,IAA8BM,EAAAA,IAAAA,cAAgC,CAC1DtD,MAAOhc,IAAAA,KAAU,WACjB+d,SAAU7K,EAAAA,GACV+K,UAAW,mBAEfe,EAAAA,EAAAA,IAA8BM,EAAAA,IAAAA,KAAuB,CACjDvB,SAAU7K,EAAAA,GACV+K,UAAW,mBAEfe,EAAAA,EAAAA,IAA8BM,EAAAA,IAAAA,MAAwB,CAClDvB,SAAU7K,EAAAA,GACV+K,UAAW,kBAEf4G,GACA7F,EAAAA,EAAAA,IAA8BM,EAAAA,IAAAA,WAA6B,CACvDvB,SAAU,EACVE,UAAW,eACXyE,sBAAsB,KAE1B1D,EAAAA,EAAAA,IAA8BM,EAAAA,IAAAA,UAA4B,CACtDvB,SAAU,EACVE,UAAW,eACXyE,sBAAsB,KAE1B1D,EAAAA,EAAAA,IAA8BM,EAAAA,IAAAA,QAA0B,CACpDvB,SAAU,EACVE,UAAW,eACXyE,sBAAsB,KAIjBqC,EAAoBvH,IAC7B,MAAMwH,GAAoBxH,GAAe,IAAIjiB,KAAKmiB,GAAD,KAC1CmH,GACA1G,EAAAA,EAAAA,IAA2B,CAC1BT,WAAAA,EACAC,oBAAqB,6BACrBC,oBAAqB,gCACrBQ,cAAeyG,EAA4B7I,WAGnD,OAAO8I,EAAcnlB,OAAOqlB,IAGnBC,EAA6B,CAAC5qB,EAAUiP,EAAU9K,EAAe4Y,EAAW0K,IACrF,MACOG,EAAAA,EAAAA,IAAoB5nB,EAAUiP,EAAU9K,EAAe4Y,EAAW0K,GADzE,CAEI/lB,IAAKuN,EAASvN,IACd8G,MAAMqc,EAAAA,EAAAA,KAAwB5V,KAgBhC4b,GAAuCpX,EAAAA,EAAAA,cACzC,SAACzT,GAAD,IAAW8oB,EAAX,uDAAiC,GAAI3F,EAArC,8CACIvP,EAAAA,EAAAA,IAAekV,EAAoBjV,YAAcsP,GAAe,IAAIjiB,KAAIY,EAAAA,EAAAA,MAAK,OAAO+R,eAdvD,SAAC7T,GAAoD,IAA1C8oB,EAA0C,uDAApB,GAAI3F,EAAgB,uCACtF,OAAOyF,EAAAA,EAAAA,IACH5oB,EACA8oB,EACAgC,EACAF,GACA,GACA,EACAzH,MAUF2H,EAAoB,SAAC1lB,EAAIuc,EAAOoJ,GAAiC,IAAzBC,IAAyB,yDACnE,OAAOD,GAAUA,EAAOjqB,OAClB,CACEsE,GAAAA,EACAuc,MAAAA,EACAqJ,cAAAA,EACAD,OAAAA,GAEF,MAGGE,EAAoB,SAACjrB,EAAU8oB,GAA6D,IAAxCoC,EAAwC,uDAApB,GAAI/H,EAAgB,uCACrG,MAAMgI,EAA2D,IAA/BrC,EAAoBhoB,OAChD2pB,EAAgBC,EAAiBvH,GACjCiI,EAAeN,EAAkB,UAAWnlB,IAAAA,KAAU,SAAU8kB,GAAe,GAC/EY,EAAmBR,EAAqC7qB,EAAU8oB,EAAqB3F,GACvFmI,GAAoBpD,EAAAA,EAAAA,QAAMpmB,EAAAA,EAAAA,MAAK,UAAWupB,GAC1CE,GAA2B9f,EAAAA,EAAAA,OAC7BvK,EAAAA,EAAAA,KAAIsqB,EAA2B,IAAIf,KAAkBa,MACrDG,EAAAA,EAAAA,QAAOC,EAAAA,OAFsBjgB,CAG/Byf,GAEF,MAAO,CAACJ,EAAkB,cAAenlB,IAAAA,KAAU,eAAgB4lB,GAA0B,IACxFjmB,OAAO6lB,EAA4BE,EAAmBD,GACtD9lB,OAAO6lB,EAA4BC,EAAeC,GAClD9lB,OAAOgf,EAAAA,WAGHiH,GAA6BvO,EAAAA,EAAAA,QAAM,CAAC0O,EAAc5O,KAC3D,MAAM6O,EAAcD,EAAalmB,MAAK2K,EAAAA,EAAAA,QAAO,YAAa2M,IAC1D,GAAK6O,EAID,OAAOA,EAJO,CACd,MAAM1mB,GAAWgjB,EAAAA,EAAAA,QAAM9G,EAAAA,EAAAA,QAAO,GAAI,YAAauK,GAC/C,OAAOzmB,EAASpE,OAAS0qB,EAA2BtmB,EAAU6X,QAAa/a,MAM7E6pB,EAAuCC,GAAD,KACrCA,EADqC,CAExCf,OAAQe,EAAiBf,OAAOnb,QAAO,CAAC+b,EAAcC,KAClDD,EAAarM,KAAKsM,GAClBA,EAAY1mB,UAAYymB,EAAarM,SAAQ2H,EAAAA,EAAAA,IAAsB2E,IAC5DD,IACR,MAGMI,EAA+B,CAAC/rB,EAAU8oB,EAAqB3F,IACxE8H,EAAkBjrB,EAAU8oB,EAAqB,GAAI3F,GAAajiB,IAAI2qB,GAEpEG,EAAiBC,GAAWA,EAAM/mB,SAAW,CAAC+mB,GAAO3mB,OAAO2mB,EAAM/mB,SAASwhB,QAAQsF,IAAkB,CAACC,GAE/FC,EAAwB,CAAClsB,EAAU8oB,EAAqBoC,EAAmB/H,IAC7E8H,EAAkBjrB,EAAU8oB,EAAqBoC,EAAmB/H,GACtEuD,SAASyF,GAAeA,EAAWpB,SACnCrE,QAAQsF,GAGJI,EAA2B,SAACrP,GAAD,IAAY,OAACxS,EAAS,GAAV,aAAc8hB,GAA1B,uDAA0C,GAA1C,OACpCZ,EAAAA,EAAAA,QAAOC,EAAAA,MAAO,CACV3O,UAAWA,EACXjY,KAAM,GACNyF,OAAQA,GAAUA,EAAOrJ,KAAIorB,EAAAA,EAAAA,OAAKC,EAAAA,EAAAA,IAAG7kB,SAAUmM,EAAAA,WAC/CwY,aAAAA,KAGKG,EAAkBC,GAAWA,EAAOjkB,OAASkkB,EAAAA,IAAAA,cAE7CC,EAAiBV,GAAUA,EAAMhd,WAAY2d,EAAAA,EAAAA,KAAiBX,EAAMhd,UAEpE4d,EAA2BZ,GAChB,YAApBA,EAAMlP,WACc,gCAApBkP,EAAMlP,WACNkP,EAAMlP,UAAU+P,YAAW/H,EAAAA,EAAAA,KAAuC,6BAA8B,KAEvFgI,EAAoBd,IAC7Be,EAAAA,EAAAA,cAAa,CAAC,aAAc,iCAAkC,CAACf,EAAM3I,oBAAqB2I,EAAMlP,YAAYjc,OAC5G,EAESmsB,EAAsBhB,GAA8B,uBAApBA,EAAMlP,UAEtCmQ,EAAqBjB,KAAYA,EAAM5I,Y,sOC/MpD,MAAM8J,GAAoB5nB,EAAAA,EAAAA,SAAOkG,EAAAA,EAAAA,OAAK3J,EAAAA,EAAAA,MAAK,UAAWulB,EAAAA,QAAS+F,EAAAA,MAEzDC,GAAyCxE,EAAAA,EAAAA,IAAY1F,IACvDc,EAAAA,EAAAA,IAA+B,CAACd,YAAAA,MAGvBmK,EAAgB,CAACttB,EAAUmjB,EAAare,KAE7CgjB,EAAAA,EAAAA,KAAmB9nB,EAAU,CAACwI,KAAM1D,EAAKX,kBAErCkpB,EAAuClK,GAAa1d,MAAM2X,GACtDA,EAAM4C,WAAWva,MAAMif,GAASA,EAAK3H,YAAcjY,EAAKiY,eACvD,IACP4E,MAIG4L,EAAsC,CAACvtB,EAAUmjB,EAAaqK,KACvE,MAAMC,EAAkBN,EAAkBK,KAElCE,EAAY,IAAKC,IAAcC,EAAAA,EAAAA,WAAUC,EAAAA,IAAaJ,GA4C9D,OA1CmBE,EAAW/d,QAC1B,CAACke,EAAgB7B,KACb,MAAMrP,GAAgBE,EAAAA,EAAAA,KAAgCmP,EAAMhd,SAAUgd,EAAMlP,WACtExX,GAASwoB,EAAAA,EAAAA,KAAwB9B,GACjC+B,GAAgBjmB,EAAAA,EAAAA,MAAK,CACvB,QACA,cACA,YACA,sBACA,aACA,sBACA,WACA,YACA,gBACA,WACA,YACA,YACA,uBACA,OAdkBA,CAenBkkB,GAEGnnB,E,8UAAO,CAAH,GACHkpB,EADG,CAENC,UAAWX,EAActtB,EAAUmjB,EAAa6K,GAChDpR,cAAAA,IAGErS,GAAS2jB,EAAAA,EAAAA,KAAuBjC,GAUtC,OARA6B,EAAe,GAAGxO,KAAK,CACnBxa,KAAAA,EACAua,SAAU,MACV9Z,OAAAA,EACAH,GAAImX,GAAAA,GACJhS,OAAAA,IAGGujB,IAEX,CAAC,KAIAvoB,QAAQ4oB,GAAkBA,EAAcrtB,SAAUqG,EAAAA,EAAAA,MAAK,CAAC,SAAU,UAAWumB,KAC7ExsB,KAAKitB,IAAD,CACDnO,WAAYmO,EACZ9O,SAAUrG,EAAAA,GAAAA,MACV5T,GAAImX,GAAAA,GACJ6M,YAAasE,EAAUnjB,QAAU,S,sMC/EtC,MAAM6jB,GAA6B3iB,EAAAA,EAAAA,OAAK2V,EAAAA,EAAAA,QAAO,GAAI,gBAAgBiN,EAAAA,EAAAA,MAAIjH,EAAAA,EAAAA,YAAWiC,EAAAA,OAE5EiF,GAA8B7iB,EAAAA,EAAAA,OACvC2V,EAAAA,EAAAA,QAAO,GAAI,gBACX7b,EAAAA,EAAAA,QAAO8jB,EAAAA,MACPnoB,EAAAA,EAAAA,MAAIY,EAAAA,EAAAA,MAAK,SAGAysB,EAAkC,SAACvuB,GAAD,IAAWopB,EAAX,uDAAyB,GAAzB,OACpB,IAAvBA,EAAYtoB,QAAgBstB,EAA2BpuB,GACjDsuB,EAA4BtuB,GAC5BopB,GAEGoF,EAAgD,CAAC1E,EAAO2E,IAC7DA,GAAgBzG,MAAMC,QAAQwG,EAAaC,sBACpC5E,EAAM5oB,KAAKzD,GACTgxB,EAAaC,qBAAqB/kB,SAASlM,EAAK8E,OAG9C9E,E,8UAFH,IAAWA,EAAX,CAAiBkxB,YAAQ3sB,MAK9B8nB,G,+vBC6BJ,MAAM8E,EAAwB,CAAC7R,EAAW8R,IAC9BA,EAAQppB,MAAMgnB,GAAW,CAACA,EAAO1P,UAAY,GAAE0P,EAAO1P,gBAAgBpT,SAASoT,OAI1F+R,QAAQC,KAAM,+BAA8BhS,eACrC,MAIFiS,EAAgB,CAAChvB,EAAU+qB,EAAQ/K,EAAYiP,EAAcC,IAC/DtsB,OAAOusB,KAAKpE,GAAQnb,QAAO,CAACwf,EAAQrS,KACvC,MAAMN,EAAYmS,EAAsB7R,EAAWiD,GACnD,GAAIvD,EAAW,CACX,MAAM4S,EAAgB5S,EAAUM,UAChCqS,EAAOC,GAAiBC,EACpBtvB,EACAqvB,EACAtE,EAAOhO,GACPN,EACAwS,EACAC,GAGR,OAAOE,IACR,IAGMG,EAAoB,CAACxE,EAAQ/K,IAC/Bpd,OAAOusB,KAAKpE,GAAQnb,QAAO,CAACwf,EAAQrS,KACvC,MAAMN,EAAYmS,EAAsB7R,EAAWiD,GAOnD,OANIvD,IACA2S,EAAO3S,EAAUM,WAAayS,EAC1BzE,EAAOhO,GACPN,EAAUxN,UAAYwN,EAAUxN,SAASzG,OAG1C4mB,IACR,IAGDK,EAAe,CAACC,EAAGC,IAAMA,EAAEhB,OAASe,EAAEf,OACtCiB,EAAqB,QAAC,OAACjB,GAAF,SAAcA,EAAS,GAK5CkB,EAAuBpD,IAAW/D,EAAAA,EAAAA,QAAOkH,EAH3C,SAAC,OAACrlB,EAAS,IAAX,SACI,QAAC,MAAChI,GAAF,SACIgI,EAAOZ,SAASpH,KACuCutB,CAAerD,IACrEsD,GAAoCzG,EAAAA,EAAAA,SAAQ,CACrDyD,EAAAA,IACA3c,EAAAA,EAAAA,QAAO,YAAa,kBACpBA,EAAAA,EAAAA,QAAO,YAAa,UACpB3E,EAAAA,EAAAA,OAAK3J,EAAAA,EAAAA,MAAK,YAAakuB,EAAAA,OAGrBC,EAAqBC,GACvBttB,OAAOusB,KAAKe,GACPhvB,KAAKa,IAAD,CACDQ,MAAOR,EACP4sB,OAAQuB,EAAQnuB,GAChBxC,MAAOwC,MAEVouB,KAAKV,GAERW,EAA6B,CAACF,EAAS1nB,IACzC5F,OAAOusB,KAAKe,GAAShvB,KAAKa,IAAD,CACrBQ,MAAgB,SAATiG,EAAkB,IAAI6nB,EAAAA,QAAQtuB,IAAQA,EAC7C4sB,OAAQuB,EAAQnuB,GAChBxC,MAAOwC,MAGTuuB,EAAmB,CAACJ,EAASK,IACxBN,EAAkBC,GAAShvB,KAAK4D,GAAD,KAC/BA,EAD+B,CAElCvF,OAAOixB,EAAAA,EAAAA,KAAe1rB,EAAKvC,OAAO4E,EAAAA,EAAAA,MAAK,CAACrC,EAAKvC,MAAO,eAAgBguB,QAItEE,EAAiB,CAACP,EAASQ,IACtBA,EACFxvB,KAAKqB,IAAD,CACDA,MAAAA,EACAhD,MAAOgD,EACPosB,OAAQuB,EAAQ3tB,IAAU,MAE7B4tB,KAAKV,GAGRkB,EAAoB,CAACT,EAAS9nB,IACzBxF,OAAOusB,KAAKe,GACdhvB,KAAKa,IAAD,CACDQ,MAAOR,EACP4sB,OAAQuB,EAAQnuB,GAChBxC,OAAOqxB,EAAAA,EAAAA,KAAoB,CAACxoB,mBAAAA,GAAqBrG,OAEpDouB,KAAKV,GAGDoB,EAAuB,CAAC7wB,EAAUkwB,EAASY,KACpD,MAAM,YAAC1H,GAAeppB,EACtB,OAAOopB,EACF7jB,OAAOurB,EAAqB,QAAC,IAACpvB,GAAF,SAAWovB,EAAmBnnB,SAASjI,IAAO6iB,EAAAA,UAC1E4L,KAAKW,GAAqBC,EAAAA,EAAAA,KAAuBD,EAAoB,OAAUE,GAAM,GACrF9vB,KAAKwU,IACF,MAAMub,GAAcC,EAAAA,EAAAA,KAAexb,EAAWhU,KAC9C,OAAO2nB,EAAAA,EAAAA,KAAsB3T,GACvB,CACEnT,MAAOmT,EAAWhU,IAClBitB,OAAQuB,EAAQe,IAAgB,EAChC1xB,OAAOuoB,EAAAA,EAAAA,KAAmB9nB,EAAU,CAACwI,KAAMkN,EAAWhU,OAASuvB,GAEjE,QAET1rB,OAAOgf,EAAAA,WAGV4M,EAAiB,CAACnxB,EAAUkwB,EAASzT,KACvC,MAAM,MAAC2U,GAASpxB,EAChB,OAAOoxB,EACFlwB,KAAKmwB,IACF,MAAMJ,GAAcC,EAAAA,EAAAA,KAAeG,EAAK3vB,KACxC,MAAO,CACHa,MAAO8uB,EAAK3vB,IACZnC,MAAO8xB,EAAK9xB,MACZovB,OAAQuB,EAAQe,IAAgB,MAGvC1rB,OAAOsqB,EAAoBpT,IAC3B0T,KAAKV,IAGR6B,EAA0B,CAACtxB,EAAUkwB,EAASzT,KAChD,MAAM,QAAC8U,GAAWvxB,EAElB,OAAOuxB,EACFrwB,KAAK+B,IACF,MAAMguB,GAAcC,EAAAA,EAAAA,KAAejuB,EAAOvB,KAC1C,MAAO,CACHa,MAAO0uB,EACPtC,OAAQuB,EAAQe,IAAgB,EAChC1xB,MAAO0D,EAAO1D,OAAS0xB,MAG9B1rB,OAAOsqB,EAAoBpT,IAC3B0T,KAAKV,IAGR+B,EAAuB,CAACxxB,EAAUkwB,EAASzT,KAC7C,MAAM/G,GAAaC,EAAAA,EAAAA,KAAc3V,EAAUyc,EAAUtY,eAC/CstB,EAAe/b,GAAcA,EAAW+b,aAAgB,GAE9D,OAAOC,EAAAA,EAAAA,SAAO5vB,EAAAA,EAAAA,MAAK,SAAU,IACtB2vB,EAAYvwB,KAAI,QAAC,IAACQ,EAAD,MAAMnC,GAAP,QAAmB,CAClCoyB,OAAO,EACPpvB,MAAOb,EACPitB,OAAQuB,EAAQxuB,IAAQ,EACxBnC,MAAOA,GAASmC,SAEjBkB,OAAOgvB,QAAQ1B,GAAShvB,KAAI,IAAyB,IAAvB2wB,EAAYC,GAAW,EACpD,MAAMC,GAAatsB,EAAAA,EAAAA,OAAK2K,EAAAA,EAAAA,QAAO,MAAOyhB,GAAnBpsB,CAAgCgsB,GAC7CE,GAASI,EAEf,MAAO,CACHxvB,MAAOsvB,EACPlD,OAAQmD,EACRvyB,MAAOoyB,EAAQE,EAAaE,EAAWxyB,MACvCoyB,MAAAA,QAIPpsB,OAAOsqB,EAAoBpT,IAC3B0T,KAAKV,IAGDD,EAAkB,CAACU,EAAS1nB,KACrC,MAAM,IAACwpB,EAAD,IAAMllB,EAAN,MAAWglB,GAAS5B,EAC1B,MAAO,CACH8B,IAAc,SAATxpB,EAAkB,IAAI6nB,EAAAA,QAAQ2B,IAAQA,EAC3CllB,IAAc,SAATtE,EAAkB,IAAI6nB,EAAAA,QAAQvjB,IAAQA,EAC3CglB,MAAAA,IAIFxC,EAAe,SAACtvB,EAAU+c,EAAWmT,EAASzT,GAAkD,UAAvCwS,EAAuC,uDAAxB,GAAIC,EAAoB,uDAAP,GAC3F,OAAQnS,GACJ,IAAK,OAAQ,CACT,MAAM,mBAAC+T,GAAsB5B,EAC7B,OAAO2B,EAAqB7wB,EAAUkwB,EAASY,GAEnD,IAAK,QACD,OAAOK,EAAenxB,EAAUkwB,EAASzT,GAC7C,IAAK,gBACD,OAAO6U,EAAwBtxB,EAAUkwB,EAASzT,GAE1D,IAAIsQ,EAAAA,EAAAA,IAAiBtQ,GACjB,OAAO+U,EAAqBxxB,EAAUkwB,EAASzT,GAEnD,IAAIkQ,EAAAA,EAAAA,IAAclQ,GACd,OAAO6T,EAAiBJ,EAASjB,GAAagD,EAAAA,EAAAA,KAAsBxV,EAAUxN,YAElF,IAAI+gB,EAAAA,EAAAA,KAAevT,EAAUxN,UACzB,OAAOwhB,EAAeP,GAAS/oB,EAAAA,EAAAA,MAAK,CAAC,WAAY,UAAWsV,IAEhE,IAAIyV,EAAAA,EAAAA,KAAa,UAACzV,EAAUxN,gBAAX,aAAC,EAAoBzG,MAClC,OAAOmoB,EAAkBT,GAAShhB,EAAAA,EAAAA,KAA0BuN,EAAUxN,WAE1E,OAAQwN,EAAUjU,MACd,KAAKkkB,EAAAA,IAAAA,oBACL,KAAKA,EAAAA,IAAAA,iBACD,OAAO0D,EAA2BF,EAASzT,EAAUxN,UAAYwN,EAAUxN,SAASzG,MACxF,QACI,OAAOynB,EAAkBC,KAIxBiC,EAAyBC,IAClC,OAAQA,GACJ,KAAK1F,EAAAA,IAAAA,iBACD,MAAO,CAAC5U,EAAAA,GAAsBO,EAAAA,IAClC,KAAKqU,EAAAA,IAAAA,oBACL,QACI,MAAO,CAAC9U,EAAAA,GAAyBC,EAAAA,MAWhCwa,IAPepV,EAAAA,EAAAA,QAAM,CAACqV,EAAcvH,KAC7CnoB,OAAO2H,OAAOwgB,GAAQ7pB,KAAK+qB,GACvBA,EAAM1mB,QAAQ9H,GAAS80B,MAAM90B,EAAK8E,SAAQiwB,SAAS/0B,GAAUA,EAAK8E,MAAQ+vB,MAEvEvH,KAGgB,CAACuH,EAAcG,IAC/BF,MAAME,GAAcH,EAAeG,GAGjCC,EAAsB,CAAC3V,EAAWgO,IAC3CA,EAAOtlB,MAAMwmB,GAAUA,EAAMlP,YAAcA,GAAakP,EAAM3I,sBAAwBvG,IAE7E4V,EAAyB,CAACC,EAAWC,IAC9CjwB,OAAOusB,KAAKyD,GACPrtB,QAAQhD,GAAUswB,EAAelpB,SAASpH,KAC1CqN,QAAO,CAACC,EAAKtN,KACVsN,EAAItN,GAASqwB,EAAUrwB,GAChBsN,IACR,IAEEijB,EAAe,CAAC/H,EAAQgI,KACjC,MAAMlE,EAAUkE,EAAanjB,QAAO,CAACwf,EAAQ3C,KACzC2C,EAAO3C,EAAO1P,WAAa0P,EACpB2C,IACR,IACH,OAAOxsB,OAAOusB,KAAKpE,GAAQnb,QAAO,CAACwf,EAAQrS,KACvC,MAAM0P,EAASoC,EAAQ9R,GAEvB,OADAqS,EAAOrS,GAAP,KAAwBgO,EAAOhO,GAAe0P,GACvC2C,IACR,KAGM4D,EAAsBjI,GAC/BnoB,OAAOusB,KAAKpE,GAAQnb,QAAO,CAACwf,EAAQrS,KAChCqS,EAAOrS,GAAP,KAAwBgO,EAAOhO,GAA/B,CAA2CxX,OAAQ0tB,EAAkBlI,EAAOhO,GAAWvU,QAChF4mB,IACR,IAEM8D,EAAgClzB,IACzCkB,EAAAA,EAAAA,MACIiyB,EAAAA,EAAAA,QACItF,EAAAA,KACC5B,GAAD,KACOA,EADP,CAEI1hB,QAAQgkB,EAAAA,EAAAA,IAAgCvuB,EAAUisB,EAAM1hB,WAE5Dga,EAAAA,WAIC6O,EAA4BtC,IACrC5vB,EAAAA,EAAAA,MACIorB,EAAAA,EAAAA,MAAKuB,EAAAA,KAAc5B,GAAD,KACXA,EADW,CAEd1hB,OACIumB,GAAsBA,EAAmBhwB,OAAS,EAC5CmrB,EAAM1hB,OACHhF,QAAQhD,GAAUuuB,EAAmBnnB,SAASpH,KAC9C4tB,MAAKY,EAAAA,EAAAA,KAAuBD,IAC/B7E,EAAM1hB,YAIf8oB,GAA8BlsB,EAAAA,EAAAA,MAAK,CAAC,SAAU,aAAc,SAEnE8rB,EAAqBzqB,IACtB,CACG8qB,gBAAiB,SACjBC,4BAA6B,SAC7BC,kBAAmB,QACnBC,eAAgB,SAClBjrB,IAEOkrB,EAAoB,WAAiB,IAAhB3hB,EAAgB,uDAAP,GACvC,MAAM4hB,EAAoE,UAAhDxsB,EAAAA,EAAAA,MAAK,CAAC,UAAW,kBAAmB4K,GAC9D,OACKA,EAAOvJ,OAASorB,EAAAA,EAAAA,eAAwBD,GACzC5hB,EAAOvJ,OAASorB,EAAAA,EAAAA,kBAChB7hB,EAAOvJ,OAASqrB,EAAAA,EAAAA,WAIXC,EAAoB,WAAuC,IAAtChvB,EAAsC,uDAA/B,GAAIyF,EAA2B,uDAAlB,GAAI/B,EAAc,uDAAP,GAC7D,OAAO+B,EAAOrJ,KAAKqB,IACf,IAAIwxB,EACJ,OAAQvrB,GACJ,KAAKkkB,EAAAA,IAAAA,oBACD,MAAQ,IAAEsH,EAAAA,EAAAA,KAAsBzxB,EAAM,GAAI,WAAYyxB,EAAAA,EAAAA,KAAsBzxB,EAAM,GAAI,OAC1F,KAAKmqB,EAAAA,IAAAA,iBAED,OADAqH,GAAQE,EAAAA,EAAAA,KAAwBC,SAAS3pB,EAAQzF,GACzC,IAAEqvB,EAAAA,EAAAA,IAAiBC,GAAAA,CAAOL,EAAM,WAAeI,EAAAA,EAAAA,IAAiBC,GAAAA,CAAOL,EAAM,OACzF,KAAKrH,EAAAA,IAAAA,kBACL,KAAKA,EAAAA,IAAAA,+BACL,QACI,OAAO2H,EAAAA,IAAAA,SAAevvB,EAAKW,MAAMhI,GAASA,EAAK8E,QAAUA,KAAQ+xB,OAAO,CAAC/0B,MAAOgD,GAAS,KAAKhD,WAKjGg1B,GAAkC9oB,EAAAA,EAAAA,OAAK2V,EAAAA,EAAAA,QAAO,GAAI,UAAWtgB,EAAAA,QAAQ0zB,EAAAA,EAAAA,IAAGrT,EAAAA,GAAIhH,EAAAA,KAC5Esa,GAA2BhpB,EAAAA,EAAAA,OACpCA,EAAAA,EAAAA,OACIlG,EAAAA,EAAAA,QAAOonB,EAAAA,KACPzrB,EAAAA,EAAAA,MAAK+qB,IAAD,CACAzjB,MAAMypB,EAAAA,EAAAA,MAAsB9qB,EAAAA,EAAAA,MAAK,CAAC,YAAa8kB,IAC/CyI,YAAY3K,EAAAA,EAAAA,UAAQ3I,EAAAA,EAAAA,QAAO,GAAI,SAAU6K,SAE7C1mB,EAAAA,EAAAA,SAAO,QAAC,WAACmvB,GAAF,SAAkBA,EAAW5zB,OAAS,MAEjD6zB,EAAAA,KAGSC,EAAoC,CAAC7J,EAAQ8J,KACtDppB,EAAAA,EAAAA,MAAKgpB,GAA0BK,EAAAA,EAAAA,KAAyBD,GAAxDppB,CAA0Esf,I,mECzYvE,MAAMgK,EAAqBC,GAAkB/I,IAChD,MAAMvW,EAAauW,EAAMvW,YAAcuW,EAAM9nB,eAAiB,UACxDiZ,EAAQ4X,EAAavvB,MAAK2K,EAAAA,EAAAA,QAAO,KAAMsF,IAE7C,OADe0L,EAAAA,EAAAA,QAAO,GAAI,SAAUhE,GACtB3X,MAAK2K,EAAAA,EAAAA,QAAO,YAAa6b,EAAMlP,a,eCD1C,MA0BDkY,EAAqBpG,GAAa5C,GAAU4C,EAAQppB,MAAMgnB,GAAWA,EAAO1P,YAAckP,EAAMlP,Y,geCD/F,MAAMmY,GAA8BzpB,EAAAA,EAAAA,OACtCsf,GACGA,EAAOnb,QAAO,CAACC,EAAKoc,KAChBpc,EAAIoc,EAAMlP,WAAV,KACOkP,EADP,CAEI1hB,OAAQ,KAAI6W,EAAAA,EAAAA,QAAO,GAAI,SAAU6K,OAAWtP,EAAAA,EAAAA,QAAO,GAAI,CAACsP,EAAMlP,UAAW,UAAWlN,MAEjFA,IACR,KACPtF,EAAAA,QA4CS4qB,EAA2B,CAACn1B,EAAUmjB,EAAaiB,IAAgC,CAACgR,EAAUnJ,KACvG,MAAOvW,WAAYvR,EAAb,UAA4B4Y,EAA5B,OAAuCxX,EAAvC,OAA+CgF,GAAU0hB,EACzDoJ,EAAiB,CAACtY,UAAAA,EAAWxX,OAAQA,GAAU,SAAUgF,OAAQA,GAAU,IACjF,GAAIpG,EAAe,CACf,MAAMmxB,GAAUC,EAAAA,EAAAA,KAAmBxY,EAAW5Y,GACxC8K,GAAWumB,EAAAA,EAAAA,KAAuBx1B,EAAUs1B,GAC5C5f,GAAaC,EAAAA,EAAAA,KAAc3V,EAAUmE,GACrCwiB,GAAsBJ,EAAAA,EAAAA,IAAwBpD,EAAazN,GAAYjQ,MACxEif,GAASA,EAAK3H,YAAcA,IAGG,IAAhCqY,EAAShM,YAAYtoB,QACrBs0B,EAAShM,YAAY9J,KAAKnb,GAE1BixB,EAAShM,YAAYzf,SAASxF,KAC1BwiB,EACAyO,EAASK,aAAanW,KAAK+V,GACpBpmB,GACPmmB,EAASK,aAAanW,KAAtB,KAA+B+V,EAA/B,CAA+C3zB,IAAKuN,EAASvN,aAI5C8iB,EAAAA,EAAAA,IAAoBzH,EAAWoG,EAAaiB,IAEjEgR,EAASK,aAAanW,KAAK+V,GAGnC,OAAOD,GAGEM,EAAuBC,GAAkB,CAAC7wB,EAAMmnB,KACzD,MAAMQ,EAASkJ,EAAclwB,MAAMgnB,GAAWA,EAAO1P,YAAckP,EAAMlP,YACzE,GAAI0P,EAAQ,CACR,MAAMliB,GAASqrB,EAAAA,EAAAA,KAAanJ,IAAUoJ,EAAAA,EAAAA,KAAuB5J,EAAM1hB,QAAU0hB,EAAM1hB,OAC7E8hB,GAAewB,EAAAA,EAAAA,KAAYpB,IAAWR,EAAM6J,mBAAqB7J,EAAM6J,mBAAqB,KAClG,YACOhxB,EADP,CAEI,CAACmnB,EAAMlP,YAAY0O,EAAAA,EAAAA,QAAOC,EAAAA,MAAO,CAC7B3O,UAAWkP,EAAMlP,UACjBxS,OAAAA,EACA8hB,aAAAA,MAIR,OAAOvnB,G,geCnHf,MAiEMixB,GAAqB9Y,EAAAA,EAAAA,QAAM,CAACjd,EAAUmjB,EAAaiB,EAA6B4R,KAClF,MAAM,IAACt0B,GAAOs0B,EACd,OAAIt0B,IAAQA,EAAIorB,WAAW,YAtCG,EAAC9sB,EAAD,KAA+C,IAApC,IAAC0B,EAAD,cAAMyC,EAAN,UAAqB4Y,GAAe,EAC7E,MAAM9N,GAAWumB,EAAAA,EAAAA,KAAuBx1B,EAAU0B,GAClD,GAAIuN,EAAU,CACV,MAAMwY,IACFwO,EAAAA,EAAAA,KAAgCj2B,GAAUu1B,EAAAA,EAAAA,KAAmBxY,EAAW5Y,GAAgBA,IAAkB,IAEzGjD,KAAI6G,EAAAA,EAAAA,MAAK,CAAC,QAAS,UACnBiC,MAAM,GAAI,GAEf,UACItI,IAAAA,EACAusB,WAAWnG,EAAAA,EAAAA,KAAmB9nB,EAAU,CAACwI,KAAMrE,IAC/CyY,eAAeE,EAAAA,EAAAA,KAAgC7N,EAAU8N,KACtD6K,EAAAA,EAAAA,IAAoB5nB,EAAUiP,EAAU9K,EAAe4Y,EAAW0K,IAGzE,OAAO,MAuBAyO,CAA0Bl2B,EAAUg2B,GApEjB,EAACh2B,EAAUmjB,EAAaiB,EAAxB,KAAqE,IAAhB,UAACrH,GAAe,EACnG,MAAM0H,GAAwBR,EAAAA,EAAAA,IAA+B,CACzDd,YAAAA,EACAiB,4BAAAA,IACD3e,MAAM2X,GAAUA,EAAM4C,WAAWva,MAAMif,GAASA,EAAK3H,YAAcA,MAChEoZ,EACF1R,GAAyBA,EAAsBzE,WAAWva,MAAMif,GAASA,EAAK3H,YAAcA,IAEhG,OAAOoZ,EAAW,GAEVlI,UAAWxJ,EAAsB9C,MACjC/E,eAAeE,EAAAA,EAAAA,KAAgCqZ,EAAYlnB,SAAU8N,KAClEhV,EAAAA,EAAAA,MACC,CACI,QACA,YACA,WACA,WACA,YACA,aACA,sBACA,uBAEJouB,IAGN,MA6CEC,CAA0Bp2B,EAAUmjB,EAAaiB,EAA6B4R,IAtBrD,EAACh2B,EAAUmjB,EAAX,KAAuD,IAA/B,UAACpG,EAAD,cAAY5Y,GAAmB,EACxF,MAAMwiB,GAAsBlb,EAAAA,EAAAA,OACxBkK,EAAAA,EAAAA,KAAc3V,IACdumB,EAAAA,EAAAA,IAAwBpD,IACxB1d,EAAAA,EAAAA,OAAK2K,EAAAA,EAAAA,QAAO,YAAa2M,IAHDtR,CAI1BtH,GAEF,OAAOwiB,EAAmB,GAElBsH,WAAWnG,EAAAA,EAAAA,KAAmB9nB,EAAU,CAACwI,KAAMrE,IAC/CyY,eAAeE,EAAAA,EAAAA,KAAgC6J,EAAoB1X,SAAU8N,IAC1E4J,GAEL,MAUE0P,CAA6Br2B,EAAUmjB,EAAa6S,M,eCvEzD,MAAMM,GAAiBrZ,EAAAA,EAAAA,QAAM,CAACjd,EAAUmjB,EAAaiB,EAA6BjgB,EAAesY,KAC7FhR,EAAAA,EAAAA,OACH8qB,EAAAA,EAAAA,KAA4Bv2B,EAAUmE,IACtCif,EAAAA,EAAAA,QAAO,CACHte,KAAMixB,EAAmB/1B,EAAUmjB,EAAaiB,KAHjD3Y,CAKLgR,K,eCdC,MAAM+Z,EAEA,UAKAC,EAA2B,CACpC,UAAuCne,EAAAA,GAAAA,KACvC,CAACke,GAAmC9d,EAAAA,GACpC,WAAwCA,EAAAA,GACxC,UAAuCJ,EAAAA,GAAAA,OAG9Boe,EAA8B,CACvC,CAACF,GAAmC7d,EAAAA,GAAAA,SAgBlCge,EAAiBC,GAASA,EAAKnxB,MAAMoxB,GAAQA,EAAI34B,YAAa,GAE9D44B,EAAiB,CAAC92B,EAAU8wB,EAAoB8F,KAClD,MAAMG,GAAuBC,EAAAA,EAAAA,IAA+Bh3B,EAAU8wB,GAChEmG,EAAkBL,EAAKhnB,QAAO,CAACwf,EAAQyH,KACzCzH,EAAOyH,EAAI1yB,eAAiB0yB,EAAI9V,mBAC3B7f,KAAKub,IACF,MAAMxN,GAAWumB,EAAAA,EAAAA,KAAuBx1B,EAAUyc,GAClD,MAAO,CACHrX,IAAI8xB,EAAAA,EAAAA,KAAwBjoB,EAASvN,KACrCnC,MAAO0P,EAAS1P,MAChB0P,SAAUA,MAGjB1J,QAAQkX,KAAeqK,EAAAA,EAAAA,KAAmBrK,EAAUxN,YAClDmgB,IACR,IACH,OAAO+H,EAAAA,EAAAA,eAAc7xB,EAAAA,OAAQyxB,EAAsBE,I,yBCnDhD,MAAMG,EAAwB,WAAmB,IAAlBhC,EAAkB,uDAAP,GAC7C,MAAMiC,EAAkBjC,EAASkC,SAAW,GACtCC,EAAmBF,EAAgB5xB,MAAK2K,EAAAA,EAAAA,QAAO,YAAa,eAClE,GAAImnB,EAAkB,CAClB,MAAMC,GAAarwB,EAAAA,EAAAA,MAAK,CAAC,SAAU,GAAIowB,GACvC,GAA0B,kBAAfC,EACP,MAAO,CACHA,WAAYA,EACZC,OAAQD,GAIpB,OAAO,M,wHCDX,MAcME,GAA8Bza,EAAAA,EAAAA,QAAM,CAAC0a,EAAsBC,KACtDC,EAAAA,EAAAA,WAAU,CAAC,OAAQ,wBAAyBF,EAAsBC,KAGvEE,EAAsB,CACxB93B,EADwB,EAGxBmjB,EACAiB,KACC,IAHD,QAAC2T,EAAU,KAAX,OAAiBhN,EAAS,GAA1B,SAA8BqK,EAAW,GAAzC,IAA6Cl0B,EAA7C,KAAkD82B,EAAlD,cAAwDC,EAAxD,sBAAuEC,EAAvE,cAA8FC,GAG7F,EACD,MAAMzY,EAAW,CAACxe,IAAAA,EAAK62B,QAAAA,EAASE,cAAAA,GAiChC,OAhCgC7C,EAASpO,MACrC,QAAC,WAAChH,EAAD,YAAaoJ,EAAc,IAA5B,SAAoCpJ,EAAWlf,QAAUsoB,EAAYtoB,UAGrE4e,EAAS0V,UAAWgD,EAAAA,EAAAA,KAChBrC,EACA/1B,EACAo1B,EACAjS,EACAiB,GAGJ1E,EAASqL,ON7CU,EAAC/qB,EAAU+qB,EAAQ5H,KAC1C,MAAMmQ,GAAkBrJ,EAAAA,EAAAA,IAAyBjqB,GACjD,IAAK+qB,GAA4B,IAAlBA,EAAOjqB,OAClB,MAAO,CAACu3B,WAAY,GAAI1C,cAAe,CAACrC,IAG5C,MAAMxK,EAAsBiC,EAAOviB,KAAOuiB,EAAOviB,KAAK+B,OAAOhF,QAAO+yB,EAAAA,EAAAA,KAAyBt4B,IAAa,GACpGu4B,GAA4BxM,EAAAA,EAAAA,IAA6B/rB,EAAU8oB,EAAqB3F,GAExFwS,GAAgBlqB,EAAAA,EAAAA,OAClB+sB,EAAAA,EAAAA,QAAO,QACPjuB,EAAAA,QACAqF,EAAAA,EAAAA,QDR2BolB,CAAAA,IAC/B,MAAMyD,EAAiB1D,EAAkBC,GACzC,MAAO,CAACnlB,EAAKoc,KACT,MAAMQ,EAASgM,EAAexM,GAC9B,OAAOQ,IAAW5c,EAAIpK,MAAK2K,EAAAA,EAAAA,QAAO,YAAa6b,EAAMlP,YAAc,IAAIlN,EAAK4c,GAAU5c,ICI/E6oB,CAAmBH,GAA4B,CAACjF,IAHrC7nB,CAIpBsf,GAUF,MAAO,CAAC4K,cAAAA,EAAe0C,YARJ5sB,EAAAA,EAAAA,OACf2X,EAAAA,EAAAA,QAAO,CACH5a,MAAMsH,EAAAA,EAAAA,OAAM,SAAUgZ,MAE1BvjB,EAAAA,EAAAA,QAAO0vB,EAAkBU,KACzBz0B,EAAAA,EAAAA,MAAIyhB,EAAAA,EAAAA,MAAK,CAAC,mBALKlX,CAMjBsf,KMwBoB4N,CAAY34B,EAAU+qB,EAAQ5H,GAGhD6U,IACAtY,EAASsY,KAAO,CACZY,kBAAmBZ,EAAKY,mBAAqBlgB,EAAAA,GAC7CmgB,cAAeb,EAAKa,cACpBjyB,UAAWoxB,EAAKpxB,UAChBD,UAAWqxB,EAAKrxB,UAChBgxB,qBAAsBK,EAAKpB,KAC3BkC,iBAAkBd,EAAKc,kBAAoB,OAI/CZ,IACAxY,EAASwY,sBAAwBA,GAEjCC,IACAzY,EAASyY,cAAgBA,GAEtBzY,GAGLqZ,EAAsB,CAAC/4B,EAAUg5B,EAAU9J,EAAY/L,EAAaiB,KACtE,MAAM,OAAC2G,EAAS,GAAV,SAAcqK,EAAd,KAAwB4C,EAAxB,kBAA8BiB,EAA9B,kBAAiDC,GAAqBF,EACtEtZ,EAAW,CACbqY,SAASoB,EAAAA,EAAAA,KAA6BH,GACtCf,cAAeb,EAAsBhC,IAEzC,ELrC0B,EAACp1B,EAAUmjB,EAAa4H,EAAQ3G,KAC1D,MAAMkP,GAAkBrJ,EAAAA,EAAAA,IAAyBjqB,GACjD,IAAK+qB,IAAU1D,EAAAA,EAAAA,SAAQ0D,GACnB,MAAO,CAACsN,WAAY,GAAI1C,cAAe,CAACrC,IAG5C,MAAO8F,EAAcC,IAAmBzL,EAAAA,EAAAA,YAAW3B,GAA8B,YAApBA,EAAMlP,WAAyBgO,GACtFoN,GAAgBhxB,EAAAA,EAAAA,MAAK,CAAC,EAAG,iBAAkBiyB,IAE1CE,EAAYC,IAAiB3L,EAAAA,EAAAA,YAAW3B,GAA8B,SAApBA,EAAMlP,WAAsBsc,GAE/EvQ,GAAsBZ,EAAAA,EAAAA,QAAM9G,EAAAA,EAAAA,QAAO,GAAI,UAAWkY,GAClDb,GAAiBza,EAAAA,EAAAA,SAAQ+W,EAAmBhJ,EAAAA,GAA3B/N,CACnBhe,EACA8oB,EACA3F,GAGEqW,GAAkBC,EAAAA,EAAAA,KAAiBF,GAEnCG,GAAqBhR,EAAAA,EAAAA,SAAOjd,EAAAA,EAAAA,OAAK3J,EAAAA,EAAAA,MAAK,UAAW4pB,EAAAA,QAAQtb,EAAAA,EAAAA,QAAO,SAAU,WAE1EupB,EAAoBH,EAAgBxS,MADjBiF,IAAWwM,EAAexM,KAAWyN,EAAmBzN,KAGjF,GAAI0N,EAQA,MAAO,CAACxB,cAAAA,EAAe/C,SAPNoE,EAAgB5pB,OAC7BulB,EAAyBn1B,EAAUmjB,EAAaiB,GAChD,CACIgF,YAAaN,EACb2M,aAAc,KAGWE,cAAe,GAAI0C,WAAY,IAC7D,CACH,MAAMuB,EAAc1E,EAA4BsE,GAC1C7D,EAAgB,CAACrC,KAAoBsG,EAAY14B,IAAIu3B,IAE3D,MAAO,CAACN,cAAAA,EAAexC,cAAAA,EAAe0C,WADnB,IAAIiB,KAAeM,GAAahqB,OAAO8lB,EAAoBC,GAAgB,OKK9FkE,CAAe75B,EAAUmjB,EAAa4H,EAAQ3G,IAJ5C,cACF+T,EACA/C,SAAU0E,GAFd,EAGOC,E,kXAHP,iCAKMC,EH9DqB,SAC3Bh6B,EACAmjB,EACAiB,GAGC,IAFD6V,EAEC,uDAFmB,GACpBf,EACC,wDACD,MAAM,aAACzD,EAAe,GAAhB,iBAAoByE,EAAmB,GAAvC,YAA2C9Q,EAAc,IAAM6Q,EAC/Dja,EAAa,IAAIyV,KAAiByE,GACnCh5B,IACGo1B,EACIt2B,EACAmjB,EACAiB,GACAsF,EAAAA,EAAAA,KAA0B1pB,EAAUopB,KAG3C7jB,QAAQkX,GAAcA,GAAaA,EAAU3X,OAE5Cq1B,GAAYld,EAAAA,EAAAA,QAAM,CAACoC,EAAUW,KAAX,CACpB5a,GAAImX,GAAAA,GACJ8C,SAAAA,EACAW,WAAAA,EACAoJ,YAAAA,MAEElM,EAASgc,EACTlZ,EAAW9e,KAAIuK,EAAAA,EAAAA,MAAK2uB,EAAAA,IAAaD,EAAUphB,EAAAA,GAAAA,UAC3CqhB,EAAAA,EAAAA,KAAYD,EAAUnhB,EAAAA,GAAAA,MAA4BgH,IAExD,OAAOvU,EAAAA,EAAAA,OAAK4uB,EAAAA,EAAAA,KAA4Br6B,GAAWs6B,EAAAA,KAA6B7O,EAAAA,EAAAA,QAAO8O,EAAAA,KAAhF9uB,CAAqGyR,GGiCrFsd,CACnBx6B,EACAmjB,EACAiB,EACAgR,GAAY0E,EACZZ,GAGJ,GADgCc,EAAehT,MAAK,QAAC,WAAChH,GAAF,SAAkBA,EAAWlf,UACpD,CACzB,MAAM,WAACu3B,EAAD,cAAa1C,GAAiBoE,EAC9BU,EAAU9E,EAAc/lB,QAAO,CAAC9K,EAAM2nB,I,8UACxC,IACO3nB,EADP,CAEI,CAAC2nB,EAAO1P,YAAYqP,EAAAA,EAAAA,IAAyBK,EAAO1P,UAAWsb,EAAW5L,EAAO1P,eAEtF,IACG2d,GAAkBnN,EAAAA,EAAAA,GACpBvtB,EACAmjB,EACAvgB,OAAO2H,QAAOuoB,EAAAA,EAAAA,IAAa2H,EAAS9E,KAExCjW,EAAS0V,SACLsF,EAAgB55B,OAAS,GHpDE65B,EGoDyBX,EHpDThF,EGoDyB0F,GHnD/C54B,EAAAA,EAAAA,MACzB,aACAkzB,EAAavvB,MAAM2X,GAAUA,EAAM4C,cAElB9e,KAAK05B,GAAmBD,EAAe,GAAG3a,WAAWV,KAAKsb,KACxED,GG8CwFX,OAE3Fta,EAASqL,OAASgP,EHtDY,IAACY,EAAgB3F,EGqEnD,OAZIgD,IACAtY,EAASsY,KFzFW,SAACh4B,GAAyC,IAA/Bg4B,EAA+B,uDAAxB,GAAI9I,EAAoB,uDAAP,GAC3D,MAAM,KAAC7zB,EAAD,KAAOu7B,EAAO,IAAMoB,GACpB,mBAAClH,GAAsB5B,EAC7B,MAAO,CACH0J,kBAAmBnC,EAAyBp7B,IAASqd,EAAAA,GACrDogB,iBAAkBpC,EAA4Br7B,IAAS,KACvDw9B,eAAezX,EAAAA,EAAAA,QAAO,KAAM,gBAAiBuV,EAAcC,IAC3DhwB,UAAW,QACXD,UAAW,MACXgxB,qBAAsBb,EAAe92B,EAAU8wB,EAAoB8F,IEgFnDiE,CAAa76B,EAAUg4B,EAAM9I,IAG7C+J,IACAvZ,EAASwY,sBAAwBe,GAGjCd,IACAzY,EAASyY,cAAgBA,GAGtBzY,GAGX,EAjHyB,CAAC1f,EAAUxG,EAAOizB,EAAQtJ,EAAaiB,KAC5D,IACI,MAAM,QAAC1gB,GAAWlK,EAClB,MAAmB,QAAZkK,EACDo0B,EAAoB93B,EAAUxG,EAAO2pB,EAAaiB,GAClD2U,EAAoB/4B,EAAUxG,EAAOizB,EAAQtJ,EAAaiB,GAClE,MAAOve,GAEL,OADAipB,QAAQC,KAAK,2BAA4BlpB,GAClC,CACHi1B,OAAQ9S,MAAMC,QAAQpiB,GAAKA,EAAI,CAACA,O,iFCjBrC,MAAMouB,EAAyBhlB,IAClC,MAAM8rB,GAAUC,EAAAA,EAAAA,IAAe/rB,GAoDzBgsB,EAAc,CAAC14B,EAAO24B,IACxBH,EAAQI,QAAQJ,EAAQK,IAAIL,EAAQM,MAAM94B,EAAO24B,EAAMxV,QAASwV,EAAMI,OAAQ,GAuClF,MAAO,CACHP,QAAAA,EACA7G,SA7Fa,CAAC3pB,EAAQzF,KACtB,MAAMy2B,GAAQ5e,EAAAA,EAAAA,SAAOA,EAAAA,EAAAA,QAAO,KAAM,CAAC,QAAS,IAAI6e,EAAAA,EAAAA,MAAK12B,IAAQ,CAAC,EAAG,GAAIyF,GAC/DkxB,GAAM9e,EAAAA,EAAAA,SAAOA,EAAAA,EAAAA,QAAO,KAAM,CAAC,QAAS,IAAI+e,EAAAA,EAAAA,MAAK52B,IAAQ,CAAC,EAAG,GAAIyF,GACnE,OAAc,OAAVgxB,GAA0B,OAARE,EACX,GAGPV,EAAQY,kBAAkBJ,EAAOE,GAC1B,CAACF,EAAOE,GAER,CAACA,EAAKF,IAoFjBK,0BAxE+Br5B,GAC/Bw4B,EAAQc,YAAYt5B,EAAO,MAASyxB,EAAAA,EAAAA,IAAqBzxB,EAAO,KAASA,EAAMsR,WAwE/EioB,aAtEkBh3B,GAAUA,EAAKhE,OAAS,EAAI,EAAC06B,EAAAA,EAAAA,MAAK12B,GAAMvC,MAAM,IAAIm5B,EAAAA,EAAAA,MAAK52B,GAAMvC,MAAM,IAAM,GAuE3Fw5B,UArEc,CAAC/J,EAAKllB,KACpB,GAAiB,SAAbmC,EAAqB,CACrB,MAAM+sB,EAAQlvB,EAAIuuB,MAAMrJ,GAGlBsJ,EAAQU,EAAMZ,IAAI,GAAG5G,GAAGyH,OAAOC,kBAC/B,IAAI7L,EAAAA,QAAQ4L,OAAOC,kBAAkBC,IAAI,GAAGf,IAAIY,GAChD,EAEAI,EAAkBpK,EAAImK,IAAIb,GAC1Be,EAAiBvvB,EAAIqvB,IAAIb,GAS/B,MAAO,CAACA,MAAOA,EAAO5V,OANP0W,EAAgBE,GAAGL,OAAOM,kBACnC,IAAIlM,EAAAA,QAAQ4L,OAAOM,kBAAkBlB,MAAMe,GAC3CC,EAAe7H,GAAGyH,OAAOC,kBACrB,IAAI7L,EAAAA,QAAQ4L,OAAOC,kBAAkBb,MAAMgB,GAC3C,GAKd,MAAO,CAACf,MAAO,EAAG5V,OAAQ,IAgD1BuV,YAAAA,EACAuB,WA5Ce,CAACj6B,EAAO24B,IAAUe,OAAOlB,EAAQ0B,KAAK1B,EAAQoB,IAAI55B,EAAO24B,EAAMI,OAAQJ,EAAMxV,SA6C5FgX,yBA3C6B,CAACC,EAAWzB,IAAW34B,GAAUo6B,EAAU1B,EAAY14B,EAAO24B,IA4C3F0B,YAtFgB,CAAC7I,EAAO/B,EAAKllB,KAC7B,MAAM+vB,EAAQ9I,EAAM,GACd0H,EAAM1H,EAAM,GAClB,MAAO,EAACrI,EAAAA,EAAAA,OAAMsG,GAAO6K,EAAQ9B,EAAQjuB,IAAI+vB,EAAO7K,IAAMtG,EAAAA,EAAAA,OAAM5e,GAAO2uB,EAAMV,EAAQ/I,IAAIyJ,EAAK3uB,KAoF1FgwB,OAjFW,kBAAa/B,EAAQ+B,UAAU,YAkF1CC,UA5Cc,WAAuC,IAAtCxyB,EAAsC,uDAA7B,GAAIsyB,EAAyB,uCAAlBpB,EAAkB,uCAAbuB,EAAa,uCACrD,GAAsB,IAAlBzyB,EAAOzJ,OACP,MAAO,GAGX,MAAMm8B,EAAa1yB,EAAO,GAAGhI,MACvB26B,EAAY3yB,EAAOA,EAAOzJ,OAAS,GAAGyB,MACtC46B,EAAapC,EAAQc,YAAYoB,EAAYJ,IAC7CO,EAAAA,EAAAA,SACGC,KAAOtC,EAAQuC,SAASD,EAAGJ,IAAc,CAAC,CAAC16B,MAAO86B,EAAG1O,OAAQ,GAAIoM,EAAQ0B,KAAKY,EAAGL,KAClFH,GAEF,GACAU,EAAaxC,EAAQuC,SAASJ,EAAWnC,EAAQM,MAAMI,EAAKuB,KAC5DI,EAAAA,EAAAA,SACGC,KACGtC,EAAQY,kBAAkB0B,EAAG5B,IAAO,CAAC,CAACl5B,MAAO86B,EAAG1O,OAAQ,GAAIoM,EAAQ0B,KAAKY,EAAGL,KAChFjC,EAAQ0B,KAAKS,EAAWF,IAE1B,GACN,MAAO,IAAIG,KAAe5yB,KAAWgzB,IAyBrCC,YAtBgB,SAACrgC,EAAMsgC,GAAkB,IAAdC,EAAc,uDAAP,GAClC,OAAIvgC,IAASsgC,EACF,GAEAE,EAAAA,EAAAA,KAAe1uB,IACfwuB,EAAKtgC,GAAQugC,EACd3C,EAAQ6C,KAAK7C,EAAQK,IAAIL,EAAQM,MAAMoC,EAAItgC,GAAOugC,Q,sQC3FpE,MAEaG,GAAkBpyB,EAAAA,EAAAA,OADNqyB,GAAiBC,EAAAA,UAAsBD,EAAc,CAACE,QAAQ,MADzD/nB,GAAWA,EAAS,IAAGA,IAAU,K,20BCoExD,MAAMgoB,EAAmBC,GAAWA,EAAM3zB,QAAU2zB,EAAM3zB,OAAOzJ,QAAWo9B,EAAMC,UAEnFC,EAA4BnS,GAC9BA,EAAM5I,WACA,CACE,CACI9d,OAAQ,SACRwX,UAAWkP,EAAM1I,oBACjBhZ,OAAQ,CAAC0hB,EAAM5I,cAGrB,GAEJgb,EAA6B,eAACC,EAAD,uDAAmB,GAAnB,MAA0B,EACzDx8B,EAAAA,EAAAA,MAAK,uBACL,IAAyC,IAAxC,oBAACwhB,GAAuC,EAAfib,EAAe,6BACrC,MAAMtoB,GAAQuoB,EAAAA,EAAAA,MAAK,IAAIF,KAAoBG,EAAAA,KAA7BD,CAAA,KACPD,EADO,CAEVxhB,UAAWuG,KAEf,OAAO7X,EAAAA,EAAAA,OACHizB,EAAAA,EAAAA,OACAC,EAAAA,IAFGlzB,CAGL,CACE,CACI0yB,UAAWloB,MAEZmoB,EAAyBG,QAK3BK,GAAaF,EAAAA,EAAAA,KAAuB,CAACL,MAErCQ,GAAiBpzB,EAAAA,EAAAA,OAAKlG,EAAAA,EAAAA,QAAO04B,GAAkBa,EAAAA,KAE/CC,EAAmB,SAACtJ,GAA+B,IAAjB6B,EAAiB,uDAAP,GACrD,MAAM,UAAC3wB,EAAD,UAAYC,EAAZ,OAAuBo4B,EAAvB,YAA+BC,EAA/B,cAA4ChH,EAA5C,eAA2DiH,EAA3D,aAA2EC,GAAgB7H,EAC3F8H,GAAc3zB,EAAAA,EAAAA,MAAKmzB,GAAYS,EAAAA,EAAAA,KAAuBF,GAAxC1zB,CAAuDgqB,GACrE6J,EAAOhI,EAAQgI,MAAQ,EACvBC,EAAcjI,EAAQiI,aAAe5nB,EAAAA,GAAAA,GAErC6nB,EAAY,CACdj6B,OAAQ65B,QAAep9B,EACvBg9B,OAAQS,EAAiBhK,EAAcyJ,EAAgBF,GACvDlyB,IAAKyyB,EACL7Z,OAAQ4Z,EAAOC,EACfpP,KAAMvpB,QAAa5E,EACnByM,MAAO9H,QAAa3E,EACpB09B,cAAc,EACdpI,SAAU2H,EAAcU,EAAmB1H,EAAe,UAAYA,SAAkBj2B,EACxF49B,WAAYV,QAAkBl9B,GAGlC,MAAQ,WAAU67B,EAAgB2B,MAGhCG,EAAqB,CAACrI,EAAS/0B,KAEjC,MAAMs9B,GADNvI,EAAUA,GAAW,IACI9tB,MAAM,KAAKjE,OAAOgf,EAAAA,UAC3C,OAAOsb,EAASl2B,SAASpH,GAAS+0B,EAAUuI,EAASv6B,OAAO/C,GAAOu9B,KAAK,MAG/DC,EAA6B,SAACC,EAAcvK,GAA+B,IAAjB6B,EAAiB,uDAAP,GAC7E,MAAM,OAAC0H,EAAD,cAAS/G,EAAT,eAAwBiH,GAAkB5H,EAE1C2I,EAAO,CACTjB,OAAQS,EAAiBhK,EAAcyJ,EAAgBF,GACvDnqB,KAAMmrB,EACN1I,QAASqI,EAAmB1H,EAAe,WAG/C,MAAO,CACHiI,IAAK,mBACL5I,QAAS,CACL6I,OAAQ,OACRF,KAAMG,KAAKC,UAAUJ,GACrBK,QAAS,CACL,eAAgB,uBAM1Bb,EAAmB,SAAChK,EAAcyJ,GAAgC,IAAhBF,EAAgB,uDAAP,GAC7D,MAAMuB,EAAerkB,EAAAA,GAAAA,OAA6B8iB,GAIlD,OAHIE,GAAkBA,IAAmBsB,EAAAA,IAAAA,aACrCD,EAAajhB,KAAK,YAAa,YAE5BmhB,EAAAA,EAAAA,MAAKF,GAAcT,KAAK,MAGtBY,GAAsCtf,EAAAA,EAAAA,QAAO,GAAI,6BAEjDuf,GAAkC3iB,EAAAA,EAAAA,SAC3C+L,EAAAA,SACA7oB,EAAAA,EAAAA,MAAKzD,GAAS,CAACA,EAAKmjC,SAAUnjC,EAAKojC,cACnCzf,EAAAA,EAAAA,QAAO,GAAI,0BAGF0f,EAA0B,SAAC9gC,EAAUy1B,GAAmC,IAArBsL,EAAqB,uDAAP,GAC1E,MAAMC,EAAuB3M,EAAAA,IAAAA,SACzBoB,EAAahwB,MAAMy4B,GAA8B,SAApBA,EAAMnhB,WAAwBmhB,EAAM3zB,OAAOzJ,UAEvEI,KAAIY,EAAAA,EAAAA,MAAK,WACTwyB,QAAO2M,EAAAA,EAAAA,OAAM,MAAOjhC,EAASopB,cAC5B8X,EAAkBF,EAAqB9/B,KAAKiD,IAC9C,MAAMuR,GAAaC,EAAAA,EAAAA,KAAc3V,EAAUmE,GAE3C,OAAO48B,EACFnxB,QAAO,CAACuxB,EAAUC,IAASD,EAAS77B,OAAO87B,EAAK1rB,KAAc,IAC9DxU,IAAIinB,MAEb,OAAOsY,EAAAA,EAAAA,OAAK1W,EAAAA,EAAAA,SAAQmX,GAAiBhgC,IAAImgC,KAGhClZ,EAA0B+O,EAAAA,IAE1BmK,GAAyB51B,EAAAA,EAAAA,OAAKjC,EAAAA,EAAAA,OAAM,MAAMQ,EAAAA,EAAAA,OAAM,EAAG,IAAI81B,EAAAA,EAAAA,MAAK,MAE5DwB,EAAqB,SAACvW,EAAQ0K,GAAwE,IAA1D8L,EAA0D,uDAA1C,GAAIjK,EAAsC,uDAA5B,GAAIkK,EAAwB,uDAAP,GACxG,MAAM,cAACvJ,EAAD,eAAgBiH,EAAhB,aAAgCC,GAAgB7H,EAChDmK,EAA2C,IAAlB1W,EAAOjqB,OAAes9B,EAAyBrT,EAAO,IAAM,GACrFqU,GAAc3zB,EAAAA,EAAAA,OAChBlG,EAAAA,EAAAA,SAAQ24B,GAAUA,EAAMwD,eAAiBH,EAAc53B,SAASu0B,EAAMnhB,cACtEzX,EAAAA,EAAAA,QAAO6b,EAAAA,GAAIsgB,GACX7C,GACAS,EAAAA,EAAAA,KAAuBF,GAJP1zB,CAKlBgqB,GACIwK,EAAOlV,EAAO7pB,KAAK+qB,IACrB,MAAM0V,EAAY,CACd5kB,UAAWkP,EAAM3I,qBAAuB2I,EAAMlP,UAC9C2G,SAAUuI,EAAMvI,SAChBke,OAAQ3V,EAAM4V,YAAc,EAC5Bje,UAAWqI,EAAMrI,WAKrB,OAHKqI,EAAM5D,uBACPsZ,EAAUG,cAAgB7V,EAAM6V,eAAiB7V,EAAM1hB,QAEpDo3B,KAGLnC,EAAY,EAAH,CACXj6B,OAAQ65B,QAAep9B,EACvBs1B,QAASW,QAAiBj2B,EAC1B49B,WAAYV,QAAkBl9B,GAC3Bw/B,GAGP,MAAO,CACHtB,IAAM,mBAAkBrC,EAAgB2B,KACxClI,QAAS,CACL6I,OAAQ,OACRF,KAAMG,KAAKC,UAAUJ,GACrBK,QAAS,CACL,eAAgB,uBAMnByB,EAAgC,SAAC5kC,EAAMsgC,EAAIC,EAAMjI,GAAmD,IAArC8L,EAAqC,uDAArB,GAAIjK,EAAiB,uDAAP,GACtG,MAAM0K,GAAMC,EAAAA,EAAAA,MACR1tB,GAAS2tB,EAAAA,EAAAA,MACP1C,EAAY2C,EAAiChlC,EAAMsgC,EAAIC,EAAMjI,EAAc8L,EAAejK,GAChG,MAAQ,OAAM0K,KAAOztB,8BAAmCspB,EAAgB2B,MAG/D4C,EAA2B,SAACjlC,EAAMsgC,EAAIC,EAAMjI,GAAmD,IAArC8L,EAAqC,uDAArB,GAAIjK,EAAiB,uDAAP,GACjG,MAAM0K,GAAMC,EAAAA,EAAAA,MACR1tB,GAAS2tB,EAAAA,EAAAA,MACP1C,EAAY2C,EAAiChlC,EAAMsgC,EAAIC,EAAMjI,EAAc8L,EAAejK,GAChG,MAAQ,OAAM0K,KAAOztB,yBAA8BspB,EAAgB2B,MAGjE2C,EAAmC,CAAChlC,EAAMsgC,EAAIC,EAAMjI,EAAc8L,EAAejK,KACnF,MAAM,cAACW,EAAD,eAAgBiH,EAAhB,aAAgCC,EAAhC,WAA8C9b,GAAciU,EAElE,MAAO,CACH/xB,OAFgB88B,EAAqB5M,EAAc8L,EAAepC,SAE3Cn9B,EACvBs1B,QAASW,QAAiBj2B,EAC1B7E,KAAAA,EACAsgC,GAAAA,EACAC,KAAAA,EACAkC,WAAYV,QAAkBl9B,EAC9BqhB,WAAAA,IA6BKif,EAAoB,SAACrW,EAAOwJ,GAAmD,IAArC8L,EAAqC,uDAArB,GAAIjK,EAAiB,uDAAP,GACjF,MAAM,cAACW,EAAD,eAAgBiH,EAAhB,aAAgCC,GAAgC7H,EAAfiL,EAAvD,EAAsEjL,EAAtE,mDACM8H,EAAciD,EAChB5M,EAAanwB,OAAO84B,EAAyBnS,IAC7CsV,EACApC,GAEEK,EAAY,CACdj6B,OAAQ65B,QAAep9B,EACvBs1B,QAASW,QAAiBj2B,EAC1B49B,WAAYV,QAAkBl9B,GAE5Bi+B,EAAO,CAAC,EAAD,CAELljB,UAAWkP,EAAM3I,qBAAuB2I,EAAMlP,UAC9CqV,UAAW,aACRmQ,IAIX,MAAO,CACHrC,IAAM,mBAAkBrC,EAAgB2B,KACxClI,QAAS,CACL6I,OAAQ,OACRF,KAAMG,KAAKC,UAAUJ,GACrBK,QAAS,CACL,eAAgB,uBAMnBkC,EAAgB,SAACvW,EAAOwJ,GAAmD,IAArC8L,EAAqC,uDAArB,GAAIjK,EAAiB,uDAAP,GAC7E,MAAM,cAACW,EAAD,eAAgBiH,EAAhB,aAAgCC,GAAgB7H,EAChD8H,EAAciD,EAChB5M,EAAanwB,OAAO84B,EAAyBnS,IAC7CsV,EACApC,GAEEK,EAAY,CACdj6B,OAAQ65B,QAAep9B,EACvBs1B,QAASW,QAAiBj2B,EAC1B49B,WAAYV,QAAkBl9B,GAE5Bi+B,EAAO,CACT,CACIljB,UAAWkP,EAAM3I,qBAAuB2I,EAAMlP,UAC9CqV,UAAW,UAInB,MAAO,CACH8N,IAAM,mBAAkBrC,EAAgB2B,KACxClI,QAAS,CACL6I,OAAQ,OACRF,KAAMG,KAAKC,UAAUJ,GACrBK,QAAS,CACL,eAAgB,uBAMnB+B,EAAuB,SAAC5M,GAAmD,IAArC8L,EAAqC,uDAArB,GAAIpC,EAAiB,uCACpF,OAAO1zB,EAAAA,EAAAA,OACHlG,EAAAA,EAAAA,SAAQ24B,GAAUA,EAAMwD,eAAiBH,EAAc53B,SAASu0B,EAAMnhB,aACtE6hB,GACAS,EAAAA,EAAAA,KAAuBF,GAHpB1zB,CAILgqB,IAGOgN,EAAqB,SAAChN,GAAmD,IAArC8L,EAAqC,uDAArB,GAAIjK,EAAiB,uDAAP,GAC3E,MAAM,cAACW,EAAD,eAAgBiH,EAAhB,aAAgCC,GAAgB7H,EAChD8H,EAAciD,EAAqB5M,EAAc8L,EAAepC,GAChEK,EAAY,CACdj6B,OAAQ65B,QAAep9B,EACvBs1B,QAASW,QAAiBj2B,EAC1B49B,WAAYV,QAAkBl9B,GAGlC,OAAO67B,EAAgB2B,GAAWx1B,MAAM,IAGrC,SAAS04B,EAAT,GAAyG,IAArE,cAACC,EAAD,IAAgBzC,EAAhB,QAAqB5I,EAArB,WAA8BjU,EAA9B,eAA0C3O,EAA1C,SAA0DJ,GAAW,EAC5G,OAAO+O,GACDuf,EAAAA,EAAAA,KAAqB,CAACC,gBAAiBF,EAAezC,IAAAA,EAAK5I,QAAAA,EAASjU,WAAAA,EAAY3O,eAAAA,EAAgBJ,SAAAA,IAChGquB,EAAe,QAAMV,EAAAA,EAAAA,SAAoBvtB,KAAkBwrB,IAAO5I,GAGrE,MAAMwL,EAAgB,SAACrN,GAA8C,IAAhC8L,EAAgC,uDAAhB,GAAIjK,EAAY,uCACxE,MAAMyL,EAAWN,EAAmBhN,EAAc8L,EAAejK,GACjE,MAAQ,mBAAiByL,EAAY,IAAGA,IAAa,KAG5CC,EAAyB/sB,GAI1B,QAHIgsB,EAAAA,EAAAA,UACCC,EAAAA,EAAAA,yBAEkCjsB,IAG7CgtB,GAAmB97B,EAAAA,EAAAA,MAAK,CAAC,OAAQ,WAAY,SAE7C+7B,EAAwB,CAAC9T,EAAQ3S,KACnC,IAAI,aAAC0mB,EAAe,GAAK/T,EACzB,MAAM,QAACgU,GAAWhU,GACZ,OAAC7kB,EAAD,OAAShF,EAAT,SAAiB8Z,GAAY5C,GAC/B4mB,EAAAA,EAAAA,KAAahkB,KACb8jB,GAAeG,EAAAA,EAAAA,KAAIH,IAEvB,MAAMI,GAAmB5mB,EAAAA,EAAAA,QAAO,GAAI,CAAC,UAAWwmB,GAAe/T,GACzDoU,EAAkB,CACpBj+B,OAAAA,EACAwX,WAAW5V,EAAAA,EAAAA,MAAK,CAAC,OAAQ,aAAcsV,GACvC6G,qBAAqBnc,EAAAA,EAAAA,MAAK,CAAC,OAAQ,uBAAwBsV,GAC3D4G,YAAYlc,EAAAA,EAAAA,MAAK,CAAC,OAAQ,cAAesV,GACzC8G,qBAAqBpc,EAAAA,EAAAA,MAAK,CAAC,OAAQ,uBAAwBsV,GAC3DlS,OAAQk5B,EAAoBl5B,GAC5B/B,KAAMy6B,EAAiBxmB,GACvB4C,SAAAA,GAGEqkB,GAAgBC,EAAAA,EAAAA,KAAiBH,GAGvC,OAFAD,EAAiBG,IAAiBp+B,EAAAA,EAAAA,SAAO8b,EAAAA,EAAAA,QAAO,GAAIsiB,EAAeH,GAAmB,CAACC,IAEhF,CAACL,aAAAA,EAAcC,SAAStzB,EAAAA,EAAAA,OAAMqzB,EAAcI,EAAkBH,KAGnEQ,EAAoC,eAACC,EAAD,uDAAuB,GAAvB,OACtCA,EAAoBj0B,QAAO,CAACwf,EAAQ0U,IAE5B1U,IACA2U,EAAAA,EAAAA,KAAuBD,EAAgB5+B,WACvC0+B,EAAkCE,EAAgB5+B,YAEvD,IAED8+B,EAAoCC,GAAgC,CAACC,EAAY3+B,KACnF,MACM4+B,GADoB55B,EAAAA,EAAAA,QAAOhF,GACcrE,KAAKkjC,IAChD,MAAM/kB,GAAWlY,EAAAA,EAAAA,MAAK,CAAC,EAAG,YAAai9B,GACjCP,GAAsBp4B,EAAAA,EAAAA,MAAK44B,EAAAA,IAAuBvF,EAAAA,IAA5BrzB,CAAsD24B,GAClF,OAAKH,GAA+BL,EAAkCC,GAC3D,CACHt+B,OAAQ6+B,EACR/kB,UAAUmf,EAAAA,EAAAA,MAAK,CACX,CAAC8F,EAAAA,KAAe3b,EAAAA,EAAAA,QAAO,QACvB,CAAC0a,EAAAA,IAAc9e,EAAAA,UACf,CAACJ,EAAAA,GAAGwE,EAAAA,EAAAA,QAAO,QAHL6V,CAIPnf,IAGJ,CACH9Z,OAAQ6+B,EACR/kB,SAAUA,MAIlB,OAAOklB,EAAAA,EAAAA,QAAOJ,EAAsBD,IAGlCM,EAAqB,CAACC,EAASplB,KAAV,CAAyBolB,QAAAA,EAASplB,SAAAA,IAEvDqlB,GAAgCC,EAAAA,EAAAA,OAAKC,EAAAA,EAAAA,gBAActI,EAAAA,EAAAA,IAAG,GAAI,WAAWsI,EAAAA,EAAAA,eAAc5c,MAAMC,QAAS,IAElG4c,EAAsB,CACxB,EACIz0B,EAAAA,EAAAA,QAAO,YAAa,uBACpB,QAAC,UAAC2M,EAAD,OAAYxS,GAAb,SACIu6B,EAAAA,EAAAA,KAAuB,CACnBv/B,OAAQw/B,EAAAA,IAAAA,OACRhoB,UAAAA,EACAxS,OAAQ,EAAEA,EAAO,QAG7B,EACIgf,EAAAA,EAAAA,SAAQ,EACJnZ,EAAAA,EAAAA,QAAO,SAAU20B,EAAAA,IAAAA,SACjBH,EAAAA,EAAAA,eAAcF,EAA+B,WAC7Ctd,EAAAA,EAAAA,aAAWhX,EAAAA,EAAAA,QAAO,YAAa,UAC/Bw0B,EAAAA,EAAAA,gBAAcxd,EAAAA,EAAAA,YAAW4d,EAAAA,KAAa,UAE1C,QAAC,UAACjoB,EAAD,OAAYxS,GAAb,SACIkB,EAAAA,EAAAA,OACIvK,EAAAA,EAAAA,MAAKqJ,GACDA,EAAOzJ,OAAS,GACVmkC,EAAAA,EAAAA,KAAyB,CAACloB,UAAAA,EAAWxS,OAAAA,EAAQhF,OAAQ,gBACrDu/B,EAAAA,EAAAA,KAAuB,CAAC/nB,UAAAA,EAAWxS,OAAAA,EAAQhF,OAAQ,cAE7D2/B,EAAAA,EAAAA,KAAkB,SANtBz5B,CAOElB,MAIR46B,EAA8B,eAACC,EAAD,uDAAgB,GAAInB,EAApB,+DAA6Dna,IAC7F,MAAMub,EAAa,IAAIR,KAAwBO,GAC/C,OAAOtb,EAAM5oB,KAAKzD,GACd+mC,GACI9F,EAAAA,EAAAA,KACI,CAACL,EAA2BgH,MAAgBA,GAC5CpB,EAFJvF,CAGEjhC,EAAK8H,QACP9H,EAAK4hB,cAKXokB,GAAsBh4B,EAAAA,EAAAA,OAAK65B,EAAAA,EAAAA,WAAU,KAAKpkC,EAAAA,EAAAA,MAAIorB,EAAAA,EAAAA,OAAKiZ,EAAAA,EAAAA,KAAI,UAAUzjC,EAAAA,EAAAA,MAAK,YAEtE0jC,EAAkB,WAAkC,IAAjCvvB,EAAiC,uDAAzB,GAAImT,EAAqB,uDAAP,GAC/C,MAAMqc,EAAsB,CACxB,CACIlgC,OAAQ,SACRwX,UAAW,OACXxS,OAAQ6e,IAGVsc,GAAkBhH,EAAAA,EAAAA,MAAAA,CAAyB+G,GACjD,OAAOC,GAAmBA,GAAmBzvB,EAAS,SAAO0oB,EAAAA,EAAAA,KAAsB1oB,KAAWA,IAE5F0vB,EAAWpjC,GAAWylB,MAAMC,QAAQ1lB,GAASA,EAAQK,OAAOusB,KAAK5sB,GAAOrB,KAAKa,GAAQQ,EAAMR,KACpF6jC,EAAoC,SAAC1oB,GAAmE,IAA3DkoB,EAA2D,uDAA5C,GAAInB,EAAwC,wDACjH,MAAM4B,EAAmB3oB,EACpBhc,KAAIkiB,EAAAA,EAAAA,QAAO,CAACpD,WAAY8lB,EAAAA,OACxBvgC,OAAOwgC,EAAAA,KACP7kC,KAAKkc,IACF,MAAM4oB,GAAkBv6B,EAAAA,EAAAA,OACpB3J,EAAAA,EAAAA,MAAK,eACLyD,EAAAA,EAAAA,QAAO0gC,EAAAA,MACPr2B,EAAAA,EAAAA,QAAOszB,EAAuB,CAACE,QAAS,MACxCthC,EAAAA,EAAAA,MAAK,WACL6jC,GACA/1B,EAAAA,EAAAA,QAAOo0B,EAAiCC,GAA8B,KACtE/iC,EAAAA,EAAAA,KAAIikC,EAA4BC,EAAcnB,IAC9Cla,EAAAA,SACAxkB,EAAAA,EAAAA,SAAQ2gC,GAAcA,EAAUzB,WAChCvjC,EAAAA,EAAAA,MAAIkiB,EAAAA,EAAAA,QAAO,CAACqhB,QAAUA,IAAY9F,EAAAA,EAAAA,KAAsB8F,GAAS,MACjE0B,EAAAA,IACAC,EAAAA,IAZoB36B,CAatB2R,GACF,OAAOonB,EAAmBgB,EAAgBQ,EAAiB5oB,EAAMgM,aAAchM,EAAMiC,aAExF9Z,QAAQ8gC,GAAmBA,EAAe5B,UAE/C,OAAOh5B,EAAAA,EAAAA,OACH0nB,EAAAA,EAAAA,SACI1nB,EAAAA,EAAAA,MAAK3K,EAAAA,QAAQw7B,EAAAA,EAAAA,IAAG,KAChBp7B,EAAAA,EAAAA,MAAKglC,GAAc1B,GAAmB7F,EAAAA,EAAAA,KAAsBuH,EAAUzB,SAAUyB,EAAU7mB,YAC1FkF,EAAAA,UAEJ6hB,EAAAA,IANG36B,CAOLo6B,K,oUC7fC,MAAMS,EAAejrC,GAASA,IAASid,EAAAA,GAAAA,MAGxCiuB,GAAuBtpB,EAAAA,EAAAA,QAAM,SAACjd,EAAUmE,GAAmC,IAApBqiC,EAAoB,uDAAP,GACtE,MAAM9wB,EAAa2e,EAAAA,IAAAA,UAAe1e,EAAAA,EAAAA,KAAc3V,EAAUmE,IAAgBmwB,OAAO,IACjF,OAAOmS,EAAsBD,GAAYlhC,OAAOohC,GAC3ChxB,EAAWsK,YAAc,IAAI1a,OAAOoQ,EAAWixB,qBAAuB,SAIlE1hC,GAA2CwO,EAAAA,EAAAA,cACpD,CAACzT,EAAUmE,KAAkByP,EAAAA,EAAAA,IAAezP,IAC5CoiC,EAAqBplB,EAAAA,GAAIA,EAAAA,GAAI,CAAC,WAGrBylB,EAAuB,CAAC5mC,EAAUmE,EAAeC,IAC1DA,GACAyiC,EACI5hC,EAAyCjF,EAAUmE,IAClDqB,IAAYpB,EAAY4iB,MAAM8f,GAASthC,EAAOJ,KAAO0hC,EAAK1hC,OAGtDqhC,EAAwB,eAACD,EAAD,uDAAc,GAAd,MACjC,CACI,CACIphC,GAAI,QACJ7F,MAAOoG,IAAAA,KAAU,YAErB,CACIP,GAAI,WACJ7F,MAAOoG,IAAAA,KAAU,eAEvBJ,QAAQC,IAAYghC,EAAW78B,SAASnE,EAAOJ,OAE/CshC,EAA0B,eAAC1mB,EAAD,uDAAc,GAAd,OAC5BA,EAAWza,OAAOwhC,EAAAA,KAAqB7lC,KAAK+N,IACxC,MAAMzJ,EAAS,CACXJ,IAAI+iB,EAAAA,EAAAA,IAAwBlZ,EAASvN,KACrCnC,MAAO0P,EAAS1P,QAAS2xB,EAAAA,EAAAA,KAAejiB,EAASvN,KACjDuN,SAAAA,GAEE+3B,EAAW/3B,EAAS+Q,YAAc/Q,EAAS03B,oBAIjD,MAHsB,WAAlB13B,EAASzG,MAAqBw+B,IAC9BxhC,EAAON,SAAWwhC,EAAwBM,IAEvCxhC,MAGFL,EAA6B,CAAC4N,EAASk0B,KAChD,MAAMC,EAASC,EAAiBp0B,EAASk0B,GACzC,OAAOG,EAAqBF,IAG1BC,EAAmB,CAACjiC,EAAUE,KAChC,IAAIgqB,EAAS,KACb,MAAMiY,EAAQniC,IACVA,EAAS8hB,MAAMsgB,GACPA,EAAKliC,KAAOA,GACZgqB,EAASkY,GACF,GAEPA,EAAKpiC,SACEmiC,EAAKC,EAAKpiC,SAAUE,QAD/B,KAMR,OADAiiC,EAAKniC,GACEkqB,GAILgY,EAAuB3pC,IAClBssB,EAAAA,EAAAA,UACFtsB,EAAKyH,UAAY,IAAIhE,KAAIomC,GAASA,EAAKpiC,SAAWkiC,EAAqBE,GAAQ,CAACA,MAI5ET,EAAa,CAACU,EAAOhiC,IAC9BgiC,EAAMhiC,OAAOA,GAAQrE,KAAKomC,GACtBA,EAAKpiC,S,8UAAL,IAEWoiC,EAFX,CAGQpiC,SAAU2hC,EAAWS,EAAKpiC,SAAUK,KAEtC+hC,IAGDE,EAAsB,CAACxnC,EAAUmE,EAAesjC,KACzD,MAAM10B,EAAUwzB,EAAqBvmC,EAAUmE,GAC/C,OAAOs8B,EAAAA,EAAAA,OACHh1B,EAAAA,EAAAA,OACInG,EAAAA,EAAAA,QAAO,CAAC,WACRpE,EAAAA,EAAAA,MAAKkE,GAAO+hC,EAAiBp0B,EAAS3N,MACtCqmB,EAAAA,EAAAA,QAAOC,EAAAA,QACPnmB,EAAAA,EAAAA,SAAOkG,EAAAA,EAAAA,OAAK3J,EAAAA,EAAAA,MAAK,aAAaslB,EAAAA,EAAAA,YAAWsgB,EAAAA,OAJ7Cj8B,CAKEg8B,KAIGzQ,EAAiC,SAACh3B,EAAU8wB,GAAyC,IAArB6W,EAAqB,uDAAP,GACvF,MAAMC,GAAuB/W,EAAAA,EAAAA,IAAqB7wB,EAAU,GAAI8wB,GAC1D+W,GAAmB/lC,EAAAA,EAAAA,MAAK,IAAK6lC,GAEnC,OAAOC,EAAqBh4B,QAAO,CAACwf,EAAQ3xB,KACxC,MAAMqqC,EAAaH,EAAYlqC,EAAK8E,QAAUslC,EAI9C,OAHAzY,EAAO3xB,EAAK8E,QAASmpB,EAAAA,EAAAA,OAAMoc,GACrBrB,IACAe,EAAoBxnC,EAAUvC,EAAK8E,MAAOulC,GACzC1Y,IACR,KAGD2Y,EAAmBt5B,GAAU,CAACu5B,EAAOC,IAAUx5B,EAAMy5B,QAAQF,EAAMzlC,OAASkM,EAAMy5B,QAAQD,EAAM1lC,OAEzF4lC,EAAwB,YAAwD,IAAvD,YAAC/e,GAAsD,EAAxCwN,EAAwC,uDAAjC,GAAI9N,EAA6B,uDAAP,GAClF,MAAMsf,GAAkBnH,EAAAA,EAAAA,OAAM,MAAO7X,GAC/Bif,EAA0BN,EAAgBK,GAC1CE,EAAgCP,EAAgBjf,GAChDyf,EAAe3R,EAAKrxB,QAAO,QAAC,MAAChD,GAAF,SACE,IAA/BumB,EAAoBhoB,QAAsBgoB,EAAoBnf,SAASpH,MAE3E,OAAO4tB,EAAAA,EAAAA,MAC4B,IAA/BrH,EAAoBhoB,OAAeunC,EAA0BC,EAC7DC,IASKC,EAA0Bz1B,IACnC,MAAM01B,EAAiBhC,IACvB,OAAOhG,EAAAA,EAAAA,MACH1tB,EACKxN,QAAQC,IAAYijC,EAAehjC,MAAMijC,GAAkBA,EAActjC,KAAOI,EAAOJ,OACvFlE,KAAIuK,EAAAA,EAAAA,OAAK3J,EAAAA,EAAAA,MAAK,MAAOu/B,EAAAA,OAIrBsH,EAAiC,CAAC51B,EAAS61B,KACpD,MAAM5J,EAASwJ,EAAuBz1B,GAChC81B,EAAaL,EAAuBI,GAC1C,QAAQ9L,EAAAA,EAAAA,SAAO9P,EAAAA,EAAAA,cAAagS,EAAQ6J,GAAa7J,K,6DC3KrD,IAAI8J,EAAY,GACT,MACMC,EAAatc,GAAYqc,EAAYrc,EAE5Cuc,EAAqBxvB,GAASsvB,EAAUtvB,GAEjC7Q,EAAa,IAAMqgC,EAAkB,WACrCtgC,EAAe,IAAMsgC,EAAkB,aACvCC,EAAoB,IAAMD,EAAkB,mBAAqB,G,kHCJvE,MAAME,EAAmBlvB,IAC5B8U,QAAQ9U,MAAMA,GACdmvB,EAAAA,EAAAA,SAAoB,CAChBxnB,MAAOhc,IAAAA,KAAU,gBACjByjC,SAASC,EAAAA,EAAAA,KAAuBrvB,EAAOrU,IAAAA,KAAU,+BAI5C2jC,EAA8B,WAAiB,IAAhBxO,EAAgB,uDAAP,GACjDhM,QAAQ9U,MAAM8gB,GACdqO,EAAAA,EAAAA,SAAoB,CAChBxnB,MAAOhc,IAAAA,KAAU,SACjByjC,QAASzjC,IAAAA,KAAU,+BAId4jC,EAA4B,WAAiB,IAAhBzO,EAAgB,uDAAP,GAC/ChM,QAAQ9U,MAAM8gB,GACdqO,EAAAA,EAAAA,SAAoB,CAChBxnB,MAAOhc,IAAAA,KAAU,SACjByjC,QAASzjC,IAAAA,KAAU,oCAIdsP,EAAiC+E,IAC1C8U,QAAQ9U,MAAMA,GACdmvB,EAAAA,EAAAA,SAAoB,CAChBxnB,MAAOhc,IAAAA,KAAU,gBACjByjC,QAASzjC,IAAAA,KAAU,+BAId6jC,EAAuBxvB,IAChC8U,QAAQ9U,MAAMA,GACdmvB,EAAAA,EAAAA,SAAoB,CAChBxnB,MAAOhc,IAAAA,KAAU,SACjByjC,SAASC,EAAAA,EAAAA,KAAuBrvB,EAAOrU,IAAAA,KAAU,0B,6pBCtClD,MAAM82B,EAAO,CAAC/M,EAAGC,IAAM,IAAIU,EAAAA,QAAQX,GAAG+Z,IAAI9Z,GAEpC0L,EAAQ,CAAC3L,EAAGC,IAAM,IAAIU,EAAAA,QAAQX,GAAGga,IAAI/Z,GAErCyL,EAAM,CAAC1L,EAAGC,IAAM,IAAIU,EAAAA,QAAQX,GAAG0L,IAAIzL,GAEnCwM,EAAM,CAACzM,EAAGC,IAAM,IAAIU,EAAAA,QAAQX,GAAGyM,IAAIxM,GAEnCkM,EAAc,CAACnM,EAAGC,KAAMU,EAAAA,EAAAA,SAAQX,GAAGmM,YAAYlM,GAE/Cga,EAAuB,CAACja,EAAGC,IAAM,IAAIU,EAAAA,QAAQX,GAAGia,qBAAqBha,GAErE2N,EAAW,CAAC5N,EAAGC,IAAM,IAAIU,EAAAA,QAAQX,GAAG4N,SAAS3N,GAE7CgM,EAAoB,CAACjM,EAAGC,IAAM,IAAIU,EAAAA,QAAQX,GAAGiM,kBAAkBhM,GAE/Dia,EAASla,GAAM,IAAIW,EAAAA,QAAQX,GAAGka,QAE9BhM,EAAQlO,GAAM,IAAIW,EAAAA,QAAQX,GAAGkO,OAE7B5L,EAAM,CAACtC,EAAGC,IAAMU,EAAAA,QAAAA,IAAYX,EAAGC,GAE/B7iB,EAAM,CAAC4iB,EAAGC,IAAMU,EAAAA,QAAAA,IAAYX,EAAGC,GAE/BmN,EAAS,CAACpN,EAAGC,IAAM,IAAIU,EAAAA,QAAQX,GAAGoN,OAAOnN,GAEzCka,EAAQ,CAAC7X,EAAKllB,EAAKvK,KAC5B,GAAI,IAAI8tB,EAAAA,QAAQ2B,GAAKwC,GAAG1nB,GACpB,MAAM,IAAIgI,MAAM,8DAEpB,MAAMg1B,EAAW,IAAIzZ,EAAAA,QAAQ9tB,GAC7B,OAAOunC,EAASxN,GAAGtK,GAAOA,EAAM8X,EAAStV,GAAG1nB,GAAOA,EAAMvK,GAGhD44B,EAAU,CAAC54B,EAAOwnC,IAAW,IAAI1Z,EAAAA,QAAQ9tB,GAAO44B,QAAQ4O,GClCxDtN,EAAO,CAAC/M,EAAGC,IAAMsM,OAAOvM,GAAKuM,OAAOtM,GAEpC0L,EAAQ,CAAC3L,EAAGC,IAAMD,EAAIC,EAEtByL,EAAM,CAAC1L,EAAGC,IAAMD,EAAIC,EAEpBwM,EAAM,CAACzM,EAAGC,IAAMD,EAAIC,EAEpBkM,EAAc,CAACnM,EAAGC,IAAMsM,OAAOvM,GAAKuM,OAAOtM,GAE3Cga,EAAuB,CAACja,EAAGC,IAAMsM,OAAOvM,IAAMuM,OAAOtM,GAErD2N,EAAW,CAAC5N,EAAGC,IAAMsM,OAAOvM,GAAKuM,OAAOtM,GAExCgM,EAAoB,CAACjM,EAAGC,IAAMsM,OAAOvM,IAAMuM,OAAOtM,GAElDia,EAASla,GAAM7iB,KAAK+8B,MAAMla,GAE1BkO,EAAQlO,GAAM7iB,KAAK+wB,KAAKlO,GAExBsC,EAAM,CAACtC,EAAGC,IAAM9iB,KAAKmlB,IAAItC,EAAGC,GAE5B7iB,EAAM,CAAC4iB,EAAGC,IAAM9iB,KAAKC,IAAI4iB,EAAGC,GAE5BmN,EAAS,CAACpN,EAAGC,IAAMD,IAAMC,EAEzBka,EAAQ,CAAC7X,EAAKllB,EAAKvK,KAAUynC,EAAAA,EAAAA,OAAO/N,OAAOjK,GAAMiK,OAAOnvB,GAAMmvB,OAAO15B,IAErE44B,EAAU,CAAC54B,EAAOwnC,IAAW9N,OAAO15B,GAAO44B,QAAQ4O,GCrBhE,IAAIx1B,EACG,MAAM01B,EAAaC,IACtB31B,EAAS21B,GAGb,IAAIlI,EACG,MAAMmI,EAAkBC,IAC3BpI,EAAMoI,GAGGlI,EAAY,IACd3tB,EAGE0tB,EAAiB,IACnBD,EAAMA,EAAInuB,WAAa,GAuBrBmgB,IAZQhW,EAAAA,EAAAA,SAAQoiB,KAAKiK,MAAOjK,KAAKC,WAYV,CAAC99B,EAAO+nC,KACxC,KAAKC,EAAAA,EAAAA,IAAShoC,GACV,MAAO,GAGX,MAAMw4B,EAAUC,EAAe3K,EAAAA,QAAAA,UAAkB9tB,IAAU,QAC3D,OACIw4B,EAAQY,kBAAkBp5B,EAAO05B,OAAOC,mBACxCnB,EAAQ4O,qBAAqBpnC,EAAO05B,OAAOM,kBAEpCxB,EAAQc,YAAYt5B,EAAO+nC,GAAS,KACrC3kC,IAAAA,OAAYpD,EAAO,UAAUioC,cAC7B7kC,IAAAA,OAAYpD,EAAO,WAElBw4B,EAAQc,YAAYt5B,EAAO+nC,GAAS,KACrC3kC,IAAAA,OAAYo1B,EAAQK,IAAI74B,EAAO,MAAO,SAAW,IACjDA,EAAMsR,aAIPD,EAAkB7R,GAGnB,GAFOmgC,OACHD,OACelgC,IAGlBoyB,EAAoBsW,GACtBA,EAAWC,OAAOtW,IAAAA,aAAoBuW,eAAe,MAGnD3P,EAAkB/rB,GAA2B,SAAbA,EAAsB27B,EAASC,EAE/DzvC,EAAO,OAEP0vC,GAAsBr3B,EAAAA,EAAAA,aAAY8Q,EAAAA,UAAW7iB,GAAQ,CAACA,M,2CChF5D,MAAMqpC,EAAO,CAACC,EAAQC,KAClB,CACHxtB,IAAKutB,EACLlsB,IAAKmsB,EACLjtB,QAASktB,GAAKH,GACVI,GAAOD,EAAEztB,IAAIutB,EAAOG,MACpB,CAACA,EAAK5oC,IAAU0oC,EAAOE,EAAKD,EAAEpsB,IAAIksB,EAAOG,GAAM5oC,QAM9C0b,EAAalB,GAAaguB,GACnCI,GAAOA,EAAIpuB,KACX,CAACouB,EAAK5oC,IAAUK,OAAOC,OAAO,GAAIsoC,EAAK,CAAC,CAACpuB,GAAYxa,MAS5CT,EAAQC,IAAS,MAAe,iBAARA,EAAmBkc,EAAWlc,IAPpCiQ,EAO0DjQ,EAN9EgpC,GACFK,GAAQA,EAAIp5B,KACb,CAACo5B,EAAKC,MAAUD,EAAM,IAAIA,IAAYp5B,GAASq5B,EAAMD,MAHtD,IAAwBp5B,GASlB7K,EAAO,SAACpF,GAAD,2BAASotB,EAAT,iCAASA,EAAT,yBAAmBA,EAAKruB,OAASgB,EAAKC,GAAKic,QAAQ7W,KAAQgoB,IAASrtB,EAAKC,K,2CC1BtF,MAAMupC,EAAY/oC,GAA2B,iBAAVA,GAAgC,OAAVA,EACnDgoC,EAAYhoC,IAAWgwB,MAAMgZ,WAAWhpC,KAAWipC,SAASjpC,I,gCCAzE,SAAgB,UAAY,kCAAkC,MAAQ,8BAA8B,WAAa,mCAAmC,SAAW,iCAAiC,WAAa,mCAAmC,gBAAkB,wCAAwC,cAAgB,sCAAsC,OAAS","sources":["webpack://@reltio/remotes/../components/src/components/AvatarWithFallback/AvatarWithFallback.tsx","webpack://@reltio/remotes/../components/src/components/ImportButton/styles.ts","webpack://@reltio/remotes/../components/src/components/ImportButton/ImportButton.tsx","webpack://@reltio/remotes/../components/src/components/ProfilesList/helpers.ts","webpack://@reltio/remotes/../components/src/components/ProfilesList/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfilesList/index.ts","webpack://@reltio/remotes/../components/src/components/ProfilesList/ProfilesList.tsx","webpack://@reltio/remotes/../search/src/actions/facets/constants.ts","webpack://@reltio/remotes/../search/src/components/ConfigureColumnsButton/show_hide_columns.svg","webpack://@reltio/remotes/../search/src/components/ConfigureColumnsButton/ConfigureColumnsButton.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/HeadCellRenderer/styles.less?a0e2","webpack://@reltio/remotes/../search/src/components/EntitiesTable/HeadCellRenderer/HeadCellRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/styles.less?da5d","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/EntityProfileRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/DefaultRenderer.js","webpack://@reltio/remotes/../search/src/services/entity/image.ts","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/ReferenceRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/BlobRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/ImageRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/getAttributeValueRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/entitiesTableUtils.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/EntityRowOverlay/EntityRowOverlay.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCellDecoration/styles.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCellDecoration/withCellDecoration.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCheckbox/styles.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCheckbox/withCheckbox.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCollapseButton/styles.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCollapseButton/withCollapseButton.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/RowCellRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/heightCalculator.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/EntitiesTable.js","webpack://@reltio/remotes/../search/src/components/EntitiesTableWithConfigurableColumns/ConfigColumnPopup/ConfigColumnPopup.js","webpack://@reltio/remotes/../search/src/components/EntitiesTableWithConfigurableColumns/EntitiesTableWithConfigurableColumns.js","webpack://@reltio/remotes/../search/src/components/ImportEntityButton/ImportEntityButton.js","webpack://@reltio/remotes/../search/src/components/EntityRowButtons/styles.ts","webpack://@reltio/remotes/../search/src/components/EntityRowButtons/EntityRowButtons.tsx","webpack://@reltio/remotes/../search/src/components/ReadableSearchQuery/styles.js","webpack://@reltio/remotes/../search/src/components/ReadableSearchQuery/ReadableSearchQuery.js","webpack://@reltio/remotes/../search/src/constants/actionTypes/search.js","webpack://@reltio/remotes/../search/src/constants/constants.js","webpack://@reltio/remotes/../search/src/reducers/helpers/queryBuilderHelpers.js","webpack://@reltio/remotes/../search/src/sagas/queryBuilderSaga.js","webpack://@reltio/remotes/../search/src/services/search/advancedSearch/collectSpecialAttributes.js","webpack://@reltio/remotes/../search/src/services/search/icons/ml-recommended.svg","webpack://@reltio/remotes/../search/src/services/search/collectAttributes.js","webpack://@reltio/remotes/../search/src/services/search/collectFacets.js","webpack://@reltio/remotes/../search/src/services/search/converting/createAdvancedSearchFromFacets.js","webpack://@reltio/remotes/../search/src/services/search/entityTypes.js","webpack://@reltio/remotes/../search/src/services/search/facet.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parsingUtils.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseFacets.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldFacets.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseAttributeData.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldAdvancedSearch.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldView.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldSearchOptions.js","webpack://@reltio/remotes/../search/src/services/search/parsing/index.js","webpack://@reltio/remotes/../search/src/services/search/rangeFacet.js","webpack://@reltio/remotes/../search/src/utils/url.js","webpack://@reltio/remotes/../search/src/services/search/searchEngine.js","webpack://@reltio/remotes/../search/src/services/search/searchResults.js","webpack://@reltio/remotes/../search/src/utils/config.js","webpack://@reltio/remotes/../search/src/utils/error.js","webpack://@reltio/remotes/../search/src/utils/bigNumbersMath.js","webpack://@reltio/remotes/../search/src/utils/numbersMath.js","webpack://@reltio/remotes/../search/src/utils/general.js","webpack://@reltio/remotes/../search/src/utils/lenses.js","webpack://@reltio/remotes/../search/src/utils/maybe.js","webpack://@reltio/remotes/../search/src/components/SearchResultsArea/Headers/styles.less?0cb4"],"sourcesContent":["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\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '24px',\n height: '24px'\n },\n check: {\n color: '#8CC152'\n }\n});\n","import React from 'react';\n\nimport {CircularProgress as CircularProgress} from '@material-ui/core';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport DoneIcon from '@material-ui/icons/Done';\nimport {noop} from '../../core';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nexport enum ImportModes {\n INIT = 1,\n PROGRESS = 2,\n SUCCESS = 3,\n DONE = 4\n}\n\ntype Props = {\n tooltip?: string;\n onClick?: () => void;\n classes?: Partial<Record<'root' | 'spinner' | 'button' | 'check', string>>;\n mode?: ImportModes;\n};\n\nconst ImportButton = ({classes = {}, tooltip = '', onClick = noop, mode = ImportModes.INIT}: Props) => {\n const styles = useStyles();\n\n const renderCurrentMode = () => {\n switch (mode) {\n case ImportModes.INIT: {\n return (\n <SmallIconButtonWithTooltip\n className={classes.button}\n size={'M'}\n tooltipTitle={tooltip}\n icon={CloudDownloadIcon}\n onClick={onClick}\n />\n );\n }\n case ImportModes.PROGRESS:\n return <CircularProgress className={classes.spinner} size={24} />;\n case ImportModes.SUCCESS:\n return <DoneIcon className={classnames(styles.check, classes.check)} />;\n default:\n return null;\n }\n };\n return <div className={classnames(styles.root, classes.root)}>{renderCurrentMode()}</div>;\n};\n\nexport default ImportButton;\n","export const scroll = (element) => element && element.scrollIntoView({block: 'end', behavior: 'smooth'});\n\nexport const clearScrollTimer = (scrollTimer) => {\n if (scrollTimer) {\n clearTimeout(scrollTimer);\n }\n};\n\nexport const isScrolledIntoView = (element, scrollableParent) => {\n if (element && scrollableParent) {\n const elemTop = element.offsetTop;\n const elemBottom = element.offsetTop + element.clientHeight;\n const {clientHeight, scrollTop} = scrollableParent;\n return elemTop >= 0 && elemBottom > scrollTop && elemBottom < scrollTop + clientHeight;\n }\n};\n","import {fade, makeStyles} from '@material-ui/core/styles';\nimport {Theme} from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n (\n theme: Theme & {\n inactiveBackground: string;\n inactiveHoverBackground: string;\n inactiveSelectedBackground: string;\n inactiveSelectedHoverBackground: string;\n }\n ) => {\n return {\n '@keyframes animate': {\n from: {background: 'transparent'},\n '66%': {background: '#f2e68e'},\n '100%': {background: 'transparent'}\n },\n\n highlighted: {\n animationName: '$animate',\n animationDuration: '3s',\n animationIterationCount: 1\n },\n\n item: {\n display: 'flex',\n minHeight: '40px',\n borderBottom: '1px solid rgba(0, 0, 0, 0.1)',\n flexDirection: 'row',\n\n '&:after': {\n // IE flex & min-height workaround\n content: '',\n minHeight: 'inherit',\n fontSize: 0\n },\n\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n }\n },\n\n clickable: {\n cursor: 'pointer'\n },\n\n selected: {\n background: fade(theme.palette.primary.main, 0.12),\n '&:hover': {\n background: fade(theme.palette.primary.main, 0.24)\n }\n },\n\n inactive: {\n background: theme.inactiveBackground,\n\n '&:hover': {\n background: theme.inactiveHoverBackground\n },\n\n '&$selected': {\n background: theme.inactiveSelectedBackground,\n\n '&:hover': {\n background: theme.inactiveSelectedHoverBackground\n }\n }\n },\n\n justImported: {\n backgroundColor: '#FFFBEB !important'\n },\n\n avatar: {\n marginLeft: '20px'\n },\n\n image: {\n height: '32px',\n width: '32px',\n marginTop: '8px',\n marginBottom: '7px'\n },\n\n info: {\n marginLeft: '20px',\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n fontSize: '13px',\n width: '100%',\n overflow: 'hidden',\n overflowWrap: 'break-word',\n wordWrap: 'break-word' // for IE\n },\n\n label: {\n fontSize: '13px',\n lineHeight: '15px',\n fontWeight: 500,\n color: theme.palette.primary.main,\n marginRight: '17px',\n textDecoration: 'none'\n },\n\n secondaryLabel: {\n marginRight: '12px'\n },\n\n businessCard: {\n color: 'rgba(0, 0, 0, 0.54)'\n },\n\n secondRow: {\n display: 'flex',\n marginTop: '2px',\n alignItems: 'center',\n color: 'rgba(0, 0, 0, 0.54)',\n fontSize: '12px'\n }\n };\n }\n);\n","import {connect} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport ProfilesList from './ProfilesList';\n\nconst mapStateToProps = (state) => {\n return {\n metadata: mdmModule.selectors.getMetadata(state)\n };\n};\n\nexport {ProfilesList};\n\nexport default connect(mapStateToProps)(ProfilesList);\n","import React, {useRef} from 'react';\nimport classnames from 'classnames';\nimport {prop} from 'ramda';\nimport {\n Entity,\n getBusinessCardAttributesText,\n getEntityId,\n getEntityUriForLink,\n getLabel,\n isActiveObject,\n Metadata\n} from '@reltio/mdm-sdk';\nimport EntityTypeBadge from '../EntityTypeBadge/EntityTypeBadge';\nimport EntityUriLink from '../EntityUriLink/EntityUriLink';\nimport EntityAvatar from '../EntityAvatar/EntityAvatar';\nimport {ImportModes} from '../ImportButton/ImportButton';\nimport {clearScrollTimer, isScrolledIntoView, scroll} from './helpers';\nimport {useDidUpdateEffect} from '../../hooks';\n\nimport {useStyles} from './styles';\n\nconst SECOND_SCROLL_PAUSE = 1000;\n\ntype Props = {\n metadata: Metadata;\n entities: Entity[];\n entityToHighlight?: string;\n selectedEntityUri?: string;\n onEntityClick?: (entityUri: string) => void;\n onEntityHover?: (entityUri: string) => void;\n entitiesImportStatus?: {entityUri: string};\n entityButtonsRenderer?: (entity: Entity) => void;\n};\n\nconst ProfilesList = ({\n entities,\n metadata,\n entityToHighlight,\n selectedEntityUri,\n onEntityClick,\n onEntityHover,\n entitiesImportStatus,\n entityButtonsRenderer\n}: Props) => {\n const styles = useStyles();\n\n const list = useRef(null);\n const scrollTimer = useRef(null);\n\n useDidUpdateEffect(() => {\n if (entityToHighlight) {\n const element = list.current?.querySelectorAll(`[data-entity-uri='${entityToHighlight}']`);\n clearScrollTimer(scrollTimer.current);\n if (element?.length > 0) {\n const scrollableParent = list.current?.parentElement;\n if (!isScrolledIntoView(element[0], scrollableParent)) {\n scroll(element[0]);\n scrollTimer.current = setTimeout(() => {\n if (!isScrolledIntoView(element[0], scrollableParent)) {\n scroll(element[0]);\n }\n }, SECOND_SCROLL_PAUSE);\n }\n }\n }\n\n return () => {\n clearScrollTimer(scrollTimer.current);\n };\n }, [entityToHighlight]);\n\n return (\n <div ref={list}>\n {(entities || []).map((entity) => {\n const label = getLabel(entity.label);\n const secondaryLabel = entity.secondaryLabel;\n const businessCardText = getBusinessCardAttributesText(metadata, entity);\n const isActive = isActiveObject(entity);\n const entityUri = entity.uri;\n const entityUriForLink = getEntityUriForLink(entity);\n\n const importStatus = prop(entityUri, entitiesImportStatus);\n\n return (\n <div\n key={entityUri}\n className={classnames(styles.item, {\n [styles.clickable]: !!onEntityClick,\n [styles.selected]: entityUri === selectedEntityUri,\n [styles.highlighted]: entityUri === entityToHighlight,\n [styles.inactive]: !isActive,\n [styles.justImported]: importStatus === ImportModes.SUCCESS\n })}\n onClick={onEntityClick ? () => onEntityClick(entityUri) : undefined}\n onMouseEnter={onEntityHover ? () => onEntityHover(entityUri) : undefined}\n onMouseLeave={onEntityHover ? () => onEntityHover(null) : undefined}\n data-entity-uri={entityUri}\n >\n <EntityAvatar entity={entity} avatarClassName={styles.avatar} imageClassName={styles.image} />\n <div className={styles.info}>\n <div>\n <EntityUriLink value={entityUriForLink} className={styles.label}>\n {label}\n </EntityUriLink>\n {secondaryLabel && <span className={styles.secondaryLabel}>{secondaryLabel} </span>}\n {businessCardText && <span className={styles.businessCard}>{businessCardText}</span>}\n </div>\n <div className={styles.secondRow}>\n <EntityTypeBadge entity={entity} />\n <div>{getEntityId(entity)}</div>\n </div>\n </div>\n {entityButtonsRenderer && entityButtonsRenderer(entity)}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default ProfilesList;\n","export enum FacetsActions {\n CREATE_FACETS = 'FACETS_CREATE_FACETS',\n DESTROY_FACETS = 'FACETS_DESTROY_FACETS',\n CHANGE_VALUES = 'FACETS_CHANGE_VALUES',\n CLEAR_ALL_VALUES = 'FACETS_CLEAR_ALL_VALUES',\n UPDATE_DATA = 'FACETS_UPDATE_DATA',\n UPDATE_FILTERED_DATA = 'FACETS_UPDATE_FILTERED_DATA',\n DESTROY_FILTERED_DATA = 'FACETS_DESTROY_FILTERED_DATA',\n FILTER_FACET_DATA = 'FACETS_FILTER_FACET_DATA',\n HANDLE_CONFIGS_CHANGES = 'FACETS_HANDLE_CONFIGS_CHANGES',\n REQUEST_GIVEN_FACETS_DATA = 'FACETS_REQUEST_GIVEN_FACETS_DATA',\n SET_RECOMMENDED_FACETS_LIST = 'FACETS_SET_RECOMMENDED_FACETS_LIST',\n CONVERT_FROM_ADVANCED_SEARCH = 'FACETS_CONVERT_FROM_ADVANCED_SEARCH',\n SHOW_MORE_ENTITY_TYPES = 'FACETS_SHOW_MORE_ENTITY_TYPES',\n HIGHLIGHT_ADDED_FACETS = 'FACETS_HIGHLIGHT_ADDED_FACETS',\n CLEAR_HIGHLIGHT_ADDED_FACETS = 'FACETS_CLEAR_HIGHLIGHT_ADDED_FACETS'\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}, props), React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\",\n opacity: \".54\"\n}, React.createElement(\"path\", {\n d: \"M19 11.24V10h-4v1.24a8.417 8.417 0 00-2 .768V10H9v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H5c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM7 16v-6H5v6h2zm0-8V6H5v2h2zm6 0V6H9v2h4zm6 0V6h-4v2h4zm-2 5a6.451 6.451 0 00-6 4.09 6.451 6.451 0 006 4.092 6.451 6.451 0 006-4.091A6.451 6.451 0 0017 13zm0 6.818a2.728 2.728 0 010-5.454 2.728 2.728 0 010 5.454zm0-4.363c-.905 0-1.636.73-1.636 1.636 0 .905.73 1.636 1.636 1.636.905 0 1.636-.73 1.636-1.636 0-.906-.73-1.636-1.636-1.636z\",\n fill: \"#000\",\n fillRule: \"nonzero\"\n}))));","import React, {useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {useSelector} from 'react-redux';\nimport {ConfigureColumnsPopup, SmallIconButtonWithTooltip, noop} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {\n getChildrenLeafsByParentId,\n memoizedCollectColumnsForestWithoutLabel\n} from '../../services/search/searchResults';\nimport ConfigureColumnsIcon from './show_hide_columns.svg';\nimport styles from '../SearchResultsArea/Headers/styles.less';\n\nimport mdmModule from '@reltio/mdm-module';\n\nconst ConfigureColumnsButton = ({entityTypeUri, headColumns = [], onSelectColumns = noop, ...otherProps}) => {\n const [popupAnchor, setPopupAnchor] = useState(null);\n const [filterText, setFilterText] = useState('');\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const openConfigureColumnsPopup = (e) => setPopupAnchor(e.currentTarget);\n const closeConfigureColumnsPopup = () => setPopupAnchor(null);\n\n const handlePopupClose = () => {\n closeConfigureColumnsPopup();\n setFilterText('');\n };\n\n const handleColumnClick = useCallback(\n (data, checked) => {\n const columnsForest = memoizedCollectColumnsForestWithoutLabel(metadata, entityTypeUri);\n const children = getChildrenLeafsByParentId(columnsForest, data.id);\n let selectedColumns;\n if (children.length) {\n selectedColumns = checked\n ? headColumns.concat(children)\n : headColumns.filter((column) => !children.find((child) => child.id === column.id));\n } else {\n selectedColumns = checked\n ? headColumns.concat(data)\n : headColumns.filter((column) => column.id !== data.id);\n }\n\n onSelectColumns(selectedColumns);\n },\n [metadata, entityTypeUri, headColumns, onSelectColumns]\n );\n\n const renderConfigureColumnsPopup = () => {\n const columnsForest = memoizedCollectColumnsForestWithoutLabel(metadata, entityTypeUri);\n return (\n <ConfigureColumnsPopup\n open={!!popupAnchor}\n anchorEl={popupAnchor}\n data={columnsForest}\n onListItemClick={handleColumnClick}\n selected={headColumns}\n filterText={filterText}\n onClose={handlePopupClose}\n onSearch={setFilterText}\n />\n );\n };\n\n return (\n <>\n <SmallIconButtonWithTooltip\n tooltipTitle={i18n.text('Show/hide columns')}\n size=\"M\"\n icon={ConfigureColumnsIcon}\n onClick={openConfigureColumnsPopup}\n className={styles.headerIcon}\n {...otherProps}\n />\n {renderConfigureColumnsPopup()}\n </>\n );\n};\n\nConfigureColumnsButton.propTypes = {\n entityTypeUri: PropTypes.string,\n headColumns: PropTypes.array,\n onSelectColumns: PropTypes.func\n};\n\nexport default ConfigureColumnsButton;\n","// extracted by mini-css-extract-plugin\nexport default {\"headCellContentWrapper\":\"HeadCellRenderer-styles-headCellContentWrapper--L6RrQ\",\"checkbox\":\"HeadCellRenderer-styles-checkbox--qQEHg\",\"sortLabel\":\"HeadCellRenderer-styles-sortLabel--NZx3o\",\"labelWrapper\":\"HeadCellRenderer-styles-labelWrapper--cmclk\",\"menuButtonWrapper\":\"HeadCellRenderer-styles-menuButtonWrapper--aBNeR\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {TableSortLabel as TableSortLabel} from '@material-ui/core';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport {path, pick} from 'ramda';\nimport {SmallIconButton, withTableContext} from '@reltio/components';\n\nimport styles from './styles.less';\n\nconst HeadCellRenderer = ({\n headCellData,\n headIndex,\n sortOrder,\n sortField,\n sortHandler,\n canCheck,\n onCheck,\n headerCheckboxState,\n openConfigColumnPopup\n}) => {\n return (\n <div className={classNames(styles.headCellContentWrapper, path(['wrapperClassName'], headCellData))}>\n {headCellData && canCheck && (\n <Checkbox\n className={styles.checkbox}\n checked={headerCheckboxState || false}\n indeterminate={headerCheckboxState === null}\n onChange={() => onCheck()}\n />\n )}\n <div className={styles.labelWrapper}>\n {headCellData &&\n (headCellData.sortable ? (\n <TableSortLabel\n active={Boolean(sortOrder && sortField === headCellData.id)}\n direction={sortOrder}\n onClick={sortHandler}\n classes={{root: styles.sortLabel}}\n component=\"div\"\n >\n {headCellData.label}\n </TableSortLabel>\n ) : (\n headCellData.label\n ))}\n </div>\n {openConfigColumnPopup && (\n <div className={styles.menuButtonWrapper}>\n <SmallIconButton\n icon={MoreVertIcon}\n onClick={openConfigColumnPopup}\n size={'S'}\n data-column-index={headIndex}\n />\n </div>\n )}\n </div>\n );\n};\n\nHeadCellRenderer.propTypes = {\n headCellData: PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n sortable: PropTypes.bool\n }),\n headIndex: PropTypes.number,\n sortOrder: PropTypes.string,\n sortField: PropTypes.string,\n sortHandler: PropTypes.func,\n canCheck: PropTypes.bool,\n onCheck: PropTypes.func,\n headerCheckboxState: PropTypes.oneOf([true, false, null]),\n openConfigColumnPopup: PropTypes.func\n};\n\nexport default withTableContext(pick(['openConfigColumnPopup']))(HeadCellRenderer);\n\nexport const HeadCellRendererWithCheckbox = withTableContext(\n pick(['openConfigColumnPopup', 'canCheck', 'onCheck', 'headerCheckboxState'])\n)(HeadCellRenderer);\n","// extracted by mini-css-extract-plugin\nexport default {\"popupBackdrop\":\"EntitiesTable-styles-popupBackdrop--nEX1F\",\"popupContent\":\"EntitiesTable-styles-popupContent--PLSPL\",\"complexPopupContent\":\"EntitiesTable-styles-complexPopupContent--wqOGI\",\"highlighted\":\"EntitiesTable-styles-highlighted--GHk6T\",\"highlightAnimate\":\"EntitiesTable-styles-highlightAnimate--oR7ki\",\"inactiveBackground\":\"EntitiesTable-styles-inactiveBackground--nAfS3\",\"inactiveHoverBackground\":\"EntitiesTable-styles-inactiveHoverBackground--qe__Y\",\"inactiveSelectedBackground\":\"EntitiesTable-styles-inactiveSelectedBackground--WkWtD\",\"inactiveSelectedHoverBackground\":\"EntitiesTable-styles-inactiveSelectedHoverBackground--oFAbX\",\"textOverflow\":\"EntitiesTable-styles-textOverflow--AAABW\",\"textOverflowInactive\":\"EntitiesTable-styles-textOverflowInactive--eU4xE\",\"link\":\"EntitiesTable-styles-link--JNCz5\",\"defaultWrapper\":\"EntitiesTable-styles-defaultWrapper--EP4tA\",\"table\":\"EntitiesTable-styles-table--jmlbo\",\"imageWrapper\":\"EntitiesTable-styles-imageWrapper--xmq8R\",\"blobWrapper\":\"EntitiesTable-styles-blobWrapper--ruHVs\",\"highlightAnimateForEllipsis\":\"EntitiesTable-styles-highlightAnimateForEllipsis--r1Fmq\",\"referenceWrapper\":\"EntitiesTable-styles-referenceWrapper--Q5RqZ\",\"referenceContent\":\"EntitiesTable-styles-referenceContent--wkahK\",\"referenceIcon\":\"EntitiesTable-styles-referenceIcon--b8M3n\",\"nestedCellWrapper\":\"EntitiesTable-styles-nestedCellWrapper--I4J6A\",\"nestedAttributeWrapper\":\"EntitiesTable-styles-nestedAttributeWrapper--dvfn3\",\"profileWrapper\":\"EntitiesTable-styles-profileWrapper--lGPma\",\"entityAvatar\":\"EntitiesTable-styles-entityAvatar--GiuUS\",\"entityAvatarImage\":\"EntitiesTable-styles-entityAvatarImage--UHIRm\",\"entityLabel\":\"EntitiesTable-styles-entityLabel--OyjLV\",\"scores\":\"EntitiesTable-styles-scores--RqsDU\",\"dragColumnHead\":\"EntitiesTable-styles-dragColumnHead--oDlFz\",\"dragColumnBody\":\"EntitiesTable-styles-dragColumnBody--_HZDV\",\"draggableHeadCell\":\"EntitiesTable-styles-draggableHeadCell--DbfHi\",\"cellWrapper\":\"EntitiesTable-styles-cellWrapper--dUWGQ\",\"entityButtons\":\"EntitiesTable-styles-entityButtons--tYSvC\",\"selectedEntityButtons\":\"EntitiesTable-styles-selectedEntityButtons--mZJfv\",\"justImportedEntityButtons\":\"EntitiesTable-styles-justImportedEntityButtons--q5bPw\",\"highlightedEntityButtons\":\"EntitiesTable-styles-highlightedEntityButtons--PvzNM\"};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {EntityAvatar, EntityUriLink} from '@reltio/components';\nimport {getEntityUriForLink, getLabel} from '@reltio/mdm-sdk';\n\nimport classNames from 'classnames';\nimport styles from '../styles.less';\n\nconst EntityProfileRenderer = ({value: entity = {}}) => {\n const label = getLabel(entity.label);\n return (\n <div className={classNames(styles.defaultWrapper, styles.profileWrapper)}>\n <EntityAvatar\n avatarClassName={styles.entityAvatar}\n imageClassName={styles.entityAvatarImage}\n entity={entity}\n />\n <EntityUriLink value={getEntityUriForLink(entity)} className={styles.entityLabel}>\n {label}\n </EntityUriLink>\n </div>\n );\n};\n\nEntityProfileRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default EntityProfileRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {DataTypeValue} from '@reltio/components';\nimport styles from '../styles.less';\n\nconst DefaultRenderer = ({value, columnData: {dataTypeDefinition}}) => {\n return (\n <div className={styles.defaultWrapper}>\n {dataTypeDefinition ? <DataTypeValue value={value} dataTypeDefinition={dataTypeDefinition} /> : value}\n </div>\n );\n};\n\nDefaultRenderer.propTypes = {\n value: PropTypes.any,\n columnData: PropTypes.object\n};\n\nexport default DefaultRenderer;\n","import {getAbsoluteImageUrl, getEntityTypeGraphIcon} from '@reltio/mdm-sdk';\nimport {getApiPath, getImagePath} from '../../utils/config';\nimport {Metadata} from '@reltio/mdm-sdk';\n\nconst getAbsoluteImagePath = (path: string): string => getAbsoluteImageUrl(getImagePath() || getApiPath(), path);\n\nexport const getTypeGraphIcon = (metadata: Metadata, entityTypeUri: string): string => {\n const entityTypeGraphIcon = getEntityTypeGraphIcon(metadata, {type: entityTypeUri});\n return getAbsoluteImagePath(entityTypeGraphIcon);\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {useSelector} from 'react-redux';\n\nimport classnames from 'classnames';\nimport {getTypeGraphIcon} from '../../../services/entity/image';\nimport styles from '../styles.less';\nimport {AvatarWithFallback, EntityUriLink} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {getLabel} from '@reltio/mdm-sdk';\n\nconst ReferenceRenderer = ({value}) => {\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n return (\n value && (\n <div className={classnames(styles.defaultWrapper, styles.referenceWrapper)}>\n <AvatarWithFallback\n className={styles.referenceIcon}\n icon={getTypeGraphIcon(metadata, value.refEntity.type)}\n />\n <EntityUriLink value={value.refEntity.objectURI} className={styles.referenceContent}>\n {getLabel(value.label)}\n </EntityUriLink>\n </div>\n )\n );\n};\n\nReferenceRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default ReferenceRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from '../styles.less';\n\nconst stopPropagation = (event) => {\n event.stopPropagation();\n};\n\nconst BlobRenderer = (props) => {\n const {value} = props;\n return (\n <div className={styles.blobWrapper} onScroll={stopPropagation}>\n {value}\n </div>\n );\n};\n\nBlobRenderer.propTypes = {\n value: PropTypes.any\n};\n\nexport default BlobRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getImageAttributeOvThumbnailUrl} from '@reltio/mdm-sdk';\nimport styles from '../styles.less';\n\nconst ImageRenderer = ({value}) => {\n const src = getImageAttributeOvThumbnailUrl({value});\n return (\n src && (\n <div className={styles.imageWrapper}>\n <img src={src} />\n </div>\n )\n );\n};\n\nImageRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default ImageRenderer;\n","import {path} from 'ramda';\n\nimport EntityProfileRenderer from './EntityProfileRenderer';\nimport DefaultRenderer from './DefaultRenderer';\nimport ReferenceRenderer from './ReferenceRenderer';\nimport BlobRenderer from './BlobRenderer';\nimport ImageRenderer from './ImageRenderer';\n\nconst getAttributeValueRenderer = (columnInfo) => {\n if (columnInfo.id === 'label') {\n return EntityProfileRenderer;\n }\n\n switch (path(['attrType', 'type'], columnInfo)) {\n case 'Reference':\n return ReferenceRenderer;\n case 'Blob':\n return BlobRenderer;\n case 'Image':\n return ImageRenderer;\n }\n\n return DefaultRenderer;\n};\n\nexport default getAttributeValueRenderer;\n","import HeadCellRenderer, {HeadCellRendererWithCheckbox} from './HeadCellRenderer/HeadCellRenderer';\nimport {assoc, pipe, prop, reduce, split} from 'ramda';\nimport {getAttrDataTypeDefinition, getEntityId, getOvAttributeValuesByPath} from '@reltio/mdm-sdk';\nimport getAttributeValueRenderer from './AttributeRenderers/getAttributeValueRenderer';\nimport {isAttributeSearchUri} from '@reltio/mdm-sdk';\n\nconst getAttrPathFromColumnId = split('.');\n\nconst getRowValueForColumn = (metadata, columnData, entity) => {\n switch (columnData.id) {\n case 'label':\n return entity;\n case 'entityId':\n return getEntityId(entity);\n default: {\n const [attrSource, ...attrPath] = getAttrPathFromColumnId(columnData.id);\n return pipe(prop(attrSource), getOvAttributeValuesByPath(attrPath))(entity);\n }\n }\n};\n\nexport const getBasicTableRowsData = (metadata, headColumns, entities) => {\n return entities.map((entity) => {\n return pipe(\n reduce(\n (acc, columnData) => assoc(columnData.id, getRowValueForColumn(metadata, columnData, entity), acc),\n {}\n ),\n assoc('rawValue', entity)\n )(headColumns);\n });\n};\n\nconst NOT_SORTABLE_COLUMN_IDS = ['entityId'];\nconst isSortableColumn = (column) => !NOT_SORTABLE_COLUMN_IDS.includes(column.id);\n\nconst getNestedPathByColumnId = (columnId) => {\n if (isAttributeSearchUri(columnId)) {\n const [, ...attrPath] = getAttrPathFromColumnId(columnId);\n return attrPath.length > 1 ? attrPath.slice(0, -1) : null;\n } else {\n return null;\n }\n};\n\nexport const getBasicTableColumnsData = (headColumns, sortingEnabled = true) => {\n return headColumns.map(({attrType, ...column}, i) => {\n const isFirstColumn = i === 0;\n return {\n ...column,\n dataTypeDefinition: attrType && getAttrDataTypeDefinition(attrType),\n resizable: true,\n autoResize: column.autoResize ?? !isFirstColumn,\n draggable: !isFirstColumn,\n sortable: sortingEnabled && isSortableColumn(column),\n nestedPath: getNestedPathByColumnId(column.id),\n headCellRenderer: isFirstColumn ? HeadCellRendererWithCheckbox : HeadCellRenderer,\n rowCellValueRenderer: getAttributeValueRenderer({...column, attrType})\n };\n });\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {ImportModes, withTableContext} from '@reltio/components';\nimport EntityRowButtons from '../../EntityRowButtons/EntityRowButtons';\n\nimport classnames from 'classnames';\nimport styles from '../styles.less';\n\nconst EntityRowOverlay = ({\n entity,\n isSelectedEntity,\n isHighlightedEntity,\n entityImportStatus,\n onEntityImportStatusChange\n}) => {\n return (\n <div\n className={classnames(styles.entityButtons, {\n [styles.selectedEntityButtons]: isSelectedEntity,\n [styles.justImportedEntityButtons]: entityImportStatus === ImportModes.SUCCESS,\n [styles.highlightedEntityButtons]: isHighlightedEntity\n })}\n >\n <EntityRowButtons\n entity={entity}\n entityImportStatus={entityImportStatus}\n onEntityImportStatusChange={onEntityImportStatusChange}\n />\n </div>\n );\n};\n\nEntityRowOverlay.propTypes = {\n entity: PropTypes.object,\n isSelectedEntity: PropTypes.bool,\n isHighlightedEntity: PropTypes.bool,\n entityImportStatus: PropTypes.oneOf(Object.values(ImportModes)),\n onEntityImportStatusChange: PropTypes.func\n};\n\nexport default withTableContext(\n (\n {entitiesImportStatus, onEntityImportStatusChange, selectedEntityUri, highlightedEntityIndex},\n {entity, rowIndex}\n ) => {\n const entityImportStatus = entity && entitiesImportStatus[entity.uri];\n return {\n entityImportStatus,\n onEntityImportStatusChange,\n isSelectedEntity: selectedEntityUri === entity.uri,\n isHighlightedEntity: highlightedEntityIndex === rowIndex\n };\n }\n)(EntityRowOverlay);\n","import {lighten, makeStyles} from '@material-ui/core/styles';\n\nconst commonCellWrapperStyles = {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n};\n\nexport const useStyles = makeStyles((theme) => ({\n inactiveCell: {\n background: theme.inactiveBackground,\n ...commonCellWrapperStyles,\n '&$selectedRowCell': {\n background: theme.inactiveSelectedBackground\n }\n },\n selectedRowCell: {\n background: lighten(theme.palette.primary.main, 0.88),\n ...commonCellWrapperStyles\n },\n clickable: {\n cursor: 'pointer',\n ...commonCellWrapperStyles\n },\n justImported: {\n backgroundColor: '#FFFBEB !important',\n ...commonCellWrapperStyles\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {isActiveObject} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst withCellDecorationPropTypes = {\n entity: PropTypes.object,\n isSelected: PropTypes.bool,\n onEntityClick: PropTypes.func,\n isJustImported: PropTypes.bool\n};\n\nconst withCellDecoration = (Component) => {\n const WithCellDecoration = (componentProps) => {\n const styles = useStyles();\n const {\n rowValue: {rawValue: entity},\n isSelected,\n onEntityClick,\n isJustImported\n } = componentProps;\n const onCellClick = onEntityClick ? () => onEntityClick(entity.uri) : undefined;\n const isInactive = entity && !isActiveObject(entity);\n\n return onCellClick || isInactive || isSelected || isJustImported ? (\n <div\n className={classnames(\n {[styles.inactiveCell]: isInactive},\n {inactiveCell: isInactive},\n {[styles.selectedRowCell]: isSelected},\n {selectedRowCell: isSelected},\n {[styles.clickable]: !!onCellClick},\n {[styles.justImported]: isJustImported},\n {justImported: isJustImported}\n )}\n onClick={onCellClick}\n >\n <Component {...componentProps} />\n </div>\n ) : (\n <Component {...componentProps} />\n );\n };\n\n WithCellDecoration.propTypes = withCellDecorationPropTypes;\n\n return WithCellDecoration;\n};\n\nexport default withCellDecoration;\nexport {withCellDecorationPropTypes};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n checkboxWrapper: {\n display: 'flex',\n alignItems: 'center'\n },\n checkbox: {\n marginRight: '-8px',\n marginLeft: '11px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {Checkbox as Checkbox} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\nconst withCheckboxPropTypes = {\n onCheck: PropTypes.func,\n isChecked: PropTypes.bool,\n hasCheckbox: PropTypes.bool\n};\n\nconst withCheckbox = (Component) => {\n const WithCheckbox = (componentProps) => {\n const styles = useStyles();\n const {onCheck, isChecked, hasCheckbox, ...restProps} = componentProps;\n const {\n rowValue: {rawValue: entity}\n } = restProps;\n\n return hasCheckbox ? (\n <div className={classnames(styles.checkboxWrapper, 'cellWithCheckbox')}>\n <Checkbox\n className={styles.checkbox}\n checked={isChecked}\n onClick={(e) => e.stopPropagation()}\n onChange={(e) => onCheck(entity.uri, e.target.checked)}\n />\n <Component {...restProps} />\n </div>\n ) : (\n <Component {...restProps} />\n );\n };\n\n WithCheckbox.propTypes = withCheckboxPropTypes;\n\n return WithCheckbox;\n};\n\nexport default withCheckbox;\nexport {withCheckboxPropTypes};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n collapser: {\n marginLeft: '-2px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {useStyles} from './styles';\n\nimport {CollapseRowButton} from '@reltio/components';\n\nconst withCollapseButtonPropTypes = {\n hasCollapseButton: PropTypes.bool\n};\nconst withCollapseButton = (Component) => {\n const WithCollapseButton = (componentProps) => {\n const styles = useStyles();\n const {hasCollapseButton, ...restProps} = componentProps;\n const {rowValue, rowIndex} = restProps;\n\n return hasCollapseButton ? (\n <div className={'cellWithCollapser'}>\n <CollapseRowButton className={styles.collapser} rowIndex={rowIndex} rowValue={rowValue} />\n <Component {...restProps} />\n </div>\n ) : (\n <Component {...restProps} />\n );\n };\n\n WithCollapseButton.propTypes = withCollapseButtonPropTypes;\n\n return WithCollapseButton;\n};\n\nexport default withCollapseButton;\nexport {withCollapseButtonPropTypes};\n","import {defaultRenderRowCell, ImportModes, withTableContext} from '@reltio/components';\nimport withCellDecoration from './HOCs/withCellDecoration/withCellDecoration';\nimport withCheckbox from './HOCs/withCheckbox/withCheckbox';\nimport withCollapseButton from './HOCs/withCollapseButton/withCollapseButton';\nimport {pipe} from 'ramda';\n\nexport default pipe(\n withCollapseButton,\n withCheckbox,\n withCellDecoration,\n withTableContext(\n (\n {onEntityClick, selectedEntityUri, entitiesImportStatus, canCheck, onCheck, checkedEntitiesUris},\n {rowValue, columnIndex}\n ) => {\n const {rawValue: entity} = rowValue;\n const isFirstColumn = columnIndex === 0;\n return {\n onCheck,\n isChecked: checkedEntitiesUris && checkedEntitiesUris.includes(entity.uri),\n hasCheckbox: canCheck && isFirstColumn,\n hasCollapseButton: isFirstColumn,\n isSelected: selectedEntityUri === entity.uri,\n isJustImported: entitiesImportStatus[entity.uri] === ImportModes.SUCCESS,\n onEntityClick\n };\n }\n )\n)(defaultRenderRowCell);\n","import {path} from 'ramda';\n\nexport const REFERENCE_HEIGHT = 28;\nexport const BLOB_HEIGHT = 100;\nexport const IMAGE_HEIGHT = 76;\nconst PADDING = 17;\n\nexport const getAttributeHeight = ({columnData, cell}) => {\n const countAttributes = cell.values.length;\n const defaultHeight = 28 * Math.max(countAttributes, 1) + 20;\n\n if (!countAttributes) {\n return defaultHeight;\n }\n\n switch (path(['dataTypeDefinition', 'type'], columnData)) {\n case 'Reference':\n return REFERENCE_HEIGHT * countAttributes + PADDING;\n case 'Blob':\n return BLOB_HEIGHT * countAttributes;\n case 'Image':\n return IMAGE_HEIGHT * countAttributes + PADDING;\n default:\n return defaultHeight;\n }\n};\n","import React, {forwardRef, memo, useCallback, useImperativeHandle, useMemo, useRef, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport {path, prop, propEq} from 'ramda';\nimport {SORT_DIRECTION_ASC, SORT_DIRECTION_DESC} from 'react-components/dist/Table/Table';\nimport {BasicTable} from '@reltio/components';\nimport {getBasicTableColumnsData, getBasicTableRowsData} from './entitiesTableUtils';\nimport EntityRowOverlay from './EntityRowOverlay/EntityRowOverlay';\nimport RowCellRenderer from './RowCellRenderer/RowCellRenderer';\nimport {getAttributeHeight} from './AttributeRenderers/heightCalculator';\n\nimport styles from './styles.less';\nimport mdmModule from '@reltio/mdm-module';\n\nexport const MAX_LENGTH_VALUE = 2;\nexport const DEFAULT_ROW_HEIGHT = 48;\nexport const HEAD_ROW_HEIGHT = 50;\nexport const DEFAULT_COLUMN_WIDTH = 250;\nexport const DEFAULT_COLUMN_MIN_WIDTH = 100;\nexport const RESIZE_DEBOUNCE_DELAY = 150;\n\nconst EntitiesTable = forwardRef(\n (\n {\n headColumns,\n entities,\n entityToHighlight,\n selectedEntityUri,\n onReorderingColumn,\n dndColumnReorderingEnabled,\n columnsSize,\n onChangeColumnsSize,\n onScroll,\n onSort,\n sortField,\n sortOrder,\n onEntityHover,\n onEntityClick,\n entitiesImportStatus,\n onEntityImportStatusChange,\n logger,\n canCheck,\n checkedEntitiesUris,\n headerCheckboxState,\n onCheck,\n openConfigColumnPopup,\n resizeDebounceDelay\n },\n ref\n ) => {\n const tableClasses = useMemo(\n () => ({\n highlightRow: 'highlightedSelector',\n dragColumnHead: styles.dragColumnHead,\n dragColumnBody: styles.dragColumnBody,\n draggableHeadCell: styles.draggableHeadCell,\n cellWrapper: styles.cellWrapper\n }),\n []\n );\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const [hoverRowIndex, setHoverRowIndex] = useState(null);\n const handleRowHover = useCallback(\n (hoverRowIndex) => {\n setHoverRowIndex(hoverRowIndex);\n if (onEntityHover) {\n onEntityHover(path([hoverRowIndex, 'uri'], entities));\n }\n },\n [onEntityHover, entities]\n );\n\n const tableRef = useRef();\n useImperativeHandle(ref, () => ({\n resetScrollbarPosition: () => {\n tableRef.current && tableRef.current.resetScrollbarPosition({resetLeft: false});\n }\n }));\n\n const handleSort = useCallback(\n (field) => {\n if (!sortOrder || field !== sortField) {\n onSort({field, order: SORT_DIRECTION_ASC});\n } else if (sortOrder === SORT_DIRECTION_ASC) {\n onSort({field, order: SORT_DIRECTION_DESC});\n } else {\n onSort({field});\n }\n },\n [onSort, sortField, sortOrder]\n );\n\n const renderRowOverlay = useCallback(\n (rowIndex) => {\n const entity = prop(rowIndex, entities);\n return entity ? <EntityRowOverlay entity={entity} rowIndex={rowIndex} /> : null;\n },\n [entities]\n );\n\n const renderRowCell = useCallback((props) => {\n return <RowCellRenderer {...props} />;\n }, []);\n\n const hoverStateEnabled = !!onEntityHover;\n const sortingEnabled = !!onSort;\n\n const columnsData = useMemo(\n () => getBasicTableColumnsData(headColumns, sortingEnabled),\n [headColumns, sortingEnabled]\n );\n const rowsData = useMemo(\n () => getBasicTableRowsData(metadata, headColumns, entities),\n [metadata, headColumns, entities]\n );\n\n const highlightedEntityIndex = entityToHighlight ? entities.findIndex(propEq('uri', entityToHighlight)) : -1;\n\n const tableContext = useMemo(\n () => ({\n onEntityClick,\n selectedEntityUri,\n highlightedEntityIndex,\n entitiesImportStatus,\n onEntityImportStatusChange,\n canCheck,\n checkedEntitiesUris,\n headerCheckboxState,\n onCheck,\n openConfigColumnPopup\n }),\n [\n checkedEntitiesUris,\n entitiesImportStatus,\n headerCheckboxState,\n highlightedEntityIndex,\n canCheck,\n onCheck,\n onEntityClick,\n onEntityImportStatusChange,\n selectedEntityUri,\n openConfigColumnPopup\n ]\n );\n\n return (\n <BasicTable\n fixFirstColumn={true}\n onScroll={onScroll}\n rowsData={rowsData}\n columnsData={columnsData}\n onSort={handleSort}\n highlightRow={highlightedEntityIndex !== -1 ? highlightedEntityIndex : null}\n ref={tableRef}\n sortFieldClassName={styles.sortableCell}\n containerClassName={styles.table}\n classes={tableClasses}\n defaultColumnWidth={DEFAULT_COLUMN_WIDTH}\n headRowHeight={HEAD_ROW_HEIGHT}\n defaultColumnMinWidth={DEFAULT_COLUMN_MIN_WIDTH}\n defaultRowHeight={DEFAULT_ROW_HEIGHT}\n sorting={{\n field: sortField,\n order: sortOrder\n }}\n dndColumnReorderingHandler={onReorderingColumn}\n dndColumnReorderingEnabled={dndColumnReorderingEnabled}\n onChangeColumnsSize={onChangeColumnsSize}\n columnsSize={columnsSize}\n resizeDebounceDelay={resizeDebounceDelay ?? RESIZE_DEBOUNCE_DELAY}\n onRowHover={hoverStateEnabled ? handleRowHover : undefined}\n hoverStateEnabled={hoverStateEnabled}\n hoverRowIndex={hoverRowIndex}\n renderRowOverlay={renderRowOverlay}\n logger={logger}\n context={tableContext}\n maxRowValuesCount={MAX_LENGTH_VALUE}\n renderRowCell={renderRowCell}\n getRowCellHeight={getAttributeHeight}\n />\n );\n }\n);\n\nEntitiesTable.propTypes = {\n entities: PropTypes.array,\n entityToHighlight: PropTypes.string,\n selectedEntityUri: PropTypes.string,\n headColumns: PropTypes.array,\n columnsSize: PropTypes.array,\n onScroll: PropTypes.func,\n onSort: PropTypes.func,\n onReorderingColumn: PropTypes.func,\n onChangeColumnsSize: PropTypes.func,\n dndColumnReorderingEnabled: PropTypes.bool,\n onEntityClick: PropTypes.func,\n onEntityHover: PropTypes.func,\n sortField: PropTypes.string,\n sortOrder: PropTypes.oneOf([SORT_DIRECTION_ASC, SORT_DIRECTION_DESC]),\n entitiesImportStatus: PropTypes.object,\n onEntityImportStatusChange: PropTypes.func,\n logger: PropTypes.func,\n canCheck: PropTypes.bool,\n checkedEntitiesUris: PropTypes.arrayOf(PropTypes.string),\n headerCheckboxState: PropTypes.oneOf([true, false, null]),\n onCheck: PropTypes.func,\n openConfigColumnPopup: PropTypes.func,\n resizeDebounceDelay: PropTypes.number\n};\n\nEntitiesTable.defaultProps = {\n entities: [],\n headColumns: []\n};\n\nEntitiesTable.displayName = 'EntitiesTable';\n\nexport default memo(EntitiesTable);\n","import React from 'react';\nimport PropTypes from 'prop-types';\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 const INSERT_LEFT = 'left';\nexport const INSERT_RIGHT = 'right';\nexport const HIDE = 'hide';\n\nconst TEXT = {\n [INSERT_LEFT]: i18n.text('Insert 1 left'),\n [INSERT_RIGHT]: i18n.text('Insert 1 right'),\n [HIDE]: i18n.text('Hide column')\n};\n\nconst renderListItem = (action, handler, index) => (\n <ListItem button component={'div'} key={index} onClick={handler}>\n <ListItemText primary={TEXT[action]} primaryTypographyProps={{variant: 'body2'}} />\n </ListItem>\n);\n\nconst ConfigColumnPopup = ({open, anchorEl, onClick, onClose, actions}) => {\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\nConfigColumnPopup.propTypes = {\n open: PropTypes.bool,\n anchorEl: PropTypes.any,\n onClick: PropTypes.func,\n onClose: PropTypes.func,\n actions: PropTypes.array\n};\n\nexport default ConfigColumnPopup;\n","import EntitiesTable from '../EntitiesTable/EntitiesTable';\nimport React from 'react';\nimport {ConfigureColumnsPopup} from '@reltio/components';\nimport * as i18n from 'ui-i18n';\nimport ConfigColumnPopup, {HIDE, INSERT_LEFT, INSERT_RIGHT} from './ConfigColumnPopup/ConfigColumnPopup';\nimport PropTypes from 'prop-types';\nimport {SORT_DIRECTION_ASC, SORT_DIRECTION_DESC} from 'react-components/dist/Table/Table';\nimport {memoizeWith, pick, toString} from 'ramda';\nimport {envSpecificKey} from '../../utils/general';\n\nclass EntitiesTableWithConfigurableColumns extends React.PureComponent {\n state = {\n addColumnPopupOpen: false,\n configColumnPopupOpen: false,\n configurableColumnIndex: false,\n popupAnchor: null,\n filterText: ''\n };\n\n addColumnHandler = (data) => {\n const {newColumnPlaceIndex} = this.state;\n const {onChangeColumnsList, headColumns} = this.props;\n const columns = headColumns.slice();\n columns.splice(newColumnPlaceIndex, 0, data);\n onChangeColumnsList({columns});\n this.closeAddColumnPopup();\n };\n\n openAddColumnPopup = ({newColumnPlaceIndex}) => {\n this.setState({newColumnPlaceIndex, configColumnPopupOpen: false, addColumnPopupOpen: true});\n };\n\n closeAddColumnPopup = () => {\n this.setState({popupAnchor: null, addColumnPopupOpen: false, filterText: ''});\n };\n\n setFilterText = (filterText) => {\n this.setState({filterText});\n };\n\n openConfigColumnPopup = (event) => {\n this.setState({\n popupAnchor: event.currentTarget,\n configColumnPopupOpen: true,\n configurableColumnIndex: parseInt(event.currentTarget.getAttribute('data-column-index'))\n });\n };\n\n closeConfigColumnPopup = () => {\n this.setState({configColumnPopupOpen: false});\n };\n\n configColumnHandler = (action) => {\n const {configurableColumnIndex} = this.state;\n switch (action) {\n case INSERT_LEFT:\n this.openAddColumnPopup({newColumnPlaceIndex: configurableColumnIndex});\n break;\n case INSERT_RIGHT:\n this.openAddColumnPopup({newColumnPlaceIndex: configurableColumnIndex + 1});\n break;\n case HIDE:\n this.hideCurrentConfigColumn();\n break;\n }\n };\n\n hideCurrentConfigColumn = () => {\n const {configurableColumnIndex} = this.state;\n const {onChangeColumnsList, headColumns} = this.props;\n const columns = headColumns.slice();\n columns.splice(configurableColumnIndex, 1);\n onChangeColumnsList({columns});\n this.closeConfigColumnPopup();\n };\n\n static getColumnSizeFromHeadColumns(headColumns) {\n return headColumns.map((column) => ({\n id: column.id,\n size: column.size\n }));\n }\n\n static getMemoIdForColumnSize(headColumns, entityTypeUri, envSpecificKey) {\n return `${envSpecificKey}${entityTypeUri}${toString(\n headColumns.map((columns) => pick(['id', 'size'], columns))\n )}`;\n }\n\n memoizedGetColumnSize = memoizeWith(\n EntitiesTableWithConfigurableColumns.getMemoIdForColumnSize,\n EntitiesTableWithConfigurableColumns.getColumnSizeFromHeadColumns\n );\n\n render() {\n const {\n entities,\n entityToHighlight,\n selectedEntityUri,\n onScroll,\n headColumns,\n sortField,\n sortOrder,\n dndColumnReorderingEnabled,\n onEntityClick,\n onEntityHover,\n entitiesTableRef,\n additionalColumns,\n onChangeColumnsList,\n onReorderingColumn,\n onSort,\n onChangeColumnsSize,\n entityTypeUri,\n entitiesImportStatus = {},\n onEntityImportStatusChange,\n logger,\n canCheck,\n checkedEntitiesUris,\n headerCheckboxState,\n onCheck,\n resizeDebounceDelay\n } = this.props;\n\n const {addColumnPopupOpen, configColumnPopupOpen, popupAnchor, filterText, configurableColumnIndex} =\n this.state;\n\n const columnsSize = this.memoizedGetColumnSize(headColumns, entityTypeUri, envSpecificKey());\n return (\n <>\n <EntitiesTable\n entities={entities}\n entityToHighlight={entityToHighlight}\n selectedEntityUri={selectedEntityUri}\n onScroll={onScroll}\n onSort={onSort}\n onEntityClick={onEntityClick}\n onEntityHover={onEntityHover}\n headColumns={headColumns}\n sortField={sortField}\n sortOrder={sortOrder}\n onReorderingColumn={onReorderingColumn}\n ref={entitiesTableRef}\n onChangeColumnsList={onChangeColumnsList}\n dndColumnReorderingEnabled={dndColumnReorderingEnabled}\n onChangeColumnsSize={onChangeColumnsSize}\n columnsSize={columnsSize}\n entitiesImportStatus={entitiesImportStatus}\n onEntityImportStatusChange={onEntityImportStatusChange}\n logger={logger}\n canCheck={canCheck}\n checkedEntitiesUris={checkedEntitiesUris}\n headerCheckboxState={headerCheckboxState}\n onCheck={onCheck}\n openConfigColumnPopup={this.openConfigColumnPopup}\n resizeDebounceDelay={resizeDebounceDelay}\n />\n <ConfigureColumnsPopup\n open={addColumnPopupOpen}\n anchorEl={popupAnchor}\n data={additionalColumns}\n onListItemClick={this.addColumnHandler}\n filterText={filterText}\n onClose={this.closeAddColumnPopup}\n onSearch={this.setFilterText}\n hideCheckBox={true}\n titleText={i18n.text('Add column')}\n />\n <ConfigColumnPopup\n onClick={this.configColumnHandler}\n onClose={this.closeConfigColumnPopup}\n anchorEl={popupAnchor}\n open={configColumnPopupOpen}\n actions={configurableColumnIndex > 0 ? [INSERT_LEFT, INSERT_RIGHT, HIDE] : [INSERT_RIGHT]}\n />\n </>\n );\n }\n\n static propTypes = {\n entities: PropTypes.array,\n entityToHighlight: PropTypes.string,\n selectedEntityUri: PropTypes.string,\n entityTypeUri: PropTypes.string,\n headColumns: PropTypes.array,\n dndColumnReorderingEnabled: PropTypes.bool,\n onScroll: PropTypes.func,\n onSort: PropTypes.func,\n onReorderingColumn: PropTypes.func,\n onChangeColumnsSize: PropTypes.func,\n onChangeColumnsList: PropTypes.func,\n onEntityClick: PropTypes.func,\n onEntityHover: PropTypes.func,\n sortField: PropTypes.string,\n sortOrder: PropTypes.oneOf([SORT_DIRECTION_ASC, SORT_DIRECTION_DESC]),\n entitiesTableRef: PropTypes.shape({\n current: PropTypes.shape({\n resetScrollbarPosition: PropTypes.func\n })\n }),\n additionalColumns: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string\n })\n ),\n entitiesImportStatus: PropTypes.object,\n onEntityImportStatusChange: PropTypes.func,\n logger: PropTypes.func,\n canCheck: PropTypes.bool,\n checkedEntitiesUris: PropTypes.arrayOf(PropTypes.string),\n headerCheckboxState: PropTypes.oneOf([true, false, null]),\n onCheck: PropTypes.func\n };\n}\n\nexport default EntitiesTableWithConfigurableColumns;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport mdmModule from '@reltio/mdm-module';\nimport {EntityType, importEntityFromDataTenant} from '@reltio/mdm-sdk';\nimport {showImportFromDataTenantError} from '../../utils/error';\nimport {ImportButton, ImportModes} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {values} from 'ramda';\n\nconst ImportEntityButton = ({entity, importStatus, onImportStatusChange, hideDelay = 3000, ...otherProps}) => {\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const tenant = useSelector(mdmModule.selectors.getTenant);\n\n return (\n <ImportButton\n {...otherProps}\n mode={importStatus}\n tooltip={i18n.text('Import this record')}\n onClick={(e) => {\n e.stopPropagation();\n onImportStatusChange(ImportModes.PROGRESS);\n importEntityFromDataTenant({\n dtssPath,\n customerTenant: tenant,\n entity\n })\n .then(({success, uris}) => {\n if (success) {\n entity.ctSubscribedUris = uris;\n onImportStatusChange(ImportModes.SUCCESS);\n setTimeout(() => onImportStatusChange(ImportModes.DONE), hideDelay);\n } else {\n throw new Error('Failed to import entity');\n }\n })\n .catch(() => {\n onImportStatusChange(ImportModes.INIT);\n showImportFromDataTenantError();\n });\n }}\n />\n );\n};\n\nImportEntityButton.propTypes = {\n entity: EntityType,\n importStatus: PropTypes.oneOf(values(ImportModes)),\n onImportStatusChange: PropTypes.func,\n hideDelay: PropTypes.number\n};\n\nexport default ImportEntityButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n importButtonPlaceholder: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 10px',\n width: '24px',\n flexShrink: 0,\n position: 'relative'\n }\n});\n","import React from 'react';\nimport {useSelector} from 'react-redux';\n\nimport ImportEntityButton from '../ImportEntityButton/ImportEntityButton';\nimport {\n checkCanImportEntityOfType,\n getEntityType,\n isDataTenantEntity,\n isEntityImportedToCT,\n Metadata,\n Entity\n} from '@reltio/mdm-sdk';\nimport {ImportModes} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n entityImportStatus: ImportModes;\n onEntityImportStatusChange: (uri: string, status: ImportModes) => void;\n};\n\nexport const EntityRowButtons = ({entity, entityImportStatus, onEntityImportStatusChange}: Props) => {\n const styles = useStyles();\n\n const metadata: Metadata = useSelector(mdmModule.selectors.getMetadata);\n const canImportFromDataTenant: boolean = useSelector(mdmModule.selectors.getCanUserImportEntitiesFromDT);\n const canImport = isDataTenantEntity(entity) && canImportFromDataTenant;\n const entityType = getEntityType(metadata, entity.type);\n const canImportEntity = checkCanImportEntityOfType(entityType) && !isEntityImportedToCT(entity);\n const isImportInProgress = entityImportStatus && entityImportStatus !== ImportModes.DONE;\n const showImportButton = isImportInProgress || canImportEntity;\n\n return (\n <>\n {canImport && (\n <div className={styles.importButtonPlaceholder}>\n {showImportButton && (\n <ImportEntityButton\n entity={entity}\n importStatus={entityImportStatus}\n onImportStatusChange={(status) => onEntityImportStatusChange(entity.uri, status)}\n />\n )}\n </div>\n )}\n </>\n );\n};\n\nexport default EntityRowButtons;\n","import {makeStyles} from '@material-ui/core/styles';\nimport {READABLE_QUERY_PRIMITIVE_TYPES} from '@reltio/mdm-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n query: {\n color: theme.palette.text.secondary,\n fontSize: '12px',\n letterSpacing: 0,\n lineHeight: '16px'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.entityTypeLabel]: {\n color: '#03904A'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.attributeLabel]: {\n color: '#059BEA'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.specialAttributeLabel]: {\n color: '#EA05CF'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.attributeFilter]: {\n color: '#7F00FF'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.attributeValue]: {\n color: '#000000'\n }\n}));\n\nexport {useStyles};\n","import React, {forwardRef} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst ReadableSearchQuery = forwardRef(({readableQuery = [], className, ...otherProps}, ref) => {\n const styles = useStyles();\n return (\n <span ref={ref} className={classnames(styles.query, className)} {...otherProps}>\n {readableQuery.map(({type, text}, i) => (\n <span key={i} className={styles[type]}>\n {text}\n </span>\n ))}\n </span>\n );\n});\n\nReadableSearchQuery.displayName = 'ReadableSearchQuery';\n\nReadableSearchQuery.propTypes = {\n readableQuery: PropTypes.array,\n className: PropTypes.string\n};\n\nexport default ReadableSearchQuery;\n","export default {\n UPDATE_ENTITIES: 'SEARCH_UPDATE_ENTITIES',\n UPDATE_URL: 'SEARCH_UPDATE_URL',\n CLEAR_RESULTS: 'SEARCH_CLEAR_RESULTS',\n REFRESH_DISPLAYED_ENTITIES: 'SEARCH_REFRESH_DISPLAYED_ENTITIES',\n REFRESH: 'SEARCH_REFRESH',\n CLEAR_ALL: 'SEARCH_CLEAR_ALL',\n SHOW_MORE_RESULTS_FOR_ENTITY_TYPE: 'SEARCH_SHOW_MORE_RESULTS_FOR_ENTITY_TYPE',\n UPDATE_TOTAL: 'SEARCH_UPDATE_TOTAL',\n CHANGE_PAGE: 'SEARCH_CHANGE_PAGE',\n RESET_PAGE: 'SEARCH_RESET_PAGE',\n CHANGE_ROWS_PER_PAGE: 'SEARCH_CHANGE_ROWS_PER_PAGE',\n CHANGE_SORT: 'SEARCH_CHANGE_SORT',\n CHANGE_LOADING: 'SEARCH_CHANGE_LOADING',\n MAP_CHANGE_VALUE: 'SEARCH_MAP_CHANGE_VALUE',\n STATE_UPDATED: 'SEARCH_STATE_UPDATED',\n EXPORT_RESULTS: 'SEARCH_EXPORT_RESULTS',\n OPEN_DATA_LOADER: 'SEARCH_OPEN_DATA_LOADER',\n CHANGE_CURRENT_TENANT: 'SEARCH_CHANGE_CURRENT_TENANT'\n};\n","import i18n from 'ui-i18n';\nimport {pipe, values, without} from 'ramda';\n\nexport const appId = 'explorer';\n\nexport const ROWS_PER_PAGE_OPTIONS = [25, 50, 100];\n\nexport const NUMERIC_RANGE_MIN_VALUE = 0;\nexport const NUMERIC_RANGE_MAX_VALUE = 10000;\n\nconst currentDate = () => new Date().setHours(0, 0, 0, 0);\nconst yearAgoDate = () => {\n const currentDate = new Date();\n currentDate.setHours(0, 0, 0, 0);\n return currentDate.setFullYear(currentDate.getFullYear() - 1);\n};\n\nexport const DATE_RANGE_MIN_VALUE = yearAgoDate();\nexport const DATE_RANGE_MAX_VALUE = currentDate();\n\nexport const SEARCH_RESULTS_MODES = {\n TABLE: 'table',\n LIST: 'list',\n MAP: 'map'\n};\n\nexport const DEFAULT_VIEW = SEARCH_RESULTS_MODES.TABLE;\n\nexport const PREVIEW_PANEL_MODES = {\n PROFILE: 'profile',\n MAP: 'map'\n};\n\nexport const DEFAULT_FACET_PAGE_SIZE = 20;\n\nexport const operators = [\n {\n label: 'And',\n value: 'and'\n },\n {\n label: 'Or',\n value: 'or'\n },\n {\n label: 'And not',\n value: 'and not'\n },\n {\n label: 'Or not',\n value: 'or not'\n }\n];\nexport const defaultOperator = operators[0];\nexport const defaultGroupOperator = operators[1];\n\nexport const STORED_SEARCHES_TYPES = {\n saved: 'saved',\n recent: 'recent'\n};\n\nexport const SAVED_SEARCHES_SHARING_OPTIONS_VALUES = {\n public: 'public',\n private: 'private'\n};\n\nexport const SAVED_SEARCHES_SORTED_FIELDS = {\n name: 'name',\n updateDate: 'updateDate'\n};\n\nexport const SAVED_SEARCHES_SORT_BY_VALUES = {\n [SAVED_SEARCHES_SORTED_FIELDS.name]: 'NAME',\n [SAVED_SEARCHES_SORTED_FIELDS.updateDate]: 'UPDATE_DATE'\n};\n\nexport const SAVED_SEARCHES_SORT_ORDER_VALUES = {\n ASC: 'asc',\n DESC: 'desc'\n};\n\nexport const SAVED_SEARCHES_SHARING_OPTIONS = [\n {\n label: i18n.text('Only me'),\n value: SAVED_SEARCHES_SHARING_OPTIONS_VALUES.private\n },\n {\n label: i18n.text('All users'),\n value: SAVED_SEARCHES_SHARING_OPTIONS_VALUES.public\n }\n];\n\nexport const NOTIFICATION_TYPES = {\n info: 'info',\n error: 'error'\n};\n\nexport const ML_RULES_ONLY = {pmRulesScope: 'ML_RULES_ONLY'};\n\nexport const ENTITY_TYPE_FACET_ROW_COUNT = 7;\n\nexport const SEARCH_DEBOUNCE_TIME = 300;\n\nexport const BULK_UPDATE_SELECTION_MODES = {\n include: 'include',\n exclude: 'exclude'\n};\n\nexport const BULK_UPDATE_COMMON_OPERATIONS = {\n UpdateProfiles: 'UpdateProfiles',\n DeleteProfiles: 'DeleteProfiles'\n};\n\nexport const BULK_UPDATE_OPERATIONS = {\n AddNew: 'AddNew',\n Clear: 'Clear',\n ReplaceAllWith: 'ReplaceAllWith',\n FindAndReplace: 'FindAndReplace',\n FindAndRemove: 'FindAndRemove',\n RepointReference: 'RepointReference'\n};\n\nexport const BULK_UPDATE_OPERATION_LABELS = {\n [BULK_UPDATE_OPERATIONS.AddNew]: i18n.text('Add new'),\n [BULK_UPDATE_OPERATIONS.Clear]: i18n.text('Clear attribute'),\n [BULK_UPDATE_OPERATIONS.ReplaceAllWith]: i18n.text('Replace all with'),\n [BULK_UPDATE_OPERATIONS.FindAndReplace]: i18n.text('Find and replace'),\n [BULK_UPDATE_OPERATIONS.FindAndRemove]: i18n.text('Find and remove'),\n [BULK_UPDATE_OPERATIONS.RepointReference]: i18n.text('Repoint reference')\n};\n\nexport const BULK_UPDATE_ALLOWED_OPERATION_VALUE_FIELDS = {\n [BULK_UPDATE_OPERATIONS.AddNew]: ['attributeValue'],\n [BULK_UPDATE_OPERATIONS.Clear]: [],\n [BULK_UPDATE_OPERATIONS.ReplaceAllWith]: ['attributeValue'],\n [BULK_UPDATE_OPERATIONS.FindAndReplace]: ['attributeValue', 'attributeValueToFind'],\n [BULK_UPDATE_OPERATIONS.FindAndRemove]: ['attributeValueToFind'],\n [BULK_UPDATE_OPERATIONS.RepointReference]: ['attributeValue']\n};\n\nexport const BULK_UPDATE_SIMPLE_ATTRIBUTE_OPERATIONS = pipe(\n values,\n without(BULK_UPDATE_OPERATIONS.RepointReference)\n)(BULK_UPDATE_OPERATIONS);\n\nexport const BULK_UPDATE_NESTED_ATTRIBUTE_OPERATIONS = [\n BULK_UPDATE_OPERATIONS.AddNew,\n BULK_UPDATE_OPERATIONS.Clear,\n BULK_UPDATE_OPERATIONS.ReplaceAllWith\n];\nexport const BULK_UPDATE_REFERENCE_ATTRIBUTE_OPERATIONS = [\n BULK_UPDATE_OPERATIONS.AddNew,\n BULK_UPDATE_OPERATIONS.Clear,\n BULK_UPDATE_OPERATIONS.RepointReference\n];\n\nexport const BULK_UPDATE_API_OPERATIONS = {\n AddAttribute: 'AddAttribute',\n UpdateAttribute: 'UpdateAttribute',\n DeleteAttribute: 'DeleteAttribute',\n RepointReferencedEntity: 'RepointReferencedEntity',\n AddTags: 'AddTags',\n ReplaceTag: 'ReplaceTag',\n DeleteTags: 'DeleteTags',\n ClearTags: 'ClearTags'\n};\n\nexport const BULK_UPDATE_REFERENCED_ENTITY_ID_FIELD_NAME = 'referenced_entity_id';\n\nexport const DEFAULT_SEARCH_SELECT = [\n 'uri',\n 'label',\n 'type',\n 'secondaryLabel',\n 'defaultProfilePic',\n 'defaultProfilePicValue',\n 'attributes.Address',\n 'attributes.GeoLocation',\n 'attributes.ImageGallery'\n];\n","import {curry, pathOr, remove} from 'ramda';\nimport nanoid from 'nanoid';\n\nimport {isCompatibleFilters, getFilterOptionsForQueryBuilder} from '@reltio/mdm-sdk';\nimport {defaultOperator} from '../../constants/constants';\nimport {createLens, path as createLPath} from '../../utils/lenses';\n\nexport const PROP_NAME_OPERATOR = 'operator';\nexport const PROP_NAME_VALUES = 'values';\nexport const PROP_NAME_FILTER = 'filter';\n\nexport const getEmptyAttributeObject = (id = nanoid()) => ({\n [PROP_NAME_OPERATOR]: defaultOperator.value,\n id\n});\n\nexport const getAttributeObject = (attribute, id = nanoid()) => {\n const data = getAttributeData(attribute);\n return {\n data,\n [PROP_NAME_OPERATOR]: defaultOperator.value,\n [PROP_NAME_FILTER]: pathOr('', ['filterOptions', 0], data),\n id\n };\n};\n\nexport const getAttributeData = (attribute) => ({\n ...attribute,\n filterOptions:\n attribute.enforcedFilterOptions || getFilterOptionsForQueryBuilder(attribute.attrType, attribute.fieldName)\n});\n\nexport const defaultFindGroupPath = curry((id, groups) => {\n const groupIndex = groups.findIndex((group) => group.id === id);\n return groupIndex > -1 ? [groupIndex] : null;\n});\n\nexport const createGetGroupLens = (groupsLensPath, findGroupPath = defaultFindGroupPath) => (state, id) => {\n const searchGroupsL = createLPath(...groupsLensPath);\n const groups = searchGroupsL.get(state);\n const groupPath = findGroupPath(id, groups);\n return groupPath ? createLPath(...groupsLensPath, ...groupPath) : false;\n};\n\nexport const createGetAttributesLens = (getGroupLens, propNameAttributes) => (state, groupId) => {\n const groupLens = getGroupLens(state, groupId);\n return groupLens && groupLens.compose(createLens(propNameAttributes));\n};\n\nexport const createGetAttributeIndex = (getAttributesLens) => (state, groupId, attributeId) => {\n const attributesLens = getAttributesLens(state, groupId);\n if (attributesLens) {\n const attributes = attributesLens.get(state);\n return attributes.findIndex((attribute) => attribute.id === attributeId);\n }\n return -1;\n};\n\nexport const createGetAttributeLens = (getAttributesLens) => (state, groupId, attributeId) => {\n const attributesLens = getAttributesLens(state, groupId);\n const getAttributeIndex = createGetAttributeIndex(getAttributesLens);\n const attributeIndex = getAttributeIndex(state, groupId, attributeId);\n return attributeIndex !== -1 ? attributesLens.compose(createLPath(attributeIndex)) : null;\n};\n\nexport const createSetAttributeProp = (getAttributeLens) => (state, groupId, attributeId, propName, value) => {\n const groupAttributeL = getAttributeLens(state, groupId, attributeId);\n if (groupAttributeL) {\n const newAttribute = {...groupAttributeL.get(state)};\n newAttribute[propName] = value;\n return groupAttributeL.set(state, newAttribute);\n }\n\n return state;\n};\n\nexport const createGetAttributeProp = (getAttributeLens) => (state, groupId, attributeId, propName) => {\n const groupAttributeL = getAttributeLens(state, groupId, attributeId);\n if (groupAttributeL) {\n return groupAttributeL.get(state)[propName];\n }\n};\n\nconst isAttributeIncludesFilter = (state, groupId, attributeId, attribute, getAttributeLens) => {\n const groupAttributeL = getAttributeLens(state, groupId, attributeId);\n let currentFilter;\n if (groupAttributeL) currentFilter = groupAttributeL.get(state).filter;\n\n return attribute.filterOptions.length && (!currentFilter || !attribute.filterOptions.includes(currentFilter));\n};\n\nexport const addAttributeAfter = ({state, groupId, attributeId, attribute, getAttributesLens, getAttributeIndex}) => {\n const groupAttributesL = getAttributesLens(state, groupId);\n if (groupAttributesL) {\n let newAttributes = [...groupAttributesL.get(state)];\n const attrIndex = getAttributeIndex(state, groupId, attributeId);\n const isLastAttribute = !newAttributes[attrIndex + 1];\n if (attrIndex !== -1 && isLastAttribute) {\n newAttributes.splice(attrIndex + 1, 0, attribute);\n } else if (attrIndex !== -1) {\n newAttributes.splice(attrIndex + 1, 0, {\n ...attribute,\n operator: newAttributes[attrIndex].operator\n });\n\n newAttributes[attrIndex] = {\n ...newAttributes[attrIndex],\n operator: defaultOperator.value\n };\n } else {\n newAttributes.push(attribute);\n }\n return groupAttributesL.set(state, newAttributes);\n }\n return state;\n};\n\nexport const changeAttributeData = ({\n state,\n groupId,\n attributeId,\n attributeData,\n setAttributeProp,\n getAttributeLens\n}) => {\n let newState = state;\n if (attributeData) {\n if (isAttributeIncludesFilter(state, groupId, attributeId, attributeData, getAttributeLens))\n newState = setAttributeProp(state, groupId, attributeId, PROP_NAME_FILTER, attributeData.filterOptions[0]);\n newState = setAttributeProp(newState, groupId, attributeId, PROP_NAME_VALUES, []);\n return setAttributeProp(newState, groupId, attributeId, 'data', attributeData);\n } else {\n const attrLens = getAttributeLens(state, groupId, attributeId);\n if (attrLens) {\n newState = attrLens.set(newState, getEmptyAttributeObject(attributeId));\n }\n return newState;\n }\n};\n\nexport const setAttributeOperator = ({state, groupId, attributeId, operator, setAttributeProp}) => {\n return setAttributeProp(state, groupId, attributeId, PROP_NAME_OPERATOR, operator);\n};\n\nexport const deleteAttribute = ({state, groupId, attributeId, getAttributesLens}) => {\n const groupAttributesL = getAttributesLens(state, groupId);\n if (groupAttributesL) {\n const attributes = [...groupAttributesL.get(state)];\n const attributeIndex = attributes.findIndex((attribute) => attribute.id === attributeId);\n\n if (attributeIndex > -1) {\n const editedAttributes = remove(attributeIndex, 1, attributes);\n const prevAttribute = editedAttributes[attributeIndex - 1];\n const removedAttribute = attributes[attributeIndex];\n\n if (prevAttribute) {\n editedAttributes[attributeIndex - 1] = {\n ...prevAttribute,\n operator: removedAttribute.operator\n };\n }\n\n return groupAttributesL.set(state, editedAttributes);\n }\n }\n return state;\n};\n\nexport const duplicateAttribute = ({state, groupId, attributeId, id, getAttributesLens}) => {\n const groupAttributesL = getAttributesLens(state, groupId);\n if (groupAttributesL) {\n const attributes = [...groupAttributesL.get(state)];\n const attributeIndex = attributes.findIndex((attribute) => attribute.id === attributeId);\n if (attributeIndex > -1) {\n attributes.push({...attributes[attributeIndex], id});\n return groupAttributesL.set(state, attributes);\n }\n }\n return state;\n};\n\nexport const setFilter = ({state, groupId, attributeId, filter, getAttributeProp, setAttributeProp}) => {\n const currentFilter = getAttributeProp(state, groupId, attributeId, PROP_NAME_FILTER);\n\n const newState = isCompatibleFilters(currentFilter, filter)\n ? state\n : setAttributeProp(state, groupId, attributeId, PROP_NAME_VALUES, []);\n return setAttributeProp(newState, groupId, attributeId, PROP_NAME_FILTER, filter);\n};\n\nexport const setValues = ({state, groupId, attributeId, values, setAttributeProp}) => {\n return setAttributeProp(state, groupId, attributeId, PROP_NAME_VALUES, values);\n};\n","import {put} from 'redux-saga/effects';\nimport {__, path, pipe, propEq, propOr} from 'ramda';\nimport {defaultFindGroupPath} from '../reducers/helpers/queryBuilderHelpers';\n\nexport function* toggleQueryBuilderAttributeSelect({\n groups,\n findGroupPath = defaultFindGroupPath,\n attributesPropName,\n groupId,\n attributeId,\n selectInfo,\n actions\n}) {\n const {checked, attribute: selectedAttribute, index: selectIndex, selectedAttributes} = selectInfo;\n const {addAttributeAfter, changeAttribute, clearAttribute, deleteAttribute} = actions;\n\n const groupAttributes = pipe(findGroupPath(groupId), path(__, groups), propOr([], attributesPropName))(groups);\n const getGroupAttributeIdAt = (index) => path([index, 'id'], groupAttributes);\n\n const attributeIndex = groupAttributes.findIndex(propEq('id', attributeId));\n const shouldChangeAttribute = attributeId && selectIndex === 0;\n\n if (shouldChangeAttribute) {\n if (checked) {\n yield put(changeAttribute(groupId, attributeId, selectedAttribute));\n } else {\n let nextSelectedAttribute = selectedAttributes[selectIndex + 1];\n if (nextSelectedAttribute) {\n yield put(changeAttribute(groupId, attributeId, nextSelectedAttribute));\n yield put(deleteAttribute(groupId, getGroupAttributeIdAt(attributeIndex + 1)));\n } else {\n yield put(clearAttribute(groupId, attributeId));\n }\n }\n } else {\n const selectIndexFromEnd = selectedAttributes.length - selectIndex;\n const targetIndex = attributeId ? attributeIndex + selectIndex : groupAttributes.length - selectIndexFromEnd;\n\n checked\n ? yield put(addAttributeAfter(groupId, getGroupAttributeIdAt(targetIndex - 1), selectedAttribute))\n : yield put(deleteAttribute(groupId, getGroupAttributeIdAt(targetIndex)));\n }\n}\n","import i18n from 'ui-i18n';\n\nimport {\n AuditAttrTypes,\n CollaborationAttrTypes,\n CrosswalksAttrTypes,\n EntityAttrTypes,\n PotentialMatchesAttrTypes,\n RdmAttrTypes,\n WorkflowAttrTypes\n} from '@reltio/mdm-sdk';\nimport {createDataTenantConfigPart, getOrderTypeByAttrType, getPageSizeByAttrType} from '../collectAttributes';\nimport {__, concat, evolve, identity, map, omit, pipe, propEq, T, values} from 'ramda';\n\nconst collectAttrTypesData = pipe(\n values,\n map((attrType) => ({\n title: attrType.label,\n fieldName: attrType.name,\n type: attrType.type,\n faceted: attrType.faceted,\n hideForDataTenant: attrType.hideForDataTenant\n }))\n);\n\nexport const entityAttributes = {\n id: 'entity',\n title: i18n.text('Entity'),\n attributes: collectAttrTypesData(EntityAttrTypes)\n};\n\nexport const workflowAttributes = {\n id: 'workflow',\n title: i18n.text('Workflow'),\n attributes: collectAttrTypesData(WorkflowAttrTypes)\n};\n\nexport const collaborationItemsAttributes = {\n id: 'collaborationItems',\n title: i18n.text('Collaboration Items'),\n attributes: collectAttrTypesData(CollaborationAttrTypes)\n};\n\nexport const RDMItemsAttributes = {\n id: 'RDMItems',\n title: i18n.text('Reference Data Management'),\n attributes: collectAttrTypesData(RdmAttrTypes)\n};\n\nexport const auditItemsAttributes = {\n id: 'auditItems',\n title: i18n.text('Audit Items'),\n attributes: collectAttrTypesData(AuditAttrTypes)\n};\n\nexport const potentialMatchesAttributes = {\n id: 'potentialMatches',\n title: i18n.text('Potential Matches'),\n attributes: collectAttrTypesData(PotentialMatchesAttrTypes)\n};\n\nexport const crosswalksItemsAttributes = {\n id: 'crosswalksItems',\n title: i18n.text('Crosswalks Items'),\n attributes: collectAttrTypesData(omit(['sourceTable'], CrosswalksAttrTypes))\n};\n\nconst getEntityAttributes = () => entityAttributes;\nconst getWorkflowAttributes = () => workflowAttributes;\nconst getCollaborationItemsAttributes = () => collaborationItemsAttributes;\nconst getRDMItemsAttributes = () => RDMItemsAttributes;\nconst getAuditItemsAttributes = () => auditItemsAttributes;\nconst getPotentialMatchesAttributes = (dataTenants) =>\n dataTenants\n ? evolve(\n {\n attributes: concat(\n __,\n dataTenants.map((dataTenant) => ({\n ...potentialMatchesAttributes.attributes.find(\n propEq('fieldName', PotentialMatchesAttrTypes.matches.name)\n ),\n dataTenant,\n fieldNameForRequest: 'dtPotentialMatches.matches',\n dataTenantFieldName: 'dtPotentialMatches.dataTenant'\n }))\n )\n },\n potentialMatchesAttributes\n )\n : potentialMatchesAttributes;\nconst getCrosswalksItemsAttributes = () => crosswalksItemsAttributes;\n\nexport const createSpecialAttributeItem = ({\n title,\n fieldName,\n dataTenant,\n fieldNameForRequest,\n dataTenantFieldName,\n ...attrType\n}) => {\n const facetedSpecificPart = attrType.faceted\n ? {\n pageSize: getPageSizeByAttrType(attrType),\n orderType: getOrderTypeByAttrType(attrType)\n }\n : {};\n const dataTenantPart = dataTenant\n ? createDataTenantConfigPart({\n dataTenant,\n fieldNameForRequest,\n dataTenantFieldName,\n originalTitle: title\n })\n : {};\n return {\n title,\n fieldName,\n attrType,\n ...facetedSpecificPart,\n ...dataTenantPart\n };\n};\n\nexport const createAttributesGroup = (id, title, attributes) =>\n attributes && attributes.length\n ? {\n id,\n title,\n attributes\n }\n : null;\n\nexport const collectSpecialAttributesGroups = ({\n attributesFilter = T,\n dataTenants,\n canUserReadWorkflowDataTask = true\n} = {}) => {\n const _createAttributesGroup = ({id, title, attributes}) =>\n createAttributesGroup(id, title, attributes.map(createSpecialAttributeItem).filter(attributesFilter));\n const attributesInitial = [\n getEntityAttributes(),\n ...(canUserReadWorkflowDataTask ? [getWorkflowAttributes()] : []),\n getCollaborationItemsAttributes(),\n getRDMItemsAttributes(),\n getAuditItemsAttributes(),\n getPotentialMatchesAttributes(dataTenants),\n getCrosswalksItemsAttributes()\n ];\n\n return attributesInitial.map(_createAttributesGroup).filter(identity);\n};\n\nexport const getSpecialAttribute = (fieldName, dataTenants, canUserReadWorkflowDataTask) => {\n const specialAttributeGroup = collectSpecialAttributesGroups({\n dataTenants,\n canUserReadWorkflowDataTask\n }).find((group) => group.attributes.find((attr) => attr.fieldName === fieldName));\n return specialAttributeGroup && specialAttributeGroup.attributes.find((attr) => attr.fieldName === fieldName);\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(\"linearGradient\", {\n x1: \"94.582%\",\n y1: \"6.451%\",\n x2: \"23.195%\",\n y2: \"83.323%\",\n id: \"svg1842926308b\"\n}, React.createElement(\"stop\", {\n stopColor: \"#CDE1FF\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#AFFBF4\",\n offset: \"100%\"\n})), React.createElement(\"linearGradient\", {\n x1: \"94.582%\",\n y1: \"6.594%\",\n x2: \"23.195%\",\n y2: \"83.214%\",\n id: \"svg1842926308d\"\n}, React.createElement(\"stop\", {\n stopColor: \"#FFF\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#FDFFFF\",\n offset: \"100%\"\n})), React.createElement(\"linearGradient\", {\n x1: \"93.837%\",\n y1: \"55.274%\",\n x2: \"29.292%\",\n y2: \"-20.431%\",\n id: \"svg1842926308g\"\n}, React.createElement(\"stop\", {\n stopColor: \"#FFFCC7\",\n stopOpacity: \"0\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#FFF470\",\n offset: \"100%\"\n})), React.createElement(\"linearGradient\", {\n x1: \"50%\",\n y1: \"0%\",\n x2: \"50%\",\n y2: \"98.152%\",\n id: \"svg1842926308i\"\n}, React.createElement(\"stop\", {\n stopColor: \"#83D6FF\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#72B9EF\",\n offset: \"100%\"\n})), React.createElement(\"path\", {\n d: \"M.228 8.25l4.055-7.007C4.579.727 5.709.074 6.425.009L14.48.001c.633-.03 1.853.635 2.236 1.3l3.934 6.812c.398.69.345 2.074-.017 2.765l-3.868 6.685c-.472.64-1.77 1.39-2.446 1.416l-7.767.008c-.689-.033-1.992-.72-2.345-1.332L.232 10.769c-.338-.585-.278-1.938-.004-2.519z\",\n id: \"svg1842926308a\"\n}), React.createElement(\"path\", {\n d: \"M1.389 8.38l3.589-6.202c.262-.457 1.263-1.033 1.898-1.09h7.143c.56-.026 1.643.565 1.984 1.153l3.494 6.037c.353.611.308 1.837-.012 2.449l-3.424 5.916c-.418.567-1.569 1.23-2.168 1.252H7.006c-.61-.03-1.766-.64-2.08-1.182L1.395 10.61c-.3-.518-.249-1.717-.006-2.23z\",\n id: \"svg1842926308c\"\n}), React.createElement(\"path\", {\n d: \"M.124 0l-.161-.002c3.374 0 6.11 2.727 6.11 6.092 0 3.279-2.974 4.316-2.974 7.123a.84.84 0 01-.84.838H.123V8.623a1.75 1.75 0 000-3.437V0z\",\n id: \"svg1842926308e\"\n}), React.createElement(\"path\", {\n d: \"M5.92 0l-.012 5.154-.132.006A1.75 1.75 0 005.9 8.654l-.012 5.409H3.486c-.237-.07-.4-.155-.489-.254-.089-.098-.17-.284-.242-.557l-.291-1.341a2.084 2.084 0 00-.12-.344 1.507 1.507 0 00-.187-.267L.25 8.796a1.032 1.032 0 01-.201-.293 1.277 1.277 0 01-.048-.38V3.917a.522.522 0 01.027-.22.562.562 0 01.147-.172L3.546.111a.456.456 0 01.11-.088A.345.345 0 013.784 0h2.136z\",\n id: \"svg1842926308h\"\n})), React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\"\n}, React.createElement(\"g\", null, React.createElement(\"g\", {\n transform: \"translate(1.5 .75)\"\n}, React.createElement(\"use\", {\n fill: \"url(#svg1842926308b)\",\n xlinkHref: \"#svg1842926308a\"\n}), React.createElement(\"use\", {\n fill: \"url(#svg1842926308d)\",\n opacity: \".5\",\n xlinkHref: \"#svg1842926308c\"\n})), React.createElement(\"g\", {\n transform: \"translate(8.707 3.846)\"\n}, React.createElement(\"rect\", {\n fill: \"#363636\",\n x: \"1.932\",\n y: \"16.593\",\n width: \"2.644\",\n height: \"2.895\",\n rx: \"1.322\"\n}), React.createElement(\"path\", {\n d: \"M6.018 14.845v2.367c0 .9-.743 1.629-1.66 1.629H2.27c-.917 0-1.66-.73-1.66-1.63v-2.366l.004-.095h5.401c.002.031.003.063.003.095z\",\n fill: \"#717171\"\n}), React.createElement(\"path\", {\n d: \"M5.168 17.15c0 .9-.618 1.63-1.38 1.63H2.049c-.762 0-1.38-.73-1.38-1.63v-2.37h4.5v2.37z\",\n fill: \"#828282\"\n}), React.createElement(\"path\", {\n d: \"M5.939 17.28a.5.5 0 010 1H.569a.5.5 0 110-1h5.37zm0-1.376a.5.5 0 010 1H.569a.5.5 0 110-1h5.37zm0-1.375a.5.5 0 010 1H.569a.5.5 0 110-1h5.37z\",\n fill: \"#B1B1B1\"\n}), React.createElement(\"path\", {\n d: \"M3.125 17.28v1h-2v-1h2zm0-1.376v1h-2v-1h2zm0-1.375v1h-2v-1h2z\",\n fill: \"#C5C5C5\"\n}), React.createElement(\"g\", {\n transform: \"translate(3.375)\"\n}, React.createElement(\"mask\", {\n id: \"svg1842926308f\",\n fill: \"#fff\"\n}, React.createElement(\"use\", {\n xlinkHref: \"#svg1842926308e\"\n})), React.createElement(\"use\", {\n fill: \"#FFD44B\",\n xlinkHref: \"#svg1842926308e\"\n}), React.createElement(\"path\", {\n d: \"M-6.125 6.091A6.076 6.076 0 01-.025 0c3.367 0 6.098 2.727 6.098 6.091 0 3.279-2.969 4.316-2.969 7.123a.838.838 0 01-.839.837H-2.51a.838.838 0 01-.839-.837c0-2.562-2.775-3.73-2.775-7.123z\",\n fill: \"#FFD347\",\n mask: \"url(#svg1842926308f)\"\n}), React.createElement(\"path\", {\n d: \"M-6.125 6.091A6.076 6.076 0 01-.025 0c3.367 0 6.098 2.727 6.098 6.091 0 3.279-2.969 4.316-2.969 7.123a.838.838 0 01-.839.837H-2.51a.838.838 0 01-.839-.837c0-2.562-2.775-3.73-2.775-7.123z\",\n fill: \"#FFDE72\",\n mask: \"url(#svg1842926308f)\"\n}), React.createElement(\"path\", {\n d: \"M1.496 6.08c.02-.896.936-1.336 1.732-.85.906.553.507 2.04-.592 2.069H2.199l-.576 7.012-.75-.032.552-6.406.023-.574H.124v-.75h1.354l.017-.448v-.02zm1.342-.21c-.318-.193-.58-.072-.592.221l-.001.036-.016.422h.373c.357 0 .5-.493.252-.668l-.016-.01z\",\n fill: \"#F3BE13\",\n mask: \"url(#svg1842926308f)\"\n}), React.createElement(\"ellipse\", {\n fill: \"url(#svg1842926308g)\",\n mask: \"url(#svg1842926308f)\",\n cx: \"-.236\",\n cy: \"6.031\",\n rx: \"4.567\",\n ry: \"4.583\"\n})))), React.createElement(\"g\", null, React.createElement(\"g\", {\n transform: \"translate(5.706 3.846)\"\n}, React.createElement(\"mask\", {\n id: \"svg1842926308j\",\n fill: \"#fff\"\n}, React.createElement(\"use\", {\n xlinkHref: \"#svg1842926308h\"\n})), React.createElement(\"use\", {\n fill: \"url(#svg1842926308i)\",\n xlinkHref: \"#svg1842926308h\"\n}), React.createElement(\"path\", {\n fill: \"#D6FCFA\",\n fillRule: \"nonzero\",\n opacity: \".5\",\n mask: \"url(#svg1842926308j)\",\n d: \"M4.78 1.404v.75h-.444L1.56 4.93H-.706v-.75H1.25l2.775-2.776zM3.21 5.097l1.725 1.725H6.25v.75H4.625L2.68 5.628zM6.664 3.53v.75H4.958l-.492.53-.55-.51.714-.77zM1.781 6.53l2.565 2.564h.462v.75h-.773L1.47 7.28H-.08v-.75zM2.67 10.53h1.118L5.05 11.79h2.094v.75H4.74L3.477 11.28z\"\n}))), React.createElement(\"circle\", {\n fill: \"#008FD8\",\n cx: \"11.75\",\n cy: \"10.75\",\n r: \"1.125\"\n}))));","import {\n allPass,\n always,\n anyPass,\n chain,\n complement,\n curry,\n either,\n flatten,\n identity,\n isEmpty,\n pipe,\n prop,\n propEq,\n T\n} from 'ramda';\nimport memoizeOne from 'memoize-one';\n\nimport i18n from 'ui-i18n';\nimport MLRecommendedIcon from './icons/ml-recommended.svg';\nimport {prepareAttrUriForSearch} from './searchEngine';\nimport {DEFAULT_FACET_PAGE_SIZE} from '../../constants/constants';\nimport {\n findClosestCommonAncestor,\n getAllAttributeTypesTree,\n getAttributeTypeSubAttributes,\n getDataTenantSpecialAttributeFieldName,\n getEntityType,\n getEntityTypeLabel,\n getFacetTypeForAttrType,\n hasMatchRulesWithoutML,\n hasMlMatchRule,\n isAvailableEntityType,\n isComplexAttribute,\n SpecialAttrTypes\n} from '@reltio/mdm-sdk';\nimport {createAttributesGroup} from './advancedSearch/collectSpecialAttributes';\n\nexport const createFacetForSpecialAttrType = (attrType, facetProps) => ({\n title: attrType.label,\n fieldName: attrType.name,\n type: getFacetTypeForAttrType(attrType),\n attrType: {\n type: attrType.type,\n singleValue: attrType.singleValue,\n hideForDataTenant: attrType.hideForDataTenant,\n faceted: true\n },\n ...facetProps\n});\n\nexport const createDataTenantConfigPart = ({dataTenant, fieldNameForRequest, dataTenantFieldName, originalTitle}) => ({\n fieldName: getDataTenantSpecialAttributeFieldName(fieldNameForRequest, dataTenant.id),\n fieldNameForRequest,\n dataTenant: dataTenant.id,\n dataTenantFieldName,\n title: `${dataTenant.label} ${originalTitle}`\n});\n\nconst additionalAttributesRules = [\n {\n attribute: createFacetForSpecialAttrType(SpecialAttrTypes.matchRules, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n check: hasMatchRulesWithoutML\n },\n {\n attribute: createFacetForSpecialAttrType(SpecialAttrTypes.MLRecommendedMatch, {\n fieldNameForRequest: 'matchRules',\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount',\n LogoIcon: MLRecommendedIcon\n }),\n check: hasMlMatchRule\n }\n];\n\nexport const getAdditionalAttributes = curry((dataTenants, entityType) => {\n const additionalAttributes = additionalAttributesRules.reduce((attributes, {attribute, check}) => {\n check(entityType) && attributes.push({...attribute, entityTypeUri: entityType.uri});\n return attributes;\n }, []);\n const dataTenantAdditionalAttributes = (dataTenants || []).flatMap((dataTenant) =>\n additionalAttributes\n .filter(propEq('fieldName', SpecialAttrTypes.matchRules.name))\n .map((additionalAttribute) => ({\n ...additionalAttribute,\n ...createDataTenantConfigPart({\n dataTenant,\n fieldNameForRequest: 'dtPotentialMatches.matchRules',\n dataTenantFieldName: 'dtPotentialMatches.dataTenant',\n originalTitle: additionalAttribute.title\n })\n }))\n );\n return additionalAttributes.concat(dataTenantAdditionalAttributes);\n});\n\nexport const getPageSizeByAttrType = (attrType = {}) => {\n switch (attrType.type) {\n case 'Int':\n case 'Float':\n case 'Double':\n case 'Long':\n case 'Number':\n case 'Date':\n case 'ActivenessDate':\n case 'Timestamp':\n return 1;\n default:\n return DEFAULT_FACET_PAGE_SIZE;\n }\n};\n\nexport const getOrderTypeByAttrType = (attrType = {}) => {\n switch (attrType.type) {\n case 'Int':\n case 'Float':\n case 'Double':\n case 'Long':\n case 'Number':\n case 'Date':\n case 'ActivenessDate':\n case 'Timestamp':\n return 'reversedTerm';\n default:\n return 'reversedCount';\n }\n};\n\nexport const getDisableIncludeFilterByAttrType = (attrType = {}) => {\n switch (attrType.type) {\n case 'Int':\n case 'Float':\n case 'Double':\n case 'Long':\n case 'Number':\n case 'Date':\n case 'ActivenessDate':\n case 'Timestamp':\n return true;\n default:\n return false;\n }\n};\n\nconst isFaceted = curry((metadata, attrType) => {\n if (isComplexAttribute(attrType)) {\n const attributes = getAttributeTypeSubAttributes(metadata, attrType);\n return attributes.some(isFaceted(metadata));\n } else {\n return !!attrType.faceted;\n }\n});\n\nexport const getChildrenAttributes = (entity = []) => {\n return (entity.children\n ? entity.children.concat(entity.children.map(getChildrenAttributes)).flat(Infinity)\n : []\n ).filter(complement(isEmpty));\n};\n\nexport const createComplexAttributesConfig = (\n metadata,\n attrNode,\n entityTypeUri,\n fieldName,\n createAttributeConfig,\n parents = []\n) => {\n const resConfig = {\n ...createAttributeConfig(metadata, attrNode, entityTypeUri, fieldName, parents),\n uri: attrNode.uri\n };\n const children = attrNode.children\n ? attrNode.children.map((childNode) =>\n createComplexAttributesConfig(\n metadata,\n childNode,\n entityTypeUri,\n '',\n createAttributeConfig,\n parents.concat({name: attrNode.name, label: attrNode.label})\n )\n )\n : [];\n\n if (children.length) resConfig.children = children;\n\n return resConfig;\n};\n\nexport const createAttributeItem = (metadata, attrType, entityTypeUri, fieldName, parents) => {\n const entityTypeLabel = getEntityTypeLabel(metadata, {type: entityTypeUri});\n const title = attrType.label || attrType.name;\n return {\n title: title,\n pathToTitle: Array.isArray(parents)\n ? [entityTypeLabel, ...chain(prop('label'), parents), title]\n : [entityTypeLabel, title],\n fieldName: fieldName || prepareAttrUriForSearch(attrType.uri, parents),\n entityTypeUri: entityTypeUri,\n attrType: attrType,\n pageSize: getPageSizeByAttrType(attrType),\n orderType: getOrderTypeByAttrType(attrType),\n isComplex: isComplexAttribute(attrType),\n disableIncludeFilter: getDisableIncludeFilterByAttrType(attrType)\n };\n};\n\nexport const getAttributesTree = (metadata, entityOrAttrType, filterFaceted = true) => {\n return getAllAttributeTypesTree(metadata, entityOrAttrType, either(always(!filterFaceted), isFaceted(metadata)));\n};\n\nexport const collectAttributeGroups = memoizeOne(\n (\n metadata,\n selectedEntityTypes = [],\n createGroup,\n createAttributeConfig,\n filterFaceted = true,\n onlyOneSelectedEntityType = true,\n dataTenants\n ) => {\n const inSelectedTypes = (value) => selectedEntityTypes.includes(value);\n const isOnlyOneSelected = () => onlyOneSelectedEntityType;\n const isOnlyOneSelectedReceived = () => propEq('length', 1, selectedEntityTypes);\n const {entityTypes} = metadata;\n\n return entityTypes\n .filter(isAvailableEntityType)\n .filter(\n anyPass([\n always(!selectedEntityTypes.length),\n allPass([isOnlyOneSelected, isOnlyOneSelectedReceived, propEq('uri', selectedEntityTypes[0])]),\n allPass([complement(isOnlyOneSelected), pipe(prop('uri'), inSelectedTypes)])\n ])\n )\n .map((entityType) => {\n const title = getEntityTypeLabel(metadata, {type: entityType.uri});\n\n const complexAttributes = getAdditionalAttributes(dataTenants, entityType).concat(\n getAttributesTree(metadata, entityType, filterFaceted).map((attrNode) =>\n createComplexAttributesConfig(metadata, attrNode, entityType.uri, '', createAttributeConfig)\n )\n );\n\n return complexAttributes.length ? createGroup(entityType.uri, title, complexAttributes) : null;\n })\n .filter(identity);\n }\n);\n\nexport const collectAdvancedAttributeGroups = memoizeOne(\n (metadata, selectedEntityTypes = [], attributesFilter = T, dataTenants) => {\n if (selectedEntityTypes.length === 0) {\n return collectAttributeGroups(\n metadata,\n undefined,\n createAttributesGroup,\n createAttributeItem,\n false,\n true,\n dataTenants\n );\n }\n\n const groups = [];\n const entityTypeUri =\n selectedEntityTypes.length > 1\n ? findClosestCommonAncestor(metadata, selectedEntityTypes)\n : selectedEntityTypes[0];\n\n if (entityTypeUri) {\n const entityType = getEntityType(metadata, entityTypeUri);\n const title =\n selectedEntityTypes.length > 1\n ? i18n.text('Attributes')\n : getEntityTypeLabel(metadata, {type: entityType.uri});\n\n const additionalAttributes = getAdditionalAttributes(dataTenants, entityType).filter(attributesFilter);\n const complexAttributes = additionalAttributes.concat(\n getAttributesTree(metadata, entityType, false).map((attrNode) =>\n createComplexAttributesConfig(metadata, attrNode, entityType.uri, '', createAttributeItem)\n )\n );\n if (complexAttributes.length) {\n groups.push(createAttributesGroup(entityType.uri, title, complexAttributes));\n }\n }\n\n return groups;\n }\n);\n\n//TODO: move to uisdk? Duplicates packages/components/src/components/VirtualGroupedList/helpers.js\nexport const flattenGroupedItemsData = (groupedItems) => {\n const getFlattenedItems = (items) =>\n flatten(items.map((item) => [item].concat(item.items ? getFlattenedItems(item.items) : [])));\n\n let titleItemIndex = null;\n const items = getFlattenedItems(groupedItems).map((item, index) => {\n if (item && item.items) {\n titleItemIndex = index;\n }\n return {item, index, titleItemIndex};\n });\n return items;\n};\n","import {\n chain,\n curry,\n identity,\n intersection,\n is,\n isNil,\n map,\n memoizeWith,\n pipe,\n prop,\n propEq,\n propOr,\n reject,\n toString,\n when\n} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {DEFAULT_FACET_PAGE_SIZE} from '../../constants/constants';\nimport {\n FACET_TYPES,\n getDataTenantSpecialAttributeFieldName,\n getFacetTypeForAttrType,\n isLookupAttrType,\n SpecialAttrTypes\n} from '@reltio/mdm-sdk';\nimport {\n collectAttributeGroups,\n createAttributeItem,\n createDataTenantConfigPart,\n createFacetForSpecialAttrType\n} from './collectAttributes.js';\nimport {getChildrenAttributes} from './collectAttributes';\nimport {envSpecificKey} from '../../utils/general';\n\nexport const getEntityTypeFacetConfig = (_metadata) =>\n createFacetForSpecialAttrType(SpecialAttrTypes.type, {\n hiddenTitle: i18n.text('Entity types'),\n disableIncludeFilter: true,\n pageSize: 101,\n showIcon: true,\n barColor: '#61D55D',\n transparentBackground: true,\n showDeleteButton: false\n });\n\nconst potentialMatchesFacetConfig = createFacetForSpecialAttrType(SpecialAttrTypes.matches, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n});\n\nexport const specialFacets = [\n createFacetForSpecialAttrType(SpecialAttrTypes.createdBy, {\n pageSize: DEFAULT_FACET_PAGE_SIZE\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.updatedBy, {\n pageSize: DEFAULT_FACET_PAGE_SIZE\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.createdTime, {\n disableIncludeFilter: true,\n pageSize: 1,\n orderType: 'reversedTerm'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.updatedTime, {\n disableIncludeFilter: true,\n pageSize: 1,\n orderType: 'reversedTerm'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.sourceSystems, {\n title: i18n.text('Sources'),\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.tags, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.roles, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n potentialMatchesFacetConfig,\n createFacetForSpecialAttrType(SpecialAttrTypes.matchScore, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.startDate, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.endDate, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n })\n];\n\nexport const getSpecialFacets = (dataTenants) => {\n const dataTenantFacets = (dataTenants || []).map((dataTenant) => ({\n ...potentialMatchesFacetConfig,\n ...createDataTenantConfigPart({\n dataTenant,\n fieldNameForRequest: 'dtPotentialMatches.matches',\n dataTenantFieldName: 'dtPotentialMatches.dataTenant',\n originalTitle: potentialMatchesFacetConfig.title\n })\n }));\n return specialFacets.concat(dataTenantFacets);\n};\n\nexport const createAttributeFacetConfig = (metadata, attrType, entityTypeUri, fieldName, parents) => {\n return {\n ...createAttributeItem(metadata, attrType, entityTypeUri, fieldName, parents),\n uri: attrType.uri,\n type: getFacetTypeForAttrType(attrType)\n };\n};\n\nconst collectAttributeFacetsGroups = (metadata, selectedEntityTypes = [], dataTenants) => {\n return collectAttributeGroups(\n metadata,\n selectedEntityTypes,\n createFacetsGroup,\n createAttributeFacetConfig,\n true,\n true,\n dataTenants\n );\n};\n\nconst memoizedCollectAttributeFacetsGroups = memoizeWith(\n (metadata, selectedEntityTypes = [], dataTenants) =>\n envSpecificKey(selectedEntityTypes.toString() + (dataTenants || []).map(prop('id')).toString()),\n collectAttributeFacetsGroups\n);\n\nconst createFacetsGroup = (id, title, facets, needGroupIcon = true) => {\n return facets && facets.length\n ? {\n id,\n title,\n needGroupIcon,\n facets\n }\n : null;\n};\n\nexport const collectFacetsList = (metadata, selectedEntityTypes, recommendedFacets = [], dataTenants) => {\n const onlyOneEntityTypeSelected = selectedEntityTypes.length === 1;\n const specialFacets = getSpecialFacets(dataTenants);\n const specialGroup = createFacetsGroup('special', i18n.text('Basic'), specialFacets, false);\n const entityTypesGroup = memoizedCollectAttributeFacetsGroups(metadata, selectedEntityTypes, dataTenants);\n const entityTypesFacets = chain(prop('facets'), entityTypesGroup);\n const recommendedFacetsConfigs = pipe(\n map(findFacetConfigByFieldName([...specialFacets, ...entityTypesFacets])),\n reject(isNil)\n )(recommendedFacets);\n\n return [createFacetsGroup('recommended', i18n.text('Recommended'), recommendedFacetsConfigs, false)]\n .concat(onlyOneEntityTypeSelected ? entityTypesGroup : specialGroup)\n .concat(onlyOneEntityTypeSelected ? specialGroup : entityTypesGroup)\n .filter(identity);\n};\n\nexport const findFacetConfigByFieldName = curry((facetConfigs, fieldName) => {\n const facetConfig = facetConfigs.find(propEq('fieldName', fieldName));\n if (!facetConfig) {\n const children = chain(propOr([], 'children'), facetConfigs);\n return children.length ? findFacetConfigByFieldName(children, fieldName) : undefined;\n } else {\n return facetConfig;\n }\n});\n\nconst flattenChildrenForEntityTypeConfigs = (entityTypeConfig) => ({\n ...entityTypeConfig,\n facets: entityTypeConfig.facets.reduce((facetConfigs, facetConfig) => {\n facetConfigs.push(facetConfig);\n facetConfig.children && facetConfigs.push(...getChildrenAttributes(facetConfig));\n return facetConfigs;\n }, [])\n});\n\nexport const getAvailableFacetsGroupsList = (metadata, selectedEntityTypes, dataTenants) =>\n collectFacetsList(metadata, selectedEntityTypes, [], dataTenants).map(flattenChildrenForEntityTypeConfigs);\n\nconst getFlatFacets = (facet) => (facet.children ? [facet].concat(facet.children.flatMap(getFlatFacets)) : [facet]);\n\nexport const collectFacetsFlatList = (metadata, selectedEntityTypes, recommendedFacets, dataTenants) => {\n return collectFacetsList(metadata, selectedEntityTypes, recommendedFacets, dataTenants)\n .flatMap((facetGroup) => facetGroup.facets)\n .flatMap(getFlatFacets);\n};\n\nexport const prepareFacetDataForStore = (fieldName, {values = [], showAllItems} = {}) =>\n reject(isNil, {\n fieldName: fieldName,\n data: [],\n values: values && values.map(when(is(Boolean), toString)),\n showAllItems\n });\n\nexport const isComplexFacet = (config) => config.type === FACET_TYPES.COMPLEX_FACET;\n\nexport const isLookupFacet = (facet) => facet.attrType && isLookupAttrType(facet.attrType);\n\nexport const isPotentialMatchesFacet = (facet) =>\n facet.fieldName === 'matches' ||\n facet.fieldName === 'potentialMatches.matchScore' ||\n facet.fieldName.startsWith(getDataTenantSpecialAttributeFieldName('dtPotentialMatches.matches', ''));\n\nexport const isMatchRuleFacet = (facet) =>\n intersection(['matchRules', 'dtPotentialMatches.matchRules'], [facet.fieldNameForRequest, facet.fieldName]).length >\n 0;\n\nexport const isMLMatchRuleFacet = (facet) => facet.fieldName === 'MLRecommendedMatch';\n\nexport const isDataTenantFacet = (facet) => !!facet.dataTenant;\n","import {filter, isEmpty, not, partition, path, pick, pipe, prop} from 'ramda';\nimport nanoid from 'nanoid';\nimport memoizeOne from 'memoize-one';\nimport {collectSpecialAttributesGroups} from '../advancedSearch/collectSpecialAttributes';\nimport {\n getEntityTypeLabel,\n getFilterOptionForFacet,\n getFilterValueForFacet,\n isTypeFacet,\n getFilterOptionsForQueryBuilder\n} from '@reltio/mdm-sdk';\nimport {defaultGroupOperator} from '../../../constants/constants';\n\nconst getValuableFacets = filter(pipe(prop('values'), isEmpty, not));\n\nconst memoizedCollectSpecialAttributesGroups = memoizeOne((dataTenants) =>\n collectSpecialAttributesGroups({dataTenants})\n);\n\nexport const getGroupTitle = (metadata, dataTenants, data) => {\n return (\n getEntityTypeLabel(metadata, {type: data.entityTypeUri}) ||\n (\n memoizedCollectSpecialAttributesGroups(dataTenants).find((group) =>\n group.attributes.find((attr) => attr.fieldName === data.fieldName)\n ) || {}\n ).title\n );\n};\n\nexport const createAdvancedSearchGroupFromFacets = (metadata, dataTenants, facetsWithConfigs) => {\n const facetsToConvert = getValuableFacets(facetsWithConfigs);\n\n const [[typeFacet = {}], restFacets] = partition(isTypeFacet, facetsToConvert);\n\n const attributes = restFacets.reduce(\n (attributesList, facet) => {\n const filterOptions = getFilterOptionsForQueryBuilder(facet.attrType, facet.fieldName);\n const filter = getFilterOptionForFacet(facet);\n const dataFromFacet = pick([\n 'title',\n 'pathToTitle',\n 'fieldName',\n 'fieldNameForRequest',\n 'dataTenant',\n 'dataTenantFieldName',\n 'attrType',\n 'groupName',\n 'entityTypeUri',\n 'pageSize',\n 'orderType',\n 'isComplex',\n 'disableIncludeFilter',\n 'uri'\n ])(facet);\n\n const data = {\n ...dataFromFacet,\n groupName: getGroupTitle(metadata, dataTenants, dataFromFacet),\n filterOptions\n };\n\n const values = getFilterValueForFacet(facet);\n\n attributesList[0].push({\n data,\n operator: 'and',\n filter,\n id: nanoid(),\n values\n });\n\n return attributesList;\n },\n [[]]\n );\n\n return attributes\n .filter((attributeList) => attributeList.length || path(['values', 'length'], typeFacet))\n .map((attributeList) => ({\n attributes: attributeList,\n operator: defaultGroupOperator.value,\n id: nanoid(),\n entityTypes: typeFacet.values || []\n }));\n};\n","import {any, complement, filter, map, pipe, prop, propOr} from 'ramda';\n\nimport {isAvailableEntityType} from '@reltio/mdm-sdk';\n\nexport const hasNotAvailableEntityTypes = pipe(propOr([], 'entityTypes'), any(complement(isAvailableEntityType)));\n\nexport const getAvailableEntityTypesUris = pipe(\n propOr([], 'entityTypes'),\n filter(isAvailableEntityType),\n map(prop('uri'))\n);\n\nexport const addAvailableEntityTypesIfNeeded = (metadata, entityTypes = []) =>\n entityTypes.length === 0 && hasNotAvailableEntityTypes(metadata)\n ? getAvailableEntityTypesUris(metadata)\n : entityTypes;\n\nexport const removeNumberForDtssUnavailableEntityTypeItems = (items, tenantObject) => {\n if (tenantObject && Array.isArray(tenantObject.availableEntityTypes)) {\n return items.map((item) => {\n if (!tenantObject.availableEntityTypes.includes(item.value)) {\n return {...item, number: undefined};\n }\n return item;\n });\n }\n return items;\n};\n","import {\n __,\n anyPass,\n curry,\n either,\n filter,\n find,\n flatten,\n gt,\n identity,\n ifElse,\n length,\n map,\n path,\n pipe,\n prop,\n propEq,\n propOr,\n uniqBy,\n when\n} from 'ramda';\nimport {Decimal} from 'decimal.js';\nimport {\n getAttrTypeLookupCode,\n getEntityType,\n getEntityTypeLabel,\n getLastUriPart,\n getLookupLabel,\n getUnresolvedLookupsList,\n isAvailableEntityType,\n isEnumAttrType,\n Maybe,\n mergeLookupsLists,\n orderByArrayComparator,\n isTypeFacet,\n FACET_TYPES,\n formatDataTypeValue,\n getAttrDataTypeDefinition,\n isBooleanType\n} from '@reltio/mdm-sdk';\n\nimport {formatMomentDate, formatNumberAsMetric} from '../../utils/general';\nimport {isLookupFacet, isMatchRuleFacet} from './collectFacets';\nimport moment from 'moment';\nimport {\n DATE_RANGE_MAX_VALUE,\n DATE_RANGE_MIN_VALUE,\n ENTITY_TYPE_FACET_ROW_COUNT,\n NUMERIC_RANGE_MAX_VALUE,\n NUMERIC_RANGE_MIN_VALUE\n} from '../../constants/constants';\nimport {createRangeServiceFor} from './rangeFacet';\nimport {addAvailableEntityTypesIfNeeded} from './entityTypes';\nimport {Facets, Search} from '../../constants/actionTypes';\n\nexport const findConfigByFieldName = (fieldName, configs) => {\n const config = configs.find((config) => [config.fieldName, `${config.fieldName}.ov`].includes(fieldName));\n if (config) {\n return config;\n } else {\n console.warn(`Can't find facet config for ${fieldName} fieldName`);\n return null;\n }\n};\n\nexport const prepareFacets = (metadata, facets, attributes, lookupsCodes, viewConfig) => {\n return Object.keys(facets).reduce((result, fieldName) => {\n const attribute = findConfigByFieldName(fieldName, attributes);\n if (attribute) {\n const realFieldName = attribute.fieldName;\n result[realFieldName] = prepareFacet(\n metadata,\n realFieldName,\n facets[fieldName],\n attribute,\n lookupsCodes,\n viewConfig\n );\n }\n return result;\n }, {});\n};\n\nexport const prepareStatsFacet = (facets, attributes) => {\n return Object.keys(facets).reduce((result, fieldName) => {\n const attribute = findConfigByFieldName(fieldName, attributes);\n if (attribute) {\n result[attribute.fieldName] = statsProcessing(\n facets[fieldName],\n attribute.attrType && attribute.attrType.type\n );\n }\n return result;\n }, {});\n};\n\nconst sortByNumber = (a, b) => b.number - a.number;\nconst numberMoreThanZero = ({number}) => number > 0;\nconst configHasValue =\n ({values = []}) =>\n ({value}) =>\n values.includes(value);\nconst specialFacetsFilter = (config) => either(numberMoreThanZero, configHasValue(config));\nexport const isMetadataSourcedFacetedAttribute = anyPass([\n isMatchRuleFacet,\n propEq('fieldName', 'sourceSystems'),\n propEq('fieldName', 'roles'),\n pipe(prop('attrType'), isEnumAttrType)\n]);\n\nconst defaultProcessing = (rawData) =>\n Object.keys(rawData)\n .map((key) => ({\n value: key,\n number: rawData[key],\n label: key\n }))\n .sort(sortByNumber);\n\nconst numericRangeTypeProcessing = (rawData, type) =>\n Object.keys(rawData).map((key) => ({\n value: type === 'Long' ? new Decimal(key) : +key,\n number: rawData[key],\n label: key\n }));\n\nconst lookupProcessing = (rawData, lookupCode) => {\n return defaultProcessing(rawData).map((data) => ({\n ...data,\n label: getLookupLabel(data.value, path([data.value, 'displayName'], lookupCode))\n }));\n};\n\nconst enumProcessing = (rawData, enumerationList) => {\n return enumerationList\n .map((value) => ({\n value,\n label: value,\n number: rawData[value] || 0\n }))\n .sort(sortByNumber);\n};\n\nconst booleanProcessing = (rawData, dataTypeDefinition) => {\n return Object.keys(rawData)\n .map((key) => ({\n value: key,\n number: rawData[key],\n label: formatDataTypeValue({dataTypeDefinition}, key)\n }))\n .sort(sortByNumber);\n};\n\nexport const entityTypeProcessing = (metadata, rawData, allowedEntityTypes) => {\n const {entityTypes} = metadata;\n return entityTypes\n .filter(allowedEntityTypes ? ({uri}) => allowedEntityTypes.includes(uri) : identity)\n .sort(allowedEntityTypes ? orderByArrayComparator(allowedEntityTypes, 'uri') : (_) => 0)\n .map((entityType) => {\n const lastUriPart = getLastUriPart(entityType.uri);\n return isAvailableEntityType(entityType)\n ? {\n value: entityType.uri,\n number: rawData[lastUriPart] || 0,\n label: getEntityTypeLabel(metadata, {type: entityType.uri}) || lastUriPart\n }\n : null;\n })\n .filter(identity);\n};\n\nconst roleProcessing = (metadata, rawData, attribute) => {\n const {roles} = metadata;\n return roles\n .map((role) => {\n const lastUriPart = getLastUriPart(role.uri);\n return {\n value: role.uri,\n label: role.label,\n number: rawData[lastUriPart] || 0\n };\n })\n .filter(specialFacetsFilter(attribute))\n .sort(sortByNumber);\n};\n\nconst sourceSystemsProcessing = (metadata, rawData, attribute) => {\n const {sources} = metadata;\n\n return sources\n .map((source) => {\n const lastUriPart = getLastUriPart(source.uri);\n return {\n value: lastUriPart,\n number: rawData[lastUriPart] || 0,\n label: source.label || lastUriPart\n };\n })\n .filter(specialFacetsFilter(attribute))\n .sort(sortByNumber);\n};\n\nconst matchRulesProcessing = (metadata, rawData, attribute) => {\n const entityType = getEntityType(metadata, attribute.entityTypeUri);\n const matchGroups = (entityType && entityType.matchGroups) || [];\n\n return uniqBy(prop('value'), [\n ...matchGroups.map(({uri, label}) => ({\n isRaw: false,\n value: uri,\n number: rawData[uri] || 0,\n label: label || uri\n })),\n ...Object.entries(rawData).map(([uriOrLabel, count]) => {\n const matchGroup = find(propEq('uri', uriOrLabel))(matchGroups);\n const isRaw = !matchGroup;\n\n return {\n value: uriOrLabel,\n number: count,\n label: isRaw ? uriOrLabel : matchGroup.label,\n isRaw\n };\n })\n ])\n .filter(specialFacetsFilter(attribute))\n .sort(sortByNumber);\n};\n\nexport const statsProcessing = (rawData, type) => {\n const {min, max, count} = rawData;\n return {\n min: type === 'Long' ? new Decimal(min) : +min,\n max: type === 'Long' ? new Decimal(max) : +max,\n count\n };\n};\n\nconst prepareFacet = (metadata, fieldName, rawData, attribute, lookupsCodes = {}, viewConfig = {}) => {\n switch (fieldName) {\n case 'type': {\n const {allowedEntityTypes} = viewConfig;\n return entityTypeProcessing(metadata, rawData, allowedEntityTypes);\n }\n case 'roles':\n return roleProcessing(metadata, rawData, attribute);\n case 'sourceSystems':\n return sourceSystemsProcessing(metadata, rawData, attribute);\n }\n if (isMatchRuleFacet(attribute)) {\n return matchRulesProcessing(metadata, rawData, attribute);\n }\n if (isLookupFacet(attribute)) {\n return lookupProcessing(rawData, lookupsCodes[getAttrTypeLookupCode(attribute.attrType)]);\n }\n if (isEnumAttrType(attribute.attrType)) {\n return enumProcessing(rawData, path(['attrType', 'values'], attribute));\n }\n if (isBooleanType(attribute.attrType?.type)) {\n return booleanProcessing(rawData, getAttrDataTypeDefinition(attribute.attrType));\n }\n switch (attribute.type) {\n case FACET_TYPES.NUMERIC_RANGE_FACET:\n case FACET_TYPES.DATE_RANGE_FACET:\n return numericRangeTypeProcessing(rawData, attribute.attrType && attribute.attrType.type);\n default:\n return defaultProcessing(rawData);\n }\n};\n\nexport const getDefaultRangeByType = (facetType) => {\n switch (facetType) {\n case FACET_TYPES.DATE_RANGE_FACET:\n return [DATE_RANGE_MIN_VALUE, DATE_RANGE_MAX_VALUE];\n case FACET_TYPES.NUMERIC_RANGE_FACET:\n default:\n return [NUMERIC_RANGE_MIN_VALUE, NUMERIC_RANGE_MAX_VALUE];\n }\n};\n\nexport const fixNaNValues = curry((defaultValue, facets) => {\n Object.values(facets).map((facet) =>\n facet.filter((item) => isNaN(item.value)).forEach((item) => (item.value = defaultValue))\n );\n return facets;\n});\n\nexport const fixNaNValue = (defaultValue, facetValue) => {\n return isNaN(facetValue) ? defaultValue : facetValue;\n};\n\nexport const getFacetByFieldName = (fieldName, facets) =>\n facets.find((facet) => facet.fieldName === fieldName || facet.fieldNameForRequest === fieldName);\n\nexport const getAcceptedFacetValues = (facetData, acceptedValues) =>\n Object.keys(facetData)\n .filter((value) => acceptedValues.includes(value))\n .reduce((acc, value) => {\n acc[value] = facetData[value];\n return acc;\n }, {});\n\nexport const mergeConfigs = (facets, configsArray) => {\n const configs = configsArray.reduce((result, config) => {\n result[config.fieldName] = config;\n return result;\n }, {});\n return Object.keys(facets).reduce((result, fieldName) => {\n const config = configs[fieldName];\n result[fieldName] = {...facets[fieldName], ...config};\n return result;\n }, {});\n};\n\nexport const setFiltersToFacets = (facets) =>\n Object.keys(facets).reduce((result, fieldName) => {\n result[fieldName] = {...facets[fieldName], filter: facetTypeToFilter(facets[fieldName].type)};\n return result;\n }, {});\n\nexport const addAvailableEntityTypeValues = (metadata) =>\n map(\n ifElse(\n isTypeFacet,\n (facet) => ({\n ...facet,\n values: addAvailableEntityTypesIfNeeded(metadata, facet.values)\n }),\n identity\n )\n );\n\nexport const filterAllowedEntityTypes = (allowedEntityTypes) =>\n map(\n when(isTypeFacet, (facet) => ({\n ...facet,\n values:\n allowedEntityTypes && allowedEntityTypes.length > 0\n ? facet.values\n .filter((value) => allowedEntityTypes.includes(value))\n .sort(orderByArrayComparator(allowedEntityTypes))\n : facet.values\n }))\n );\n\nexport const getEntityTypeFacetFromState = path(['facets', 'facetsData', 'type']);\n\nconst facetTypeToFilter = (type) =>\n ({\n entityTypeFacet: 'equals',\n facetWithDropdownCheckboxes: 'equals',\n numericRangeFacet: 'range',\n dateRangeFacet: 'range'\n }[type]);\n\nexport const needFacetsCleanUp = (action = {}) => {\n const isTypeFacetAction = path(['payload', 'facetFieldName'], action) === 'type';\n return (\n (action.type === Facets.CHANGE_VALUES && isTypeFacetAction) ||\n action.type === Facets.CLEAR_ALL_VALUES ||\n action.type === Search.CLEAR_ALL\n );\n};\n\nexport const buildValuesLabels = (data = [], values = [], type = '') => {\n return values.map((value) => {\n let range;\n switch (type) {\n case FACET_TYPES.NUMERIC_RANGE_FACET:\n return `${formatNumberAsMetric(+value[0], 10000)} — ${formatNumberAsMetric(+value[1], 10000)}`;\n case FACET_TYPES.DATE_RANGE_FACET:\n range = createRangeServiceFor().getRange(values, data);\n return `${formatMomentDate(moment(range[0]))} \\u2014 ${formatMomentDate(moment(range[1]))}`;\n case FACET_TYPES.ENTITY_TYPE_FACET:\n case FACET_TYPES.WITH_DROPDOWN_CHECKBOXES_FACET:\n default:\n return Maybe.fromNull(data.find((item) => item.value === value)).orSome({label: value || ''}).label;\n }\n });\n};\n\nexport const needShowAllEntityTypeFacetItems = pipe(propOr([], 'values'), length, gt(__, ENTITY_TYPE_FACET_ROW_COUNT));\nexport const getLookupsListFromFacets = pipe(\n pipe(\n filter(isLookupFacet),\n map((facet) => ({\n type: getAttrTypeLookupCode(path(['attrType'], facet)),\n codeValues: flatten(propOr([], 'values', facet))\n })),\n filter(({codeValues}) => codeValues.length > 0)\n ),\n mergeLookupsLists\n);\n\nexport const getUnresolvedLookupsListFromFacet = (facets, resolvedLookups) =>\n pipe(getLookupsListFromFacets, getUnresolvedLookupsList(resolvedLookups))(facets);\n","import {propEq, propOr} from 'ramda';\n\nexport const getConfigForFacet = (facetsGroups) => (facet) => {\n const entityType = facet.entityType || facet.entityTypeUri || 'special';\n const group = facetsGroups.find(propEq('id', entityType));\n const facets = propOr([], 'facets', group);\n return facets.find(propEq('fieldName', facet.fieldName));\n};\n\nexport const reduceFacetsConfig = (facetsGroups) => {\n const getFacetConfig = getConfigForFacet(facetsGroups);\n return (acc, facet) => {\n const config = getFacetConfig(facet);\n return config && !acc.find(propEq('fieldName', facet.fieldName)) ? [...acc, config] : acc;\n };\n};\n","import {getAvailableFacetsGroupsList, getEntityTypeFacetConfig} from '../collectFacets';\nimport {assoc, dissoc, evolve, filter, map, omit, pipe, reduce, values} from 'ramda';\nimport {reduceFacetsConfig} from './parsingUtils';\nimport {isAvailableEntityTypeUri} from '@reltio/mdm-sdk';\n\nexport const parseFacets = (metadata, facets, dataTenants) => {\n const entityTypeFacet = getEntityTypeFacetConfig(metadata);\n if (!facets || facets.length === 0) {\n return {facetsData: {}, facetsConfigs: [entityTypeFacet]};\n }\n\n const selectedEntityTypes = facets.type ? facets.type.values.filter(isAvailableEntityTypeUri(metadata)) : [];\n const availableFacetsGroupsList = getAvailableFacetsGroupsList(metadata, selectedEntityTypes, dataTenants);\n\n const facetsConfigs = pipe(\n dissoc('type'),\n values,\n reduce(reduceFacetsConfig(availableFacetsGroupsList), [entityTypeFacet])\n )(facets);\n\n const facetsData = pipe(\n evolve({\n type: assoc('values', selectedEntityTypes)\n }),\n filter(isInFacetsConfigs(facetsConfigs)),\n map(omit(['entityTypeUri']))\n )(facets);\n\n return {facetsConfigs, facetsData};\n};\n\nconst isInFacetsConfigs = (configs) => (facet) => configs.find((config) => config.fieldName === facet.fieldName);\n","import {\n chain,\n compose,\n either,\n isEmpty,\n isNil,\n partition,\n path,\n pathOr,\n pipe,\n prop,\n propEq,\n propOr,\n reject,\n values\n} from 'ramda';\nimport {getAvailableFacetsGroupsList, getEntityTypeFacetConfig} from '../collectFacets';\nimport {getConfigForFacet} from './parsingUtils';\nimport {\n convertOldFacets,\n findAttributeTypeByUri,\n getEntityType,\n getOldRangeFacetValues,\n isRangeFacet,\n isTypeFacet,\n searchUriToAttrUri\n} from '@reltio/mdm-sdk';\nimport {getSpecialAttribute} from '../advancedSearch/collectSpecialAttributes';\nimport {getAdditionalAttributes} from '../collectAttributes';\n\nexport const mergeFacetValuesByFieldName = pipe(\n (facets) =>\n facets.reduce((acc, facet) => {\n acc[facet.fieldName] = {\n ...facet,\n values: [...propOr([], 'values', facet), ...pathOr([], [facet.fieldName, 'values'], acc)]\n };\n return acc;\n }, {}),\n values\n);\n\nexport const parseOldFacets = (metadata, dataTenants, facets, canUserReadWorkflowDataTask) => {\n const entityTypeFacet = getEntityTypeFacetConfig(metadata);\n if (!facets || isEmpty(facets)) {\n return {facetsData: {}, facetsConfigs: [entityTypeFacet]};\n }\n\n const [tenantFacets, nonTenantFacets] = partition((facet) => facet.fieldName === 'tenants', facets);\n const currentTenant = path([0, 'currentTenant'], tenantFacets);\n\n const [typeFacets, nonTypeFacets] = partition((facet) => facet.fieldName === 'type', nonTenantFacets);\n\n const selectedEntityTypes = chain(propOr([], 'values'), typeFacets);\n const getFacetConfig = compose(getConfigForFacet, getAvailableFacetsGroupsList)(\n metadata,\n selectedEntityTypes,\n dataTenants\n );\n\n const convertedFacets = convertOldFacets(nonTypeFacets);\n\n const isBasicFacetFilter = either(pipe(prop('filter'), isNil), propEq('filter', 'equals'));\n const isAdvancedFacet = (facet) => !getFacetConfig(facet) || !isBasicFacetFilter(facet);\n const hasAdvancedFacets = convertedFacets.some(isAdvancedFacet);\n\n if (hasAdvancedFacets) {\n const advanced = convertedFacets.reduce(\n reduceAdvancedFromFacets(metadata, dataTenants, canUserReadWorkflowDataTask),\n {\n entityTypes: selectedEntityTypes,\n searchParams: []\n }\n );\n return {currentTenant, advanced, facetsConfigs: [], facetsData: {}};\n } else {\n const basicFacets = mergeFacetValuesByFieldName(convertedFacets);\n const facetsConfigs = [entityTypeFacet, ...basicFacets.map(getFacetConfig)];\n const facetsData = [...typeFacets, ...basicFacets].reduce(reduceNewFacetsData(facetsConfigs), {});\n return {currentTenant, facetsConfigs, facetsData};\n }\n};\n\nexport const reduceAdvancedFromFacets = (metadata, dataTenants, canUserReadWorkflowDataTask) => (advanced, facet) => {\n const {entityType: entityTypeUri, fieldName, filter, values} = facet;\n const newSearchParam = {fieldName, filter: filter || 'equals', values: values || []};\n if (entityTypeUri) {\n const attrUri = searchUriToAttrUri(fieldName, entityTypeUri);\n const attrType = findAttributeTypeByUri(metadata, attrUri);\n const entityType = getEntityType(metadata, entityTypeUri);\n const additionalAttribute = getAdditionalAttributes(dataTenants, entityType).find(\n (attr) => attr.fieldName === fieldName\n );\n\n if (advanced.entityTypes.length === 0) {\n advanced.entityTypes.push(entityTypeUri);\n }\n if (advanced.entityTypes.includes(entityTypeUri)) {\n if (additionalAttribute) {\n advanced.searchParams.push(newSearchParam);\n } else if (attrType) {\n advanced.searchParams.push({...newSearchParam, uri: attrType.uri});\n }\n }\n } else {\n const specialAttribute = getSpecialAttribute(fieldName, dataTenants, canUserReadWorkflowDataTask);\n if (specialAttribute) {\n advanced.searchParams.push(newSearchParam);\n }\n }\n return advanced;\n};\n\nexport const reduceNewFacetsData = (facetsConfigs) => (data, facet) => {\n const config = facetsConfigs.find((config) => config.fieldName === facet.fieldName);\n if (config) {\n const values = isRangeFacet(config) ? getOldRangeFacetValues(facet.values) : facet.values;\n const showAllItems = isTypeFacet(config) && facet.showAllEntityTypes ? facet.showAllEntityTypes : null;\n return {\n ...data,\n [facet.fieldName]: reject(isNil, {\n fieldName: facet.fieldName,\n values,\n showAllItems\n })\n };\n } else {\n return data;\n }\n};\n","import {curry, find, pick, pipe, propEq} from 'ramda';\nimport {\n findAttributeTypeByUri,\n getAttributeTypesHierarchyByUri,\n getEntityType,\n getEntityTypeLabel,\n searchUriToAttrUri,\n getFilterOptionsForQueryBuilder\n} from '@reltio/mdm-sdk';\nimport {createAttributeItem, getAdditionalAttributes} from '../collectAttributes';\nimport {collectSpecialAttributesGroups} from '../advancedSearch/collectSpecialAttributes';\n\nconst parseSpecialAttributeData = (metadata, dataTenants, canUserReadWorkflowDataTask, {fieldName}) => {\n const specialAttributeGroup = collectSpecialAttributesGroups({\n dataTenants,\n canUserReadWorkflowDataTask\n }).find((group) => group.attributes.find((attr) => attr.fieldName === fieldName));\n const specialAttr =\n specialAttributeGroup && specialAttributeGroup.attributes.find((attr) => attr.fieldName === fieldName);\n\n return specialAttr\n ? {\n groupName: specialAttributeGroup.title,\n filterOptions: getFilterOptionsForQueryBuilder(specialAttr.attrType, fieldName),\n ...pick(\n [\n 'title',\n 'fieldName',\n 'attrType',\n 'pageSize',\n 'orderType',\n 'dataTenant',\n 'fieldNameForRequest',\n 'dataTenantFieldName'\n ],\n specialAttr\n )\n }\n : null;\n};\n\nconst parseRegularAttributeData = (metadata, {uri, entityTypeUri, fieldName}) => {\n const attrType = findAttributeTypeByUri(metadata, uri);\n if (attrType) {\n const parents = (\n getAttributeTypesHierarchyByUri(metadata, searchUriToAttrUri(fieldName, entityTypeUri), entityTypeUri) || []\n )\n .map(pick(['label', 'name']))\n .slice(0, -1);\n\n return {\n uri,\n groupName: getEntityTypeLabel(metadata, {type: entityTypeUri}),\n filterOptions: getFilterOptionsForQueryBuilder(attrType, fieldName),\n ...createAttributeItem(metadata, attrType, entityTypeUri, fieldName, parents)\n };\n } else {\n return null;\n }\n};\n\nconst parseAdditionalAttributeData = (metadata, dataTenants, {fieldName, entityTypeUri}) => {\n const additionalAttribute = pipe(\n getEntityType(metadata),\n getAdditionalAttributes(dataTenants),\n find(propEq('fieldName', fieldName))\n )(entityTypeUri);\n\n return additionalAttribute\n ? {\n groupName: getEntityTypeLabel(metadata, {type: entityTypeUri}),\n filterOptions: getFilterOptionsForQueryBuilder(additionalAttribute.attrType, fieldName),\n ...additionalAttribute\n }\n : null;\n};\n\nconst parseAttributeData = curry((metadata, dataTenants, canUserReadWorkflowDataTask, attrData) => {\n const {uri} = attrData;\n if (uri && !uri.startsWith('special/')) {\n return parseRegularAttributeData(metadata, attrData);\n } else {\n return (\n parseSpecialAttributeData(metadata, dataTenants, canUserReadWorkflowDataTask, attrData) ||\n parseAdditionalAttributeData(metadata, dataTenants, attrData)\n );\n }\n});\n\nexport {parseAttributeData};\n","import {curry, evolve, pipe, prop, reject} from 'ramda';\nimport nanoid from 'nanoid';\nimport {parseAttributeData} from './parseAttributeData';\nimport {\n convertOldAdvancedAttribute,\n convertTransitionAttributes,\n findClosestCommonAncestor,\n isEmptySearchGroup,\n sanitizeTypesInSearchGroups,\n wrapInArray\n} from '@reltio/mdm-sdk';\nimport {defaultGroupOperator, defaultOperator} from '../../../constants/constants';\n\nexport const parseAttribute = curry((metadata, dataTenants, canUserReadWorkflowDataTask, entityTypeUri, attribute) => {\n return pipe(\n convertOldAdvancedAttribute(metadata, entityTypeUri),\n evolve({\n data: parseAttributeData(metadata, dataTenants, canUserReadWorkflowDataTask)\n })\n )(attribute);\n});\n\nconst parseOldAdvancedSearch = (\n metadata,\n dataTenants,\n canUserReadWorkflowDataTask,\n oldAdvancedSearch = {},\n useSeparateGroups = false\n) => {\n const {searchParams = [], fastSearchParams = [], entityTypes = []} = oldAdvancedSearch;\n const attributes = [...searchParams, ...fastSearchParams]\n .map(\n parseAttribute(\n metadata,\n dataTenants,\n canUserReadWorkflowDataTask,\n findClosestCommonAncestor(metadata, entityTypes)\n )\n )\n .filter((attribute) => attribute && attribute.data);\n\n const makeGroup = curry((operator, attributes) => ({\n id: nanoid(),\n operator,\n attributes,\n entityTypes\n }));\n const groups = useSeparateGroups\n ? attributes.map(pipe(wrapInArray, makeGroup(defaultOperator.value)))\n : wrapInArray(makeGroup(defaultGroupOperator.value, attributes));\n\n return pipe(sanitizeTypesInSearchGroups(metadata), convertTransitionAttributes, reject(isEmptySearchGroup))(groups);\n};\n\nexport const mergeAdvancedAndFacets = (advancedGroups, facetsGroups) => {\n const attributesFromFacets = prop(\n 'attributes',\n facetsGroups.find((group) => group.attributes)\n );\n attributesFromFacets.map((facetAttribute) => advancedGroups[0].attributes.push(facetAttribute));\n return advancedGroups;\n};\n\nexport {parseOldAdvancedSearch as default};\n","import {attributeUriToSearchUri, findAttributeTypeByUri, isComplexAttribute} from '@reltio/mdm-sdk';\nimport {DEFAULT_VIEW, PREVIEW_PANEL_MODES, SEARCH_RESULTS_MODES} from '../../../constants/constants';\nimport {concat, mergeDeepWith, propOr} from 'ramda';\nimport {getInitialColumnsByEntityTypes} from '../searchResults';\n\nexport const OLD_SEARCH_RESULTS_MODES = {\n NO_PREVIEW: 'NoPreview',\n PREVIEW: 'Preview',\n MAP_PREVIEW: 'MapPreview',\n TABLE_VIEW: 'TableView'\n};\n\nexport const NEW_SEARCH_RESULTS_MODES = {\n [OLD_SEARCH_RESULTS_MODES.NO_PREVIEW]: SEARCH_RESULTS_MODES.LIST,\n [OLD_SEARCH_RESULTS_MODES.PREVIEW]: DEFAULT_VIEW,\n [OLD_SEARCH_RESULTS_MODES.MAP_PREVIEW]: DEFAULT_VIEW,\n [OLD_SEARCH_RESULTS_MODES.TABLE_VIEW]: SEARCH_RESULTS_MODES.TABLE\n};\n\nexport const PREVIEW_PANEL_MODES_MAPPING = {\n [OLD_SEARCH_RESULTS_MODES.PREVIEW]: PREVIEW_PANEL_MODES.PROFILE\n};\n\nexport const parseOldView = (metadata, view = {}, viewConfig = {}) => {\n const {mode, tabs = []} = view;\n const {allowedEntityTypes} = viewConfig;\n return {\n searchResultsMode: NEW_SEARCH_RESULTS_MODES[mode] || DEFAULT_VIEW,\n previewPanelMode: PREVIEW_PANEL_MODES_MAPPING[mode] || null,\n entityTypeTab: propOr(null, 'entityTypeUri', findActiveTab(tabs)),\n sortField: 'label',\n sortOrder: 'asc',\n searchResultsColumns: processOldTabs(metadata, allowedEntityTypes, tabs)\n };\n};\n\nconst findActiveTab = (tabs) => tabs.find((tab) => tab.selected) || {};\n\nconst processOldTabs = (metadata, allowedEntityTypes, tabs) => {\n const columnsByEntityTypes = getInitialColumnsByEntityTypes(metadata, allowedEntityTypes);\n const columnsFromTabs = tabs.reduce((result, tab) => {\n result[tab.entityTypeUri] = tab.selectedAttributes\n .map((attribute) => {\n const attrType = findAttributeTypeByUri(metadata, attribute);\n return {\n id: attributeUriToSearchUri(attrType.uri),\n label: attrType.label,\n attrType: attrType\n };\n })\n .filter((attribute) => !isComplexAttribute(attribute.attrType));\n return result;\n }, {});\n return mergeDeepWith(concat, columnsByEntityTypes, columnsFromTabs);\n};\n","import {path, propEq} from 'ramda';\n\nexport const parseOldSearchOptions = (advanced = {}) => {\n const advancedOptions = advanced.options || [];\n const searchByOvOption = advancedOptions.find(propEq('fieldName', 'searchByOv'));\n if (searchByOvOption) {\n const searchByOv = path(['values', 0], searchByOvOption);\n if (typeof searchByOv === 'boolean') {\n return {\n searchByOv: searchByOv,\n ovOnly: searchByOv\n };\n }\n }\n return null;\n};\n","import {assocPath, curry} from 'ramda';\nimport {parseFacets} from './parseFacets';\nimport {parseOldFacets} from './parseOldFacets';\nimport parseOldAdvancedSearch, {mergeAdvancedAndFacets} from './parseOldAdvancedSearch';\nimport {parseAttributeData} from './parseAttributeData';\nimport {parseOldView} from './parseOldView';\nimport {DEFAULT_VIEW} from '../../../constants/constants';\nimport {prepareFacetDataForStore} from '../collectFacets';\nimport {createAdvancedSearchGroupFromFacets} from '../converting/createAdvancedSearchFromFacets';\nimport {mergeConfigs} from '../facet';\nimport {parseOldSearchOptions} from './parseOldSearchOptions';\nimport {getKeywordFromOldSearchState, parseAdvancedSearch} from '@reltio/mdm-sdk';\n\nconst parseSearchState = (metadata, state, config, dataTenants, canUserReadWorkflowDataTask) => {\n try {\n const {version} = state;\n return version === '2.0'\n ? parseNewSearchState(metadata, state, dataTenants, canUserReadWorkflowDataTask)\n : parseOldSearchState(metadata, state, config, dataTenants, canUserReadWorkflowDataTask);\n } catch (e) {\n console.warn(\"Can't parse search state\", e);\n return {\n errors: Array.isArray(e) ? e : [e]\n };\n }\n};\n\nconst replaceSearchResultsColumns = curry((searchResultsColumns, parsedState) => {\n return assocPath(['view', 'searchResultsColumns'], searchResultsColumns, parsedState);\n});\n\nconst parseNewSearchState = (\n metadata,\n {keyword = null, facets = {}, advanced = [], map, view, searchOptions, currentSavedSearchUri, currentTenant},\n dataTenants,\n canUserReadWorkflowDataTask\n) => {\n const newState = {map, keyword, searchOptions};\n const hasActiveAdvancedSearch = advanced.some(\n ({attributes, entityTypes = []}) => attributes.length || entityTypes.length\n );\n if (hasActiveAdvancedSearch) {\n newState.advanced = parseAdvancedSearch(\n parseAttributeData,\n metadata,\n advanced,\n dataTenants,\n canUserReadWorkflowDataTask\n );\n } else {\n newState.facets = parseFacets(metadata, facets, dataTenants);\n }\n\n if (view) {\n newState.view = {\n searchResultsMode: view.searchResultsMode || DEFAULT_VIEW,\n entityTypeTab: view.entityTypeTab,\n sortField: view.sortField,\n sortOrder: view.sortOrder,\n searchResultsColumns: view.tabs,\n previewPanelMode: view.previewPanelMode || null\n };\n }\n\n if (currentSavedSearchUri) {\n newState.currentSavedSearchUri = currentSavedSearchUri;\n }\n if (currentTenant) {\n newState.currentTenant = currentTenant;\n }\n return newState;\n};\n\nconst parseOldSearchState = (metadata, oldState, viewConfig, dataTenants, canUserReadWorkflowDataTask) => {\n const {facets = {}, advanced, view, curSavedSearchUri, useSeparateGroups} = oldState;\n const newState = {\n keyword: getKeywordFromOldSearchState(oldState),\n searchOptions: parseOldSearchOptions(advanced)\n };\n const {\n currentTenant,\n advanced: advancedFromFacets,\n ...parsedFacets\n } = parseOldFacets(metadata, dataTenants, facets, canUserReadWorkflowDataTask);\n const parsedAdvanced = parseOldAdvancedSearch(\n metadata,\n dataTenants,\n canUserReadWorkflowDataTask,\n advanced || advancedFromFacets,\n useSeparateGroups\n );\n const hasActiveAdvancedSearch = parsedAdvanced.some(({attributes}) => attributes.length);\n if (hasActiveAdvancedSearch) {\n const {facetsData, facetsConfigs} = parsedFacets;\n const newData = facetsConfigs.reduce((data, config) => {\n return {\n ...data,\n [config.fieldName]: prepareFacetDataForStore(config.fieldName, facetsData[config.fieldName])\n };\n }, {});\n const groupFromFacets = createAdvancedSearchGroupFromFacets(\n metadata,\n dataTenants,\n Object.values(mergeConfigs(newData, facetsConfigs))\n );\n newState.advanced =\n groupFromFacets.length > 0 ? mergeAdvancedAndFacets(parsedAdvanced, groupFromFacets) : parsedAdvanced;\n } else {\n newState.facets = parsedFacets;\n }\n\n if (view) {\n newState.view = parseOldView(metadata, view, viewConfig);\n }\n\n if (curSavedSearchUri) {\n newState.currentSavedSearchUri = curSavedSearchUri;\n }\n\n if (currentTenant) {\n newState.currentTenant = currentTenant;\n }\n\n return newState;\n};\n\nexport default parseSearchState;\nexport {replaceSearchResultsColumns};\n","import {head, isNil, last, pathOr, unfold} from 'ramda';\nimport {Decimal} from 'decimal.js';\nimport {isFloatingType} from '@reltio/mdm-sdk';\nimport {formatNumberAsMetric, getNumbersMath} from '../../utils/general';\n\nexport const createRangeServiceFor = (attrType) => {\n const NumMath = getNumbersMath(attrType);\n const getRange = (values, data) => {\n const begin = pathOr(pathOr(null, ['value', 0], head(data)), [0, 0], values);\n const end = pathOr(pathOr(null, ['value', 1], last(data)), [0, 1], values);\n if (begin === null || end === null) {\n return [];\n }\n\n if (NumMath.lessThanOrEqualTo(begin, end)) {\n return [begin, end];\n } else {\n return [end, begin];\n }\n };\n\n const adjustRange = (range, min, max) => {\n const start = range[0];\n const end = range[1];\n return [isNil(min) ? start : NumMath.max(start, min), isNil(max) ? end : NumMath.min(end, max)];\n };\n\n const equals = (...args) => NumMath.equals(...args);\n\n const formatNumberForRangeFacet = (value) =>\n NumMath.greaterThan(value, 10000) ? formatNumberAsMetric(value, 10000) : value.toString();\n\n const getBarDomain = (data) => (data.length > 0 ? [head(data).value[0], last(data).value[1]] : []);\n\n const calcScale = (min, max) => {\n if (attrType === 'Long') {\n const delta = max.minus(min);\n\n // calculate ratio\n const ratio = delta.div(2).gt(Number.MAX_SAFE_INTEGER)\n ? new Decimal(Number.MAX_SAFE_INTEGER).mul(2).div(delta)\n : 1;\n\n const ratioFirstValue = min.mul(ratio);\n const ratioLastValue = max.mul(ratio);\n\n // calculate offset\n const offset = ratioFirstValue.lt(Number.MIN_SAFE_INTEGER)\n ? new Decimal(Number.MIN_SAFE_INTEGER).minus(ratioFirstValue)\n : ratioLastValue.gt(Number.MAX_SAFE_INTEGER)\n ? new Decimal(Number.MAX_SAFE_INTEGER).minus(ratioLastValue)\n : 0;\n\n return {ratio: ratio, offset: offset};\n }\n\n return {ratio: 1, offset: 0};\n };\n const revertScale = (value, scale) =>\n NumMath.toFixed(NumMath.div(NumMath.minus(value, scale.offset), scale.ratio), 0);\n\n const applyScale = (value, scale) => Number(NumMath.plus(NumMath.mul(value, scale.ratio), scale.offset));\n\n const bigNumbersTickFormatterX = (formatter, scale) => (value) => formatter(revertScale(value, scale));\n\n const addRanges = (values = [], start, end, interval) => {\n if (values.length === 0) {\n return [];\n }\n\n const firstValue = values[0].value;\n const lastValue = values[values.length - 1].value;\n const headValues = NumMath.greaterThan(firstValue, start)\n ? unfold(\n (n) => (NumMath.lessThan(n, firstValue) ? [{value: n, number: 0}, NumMath.plus(n, interval)] : false),\n start\n )\n : [];\n const tailValues = NumMath.lessThan(lastValue, NumMath.minus(end, interval))\n ? unfold(\n (n) =>\n NumMath.lessThanOrEqualTo(n, end) ? [{value: n, number: 0}, NumMath.plus(n, interval)] : false,\n NumMath.plus(lastValue, interval)\n )\n : [];\n return [...headValues, ...values, ...tailValues];\n };\n\n const getInterval = (from, to, bars = 50) => {\n if (from === to) {\n return 1;\n } else {\n return isFloatingType(attrType)\n ? (to - from) / bars\n : NumMath.ceil(NumMath.div(NumMath.minus(to, from), bars));\n }\n };\n\n return {\n NumMath,\n getRange,\n formatNumberForRangeFacet,\n getBarDomain,\n calcScale,\n revertScale,\n applyScale,\n bigNumbersTickFormatterX,\n adjustRange,\n equals,\n addRanges,\n getInterval\n };\n};\n","import queryString from 'query-string';\nimport {pipe} from 'ramda';\n\nconst addPrefixIfNecessary = (query) => (query ? `?${query}` : '');\nconst stringifyObject = (urlSearchObj) => queryString.stringify(urlSearchObj, {strict: false});\nexport const stringifySearch = pipe(stringifyObject, addPrefixIfNecessary);\n","import {\n __,\n allPass,\n always,\n append,\n assoc,\n both,\n complement,\n compose,\n concat,\n cond,\n defaultTo,\n evolve,\n filter,\n flatten,\n has,\n identity,\n ifElse,\n inc,\n join,\n length,\n lt,\n map,\n path,\n pathOr,\n pipe,\n pluck,\n prop,\n propEq,\n propOr,\n propSatisfies,\n reduce,\n slice,\n split,\n T,\n uniq,\n values,\n when\n} from 'ramda';\nimport {\n ActivityFilters,\n addGlobalFilterToQuery,\n attributeUriToSearchUri,\n basicFilterBuildRules,\n buildBasicFilterString,\n buildComplexFilterString,\n buildFilterHierarchyList,\n buildFilterQueryString,\n buildOperationsToString,\n canWrapInSameAttribute,\n FilterOptions,\n getEntityType,\n getRootFieldName,\n isAndOperator,\n isAvailableEntityType,\n isDateType,\n isOrOperator,\n isValidSearchGroup,\n isValidSearchGroupAttribute,\n joinFilterStrings,\n Maybe,\n parseCompositeFilters,\n requestForDataTenant,\n shiftDownOperators,\n shiftUpOperators,\n wrapQueryWithBrackets\n} from '@reltio/mdm-sdk';\nimport {getEnvironment, getTenant} from '../../utils/general';\nimport {stringifySearch} from '../../utils/url';\nimport {DEFAULT_SEARCH_SELECT, ROWS_PER_PAGE_OPTIONS} from '../../constants/constants';\n\nexport const isNotEmptyParam = (param) => (param.values && param.values.length) || param.rawFilter;\n\nconst prepareDataTenantFilters = (facet) =>\n facet.dataTenant\n ? [\n {\n filter: 'equals',\n fieldName: facet.dataTenantFieldName,\n values: [facet.dataTenant]\n }\n ]\n : [];\n\nconst getFieldNameForRequestRule = (extraBuildRules = []) => [\n prop('fieldNameForRequest'),\n ({fieldNameForRequest, ...otherData}) => {\n const query = cond([...extraBuildRules, ...basicFilterBuildRules])({\n ...otherData,\n fieldName: fieldNameForRequest\n });\n return pipe(\n buildFilterQueryString(),\n wrapQueryWithBrackets\n )([\n {\n rawFilter: query\n },\n ...prepareDataTenantFilters(otherData)\n ]);\n }\n];\n\nexport const buildQuery = buildFilterQueryString([getFieldNameForRequestRule()]);\n\nexport const buildQueryTree = pipe(filter(isNotEmptyParam), buildFilterHierarchyList);\n\nexport const buildEntitiesUrl = (searchParams, options = {}) => {\n const {sortOrder, sortField, select, forceOvOnly, searchOptions, activityFilter, globalFilter} = options;\n const filterParam = pipe(buildQuery, addGlobalFilterToQuery(globalFilter))(searchParams);\n const page = options.page || 0;\n const rowsPerPage = options.rowsPerPage || ROWS_PER_PAGE_OPTIONS[0];\n\n const urlSearch = {\n filter: filterParam || undefined,\n select: buildSelectParam(searchParams, activityFilter, select),\n max: rowsPerPage,\n offset: page * rowsPerPage,\n sort: sortField || undefined,\n order: sortOrder || undefined,\n scoreEnabled: false,\n options: (forceOvOnly ? addToSearchOptions(searchOptions, 'ovOnly') : searchOptions) || undefined,\n activeness: activityFilter || undefined\n };\n\n return `entities${stringifySearch(urlSearch)}`;\n};\n\nconst addToSearchOptions = (options, value) => {\n options = options || '';\n const splitted = options.split(',').filter(identity);\n return splitted.includes(value) ? options : splitted.concat(value).join(',');\n};\n\nexport const buildEntitiesByUrisRequest = (entitiesUris, searchParams, options = {}) => {\n const {select, searchOptions, activityFilter} = options;\n\n const body = {\n select: buildSelectParam(searchParams, activityFilter, select),\n uris: entitiesUris,\n options: addToSearchOptions(searchOptions, 'ovOnly')\n };\n\n return {\n url: 'entities/_byUris',\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nconst buildSelectParam = (searchParams, activityFilter, select = []) => {\n const selectParams = DEFAULT_SEARCH_SELECT.concat(select);\n if (activityFilter && activityFilter !== ActivityFilters.ACTIVE_ONLY) {\n selectParams.push('startDate', 'endDate');\n }\n return uniq(selectParams).join(',');\n};\n\nexport const businessCardAttributeURIsSelectRule = propOr([], 'businessCardAttributeURIs');\n\nexport const geoLocationAttributesSelectRule = compose(\n flatten,\n map((item) => [item.latitude, item.longitude]),\n propOr([], 'geoLocationAttributes')\n);\n\nexport const collectAdditionalSelect = (metadata, searchParams, selectRules = []) => {\n const entityTypesForSearch = Maybe.fromNull(\n searchParams.find((param) => param.fieldName === 'type' && param.values.length)\n )\n .map(prop('values'))\n .orSome(pluck('uri', metadata.entityTypes));\n const additionalAttrs = entityTypesForSearch.map((entityTypeUri) => {\n const entityType = getEntityType(metadata, entityTypeUri);\n\n return selectRules\n .reduce((attrUris, rule) => attrUris.concat(rule(entityType)), [])\n .map(prepareAttrUriForSearch);\n });\n return uniq(flatten(additionalAttrs).map(getFirstLevelSearchUri));\n};\n\nexport const prepareAttrUriForSearch = attributeUriToSearchUri;\n\nexport const getFirstLevelSearchUri = pipe(split('.'), slice(0, 2), join('.'));\n\nexport const buildFacetsRequest = (facets, searchParams, excludeFields = [], options = {}, extraUrlParams = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const dataTenantSearchParams = facets.length === 1 ? prepareDataTenantFilters(facets[0]) : [];\n const filterParam = pipe(\n filter((param) => param.forceInclude || !excludeFields.includes(param.fieldName)),\n concat(__, dataTenantSearchParams),\n buildQuery,\n addGlobalFilterToQuery(globalFilter)\n )(searchParams);\n const body = facets.map((facet) => {\n const facetBody = {\n fieldName: facet.fieldNameForRequest || facet.fieldName,\n pageSize: facet.pageSize,\n pageNo: facet.pageNumber || 1,\n orderType: facet.orderType\n };\n if (!facet.disableIncludeFilter) {\n facetBody.includeFilter = facet.includeFilter || facet.values;\n }\n return facetBody;\n });\n\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined,\n ...extraUrlParams\n };\n\n return {\n url: `entities/_facets${stringifySearch(urlSearch)}`,\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nexport const buildPotentialMatchesFacetUrl = (from, to, bars, searchParams, excludeFields = [], options = {}) => {\n const env = getEnvironment(),\n tenant = getTenant();\n const urlSearch = preparePotentialMatchesUrlSearch(from, to, bars, searchParams, excludeFields, options);\n return `api/${env}/${tenant}/entities/potentialMatches${stringifySearch(urlSearch)}`;\n};\n\nexport const buildMatchScoresFacetUrl = (from, to, bars, searchParams, excludeFields = [], options = {}) => {\n const env = getEnvironment(),\n tenant = getTenant();\n const urlSearch = preparePotentialMatchesUrlSearch(from, to, bars, searchParams, excludeFields, options);\n return `api/${env}/${tenant}/entities/matchScores${stringifySearch(urlSearch)}`;\n};\n\nconst preparePotentialMatchesUrlSearch = (from, to, bars, searchParams, excludeFields, options) => {\n const {searchOptions, activityFilter, globalFilter, dataTenant} = options;\n const filterParam = buildPureSearchQuery(searchParams, excludeFields, globalFilter);\n return {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n from,\n to,\n bars,\n activeness: activityFilter || undefined,\n dataTenant\n };\n};\n\nexport const buildTypeaheadRequest = ({entityTypes}, searchValue, maxSuggestions) => {\n const entityForRequest = entityTypes.filter(isAvailableEntityType).map(prop('uri'));\n const entityFilter = {\n filter: 'equals',\n fieldName: 'type',\n values: entityForRequest\n };\n const fuzzyFilter = {\n filter: 'containsWordStartingWith',\n fieldName: 'attributes',\n values: [searchValue]\n };\n const typeAheadFilter = buildQuery([entityFilter, fuzzyFilter]);\n const env = getEnvironment(),\n tenant = getTenant();\n const urlSearch = {\n filter: typeAheadFilter || undefined,\n scoreEnabled: true,\n max: maxSuggestions + 1\n };\n return {\n url: `api/${env}/${tenant}/entities/_typeAheadSearch${stringifySearch(urlSearch)}`\n };\n};\n\nexport const buildHistogramUrl = (facet, searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter, ...restOptions} = options;\n const filterParam = buildPureSearchQuery(\n searchParams.concat(prepareDataTenantFilters(facet)),\n excludeFields,\n globalFilter\n );\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n };\n const body = [\n {\n fieldName: facet.fieldNameForRequest || facet.fieldName,\n facetType: 'histogram',\n ...restOptions\n }\n ];\n\n return {\n url: `entities/_facets${stringifySearch(urlSearch)}`,\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nexport const buildStatsUrl = (facet, searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const filterParam = buildPureSearchQuery(\n searchParams.concat(prepareDataTenantFilters(facet)),\n excludeFields,\n globalFilter\n );\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n };\n const body = [\n {\n fieldName: facet.fieldNameForRequest || facet.fieldName,\n facetType: 'stats'\n }\n ];\n\n return {\n url: `entities/_facets${stringifySearch(urlSearch)}`,\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nexport const buildPureSearchQuery = (searchParams, excludeFields = [], globalFilter) => {\n return pipe(\n filter((param) => param.forceInclude || !excludeFields.includes(param.fieldName)),\n buildQuery,\n addGlobalFilterToQuery(globalFilter)\n )(searchParams);\n};\n\nexport const buildTotalUrlQuery = (searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const filterParam = buildPureSearchQuery(searchParams, excludeFields, globalFilter);\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n };\n\n return stringifySearch(urlSearch).slice(1);\n};\n\nexport function callSearchRequestForTenant({searchRequest, url, options, dataTenant, customerTenant, dtssPath}) {\n return dataTenant\n ? requestForDataTenant({requestProvider: searchRequest, url, options, dataTenant, customerTenant, dtssPath})\n : searchRequest(`api/${getEnvironment()}/${customerTenant}/${url}`, options);\n}\n\nexport const buildTotalUrl = (searchParams, excludeFields = [], options) => {\n const urlQuery = buildTotalUrlQuery(searchParams, excludeFields, options);\n return `entities/_total${urlQuery ? `?${urlQuery}` : ''}`;\n};\n\nexport const buildTotalUrlForQuery = (query) => {\n const env = getEnvironment(),\n tenant = getTenant();\n\n return `api/${env}/${tenant}/entities/_total?${query}`;\n};\n\nconst getAttributeType = path(['data', 'attrType', 'type']);\n\nconst groupAttributeFilters = (result, attribute) => {\n let {orGroupIndex = 0} = result;\n const {filters} = result;\n const {values, filter, operator} = attribute;\n if (isOrOperator(operator)) {\n orGroupIndex = inc(orGroupIndex);\n }\n const attributeFilters = pathOr({}, ['filters', orGroupIndex], result);\n const attributeFilter = {\n filter,\n fieldName: path(['data', 'fieldName'], attribute),\n fieldNameForRequest: path(['data', 'fieldNameForRequest'], attribute),\n dataTenant: path(['data', 'dataTenant'], attribute),\n dataTenantFieldName: path(['data', 'dataTenantFieldName'], attribute),\n values: getQueryValuesArray(values),\n type: getAttributeType(attribute),\n operator\n };\n\n const rootFieldName = getRootFieldName(attributeFilter);\n attributeFilters[rootFieldName] = concat(propOr([], rootFieldName, attributeFilters), [attributeFilter]);\n\n return {orGroupIndex, filters: assoc(orGroupIndex, attributeFilters, filters)};\n};\n\nconst canWrapAnyChildrenInSameAttribute = (filterHierarchyList = []) =>\n filterHierarchyList.reduce((result, filterHierarchy) => {\n return (\n result ||\n canWrapInSameAttribute(filterHierarchy.children) ||\n canWrapAnyChildrenInSameAttribute(filterHierarchy.children)\n );\n }, false);\n\nconst prepareAttributeFilterOperations = (disableInSameAttributeValue) => (operations, filter) => {\n const attributesFilters = values(filter);\n const attributesOperations = attributesFilters.map((sameRootFieldNameFilters) => {\n const operator = path([0, 'operator'], sameRootFieldNameFilters);\n const filterHierarchyList = pipe(parseCompositeFilters, buildFilterHierarchyList)(sameRootFieldNameFilters);\n if (!disableInSameAttributeValue && canWrapAnyChildrenInSameAttribute(filterHierarchyList)) {\n return {\n filter: sameRootFieldNameFilters,\n operator: cond([\n [isAndOperator, always('and')],\n [isOrOperator, identity],\n [T, always(null)]\n ])(operator)\n };\n }\n return {\n filter: sameRootFieldNameFilters,\n operator: operator\n };\n });\n\n return append(attributesOperations, operations);\n};\n\nconst getOperationObject = (operand, operator) => ({operand, operator});\n\nconst isMultipleComplexValuesFormat = both(propSatisfies(lt(1), 'length'), propSatisfies(Array.isArray, 0));\n\nconst specialFiltersRules = [\n [\n propEq('fieldName', 'rdmLookups.resolved'),\n ({fieldName, values}) =>\n buildBasicFilterString({\n filter: FilterOptions.EQUALS,\n fieldName,\n values: [!values[0]]\n })\n ],\n [\n allPass([\n propEq('filter', FilterOptions.EQUALS),\n propSatisfies(isMultipleComplexValuesFormat, 'values'),\n complement(propEq('fieldName', 'type')),\n propSatisfies(complement(isDateType), 'type')\n ]),\n ({fieldName, values}) =>\n pipe(\n map((values) =>\n values.length > 1\n ? buildComplexFilterString({fieldName, values, filter: 'listEquals'})\n : buildBasicFilterString({fieldName, values, filter: 'equals'})\n ),\n joinFilterStrings(' and ')\n )(values)\n ]\n];\n\nconst buildQueryToOperationObject = (filtersRules = [], disableInSameAttributeValue = false) => (items) => {\n const extraRules = [...specialFiltersRules, ...filtersRules];\n return items.map((item) =>\n getOperationObject(\n buildFilterQueryString(\n [getFieldNameForRequestRule(extraRules), ...extraRules],\n disableInSameAttributeValue\n )(item.filter),\n item.operator\n )\n );\n};\n\nconst getQueryValuesArray = pipe(defaultTo([]), map(when(has('value'), prop('value'))));\n\nconst buildGroupQuery = (query = '', entityTypes = []) => {\n const entityTypeCondition = [\n {\n filter: 'equals',\n fieldName: 'type',\n values: entityTypes\n }\n ];\n const entityTypesPart = buildFilterQueryString()(entityTypeCondition);\n return entityTypesPart + (entityTypesPart && query ? ` and ${wrapQueryWithBrackets(query)}` : query);\n};\nconst toArray = (value) => (Array.isArray(value) ? value : Object.keys(value).map((key) => value[key]));\nexport const buildQueryForAdvancedSearchGroups = (groups, filtersRules = [], disableInSameAttributeValue = false) => {\n const groupsOperations = groups\n .map(evolve({attributes: shiftDownOperators}))\n .filter(isValidSearchGroup)\n .map((group) => {\n const attributesQuery = pipe(\n prop('attributes'),\n filter(isValidSearchGroupAttribute),\n reduce(groupAttributeFilters, {filters: []}),\n prop('filters'),\n toArray,\n reduce(prepareAttributeFilterOperations(disableInSameAttributeValue), []),\n map(buildQueryToOperationObject(filtersRules, disableInSameAttributeValue)),\n flatten,\n filter((operation) => operation.operand),\n map(evolve({operand: (operand) => wrapQueryWithBrackets(operand, false)})),\n shiftUpOperators,\n buildOperationsToString\n )(group);\n return getOperationObject(buildGroupQuery(attributesQuery, group.entityTypes), group.operator);\n })\n .filter((groupOperation) => groupOperation.operand);\n\n return pipe(\n ifElse(\n pipe(length, lt(1)),\n map((operation) => getOperationObject(wrapQueryWithBrackets(operation.operand), operation.operator)),\n identity\n ),\n buildOperationsToString\n )(groupsOperations);\n};\n","import {\n __,\n complement,\n concat,\n curry,\n equals,\n filter,\n flatten,\n intersection,\n isNil,\n map,\n memoizeWith,\n pipe,\n pluck,\n prop,\n reject,\n sort,\n uniq\n} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {getEntityType, getLastUriPart, isNested, isReadableAttribute, Maybe} from '@reltio/mdm-sdk';\n\nimport {SEARCH_RESULTS_MODES} from '../../constants/constants';\nimport {envSpecificKey} from '../../utils/general';\nimport {getFirstLevelSearchUri, prepareAttrUriForSearch} from './searchEngine';\nimport {entityTypeProcessing} from './facet';\n\nexport const isTableMode = (mode) => mode === SEARCH_RESULTS_MODES.TABLE;\n\n//prettier-ignore\nconst collectColumnsForest = curry((metadata, entityTypeUri, excludeIds = []) => {\n const entityType = Maybe.fromNull(getEntityType(metadata, entityTypeUri)).orSome({});\n return collectSpecialColumns(excludeIds).concat(collectAttributeColumns(\n (entityType.attributes || []).concat(entityType.analyticsAttributes || [])\n ));\n});\n\nexport const memoizedCollectColumnsForestWithoutLabel = memoizeWith(\n (metadata, entityTypeUri) => envSpecificKey(entityTypeUri),\n collectColumnsForest(__, __, ['label'])\n);\n\nexport const getAdditionalColumns = (metadata, entityTypeUri, headColumns) =>\n headColumns &&\n deepFilter(\n memoizedCollectColumnsForestWithoutLabel(metadata, entityTypeUri),\n (column) => !headColumns.some((elem) => column.id === elem.id)\n );\n\nexport const collectSpecialColumns = (excludeIds = []) =>\n [\n {\n id: 'label',\n label: i18n.text('Profile')\n },\n {\n id: 'entityId',\n label: i18n.text('Entity ID')\n }\n ].filter((column) => !excludeIds.includes(column.id));\n\nconst collectAttributeColumns = (attributes = []) =>\n attributes.filter(isReadableAttribute).map((attrType) => {\n const column = {\n id: prepareAttrUriForSearch(attrType.uri),\n label: attrType.label || getLastUriPart(attrType.uri),\n attrType\n };\n const subAttrs = attrType.attributes || attrType.analyticsAttributes;\n if (attrType.type === 'Nested' && subAttrs) {\n column.children = collectAttributeColumns(subAttrs);\n }\n return column;\n });\n\nexport const getChildrenLeafsByParentId = (columns, parentId) => {\n const parent = findNodeInForest(columns, parentId);\n return getFlatChildrenLeafs(parent);\n};\n\nconst findNodeInForest = (children, id) => {\n let result = null;\n const walk = (children) => {\n children.some((node) => {\n if (node.id === id) {\n result = node;\n return true;\n }\n if (node.children) {\n return walk(node.children, id);\n }\n });\n };\n walk(children);\n return result;\n};\n\n//prettier-ignore\nconst getFlatChildrenLeafs = item => {\n return flatten(\n (item.children || []).map(node => (node.children ? getFlatChildrenLeafs(node) : [node]))\n );\n};\n\nexport const deepFilter = (nodes, filter) =>\n nodes.filter(filter).map((node) =>\n node.children\n ? {\n ...node,\n children: deepFilter(node.children, filter)\n }\n : node\n );\n\nexport const collectColumnsByIds = (metadata, entityTypeUri, ids) => {\n const columns = collectColumnsForest(metadata, entityTypeUri);\n return uniq(\n pipe(\n concat(['label']),\n map((id) => findNodeInForest(columns, id)),\n reject(isNil),\n filter(pipe(prop('attrType'), complement(isNested)))\n )(ids)\n );\n};\n\nexport const getInitialColumnsByEntityTypes = (metadata, allowedEntityTypes, defaultTabs = {}) => {\n const entityTypesFacetData = entityTypeProcessing(metadata, {}, allowedEntityTypes);\n const defaultColumnIds = prop('*', defaultTabs);\n\n return entityTypesFacetData.reduce((result, item) => {\n const columnsIds = defaultTabs[item.value] || defaultColumnIds;\n result[item.value] = isNil(columnsIds)\n ? collectSpecialColumns()\n : collectColumnsByIds(metadata, item.value, columnsIds);\n return result;\n }, {});\n};\n\nconst orderComparator = (order) => (item1, item2) => order.indexOf(item1.value) - order.indexOf(item2.value);\n\nexport const getEntityTypesForTabs = ({entityTypes}, tabs = [], selectedEntityTypes = []) => {\n const orderInMetadata = pluck('uri', entityTypes);\n const metadataOrderComparator = orderComparator(orderInMetadata);\n const selectedValuesOrderComparator = orderComparator(selectedEntityTypes);\n const filteredTabs = tabs.filter(({value}) =>\n selectedEntityTypes.length === 0 ? true : selectedEntityTypes.includes(value)\n );\n return sort(\n selectedEntityTypes.length === 0 ? metadataOrderComparator : selectedValuesOrderComparator,\n filteredTabs\n );\n};\n\nexport const isColumnsEqual = (selected, initial) => {\n const getId = (column) => column.id;\n return equals(selected.map(getId), initial.map(getId));\n};\n\nexport const buildSelectFromColumns = (columns) => {\n const specialColumns = collectSpecialColumns();\n return uniq(\n columns\n .filter((column) => !specialColumns.find((specialColumn) => specialColumn.id === column.id))\n .map(pipe(prop('id'), getFirstLevelSearchUri))\n );\n};\n\nexport const needRequestAfterColumnsChanges = (columns, prevColumns) => {\n const select = buildSelectFromColumns(columns);\n const prevSelect = buildSelectFromColumns(prevColumns);\n return !equals(intersection(select, prevSelect), select);\n};\n","let appConfig = {};\nexport const getConfig = () => appConfig;\nexport const setConfig = (config) => (appConfig = config);\n\nconst getAppConfigParam = (name) => appConfig[name];\n\nexport const getApiPath = () => getAppConfigParam('apiPath');\nexport const getImagePath = () => getAppConfigParam('imagePath');\nexport const getMaxRecommended = () => getAppConfigParam('maxRecommended') || 5;\n","import {ErrorPopup} from '@reltio/components';\nimport {getRequestErrorMessage} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\n\nexport const showServerError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Server Error'),\n message: getRequestErrorMessage(error, i18n.text('Something went wrong...'))\n });\n};\n\nexport const showUpdateSearchStateErrors = (errors = []) => {\n console.error(errors); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: i18n.text(\"Can't apply search state\")\n });\n};\n\nexport const showLoadSavedSearchErrors = (errors = []) => {\n console.error(errors); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: i18n.text(\"Saved Search can't be applied\")\n });\n};\n\nexport const showImportFromDataTenantError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Import Error'),\n message: i18n.text(\"Record can't be imported\")\n });\n};\n\nexport const showLoadEntityError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: getRequestErrorMessage(error, i18n.text(\"Can't load entity\"))\n });\n};\n","import {Decimal} from 'decimal.js';\n\nexport const plus = (a, b) => new Decimal(a).add(b);\n\nexport const minus = (a, b) => new Decimal(a).sub(b);\n\nexport const div = (a, b) => new Decimal(a).div(b);\n\nexport const mul = (a, b) => new Decimal(a).mul(b);\n\nexport const greaterThan = (a, b) => Decimal(a).greaterThan(b);\n\nexport const greaterThanOrEqualTo = (a, b) => new Decimal(a).greaterThanOrEqualTo(b);\n\nexport const lessThan = (a, b) => new Decimal(a).lessThan(b);\n\nexport const lessThanOrEqualTo = (a, b) => new Decimal(a).lessThanOrEqualTo(b);\n\nexport const floor = (a) => new Decimal(a).floor();\n\nexport const ceil = (a) => new Decimal(a).ceil();\n\nexport const min = (a, b) => Decimal.min(a, b);\n\nexport const max = (a, b) => Decimal.max(a, b);\n\nexport const equals = (a, b) => new Decimal(a).equals(b);\n\nexport const clamp = (min, max, value) => {\n if (new Decimal(min).gt(max)) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n const bigValue = new Decimal(value);\n return bigValue.lt(min) ? min : bigValue.gt(max) ? max : value;\n};\n\nexport const toFixed = (value, digits) => new Decimal(value).toFixed(digits);\n","import {clamp as rclamp} from 'ramda';\n\nexport const plus = (a, b) => Number(a) + Number(b);\n\nexport const minus = (a, b) => a - b;\n\nexport const div = (a, b) => a / b;\n\nexport const mul = (a, b) => a * b;\n\nexport const greaterThan = (a, b) => Number(a) > Number(b);\n\nexport const greaterThanOrEqualTo = (a, b) => Number(a) >= Number(b);\n\nexport const lessThan = (a, b) => Number(a) < Number(b);\n\nexport const lessThanOrEqualTo = (a, b) => Number(a) <= Number(b);\n\nexport const floor = (a) => Math.floor(a);\n\nexport const ceil = (a) => Math.ceil(a);\n\nexport const min = (a, b) => Math.min(a, b);\n\nexport const max = (a, b) => Math.max(a, b);\n\nexport const equals = (a, b) => a === b;\n\nexport const clamp = (min, max, value) => rclamp(Number(min), Number(max), Number(value));\n\nexport const toFixed = (value, digits) => Number(value).toFixed(digits);\n","import queryString from 'query-string';\nimport {compose, memoizeWith, identity} from 'ramda';\nimport {isNumber} from './maybe';\nimport i18n from 'ui-i18n';\nimport moment from 'moment';\nimport {Decimal} from 'decimal.js';\nimport * as BNMath from './bigNumbersMath';\nimport * as NMath from './numbersMath';\n\nlet tenant;\nexport const setTenant = (_tenant) => {\n tenant = _tenant;\n};\n\nlet env;\nexport const setEnvironment = (_env) => {\n env = _env;\n};\n\nexport const getTenant = () => {\n return tenant;\n};\n\nexport const getEnvironment = () => {\n return env ? env.toString() : '';\n};\n\nexport const interpolate = (string, params) => {\n let template = string;\n for (let key in params) {\n template = template.replace(new RegExp('\\\\$\\\\{' + key + '\\\\}', 'g'), params[key]);\n }\n return template;\n};\n\nexport const clone = compose(JSON.parse, JSON.stringify);\n\nexport const redirectTo = (tenant, env) => {\n const searchState = queryString.parse(window.location.search);\n window.location.search = queryString.stringify({...searchState, tenant, env});\n};\n\nexport const log = (i) => {\n console.log(i); //eslint-disable-line\n return i;\n};\n\nexport const formatNumberAsMetric = (value, limit) => {\n if (!isNumber(value)) {\n return '';\n }\n\n const NumMath = getNumbersMath(Decimal.isDecimal(value) && 'Long');\n if (\n NumMath.lessThanOrEqualTo(value, Number.MAX_SAFE_INTEGER) &&\n NumMath.greaterThanOrEqualTo(value, Number.MIN_SAFE_INTEGER)\n ) {\n return NumMath.greaterThan(value, limit || 1000)\n ? i18n.number(value, '0,0.0a').toUpperCase()\n : i18n.number(value, '0,0[.]0');\n } else {\n return NumMath.greaterThan(value, limit || 1000)\n ? i18n.number(NumMath.div(value, 1e12), '0,0.0') + 'T'\n : value.toString();\n }\n};\n\nexport const envSpecificKey = (key) => {\n const tenant = getTenant();\n const env = getEnvironment();\n return `${tenant}_${env}_${key}`;\n};\n\nexport const formatMomentDate = (momentDate) => {\n return momentDate.format(moment.localeData().longDateFormat('L'));\n};\n\nexport const getNumbersMath = (attrType) => (attrType === 'Long' ? BNMath : NMath);\n\nexport const noop = () => {};\n\nexport const memoizedWrapInArray = memoizeWith(identity, (uri) => [uri]);\n","// prettier-ignore\nexport const lens = (getter, setter) => {\n return {\n get: getter,\n set: setter,\n compose: l => lens(\n obj => l.get(getter(obj)),\n (obj, value) => setter(obj, l.set(getter(obj), value))\n )\n };\n};\n\n// prettier-ignore\nexport const createLens = fieldName => lens(\n obj => obj[fieldName],\n (obj, value) => Object.assign({}, obj, {[fieldName]: value})\n);\nexport function inArrayByIndex(index) {\n return lens(\n (arr) => arr[index],\n (arr, val) => ((arr = [...arr]), (arr[index] = val), arr)\n );\n}\nexport const inObject = createLens;\nexport const prop = (key) => (typeof key === 'string' ? createLens(key) : inArrayByIndex(key));\n\nexport const path = (key, ...keys) => (keys.length ? prop(key).compose(path(...keys)) : prop(key));\n","export const isObject = (value) => typeof value === 'object' && value !== null;\nexport const isNumber = (value) => !isNaN(parseFloat(value)) && isFinite(value);\nexport const isString = (value) => typeof value === 'string' || value instanceof String;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Headers-styles-container--Zbdka\",\"title\":\"Headers-styles-title--TvsMA\",\"actionsBar\":\"Headers-styles-actionsBar--RXMy4\",\"splitter\":\"Headers-styles-splitter--sCvn6\",\"headerIcon\":\"Headers-styles-headerIcon--c2qe7\",\"previewSwitcher\":\"Headers-styles-previewSwitcher--Ppqem\",\"tabsContainer\":\"Headers-styles-tabsContainer--lhDXc\",\"number\":\"Headers-styles-number--trErH\"};"],"names":["AvatarStates","className","icon","avatarText","rootClasses","otherProps","state","setState","useState","useEffect","ICON_MODE","TEXT_MODE","onImageLoadFail","ERROR_MODE","Avatar","classnames","iconRoot","src","onError","textRoot","useStyles","makeStyles","root","display","alignItems","justifyContent","width","height","check","color","ImportModes","classes","tooltip","onClick","noop","mode","INIT","styles","SmallIconButton","button","size","tooltipTitle","CloudDownloadIcon","PROGRESS","CircularProgress","spinner","SUCCESS","Done","renderCurrentMode","scroll","element","scrollIntoView","block","behavior","clearScrollTimer","scrollTimer","clearTimeout","isScrolledIntoView","scrollableParent","elemTop","offsetTop","elemBottom","clientHeight","scrollTop","theme","from","background","highlighted","animationName","animationDuration","animationIterationCount","item","minHeight","borderBottom","flexDirection","content","fontSize","backgroundColor","clickable","cursor","selected","fade","palette","primary","main","inactive","inactiveBackground","inactiveHoverBackground","inactiveSelectedBackground","inactiveSelectedHoverBackground","justImported","avatar","marginLeft","image","marginTop","marginBottom","info","flexGrow","overflow","overflowWrap","wordWrap","label","lineHeight","fontWeight","marginRight","textDecoration","secondaryLabel","businessCard","secondRow","connect","metadata","mdmModule","entities","entityToHighlight","selectedEntityUri","onEntityClick","onEntityHover","entitiesImportStatus","entityButtonsRenderer","list","useRef","useDidUpdateEffect","current","querySelectorAll","length","parentElement","setTimeout","ref","map","entity","getLabel","businessCardText","getBusinessCardAttributesText","isActive","isActiveObject","entityUri","uri","entityUriForLink","getEntityUriForLink","importStatus","prop","key","undefined","onMouseEnter","onMouseLeave","EntityAvatar","avatarClassName","imageClassName","EntityUriLink","value","EntityTypeBadge","getEntityId","FacetsActions","_extends","Object","assign","target","i","arguments","source","prototype","hasOwnProperty","call","apply","this","props","React","viewBox","version","xmlns","stroke","strokeWidth","fill","fillRule","opacity","d","ConfigureColumnsButton","entityTypeUri","headColumns","onSelectColumns","popupAnchor","setPopupAnchor","filterText","setFilterText","useSelector","handlePopupClose","handleColumnClick","useCallback","data","checked","columnsForest","memoizedCollectColumnsForestWithoutLabel","children","getChildrenLeafsByParentId","id","selectedColumns","concat","filter","column","find","child","i18n","ConfigureColumnsIcon","e","currentTarget","ConfigureColumnsPopup","open","anchorEl","onListItemClick","onClose","onSearch","renderConfigureColumnsPopup","propTypes","PropTypes","HeadCellRenderer","headCellData","headIndex","sortOrder","sortField","sortHandler","canCheck","onCheck","headerCheckboxState","openConfigColumnPopup","classNames","path","Checkbox","indeterminate","onChange","sortable","TableSortLabel","active","Boolean","direction","component","MoreVertIcon","withTableContext","pick","HeadCellRendererWithCheckbox","EntityProfileRenderer","DefaultRenderer","columnData","dataTypeDefinition","DataTypeValue","getTypeGraphIcon","getEntityTypeGraphIcon","type","getAbsoluteImageUrl","getImagePath","getApiPath","ReferenceRenderer","AvatarWithFallback","refEntity","objectURI","stopPropagation","event","BlobRenderer","onScroll","ImageRenderer","getImageAttributeOvThumbnailUrl","columnInfo","getAttrPathFromColumnId","split","NOT_SORTABLE_COLUMN_IDS","isSortableColumn","includes","getNestedPathByColumnId","columnId","isAttributeSearchUri","attrPath","slice","EntityRowOverlay","isSelectedEntity","isHighlightedEntity","entityImportStatus","onEntityImportStatusChange","EntityRowButtons","values","highlightedEntityIndex","rowIndex","commonCellWrapperStyles","inactiveCell","selectedRowCell","lighten","withCellDecorationPropTypes","isSelected","isJustImported","checkboxWrapper","checkbox","withCheckboxPropTypes","isChecked","hasCheckbox","collapser","withCollapseButtonPropTypes","hasCollapseButton","pipe","Component","WithCollapseButton","componentProps","restProps","rowValue","CollapseRowButton","WithCheckbox","rawValue","WithCellDecoration","onCellClick","isInactive","checkedEntitiesUris","columnIndex","isFirstColumn","defaultRenderRowCell","getAttributeHeight","cell","countAttributes","defaultHeight","Math","max","EntitiesTable","forwardRef","onReorderingColumn","dndColumnReorderingEnabled","columnsSize","onChangeColumnsSize","onSort","logger","resizeDebounceDelay","tableClasses","useMemo","highlightRow","dragColumnHead","dragColumnBody","draggableHeadCell","cellWrapper","hoverRowIndex","setHoverRowIndex","handleRowHover","tableRef","useImperativeHandle","resetScrollbarPosition","resetLeft","handleSort","field","SORT_DIRECTION_ASC","order","SORT_DIRECTION_DESC","renderRowOverlay","renderRowCell","RowCellRenderer","hoverStateEnabled","sortingEnabled","columnsData","attrType","getAttrDataTypeDefinition","resizable","autoResize","draggable","nestedPath","headCellRenderer","rowCellValueRenderer","getAttributeValueRenderer","getBasicTableColumnsData","rowsData","reduce","acc","assoc","attrSource","getOvAttributeValuesByPath","getRowValueForColumn","getBasicTableRowsData","findIndex","propEq","tableContext","BasicTable","fixFirstColumn","sortFieldClassName","containerClassName","defaultColumnWidth","headRowHeight","defaultColumnMinWidth","defaultRowHeight","sorting","dndColumnReorderingHandler","onRowHover","context","maxRowValuesCount","getRowCellHeight","defaultProps","displayName","memo","INSERT_LEFT","INSERT_RIGHT","HIDE","TEXT","ConfigColumnPopup","actions","Popover","List","action","index","handler","ListItem","ListItemText","primaryTypographyProps","variant","renderListItem","getClickHandler","EntitiesTableWithConfigurableColumns","addColumnPopupOpen","configColumnPopupOpen","configurableColumnIndex","addColumnHandler","newColumnPlaceIndex","onChangeColumnsList","columns","splice","closeAddColumnPopup","openAddColumnPopup","parseInt","getAttribute","closeConfigColumnPopup","configColumnHandler","hideCurrentConfigColumn","memoizedGetColumnSize","memoizeWith","getMemoIdForColumnSize","getColumnSizeFromHeadColumns","envSpecificKey","toString","render","entitiesTableRef","additionalColumns","hideCheckBox","titleText","ImportEntityButton","onImportStatusChange","hideDelay","dtssPath","tenant","ImportButton","importEntityFromDataTenant","customerTenant","then","success","uris","Error","ctSubscribedUris","catch","showImportFromDataTenantError","EntityType","importButtonPlaceholder","padding","flexShrink","position","canImportFromDataTenant","canImport","isDataTenantEntity","entityType","getEntityType","canImportEntity","checkCanImportEntityOfType","isEntityImportedToCT","showImportButton","status","query","text","secondary","letterSpacing","READABLE_QUERY_PRIMITIVE_TYPES","ReadableSearchQuery","readableQuery","UPDATE_ENTITIES","UPDATE_URL","CLEAR_RESULTS","REFRESH_DISPLAYED_ENTITIES","REFRESH","CLEAR_ALL","SHOW_MORE_RESULTS_FOR_ENTITY_TYPE","UPDATE_TOTAL","CHANGE_PAGE","RESET_PAGE","CHANGE_ROWS_PER_PAGE","CHANGE_SORT","CHANGE_LOADING","MAP_CHANGE_VALUE","STATE_UPDATED","EXPORT_RESULTS","OPEN_DATA_LOADER","CHANGE_CURRENT_TENANT","appId","ROWS_PER_PAGE_OPTIONS","NUMERIC_RANGE_MIN_VALUE","NUMERIC_RANGE_MAX_VALUE","DATE_RANGE_MIN_VALUE","currentDate","Date","setHours","setFullYear","getFullYear","yearAgoDate","DATE_RANGE_MAX_VALUE","SEARCH_RESULTS_MODES","TABLE","LIST","MAP","DEFAULT_VIEW","PREVIEW_PANEL_MODES","PROFILE","DEFAULT_FACET_PAGE_SIZE","operators","defaultOperator","defaultGroupOperator","STORED_SEARCHES_TYPES","saved","recent","SAVED_SEARCHES_SHARING_OPTIONS_VALUES","public","private","SAVED_SEARCHES_SORTED_FIELDS","name","updateDate","SAVED_SEARCHES_SORT_BY_VALUES","SAVED_SEARCHES_SORT_ORDER_VALUES","ASC","DESC","SAVED_SEARCHES_SHARING_OPTIONS","NOTIFICATION_TYPES","error","ML_RULES_ONLY","pmRulesScope","ENTITY_TYPE_FACET_ROW_COUNT","SEARCH_DEBOUNCE_TIME","BULK_UPDATE_SELECTION_MODES","include","exclude","BULK_UPDATE_COMMON_OPERATIONS","UpdateProfiles","DeleteProfiles","BULK_UPDATE_OPERATIONS","AddNew","Clear","ReplaceAllWith","FindAndReplace","FindAndRemove","RepointReference","BULK_UPDATE_OPERATION_LABELS","BULK_UPDATE_ALLOWED_OPERATION_VALUE_FIELDS","BULK_UPDATE_SIMPLE_ATTRIBUTE_OPERATIONS","without","BULK_UPDATE_NESTED_ATTRIBUTE_OPERATIONS","BULK_UPDATE_REFERENCE_ATTRIBUTE_OPERATIONS","BULK_UPDATE_API_OPERATIONS","AddAttribute","UpdateAttribute","DeleteAttribute","RepointReferencedEntity","AddTags","ReplaceTag","DeleteTags","ClearTags","BULK_UPDATE_REFERENCED_ENTITY_ID_FIELD_NAME","DEFAULT_SEARCH_SELECT","PROP_NAME_OPERATOR","PROP_NAME_VALUES","PROP_NAME_FILTER","getEmptyAttributeObject","nanoid","getAttributeObject","attribute","getAttributeData","pathOr","filterOptions","enforcedFilterOptions","getFilterOptionsForQueryBuilder","fieldName","defaultFindGroupPath","curry","groups","groupIndex","group","createGetGroupLens","groupsLensPath","findGroupPath","createLPath","get","groupPath","createGetAttributesLens","getGroupLens","propNameAttributes","groupId","groupLens","compose","createLens","createGetAttributeIndex","getAttributesLens","attributeId","attributesLens","createGetAttributeLens","attributeIndex","getAttributeIndex","createSetAttributeProp","getAttributeLens","propName","groupAttributeL","newAttribute","set","createGetAttributeProp","addAttributeAfter","groupAttributesL","newAttributes","attrIndex","isLastAttribute","operator","push","changeAttributeData","attributeData","setAttributeProp","newState","currentFilter","isAttributeIncludesFilter","attrLens","setAttributeOperator","deleteAttribute","attributes","editedAttributes","remove","prevAttribute","removedAttribute","duplicateAttribute","setFilter","getAttributeProp","isCompatibleFilters","setValues","toggleQueryBuilderAttributeSelect","attributesPropName","selectInfo","selectedAttribute","selectIndex","selectedAttributes","changeAttribute","clearAttribute","groupAttributes","__","propOr","getGroupAttributeIdAt","put","nextSelectedAttribute","selectIndexFromEnd","targetIndex","collectAttrTypesData","title","faceted","hideForDataTenant","entityAttributes","EntityAttrTypes","workflowAttributes","WorkflowAttrTypes","collaborationItemsAttributes","CollaborationAttrTypes","RDMItemsAttributes","RdmAttrTypes","auditItemsAttributes","AuditAttrTypes","potentialMatchesAttributes","PotentialMatchesAttrTypes","crosswalksItemsAttributes","omit","CrosswalksAttrTypes","getEntityAttributes","getWorkflowAttributes","getCollaborationItemsAttributes","getRDMItemsAttributes","getAuditItemsAttributes","getPotentialMatchesAttributes","dataTenants","evolve","dataTenant","fieldNameForRequest","dataTenantFieldName","getCrosswalksItemsAttributes","createSpecialAttributeItem","pageSize","getPageSizeByAttrType","orderType","getOrderTypeByAttrType","createDataTenantConfigPart","originalTitle","createAttributesGroup","collectSpecialAttributesGroups","attributesFilter","T","canUserReadWorkflowDataTask","_createAttributesGroup","attributesInitial","identity","getSpecialAttribute","specialAttributeGroup","attr","createFacetForSpecialAttrType","facetProps","getFacetTypeForAttrType","singleValue","getDataTenantSpecialAttributeFieldName","additionalAttributesRules","SpecialAttrTypes","hasMatchRulesWithoutML","LogoIcon","xmlnsXlink","x1","y1","x2","y2","stopColor","offset","stopOpacity","transform","xlinkHref","x","y","rx","mask","cx","cy","ry","r","hasMlMatchRule","getAdditionalAttributes","additionalAttributes","dataTenantAdditionalAttributes","flatMap","additionalAttribute","getDisableIncludeFilterByAttrType","isFaceted","isComplexAttribute","getAttributeTypeSubAttributes","some","getChildrenAttributes","flat","Infinity","complement","isEmpty","createComplexAttributesConfig","attrNode","createAttributeConfig","parents","resConfig","childNode","createAttributeItem","entityTypeLabel","getEntityTypeLabel","pathToTitle","Array","isArray","chain","prepareAttrUriForSearch","isComplex","disableIncludeFilter","getAttributesTree","entityOrAttrType","filterFaceted","getAllAttributeTypesTree","either","always","collectAttributeGroups","memoizeOne","selectedEntityTypes","createGroup","onlyOneSelectedEntityType","inSelectedTypes","isOnlyOneSelected","isOnlyOneSelectedReceived","entityTypes","isAvailableEntityType","anyPass","allPass","complexAttributes","collectAdvancedAttributeGroups","findClosestCommonAncestor","flattenGroupedItemsData","groupedItems","getFlattenedItems","items","flatten","titleItemIndex","getEntityTypeFacetConfig","_metadata","hiddenTitle","showIcon","barColor","transparentBackground","showDeleteButton","potentialMatchesFacetConfig","specialFacets","getSpecialFacets","dataTenantFacets","createAttributeFacetConfig","memoizedCollectAttributeFacetsGroups","createFacetsGroup","facets","needGroupIcon","collectFacetsList","recommendedFacets","onlyOneEntityTypeSelected","specialGroup","entityTypesGroup","entityTypesFacets","recommendedFacetsConfigs","findFacetConfigByFieldName","reject","isNil","facetConfigs","facetConfig","flattenChildrenForEntityTypeConfigs","entityTypeConfig","getAvailableFacetsGroupsList","getFlatFacets","facet","collectFacetsFlatList","facetGroup","prepareFacetDataForStore","showAllItems","when","is","isComplexFacet","config","FACET_TYPES","isLookupFacet","isLookupAttrType","isPotentialMatchesFacet","startsWith","isMatchRuleFacet","intersection","isMLMatchRuleFacet","isDataTenantFacet","getValuableFacets","not","memoizedCollectSpecialAttributesGroups","getGroupTitle","createAdvancedSearchGroupFromFacets","facetsWithConfigs","facetsToConvert","typeFacet","restFacets","partition","isTypeFacet","attributesList","getFilterOptionForFacet","dataFromFacet","groupName","getFilterValueForFacet","attributeList","hasNotAvailableEntityTypes","any","getAvailableEntityTypesUris","addAvailableEntityTypesIfNeeded","removeNumberForDtssUnavailableEntityTypeItems","tenantObject","availableEntityTypes","number","findConfigByFieldName","configs","console","warn","prepareFacets","lookupsCodes","viewConfig","keys","result","realFieldName","prepareFacet","prepareStatsFacet","statsProcessing","sortByNumber","a","b","numberMoreThanZero","specialFacetsFilter","configHasValue","isMetadataSourcedFacetedAttribute","isEnumAttrType","defaultProcessing","rawData","sort","numericRangeTypeProcessing","Decimal","lookupProcessing","lookupCode","getLookupLabel","enumProcessing","enumerationList","booleanProcessing","formatDataTypeValue","entityTypeProcessing","allowedEntityTypes","orderByArrayComparator","_","lastUriPart","getLastUriPart","roleProcessing","roles","role","sourceSystemsProcessing","sources","matchRulesProcessing","matchGroups","uniqBy","isRaw","entries","uriOrLabel","count","matchGroup","min","getAttrTypeLookupCode","isBooleanType","getDefaultRangeByType","facetType","fixNaNValue","defaultValue","isNaN","forEach","facetValue","getFacetByFieldName","getAcceptedFacetValues","facetData","acceptedValues","mergeConfigs","configsArray","setFiltersToFacets","facetTypeToFilter","addAvailableEntityTypeValues","ifElse","filterAllowedEntityTypes","getEntityTypeFacetFromState","entityTypeFacet","facetWithDropdownCheckboxes","numericRangeFacet","dateRangeFacet","needFacetsCleanUp","isTypeFacetAction","Facets","Search","buildValuesLabels","range","formatNumberAsMetric","createRangeServiceFor","getRange","formatMomentDate","moment","Maybe","orSome","needShowAllEntityTypeFacetItems","gt","getLookupsListFromFacets","codeValues","mergeLookupsLists","getUnresolvedLookupsListFromFacet","resolvedLookups","getUnresolvedLookupsList","getConfigForFacet","facetsGroups","isInFacetsConfigs","mergeFacetValuesByFieldName","reduceAdvancedFromFacets","advanced","newSearchParam","attrUri","searchUriToAttrUri","findAttributeTypeByUri","searchParams","reduceNewFacetsData","facetsConfigs","isRangeFacet","getOldRangeFacetValues","showAllEntityTypes","parseAttributeData","attrData","getAttributeTypesHierarchyByUri","parseRegularAttributeData","specialAttr","parseSpecialAttributeData","parseAdditionalAttributeData","parseAttribute","convertOldAdvancedAttribute","OLD_SEARCH_RESULTS_MODES","NEW_SEARCH_RESULTS_MODES","PREVIEW_PANEL_MODES_MAPPING","findActiveTab","tabs","tab","processOldTabs","columnsByEntityTypes","getInitialColumnsByEntityTypes","columnsFromTabs","attributeUriToSearchUri","mergeDeepWith","parseOldSearchOptions","advancedOptions","options","searchByOvOption","searchByOv","ovOnly","replaceSearchResultsColumns","searchResultsColumns","parsedState","assocPath","parseNewSearchState","keyword","view","searchOptions","currentSavedSearchUri","currentTenant","parseAdvancedSearch","facetsData","isAvailableEntityTypeUri","availableFacetsGroupsList","dissoc","getFacetConfig","reduceFacetsConfig","parseFacets","searchResultsMode","entityTypeTab","previewPanelMode","parseOldSearchState","oldState","curSavedSearchUri","useSeparateGroups","getKeywordFromOldSearchState","tenantFacets","nonTenantFacets","typeFacets","nonTypeFacets","convertedFacets","convertOldFacets","isBasicFacetFilter","hasAdvancedFacets","basicFacets","parseOldFacets","advancedFromFacets","parsedFacets","parsedAdvanced","oldAdvancedSearch","fastSearchParams","makeGroup","wrapInArray","sanitizeTypesInSearchGroups","convertTransitionAttributes","isEmptySearchGroup","parseOldAdvancedSearch","newData","groupFromFacets","advancedGroups","facetAttribute","parseOldView","errors","NumMath","getNumbersMath","revertScale","scale","toFixed","div","minus","ratio","begin","head","end","last","lessThanOrEqualTo","formatNumberForRangeFacet","greaterThan","getBarDomain","calcScale","delta","Number","MAX_SAFE_INTEGER","mul","ratioFirstValue","ratioLastValue","lt","MIN_SAFE_INTEGER","applyScale","plus","bigNumbersTickFormatterX","formatter","adjustRange","start","equals","addRanges","interval","firstValue","lastValue","headValues","unfold","n","lessThan","tailValues","getInterval","to","bars","isFloatingType","ceil","stringifySearch","urlSearchObj","queryString","strict","isNotEmptyParam","param","rawFilter","prepareDataTenantFilters","getFieldNameForRequestRule","extraBuildRules","otherData","cond","basicFilterBuildRules","buildFilterQueryString","wrapQueryWithBrackets","buildQuery","buildQueryTree","buildFilterHierarchyList","buildEntitiesUrl","select","forceOvOnly","activityFilter","globalFilter","filterParam","addGlobalFilterToQuery","page","rowsPerPage","urlSearch","buildSelectParam","scoreEnabled","addToSearchOptions","activeness","splitted","join","buildEntitiesByUrisRequest","entitiesUris","body","url","method","JSON","stringify","headers","selectParams","ActivityFilters","uniq","businessCardAttributeURIsSelectRule","geoLocationAttributesSelectRule","latitude","longitude","collectAdditionalSelect","selectRules","entityTypesForSearch","pluck","additionalAttrs","attrUris","rule","getFirstLevelSearchUri","buildFacetsRequest","excludeFields","extraUrlParams","dataTenantSearchParams","forceInclude","facetBody","pageNo","pageNumber","includeFilter","buildPotentialMatchesFacetUrl","env","getEnvironment","getTenant","preparePotentialMatchesUrlSearch","buildMatchScoresFacetUrl","buildPureSearchQuery","buildHistogramUrl","restOptions","buildStatsUrl","buildTotalUrlQuery","callSearchRequestForTenant","searchRequest","requestForDataTenant","requestProvider","buildTotalUrl","urlQuery","buildTotalUrlForQuery","getAttributeType","groupAttributeFilters","orGroupIndex","filters","isOrOperator","inc","attributeFilters","attributeFilter","getQueryValuesArray","rootFieldName","getRootFieldName","canWrapAnyChildrenInSameAttribute","filterHierarchyList","filterHierarchy","canWrapInSameAttribute","prepareAttributeFilterOperations","disableInSameAttributeValue","operations","attributesOperations","sameRootFieldNameFilters","parseCompositeFilters","isAndOperator","append","getOperationObject","operand","isMultipleComplexValuesFormat","both","propSatisfies","specialFiltersRules","buildBasicFilterString","FilterOptions","isDateType","buildComplexFilterString","joinFilterStrings","buildQueryToOperationObject","filtersRules","extraRules","defaultTo","has","buildGroupQuery","entityTypeCondition","entityTypesPart","toArray","buildQueryForAdvancedSearchGroups","groupsOperations","shiftDownOperators","isValidSearchGroup","attributesQuery","isValidSearchGroupAttribute","operation","shiftUpOperators","buildOperationsToString","groupOperation","isTableMode","collectColumnsForest","excludeIds","collectSpecialColumns","collectAttributeColumns","analyticsAttributes","getAdditionalColumns","deepFilter","elem","isReadableAttribute","subAttrs","parentId","parent","findNodeInForest","getFlatChildrenLeafs","walk","node","nodes","collectColumnsByIds","ids","isNested","defaultTabs","entityTypesFacetData","defaultColumnIds","columnsIds","orderComparator","item1","item2","indexOf","getEntityTypesForTabs","orderInMetadata","metadataOrderComparator","selectedValuesOrderComparator","filteredTabs","buildSelectFromColumns","specialColumns","specialColumn","needRequestAfterColumnsChanges","prevColumns","prevSelect","appConfig","setConfig","getAppConfigParam","getMaxRecommended","showServerError","ErrorPopup","message","getRequestErrorMessage","showUpdateSearchStateErrors","showLoadSavedSearchErrors","showLoadEntityError","add","sub","greaterThanOrEqualTo","floor","clamp","bigValue","digits","rclamp","setTenant","_tenant","setEnvironment","_env","parse","limit","isNumber","toUpperCase","momentDate","format","longDateFormat","BNMath","NMath","memoizedWrapInArray","lens","getter","setter","l","obj","arr","val","isObject","parseFloat","isFinite"],"sourceRoot":""}