@reltio/remotes 1.4.1387 → 1.4.1388

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 (119) hide show
  1. package/1219.js +2 -0
  2. package/1219.js.map +1 -0
  3. package/1375.js +1 -1
  4. package/1689.css +636 -0
  5. package/1689.css.map +1 -0
  6. package/1689.js +2 -0
  7. package/1689.js.map +1 -0
  8. package/2114.js +1 -1
  9. package/2443.js +3 -0
  10. package/{8782.js.LICENSE.txt → 2443.js.LICENSE.txt} +0 -0
  11. package/2443.js.map +1 -0
  12. package/2890.js +1 -1
  13. package/3149.js +2 -0
  14. package/3149.js.map +1 -0
  15. package/3213.js +3 -0
  16. package/{3723.js.LICENSE.txt → 3213.js.LICENSE.txt} +0 -0
  17. package/3213.js.map +1 -0
  18. package/3273.js +2 -0
  19. package/3273.js.map +1 -0
  20. package/3540.js +1 -1
  21. package/3602.js +2 -0
  22. package/3602.js.map +1 -0
  23. package/3819.js +2 -0
  24. package/3819.js.map +1 -0
  25. package/4015.js +2 -0
  26. package/4015.js.map +1 -0
  27. package/447.js +1 -1
  28. package/447.js.map +1 -1
  29. package/461.js +1 -1
  30. package/461.js.map +1 -1
  31. package/4843.js +1 -1
  32. package/{7880.css → 4881.css} +1 -1
  33. package/{7880.css.map → 4881.css.map} +1 -1
  34. package/4881.js +2 -0
  35. package/4881.js.map +1 -0
  36. package/4889.js +1 -1
  37. package/4889.js.map +1 -1
  38. package/5400.js +1 -1
  39. package/5601.js +2 -0
  40. package/5601.js.map +1 -0
  41. package/5709.js +1 -1
  42. package/5720.js +1 -1
  43. package/5937.js +1 -1
  44. package/5937.js.map +1 -1
  45. package/6103.js +1 -1
  46. package/6312.js +1 -1
  47. package/6312.js.map +1 -1
  48. package/6413.js +3 -0
  49. package/{5312.js.LICENSE.txt → 6413.js.LICENSE.txt} +0 -0
  50. package/6413.js.map +1 -0
  51. package/6617.js +2 -0
  52. package/6617.js.map +1 -0
  53. package/6669.js +2 -0
  54. package/6669.js.map +1 -0
  55. package/6710.js +2 -0
  56. package/6710.js.map +1 -0
  57. package/6913.js +2 -0
  58. package/6913.js.map +1 -0
  59. package/7584.js +2 -0
  60. package/7584.js.map +1 -0
  61. package/7937.js +1 -1
  62. package/8051.js +2 -0
  63. package/8051.js.map +1 -0
  64. package/8183.js +2 -0
  65. package/8183.js.map +1 -0
  66. package/8443.js +2 -0
  67. package/8443.js.map +1 -0
  68. package/9043.js +1 -1
  69. package/9043.js.map +1 -1
  70. package/9211.js +1 -1
  71. package/9211.js.map +1 -1
  72. package/9431.js +1 -1
  73. package/9630.js +1 -1
  74. package/9754.js +3 -0
  75. package/{9396.js.LICENSE.txt → 9754.js.LICENSE.txt} +0 -0
  76. package/9754.js.map +1 -0
  77. package/99.js +2 -0
  78. package/99.js.map +1 -0
  79. package/package.json +1 -1
  80. package/remoteEntry.js +1 -1
  81. package/remoteEntry.js.map +1 -1
  82. package/162.js +0 -2
  83. package/162.js.map +0 -1
  84. package/1807.js +0 -2
  85. package/1807.js.map +0 -1
  86. package/3723.js +0 -3
  87. package/3723.js.map +0 -1
  88. package/376.js +0 -2
  89. package/376.js.map +0 -1
  90. package/3760.js +0 -2
  91. package/3760.js.map +0 -1
  92. package/39.js +0 -2
  93. package/39.js.map +0 -1
  94. package/4038.js +0 -2
  95. package/4038.js.map +0 -1
  96. package/4312.js +0 -2
  97. package/4312.js.map +0 -1
  98. package/4689.js +0 -2
  99. package/4689.js.map +0 -1
  100. package/4713.js +0 -2
  101. package/4713.js.map +0 -1
  102. package/5312.js +0 -3
  103. package/5312.js.map +0 -1
  104. package/7861.js +0 -2
  105. package/7861.js.map +0 -1
  106. package/7880.js +0 -2
  107. package/7880.js.map +0 -1
  108. package/8782.js +0 -3
  109. package/8782.js.map +0 -1
  110. package/8922.js +0 -2
  111. package/8922.js.map +0 -1
  112. package/9396.js +0 -3
  113. package/9396.js.map +0 -1
  114. package/9606.css +0 -3
  115. package/9606.css.map +0 -1
  116. package/9606.js +0 -2
  117. package/9606.js.map +0 -1
  118. package/9992.js +0 -2
  119. package/9992.js.map +0 -1
package/3760.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_reltio_remotes=self.webpackChunk_reltio_remotes||[]).push([[3760],{60894:(e,t,n)=>{n.d(t,{Z:()=>b});var a=n(24328),r=n.n(a),o=n(13980),l=n.n(o),i=n(94656);function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},s.apply(this,arguments)}const c=e=>r().createElement("svg",s({width:20,height:18,viewBox:"0 0 20 18",xmlns:"http://www.w3.org/2000/svg"},e),r().createElement("path",{d:"M16 7.24V6h-4v1.24a8.417 8.417 0 00-2 .768V6H6v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM4 12V6H2v6h2zm0-8V2H2v2h2zm6 0V2H6v2h4zm6 0V2h-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 0014 9zm0 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",fill:"#000",fillRule:"nonzero",stroke:"none",strokeWidth:1,opacity:.54}));var u=n(8818),p=n(17440),d=n(47458),h=n(87918),m=n.n(h),f=n(85657);const g=e=>{let{columnsData:t,selectedColumns:n,onChangeColumns:o,title:l,tooltipTitle:i}=e;const[s,h]=(0,a.useState)(null),g=(0,a.useCallback)((e=>{const t=(0,p.pipe)(f.JJ,(0,p.pluck)("id"))(e),a=(0,f.u)(n,e);o(a?(0,p.difference)(n,t):(0,p.uniq)((0,p.concat)(n,t)))}),[n,o]);return r().createElement(r().Fragment,null,r().createElement(u.k,{tooltipTitle:i||m().text("Show/hide columns"),size:"L",icon:c,onClick:e=>h(e.currentTarget)}),r().createElement(d.G,{onColumnClick:g,anchorEl:s,columnsData:t,onClose:()=>h(null),title:l,selectedColumns:n}))};g.propTypes={columnsData:i.uz,selectedColumns:l().arrayOf(l().string),onChangeColumns:l().func,title:l().string,tooltipTitle:l().string};const b=g},47458:(e,t,n)=>{n.d(t,{G:()=>I});var a=n(24328),r=n.n(a),o=n(87918),l=n.n(o),i=n(17440),s=n(90088),c=n(44890),u=n(97820),p=n(85657),d=n(56656),h=n(54763),m=n(13980),f=n.n(m),g=n(7785),b=n(27239),y=n(71153),v=n.n(y);const x=(0,n(79692).Z)({popup:{minWidth:"200px"},groupItem:{backgroundColor:"rgba(0,0,0,0.04)"}}),C=e=>{let{item:t,onClick:n,checked:a,level:o,style:l,isFocused:i,isGroupItem:s,hideCheckBox:c}=e;const u=x();return r().createElement(g.Z,{hideCheckBox:c,key:t.id,onClick:n,checked:a,level:o,data:t,label:r().createElement(b.Z,{text:t.label,highlight:t.filterText}),labelInText:t.label,style:l,isFocused:i,hideIcon:s,className:v()({[u.groupItem]:s})})};C.propTypes={item:f().shape({label:f().string,filterText:f().string}),level:f().number,onClick:f().func,checked:f().bool,style:f().object,isGroupItem:f().bool,isFocused:f().bool,hideCheckBox:f().bool};const O=C,I=e=>{let{anchorEl:t,onClose:n,title:o,columnsData:m,onColumnClick:f,selectedColumns:g,hideCheckBox:b}=e;const y=x(),[v,C]=(0,a.useState)(""),I=(0,a.useMemo)((()=>(0,p.eX)(m,v)),[m,v]),P=(0,a.useMemo)((()=>(0,d.LG)(I)),[I]),k=(0,s.fW1)("label")(I)||308,S=(0,a.useCallback)((e=>{let{item:t}=e;return f(t)}),[f]),{focusIndex:w,handleKeyDown:E}=(0,h.t)({items:P,open:!0,onSelectFocusedItem:S,selectedItems:g,onClose:n}),T=(0,a.useCallback)((0,i.pipe)(n,(()=>C(""))),[n]),j=Math.min(300,32*P.length),N=Math.max(140,j+108);return r().createElement(u.Z,{className:y.popup,open:!!t,anchorEl:t,onClose:T,onSearch:C,title:o||l().text("Show/hide columns"),containerWidth:k,containerHeight:N,searchInputOnKeyDown:E},r().createElement(c.Z,{fixedTitle:!1,height:j,renderItem:(e,t,n)=>{let{item:a,level:o=0}=t;return r().createElement(O,{hideCheckBox:b,style:e,item:a,level:o,isFocused:w===n,checked:(0,p.u)(g,a),isGroupItem:(0,p.yf)(a),onClick:b?(0,i.pipe)(f,T):f})},items:P,getItemSize:()=>32,focusIndex:w}))}},85657:(e,t,n)=>{n.d(t,{eX:()=>b,JJ:()=>y,yf:()=>i,u:()=>v});var a=n(17440),r=n(90088);function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){l(e,t,n[t])}))}return e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const i=e=>e.id===e.groupId,s=(0,a.curry)(((e,t)=>{let{id:n,groupId:a}=e;return t.groupId===a&&(n===t.id||n.startsWith(`${t.id}.`))})),c=(0,a.curry)(((e,t)=>{let{groupId:n}=e;return n===t.id})),u=(0,a.propOr)(!0,"hideable"),p=(e,t)=>{const n=((e,t)=>e.find((0,a.either)(c(t),s(t))))(e,t);return n?(n.children=p(n.children||[],t),e):e.concat(t)},d=(0,a.curry)(((e,t)=>r.P6Y.strings.search(t.label,e)||(t.children||[]).some(d(e)))),h=(0,a.reduce)(((e,t)=>p(e,{id:t.id,groupId:t.groupId,label:t.label,attrType:t.dataTypeDefinition})),[]),m=(0,a.curry)((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return(0,a.pipe)((0,a.filter)(d(e)),(0,a.chain)((t=>[{item:o({},t,{filterText:e}),level:n},...t.children?m(e,t.children,n+1):[]])))(t)})),f=(0,a.has)("columns"),g=e=>{let{id:t,label:n,columns:r}=e;return[{id:t,groupId:t,label:n},...r.map((0,a.assoc)("groupId",t))]},b=(e,t)=>(0,a.pipe)((0,a.chain)((0,a.when)(f,g)),(0,a.filter)((0,a.either)(i,u)),h,m(t))(e),y=e=>e.children?(0,a.chain)(y,e.children):[e],v=(e,t)=>{const n=y(t),a=t=>e.includes(t.id);return i(t)?n.every(a):n.some(a)}},64459:(e,t,n)=>{n.d(t,{Z:()=>b});var a=n(24328),r=n.n(a),o=n(71153),l=n.n(o),i=n(52730),s=n(17440),c=n(94079),u=n(87918),p=n.n(u),d=n(90088),h=n(59431),m=n(53180),f=n(68439);const g=(0,n(79692).Z)((e=>({profileBandWrapper:{flexShrink:0},profileBand:{display:"flex",padding:"16px 12px 16px 16px",alignItems:"flex-start",backgroundColor:"#fff",boxShadow:"inset 0 -1px 0 0 rgba(0,114,206,0.06), inset 0 1px 0 0 rgba(0,114,206,0.06);","&:after":{content:'""',minHeight:"inherit",fontSize:0}},inactive:{background:e.inactiveBackground},profileIcon:{marginRight:"12px"},imageProfileIcon:{width:"48px",height:"48px"},profileInfo:{display:"flex",flexDirection:"column",flex:"1 1 50%"},badge:{},label:{lineHeight:"1.2",letterSpacing:"0.25px",color:e.palette.text.primary,wordBreak:"break-word","&+ $specialInfo":{marginTop:"4px"}},secondaryLabel:{display:"inline-flex",color:e.palette.text.primary,marginTop:"2px",lineHeight:"16px",fontSize:"14px",fontWeight:400,"&+ $businessCard":{marginLeft:"12px"}},businessCard:{color:e.palette.text.secondary,display:"inline-flex",fontSize:"14px",marginTop:"4px",lineHeight:"1.2"},specialInfo:{display:"flex",justifyContent:"space-between",flexWrap:"wrap",width:"100%",marginTop:"8px"},entityType:{display:"flex",flexWrap:"wrap"},entityId:{fontSize:"13px",color:e.palette.text.secondary,whiteSpace:"nowrap",cursor:"pointer","&:hover":{textDecoration:"underline"}}}))),b=e=>{let{className:t,entity:n,children:o,classes:u}=e;const b=g({classes:u}),y=(0,i.useSelector)(h.ZP.selectors.getMetadata),v=(0,i.useSelector)(h.ZP.selectors.getShowEntityId),x=(0,a.useCallback)((()=>{navigator.clipboard.writeText((0,d.BTI)(n))}),[n]);if((0,s.isNil)(n))return null;const C=(0,d.idV)(n.label),O=n.secondaryLabel,I=(0,d.ptG)(y,n),P=(0,d.Fn9)(n),k=n.uri,S=(0,d.BTI)(n);return r().createElement("div",{className:l()(b.profileBandWrapper,t)},r().createElement("div",{className:l()(b.profileBand,{[b.inactive]:!P}),"data-entity-uri":k},r().createElement(m.Z,{key:n.uri,entity:n,avatarClassName:b.profileIcon,imageClassName:b.imageProfileIcon}),r().createElement("div",{className:b.profileInfo},r().createElement("div",null,r().createElement(c.Typography,{variant:"h6",className:b.label},C),O&&r().createElement(c.Typography,{variant:"subtitle2",className:b.secondaryLabel},O),I&&r().createElement(c.Typography,{variant:"subtitle1",className:b.businessCard},I)),r().createElement("div",{className:b.specialInfo},r().createElement("div",{className:b.entityType},r().createElement(f.Z,{entity:n,size:"medium",className:b.badge}),!(0,d.ZiX)(k)&&v&&r().createElement(c.Tooltip,{title:p().text("Copy to clipboard")},r().createElement(c.Typography,{display:"inline",variant:"body2",className:b.entityId,onClick:x},p().text("Entity ID"),": ",S))))),o&&r().createElement("div",null,o)))}},93873:(e,t,n)=>{n.d(t,{a:()=>j});var a=n(24328),r=n.n(a),o=n(71153),l=n.n(o),i=n(87918),s=n.n(i),c=n(94079),u=n(83348),p=n(8818),d=n(67766),h=n(42767),m=n(90088);const f=(0,n(79692).Z)({container:{display:"flex",alignItems:"center"},link:{whiteSpace:"nowrap",marginRight:"9px"}}),g=(0,u.Z)(c.Link),b=e=>{let{className:t,total:n=0,onPrev:a,onNext:o,onSearchResultsClick:i,isPrevDisabled:c,isNextDisabled:u}=e;const b=f();return r().createElement("div",{className:l()(b.container,t)},r().createElement(g,{className:b.link,component:"button",variant:"caption",onClick:i,underline:"none",tooltipTitle:s().text("Go to search results")},(0,m.k7L)(n,1e6)," ",1===n?s().text("Search result"):s().text("Search results")),r().createElement(p.k,{size:"L",icon:d.Z,tooltipTitle:s().text("Go to previous profile"),onClick:a,disabled:c,showForDisabled:!0}),r().createElement(p.k,{size:"L",icon:h.Z,tooltipTitle:s().text("Go to next profile"),onClick:o,disabled:u,showForDisabled:!0}))};var y=n(52730),v=n(59431),x=n(17440),C=n(39450),O=n(85229);function I(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){P(e,t,n[t])}))}return e}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class k{constructor(e){var t=this;let{data:{query:n,sortField:a,sortOrder:r},tenant:o,searchTenant:l,apiPath:i,dtssPath:s,globalSearchRequestOptions:c}=e;this.query=void 0,this.sortField=void 0,this.sortOrder=void 0,this.tenant=void 0,this.searchTenant=void 0,this.apiPath=void 0,this.dtssPath=void 0,this.globalSearchRequestOptions=void 0,this.isDT=()=>this.tenant!==this.searchTenant,this.getQueryFilter=()=>({rawFilter:this.query}),this.getEntities=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=[t.getQueryFilter(),...e],r=I({},t.globalSearchRequestOptions,{sort:t.sortField,order:t.sortOrder,select:"uri,label,type",scoreEnabled:!1},n);return t.isDT()?(0,m.uqV)({filters:a,options:r,customerTenant:t.tenant,dataTenant:t.searchTenant,dtssPath:t.dtssPath}):(0,m.ZOr)(a,r)},this.checkEntity=e=>this.getEntities([{filter:"equals",fieldName:"uri",values:[e]}],{offset:0,max:1}).then((t=>t&&t.length>0&&t[0].uri===e)),this.requestEntities=(e,t)=>this.getEntities([],{offset:t,max:e}),this.requestTotal=()=>{const e=[this.getQueryFilter()],t=this.globalSearchRequestOptions;return(this.isDT()?(0,m.J$m)({filters:e,options:t,customerTenant:this.tenant,dataTenant:this.searchTenant,dtssPath:this.dtssPath}):(0,m.j_Q)(e,t)).then((e=>e.total))},this.query=n,this.sortField=a,this.sortOrder=r,this.tenant=o,this.searchTenant=l,this.apiPath=i,this.dtssPath=s,this.globalSearchRequestOptions=c}}function S(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){w(e,t,n[t])}))}return e}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class E{constructor(e){var t=this;let{data:n,tenant:a,apiPath:r}=e;this.searchBody=void 0,this.tenant=void 0,this.apiPath=void 0,this.getEntities=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=[{rawFilter:t.searchBody.filter},...e];return(0,m.P2h)({apiPath:t.apiPath,tenant:t.tenant,searchBody:S({},t.searchBody,{filter:e.length?(0,m.Uqd)()(a):t.searchBody.filter}),options:n})},this.checkEntity=e=>this.getEntities([{filter:"equals",fieldName:"id",values:[(0,m.BTI)({uri:e})]}],{from:0,max:1}).then((t=>t&&t.length>0&&t[0].uri===e)),this.requestEntities=(e,t)=>this.getEntities([],{from:t,max:e}),this.requestTotal=()=>(0,m.dED)({apiPath:this.apiPath,tenant:this.tenant,searchBody:this.searchBody}).then((e=>e.count)),this.searchBody=n,this.tenant=a,this.apiPath=r}}const T=(e,t)=>(0,x.pipe)((0,x.map)((0,x.prop)("uri")),(0,x.reject)((e=>t.includes(e))))(e),j=e=>{let{className:t}=e;const{total:n,onPrev:o,onNext:l,onSearchResultsClick:i,isPrevDisabled:s,isNextDisabled:c}=(()=>{const e=(0,O._)(),t=(0,O._)(),n=(0,O._)(),{uri:r,index:o,total:l,tenant:i,cache:s}=(0,y.useSelector)(v.ZP.selectors.getSearchNavigationData)||{},{type:c,data:u}=(0,y.useSelector)(v.ZP.selectors.getSearchProviderData)||{},p=(0,y.useSelector)(v.ZP.selectors.getTenant),d=(0,y.useSelector)(v.ZP.selectors.getApiPath),h=(0,y.useSelector)(v.ZP.selectors.getDtssPath),f=(0,y.useSelector)((e=>v.ZP.selectors.getGlobalSearchRequestOptions(e,["ovOnly"]))),g=(0,a.useContext)(C.m),b=(0,y.useDispatch)(),[x,I]=(0,a.useState)(!1),P=(0,a.useMemo)((()=>((e,t)=>{switch(e){case"search":return new k(t);case"graphsearch":return new E(t)}})(c,{data:u,tenant:p,searchTenant:i,apiPath:d,dtssPath:h,globalSearchRequestOptions:f})),[c,u,p,i,d,h,f]),S=(0,a.useCallback)((e=>{b(v.yC.actions.updateSearchNavigationDataFields(e))}),[b]),w=(0,a.useCallback)((e=>{const t=p!==i?(0,m.wwR)({uri:e,dataTenant:i}):e;b(v.ui.actions.openEntity({uri:t,viewId:g,source:"navigation"}))}),[b,g,p,i]),j=(0,a.useCallback)((()=>{b(v.ui.actions.openPerspective({perspectiveId:c,viewId:g}))}),[b,c,g]);(0,a.useEffect)((()=>{o>=l?S({index:l-1}):o<0&&S({index:0})}),[l,o,S]);const N=(0,a.useCallback)(((e,a,r)=>{I(!0),t(P.requestTotal()).then((e=>S({total:e})));const o=r+1;return n(P.requestEntities(15,o)).then((t=>{if(t){if(t.length){const n=T(t,e);if(n.length>0)return S({cache:e.concat(n),uri:n[0],index:o+t.length-n.length}),void w(n[0]);if(r+t.length<a-1)return N(e,a-t.length,r+t.length)}S({index:o})}})).finally((()=>{I(!1)}))}),[P,S,w]),Z=(0,a.useCallback)(((e,a)=>{I(!0),t(P.requestTotal()).then((e=>S({total:e})));const r=a-1,o=Math.max(0,a-15),l=15+Math.min(0,a-15);return n(P.requestEntities(l,o)).then((t=>{if(t){if(t.length){const n=T(t,e);if(n.length>0)return S({cache:n.concat(e),uri:n[n.length-1],index:r-(t.length-n.length)}),void w(n[n.length-1]);if(a-t.length>0)return Z(e,a-t.length)}S({index:0})}})).finally((()=>{I(!1)}))}),[P,S,w]),D=(0,a.useCallback)(((t,n,a,r)=>{if(n<t.length){const o=t[n];return I(!0),e(P.checkEntity(o)).then((e=>{if(!e){const e=[...t];return e.splice(n,1),D(e,n,a-1,r)}S({index:r+1,uri:o,cache:t,total:a}),w(o)})).finally((()=>{I(!1)}))}if(!(r>=a-1))return N(t,a,r);S({cache:t,total:a,index:a-1})}),[P,S,w,N]),R=(0,a.useCallback)(((t,n,a,r)=>{if(n>-1){const o=t[n];return I(!0),e(P.checkEntity(o)).then((e=>{if(!e){const e=[...t];return e.splice(n,1),R(e,n-1,a-1,r-1)}S({index:r-1,uri:o,cache:t,total:a}),w(o)})).finally((()=>{I(!1)}))}if(!(r<=0))return Z(t,r);S({index:0,cache:t,total:a})}),[P,S,w,Z]),q=(0,a.useCallback)((()=>{if(s&&r){const e=s.indexOf(r)-1;R(s,e,l,o)}}),[R,s,r,l,o]),M=(0,a.useCallback)((()=>{if(s&&r){const e=s.indexOf(r)+1;D(s,e,l,o)}}),[D,s,r,l,o]);return{total:l,onPrev:q,onNext:M,onSearchResultsClick:j,isPrevDisabled:x||o<=0,isNextDisabled:x||o>=l-1}})();return(()=>{const{cache:e}=(0,y.useSelector)(v.ZP.selectors.getSearchNavigationData)||{},t=(0,y.useSelector)(v.ZP.selectors.getMode),n=(0,y.useSelector)(v.ZP.selectors.getEntity);return(0,m.uzs)(t)&&(null==e?void 0:e.includes(null==n?void 0:n.uri))})()?r().createElement(b,{className:t,total:n,onPrev:o,onNext:l,onSearchResultsClick:i,isPrevDisabled:s,isNextDisabled:c}):null}},92575:(e,t,n)=>{n.d(t,{Z:()=>w});var a=n(24328),r=n.n(a),o=n(13980),l=n.n(o),i=n(17440),s=n(70347);const c=(0,n(5407).Z)(s.ZP);var u=n(5190),p=n(18461),d=n(94079),h=n(71153),m=n.n(h),f=n(95613);function g(){return g=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},g.apply(this,arguments)}function b(e){const{innerProps:t,innerRef:n,children:a,isFocused:o,isSelected:l,selectProps:{classes:i},label:s}=e;return r().createElement(d.MenuItem,g({className:m()(i.option,{[i["option--selected"]]:l}),ref:n,selected:o,component:"div"},t),r().createElement(d.Checkbox,{color:"primary",checked:l}),r().createElement(f.Z,{value:s},r().createElement("div",{className:i["option--item"]},a)))}b.propTypes={children:l().node,innerProps:l().shape({id:l().string.isRequired,key:l().string,onClick:l().func.isRequired,onMouseMove:l().func.isRequired,onMouseOver:l().func.isRequired,tabIndex:l().number.isRequired}).isRequired,innerRef:l().oneOfType([l().oneOf([null]),l().func,l().shape({current:l().any.isRequired})]),isFocused:l().bool.isRequired,isSelected:l().bool.isRequired,label:l().string,selectProps:l().shape({classes:l().shape({option:l().string})})};const y={Option:b};var v=n(79692),x=n(31276);function C(){return C=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},C.apply(this,arguments)}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){I(e,t,n[t])}))}return e}function I(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const P=(0,v.Z)((e=>({label:{top:6,left:16},placeholder:e=>({display:!e.placeholder||e.label?"none":void 0}),"option--selected":{fontWeight:400},clearIndicator:{padding:e.spacing(1),margin:e.spacing(.25,.5)},dropdownIndicator:{padding:e.spacing(1),margin:e.spacing(.25,.5)}})));let k=0;function S(e){const{label:t,creatable:n,getOptions:o,loadingIndicator:l,components:s,classes:d,styles:h,onChange:m,onInputChange:f,menuPlacement:g="auto"}=e,b=function(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,["label","creatable","getOptions","loadingIndicator","components","classes","styles","onChange","onInputChange","menuPlacement"]),v=n?c:o?p.Z:u.Z,[I,S]=(0,a.useState)(""),w=P((0,i.omit)(["classes"],e)),E="custom-select-"+k++,T=O({},y,s),j=(0,x.ze)(w,d),N=O({indicatorSeparator:e=>O({},e,{margin:"10px 0"}),loadingIndicator:e=>O({},e,{display:l?e.display:"none"}),loadingMessage:e=>O({},e,{fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif'})},h),Z=t?{inputId:E,TextFieldProps:O({label:t,InputLabelProps:{htmlFor:E,shrink:!(!e.value||!e.value.length)||void 0,className:j.label}},e.TextFieldProps)}:{};return r().createElement(v,C({isMulti:!0,inputId:E,inputValue:I,onChange:function(e,t){m(e,t),"create-option"===t.action&&(S(""),f("",{action:"input-change"}))},onInputChange:function(e,t){let{action:n}=t;f(e,{action:n}),"set-value"!==n&&S(e)},closeMenuOnSelect:!1,hideSelectedOptions:!1,classes:j,components:T,styles:N,menuPlacement:g,loadOptions:o},Z,b))}S.defaultProps={creatable:!1,cacheOptions:!0,components:{},classes:{},placeholder:"",loadingIndicator:!1,onInputChange:()=>{},onChange:()=>{}},S.propTypes={creatable:l().bool,cacheOptions:l().bool,defaultOptions:l().bool,value:l().arrayOf(l().shape({label:l().string.isRequired,value:l().any})),options:l().arrayOf(l().shape({label:l().string.isRequired,value:l().any})),onChange:l().func,onInputChange:l().func,placeholder:l().string,label:l().string,loadingIndicator:l().bool,components:l().shape({ClearIndicator:l().func,Control:l().func,DropdownIndicator:l().func,DownChevron:l().func,CrossIcon:l().func,Group:l().func,GroupHeading:l().func,IndicatorsContainer:l().func,IndicatorSeparator:l().func,Input:l().func,LoadingIndicator:l().func,Menu:l().func,MenuList:l().func,MenuPortal:l().func,LoadingMessage:l().func,NoOptionsMessage:l().func,MultiValue:l().func,MultiValueContainer:l().func,MultiValueLabel:l().func,MultiValueRemove:l().func,Option:l().func,Placeholder:l().func,SelectContainer:l().func,SingleValue:l().func,ValueContainer:l().func}),classes:l().shape({control:l().string,valueContainer:l().string,multiValue:l().string,noOptionsMessage:l().string,singleValue:l().string,placeholder:l().string,menu:l().string,clearIndicator:l().string,dropdownIndicator:l().string,option:l().string,"option--selected":l().string,label:l().string}),styles:l().shape({clearIndicator:l().func,container:l().func,control:l().func,dropdownIndicator:l().func,group:l().func,groupHeading:l().func,indicatorsContainer:l().func,indicatorSeparator:l().func,input:l().func,loadingIndicator:l().func,loadingMessage:l().func,menu:l().func,menuList:l().func,menuPortal:l().func,multiValue:l().func,multiValueLabel:l().func,multiValueRemove:l().func,noOptionsMessage:l().func,option:l().func,placeholder:l().func,singleValue:l().func,valueContainer:l().func}),TextFieldProps:l().object,getOptions:l().func,menuPlacement:l().string,menuPortalTarget:l().object,getOptionValue:l().func,isSearchable:l().bool,inputRef:l().shape({current:l().object})};const w=S},39827:(e,t,n)=>{n.d(t,{G:()=>h});var a=n(24328),r=n.n(a),o=n(71153),l=n.n(o),i=n(8818),s=n(79692),c=n(41128);const u=(0,s.Z)((e=>({container:{display:"flex",flexDirection:"column",flexShrink:0,width:"64px",paddingTop:"8px",backgroundColor:e.palette.background.paper,boxShadow:"0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 3px 0 rgba(0,0,0,0.2)"},active:{backgroundColor:(0,c.U1)(e.palette.primary.main,.12),color:e.palette.primary.main,"&:after":{content:'""',position:"absolute",height:"42px",width:"3px",backgroundColor:e.palette.primary.main,left:"-8px",borderRadius:"0 6px 6px 0"}},buttonWrapper:{position:"relative",width:"48px",height:"44px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"6px",margin:"2px 8px",color:e.palette.text.secondary}})));function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},p.apply(this,arguments)}function d(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}const h=e=>{let{buttonsProps:t,activeIndexId:n,className:a,onButtonClick:o,classes:s={}}=e;const c=u(),{active:h,buttonWrapper:m}=s,f=d(s,["active","buttonWrapper"]);return r().createElement("div",{className:l()(c.container,a)},t.map((e=>{let{id:t}=e,a=d(e,["id"]);return r().createElement(i.k,p({},a,{classes:f,size:"S",key:t,className:l()({[l()(c.active,h)]:n===t},c.buttonWrapper,m),onClick:()=>o(t),"data-reltio-id":`reltio-profile-right-side-button-${t}`}))})))}},51229:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(24328),r=n.n(a);const o=()=>r().createElement("div",{style:{flex:1}})},3409:(e,t,n)=>{n.d(t,{Z:()=>d});var a=n(24328),r=n.n(a),o=n(52730),l=n(59431),i=n(94079),s=n(17440),c=n(87918),u=n.n(c);const p=(0,n(79692).Z)({root:{display:"flex",alignItems:"flex-start"},slice:{fontWeight:500},cancelButton:{width:"88px",flexShrink:0,marginLeft:"15px"}}),d=()=>{const e=p(),t=(0,o.useSelector)(l.ZP.selectors.getHistoryEvent),n=(0,o.useDispatch)(),a=(0,s.pipe)(l.N5.history.actions.clearHistoryEvent,n);return t?r().createElement("div",{className:e.root},r().createElement(i.Typography,{component:"div"},u().text("You are viewing a historic slice:")," ",r().createElement("span",{className:e.slice},u().date(t.aStamp,"llll"))),r().createElement(i.Button,{className:e.cancelButton,variant:"contained",color:"primary",onClick:a},u().text("Cancel"))):null}},7718:(e,t,n)=>{n.d(t,{C:()=>m});var a=n(24328),r=n(52730),o=n(17440),l=n(90088),i=n(59431);function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){c(e,t,n[t])}))}return e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const u=(e,t)=>t.filter((t=>t.replyId!==e)),p=(e,t)=>{const n=e.replies.findIndex((e=>{let{replyId:n}=e;return n===t.replyId})),a=[...e.replies];return a[n]=t,a},d=[],h=e=>console.error("Collaboration error",e),m=e=>{let{objectIds:t=d,objectTypes:n,enabled:c=!0}=e;const m=(0,r.useSelector)(i.ZP.selectors.getEntity),f=(0,r.useSelector)(i.ZP.selectors.getTenant),g=(0,r.useSelector)(i.ZP.selectors.getCollaborationPath),b=(0,r.useSelector)(i.ZP.selectors.isCollaborationEnabled)&&c,[y,v]=(0,a.useState)(null),[x,C]=(0,a.useState)([]),[O,I]=(0,a.useState)(null),[P,k]=(0,a.useState)(null),[S,w]=(0,a.useState)(!1),[E,T]=(0,a.useState)(!1),[j,N]=(0,a.useState)({}),Z=(0,a.useCallback)((e=>{I((t=>s({},t,e)))}),[]),D=null==m?void 0:m.uri,R=(0,a.useCallback)((function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(b&&D&&!(0,l.ZiX)(D)){const n=e=>{console.warn("Collaboration error",e),I(null)};(0,o.pipe)(l.$oF,(0,o.andThen)((0,o.map)((0,o.props)(["objectId","comments"]))),(0,o.andThen)(o.fromPairs),(0,o.andThen)(t?I:Z),(0,o.otherwise)(n))({uris:e,tenant:f,collaborationPath:g})}else I(null)}),[Z,g,D,b,f]);(0,a.useEffect)((()=>{R(t,!0)}),[t,R]);const q=(0,a.useCallback)(((e,t)=>{(0,l.liG)({collaborationPath:g,tenant:f,relatedObjectUri:e,pageToken:t}).then((e=>{let{items:n,nextPageToken:a}=e;C((e=>t?(0,o.uniqBy)((0,o.prop)("commentId"),[...e,...n]):n)),v(a)})).catch(h)}),[g,f]),M=(0,a.useCallback)((e=>{T(!0),(0,l.d7q)({collaborationPath:g,tenant:f,commentId:e}).then(k).catch(h).finally((()=>T(!1)))}),[g,f]),B=(0,a.useCallback)((e=>{let{content:t,namedUsers:n,objectType:a,uri:r,relatedObjectUris:o}=e;w(!0);const i={objectId:r,content:t,relatedObjectUris:o,objectType:a,visibility:"public",namedUsers:n,permanentLink:""};return(0,l.Yrx)({collaborationPath:g,tenant:f,data:i}).then((e=>{let[t]=e;return((e,t)=>{k(e),I((n=>s({},n,{[t]:[...n[t]||[],{commentId:e.commentId,replies:0,status:"open"}]}))),C((t=>[e,...t]))})(t,r)})).catch(h).finally((()=>w(!1)))}),[g,f]),F=(0,a.useCallback)((e=>{let{content:t,namedUsers:n,objectType:a,uri:r,relatedObjectUris:i,commentId:c,replies:u}=e;w(!0);const p={objectId:r,content:t,relatedObjectUris:i,objectType:a,visibility:"public",namedUsers:n,permanentLink:"",commentId:c,replies:u};return(0,l.uAg)({collaborationPath:g,tenant:f,data:p}).then((e=>(e=>{k(e),C((0,o.map)((0,o.when)((0,o.propEq)("commentId",e.commentId),(0,o.always)(e))))})(s({},e,{replies:u})))).catch(h).finally((()=>w(!1)))}),[g,f]),V=(0,a.useCallback)((e=>{let{uri:t,commentId:n}=e;w(!0),(0,l.YFy)({collaborationPath:g,tenant:f,commentId:n}).then((()=>((e,t)=>{k(null),I((n=>{const a=n[t]||[];return s({},n,{[t]:a.filter((t=>t.commentId!==e))})})),C((t=>t.filter((t=>t.commentId!==e))))})(n,t))).catch(h).finally((()=>w(!1)))}),[g,f]),z=(0,a.useCallback)(((e,t,n,a)=>{const r="resolve"===e.action?"resolved":"open",{replyId:o}=e;k("resolved"===r?e=>{if(e)return null}:t=>{if(t)return s({},t,{replies:a?u(o,t.replies):[...t.replies,e]})}),I((e=>s({},e,{[t]:(e[t]||[]).map((e=>e.commentId===n?s({},e,{status:r,replies:a?e.replies-1:e.replies+1}):e))}))),C((t=>t.map((t=>t.commentId===n?s({},t,{status:r,replies:a?u(e.replyId,t.replies):[...t.replies,e]}):t))))}),[]),L=(0,a.useCallback)((e=>{let{uri:t,commentId:n,reply:a}=e;w(!0),(0,l.Mfr)({collaborationPath:g,tenant:f,commentId:n,replyId:a.replyId}).then((()=>z(a,t,n,!0))).catch(h).finally((()=>w(!1)))}),[g,z,f]),U=(0,a.useCallback)(((e,t)=>{k((t=>{if(t)return s({},t,{replies:p(t,e)})})),C((n=>n.map((n=>n.commentId===t?s({},n,{replies:p(n,e)}):n))))}),[]),H=(0,a.useCallback)((e=>{let{content:t,namedUsers:n,commentId:a,replyId:r}=e;w(!0);const o={content:t,namedUsers:n};return(0,l.ufV)({collaborationPath:g,tenant:f,commentId:a,replyId:r,data:o}).then((e=>U(e,a))).catch(h).finally((()=>w(!1)))}),[g,f,U]),W=(0,a.useCallback)((e=>{let{content:t,namedUsers:n,commentId:a,action:r,uri:o}=e;w(!0);const i={content:t,action:r,namedUsers:n};return(0,l.PP2)({collaborationPath:g,tenant:f,commentId:a,data:i}).then((e=>{let[t]=e;return z(t,o,a)})).catch(h).finally((()=>w(!1)))}),[g,f,z]),G=(0,a.useCallback)((e=>{let{commentId:t,uri:n}=e;W({content:"",namedUsers:[],commentId:t,action:"resolve",uri:n})}),[W]),_=(0,a.useCallback)((e=>{let{commentId:t,uri:n}=e;W({content:"",namedUsers:[],commentId:t,action:"reopen",uri:n})}),[W]);return{clearCurrentComment:(0,a.useCallback)((()=>{k(null)}),[]),comments:x,commentsMap:O,getCommentState:(e,t)=>(0,o.pathOr)({},[e,t],j),updateCommentState:(e,t,n)=>{N((a=>{const r=[e,t],l=(0,o.path)(r,a);return(0,o.assocPath)(r,(0,o.mergeRight)(l,n),a)}))},clearCommentState:(e,t)=>N((0,o.dissocPath)([e,t])),createComment:B,createReply:W,currentComment:P,deleteComment:V,editComment:F,getComment:M,getComments:q,getCommentsCount:R,loading:E,objectTypes:n,pageToken:y,reOpenThread:_,resolveThread:G,sending:S,deleteReply:L,editReply:H}}},24605:(e,t,n)=>{n.d(t,{D:()=>u});var a=n(24328),r=n.n(a),o=n(87918),l=n.n(o),i=n(94079),s=n(37265);const c=3e5,u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{anchorOrigin:t,showDismiss:n}=e,[o,u]=(0,a.useState)(!1),[p,d]=(0,a.useState)(""),h=(0,a.useCallback)((()=>{u(!1),d("")}),[]),m=(0,a.useCallback)((e=>{u(!0),d(e)}),[]),f=(0,a.useCallback)((()=>r().createElement(i.Portal,{container:document.body},r().createElement(s.Z,{open:o,anchorOrigin:t,autoHideDuration:c,onClose:h,message:p,action:n?r().createElement(i.Button,{color:"primary",onClick:h},l().text("Dismiss")):void 0}))),[o,h,p]);return{SnackbarRenderer:f,showSnackbarMessage:m}}}}]);
2
- //# sourceMappingURL=3760.js.map
package/3760.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"3760.js","mappings":"2YAEA,MAeA,EAf2DA,GAEnD,2BAAKC,MAAO,GAAIC,OAAQ,GAAIC,QAAQ,YAAYC,MAAM,8BAAiCJ,GACnF,0BACIK,EAAE,sgBACFC,KAAK,OACLC,SAAS,UACTC,OAAO,OACPC,YAAa,EACbC,QAAS,O,mECCzB,MAAMC,EAAkB,IAA0E,IAAzE,YAACC,EAAD,gBAAcC,EAAd,gBAA+BC,EAA/B,MAAgDC,EAAhD,aAAuDC,GAAkB,EAC9F,MAAOC,EAAUC,IAAeC,EAAAA,EAAAA,UAAS,MAGnCC,GAAoBC,EAAAA,EAAAA,cACrBC,IACG,MAAMC,GAAiBC,EAAAA,EAAAA,MAAKC,EAAAA,IAAiBC,EAAAA,EAAAA,OAAM,MAA5BF,CAAmCF,GACpDK,GAAcC,EAAAA,EAAAA,GAAiBf,EAAiBS,GACtDR,EACIa,GACME,EAAAA,EAAAA,YAAWhB,EAAiBU,IAC5BO,EAAAA,EAAAA,OAAKC,EAAAA,EAAAA,QAAOlB,EAAiBU,OAG3C,CAACV,EAAiBC,IAEtB,OACI,oCACI,kBAACkB,EAAA,EAAD,CACIhB,aAAcA,GAAgBiB,IAAAA,KAAU,qBACxCC,KAAK,IACLC,KAAMC,EACNC,QApBOC,GAAUpB,EAAYoB,EAAMC,iBAsBvC,kBAACC,EAAA,EAAD,CACIC,cAAerB,EACfH,SAAUA,EACVL,YAAaA,EACb8B,QAzBO,IAAMxB,EAAY,MA0BzBH,MAAOA,EACPF,gBAAiBA,MAMjCF,EAAgBgC,UAAY,CACxB/B,YAAagC,EAAAA,GACb/B,gBAAiBgC,IAAAA,QAAkBA,IAAAA,QACnC/B,gBAAiB+B,IAAAA,KACjB9B,MAAO8B,IAAAA,OACP7B,aAAc6B,IAAAA,QAGlB,W,uNCtDO,MAAMC,GAAYC,E,SAAAA,GAAW,CAChCC,MAAO,CACHC,SAAU,SAEdC,UAAW,CACPC,gBAAiB,sBCEnBC,EAAiB,IAAkF,IAAjF,KAACC,EAAD,QAAOhB,EAAP,QAAgBiB,EAAhB,MAAyBC,EAAzB,MAAgCC,EAAhC,UAAuCC,EAAvC,YAAkDC,EAAlD,aAA+DC,GAAkB,EACrG,MAAMC,EAASd,IACf,OACI,kBAACe,EAAA,EAAD,CACIF,aAAcA,EACdG,IAAKT,EAAKU,GACV1B,QAASA,EACTiB,QAASA,EACTC,MAAOA,EACPS,KAAMX,EACNY,MAAO,kBAACC,EAAA,EAAD,CAAaC,KAAMd,EAAKY,MAAOG,UAAWf,EAAKgB,aACtDC,YAAajB,EAAKY,MAClBT,MAAOA,EACPC,UAAWA,EACXc,SAAUb,EACVc,UAAWC,GAAAA,CAAW,CAAC,CAACb,EAAOV,WAAYQ,OAKvDN,EAAeT,UAAY,CACvBU,KAAMR,IAAAA,MAAgB,CAClBoB,MAAOpB,IAAAA,OACPwB,WAAYxB,IAAAA,SAEhBU,MAAOV,IAAAA,OACPR,QAASQ,IAAAA,KACTS,QAAST,IAAAA,KACTW,MAAOX,IAAAA,OACPa,YAAab,IAAAA,KACbY,UAAWZ,IAAAA,KACXc,aAAcd,IAAAA,MAGlB,UCSaL,EAAuB,IAQvB,IARwB,SACjCvB,EADiC,QAEjCyB,EAFiC,MAGjC3B,EAHiC,YAIjCH,EAJiC,cAKjC6B,EALiC,gBAMjC5B,EANiC,aAOjC8C,GACS,EACT,MAAMC,EAASd,KACRuB,EAAYK,IAAiBvD,EAAAA,EAAAA,UAAS,IAEvCwD,GAAeC,EAAAA,EAAAA,UAAQ,KAAMC,EAAAA,EAAAA,IAAiBjE,EAAayD,IAAa,CAACzD,EAAayD,IAEtFS,GAAQF,EAAAA,EAAAA,UAAQ,KAAMG,EAAAA,EAAAA,IAAwBJ,IAAe,CAACA,IAC9DK,GAAyBC,EAAAA,EAAAA,KAAgB,QAAhBA,CAAyBN,IAnBxB,IAqB1BO,GAAsB7D,EAAAA,EAAAA,cACxB,QAAC,KAACgC,GAAF,SAAmEZ,EAAcY,KACjF,CAACZ,KAGC,WAAC0C,EAAD,cAAaC,IAAiBC,EAAAA,EAAAA,GAAsB,CACtDP,MAAAA,EACAQ,MAAM,EACNC,oBAAqBL,EACrBM,cAAe3E,EACf6B,QAAAA,IAEE+C,GAAcpE,EAAAA,EAAAA,cAAYG,EAAAA,EAAAA,MAAKkB,GAlBjB,IAAMgC,EAAc,MAkBoB,CAAChC,IAqBvDgD,EAAaC,KAAKC,IAvDM,IADd,GAwDqDd,EAAMe,QACrEC,EAAkBH,KAAKI,IArDJ,IAqD8BL,EAtD3B,KAwD5B,OACI,kBAACM,EAAA,EAAD,CACIxB,UAAWZ,EAAOZ,MAClBsC,OAAQrE,EACRA,SAAUA,EACVyB,QAAS+C,EACTQ,SAAUvB,EACV3D,MAAOA,GAASkB,IAAAA,KAAU,qBAC1B+C,eAAgBA,EAChBc,gBAAiBA,EACjBI,qBAAsBd,GAEtB,kBAACe,EAAA,EAAD,CACIC,YAAY,EACZlG,OAAQwF,EACRW,WArCa,CACrB7C,EADqB,EAGrB8C,KACC,IAFD,KAACjD,EAAD,MAAOE,EAAQ,GAEd,EACD,OACI,kBAAC,EAAD,CACII,aAAcA,EACdH,MAAOA,EACPH,KAAMA,EACNE,MAAOA,EACPE,UAAW0B,IAAemB,EAC1BhD,SAAS1B,EAAAA,EAAAA,GAAiBf,EAAiBwC,GAC3CK,aAAa6C,EAAAA,EAAAA,IAAclD,GAC3BhB,QAASsB,GAAenC,EAAAA,EAAAA,MAAKiB,EAAegD,GAAehD,KAwB3DqC,MAAOA,EACP0B,YAAa,IA5ET,GA6EJrB,WAAYA,O,8hBCxH5B,MAAMoB,EAAiBjF,GAAWA,EAAOyC,KAAOzC,EAAOmF,QACjDC,GAAmBC,EAAAA,EAAAA,QACrB,CAAC,EAAeC,KAAhB,IAAC,GAAC7C,EAAD,QAAK0C,GAAN,SAA2BG,EAAOH,UAAYA,IAAY1C,IAAO6C,EAAO7C,IAAMA,EAAG8C,WAAY,GAAED,EAAO7C,WAEpG+C,GAAkBH,EAAAA,EAAAA,QAAM,CAAC,EAAWI,KAAZ,IAAC,QAACN,GAAF,SAAsBA,IAAYM,EAAMhD,MAChEiD,GAAmBC,EAAAA,EAAAA,SAAO,EAAM,YAIhCC,EAAY,CAACC,EAAS7F,KACxB,MAAM8F,EAHY,EAACD,EAAS7F,IAAW6F,EAAQE,MAAKC,EAAAA,EAAAA,QAAOR,EAAgBxF,GAASoF,EAAiBpF,KAGxFiG,CAAcJ,EAAS7F,GACpC,OAAI8F,GACAA,EAAKI,SAAWN,EAAUE,EAAKI,UAAY,GAAIlG,GACxC6F,GAEAA,EAAQpF,OAAOT,IAIxBmG,GAAuBd,EAAAA,EAAAA,QACzB,CAACtC,EAAY/C,IACToG,EAAAA,IAAAA,QAAAA,OAAqBpG,EAAO2C,MAAOI,KAAgB/C,EAAOkG,UAAY,IAAIG,KAAKF,EAAqBpD,MAGtGuD,GAAoBC,EAAAA,EAAAA,SACtB,CAACC,EAAKC,IACFb,EAAUY,EAAK,CACX/D,GAAIgE,EAAWhE,GACf0C,QAASsB,EAAWtB,QACpBxC,MAAO8D,EAAW9D,MAClB+D,SAAUD,EAAWE,sBAE7B,IAGEC,GAA2BvB,EAAAA,EAAAA,QAAM,SAACtC,EAAY8C,GAAb,IAAsB5D,EAAtB,uDAA8B,EAA9B,OACnC/B,EAAAA,EAAAA,OACI2G,EAAAA,EAAAA,QAAOV,EAAqBpD,KAC5B+D,EAAAA,EAAAA,QAAO9G,GAQI,CAPM,CACT+B,KAAM,EAAF,GAAM/B,EAAN,CAAc+C,WAAAA,IAClBd,MAAAA,MAEkBjC,EAAOkG,SACvBU,EAAyB7D,EAAY/C,EAAOkG,SAAUjE,EAAQ,GAC9D,MATd/B,CAYE2F,MAGAkB,GAAuBC,EAAAA,EAAAA,KAAI,WAC3BC,EAA4B,QAAC,GAACxE,EAAD,MAAKE,EAAL,QAAYkD,GAAb,QAA0B,CACxD,CAACpD,GAAAA,EAAI0C,QAAS1C,EAAIE,MAAAA,MACfkD,EAAQqB,KAAIC,EAAAA,EAAAA,OAAM,UAAW1E,MAG9Bc,EAAmB,CAACjE,EAAayD,KAC5B7C,EAAAA,EAAAA,OACH4G,EAAAA,EAAAA,QAAMM,EAAAA,EAAAA,MAAKL,EAAsBE,KACjCJ,EAAAA,EAAAA,SAAOb,EAAAA,EAAAA,QAAOf,EAAeS,IAC7BY,EACAM,EAAyB7D,GAJtB7C,CAKLZ,GAGAa,EAAmBH,GAAYA,EAAOkG,UAAWY,EAAAA,EAAAA,OAAM3G,EAAiBH,EAAOkG,UAAY,CAAClG,GAE5FM,EAAmB,CAACf,EAAiBS,KACvC,MAAMqH,EAAelH,EAAgBH,GAC/BM,EAAoBN,GAAWT,EAAgB+H,SAAStH,EAAOyC,IACrE,OAAOwC,EAAcjF,GAAUqH,EAAaE,MAAMjH,GAAoB+G,EAAahB,KAAK/F,K,8KCxErF,MAsFP,GAtFyBmB,E,SAAAA,IAAY+F,IAAD,CAChCC,mBAAoB,CAEhBC,WAAY,GAEhBC,YAAa,CACTC,QAAS,OACTC,QAAS,sBACTC,WAAY,aACZjG,gBAAiB,OACjBkG,UAAW,+EAEX,UAAW,CAEPC,QAAS,KACTC,UAAW,UACXC,SAAU,IAGlBC,SAAU,CACNC,WAAYZ,EAAMa,oBAEtBC,YAAa,CACTC,YAAa,QAEjBC,iBAAkB,CACd7J,MAAO,OACPC,OAAQ,QAEZ6J,YAAa,CACTb,QAAS,OACTc,cAAe,SACfC,KAAM,WAEVC,MAAO,GACPjG,MAAO,CACHkG,WAAY,MACZC,cAAe,SACfC,MAAOvB,EAAMwB,QAAQnG,KAAKoG,QAC1BC,UAAW,aAEX,kBAAmB,CACfC,UAAW,QAGnBC,eAAgB,CACZxB,QAAS,cACTmB,MAAOvB,EAAMwB,QAAQnG,KAAKoG,QAC1BE,UAAW,MACXN,WAAY,OACZX,SAAU,OACVmB,WAAY,IAEZ,mBAAoB,CAChBC,WAAY,SAGpBC,aAAc,CACVR,MAAOvB,EAAMwB,QAAQnG,KAAK2G,UAC1B5B,QAAS,cACTM,SAAU,OACViB,UAAW,MACXN,WAAY,OAEhBY,YAAa,CACT7B,QAAS,OACT8B,eAAgB,gBAChBC,SAAU,OACVhL,MAAO,OACPwK,UAAW,OAEfS,WAAY,CACRhC,QAAS,OACT+B,SAAU,QAEdE,SAAU,CACN3B,SAAU,OACVa,MAAOvB,EAAMwB,QAAQnG,KAAK2G,UAC1BM,WAAY,SACZC,OAAQ,UACR,UAAW,CACPC,eAAgB,kBCY5B,EAxEoB,IAAmD,IAAlD,UAAC9G,EAAD,OAAY+G,EAAZ,SAAoB/D,EAApB,QAA8BgE,GAAoB,EACnE,MAAM5H,EAASd,EAAU,CAAC0I,QAAAA,IACpBC,GAAWC,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,aACvBC,GAAeF,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,iBAC3BE,GAAgCxK,EAAAA,EAAAA,cAAY,KAC9CyK,UAAUC,UAAUC,WAAUC,EAAAA,EAAAA,KAAYV,MAC3C,CAACA,IAEJ,IAAIW,EAAAA,EAAAA,OAAMX,GACN,OAAO,KAGX,MAAMtH,GAAQkI,EAAAA,EAAAA,KAASZ,EAAOtH,OACxByG,EAAiBa,EAAOb,eACxB0B,GAAmBC,EAAAA,EAAAA,KAA8BZ,EAAUF,GAC3De,GAAWC,EAAAA,EAAAA,KAAehB,GAC1BiB,EAAYjB,EAAOkB,IACnBtB,GAAWc,EAAAA,EAAAA,KAAYV,GAC7B,OACI,yBAAK/G,UAAWC,GAAAA,CAAWb,EAAOmF,mBAAoBvE,IAClD,yBACIA,UAAWC,GAAAA,CAAWb,EAAOqF,YAAa,CACtC,CAACrF,EAAO6F,WAAY6C,IAExB,kBAAiBE,GAEjB,kBAACE,EAAA,EAAD,CACI5I,IAAKyH,EAAOkB,IACZlB,OAAQA,EACRoB,gBAAiB/I,EAAOgG,YACxBgD,eAAgBhJ,EAAOkG,mBAE3B,yBAAKtF,UAAWZ,EAAOmG,aACnB,6BACI,kBAAC,EAAA8C,WAAD,CAAYC,QAAQ,KAAKtI,UAAWZ,EAAOK,OACtCA,GAEJyG,GACG,kBAAC,EAAAmC,WAAD,CAAYC,QAAQ,YAAYtI,UAAWZ,EAAO8G,gBAC7CA,GAGR0B,GACG,kBAAC,EAAAS,WAAD,CAAYC,QAAQ,YAAYtI,UAAWZ,EAAOiH,cAC7CuB,IAIb,yBAAK5H,UAAWZ,EAAOmH,aACnB,yBAAKvG,UAAWZ,EAAOsH,YACnB,kBAAC6B,EAAA,EAAD,CAAiBxB,OAAQA,EAAQrJ,KAAK,SAASsC,UAAWZ,EAAOsG,UAC/D8C,EAAAA,EAAAA,KAAUR,IAAcZ,GACtB,kBAAC,EAAAqB,QAAD,CAASlM,MAAOkB,IAAAA,KAAU,sBACtB,kBAAC,EAAA4K,WAAD,CACI3D,QAAQ,SACR4D,QAAQ,QACRtI,UAAWZ,EAAOuH,SAClB9I,QAASwJ,GAER5J,IAAAA,KAAU,aANf,KAM+BkJ,OAOlD3D,GAAY,6BAAMA,O,kKCvF5B,MAAM1E,GAAYC,E,SAAAA,GAAW,CAChCmK,UAAW,CACPhE,QAAS,OACTE,WAAY,UAEhB+D,KAAM,CACF/B,WAAY,SACZvB,YAAa,SCGfuD,GAAkBC,EAAAA,EAAAA,GAA8CC,EAAAA,MAYhEC,EAA8B,IAQvB,IARwB,UACjC/I,EADiC,MAEjCgJ,EAAQ,EAFyB,OAGjCC,EAHiC,OAIjCC,EAJiC,qBAKjCC,EALiC,eAMjCC,EANiC,eAOjCC,GACS,EACT,MAAMjK,EAASd,IACf,OACI,yBAAK0B,UAAWC,GAAAA,CAAWb,EAAOsJ,UAAW1I,IACzC,kBAAC4I,EAAD,CACI5I,UAAWZ,EAAOuJ,KAClBW,UAAU,SACVhB,QAAQ,UACRzK,QAASsL,EACTI,UAAU,OACV/M,aAAciB,IAAAA,KAAU,0BAEvB+L,EAAAA,EAAAA,KAAqBR,EAAO,KAAU,IAC5B,IAAVA,EAAcvL,IAAAA,KAAU,iBAAmBA,IAAAA,KAAU,mBAE1D,kBAACD,EAAA,EAAD,CACIE,KAAK,IACLC,KAAM8L,EAAAA,EACNjN,aAAciB,IAAAA,KAAU,0BACxBI,QAASoL,EACTS,SAAUN,EACVO,iBAAe,IAEnB,kBAACnM,EAAA,EAAD,CACIE,KAAK,IACLC,KAAMiM,EAAAA,EACNpN,aAAciB,IAAAA,KAAU,sBACxBI,QAASqL,EACTQ,SAAUL,EACVM,iBAAe,M,mgBClDxB,MAAME,EAUTC,YAAY,GAOT,eANCtK,MAAM,MAACuK,EAAD,UAAQC,EAAR,UAAmBC,GADjB,OAERC,EAFQ,aAGRC,EAHQ,QAIRC,EAJQ,SAKRC,EALQ,2BAMRC,GACD,OAhBcP,WAgBd,OAfcC,eAed,OAdcC,eAcd,OAbcC,YAad,OAZcC,kBAYd,OAXcC,aAWd,OAVcC,cAUd,OATcC,gCASd,OAWKC,KAAO,IAAMC,KAAKN,SAAWM,KAAKL,aAXvC,KAaKM,eAAiB,KAAM,CAAEC,UAAWF,KAAKT,QAb9C,KAeKY,YAAc,WAAmD,IAAlDC,EAAkD,uDAAxC,GAAIC,EAAoC,uDAA1B,GAC3C,MAAMC,EAAiB,CAAC,EAAKL,oBAAqBG,GAC5CG,EAAiB,EAAH,GACb,EAAKT,2BADQ,CAEhBU,KAAM,EAAKhB,UACXiB,MAAO,EAAKhB,UACZiB,OAAQ,iBACRC,cAAc,GACXN,GAEP,OAAO,EAAKN,QACNa,EAAAA,EAAAA,KAAkC,CAChCR,QAASE,EACTD,QAASE,EACTM,eAAgB,EAAKnB,OACrBoB,WAAY,EAAKnB,aACjBE,SAAU,EAAKA,YAEjBkB,EAAAA,EAAAA,KAAoBT,EAAgBC,IAjC3C,KAoCHS,YAAevD,GACJuC,KAAKG,YACR,CACI,CACIhH,OAAQ,SACR8H,UAAW,MACXC,OAAQ,CAACzD,KAGjB,CAAC0D,OAAQ,EAAGpK,IAAK,IACnBqK,MAAMC,GACGA,GAAYA,EAASxK,OAAS,GAAKwK,EAAS,GAAG5D,MAAQA,IA/CnE,KAmDH6D,gBAAkB,CAACvK,EAAKoK,IACbnB,KAAKG,YAAY,GAAI,CAACgB,OAAAA,EAAQpK,IAAAA,IApDtC,KAuDHwK,aAAe,KACX,MAAMnB,EAAU,CAACJ,KAAKC,kBAChBI,EAAUL,KAAKF,2BACrB,OAAQE,KAAKD,QACPyB,EAAAA,EAAAA,KAAuB,CACrBpB,QAAAA,EACAC,QAAAA,EACAQ,eAAgBb,KAAKN,OACrBoB,WAAYd,KAAKL,aACjBE,SAAUG,KAAKH,YAEjB4B,EAAAA,EAAAA,KAAUrB,EAASC,IACvBe,MAAMM,GAAUA,EAAuBlD,SAlEzCwB,KAAKT,MAAQA,EACbS,KAAKR,UAAYA,EACjBQ,KAAKP,UAAYA,EACjBO,KAAKN,OAASA,EACdM,KAAKL,aAAeA,EACpBK,KAAKJ,QAAUA,EACfI,KAAKH,SAAWA,EAChBG,KAAKF,2BAA6BA,G,wcC1BnC,MAAM6B,EAKTrC,YAAY,GAAyB,eAAzB,KAACtK,EAAD,OAAO0K,EAAP,QAAeE,GAAU,OAJpBgC,gBAIoB,OAHpBlC,YAGoB,OAFpBE,aAEoB,OAM7BO,YAAc,WAAmD,IAAlDC,EAAkD,uDAAxC,GAAIC,EAAoC,uDAA1B,GAC3C,MAAMwB,EAAa,CACf,CACI3B,UAAW,EAAK0B,WAAWzI,WAE5BiH,GAEP,OAAO0B,EAAAA,EAAAA,KAAuB,CAC1BlC,QAAS,EAAKA,QACdF,OAAQ,EAAKA,OACbkC,WAAY,KACL,EAAKA,WADF,CAENzI,OAAQiH,EAAQvJ,QAASkL,EAAAA,EAAAA,MAAAA,CAAyBF,GAAc,EAAKD,WAAWzI,SAEpFkH,QAAAA,KApB6B,KAwBrCW,YAAevD,GACJuC,KAAKG,YACR,CACI,CACIhH,OAAQ,SACR8H,UAAW,KACXC,OAAQ,EAACjE,EAAAA,EAAAA,KAAY,CAACQ,IAAAA,OAG9B,CAACuE,KAAM,EAAGjL,IAAK,IACjBqK,MAAMC,GACGA,GAAYA,EAASxK,OAAS,GAAKwK,EAAS,GAAG5D,MAAQA,IAnCjC,KAuCrC6D,gBAAkB,CAACvK,EAAKiL,IACbhC,KAAKG,YAAY,GAAI,CAAC6B,KAAAA,EAAMjL,IAAAA,IAxCF,KA2CrCwK,aAAe,KACJU,EAAAA,EAAAA,KAAoB,CACvBrC,QAASI,KAAKJ,QACdF,OAAQM,KAAKN,OACbkC,WAAY5B,KAAK4B,aAClBR,MAAMM,GAASA,EAAKQ,QA/CvBlC,KAAK4B,WAAa5M,EAClBgL,KAAKN,OAASA,EACdM,KAAKJ,QAAUA,GCfhB,MCSDuC,EAAa,CAACd,EAAUe,KAC1B5P,EAAAA,EAAAA,OACIgH,EAAAA,EAAAA,MAAI6I,EAAAA,EAAAA,MAAK,SACTC,EAAAA,EAAAA,SAAQ7E,GAAQ2E,EAAMxI,SAAS6D,KAFnCjL,CAGE6O,GCNAkB,EAAwB,IAAwB,IAAvB,UAAC/M,GAAsB,EAClD,MAAM,MAACgJ,EAAD,OAAQC,EAAR,OAAgBC,EAAhB,qBAAwBC,EAAxB,eAA8CC,EAA9C,eAA8DC,GDO5C,MACxB,MAAM2D,GAAyBC,EAAAA,EAAAA,KACzBC,GAA0BD,EAAAA,EAAAA,KAC1BE,GAA6BF,EAAAA,EAAAA,MAC7B,IAAChF,EAAD,MAAMnG,EAAN,MAAakH,EAAOkB,OAAQC,EAA5B,MAA0CyC,IAC5C1F,EAAAA,EAAAA,aAA2CC,EAAAA,GAAAA,UAAAA,0BAAgD,IACzF,KAACiG,EAAD,KAAO5N,IAAQ0H,EAAAA,EAAAA,aAAyCC,EAAAA,GAAAA,UAAAA,wBAA8C,GACtG+C,GAAShD,EAAAA,EAAAA,aAA6BC,EAAAA,GAAAA,UAAAA,WACtCiD,GAAUlD,EAAAA,EAAAA,aAA6BC,EAAAA,GAAAA,UAAAA,YACvCkD,GAAWnD,EAAAA,EAAAA,aAA6BC,EAAAA,GAAAA,UAAAA,aACxCmD,GAA6BpD,EAAAA,EAAAA,cAAamG,GAC5ClG,EAAAA,GAAAA,UAAAA,8BAAkDkG,EAAO,CAAC,aAExDC,GAASC,EAAAA,EAAAA,YAAWC,EAAAA,GACpBC,GAAWC,EAAAA,EAAAA,gBACVC,EAASC,IAAcjR,EAAAA,EAAAA,WAAkB,GAE1CkR,GAAiBzN,EAAAA,EAAAA,UACnB,IDjCyB,EAACgN,EAAcvC,KAC5C,OAAQuC,GACJ,IAAK,SACD,OAAO,IAAIvD,EAAmBgB,GAClC,IAAK,cACD,OAAO,IAAIsB,EAAoBtB,KC4B7BiD,CAAkBV,EAAM,CAAC5N,KAAAA,EAAM0K,OAAAA,EAAQC,aAAAA,EAAcC,QAAAA,EAASC,SAAAA,EAAUC,2BAAAA,KAC9E,CAAC8C,EAAM5N,EAAM0K,EAAQC,EAAcC,EAASC,EAAUC,IAGpDyD,GAAuBlR,EAAAA,EAAAA,cACxB2C,IACGiO,EAASO,EAAAA,GAAAA,QAAAA,iCAAyDxO,MAEtE,CAACiO,IAGCQ,GAAapR,EAAAA,EAAAA,cACdoL,IACG,MAAMiG,EAAchE,IAAWC,GAAegE,EAAAA,EAAAA,KAAoB,CAAClG,IAAAA,EAAKqD,WAAYnB,IAAiBlC,EACrGwF,EAASW,EAAAA,GAAAA,QAAAA,WAA+B,CAACnG,IAAKiG,EAAaZ,OAAAA,EAAQe,OAAQ,kBAE/E,CAACZ,EAAUH,EAAQpD,EAAQC,IAGzBhB,GAAuBtM,EAAAA,EAAAA,cAAY,KACrC4Q,EAASW,EAAAA,GAAAA,QAAAA,gBAAoC,CAACE,cAAelB,EAAME,OAAAA,OACpE,CAACG,EAAUL,EAAME,KAEpBiB,EAAAA,EAAAA,YAAU,KACFzM,GAASkH,EACT+E,EAAqB,CACjBjM,MAAOkH,EAAQ,IAEZlH,EAAQ,GACfiM,EAAqB,CACjBjM,MAAO,MAGhB,CAACkH,EAAOlH,EAAOiM,IAElB,MAAMS,GAAkB3R,EAAAA,EAAAA,cACpB,CAAC+P,EAAiB5D,EAAelH,KAC7B8L,GAAW,GACXV,EAAwBW,EAAe9B,gBAAgBH,MAAM5C,GAAU+E,EAAqB,CAAC/E,MAAAA,MAE7F,MAAMyF,EAAW3M,EAAQ,EACzB,OAAOqL,EAA2BU,EAAe/B,gBAnE5B,GAmE+D2C,IAC/E7C,MAAMC,IACH,GAAKA,EAAL,CAGA,GAAIA,EAASxK,OAAQ,CACjB,MAAMqN,EAAU/B,EAAWd,EAAUe,GACrC,GAAI8B,EAAQrN,OAAS,EAOjB,OANA0M,EAAqB,CACjBnB,MAAOA,EAAMrP,OAAOmR,GACpBzG,IAAKyG,EAAQ,GACb5M,MAAO2M,EAAW5C,EAASxK,OAASqN,EAAQrN,cAEhD4M,EAAWS,EAAQ,IAEhB,GAAI5M,EAAQ+J,EAASxK,OAAS2H,EAAQ,EACzC,OAAOwF,EAAgB5B,EAAO5D,EAAQ6C,EAASxK,OAAQS,EAAQ+J,EAASxK,QAGhF0M,EAAqB,CACjBjM,MAAO2M,QAGdE,SAAQ,KACLf,GAAW,QAGvB,CAACC,EAAgBE,EAAsBE,IAGrCW,GAAkB/R,EAAAA,EAAAA,cACpB,CAAC+P,EAAiB9K,KACd8L,GAAW,GACXV,EAAwBW,EAAe9B,gBAAgBH,MAAM5C,GAAU+E,EAAqB,CAAC/E,MAAAA,MAE7F,MAAMyF,EAAW3M,EAAQ,EACnB6J,EAASxK,KAAKI,IAAI,EAAGO,EAvGN,IAwGfP,EAxGe,GAwGWJ,KAAKC,IAAI,EAAGU,EAxGvB,IAyGrB,OAAOqL,EAA2BU,EAAe/B,gBAAgBvK,EAAKoK,IACjEC,MAAMC,IACH,GAAKA,EAAL,CAGA,GAAIA,EAASxK,OAAQ,CACjB,MAAMqN,EAAU/B,EAAWd,EAAUe,GACrC,GAAI8B,EAAQrN,OAAS,EAOjB,OANA0M,EAAqB,CACjBnB,MAAO8B,EAAQnR,OAAOqP,GACtB3E,IAAKyG,EAAQA,EAAQrN,OAAS,GAC9BS,MAAO2M,GAAY5C,EAASxK,OAASqN,EAAQrN,eAEjD4M,EAAWS,EAAQA,EAAQrN,OAAS,IAEjC,GAAIS,EAAQ+J,EAASxK,OAAS,EACjC,OAAOuN,EAAgBhC,EAAO9K,EAAQ+J,EAASxK,QAGvD0M,EAAqB,CACjBjM,MAAO,QAGd6M,SAAQ,KACLf,GAAW,QAGvB,CAACC,EAAgBE,EAAsBE,IAGrCY,GAAuBhS,EAAAA,EAAAA,cACzB,CAAC+P,EAAiBkC,EAAoB9F,EAAelH,KACjD,GAAIgN,EAAalC,EAAMvL,OAAQ,CAC3B,MAAM4G,EAAM2E,EAAMkC,GAElB,OADAlB,GAAW,GACJZ,EAAuBa,EAAerC,YAAYvD,IACpD2D,MAAMmD,IACH,IAAIA,EAQG,CACH,MAAMC,EAAe,IAAIpC,GAEzB,OADAoC,EAAaC,OAAOH,EAAY,GACzBD,EAAqBG,EAAcF,EAAY9F,EAAQ,EAAGlH,GAVjEiM,EAAqB,CACjBjM,MAAOA,EAAQ,EACfmG,IAAAA,EACA2E,MAAAA,EACA5D,MAAAA,IAEJiF,EAAWhG,MAOlB0G,SAAQ,KACLf,GAAW,MAEhB,KAAI9L,GAASkH,EAAQ,GAOxB,OAAOwF,EAAgB5B,EAAO5D,EAAOlH,GANrCiM,EAAqB,CACjBnB,MAAAA,EACA5D,MAAAA,EACAlH,MAAOkH,EAAQ,MAM3B,CAAC6E,EAAgBE,EAAsBE,EAAYO,IAGjDU,GAAoBrS,EAAAA,EAAAA,cACtB,CAAC+P,EAAiBkC,EAAoB9F,EAAelH,KACjD,GAAIgN,GAAc,EAAG,CACjB,MAAM7G,EAAM2E,EAAMkC,GAElB,OADAlB,GAAW,GACJZ,EAAuBa,EAAerC,YAAYvD,IACpD2D,MAAMmD,IACH,IAAIA,EAQG,CACH,MAAMC,EAAe,IAAIpC,GAEzB,OADAoC,EAAaC,OAAOH,EAAY,GACzBI,EAAkBF,EAAcF,EAAa,EAAG9F,EAAQ,EAAGlH,EAAQ,GAV1EiM,EAAqB,CACjBjM,MAAOA,EAAQ,EACfmG,IAAAA,EACA2E,MAAAA,EACA5D,MAAAA,IAEJiF,EAAWhG,MAOlB0G,SAAQ,KACLf,GAAW,MAEhB,KAAI9L,GAAS,GAOhB,OAAO8M,EAAgBhC,EAAO9K,GAN9BiM,EAAqB,CACjBjM,MAAO,EACP8K,MAAAA,EACA5D,MAAAA,MAMZ,CAAC6E,EAAgBE,EAAsBE,EAAYW,IAGjD3F,GAASpM,EAAAA,EAAAA,cAAY,KACvB,GAAI+P,GAAS3E,EAAK,CACd,MAAM6G,EAAalC,EAAMuC,QAAQlH,GAAO,EACxCiH,EAAkBtC,EAAOkC,EAAY9F,EAAOlH,MAEjD,CAACoN,EAAmBtC,EAAO3E,EAAKe,EAAOlH,IAEpCoH,GAASrM,EAAAA,EAAAA,cAAY,KACvB,GAAI+P,GAAS3E,EAAK,CACd,MAAM6G,EAAalC,EAAMuC,QAAQlH,GAAO,EACxC4G,EAAqBjC,EAAOkC,EAAY9F,EAAOlH,MAEpD,CAAC+M,EAAsBjC,EAAO3E,EAAKe,EAAOlH,IAI7C,MAAO,CAACkH,MAAAA,EAAOC,OAAAA,EAAQC,OAAAA,EAAQC,qBAAAA,EAAsBC,eAF9BuE,GAAW7L,GAAS,EAE0BuH,eAD9CsE,GAAW7L,GAASkH,EAAQ,IC/NmCoG,GAEtF,MCRkC,MAClC,MAAM,MAACxC,IAAS1F,EAAAA,EAAAA,aAA2CC,EAAAA,GAAAA,UAAAA,0BAAgD,GACrGkI,GAAOnI,EAAAA,EAAAA,aAA6BC,EAAAA,GAAAA,UAAAA,SACpCJ,GAASG,EAAAA,EAAAA,aAA6BC,EAAAA,GAAAA,UAAAA,WAE5C,OAAOmI,EAAAA,EAAAA,KAAWD,KAASzC,MAAAA,OAApB,EAAoBA,EAAOxI,SAAS2C,MAAAA,OAAhB,EAAgBA,EAAQkB,ODEjCsH,GAEd,kBAACxG,EAAD,CACI/I,UAAWA,EACXgJ,MAAOA,EACPC,OAAQA,EACRC,OAAQA,EACRC,qBAAsBA,EACtBC,eAAgBA,EAChBC,eAAgBA,IAEpB,O,mGEpBR,SAAemG,E,QAAAA,GAAYC,EAAAA,I,mRCIZ,SAASC,EAAOlU,GAC3B,MAAM,WACFmU,EADE,SAEFC,EAFE,SAGF5M,EAHE,UAIF/D,EAJE,WAKF4Q,EACAC,aAAa,QAAC9I,GANZ,MAOFvH,GACAjE,EAEJ,OACI,kBAAC,EAAAuU,SAAD,GACI/P,UAAWgQ,GAAAA,CAAWhJ,EAAQiJ,OAAQ,CAAC,CAACjJ,EAAQ,qBAAsB6I,IACtEK,IAAKN,EACLO,SAAUlR,EACVqK,UAAU,OACNqG,GAEJ,kBAAC,EAAAS,SAAD,CAAUvK,MAAM,UAAU/G,QAAS+Q,IACnC,kBAACQ,EAAA,EAAD,CAAsBC,MAAO7Q,GACzB,yBAAKO,UAAWgH,EAAQ,iBAAkBhE,KAM1D0M,EAAOvR,UAAY,CACf6E,SAAU3E,IAAAA,KACVsR,WAAYtR,IAAAA,MAAgB,CACxBkB,GAAIlB,IAAAA,OAAAA,WACJiB,IAAKjB,IAAAA,OACLR,QAASQ,IAAAA,KAAAA,WACTkS,YAAalS,IAAAA,KAAAA,WACbmS,YAAanS,IAAAA,KAAAA,WACboS,SAAUpS,IAAAA,OAAAA,aACXqS,WACHd,SAAUvR,IAAAA,UAAoB,CAC1BA,IAAAA,MAAgB,CAAC,OACjBA,IAAAA,KACAA,IAAAA,MAAgB,CACZsS,QAAStS,IAAAA,IAAAA,eAGjBY,UAAWZ,IAAAA,KAAAA,WACXwR,WAAYxR,IAAAA,KAAAA,WACZoB,MAAOpB,IAAAA,OACPyR,YAAazR,IAAAA,MAAgB,CACzB2I,QAAS3I,IAAAA,MAAgB,CACrB4R,OAAQ5R,IAAAA,YCtDpB,MAIA,EAJmB,CACfqR,OAAMA,G,krBCOV,MAAMpR,GAAYC,EAAAA,EAAAA,IAAY+F,IAAD,CACzB7E,MAAO,CACHmR,IAAK,EACLC,KAAM,IAEVC,YAActV,IAAD,CACTkJ,SAAUlJ,EAAMsV,aAAetV,EAAMiE,MAAQ,YAASsR,IAE1D,mBAAoB,CAChB5K,WAAY,KAEhB6K,eAAgB,CACZrM,QAASL,EAAM2M,QAAQ,GACvBC,OAAQ5M,EAAM2M,QAAQ,IAAM,KAEhCE,kBAAmB,CACfxM,QAASL,EAAM2M,QAAQ,GACvBC,OAAQ5M,EAAM2M,QAAQ,IAAM,SAIpC,IAAI1R,EAAK,EAGT,SAAS6R,EAAY5V,GACjB,MAAM,MACFiE,EADE,UAEF4R,EAFE,WAGFC,EAHE,iBAIFC,EACAC,WAAYC,EACZzK,QAAS0K,EACTtS,OAAQuS,EACRC,SAAUC,EACVC,cAAeC,EATb,cAUFC,EAAgB,QAEhBxW,EADGyW,E,kXAXP,CAYIzW,EAZJ,kIAcM0W,EAAkBb,EAAY5B,EAAkB6B,EAAaa,EAAAA,EAAcC,EAAAA,GAE1EC,EAAYC,IAAiB3V,EAAAA,EAAAA,UAAS,IACvC4V,EAAqBjU,GAAUkU,EAAAA,EAAAA,MAAK,CAAC,WAAYhX,IACjDiX,EArBgB,iBAAgBlT,IAuBhCiS,EAAa,EAAH,GACTkB,EACAjB,GAGDzK,GAAU2L,EAAAA,EAAAA,IAAaJ,EAAoBb,GAiB3CtS,EAAS,EAAH,CACRwT,mBAAqBC,GAAD,KACbA,EADa,CAEhB3B,OAAQ,WAEZK,iBAAmBsB,GAAD,KACXA,EADW,CAEdnO,QAAS6M,EAAmBsB,EAAKnO,QAAU,SAE/CoO,eAAiBD,GAAD,KACTA,EADS,CAEZE,WAAY,gDAEbpB,GAGDqB,EAAavT,EACb,CACEgT,QAAAA,EACAQ,eAAgB,EAAF,CACVxT,MAAAA,EACAyT,gBAAiB,CACbC,QAASV,EACTW,UAAQ5X,EAAM8U,QAAS9U,EAAM8U,MAAMjP,cAAgB0P,EACnD/Q,UAAWgH,EAAQvH,QAEpBjE,EAAMyX,iBAGf,GAEN,OACI,kBAACf,EAAD,GACImB,SAAO,EACPZ,QAASA,EACTJ,WAAYA,EACZT,SA5CR,SAAsBtB,EAAOgD,GACzBzB,EAAavB,EAAOgD,GACM,kBAAtBA,EAAWC,SACXjB,EAAc,IACdP,EAAkB,GAAI,CAACwB,OAAQ,mBAyC/BzB,cApDR,SAA2BxB,EAA3B,GAA4C,IAAV,OAACiD,GAAS,EACxCxB,EAAkBzB,EAAO,CAACiD,OAAAA,IACX,cAAXA,GACAjB,EAAchC,IAkDdkD,mBAAmB,EACnBC,qBAAqB,EACrBzM,QAASA,EACTwK,WAAYA,EACZpS,OAAQA,EACR4S,cAAeA,EACf0B,YAAapC,GACT0B,EACAf,IAKhBb,EAAYuC,aAAe,CACvBtC,WAAW,EACXuC,cAAc,EACdpC,WAAY,GACZxK,QAAS,GACT8J,YAAa,GACbS,kBAAkB,EAClBO,cAAe,OACfF,SAAU,QAGdR,EAAYjT,UAAY,CAUpBkT,UAAWhT,IAAAA,KAEXuV,aAAcvV,IAAAA,KACdwV,eAAgBxV,IAAAA,KAEhBiS,MAAOjS,IAAAA,QACHA,IAAAA,MAAgB,CACZoB,MAAOpB,IAAAA,OAAAA,WACPiS,MAAOjS,IAAAA,OAGfwM,QAASxM,IAAAA,QACLA,IAAAA,MAAgB,CACZoB,MAAOpB,IAAAA,OAAAA,WACPiS,MAAOjS,IAAAA,OAIfuT,SAAUvT,IAAAA,KAEVyT,cAAezT,IAAAA,KAEfyS,YAAazS,IAAAA,OAEboB,MAAOpB,IAAAA,OAEPkT,iBAAkBlT,IAAAA,KAElBmT,WAAYnT,IAAAA,MAAgB,CACxByV,eAAgBzV,IAAAA,KAChB0V,QAAS1V,IAAAA,KACT2V,kBAAmB3V,IAAAA,KACnB4V,YAAa5V,IAAAA,KACb6V,UAAW7V,IAAAA,KACX8V,MAAO9V,IAAAA,KACP+V,aAAc/V,IAAAA,KACdgW,oBAAqBhW,IAAAA,KACrBiW,mBAAoBjW,IAAAA,KACpBkW,MAAOlW,IAAAA,KACPmW,iBAAkBnW,IAAAA,KAClBoW,KAAMpW,IAAAA,KACNqW,SAAUrW,IAAAA,KACVsW,WAAYtW,IAAAA,KACZuW,eAAgBvW,IAAAA,KAChBwW,iBAAkBxW,IAAAA,KAClByW,WAAYzW,IAAAA,KACZ0W,oBAAqB1W,IAAAA,KACrB2W,gBAAiB3W,IAAAA,KACjB4W,iBAAkB5W,IAAAA,KAClBqR,OAAQrR,IAAAA,KACR6W,YAAa7W,IAAAA,KACb8W,gBAAiB9W,IAAAA,KACjB+W,YAAa/W,IAAAA,KACbgX,eAAgBhX,IAAAA,OAGpB2I,QAAS3I,IAAAA,MAAgB,CACrBiX,QAASjX,IAAAA,OACTkX,eAAgBlX,IAAAA,OAChBmX,WAAYnX,IAAAA,OACZoX,iBAAkBpX,IAAAA,OAClBqX,YAAarX,IAAAA,OACbyS,YAAazS,IAAAA,OACbsX,KAAMtX,IAAAA,OACN2S,eAAgB3S,IAAAA,OAChB8S,kBAAmB9S,IAAAA,OACnB4R,OAAQ5R,IAAAA,OACR,mBAAoBA,IAAAA,OACpBoB,MAAOpB,IAAAA,SAMXe,OAAQf,IAAAA,MAAgB,CACpB2S,eAAgB3S,IAAAA,KAChBqK,UAAWrK,IAAAA,KACXiX,QAASjX,IAAAA,KACT8S,kBAAmB9S,IAAAA,KACnBkE,MAAOlE,IAAAA,KACPuX,aAAcvX,IAAAA,KACdwX,oBAAqBxX,IAAAA,KACrBuU,mBAAoBvU,IAAAA,KACpByX,MAAOzX,IAAAA,KACPkT,iBAAkBlT,IAAAA,KAClByU,eAAgBzU,IAAAA,KAChBsX,KAAMtX,IAAAA,KACN0X,SAAU1X,IAAAA,KACV2X,WAAY3X,IAAAA,KACZmX,WAAYnX,IAAAA,KACZ4X,gBAAiB5X,IAAAA,KACjB6X,iBAAkB7X,IAAAA,KAClBoX,iBAAkBpX,IAAAA,KAClB4R,OAAQ5R,IAAAA,KACRyS,YAAazS,IAAAA,KACbqX,YAAarX,IAAAA,KACbkX,eAAgBlX,IAAAA,OAGpB4U,eAAgB5U,IAAAA,OAChBiT,WAAYjT,IAAAA,KACZ2T,cAAe3T,IAAAA,OACf8X,iBAAkB9X,IAAAA,OAClB+X,eAAgB/X,IAAAA,KAChBgY,aAAchY,IAAAA,KACdiY,SAAUjY,IAAAA,MAAgB,CAACsS,QAAStS,IAAAA,UAGxC,MC/PA,ED+PA,G,6GE/PO,MAAMC,GAAYC,EAAAA,EAAAA,IAAY+F,IAAD,CAChCoE,UAAW,CACPhE,QAAS,OACTc,cAAe,SACfhB,WAAY,EACZ/I,MAAO,OACP8a,WAAY,MACZ5X,gBAAiB2F,EAAMwB,QAAQZ,WAAWsR,MAC1C3R,UAAW,8FAEf4R,OAAQ,CACJ9X,iBAAiB+X,EAAAA,EAAAA,IAAKpS,EAAMwB,QAAQC,QAAQ4Q,KAAM,KAClD9Q,MAAOvB,EAAMwB,QAAQC,QAAQ4Q,KAC7B,UAAW,CACP7R,QAAS,KACT8R,SAAU,WACVlb,OAAQ,OACRD,MAAO,MACPkD,gBAAiB2F,EAAMwB,QAAQC,QAAQ4Q,KACvC9F,KAAM,OACNgG,aAAc,gBAGtBC,cAAe,CACXF,SAAU,WACVnb,MAAO,OACPC,OAAQ,OACRgJ,QAAS,OACTE,WAAY,SACZ4B,eAAgB,SAChBqQ,aAAc,MACd3F,OAAQ,UACRrL,MAAOvB,EAAMwB,QAAQnG,KAAK2G,e,okBChB3B,MAAMyQ,EAA+B,IAA2E,IAA1E,aAACC,EAAD,cAAeC,EAAf,UAA8BjX,EAA9B,cAAyCkX,EAAzC,QAAwDlQ,EAAU,IAAQ,EACnH,MAAM5H,EAASd,KACT,OAACmY,EAAD,cAASK,GAAuC9P,EAArBmQ,EAAjC,EAAsDnQ,EAAtD,4BAEA,OACI,yBAAKhH,UAAWC,GAAAA,CAAWb,EAAOsJ,UAAW1I,IACxCgX,EAAahT,KAAI,IAA0B,IAAzB,GAACzE,GAAwB,EAAjB6X,EAAiB,YACxC,OACI,kBAAC5Z,EAAA,EAAD,KACQ4Z,EADR,CAEIpQ,QAASmQ,EACTzZ,KAAK,IACL4B,IAAKC,EACLS,UAAWC,GAAAA,CACP,CAAC,CAACA,GAAAA,CAAWb,EAAOqX,OAAQA,IAAUQ,IAAkB1X,GACxDH,EAAO0X,cACPA,GAEJjZ,QAAS,IAAMqZ,EAAc3X,GAC7B,iBAAiB,oCAAmCA,a,yDCnC5E,MAEA,EAFe,IAAM,yBAAKP,MAAO,CAACyG,KAAM,M,wHCAjC,MAAMnH,GAAYC,E,SAAAA,GAAW,CAChCqE,KAAM,CACF8B,QAAS,OACTE,WAAY,cAEhByS,MAAO,CACHlR,WAAY,KAEhBmR,aAAc,CACV7b,MAAO,OACP+I,WAAY,EACZ4B,WAAY,UCiBpB,EApB2B,KACvB,MAAMhH,EAASd,IAETiZ,GAAerQ,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,iBAC3BsG,GAAWC,EAAAA,EAAAA,eACX8J,GAAWxa,EAAAA,EAAAA,MAAKya,EAAAA,GAAAA,QAAAA,QAAAA,kBAA2ChK,GAEjE,OAAO8J,EACH,yBAAKvX,UAAWZ,EAAOwD,MACnB,kBAAC,EAAAyF,WAAD,CAAYiB,UAAW,OAClB7L,IAAAA,KAAU,qCAAsC,IACjD,0BAAMuC,UAAWZ,EAAOiY,OAAQ5Z,IAAAA,KAAU8Z,EAAaG,OAAQ,UAEnE,kBAAC,EAAAC,OAAD,CAAQ3X,UAAWZ,EAAOkY,aAAchP,QAAQ,YAAYzC,MAAM,UAAUhI,QAAS2Z,GAChF/Z,IAAAA,KAAU,YAGnB,O,miBCmBR,MAAMma,EAAgB,CAACC,EAAiBC,IAAqBA,EAAQnU,QAAQoU,GAAUA,EAAMF,UAAYA,IAEnGG,EAAoB,CAACC,EAAkBF,KACzC,MAAMG,EAAoBD,EAAQH,QAAQK,WAAU,QAAC,QAACN,GAAF,SAAeA,IAAYE,EAAMF,WAC/EO,EAAa,IAAIH,EAAQH,SAE/B,OADAM,EAAWF,GAAqBH,EACzBK,GAGLC,EAAmB,GACnBC,EAAuBC,GAAMC,QAAQC,MAAM,sBAAuBF,GAC3DG,EAAmB,IAAwE,IAAvE,UAACC,EAAYN,EAAb,YAA+BO,EAA/B,QAA4CC,GAAU,GAAiB,EACpG,MAAM9R,GAASG,EAAAA,EAAAA,aAAY4R,EAAAA,GAAAA,UAAAA,WACrB5O,GAAiBhD,EAAAA,EAAAA,aAAY4R,EAAAA,GAAAA,UAAAA,WAC7BC,GAA4B7R,EAAAA,EAAAA,aAAY4R,EAAAA,GAAAA,UAAAA,sBACxCE,GAAyB9R,EAAAA,EAAAA,aAAY4R,EAAAA,GAAAA,UAAAA,yBAAyCD,GAE7EI,EAAWC,IAAgBvc,EAAAA,EAAAA,UAAwB,OACnDwc,EAAUC,IAAezc,EAAAA,EAAAA,UAAoB,KAC7C0c,EAAaC,IAAkB3c,EAAAA,EAAAA,UAAsB,OACrD4c,EAAgBC,IAAqB7c,EAAAA,EAAAA,UAAyB,OAC9D8c,EAASC,IAAc/c,EAAAA,EAAAA,WAAS,IAChCgR,EAASC,IAAcjR,EAAAA,EAAAA,WAAS,IAChCgd,EAAuBC,IAA4Bjd,EAAAA,EAAAA,UAAgC,IAEpFkd,GAA2Bhd,EAAAA,EAAAA,cAAawc,IAC1CC,GAAgBQ,GAAD,KACRA,EACAT,OAER,IACGrR,EAAYjB,MAAAA,OAAH,EAAGA,EAAQkB,IACpB8R,GAAmBld,EAAAA,EAAAA,cACrB,SAAC8b,GAAwD,IAAnCqB,EAAmC,wDACrD,GAAIhB,GAA0BhR,KAAcQ,EAAAA,EAAAA,KAAUR,GAAY,CAC9D,MAAMiS,EAAW1B,IACbC,QAAQ0B,KAAK,sBAAuB3B,GACpCe,EAAe,QAEnBtc,EAAAA,EAAAA,MACImd,EAAAA,KACAC,EAAAA,EAAAA,UAAQpW,EAAAA,EAAAA,MAAIxI,EAAAA,EAAAA,OAAM,CAAC,WAAY,gBAC/B4e,EAAAA,EAAAA,SAAQC,EAAAA,YACRD,EAAAA,EAAAA,SAAQJ,EAAyBV,EAAiBO,IAClDS,EAAAA,EAAAA,WAAUL,GALdjd,CAME,CAACud,KAAM5B,EAAWzO,OAAAA,EAAQ6O,kBAAAA,SAE5BO,EAAe,QAGvB,CAACO,EAA0Bd,EAAmB/Q,EAAWgR,EAAwB9O,KAGrFqE,EAAAA,EAAAA,YAAU,KACNwL,EAAiBpB,GAAW,KAC7B,CAACA,EAAWoB,IAEf,MAAMS,GAAc3d,EAAAA,EAAAA,cAChB,CAAC4d,EAA0BxB,MACvByB,EAAAA,EAAAA,KAAmB,CAAC3B,kBAAAA,EAAmB7O,OAAAA,EAAQuQ,iBAAAA,EAAkBxB,UAAAA,IAC5DrN,MAAK,IAA4B,IAA3B,MAACtL,EAAD,cAAQqa,GAAmB,EAC9BvB,GAAawB,GACJ3B,GAGE4B,EAAAA,EAAAA,SAAOhO,EAAAA,EAAAA,MAAK,aAAc,IAAI+N,KAAiBta,IAF3CA,IAIf4Y,EAAayB,MAEhBG,MAAMxC,KAEf,CAACS,EAAmB7O,IAGlB6Q,GAAale,EAAAA,EAAAA,cACdme,IACGpN,GAAW,IAEXqN,EAAAA,EAAAA,KAAkB,CAAClC,kBAAAA,EAAmB7O,OAAAA,EAAQ8Q,UAAAA,IACzCpP,KAAK4N,GACLsB,MAAMxC,GACN3J,SAAQ,IAAMf,GAAW,OAElC,CAACmL,EAAmB7O,IA8BlBgR,GAAgBre,EAAAA,EAAAA,cAClB,IAA+D,IAA9D,QAACiI,EAAD,WAAUqW,EAAV,WAAsBC,EAAtB,IAAkCnT,EAAlC,kBAAuCoT,GAAuB,EAC3D3B,GAAW,GAEX,MAAMla,EAAO,CACT8b,SAAUrT,EACVnD,QAAAA,EACAuW,kBAAAA,EACAD,WAAAA,EACAG,WAAY,SACZJ,WAAAA,EACAK,cAAe,IAGnB,OAAOC,EAAAA,EAAAA,KAAqB,CAAC1C,kBAAAA,EAAmB7O,OAAAA,EAAQ1K,KAAAA,IACnDoM,MAAK,QAAEqM,GAAF,QA1CQ,EAACA,EAAkBhQ,KACzCuR,EAAkBvB,GAClBqB,GAAgBoC,GACZ,KACOA,EADP,CAEI,CAACzT,GAAM,IAAKyT,EAAgBzT,IAAQ,GAAK,CAAC+S,UAAW/C,EAAQ+C,UAAWlD,QAAS,EAAG6D,OAAQ,aAGpGvC,GAAawB,GAAiB,CAAC3C,KAAY2C,MAkCdgB,CAAkB3D,EAAShQ,MAC/C6S,MAAMxC,GACN3J,SAAQ,IAAM+K,GAAW,OAElC,CAACX,EAAmB7O,IAGlB2R,GAAchf,EAAAA,EAAAA,cAChB,IAAmF,IAAlF,QAACiI,EAAD,WAAUqW,EAAV,WAAsBC,EAAtB,IAAkCnT,EAAlC,kBAAuCoT,EAAvC,UAA0DL,EAA1D,QAAqElD,GAAa,EAC/E4B,GAAW,GAEX,MAAMla,EAAO,CACT8b,SAAUrT,EACVnD,QAAAA,EACAuW,kBAAAA,EACAD,WAAAA,EACAG,WAAY,SACZJ,WAAAA,EACAK,cAAe,GACfR,UAAAA,EACAlD,QAAAA,GAGJ,OAAOgE,EAAAA,EAAAA,KAAqB,CAAC/C,kBAAAA,EAAmB7O,OAAAA,EAAQ1K,KAAAA,IACnDoM,MAAMqM,GAxDWA,CAAAA,IAC1BuB,EAAkBvB,GAClBmB,GAAYpV,EAAAA,EAAAA,MAAIE,EAAAA,EAAAA,OAAK6X,EAAAA,EAAAA,QAAO,YAAa9D,EAAQ+C,YAAYgB,EAAAA,EAAAA,QAAO/D,OAsDzCgE,CAAqB,EAAD,GAAKhE,EAAL,CAAcH,QAAAA,OACpDgD,MAAMxC,GACN3J,SAAQ,IAAM+K,GAAW,OAElC,CAACX,EAAmB7O,IAGlBgS,GAAgBrf,EAAAA,EAAAA,cAClB,IAAsB,IAArB,IAACoL,EAAD,UAAM+S,GAAe,EAClBtB,GAAW,IAEXyC,EAAAA,EAAAA,KAAqB,CAACpD,kBAAAA,EAAmB7O,OAAAA,EAAQ8Q,UAAAA,IAC5CpP,MAAK,IAhEa,EAACoP,EAAmB/S,KAC/CuR,EAAkB,MAClBF,GAAgBoC,IACZ,MAAMvC,EAAWuC,EAAgBzT,IAAQ,GACzC,YACOyT,EADP,CAEI,CAACzT,GAAMkR,EAASxV,QAAQyY,GAAMA,EAAEpB,YAAcA,SAGtD5B,GAAawB,GACFA,EAAajX,QAAQsU,GAAYA,EAAQ+C,YAAcA,OAsD9CqB,CAAuBrB,EAAW/S,KAC7C6S,MAAMxC,GACN3J,SAAQ,IAAM+K,GAAW,OAElC,CAACX,EAAmB7O,IAGlBoS,GAAqBzf,EAAAA,EAAAA,cAAY,CAACkb,EAAc9P,EAAa+S,EAAmBuB,KAClF,MAAMC,EAA6B,YAAjBzE,EAAMxE,OAAuB,WAAa,QACtD,QAACsE,GAAWE,EAEdyB,EADc,aAAdgD,EACmBC,IACf,GAAIA,EACA,OAAO,MAIIA,IACf,GAAIA,EACA,YACOA,EADP,CAEI3E,QAASyE,EACH3E,EAAcC,EAAS4E,EAAmB3E,SAC1C,IAAI2E,EAAmB3E,QAASC,OAMtDuB,GAAgBoC,GAAD,KACRA,EADQ,CAEX,CAACzT,IAAOyT,EAAgBzT,IAAQ,IAAIjE,KAAKiU,GACjCA,EAAQ+C,YAAcA,EACtB,KACO/C,EADP,CAEI0D,OAAQa,EACR1E,QAASyE,EAAgBtE,EAAQH,QAAU,EAAIG,EAAQH,QAAU,IAIlEG,QAIfmB,GAAawB,GACFA,EAAa5W,KAAKiU,GACjBA,EAAQ+C,YAAcA,EACtB,KACO/C,EADP,CAEI0D,OAAQa,EACR1E,QAASyE,EACH3E,EAAcG,EAAMF,QAASI,EAAQH,SACrC,IAAIG,EAAQH,QAASC,KAI5BE,QAGhB,IAEGyE,GAAc7f,EAAAA,EAAAA,cAChB,IAA6B,IAA5B,IAACoL,EAAD,UAAM+S,EAAN,MAAiBjD,GAAW,EACzB2B,GAAW,IAEXiD,EAAAA,EAAAA,KAAmB,CAAC5D,kBAAAA,EAAmB7O,OAAAA,EAAQ8Q,UAAAA,EAAWnD,QAASE,EAAMF,UACpEjM,MAAK,IAAM0Q,EAAmBvE,EAAO9P,EAAK+S,GAAW,KACrDF,MAAMxC,GACN3J,SAAQ,IAAM+K,GAAW,OAElC,CAACX,EAAmBuD,EAAoBpS,IAGtC0S,GAAmB/f,EAAAA,EAAAA,cAAY,CAACkb,EAAciD,KAChDxB,GAAmBiD,IACf,GAAIA,EACA,YACOA,EADP,CAEI3E,QAASE,EAAkByE,EAAoB1E,QAK3DqB,GAAawB,GACFA,EAAa5W,KAAKiU,GACjBA,EAAQ+C,YAAcA,EACtB,KACO/C,EADP,CAEIH,QAASE,EAAkBC,EAASF,KAIrCE,QAGhB,IAEG4E,GAAYhgB,EAAAA,EAAAA,cACd,IAA+C,IAA9C,QAACiI,EAAD,WAAUqW,EAAV,UAAsBH,EAAtB,QAAiCnD,GAAa,EAC3C6B,GAAW,GACX,MAAMla,EAAO,CACTsF,QAAAA,EACAqW,WAAAA,GAEJ,OAAO2B,EAAAA,EAAAA,KAAmB,CAAC/D,kBAAAA,EAAmB7O,OAAAA,EAAQ8Q,UAAAA,EAAWnD,QAAAA,EAASrY,KAAAA,IACrEoM,MAAMmM,GAAU6E,EAAiB7E,EAAOiD,KACxCF,MAAMxC,GACN3J,SAAQ,IAAM+K,GAAW,OAElC,CAACX,EAAmB7O,EAAQ0S,IAG1BG,GAAclgB,EAAAA,EAAAA,cAChB,IAAmD,IAAlD,QAACiI,EAAD,WAAUqW,EAAV,UAAsBH,EAAtB,OAAiCzH,EAAjC,IAAyCtL,GAAS,EAC/CyR,GAAW,GAEX,MAAMla,EAAO,CACTsF,QAAAA,EACAyO,OAAAA,EACA4H,WAAAA,GAGJ,OAAO6B,EAAAA,EAAAA,KAAmB,CAACjE,kBAAAA,EAAmB7O,OAAAA,EAAQ8Q,UAAAA,EAAWxb,KAAAA,IAC5DoM,MAAK,QAAEmM,GAAF,SAAauE,EAAmBvE,EAAO9P,EAAK+S,MACjDF,MAAMxC,GACN3J,SAAQ,IAAM+K,GAAW,OAElC,CAACX,EAAmB7O,EAAQoS,IAG1BW,GAAgBpgB,EAAAA,EAAAA,cAClB,IAAsB,IAArB,UAACme,EAAD,IAAY/S,GAAS,EAClB8U,EAAY,CAACjY,QAAS,GAAIqW,WAAY,GAAIH,UAAAA,EAAWzH,OAAQ,UAAWtL,IAAAA,MAE5E,CAAC8U,IAGCG,GAAergB,EAAAA,EAAAA,cACjB,IAAsB,IAArB,UAACme,EAAD,IAAY/S,GAAS,EAClB8U,EAAY,CAACjY,QAAS,GAAIqW,WAAY,GAAIH,UAAAA,EAAWzH,OAAQ,SAAUtL,IAAAA,MAE3E,CAAC8U,IAoBL,MAAO,CACHI,qBAlBwBtgB,EAAAA,EAAAA,cAAY,KACpC2c,EAAkB,QACnB,IAiBCL,SAAAA,EACAE,YAAAA,EACA+D,gBAjBoB,CAACnV,EAAaoV,KAAuBC,EAAAA,EAAAA,QAAO,GAAI,CAACrV,EAAKoV,GAAa1D,GAkBvF4D,mBAbuB,CAACtV,EAAaoV,EAAoBG,KACzD5D,GAA0B6D,IACtB,MAAMC,EAAqB,CAACzV,EAAKoV,GAC3BM,GAAmBC,EAAAA,EAAAA,MAAKF,EAAoBD,GAClD,OAAOI,EAAAA,EAAAA,WAAUH,GAAoBI,EAAAA,EAAAA,YAAWH,EAAkBH,GAAWC,OAUjFM,kBAjBsB,CAAC9V,EAAaoV,IACpCzD,GAAyBoE,EAAAA,EAAAA,YAAW,CAAC/V,EAAKoV,KAiB1CnC,cAAAA,EACA6B,YAAAA,EACAxD,eAAAA,EACA2C,cAAAA,EACAL,YAAAA,EACAd,WAAAA,EACAP,YAAAA,EACAT,iBAAAA,EACApM,QAAAA,EACAiL,YAAAA,EACAK,UAAAA,EACAiE,aAAAA,EACAD,cAAAA,EACAxD,QAAAA,EACAiD,YAAAA,EACAG,UAAAA,K,mGC/XR,MAAMoB,EAAe,IACRC,EAAc,WAAmC,IAAlCrT,EAAkC,uDAAP,GACnD,MAAM,aAACsT,EAAD,YAAeC,GAAevT,GAC7BwT,EAAgBC,IAAqB3hB,EAAAA,EAAAA,WAAS,IAC9C4hB,EAAiBC,IAAsB7hB,EAAAA,EAAAA,UAAS,IAEjD8hB,GAAgB5hB,EAAAA,EAAAA,cAAY,KAC9ByhB,GAAkB,GAClBE,EAAmB,MACpB,IAEGE,GAAsB7hB,EAAAA,EAAAA,cAAa8hB,IACrCL,GAAkB,GAClBE,EAAmBG,KACpB,IAEGC,GAAmB/hB,EAAAA,EAAAA,cAAY,IAE7B,kBAAC,EAAAgiB,OAAD,CAAQnW,UAAWoW,SAASC,MACxB,kBAAC,IAAD,CACIje,KAAMud,EACNF,aAAcA,EACda,iBAAkBf,EAClB/f,QAASugB,EACTE,QAASJ,EACThL,OACI6K,EACI,kBAAC,EAAAzG,OAAD,CAAQ9R,MAAM,UAAUhI,QAAS4gB,GAC5BhhB,IAAAA,KAAU,iBAEfsT,MAMrB,CAACsN,EAAgBI,EAAeF,IAEnC,MAAO,CAACK,iBAAAA,EAAkBF,oBAAAA","sources":["webpack://@reltio/remotes/../components/src/icons/Table.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettings.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnListItem.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettingsPopup.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/columnHelpers.js","webpack://@reltio/remotes/../components/src/components/ProfileBand/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfileBand/ProfileBand.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/ProfileBandNavigationWidget.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/MainSearchProvider.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/GraphSearchProvider.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/SearchProviderFactory.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/hooks/useSearchNavigation.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/ProfileBandNavigation.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/hooks/useSearchNavigationVisibility.ts","webpack://@reltio/remotes/../components/src/components/ReactSelect/CreatableSelect.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/components/Option.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/components/index.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/MultiSelect.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/index.js","webpack://@reltio/remotes/../components/src/components/SideIconPanel/styles.ts","webpack://@reltio/remotes/../components/src/components/SideIconPanel/SideButtonsPanel.tsx","webpack://@reltio/remotes/../components/src/components/Spacer/Spacer.js","webpack://@reltio/remotes/../components/src/components/history/ProfileBandHistory/styles.ts","webpack://@reltio/remotes/../components/src/components/history/ProfileBandHistory/ProfileBandHistory.tsx","webpack://@reltio/remotes/../components/src/hooks/useCollaboration.ts","webpack://@reltio/remotes/../components/src/hooks/useSnackbar.tsx"],"sourcesContent":["import React from 'react';\n\nconst SvgTable: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={20} height={18} viewBox=\"0 0 20 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16 7.24V6h-4v1.24a8.417 8.417 0 00-2 .768V6H6v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM4 12V6H2v6h2zm0-8V2H2v2h2zm6 0V2H6v2h4zm6 0V2h-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 0014 9zm0 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 stroke=\"none\"\n strokeWidth={1}\n opacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgTable;\n","import React, {useCallback, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {ColumnsDataType} from '../../../../constants';\nimport TableIcon from '../../../../icons/Table';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport {pipe, uniq, pluck, difference, concat} from 'ramda';\n\nimport {ColumnsSettingsPopup} from './ColumnsSettingsPopup';\n\nimport i18n from 'ui-i18n';\nimport {getChildColumns, isColumnSelected} from './columnHelpers';\n\nconst ColumnsSettings = ({columnsData, selectedColumns, onChangeColumns, title, tooltipTitle}) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const openPopup = (event) => setAnchorEl(event.currentTarget);\n const closePopup = () => setAnchorEl(null);\n const handleColumnClick = useCallback(\n (column) => {\n const changedColumns = pipe(getChildColumns, pluck('id'))(column);\n const wasSelected = isColumnSelected(selectedColumns, column);\n onChangeColumns(\n wasSelected\n ? difference(selectedColumns, changedColumns)\n : uniq(concat(selectedColumns, changedColumns))\n );\n },\n [selectedColumns, onChangeColumns]\n );\n return (\n <>\n <SmallIconButtonWithTooltip\n tooltipTitle={tooltipTitle || i18n.text('Show/hide columns')}\n size=\"L\"\n icon={TableIcon}\n onClick={openPopup}\n />\n <ColumnsSettingsPopup\n onColumnClick={handleColumnClick}\n anchorEl={anchorEl}\n columnsData={columnsData}\n onClose={closePopup}\n title={title}\n selectedColumns={selectedColumns}\n />\n </>\n );\n};\n\nColumnsSettings.propTypes = {\n columnsData: ColumnsDataType,\n selectedColumns: PropTypes.arrayOf(PropTypes.string),\n onChangeColumns: PropTypes.func,\n title: PropTypes.string,\n tooltipTitle: PropTypes.string\n};\n\nexport default ColumnsSettings;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n popup: {\n minWidth: '200px'\n },\n groupItem: {\n backgroundColor: 'rgba(0,0,0,0.04)'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport AttributeListItem from '../../../AttributeListItem/AttributeListItem';\nimport Highlighter from '../../../Highlighter/Highlighter';\n\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst ColumnListItem = ({item, onClick, checked, level, style, isFocused, isGroupItem, hideCheckBox}) => {\n const styles = useStyles();\n return (\n <AttributeListItem\n hideCheckBox={hideCheckBox}\n key={item.id}\n onClick={onClick}\n checked={checked}\n level={level}\n data={item}\n label={<Highlighter text={item.label} highlight={item.filterText} />}\n labelInText={item.label}\n style={style}\n isFocused={isFocused}\n hideIcon={isGroupItem}\n className={classnames({[styles.groupItem]: isGroupItem})}\n />\n );\n};\n\nColumnListItem.propTypes = {\n item: PropTypes.shape({\n label: PropTypes.string,\n filterText: PropTypes.string\n }),\n level: PropTypes.number,\n onClick: PropTypes.func,\n checked: PropTypes.bool,\n style: PropTypes.object,\n isGroupItem: PropTypes.bool,\n isFocused: PropTypes.bool,\n hideCheckBox: PropTypes.bool\n};\n\nexport default ColumnListItem;\n","import React, {useState, useMemo, useCallback} from 'react';\nimport i18n from 'ui-i18n';\nimport {pipe} from 'ramda';\n\nimport {getMaxItemWidth, DataTypeDefinition} from '@reltio/mdm-sdk';\n\nimport VirtualGroupedList from '../../../VirtualGroupedList/VirtualGroupedList';\nimport SelectionPopup from '../../../SelectionPopup/SelectionPopup';\nimport {buildColumnItems, isColumnSelected, isGroupColumn} from './columnHelpers';\nimport {flattenGroupedItemsData} from '../../../VirtualGroupedList/helpers';\nimport {useKeyboardNavigation} from '../../../SelectionPopup/helpers';\nimport ColumnListItem from './ColumnListItem';\n\nimport {useStyles} from './styles';\nimport {ListItemProps} from '@material-ui/core/ListItem';\n\ntype Column = {\n id: string;\n label: string;\n};\n\ntype GroupedColumnData =\n | {\n id: string;\n label: string;\n columns: Column[];\n }\n | Column;\n\ntype GroupedColumnList = {\n id: string;\n groupId: string;\n label: string;\n attrType: DataTypeDefinition;\n};\n\ntype Props = {\n anchorEl: HTMLElement;\n onClose: () => void;\n title?: string;\n columnsData: GroupedColumnData[];\n onColumnClick: (column: {id: string}) => void;\n selectedColumns: string[];\n hideCheckBox?: boolean;\n};\n\nconst ITEM_HEIGHT = 32;\nconst MAX_LIST_CONTAINER_HEIGHT = 300;\nconst DEFAULT_MIN_CONTAINER_WIDTH = 308;\nconst CONTAINER_HEADER_HEIGHT = 108;\nconst MIN_CONTAINER_HEIGHT = 140;\n\nexport const ColumnsSettingsPopup = ({\n anchorEl,\n onClose,\n title,\n columnsData,\n onColumnClick,\n selectedColumns,\n hideCheckBox\n}: Props) => {\n const styles = useStyles();\n const [filterText, setFilterText] = useState('');\n const clearFilter = () => setFilterText('');\n const groupedItems = useMemo(() => buildColumnItems(columnsData, filterText), [columnsData, filterText]);\n\n const items = useMemo(() => flattenGroupedItemsData(groupedItems), [groupedItems]);\n const containerWidth: number = getMaxItemWidth('label')(groupedItems) || DEFAULT_MIN_CONTAINER_WIDTH;\n\n const handleSearchOnEnter = useCallback(\n ({item}: {item: {id: string}; groupData: {item: {id: string}}}) => onColumnClick(item),\n [onColumnClick]\n );\n\n const {focusIndex, handleKeyDown} = useKeyboardNavigation({\n items,\n open: true,\n onSelectFocusedItem: handleSearchOnEnter,\n selectedItems: selectedColumns,\n onClose\n });\n const handleClose = useCallback(pipe(onClose, clearFilter), [onClose]);\n\n const renderColumnItem = (\n style: ListItemProps['style'],\n {item, level = 0}: {item: GroupedColumnList; level?: number},\n index: number\n ) => {\n return (\n <ColumnListItem\n hideCheckBox={hideCheckBox}\n style={style}\n item={item}\n level={level}\n isFocused={focusIndex === index}\n checked={isColumnSelected(selectedColumns, item)}\n isGroupItem={isGroupColumn(item)}\n onClick={hideCheckBox ? pipe(onColumnClick, handleClose) : onColumnClick}\n />\n );\n };\n\n const listHeight = Math.min(MAX_LIST_CONTAINER_HEIGHT, ITEM_HEIGHT * items.length);\n const containerHeight = Math.max(MIN_CONTAINER_HEIGHT, listHeight + CONTAINER_HEADER_HEIGHT);\n\n return (\n <SelectionPopup\n className={styles.popup}\n open={!!anchorEl}\n anchorEl={anchorEl}\n onClose={handleClose}\n onSearch={setFilterText}\n title={title || i18n.text('Show/hide columns')}\n containerWidth={containerWidth}\n containerHeight={containerHeight}\n searchInputOnKeyDown={handleKeyDown}\n >\n <VirtualGroupedList\n fixedTitle={false}\n height={listHeight}\n renderItem={renderColumnItem}\n items={items}\n getItemSize={() => ITEM_HEIGHT}\n focusIndex={focusIndex}\n />\n </SelectionPopup>\n );\n};\n","import {assoc, chain, curry, either, filter, has, pipe, propOr, reduce, when} from 'ramda';\nimport {utils} from '@reltio/mdm-sdk';\n\nconst isGroupColumn = (column) => column.id === column.groupId;\nconst isParentToColumn = curry(\n ({id, groupId}, parent) => parent.groupId === groupId && (id === parent.id || id.startsWith(`${parent.id}.`))\n);\nconst isGroupToColumn = curry(({groupId}, group) => groupId === group.id);\nconst isHideableColumn = propOr(true, 'hideable');\n\nconst getColumnRoot = (columns, column) => columns.find(either(isGroupToColumn(column), isParentToColumn(column)));\n\nconst addColumn = (columns, column) => {\n const root = getColumnRoot(columns, column);\n if (root) {\n root.children = addColumn(root.children || [], column);\n return columns;\n } else {\n return columns.concat(column);\n }\n};\n\nconst filterColumnsByLabel = curry(\n (filterText, column) =>\n utils.strings.search(column.label, filterText) || (column.children || []).some(filterColumnsByLabel(filterText))\n);\n\nconst buildColumnsTrees = reduce(\n (acc, columnData) =>\n addColumn(acc, {\n id: columnData.id,\n groupId: columnData.groupId,\n label: columnData.label,\n attrType: columnData.dataTypeDefinition\n }),\n []\n);\n\nconst buildFilteredColumnItems = curry((filterText, columns, level = 0) =>\n pipe(\n filter(filterColumnsByLabel(filterText)),\n chain((column) => {\n const item = {\n item: {...column, filterText},\n level\n };\n const childrenItems = column.children\n ? buildFilteredColumnItems(filterText, column.children, level + 1)\n : [];\n return [item, ...childrenItems];\n })\n )(columns)\n);\n\nconst isGroupedColumnsData = has('columns');\nconst flattenGroupedColumnsData = ({id, label, columns}) => [\n {id, groupId: id, label},\n ...columns.map(assoc('groupId', id))\n];\n\nconst buildColumnItems = (columnsData, filterText) => {\n return pipe(\n chain(when(isGroupedColumnsData, flattenGroupedColumnsData)),\n filter(either(isGroupColumn, isHideableColumn)),\n buildColumnsTrees,\n buildFilteredColumnItems(filterText)\n )(columnsData);\n};\n\nconst getChildColumns = (column) => (column.children ? chain(getChildColumns, column.children) : [column]);\n\nconst isColumnSelected = (selectedColumns, column) => {\n const childColumns = getChildColumns(column);\n const isColumnSelected = (column) => selectedColumns.includes(column.id);\n return isGroupColumn(column) ? childColumns.every(isColumnSelected) : childColumns.some(isColumnSelected);\n};\n\nexport {buildColumnItems, getChildColumns, isGroupColumn, isColumnSelected};\n","import {makeStyles, Theme} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme & {inactiveBackground: string}) => ({\n profileBandWrapper: {\n // especially for IE (overflow fix)\n flexShrink: 0\n },\n profileBand: {\n display: 'flex',\n padding: '16px 12px 16px 16px',\n alignItems: 'flex-start',\n backgroundColor: '#fff',\n boxShadow: 'inset 0 -1px 0 0 rgba(0,114,206,0.06), inset 0 1px 0 0 rgba(0,114,206,0.06);',\n\n '&:after': {\n // IE workaround for minHeight and centering items\n content: '\"\"',\n minHeight: 'inherit',\n fontSize: 0\n }\n },\n inactive: {\n background: theme.inactiveBackground\n },\n profileIcon: {\n marginRight: '12px'\n },\n imageProfileIcon: {\n width: '48px',\n height: '48px'\n },\n profileInfo: {\n display: 'flex',\n flexDirection: 'column',\n flex: '1 1 50%'\n },\n badge: {},\n label: {\n lineHeight: '1.2',\n letterSpacing: '0.25px',\n color: theme.palette.text.primary,\n wordBreak: 'break-word',\n\n '&+ $specialInfo': {\n marginTop: '4px'\n }\n },\n secondaryLabel: {\n display: 'inline-flex',\n color: theme.palette.text.primary,\n marginTop: '2px',\n lineHeight: '16px',\n fontSize: '14px',\n fontWeight: 400,\n\n '&+ $businessCard': {\n marginLeft: '12px'\n }\n },\n businessCard: {\n color: theme.palette.text.secondary,\n display: 'inline-flex',\n fontSize: '14px',\n marginTop: '4px',\n lineHeight: '1.2'\n },\n specialInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n marginTop: '8px'\n },\n entityType: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n entityId: {\n fontSize: '13px',\n color: theme.palette.text.secondary,\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n}));\n\nexport default useStyles;\n","import React, {ReactNode, useCallback} from 'react';\nimport classnames from 'classnames';\nimport {useSelector} from 'react-redux';\nimport {isNil} from 'ramda';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nimport {getLabel, isActiveObject, getBusinessCardAttributesText, getEntityId, isTempUri, Entity} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\n\nimport EntityAvatar from '../EntityAvatar/EntityAvatar';\nimport EntityTypeBadge from '../EntityTypeBadge/EntityTypeBadge';\n\nimport useStyles from './styles';\n\ntype Props = {\n className?: string;\n entity?: Entity;\n children?: ReactNode;\n classes?: Partial<ReturnType<typeof useStyles>>;\n};\n\nconst ProfileBand = ({className, entity, children, classes}: Props) => {\n const styles = useStyles({classes});\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const showEntityId = useSelector(mdmModule.selectors.getShowEntityId);\n const handleCopyEntityIdToClipboard = useCallback(() => {\n navigator.clipboard.writeText(getEntityId(entity));\n }, [entity]);\n\n if (isNil(entity)) {\n return null;\n }\n\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 entityId = getEntityId(entity);\n return (\n <div className={classnames(styles.profileBandWrapper, className)}>\n <div\n className={classnames(styles.profileBand, {\n [styles.inactive]: !isActive\n })}\n data-entity-uri={entityUri}\n >\n <EntityAvatar\n key={entity.uri}\n entity={entity}\n avatarClassName={styles.profileIcon}\n imageClassName={styles.imageProfileIcon}\n />\n <div className={styles.profileInfo}>\n <div>\n <Typography variant=\"h6\" className={styles.label}>\n {label}\n </Typography>\n {secondaryLabel && (\n <Typography variant=\"subtitle2\" className={styles.secondaryLabel}>\n {secondaryLabel}\n </Typography>\n )}\n {businessCardText && (\n <Typography variant=\"subtitle1\" className={styles.businessCard}>\n {businessCardText}\n </Typography>\n )}\n </div>\n <div className={styles.specialInfo}>\n <div className={styles.entityType}>\n <EntityTypeBadge entity={entity} size=\"medium\" className={styles.badge} />\n {!isTempUri(entityUri) && showEntityId && (\n <Tooltip title={i18n.text('Copy to clipboard')}>\n <Typography\n display=\"inline\"\n variant=\"body2\"\n className={styles.entityId}\n onClick={handleCopyEntityIdToClipboard}\n >\n {i18n.text('Entity ID')}: {entityId}\n </Typography>\n </Tooltip>\n )}\n </div>\n </div>\n </div>\n {children && <div>{children}</div>}\n </div>\n </div>\n );\n};\n\nexport default ProfileBand;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n container: {\n display: 'flex',\n alignItems: 'center'\n },\n link: {\n whiteSpace: 'nowrap',\n marginRight: '9px'\n }\n});\n","import React from 'react';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport {Link as Link} from '@material-ui/core';\nimport {withTooltip} from '../../HOCs';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\nimport {formatNumberAsMetric} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst LinkWithTooltip = withTooltip<typeof Link, {component: string}>(Link);\n\ntype Props = {\n className?: string;\n total?: number;\n onPrev?: () => void;\n onNext?: () => void;\n onSearchResultsClick?: () => void;\n isPrevDisabled?: boolean;\n isNextDisabled?: boolean;\n};\n\nconst ProfileBandNavigationWidget = ({\n className,\n total = 0,\n onPrev,\n onNext,\n onSearchResultsClick,\n isPrevDisabled,\n isNextDisabled\n}: Props) => {\n const styles = useStyles();\n return (\n <div className={classnames(styles.container, className)}>\n <LinkWithTooltip\n className={styles.link}\n component=\"button\"\n variant=\"caption\"\n onClick={onSearchResultsClick}\n underline=\"none\"\n tooltipTitle={i18n.text('Go to search results')}\n >\n {formatNumberAsMetric(total, 1000000)}{' '}\n {total === 1 ? i18n.text('Search result') : i18n.text('Search results')}\n </LinkWithTooltip>\n <SmallIconButtonWithTooltip\n size=\"L\"\n icon={KeyboardArrowLeft}\n tooltipTitle={i18n.text('Go to previous profile')}\n onClick={onPrev}\n disabled={isPrevDisabled}\n showForDisabled\n />\n <SmallIconButtonWithTooltip\n size=\"L\"\n icon={KeyboardArrowRight}\n tooltipTitle={i18n.text('Go to next profile')}\n onClick={onNext}\n disabled={isNextDisabled}\n showForDisabled\n />\n </div>\n );\n};\n\nexport {ProfileBandNavigationWidget, LinkWithTooltip};\n","import {\n Entity,\n getFilteredEntities,\n getFilteredEntitiesFromDataTenant,\n getTotals,\n getTotalFromDataTenant,\n TotalResponse\n} from '@reltio/mdm-sdk';\n\nimport {SearchProvider} from './SearchProvider';\n\nexport class MainSearchProvider implements SearchProvider {\n private readonly query;\n private readonly sortField;\n private readonly sortOrder;\n private readonly tenant;\n private readonly searchTenant;\n private readonly apiPath;\n private readonly dtssPath;\n private readonly globalSearchRequestOptions;\n\n constructor({\n data: {query, sortField, sortOrder},\n tenant,\n searchTenant,\n apiPath,\n dtssPath,\n globalSearchRequestOptions\n }) {\n this.query = query;\n this.sortField = sortField;\n this.sortOrder = sortOrder;\n this.tenant = tenant;\n this.searchTenant = searchTenant;\n this.apiPath = apiPath;\n this.dtssPath = dtssPath;\n this.globalSearchRequestOptions = globalSearchRequestOptions;\n }\n\n private isDT = () => this.tenant !== this.searchTenant;\n\n private getQueryFilter = () => ({rawFilter: this.query});\n\n private getEntities = (filters = [], options = {}): Promise<Entity[]> => {\n const requestFilters = [this.getQueryFilter(), ...filters];\n const requestOptions = {\n ...this.globalSearchRequestOptions,\n sort: this.sortField,\n order: this.sortOrder,\n select: 'uri,label,type',\n scoreEnabled: false,\n ...options\n };\n return this.isDT()\n ? getFilteredEntitiesFromDataTenant({\n filters: requestFilters,\n options: requestOptions,\n customerTenant: this.tenant,\n dataTenant: this.searchTenant,\n dtssPath: this.dtssPath\n })\n : getFilteredEntities(requestFilters, requestOptions);\n };\n\n checkEntity = (uri): Promise<boolean> => {\n return this.getEntities(\n [\n {\n filter: 'equals',\n fieldName: 'uri',\n values: [uri]\n }\n ],\n {offset: 0, max: 1}\n ).then((entities) => {\n return entities && entities.length > 0 && entities[0].uri === uri;\n });\n };\n\n requestEntities = (max, offset): Promise<Entity[]> => {\n return this.getEntities([], {offset, max});\n };\n\n requestTotal = (): Promise<number> => {\n const filters = [this.getQueryFilter()];\n const options = this.globalSearchRequestOptions;\n return (this.isDT()\n ? getTotalFromDataTenant({\n filters,\n options,\n customerTenant: this.tenant,\n dataTenant: this.searchTenant,\n dtssPath: this.dtssPath\n })\n : getTotals(filters, options)\n ).then((json) => (json as TotalResponse).total);\n };\n}\n","import {\n Entity,\n getGraphSearchCount,\n getGraphSearchEntities,\n getEntityId,\n buildFilterQueryString\n} from '@reltio/mdm-sdk';\n\nimport {SearchProvider} from './SearchProvider';\n\nexport class GraphSearchProvider implements SearchProvider {\n private readonly searchBody;\n private readonly tenant;\n private readonly apiPath;\n\n constructor({data, tenant, apiPath}) {\n this.searchBody = data;\n this.tenant = tenant;\n this.apiPath = apiPath;\n }\n\n private getEntities = (filters = [], options = {}): Promise<Entity[]> => {\n const allFilters = [\n {\n rawFilter: this.searchBody.filter\n },\n ...filters\n ];\n return getGraphSearchEntities({\n apiPath: this.apiPath,\n tenant: this.tenant,\n searchBody: {\n ...this.searchBody,\n filter: filters.length ? buildFilterQueryString()(allFilters) : this.searchBody.filter\n },\n options\n });\n };\n\n checkEntity = (uri): Promise<boolean> => {\n return this.getEntities(\n [\n {\n filter: 'equals',\n fieldName: 'id',\n values: [getEntityId({uri})]\n }\n ],\n {from: 0, max: 1}\n ).then((entities) => {\n return entities && entities.length > 0 && entities[0].uri === uri;\n });\n };\n\n requestEntities = (max, from): Promise<Entity[]> => {\n return this.getEntities([], {from, max});\n };\n\n requestTotal = (): Promise<number> => {\n return getGraphSearchCount({\n apiPath: this.apiPath,\n tenant: this.tenant,\n searchBody: this.searchBody\n }).then((json) => json.count);\n };\n}\n","import {MainSearchProvider} from './MainSearchProvider';\nimport {GraphSearchProvider} from './GraphSearchProvider';\n\nexport const getSearchProvider = (type: string, options) => {\n switch (type) {\n case 'search':\n return new MainSearchProvider(options);\n case 'graphsearch':\n return new GraphSearchProvider(options);\n }\n};\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {search as mdmModuleSearch, ui as mdmModuleUi} from '@reltio/mdm-module';\nimport {getEntityUriForLink} from '@reltio/mdm-sdk';\nimport {map, pipe, prop, reject} from 'ramda';\nimport {ViewIdContext} from '../../../contexts';\nimport {useSafePromise} from '../../../hooks';\nimport {getSearchProvider} from '../searchProviders/SearchProviderFactory';\nimport {SearchNavigationData, SearchProviderData} from '../types';\n\nexport const REQUEST_PAGE_SIZE = 15;\n\nconst getNewUris = (entities, cache) =>\n pipe(\n map(prop('uri')),\n reject((uri) => cache.includes(uri))\n )(entities);\n\nconst useSearchNavigation = () => {\n const safeCheckEntityPromise = useSafePromise();\n const safeRequestTotalPromise = useSafePromise();\n const safeRequestEntitiesPromise = useSafePromise();\n const {uri, index, total, tenant: searchTenant, cache} =\n useSelector<unknown, SearchNavigationData>(mdmModule.selectors.getSearchNavigationData) || {};\n const {type, data} = useSelector<unknown, SearchProviderData>(mdmModule.selectors.getSearchProviderData) || {};\n const tenant = useSelector<unknown, string>(mdmModule.selectors.getTenant);\n const apiPath = useSelector<unknown, string>(mdmModule.selectors.getApiPath);\n const dtssPath = useSelector<unknown, string>(mdmModule.selectors.getDtssPath);\n const globalSearchRequestOptions = useSelector((state) =>\n mdmModule.selectors.getGlobalSearchRequestOptions(state, ['ovOnly'])\n );\n const viewId = useContext(ViewIdContext);\n const dispatch = useDispatch();\n const [loading, setLoading] = useState<boolean>(false);\n\n const searchProvider = useMemo(\n () => getSearchProvider(type, {data, tenant, searchTenant, apiPath, dtssPath, globalSearchRequestOptions}),\n [type, data, tenant, searchTenant, apiPath, dtssPath, globalSearchRequestOptions]\n );\n\n const updateNavigationData = useCallback(\n (data: Partial<SearchNavigationData>) => {\n dispatch(mdmModuleSearch.actions.updateSearchNavigationDataFields(data));\n },\n [dispatch]\n );\n\n const openEntity = useCallback(\n (uri: string) => {\n const preparedUri = tenant !== searchTenant ? getEntityUriForLink({uri, dataTenant: searchTenant}) : uri;\n dispatch(mdmModuleUi.actions.openEntity({uri: preparedUri, viewId, source: 'navigation'}));\n },\n [dispatch, viewId, tenant, searchTenant]\n );\n\n const onSearchResultsClick = useCallback(() => {\n dispatch(mdmModuleUi.actions.openPerspective({perspectiveId: type, viewId}));\n }, [dispatch, type, viewId]);\n\n useEffect(() => {\n if (index >= total) {\n updateNavigationData({\n index: total - 1\n });\n } else if (index < 0) {\n updateNavigationData({\n index: 0\n });\n }\n }, [total, index, updateNavigationData]);\n\n const requestNextPage = useCallback(\n (cache: string[], total: number, index: number): Promise<void> => {\n setLoading(true);\n safeRequestTotalPromise(searchProvider.requestTotal()).then((total) => updateNavigationData({total}));\n\n const newIndex = index + 1;\n return safeRequestEntitiesPromise(searchProvider.requestEntities(REQUEST_PAGE_SIZE, newIndex))\n .then((entities) => {\n if (!entities) {\n return;\n }\n if (entities.length) {\n const newUris = getNewUris(entities, cache);\n if (newUris.length > 0) {\n updateNavigationData({\n cache: cache.concat(newUris),\n uri: newUris[0],\n index: newIndex + entities.length - newUris.length\n });\n openEntity(newUris[0]);\n return;\n } else if (index + entities.length < total - 1) {\n return requestNextPage(cache, total - entities.length, index + entities.length);\n }\n }\n updateNavigationData({\n index: newIndex\n });\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [searchProvider, updateNavigationData, openEntity]\n );\n\n const requestPrevPage = useCallback(\n (cache: string[], index: number): Promise<void> => {\n setLoading(true);\n safeRequestTotalPromise(searchProvider.requestTotal()).then((total) => updateNavigationData({total}));\n\n const newIndex = index - 1;\n const offset = Math.max(0, index - REQUEST_PAGE_SIZE);\n const max = REQUEST_PAGE_SIZE + Math.min(0, index - REQUEST_PAGE_SIZE);\n return safeRequestEntitiesPromise(searchProvider.requestEntities(max, offset))\n .then((entities) => {\n if (!entities) {\n return;\n }\n if (entities.length) {\n const newUris = getNewUris(entities, cache);\n if (newUris.length > 0) {\n updateNavigationData({\n cache: newUris.concat(cache),\n uri: newUris[newUris.length - 1],\n index: newIndex - (entities.length - newUris.length)\n });\n openEntity(newUris[newUris.length - 1]);\n return;\n } else if (index - entities.length > 0) {\n return requestPrevPage(cache, index - entities.length);\n }\n }\n updateNavigationData({\n index: 0\n });\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [searchProvider, updateNavigationData, openEntity]\n );\n\n const stepForwardWithCheck = useCallback(\n (cache: string[], cacheIndex: number, total: number, index: number): Promise<void> | void => {\n if (cacheIndex < cache.length) {\n const uri = cache[cacheIndex];\n setLoading(true);\n return safeCheckEntityPromise(searchProvider.checkEntity(uri))\n .then((isExists) => {\n if (isExists) {\n updateNavigationData({\n index: index + 1,\n uri,\n cache,\n total\n });\n openEntity(uri);\n } else {\n const clearedCache = [...cache];\n clearedCache.splice(cacheIndex, 1);\n return stepForwardWithCheck(clearedCache, cacheIndex, total - 1, index);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n } else if (index >= total - 1) {\n updateNavigationData({\n cache,\n total,\n index: total - 1\n });\n } else {\n return requestNextPage(cache, total, index);\n }\n },\n [searchProvider, updateNavigationData, openEntity, requestNextPage]\n );\n\n const stepBackWithCheck = useCallback(\n (cache: string[], cacheIndex: number, total: number, index: number): Promise<void> | void => {\n if (cacheIndex > -1) {\n const uri = cache[cacheIndex];\n setLoading(true);\n return safeCheckEntityPromise(searchProvider.checkEntity(uri))\n .then((isExists) => {\n if (isExists) {\n updateNavigationData({\n index: index - 1,\n uri,\n cache,\n total\n });\n openEntity(uri);\n } else {\n const clearedCache = [...cache];\n clearedCache.splice(cacheIndex, 1);\n return stepBackWithCheck(clearedCache, cacheIndex - 1, total - 1, index - 1);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n } else if (index <= 0) {\n updateNavigationData({\n index: 0,\n cache,\n total\n });\n } else {\n return requestPrevPage(cache, index);\n }\n },\n [searchProvider, updateNavigationData, openEntity, requestPrevPage]\n );\n\n const onPrev = useCallback(() => {\n if (cache && uri) {\n const cacheIndex = cache.indexOf(uri) - 1;\n stepBackWithCheck(cache, cacheIndex, total, index);\n }\n }, [stepBackWithCheck, cache, uri, total, index]);\n\n const onNext = useCallback(() => {\n if (cache && uri) {\n const cacheIndex = cache.indexOf(uri) + 1;\n stepForwardWithCheck(cache, cacheIndex, total, index);\n }\n }, [stepForwardWithCheck, cache, uri, total, index]);\n\n const isPrevDisabled = loading || index <= 0;\n const isNextDisabled = loading || index >= total - 1;\n return {total, onPrev, onNext, onSearchResultsClick, isPrevDisabled, isNextDisabled};\n};\n\nexport {useSearchNavigation};\n","import React from 'react';\n\nimport {ProfileBandNavigationWidget} from './ProfileBandNavigationWidget';\nimport {useSearchNavigation} from './hooks/useSearchNavigation';\nimport {useSearchNavigationVisibility} from './hooks/useSearchNavigationVisibility';\n\ntype Props = {\n className?: string;\n};\n\nconst ProfileBandNavigation = ({className}: Props) => {\n const {total, onPrev, onNext, onSearchResultsClick, isPrevDisabled, isNextDisabled} = useSearchNavigation();\n const isVisible = useSearchNavigationVisibility();\n return isVisible ? (\n <ProfileBandNavigationWidget\n className={className}\n total={total}\n onPrev={onPrev}\n onNext={onNext}\n onSearchResultsClick={onSearchResultsClick}\n isPrevDisabled={isPrevDisabled}\n isNextDisabled={isNextDisabled}\n />\n ) : null;\n};\n\nexport {ProfileBandNavigation};\n","import {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {Entity, isViewMode} from '@reltio/mdm-sdk';\nimport {SearchNavigationData} from '../types';\n\nconst useSearchNavigationVisibility = () => {\n const {cache} = useSelector<unknown, SearchNavigationData>(mdmModule.selectors.getSearchNavigationData) || {};\n const mode = useSelector<unknown, string>(mdmModule.selectors.getMode);\n const entity = useSelector<unknown, Entity>(mdmModule.selectors.getEntity);\n\n return isViewMode(mode) && cache?.includes(entity?.uri);\n};\n\nexport {useSearchNavigationVisibility};\n","import CreatableSelect from 'react-select/creatable';\nimport withMuiSkin from './withMuiSkin';\n\nexport default withMuiSkin(CreatableSelect);\n","import {MenuItem as MenuItem} from '@material-ui/core';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport ExpandedValueTooltip from '../../../ExpandedValueTooltip/ExpandedValueTooltip';\n\nexport default function Option(props) {\n const {\n innerProps,\n innerRef,\n children,\n isFocused,\n isSelected,\n selectProps: {classes},\n label\n } = props;\n\n return (\n <MenuItem\n className={classNames(classes.option, {[classes['option--selected']]: isSelected})}\n ref={innerRef}\n selected={isFocused}\n component=\"div\"\n {...innerProps}\n >\n <Checkbox color=\"primary\" checked={isSelected} />\n <ExpandedValueTooltip value={label}>\n <div className={classes['option--item']}>{children}</div>\n </ExpandedValueTooltip>\n </MenuItem>\n );\n}\n\nOption.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.shape({\n id: PropTypes.string.isRequired,\n key: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n onMouseMove: PropTypes.func.isRequired,\n onMouseOver: PropTypes.func.isRequired,\n tabIndex: PropTypes.number.isRequired\n }).isRequired,\n innerRef: PropTypes.oneOfType([\n PropTypes.oneOf([null]),\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any.isRequired\n })\n ]),\n isFocused: PropTypes.bool.isRequired,\n isSelected: PropTypes.bool.isRequired,\n label: PropTypes.string,\n selectProps: PropTypes.shape({\n classes: PropTypes.shape({\n option: PropTypes.string\n })\n })\n};\n","import Option from './Option';\n\nconst components = {\n Option\n};\n\nexport default components;\n","import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {omit} from 'ramda';\nimport CreatableSelect from '../CreatableSelect';\nimport Select from '../Select';\nimport AsyncSelect from '../AsyncSelect';\nimport multiSelectComponents from './components';\nimport {makeStyles} from '@material-ui/core/styles';\nimport {mergeClasses} from '../../../core/utils';\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n top: 6,\n left: 16\n },\n placeholder: (props) => ({\n display: !props.placeholder || props.label ? 'none' : undefined\n }),\n 'option--selected': {\n fontWeight: 400\n },\n clearIndicator: {\n padding: theme.spacing(1),\n margin: theme.spacing(0.25, 0.5)\n },\n dropdownIndicator: {\n padding: theme.spacing(1),\n margin: theme.spacing(0.25, 0.5)\n }\n}));\n\nlet id = 0;\nconst getInputId = () => `custom-select-${id++}`;\n\nfunction MultiSelect(props) {\n const {\n label,\n creatable,\n getOptions,\n loadingIndicator,\n components: componentsProp,\n classes: classesProp,\n styles: stylesProp,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n menuPlacement = 'auto',\n ...reactSelectProps\n } = props;\n\n const SelectComponent = creatable ? CreatableSelect : getOptions ? AsyncSelect : Select;\n\n const [inputValue, setInputValue] = useState('');\n const multiSelectClasses = useStyles(omit(['classes'], props));\n const inputId = getInputId();\n\n const components = {\n ...multiSelectComponents,\n ...componentsProp\n };\n\n const classes = mergeClasses(multiSelectClasses, classesProp);\n\n function handleInputChange(value, {action}) {\n onInputChangeProp(value, {action});\n if (action !== 'set-value') {\n setInputValue(value);\n }\n }\n\n function handleChange(value, actionMeta) {\n onChangeProp(value, actionMeta);\n if (actionMeta.action === 'create-option') {\n setInputValue('');\n onInputChangeProp('', {action: 'input-change'});\n }\n }\n\n const styles = {\n indicatorSeparator: (base) => ({\n ...base,\n margin: '10px 0'\n }),\n loadingIndicator: (base) => ({\n ...base,\n display: loadingIndicator ? base.display : 'none'\n }),\n loadingMessage: (base) => ({\n ...base,\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif'\n }),\n ...stylesProp\n };\n\n const labelProps = label\n ? {\n inputId,\n TextFieldProps: {\n label,\n InputLabelProps: {\n htmlFor: inputId,\n shrink: props.value && props.value.length ? true : undefined,\n className: classes.label\n },\n ...props.TextFieldProps\n }\n }\n : {};\n\n return (\n <SelectComponent\n isMulti\n inputId={inputId}\n inputValue={inputValue}\n onChange={handleChange}\n onInputChange={handleInputChange}\n closeMenuOnSelect={false}\n hideSelectedOptions={false}\n classes={classes}\n components={components}\n styles={styles}\n menuPlacement={menuPlacement}\n loadOptions={getOptions}\n {...labelProps}\n {...reactSelectProps}\n />\n );\n}\n\nMultiSelect.defaultProps = {\n creatable: false,\n cacheOptions: true,\n components: {},\n classes: {},\n placeholder: '',\n loadingIndicator: false,\n onInputChange: () => {},\n onChange: () => {}\n};\n\nMultiSelect.propTypes = {\n /**\n * Async creatable multi select with optional placeholder, shrink-label, non-closing menu and options with checkboxes.\n * Based on react-select/creatable and react-select/async.\n * See react-select docs: https://react-select.com\n *\n * Below are listed only props used in the MultiSelect component. Check https://react-select.com/props first.\n * */\n\n /** Ability to create values. React-select/async-creatable is used internally */\n creatable: PropTypes.bool,\n /** True for enabling cache. Recommended. */\n cacheOptions: PropTypes.bool,\n defaultOptions: PropTypes.bool,\n /** Array of selected options. */\n value: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any\n })\n ),\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any\n })\n ),\n /** Way to receive updated values */\n onChange: PropTypes.func,\n /** Way to receive updated inputValue */\n onInputChange: PropTypes.func,\n /** Input placeholder. Will not be shown if the label prop is specified */\n placeholder: PropTypes.string,\n /** Floating label from @material-ui/core/TextField component */\n label: PropTypes.string,\n /** Enable to show default react-select's indicator */\n loadingIndicator: PropTypes.bool,\n /** You could redefine any of these components */\n components: PropTypes.shape({\n ClearIndicator: PropTypes.func,\n Control: PropTypes.func,\n DropdownIndicator: PropTypes.func,\n DownChevron: PropTypes.func,\n CrossIcon: PropTypes.func,\n Group: PropTypes.func,\n GroupHeading: PropTypes.func,\n IndicatorsContainer: PropTypes.func,\n IndicatorSeparator: PropTypes.func,\n Input: PropTypes.func,\n LoadingIndicator: PropTypes.func,\n Menu: PropTypes.func,\n MenuList: PropTypes.func,\n MenuPortal: PropTypes.func,\n LoadingMessage: PropTypes.func,\n NoOptionsMessage: PropTypes.func,\n MultiValue: PropTypes.func,\n MultiValueContainer: PropTypes.func,\n MultiValueLabel: PropTypes.func,\n MultiValueRemove: PropTypes.func,\n Option: PropTypes.func,\n Placeholder: PropTypes.func,\n SelectContainer: PropTypes.func,\n SingleValue: PropTypes.func,\n ValueContainer: PropTypes.func\n }),\n /** Classes are passed to mui skin components. Provided classes will be merged with existing ones. */\n classes: PropTypes.shape({\n control: PropTypes.string,\n valueContainer: PropTypes.string,\n multiValue: PropTypes.string,\n noOptionsMessage: PropTypes.string,\n singleValue: PropTypes.string,\n placeholder: PropTypes.string,\n menu: PropTypes.string,\n clearIndicator: PropTypes.string,\n dropdownIndicator: PropTypes.string,\n option: PropTypes.string,\n 'option--selected': PropTypes.string,\n label: PropTypes.string\n }),\n /**\n * React-select's way to customise style. Could be used to style default react-select components.\n * In other cases better to use classes and components props\n * */\n styles: PropTypes.shape({\n clearIndicator: PropTypes.func,\n container: PropTypes.func,\n control: PropTypes.func,\n dropdownIndicator: PropTypes.func,\n group: PropTypes.func,\n groupHeading: PropTypes.func,\n indicatorsContainer: PropTypes.func,\n indicatorSeparator: PropTypes.func,\n input: PropTypes.func,\n loadingIndicator: PropTypes.func,\n loadingMessage: PropTypes.func,\n menu: PropTypes.func,\n menuList: PropTypes.func,\n menuPortal: PropTypes.func,\n multiValue: PropTypes.func,\n multiValueLabel: PropTypes.func,\n multiValueRemove: PropTypes.func,\n noOptionsMessage: PropTypes.func,\n option: PropTypes.func,\n placeholder: PropTypes.func,\n singleValue: PropTypes.func,\n valueContainer: PropTypes.func\n }),\n /** Props from https://material-ui.com/api/text-field/ */\n TextFieldProps: PropTypes.object /* eslint-disable-line react/forbid-prop-types */,\n getOptions: PropTypes.func,\n menuPlacement: PropTypes.string,\n menuPortalTarget: PropTypes.object,\n getOptionValue: PropTypes.func,\n isSearchable: PropTypes.bool,\n inputRef: PropTypes.shape({current: PropTypes.object})\n};\n\nexport default MultiSelect;\n","import MultiSelect from './MultiSelect';\n\nexport default MultiSelect;\n","import {fade, makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n flexShrink: 0,\n width: '64px',\n paddingTop: '8px',\n backgroundColor: theme.palette.background.paper,\n boxShadow: '0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 3px 0 rgba(0,0,0,0.2)'\n },\n active: {\n backgroundColor: fade(theme.palette.primary.main, 0.12),\n color: theme.palette.primary.main,\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n height: '42px',\n width: '3px',\n backgroundColor: theme.palette.primary.main,\n left: '-8px',\n borderRadius: '0 6px 6px 0'\n }\n },\n buttonWrapper: {\n position: 'relative',\n width: '48px',\n height: '44px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '6px',\n margin: '2px 8px',\n color: theme.palette.text.secondary\n }\n}));\n","import React, {VFC, ElementType} from 'react';\nimport classnames from 'classnames';\nimport {IconButtonProps} from '@material-ui/core/IconButton';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport {useStyles} from './styles';\n\ntype Props = {\n buttonsProps: {\n icon: ElementType;\n tooltipTitle: string;\n id: number;\n }[];\n classes?: {active?: string; buttonWrapper?: string} & IconButtonProps['classes'];\n activeIndexId: number;\n className?: string;\n onButtonClick: (id: number) => void;\n};\n\nexport const SideButtonsPanel: VFC<Props> = ({buttonsProps, activeIndexId, className, onButtonClick, classes = {}}) => {\n const styles = useStyles();\n const {active, buttonWrapper, ...iconButtonClasses} = classes;\n\n return (\n <div className={classnames(styles.container, className)}>\n {buttonsProps.map(({id, ...buttonProps}) => {\n return (\n <SmallIconButtonWithTooltip\n {...buttonProps}\n classes={iconButtonClasses}\n size=\"S\"\n key={id}\n className={classnames(\n {[classnames(styles.active, active)]: activeIndexId === id},\n styles.buttonWrapper,\n buttonWrapper\n )}\n onClick={() => onButtonClick(id)}\n data-reltio-id={`reltio-profile-right-side-button-${id}`}\n />\n );\n })}\n </div>\n );\n};\n","import React from 'react';\n\nconst Spacer = () => <div style={{flex: 1}} />;\n\nexport default Spacer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'flex-start'\n },\n slice: {\n fontWeight: 500\n },\n cancelButton: {\n width: '88px',\n flexShrink: 0,\n marginLeft: '15px'\n }\n});\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {profile} from '@reltio/mdm-module';\nimport {Button as Button} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {pipe} from 'ramda';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\nconst ProfileBandHistory = () => {\n const styles = useStyles();\n\n const historyEvent = useSelector(mdmModule.selectors.getHistoryEvent);\n const dispatch = useDispatch();\n const onCancel = pipe(profile.history.actions.clearHistoryEvent, dispatch);\n\n return historyEvent ? (\n <div className={styles.root}>\n <Typography component={'div'}>\n {i18n.text('You are viewing a historic slice:')}{' '}\n <span className={styles.slice}>{i18n.date(historyEvent.aStamp, 'llll')}</span>\n </Typography>\n <Button className={styles.cancelButton} variant=\"contained\" color=\"primary\" onClick={onCancel}>\n {i18n.text('Cancel')}\n </Button>\n </div>\n ) : null;\n};\n\nexport default ProfileBandHistory;\n","import {useCallback, useEffect, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {\n andThen,\n fromPairs,\n map,\n otherwise,\n pipe,\n props,\n uniqBy,\n prop,\n propEq,\n when,\n always,\n assocPath,\n dissocPath,\n path,\n pathOr,\n mergeRight\n} from 'ramda';\nimport {\n CollaborationObjectTypes,\n Comment,\n CommentsMap,\n createComment as createCommentRequest,\n createReply as createReplyRequest,\n getComment as getCommentRequest,\n getCommentsCount as getCommentsCountRequest,\n Reply,\n updateComment as updateCommentRequest,\n updateReply as updateReplyRequest,\n deleteComment as deleteCommentRequest,\n deleteReply as deleteReplyRequest,\n getComments as getCommentsRequest,\n isTempUri,\n CollaborationStateMap,\n CommentState\n} from '@reltio/mdm-sdk';\nimport mdm from '@reltio/mdm-module';\n\ntype Props = {\n objectIds?: string[];\n objectTypes?: CollaborationObjectTypes[];\n enabled?: boolean;\n};\n\nconst filterReplies = (replyId: string, replies: Reply[]) => replies.filter((reply) => reply.replyId !== replyId);\n\nconst getUpdatedReplies = (comment: Comment, reply: Reply) => {\n const changedReplyIndex = comment.replies.findIndex(({replyId}) => replyId === reply.replyId);\n const newReplies = [...comment.replies];\n newReplies[changedReplyIndex] = reply;\n return newReplies;\n};\n\nconst defaultObjectIds = [];\nconst catchErrorInRequest = (e) => console.error('Collaboration error', e);\nexport const useCollaboration = ({objectIds = defaultObjectIds, objectTypes, enabled = true}: Props) => {\n const entity = useSelector(mdm.selectors.getEntity);\n const tenant: string = useSelector(mdm.selectors.getTenant);\n const collaborationPath: string = useSelector(mdm.selectors.getCollaborationPath);\n const isCollaborationEnabled = useSelector(mdm.selectors.isCollaborationEnabled) && enabled;\n\n const [pageToken, setPageToken] = useState<string | null>(null);\n const [comments, setComments] = useState<Comment[]>([]);\n const [commentsMap, setCommentsMap] = useState<CommentsMap>(null);\n const [currentComment, setCurrentComment] = useState<Comment | null>(null);\n const [sending, setSending] = useState(false);\n const [loading, setLoading] = useState(false);\n const [collaborationStateMap, setCollaborationStateMap] = useState<CollaborationStateMap>({});\n\n const addCommentsToCommentsMap = useCallback((commentsMap: CommentsMap) => {\n setCommentsMap((currentCommentsMap) => ({\n ...currentCommentsMap,\n ...commentsMap\n }));\n }, []);\n const entityUri = entity?.uri;\n const getCommentsCount = useCallback(\n (objectIds: string[], shouldResetCommentsMap = false) => {\n if (isCollaborationEnabled && entityUri && !isTempUri(entityUri)) {\n const onError = (e) => {\n console.warn('Collaboration error', e);\n setCommentsMap(null);\n };\n pipe(\n getCommentsCountRequest,\n andThen(map(props(['objectId', 'comments']))),\n andThen(fromPairs),\n andThen(shouldResetCommentsMap ? setCommentsMap : addCommentsToCommentsMap),\n otherwise(onError)\n )({uris: objectIds, tenant, collaborationPath});\n } else {\n setCommentsMap(null);\n }\n },\n [addCommentsToCommentsMap, collaborationPath, entityUri, isCollaborationEnabled, tenant]\n );\n\n useEffect(() => {\n getCommentsCount(objectIds, true);\n }, [objectIds, getCommentsCount]);\n\n const getComments = useCallback(\n (relatedObjectUri: string, pageToken?: string) => {\n getCommentsRequest({collaborationPath, tenant, relatedObjectUri, pageToken})\n .then(({items, nextPageToken}) => {\n setComments((prevComments) => {\n if (!pageToken) {\n return items;\n }\n return uniqBy(prop('commentId'), [...prevComments, ...items]);\n });\n setPageToken(nextPageToken);\n })\n .catch(catchErrorInRequest);\n },\n [collaborationPath, tenant]\n );\n\n const getComment = useCallback(\n (commentId: string) => {\n setLoading(true);\n\n getCommentRequest({collaborationPath, tenant, commentId})\n .then(setCurrentComment)\n .catch(catchErrorInRequest)\n .finally(() => setLoading(false));\n },\n [collaborationPath, tenant]\n );\n\n const addCommentToState = (comment: Comment, uri: string) => {\n setCurrentComment(comment);\n setCommentsMap((prevCommentsMap) => {\n return {\n ...prevCommentsMap,\n [uri]: [...(prevCommentsMap[uri] || []), {commentId: comment.commentId, replies: 0, status: 'open'}]\n };\n });\n setComments((prevComments) => [comment, ...prevComments]);\n };\n const updateCommentInState = (comment: Comment) => {\n setCurrentComment(comment);\n setComments(map(when(propEq('commentId', comment.commentId), always(comment))));\n };\n const deleteCommentFromState = (commentId: string, uri: string) => {\n setCurrentComment(null);\n setCommentsMap((prevCommentsMap) => {\n const comments = prevCommentsMap[uri] || [];\n return {\n ...prevCommentsMap,\n [uri]: comments.filter((c) => c.commentId !== commentId)\n };\n });\n setComments((prevComments) => {\n return prevComments.filter((comment) => comment.commentId !== commentId);\n });\n };\n const createComment = useCallback(\n ({content, namedUsers, objectType, uri, relatedObjectUris}) => {\n setSending(true);\n\n const data = {\n objectId: uri,\n content,\n relatedObjectUris,\n objectType,\n visibility: 'public',\n namedUsers,\n permanentLink: ''\n };\n\n return createCommentRequest({collaborationPath, tenant, data})\n .then(([comment]) => addCommentToState(comment, uri))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const editComment = useCallback(\n ({content, namedUsers, objectType, uri, relatedObjectUris, commentId, replies}) => {\n setSending(true);\n\n const data = {\n objectId: uri,\n content,\n relatedObjectUris,\n objectType,\n visibility: 'public',\n namedUsers,\n permanentLink: '',\n commentId,\n replies\n };\n\n return updateCommentRequest({collaborationPath, tenant, data})\n .then((comment) => updateCommentInState({...comment, replies}))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const deleteComment = useCallback(\n ({uri, commentId}) => {\n setSending(true);\n\n deleteCommentRequest({collaborationPath, tenant, commentId})\n .then(() => deleteCommentFromState(commentId, uri))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const updateReplyInState = useCallback((reply: Reply, uri: string, commentId: string, isDeleteReply?: boolean) => {\n const newStatus = reply.action === 'resolve' ? 'resolved' : 'open';\n const {replyId} = reply;\n if (newStatus === 'resolved') {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return null;\n }\n });\n } else {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return {\n ...prevCurrentComment,\n replies: isDeleteReply\n ? filterReplies(replyId, prevCurrentComment.replies)\n : [...prevCurrentComment.replies, reply]\n };\n }\n });\n }\n\n setCommentsMap((prevCommentsMap) => ({\n ...prevCommentsMap,\n [uri]: (prevCommentsMap[uri] || []).map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n status: newStatus,\n replies: isDeleteReply ? comment.replies - 1 : comment.replies + 1\n };\n }\n\n return comment;\n })\n }));\n\n setComments((prevComments) => {\n return prevComments.map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n status: newStatus,\n replies: isDeleteReply\n ? filterReplies(reply.replyId, comment.replies)\n : [...comment.replies, reply]\n };\n }\n\n return comment;\n });\n });\n }, []);\n\n const deleteReply = useCallback(\n ({uri, commentId, reply}) => {\n setSending(true);\n\n deleteReplyRequest({collaborationPath, tenant, commentId, replyId: reply.replyId})\n .then(() => updateReplyInState(reply, uri, commentId, true))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, updateReplyInState, tenant]\n );\n\n const editReplyInState = useCallback((reply: Reply, commentId: string) => {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return {\n ...prevCurrentComment,\n replies: getUpdatedReplies(prevCurrentComment, reply)\n };\n }\n });\n\n setComments((prevComments) => {\n return prevComments.map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n replies: getUpdatedReplies(comment, reply)\n };\n }\n\n return comment;\n });\n });\n }, []);\n\n const editReply = useCallback(\n ({content, namedUsers, commentId, replyId}) => {\n setSending(true);\n const data = {\n content,\n namedUsers\n };\n return updateReplyRequest({collaborationPath, tenant, commentId, replyId, data})\n .then((reply) => editReplyInState(reply, commentId))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant, editReplyInState]\n );\n\n const createReply = useCallback(\n ({content, namedUsers, commentId, action, uri}) => {\n setSending(true);\n\n const data = {\n content,\n action,\n namedUsers\n };\n\n return createReplyRequest({collaborationPath, tenant, commentId, data})\n .then(([reply]) => updateReplyInState(reply, uri, commentId))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant, updateReplyInState]\n );\n\n const resolveThread = useCallback(\n ({commentId, uri}) => {\n createReply({content: '', namedUsers: [], commentId, action: 'resolve', uri});\n },\n [createReply]\n );\n\n const reOpenThread = useCallback(\n ({commentId, uri}) => {\n createReply({content: '', namedUsers: [], commentId, action: 'reopen', uri});\n },\n [createReply]\n );\n\n const clearCurrentComment = useCallback(() => {\n setCurrentComment(null);\n }, []);\n\n const getCommentState = (uri: string, commentUri: string) => pathOr({}, [uri, commentUri], collaborationStateMap);\n\n const clearCommentState = (uri: string, commentUri: string) =>\n setCollaborationStateMap(dissocPath([uri, commentUri]));\n\n const updateCommentState = (uri: string, commentUri: string, newState: CommentState) => {\n setCollaborationStateMap((prevCollaborationStateMap) => {\n const pathToCommentState = [uri, commentUri];\n const prevCommentState = path(pathToCommentState, prevCollaborationStateMap);\n return assocPath(pathToCommentState, mergeRight(prevCommentState, newState), prevCollaborationStateMap);\n });\n };\n\n return {\n clearCurrentComment,\n comments,\n commentsMap,\n getCommentState,\n updateCommentState,\n clearCommentState,\n createComment,\n createReply,\n currentComment,\n deleteComment,\n editComment,\n getComment,\n getComments,\n getCommentsCount,\n loading,\n objectTypes,\n pageToken,\n reOpenThread,\n resolveThread,\n sending,\n deleteReply,\n editReply\n };\n};\n","import React, {useCallback, useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {Portal as Portal} from '@material-ui/core';\nimport {Button as Button} from '@material-ui/core';\nimport Snackbar, {SnackbarOrigin} from '@material-ui/core/Snackbar';\n\ntype SnackbarOptions = {\n anchorOrigin?: SnackbarOrigin;\n showDismiss?: boolean;\n};\nconst FIVE_MINUTES = 5 * 60 * 1000;\nexport const useSnackbar = (options: SnackbarOptions = {}) => {\n const {anchorOrigin, showDismiss} = options;\n const [isOpenSnackbar, setIsOpenSnackbar] = useState(false);\n const [snackbarMessage, setSnackbarMessage] = useState('');\n\n const closeSnackbar = useCallback(() => {\n setIsOpenSnackbar(false);\n setSnackbarMessage('');\n }, []);\n\n const showSnackbarMessage = useCallback((message) => {\n setIsOpenSnackbar(true);\n setSnackbarMessage(message);\n }, []);\n\n const SnackbarRenderer = useCallback(() => {\n return (\n <Portal container={document.body}>\n <Snackbar\n open={isOpenSnackbar}\n anchorOrigin={anchorOrigin}\n autoHideDuration={FIVE_MINUTES}\n onClose={closeSnackbar}\n message={snackbarMessage}\n action={\n showDismiss ? (\n <Button color=\"primary\" onClick={closeSnackbar}>\n {i18n.text('Dismiss')}\n </Button>\n ) : undefined\n }\n />\n </Portal>\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpenSnackbar, closeSnackbar, snackbarMessage]);\n\n return {SnackbarRenderer, showSnackbarMessage};\n};\n"],"names":["props","width","height","viewBox","xmlns","d","fill","fillRule","stroke","strokeWidth","opacity","ColumnsSettings","columnsData","selectedColumns","onChangeColumns","title","tooltipTitle","anchorEl","setAnchorEl","useState","handleColumnClick","useCallback","column","changedColumns","pipe","getChildColumns","pluck","wasSelected","isColumnSelected","difference","uniq","concat","SmallIconButton","i18n","size","icon","TableIcon","onClick","event","currentTarget","ColumnsSettingsPopup","onColumnClick","onClose","propTypes","ColumnsDataType","PropTypes","useStyles","makeStyles","popup","minWidth","groupItem","backgroundColor","ColumnListItem","item","checked","level","style","isFocused","isGroupItem","hideCheckBox","styles","AttributeListItem","key","id","data","label","Highlighter","text","highlight","filterText","labelInText","hideIcon","className","classnames","setFilterText","groupedItems","useMemo","buildColumnItems","items","flattenGroupedItemsData","containerWidth","getMaxItemWidth","handleSearchOnEnter","focusIndex","handleKeyDown","useKeyboardNavigation","open","onSelectFocusedItem","selectedItems","handleClose","listHeight","Math","min","length","containerHeight","max","SelectionPopup","onSearch","searchInputOnKeyDown","VirtualGroupedList","fixedTitle","renderItem","index","isGroupColumn","getItemSize","groupId","isParentToColumn","curry","parent","startsWith","isGroupToColumn","group","isHideableColumn","propOr","addColumn","columns","root","find","either","getColumnRoot","children","filterColumnsByLabel","utils","some","buildColumnsTrees","reduce","acc","columnData","attrType","dataTypeDefinition","buildFilteredColumnItems","filter","chain","isGroupedColumnsData","has","flattenGroupedColumnsData","map","assoc","when","childColumns","includes","every","theme","profileBandWrapper","flexShrink","profileBand","display","padding","alignItems","boxShadow","content","minHeight","fontSize","inactive","background","inactiveBackground","profileIcon","marginRight","imageProfileIcon","profileInfo","flexDirection","flex","badge","lineHeight","letterSpacing","color","palette","primary","wordBreak","marginTop","secondaryLabel","fontWeight","marginLeft","businessCard","secondary","specialInfo","justifyContent","flexWrap","entityType","entityId","whiteSpace","cursor","textDecoration","entity","classes","metadata","useSelector","mdmModule","showEntityId","handleCopyEntityIdToClipboard","navigator","clipboard","writeText","getEntityId","isNil","getLabel","businessCardText","getBusinessCardAttributesText","isActive","isActiveObject","entityUri","uri","EntityAvatar","avatarClassName","imageClassName","Typography","variant","EntityTypeBadge","isTempUri","Tooltip","container","link","LinkWithTooltip","withTooltip","Link","ProfileBandNavigationWidget","total","onPrev","onNext","onSearchResultsClick","isPrevDisabled","isNextDisabled","component","underline","formatNumberAsMetric","KeyboardArrowLeft","disabled","showForDisabled","KeyboardArrowRight","MainSearchProvider","constructor","query","sortField","sortOrder","tenant","searchTenant","apiPath","dtssPath","globalSearchRequestOptions","isDT","this","getQueryFilter","rawFilter","getEntities","filters","options","requestFilters","requestOptions","sort","order","select","scoreEnabled","getFilteredEntitiesFromDataTenant","customerTenant","dataTenant","getFilteredEntities","checkEntity","fieldName","values","offset","then","entities","requestEntities","requestTotal","getTotalFromDataTenant","getTotals","json","GraphSearchProvider","searchBody","allFilters","getGraphSearchEntities","buildFilterQueryString","from","getGraphSearchCount","count","getNewUris","cache","prop","reject","ProfileBandNavigation","safeCheckEntityPromise","useSafePromise","safeRequestTotalPromise","safeRequestEntitiesPromise","type","state","viewId","useContext","ViewIdContext","dispatch","useDispatch","loading","setLoading","searchProvider","getSearchProvider","updateNavigationData","mdmModuleSearch","openEntity","preparedUri","getEntityUriForLink","mdmModuleUi","source","perspectiveId","useEffect","requestNextPage","newIndex","newUris","finally","requestPrevPage","stepForwardWithCheck","cacheIndex","isExists","clearedCache","splice","stepBackWithCheck","indexOf","useSearchNavigation","mode","isViewMode","useSearchNavigationVisibility","withMuiSkin","CreatableSelect","Option","innerProps","innerRef","isSelected","selectProps","MenuItem","classNames","option","ref","selected","Checkbox","ExpandedValueTooltip","value","onMouseMove","onMouseOver","tabIndex","isRequired","current","top","left","placeholder","undefined","clearIndicator","spacing","margin","dropdownIndicator","MultiSelect","creatable","getOptions","loadingIndicator","components","componentsProp","classesProp","stylesProp","onChange","onChangeProp","onInputChange","onInputChangeProp","menuPlacement","reactSelectProps","SelectComponent","AsyncSelect","Select","inputValue","setInputValue","multiSelectClasses","omit","inputId","multiSelectComponents","mergeClasses","indicatorSeparator","base","loadingMessage","fontFamily","labelProps","TextFieldProps","InputLabelProps","htmlFor","shrink","isMulti","actionMeta","action","closeMenuOnSelect","hideSelectedOptions","loadOptions","defaultProps","cacheOptions","defaultOptions","ClearIndicator","Control","DropdownIndicator","DownChevron","CrossIcon","Group","GroupHeading","IndicatorsContainer","IndicatorSeparator","Input","LoadingIndicator","Menu","MenuList","MenuPortal","LoadingMessage","NoOptionsMessage","MultiValue","MultiValueContainer","MultiValueLabel","MultiValueRemove","Placeholder","SelectContainer","SingleValue","ValueContainer","control","valueContainer","multiValue","noOptionsMessage","singleValue","menu","groupHeading","indicatorsContainer","input","menuList","menuPortal","multiValueLabel","multiValueRemove","menuPortalTarget","getOptionValue","isSearchable","inputRef","paddingTop","paper","active","fade","main","position","borderRadius","buttonWrapper","SideButtonsPanel","buttonsProps","activeIndexId","onButtonClick","iconButtonClasses","buttonProps","slice","cancelButton","historyEvent","onCancel","profile","aStamp","Button","filterReplies","replyId","replies","reply","getUpdatedReplies","comment","changedReplyIndex","findIndex","newReplies","defaultObjectIds","catchErrorInRequest","e","console","error","useCollaboration","objectIds","objectTypes","enabled","mdm","collaborationPath","isCollaborationEnabled","pageToken","setPageToken","comments","setComments","commentsMap","setCommentsMap","currentComment","setCurrentComment","sending","setSending","collaborationStateMap","setCollaborationStateMap","addCommentsToCommentsMap","currentCommentsMap","getCommentsCount","shouldResetCommentsMap","onError","warn","getCommentsCountRequest","andThen","fromPairs","otherwise","uris","getComments","relatedObjectUri","getCommentsRequest","nextPageToken","prevComments","uniqBy","catch","getComment","commentId","getCommentRequest","createComment","namedUsers","objectType","relatedObjectUris","objectId","visibility","permanentLink","createCommentRequest","prevCommentsMap","status","addCommentToState","editComment","updateCommentRequest","propEq","always","updateCommentInState","deleteComment","deleteCommentRequest","c","deleteCommentFromState","updateReplyInState","isDeleteReply","newStatus","prevCurrentComment","deleteReply","deleteReplyRequest","editReplyInState","editReply","updateReplyRequest","createReply","createReplyRequest","resolveThread","reOpenThread","clearCurrentComment","getCommentState","commentUri","pathOr","updateCommentState","newState","prevCollaborationStateMap","pathToCommentState","prevCommentState","path","assocPath","mergeRight","clearCommentState","dissocPath","FIVE_MINUTES","useSnackbar","anchorOrigin","showDismiss","isOpenSnackbar","setIsOpenSnackbar","snackbarMessage","setSnackbarMessage","closeSnackbar","showSnackbarMessage","message","SnackbarRenderer","Portal","document","body","autoHideDuration"],"sourceRoot":""}