@reltio/remotes 1.4.1184 → 1.4.1186

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 (110) hide show
  1. package/1920.js +1 -1
  2. package/1957.js +1 -1
  3. package/1957.js.map +1 -1
  4. package/2114.js +1 -1
  5. package/2378.js +3 -0
  6. package/{7621.js.LICENSE.txt → 2378.js.LICENSE.txt} +0 -0
  7. package/2378.js.map +1 -0
  8. package/2396.js +2 -0
  9. package/2396.js.map +1 -0
  10. package/2498.js +2 -0
  11. package/2498.js.map +1 -0
  12. package/2890.js +1 -1
  13. package/3029.js +2 -0
  14. package/3029.js.map +1 -0
  15. package/3126.js +1 -1
  16. package/3698.js +2 -0
  17. package/3698.js.map +1 -0
  18. package/3981.js +1 -1
  19. package/3981.js.map +1 -1
  20. package/{8581.js → 4013.js} +2 -2
  21. package/4013.js.map +1 -0
  22. package/4132.js +1 -1
  23. package/4132.js.map +1 -1
  24. package/4277.js +1 -1
  25. package/4277.js.map +1 -1
  26. package/4361.js +1 -1
  27. package/4374.js +3 -0
  28. package/{5026.js.LICENSE.txt → 4374.js.LICENSE.txt} +0 -0
  29. package/4374.js.map +1 -0
  30. package/4582.js +1 -1
  31. package/4689.js +1 -1
  32. package/4843.js +1 -1
  33. package/4889.js +1 -1
  34. package/5243.js +2 -0
  35. package/5243.js.map +1 -0
  36. package/5276.js +2 -0
  37. package/5276.js.map +1 -0
  38. package/5400.js +1 -1
  39. package/5709.js +1 -1
  40. package/5720.js +1 -1
  41. package/5884.js +1 -1
  42. package/5884.js.map +1 -1
  43. package/{1196.css → 604.css} +1 -1
  44. package/604.css.map +1 -0
  45. package/604.js +2 -0
  46. package/604.js.map +1 -0
  47. package/621.js +1 -1
  48. package/6303.js +2 -0
  49. package/6303.js.map +1 -0
  50. package/6596.js +1 -1
  51. package/6710.js +1 -1
  52. package/6710.js.map +1 -1
  53. package/737.js +2 -0
  54. package/737.js.map +1 -0
  55. package/7820.js +2 -0
  56. package/7820.js.map +1 -0
  57. package/8896.js +2 -0
  58. package/8896.js.map +1 -0
  59. package/8969.js +1 -1
  60. package/8969.js.map +1 -1
  61. package/9062.js +2 -0
  62. package/9062.js.map +1 -0
  63. package/9306.js +2 -0
  64. package/9306.js.map +1 -0
  65. package/9431.js +1 -1
  66. package/9431.js.map +1 -1
  67. package/9551.js +1 -1
  68. package/9609.js +2 -0
  69. package/9609.js.map +1 -0
  70. package/9630.js +1 -1
  71. package/9838.js +1 -1
  72. package/main.js +1 -1
  73. package/main.js.map +1 -1
  74. package/package.json +1 -1
  75. package/remoteEntry.js +1 -1
  76. package/remoteEntry.js.map +1 -1
  77. package/1136.js +0 -2
  78. package/1136.js.map +0 -1
  79. package/1196.css.map +0 -1
  80. package/1196.js +0 -2
  81. package/1196.js.map +0 -1
  82. package/1406.js +0 -2
  83. package/1406.js.map +0 -1
  84. package/350.js +0 -2
  85. package/350.js.map +0 -1
  86. package/366.js +0 -2
  87. package/366.js.map +0 -1
  88. package/3745.js +0 -2
  89. package/3745.js.map +0 -1
  90. package/5026.js +0 -3
  91. package/5026.js.map +0 -1
  92. package/5198.js +0 -2
  93. package/5198.js.map +0 -1
  94. package/5797.js +0 -2
  95. package/5797.js.map +0 -1
  96. package/6971.js +0 -2
  97. package/6971.js.map +0 -1
  98. package/7147.js +0 -2
  99. package/7147.js.map +0 -1
  100. package/7526.js +0 -2
  101. package/7526.js.map +0 -1
  102. package/7621.js +0 -3
  103. package/7621.js.map +0 -1
  104. package/8419.js +0 -2
  105. package/8419.js.map +0 -1
  106. package/8581.js.map +0 -1
  107. package/9503.js +0 -2
  108. package/9503.js.map +0 -1
  109. package/9983.js +0 -2
  110. package/9983.js.map +0 -1
package/7820.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_reltio_remotes=self.webpackChunk_reltio_remotes||[]).push([[7820],{60894:(e,t,n)=>{n.d(t,{Z:()=>b});var r=n(24328),o=n.n(r),a=n(13980),l=n.n(a),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 r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}const c=e=>o().createElement("svg",s({width:20,height:18,viewBox:"0 0 20 18",xmlns:"http://www.w3.org/2000/svg"},e),o().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),g=n(85657);const f=e=>{let{columnsData:t,selectedColumns:n,onChangeColumns:a,title:l,tooltipTitle:i}=e;const[s,h]=(0,r.useState)(null),f=(0,r.useCallback)((e=>{const t=(0,p.pipe)(g.JJ,(0,p.pluck)("id"))(e),r=(0,g.u)(n,e);a(r?(0,p.difference)(n,t):(0,p.uniq)((0,p.concat)(n,t)))}),[n,a]);return o().createElement(o().Fragment,null,o().createElement(u.k,{tooltipTitle:i||m().text("Show/hide columns"),size:"L",icon:c,onClick:e=>h(e.currentTarget)}),o().createElement(d.G,{onColumnClick:f,anchorEl:s,columnsData:t,onClose:()=>h(null),title:l,selectedColumns:n}))};f.propTypes={columnsData:i.uz,selectedColumns:l().arrayOf(l().string),onChangeColumns:l().func,title:l().string,tooltipTitle:l().string};const b=f},47458:(e,t,n)=>{n.d(t,{G:()=>w});var r=n(24328),o=n.n(r),a=n(87918),l=n.n(a),i=n(17440),s=n(81667),c=n(44890),u=n(97820),p=n(85657),d=n(56656),h=n(54763),m=n(13980),g=n.n(m),f=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)"}}),P=e=>{let{item:t,onClick:n,checked:r,level:a,style:l,isFocused:i,isGroupItem:s,hideCheckBox:c}=e;const u=x();return o().createElement(f.Z,{hideCheckBox:c,key:t.id,onClick:n,checked:r,level:a,data:t,label:o().createElement(b.Z,{text:t.label,highlight:t.filterText}),labelInText:t.label,style:l,isFocused:i,hideIcon:s,className:v()({[u.groupItem]:s})})};P.propTypes={item:g().shape({label:g().string,filterText:g().string}),level:g().number,onClick:g().func,checked:g().bool,style:g().object,isGroupItem:g().bool,isFocused:g().bool,hideCheckBox:g().bool};const C=P,w=e=>{let{anchorEl:t,onClose:n,title:a,columnsData:m,onColumnClick:g,selectedColumns:f,hideCheckBox:b}=e;const y=x(),[v,P]=(0,r.useState)(""),w=(0,r.useMemo)((()=>(0,p.eX)(m,v)),[m,v]),O=(0,r.useMemo)((()=>(0,d.LG)(w)),[w]),k=(0,s.fW1)("label")(w)||308,E=(0,r.useCallback)((e=>{let{item:t}=e;return g(t)}),[g]),{focusIndex:S,handleKeyDown:I}=(0,h.t)({items:O,open:!0,onSelectFocusedItem:E,selectedItems:f,onClose:n}),T=(0,r.useCallback)((0,i.pipe)(n,(()=>P(""))),[n]),j=Math.min(300,32*O.length),D=Math.max(140,j+108);return o().createElement(u.Z,{className:y.popup,open:!!t,anchorEl:t,onClose:T,onSearch:P,title:a||l().text("Show/hide columns"),containerWidth:k,containerHeight:D,searchInputOnKeyDown:I},o().createElement(c.Z,{fixedTitle:!1,height:j,renderItem:(e,t,n)=>{let{item:r,level:a=0}=t;return o().createElement(C,{hideCheckBox:b,style:e,item:r,level:a,isFocused:S===n,checked:(0,p.u)(f,r),isGroupItem:(0,p.yf)(r),onClick:b?(0,i.pipe)(g,T):g})},items:O,getItemSize:()=>32,focusIndex:S}))}},85657:(e,t,n)=>{n.d(t,{eX:()=>b,JJ:()=>y,yf:()=>i,u:()=>v});var r=n(17440),o=n(81667);function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.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,r.curry)(((e,t)=>{let{id:n,groupId:r}=e;return t.groupId===r&&(n===t.id||n.startsWith(`${t.id}.`))})),c=(0,r.curry)(((e,t)=>{let{groupId:n}=e;return n===t.id})),u=(0,r.propOr)(!0,"hideable"),p=(e,t)=>{const n=((e,t)=>e.find((0,r.either)(c(t),s(t))))(e,t);return n?(n.children=p(n.children||[],t),e):e.concat(t)},d=(0,r.curry)(((e,t)=>o.P6Y.strings.search(t.label,e)||(t.children||[]).some(d(e)))),h=(0,r.reduce)(((e,t)=>p(e,{id:t.id,groupId:t.groupId,label:t.label,attrType:t.dataTypeDefinition})),[]),m=(0,r.curry)((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return(0,r.pipe)((0,r.filter)(d(e)),(0,r.chain)((t=>[{item:a({},t,{filterText:e}),level:n},...t.children?m(e,t.children,n+1):[]])))(t)})),g=(0,r.has)("columns"),f=e=>{let{id:t,label:n,columns:o}=e;return[{id:t,groupId:t,label:n},...o.map((0,r.assoc)("groupId",t))]},b=(e,t)=>(0,r.pipe)((0,r.chain)((0,r.when)(g,f)),(0,r.filter)((0,r.either)(i,u)),h,m(t))(e),y=e=>e.children?(0,r.chain)(y,e.children):[e],v=(e,t)=>{const n=y(t),r=t=>e.includes(t.id);return i(t)?n.every(r):n.some(r)}},1876:(e,t,n)=>{n.d(t,{Z:()=>g});var r=n(24328),o=n.n(r),a=n(13980),l=n.n(a),i=n(87918),s=n.n(i),c=n(94079),u=n(87685);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}const d=e=>o().createElement("svg",p({width:18,height:18,viewBox:"0 0 18 18",xmlns:"http://www.w3.org/2000/svg"},e),o().createElement("path",{d:"M18 2V0H0v2l7 8v8l4-2v-6z",fill:"currentColor",fillRule:"nonzero",stroke:"none",strokeWidth:1})),h=(0,n(79692).Z)((e=>({"filterIcon--enabled":{color:e.palette.primary.main},closeIcon:{position:"absolute",right:"3px",bottom:"3px",transform:"scale(0.5)"},button:{padding:"11px"}}))),m=e=>{let{enabled:t,onClick:n}=e;const r=h();return o().createElement(c.Tooltip,{title:t?s().text("Clear all filters"):s().text("Filter")},o().createElement(c.IconButton,{onClick:n,classes:{root:r.button}},t?o().createElement(o().Fragment,null,o().createElement(d,{className:r["filterIcon--enabled"]}),o().createElement(u.default,{color:"primary",className:r.closeIcon})):o().createElement(d,null)))};m.propTypes={enabled:l().bool,onClick:l().func};const g=m},58662:(e,t,n)=>{n.d(t,{Z:()=>y});var r=n(13980),o=n.n(r),a=n(24328),l=n.n(a),i=n(71153),s=n.n(i),c=n(94079),u=n(87918),p=n.n(u),d=n(31276),h=n(17440);const m=(0,n(79692).Z)({pagination:{display:"flex",alignItems:"center",justifyContent:"flex-end",height:"56px",borderTop:"1px solid rgba(0,0,0,0.12)",boxShadow:"none"},caption:{color:"rgba(0,0,0,0.6)",fontSize:"12px",lineHeight:"16px"},selectRoot:{marginLeft:"5px",marginRight:"36px"},select:{color:"rgba(0,0,0,0.6)",fontSize:"12px",lineHeight:"16px",textAlign:"right"},actions:{marginLeft:"32px"}});function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){f(e,t,n[t])}))}return e}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const b=e=>{let{classes:t={},count:n,rowsPerPageOptions:r,page:o,onChangePage:i,rowsPerPage:u,onChangeRowsPerPage:f,basicTableRef:b,labelRowsPerPage:y}=e;const v=m(),x=(0,a.useCallback)((()=>{(0,h.pathOr)(h.identity,["current","resetScrollbarPosition"],b)()}),[b]),P=(0,a.useCallback)((e=>{i(e),x()}),[i,x]),C=(0,a.useCallback)((e=>{i(0),f(e),x()}),[i,f,x]);return l().createElement(c.TablePagination,{classes:g({},t,{root:s()(v.pagination,t.root),select:s()(v.select,t.select),caption:v.caption,selectRoot:v.selectRoot,actions:v.actions}),component:"div",labelRowsPerPage:y||p().text("Rows per page:"),labelDisplayedRows:e=>{let{from:t,to:n,count:r}=e;return p().text("${fromRow}-${toRow} of ${countRows}",{fromRow:p().number(t,"0,0"),toRow:p().number(n,"0,0"),countRows:p().number(r,"0,0")})},count:n,rowsPerPageOptions:r,page:o,onChangePage:(0,h.pipe)((0,h.nthArg)(1),P),rowsPerPage:u,onChangeRowsPerPage:(0,h.pipe)(d.NA,C)})};b.propTypes={classes:o().object,rowsPerPageOptions:o().arrayOf(o().number),count:o().number,page:o().number,onChangePage:o().func,rowsPerPage:o().number,onChangeRowsPerPage:o().func,basicTableRef:o().shape({current:o().object}),labelRowsPerPage:o().string};const y=l().memo(b)},26180:(e,t,n)=>{n.d(t,{ZP:()=>g});var r=n(17440),o=n(31276);function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.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="CHANGE_COLUMNS",s="TOGGLE_FILTERS",c="CHANGE_FILTER",u="TOGGLE_SORT",p="CHANGE_PAGE",d="CHANGE_ROWS_PER_PAGE",h={changeColumns:(0,o.zD)(i),toggleFilters:(0,o.zD)(s),changeFilter:(0,o.zD)(c),toggleSort:(0,o.zD)(u),changePage:(0,o.zD)(p),changeRowsPerPage:(0,o.zD)(d)},m=(e,t)=>{const n=(0,r.difference)(e.visibleColumns,t),o=e=>n.includes(e);return(0,r.evolve)({visibleColumns:(0,r.always)(t),sorting:(0,r.when)((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o(e.field)}),(()=>{const[e]=t;return{field:e,order:"asc"}})),filters:e=>(0,r.keys)(e).reduce(((e,t)=>o(t)?(0,r.dissoc)(t,e):e),e)},e)},g={reducer:(e,t)=>{switch(t.type){case i:{const n=t.payload;return m(e,n)}case s:{const t=!e.filters;return a({},e,{filters:t?{}:null,page:t?e.page:0})}case c:{const{columnId:n,filter:o}=t.payload;return(0,r.evolve)({filters:o?(0,r.assoc)(n,o):(0,r.dissoc)(n),page:(0,r.always)(0)},e)}case u:{const n=t.payload,l=(0,r.path)(["sorting","field"],e),i=(0,r.path)(["sorting","order"],e);return a({},e,{sorting:{field:n,order:(0,o.Dh)(n===l?i:null)},page:0})}case p:return a({},e,{page:t.payload});case d:return a({},e,{rowsPerPage:t.payload});default:return e}},actions:h,changeVisibleColumns:m}},10237:(e,t,n)=>{n.d(t,{Z:()=>h});var r=n(27556),o=n(13980),a=n.n(o),l=n(24328),i=n.n(l);function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.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=(0,n(79692).Z)((e=>({"basic-view__paper":s({display:"flex",flexDirection:"column"},e.basicView)})));function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}const d=(0,l.forwardRef)(((e,t)=>{let{children:n,className:o}=e,a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["children","className"]);const l=u();return i().createElement(r.Z,p({ref:t,className:o,classes:{root:l["basic-view__paper"]}},a),n)}));d.displayName="BasicView",d.propTypes={children:a().node,className:a().string};const h=d},81137:(e,t,n)=>{n.d(t,{Z:()=>c});var r=n(24328),o=n.n(r),a=n(87918),l=n.n(a),i=n(94079);const s=(0,n(79692).Z)({paper:{minHeight:"180px"},title:{padding:"16px 16px 10px 16px",fontSize:"20px",fontWeight:500,letterSpacing:"0.25px",lineHeight:"24px"},content:{padding:"0 16px"},contentText:{marginBottom:0,fontSize:"16px",letterSpacing:"0.15px",lineHeight:"24px"},actionButtons:{display:"flex",paddingTop:"4px",fontSize:"14px",fontWeight:500,letterSpacing:0,lineHeight:"16px","& > div":{marginLeft:"auto"}},discardButton:{marginRight:"8px"}}),c=e=>{let{open:t,title:n,content:r,onCancel:a,cancelCaption:c=l().text("Cancel"),onDiscard:u,discardCaption:p="",onSave:d,saveCaption:h=l().text("Save"),disabledSave:m=!1}=e;const g=s();return o().createElement(i.Dialog,{open:t,onClose:a,classes:{paperScrollPaper:g.paper}},o().createElement(i.DialogTitle,{classes:{root:g.title}},n),o().createElement(i.DialogContent,{classes:{root:g.content}},o().createElement(i.DialogContentText,{classes:{root:g.contentText}},r)),o().createElement(i.DialogActions,{className:g.actionButtons,disableSpacing:!0},a&&o().createElement(i.Button,{onClick:a},c),o().createElement("div",null,u&&o().createElement(i.Button,{onClick:u,classes:{root:g.discardButton}},p),o().createElement(i.Button,{onClick:d,color:"primary",disabled:m,autoFocus:!0},h))))}},68439:(e,t,n)=>{n.d(t,{Z:()=>h});var r=n(24328),o=n.n(r),a=n(52730),l=n(71153),i=n.n(l),s=n(94079),c=n(81667),u=n(59431),p=n(88611);const d=(0,n(79692).Z)({"entityType-overflow":{textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"},"entityType-small":{padding:"1px 4px",fontSize:"10px",lineHeight:"normal",marginRight:"12px",borderRadius:"2px"},"entityType-medium":{padding:"2px 8px 3px",borderRadius:"2px",fontSize:"13px",fontWeight:500,lineHeight:"15px",marginRight:"16px"}}),h=e=>{let{entity:t,className:n,size:r="small"}=e;const l=d(),h=(0,a.useSelector)(u.ZP.selectors.getMetadata),m=t.type,g=(0,c.nt9)(h,m)||{},f=(0,c.VD3)(h,g,"typeColor")||c.rSc.palette.primary.main,b=(0,c.jFi)(h,t);return o().createElement(p.C,{value:b,placement:"top"},o().createElement(s.Typography,{style:{backgroundColor:f,color:c.P6Y.Colors.getColor(f)?"#FFFFFF":"#212121"},className:i()(l[`entityType-${r}`],l["entityType-overflow"],n),component:"div"},b))}},57304:(e,t,n)=>{n.d(t,{Z:()=>x});var r=n(24328),o=n.n(r),a=n(13980),l=n.n(a),i=n(71153),s=n.n(i),c=n(52730),u=n(17440),p=n(94079),d=n(87918),h=n.n(d),m=n(81667),g=n(59431),f=n(53180),b=n(68439);const y=(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"}}}))),v=e=>{let{className:t,entity:n,children:a,classes:l,showEntityId:i=!0}=e;const d=y({classes:l}),v=(0,c.useSelector)(g.ZP.selectors.getMetadata),x=(0,r.useCallback)((()=>{navigator.clipboard.writeText((0,m.BTI)(n))}),[n]);if((0,u.isNil)(n))return null;const P=(0,m.idV)(n.label),C=n.secondaryLabel,w=(0,m.ptG)(v,n),O=(0,m.Fn9)(n),k=n.uri,E=(0,m.BTI)(n);return o().createElement("div",{className:s()(d.profileBandWrapper,t)},o().createElement("div",{className:s()(d.profileBand,{[d.inactive]:!O}),"data-entity-uri":k},o().createElement(f.Z,{key:n.uri,entity:n,avatarClassName:d.profileIcon,imageClassName:d.imageProfileIcon}),o().createElement("div",{className:d.profileInfo},o().createElement("div",null,o().createElement(p.Typography,{variant:"h6",className:d.label},P),C&&o().createElement(p.Typography,{variant:"subtitle2",className:d.secondaryLabel},C),w&&o().createElement(p.Typography,{variant:"subtitle1",className:d.businessCard},w)),o().createElement("div",{className:d.specialInfo},o().createElement("div",{className:d.entityType},o().createElement(b.Z,{entity:n,size:"medium",className:d.badge}),!(0,m.ZiX)(k)&&i&&o().createElement(p.Tooltip,{title:h().text("Copy to clipboard")},o().createElement(p.Typography,{display:"inline",variant:"body2",className:d.entityId,onClick:x},h().text("Entity ID"),": ",E))))),a&&o().createElement("div",null,a)))};v.propTypes={className:l().string,entity:l().object,children:l().node,classes:l().object,showEntityId:l().bool};const x=v},93873:(e,t,n)=>{n.d(t,{a:()=>I});var r=n(24328),o=n.n(r),a=n(87918),l=n.n(a),i=n(94079),s=n(83348),c=n(8818),u=n(67766),p=n(42767),d=n(81667);const h=(0,n(79692).Z)({container:{display:"flex",alignItems:"center"},link:{whiteSpace:"nowrap",marginRight:"9px"}}),m=(0,s.Z)(i.Link),g=e=>{let{total:t=0,onPrev:n,onNext:r,onSearchResultsClick:a,isPrevDisabled:i,isNextDisabled:s}=e;const g=h();return o().createElement("div",{className:g.container},o().createElement(m,{className:g.link,component:"button",variant:"caption",onClick:a,underline:"none",tooltipTitle:l().text("Go to search results")},(0,d.k7L)(t,1e6)," ",1===t?l().text("Search result"):l().text("Search results")),o().createElement(c.k,{size:"L",icon:u.Z,tooltipTitle:l().text("Go to previous profile"),onClick:n,disabled:i,showForDisabled:!0}),o().createElement(c.k,{size:"L",icon:p.Z,tooltipTitle:l().text("Go to next profile"),onClick:r,disabled:s,showForDisabled:!0}))};var f=n(52730),b=n(59431),y=n(17440),v=n(39450),x=n(67218);function P(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.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}class w{constructor(e){var t=this;let{data:{query:n,sortField:r,sortOrder:o},tenant:a,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 r=[t.getQueryFilter(),...e],o=P({},t.globalSearchRequestOptions,{sort:t.sortField,order:t.sortOrder,select:"uri,label,type",scoreEnabled:!1},n);return t.isDT()?(0,d.uqV)({filters:r,options:o,customerTenant:t.tenant,dataTenant:t.searchTenant,dtssPath:t.dtssPath}):(0,d.ZOr)(r,o)},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,d.J$m)({filters:e,options:t,customerTenant:this.tenant,dataTenant:this.searchTenant,dtssPath:this.dtssPath}):(0,d.j_Q)(e,t)).then((e=>e.total))},this.query=n,this.sortField=r,this.sortOrder=o,this.tenant=a,this.searchTenant=l,this.apiPath=i,this.dtssPath=s,this.globalSearchRequestOptions=c}}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){k(e,t,n[t])}))}return e}function k(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:r,apiPath:o}=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 r=[{rawFilter:t.searchBody.filter},...e];return(0,d.P2h)({apiPath:t.apiPath,tenant:t.tenant,searchBody:O({},t.searchBody,{filter:e.length?(0,d.Uqd)()(r):t.searchBody.filter}),options:n})},this.checkEntity=e=>this.getEntities([{filter:"equals",fieldName:"id",values:[(0,d.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,d.dED)({apiPath:this.apiPath,tenant:this.tenant,searchBody:this.searchBody}).then((e=>e.count)),this.searchBody=n,this.tenant=r,this.apiPath=o}}const S=(e,t)=>(0,y.pipe)((0,y.map)((0,y.prop)("uri")),(0,y.reject)((e=>t.includes(e))))(e),I=()=>{const{total:e,onPrev:t,onNext:n,onSearchResultsClick:a,isPrevDisabled:l,isNextDisabled:i}=(()=>{const e=(0,x._)(),t=(0,x._)(),n=(0,x._)(),{uri:o,index:a,total:l,tenant:i,cache:s}=(0,f.useSelector)(b.ZP.selectors.getSearchNavigationData)||{},{type:c,data:u}=(0,f.useSelector)(b.ZP.selectors.getSearchProviderData)||{},p=(0,f.useSelector)(b.ZP.selectors.getTenant),h=(0,f.useSelector)(b.ZP.selectors.getApiPath),m=(0,f.useSelector)(b.ZP.selectors.getDtssPath),g=(0,f.useSelector)((e=>b.ZP.selectors.getGlobalSearchRequestOptions(e,["ovOnly"]))),y=(0,r.useContext)(v.m),P=(0,f.useDispatch)(),[C,O]=(0,r.useState)(!1),k=(0,r.useMemo)((()=>((e,t)=>{switch(e){case"search":return new w(t);case"graphsearch":return new E(t)}})(c,{data:u,tenant:p,searchTenant:i,apiPath:h,dtssPath:m,globalSearchRequestOptions:g})),[c,u,p,i,h,m,g]),I=(0,r.useCallback)((e=>{P(b.yC.actions.updateSearchNavigationDataFields(e))}),[P]),T=(0,r.useCallback)((e=>{const t=p!==i?(0,d.wwR)({uri:e,dataTenant:i}):e;P(b.ui.actions.openEntity({uri:t,viewId:y,source:"navigation"}))}),[P,y,p,i]),j=(0,r.useCallback)((()=>{P(b.ui.actions.openPerspective({perspectiveId:c,viewId:y}))}),[P,c,y]);(0,r.useEffect)((()=>{a>=l?I({index:l-1}):a<0&&I({index:0})}),[l,a,I]);const D=(0,r.useCallback)(((e,r,o)=>{O(!0),t(k.requestTotal()).then((e=>I({total:e})));const a=o+1;return n(k.requestEntities(15,a)).then((t=>{if(t){if(t.length){const n=S(t,e);if(n.length>0)return I({cache:e.concat(n),uri:n[0],index:a+t.length-n.length}),void T(n[0]);if(o+t.length<r-1)return D(e,r-t.length,o+t.length)}I({index:a})}})).finally((()=>{O(!1)}))}),[k,I,T]),R=(0,r.useCallback)(((e,r)=>{O(!0),t(k.requestTotal()).then((e=>I({total:e})));const o=r-1,a=Math.max(0,r-15),l=15+Math.min(0,r-15);return n(k.requestEntities(l,a)).then((t=>{if(t){if(t.length){const n=S(t,e);if(n.length>0)return I({cache:n.concat(e),uri:n[n.length-1],index:o-(t.length-n.length)}),void T(n[n.length-1]);if(r-t.length>0)return R(e,r-t.length)}I({index:0})}})).finally((()=>{O(!1)}))}),[k,I,T]),N=(0,r.useCallback)(((t,n,r,o)=>{if(n<t.length){const a=t[n];return O(!0),e(k.checkEntity(a)).then((e=>{if(!e){const e=[...t];return e.splice(n,1),N(e,n,r-1,o)}I({index:o+1,uri:a,cache:t,total:r}),T(a)})).finally((()=>{O(!1)}))}if(!(o>=r-1))return D(t,r,o);I({cache:t,total:r,index:r-1})}),[k,I,T,D]),Z=(0,r.useCallback)(((t,n,r,o)=>{if(n>-1){const a=t[n];return O(!0),e(k.checkEntity(a)).then((e=>{if(!e){const e=[...t];return e.splice(n,1),Z(e,n-1,r-1,o-1)}I({index:o-1,uri:a,cache:t,total:r}),T(a)})).finally((()=>{O(!1)}))}if(!(o<=0))return R(t,o);I({index:0,cache:t,total:r})}),[k,I,T,R]),z=(0,r.useCallback)((()=>{if(s&&o){const e=s.indexOf(o)-1;Z(s,e,l,a)}}),[Z,s,o,l,a]),B=(0,r.useCallback)((()=>{if(s&&o){const e=s.indexOf(o)+1;N(s,e,l,a)}}),[N,s,o,l,a]);return{total:l,onPrev:z,onNext:B,onSearchResultsClick:j,isPrevDisabled:C||a<=0,isNextDisabled:C||a>=l-1}})();return(()=>{const{cache:e}=(0,f.useSelector)(b.ZP.selectors.getSearchNavigationData)||{},t=(0,f.useSelector)(b.ZP.selectors.getMode),n=(0,f.useSelector)(b.ZP.selectors.getEntity);return(0,d.uzs)(t)&&(null==e?void 0:e.includes(null==n?void 0:n.uri))})()?o().createElement(g,{total:e,onPrev:t,onNext:n,onSearchResultsClick:a,isPrevDisabled:l,isNextDisabled:i}):null}},51229:(e,t,n)=>{n.d(t,{Z:()=>a});var r=n(24328),o=n.n(r);const a=()=>o().createElement("div",{style:{flex:1}})},30553:(e,t,n)=>{n.d(t,{Z:()=>s});var r=n(13980),o=n.n(r),a=n(24328),l=n.n(a);const i=e=>{let{height:t,margin:n}=e;return l().createElement("div",{style:{width:"1px",height:`${t}px`,borderLeft:"1px solid rgba(0,0,0,0.38)",margin:`0 ${n}px`,flexShrink:"0"}})};i.propTypes={height:o().number,margin:o().number};const s=i},86361:(e,t,n)=>{n.d(t,{o:()=>l});var r=n(24328),o=n(17440);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const l=e=>{let{actions:t,dispatch:n}=e;return(0,r.useMemo)((()=>Object.entries(t).reduce(((e,t)=>{let[r,l]=t;return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){a(e,t,n[t])}))}return e}({},e,{[r]:(0,o.pipe)(l,n)})}),{})),[n,t])}},7718:(e,t,n)=>{n.d(t,{C:()=>m});var r=n(24328),o=n(52730),a=n(17440),l=n(81667),i=n(59431);function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.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})),r=[...e.replies];return r[n]=t,r},d=[],h=e=>console.error("Collaboration error",e),m=e=>{let{objectIds:t=d,objectTypes:n,enabled:c=!0}=e;const m=(0,o.useSelector)(i.ZP.selectors.getEntity),g=(0,o.useSelector)(i.ZP.selectors.getTenant),f=(0,o.useSelector)(i.ZP.selectors.getCollaborationPath),b=(0,o.useSelector)(i.ZP.selectors.isCollaborationEnabled)&&c,[y,v]=(0,r.useState)(null),[x,P]=(0,r.useState)([]),[C,w]=(0,r.useState)(null),[O,k]=(0,r.useState)(null),[E,S]=(0,r.useState)(!1),[I,T]=(0,r.useState)(!1),j=(0,r.useCallback)((e=>{w((t=>s({},t,e)))}),[]),D=null==m?void 0:m.uri,R=(0,r.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),w(null)};(0,a.pipe)(l.$oF,(0,a.andThen)((0,a.map)((0,a.props)(["objectId","comments"]))),(0,a.andThen)(a.fromPairs),(0,a.andThen)(t?w:j),(0,a.otherwise)(n))({uris:e,tenant:g,collaborationPath:f})}else w(null)}),[j,f,D,b,g]);(0,r.useEffect)((()=>{R(t,!0)}),[t,R]);const N=(0,r.useCallback)(((e,t)=>{(0,l.liG)({collaborationPath:f,tenant:g,relatedObjectUri:e,pageToken:t}).then((e=>{let{items:n,nextPageToken:r}=e;P((e=>t?(0,a.uniqBy)((0,a.prop)("commentId"),[...e,...n]):n)),v(r)})).catch(h)}),[f,g]),Z=(0,r.useCallback)((e=>{T(!0),(0,l.d7q)({collaborationPath:f,tenant:g,commentId:e}).then(k).catch(h).finally((()=>T(!1)))}),[f,g]),z=(0,r.useCallback)((e=>{let{content:t,namedUsers:n,objectType:r,uri:o,relatedObjectUris:a}=e;S(!0);const i={objectId:o,content:t,relatedObjectUris:a,objectType:r,visibility:"public",namedUsers:n,permanentLink:""};return(0,l.Yrx)({collaborationPath:f,tenant:g,data:i}).then((e=>{let[t]=e;return((e,t)=>{k(e),w((n=>s({},n,{[t]:[...n[t]||[],{commentId:e.commentId,replies:0,status:"open"}]}))),P((t=>[e,...t]))})(t,o)})).catch(h).finally((()=>S(!1)))}),[f,g]),B=(0,r.useCallback)((e=>{let{content:t,namedUsers:n,objectType:r,uri:o,relatedObjectUris:i,commentId:c,replies:u}=e;S(!0);const p={objectId:o,content:t,relatedObjectUris:i,objectType:r,visibility:"public",namedUsers:n,permanentLink:"",commentId:c,replies:u};return(0,l.uAg)({collaborationPath:f,tenant:g,data:p}).then((e=>(e=>{k(e),P((0,a.map)((0,a.when)((0,a.propEq)("commentId",e.commentId),(0,a.always)(e))))})(s({},e,{replies:u})))).catch(h).finally((()=>S(!1)))}),[f,g]),F=(0,r.useCallback)((e=>{let{uri:t,commentId:n}=e;S(!0),(0,l.YFy)({collaborationPath:f,tenant:g,commentId:n}).then((()=>((e,t)=>{k(null),w((n=>{const r=n[t]||[];return s({},n,{[t]:r.filter((t=>t.commentId!==e))})})),P((t=>t.filter((t=>t.commentId!==e))))})(n,t))).catch(h).finally((()=>S(!1)))}),[f,g]),q=(0,r.useCallback)(((e,t,n,r)=>{const o="resolve"===e.action?"resolved":"open",{replyId:a}=e;k("resolved"===o?e=>{if(e)return null}:t=>{if(t)return s({},t,{replies:r?u(a,t.replies):[...t.replies,e]})}),w((e=>s({},e,{[t]:(e[t]||[]).map((e=>e.commentId===n?s({},e,{status:o,replies:r?e.replies-1:e.replies+1}):e))}))),P((t=>t.map((t=>t.commentId===n?s({},t,{status:o,replies:r?u(e.replyId,t.replies):[...t.replies,e]}):t))))}),[]),H=(0,r.useCallback)((e=>{let{uri:t,commentId:n,reply:r}=e;S(!0),(0,l.Mfr)({collaborationPath:f,tenant:g,commentId:n,replyId:r.replyId}).then((()=>q(r,t,n,!0))).catch(h).finally((()=>S(!1)))}),[f,q,g]),G=(0,r.useCallback)(((e,t)=>{k((t=>{if(t)return s({},t,{replies:p(t,e)})})),P((n=>n.map((n=>n.commentId===t?s({},n,{replies:p(n,e)}):n))))}),[]),L=(0,r.useCallback)((e=>{let{content:t,namedUsers:n,commentId:r,replyId:o}=e;S(!0);const a={content:t,namedUsers:n};return(0,l.ufV)({collaborationPath:f,tenant:g,commentId:r,replyId:o,data:a}).then((e=>G(e,r))).catch(h).finally((()=>S(!1)))}),[f,g,G]),_=(0,r.useCallback)((e=>{let{content:t,namedUsers:n,commentId:r,action:o,uri:a}=e;S(!0);const i={content:t,action:o,namedUsers:n};return(0,l.PP2)({collaborationPath:f,tenant:g,commentId:r,data:i}).then((e=>{let[t]=e;return q(t,a,r)})).catch(h).finally((()=>S(!1)))}),[f,g,q]),U=(0,r.useCallback)((e=>{let{commentId:t,uri:n}=e;_({content:"",namedUsers:[],commentId:t,action:"resolve",uri:n})}),[_]),M=(0,r.useCallback)((e=>{let{commentId:t,uri:n}=e;_({content:"",namedUsers:[],commentId:t,action:"reopen",uri:n})}),[_]);return{clearCurrentComment:(0,r.useCallback)((()=>{k(null)}),[]),comments:x,commentsMap:C,createComment:z,createReply:_,currentComment:O,deleteComment:F,editComment:B,getComment:Z,getComments:N,getCommentsCount:R,loading:I,objectTypes:n,pageToken:y,reOpenThread:M,resolveThread:U,sending:E,deleteReply:H,editReply:L}}},17554:(e,t,n)=>{n.d(t,{U:()=>i});var r=n(24328),o=n(52730),a=n(81667),l=n(59431);const i=()=>{const[e,t]=(0,r.useState)([]),n=(0,o.useSelector)(l.ZP.selectors.getTenant),i=(0,o.useSelector)(l.ZP.selectors.getServicesPath),s=e=>{console.warn("Users error",e),t([])};return(0,r.useEffect)((()=>{(0,a.kz_)({tenant:n,servicesPath:i}).then((e=>{let{array:n}=e;return t(n)})).catch(s)}),[n,i]),e}}}]);
2
+ //# sourceMappingURL=7820.js.map
package/7820.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"7820.js","mappings":"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","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/icons/Filter.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/FilterButton/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/FilterButton/FilterButton.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/BasicTablePagination.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/viewState/basicTableViewState.js","webpack://@reltio/remotes/../components/src/components/BasicView/styles.js","webpack://@reltio/remotes/../components/src/components/BasicView/BasicView.tsx","webpack://@reltio/remotes/../components/src/components/ConfirmationDialog/styles.ts","webpack://@reltio/remotes/../components/src/components/ConfirmationDialog/ConfirmationDialog.tsx","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/EntityTypeBadge.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBand/styles.js","webpack://@reltio/remotes/../components/src/components/ProfileBand/ProfileBand.js","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/Spacer/Spacer.js","webpack://@reltio/remotes/../components/src/components/VerticalDivider/VerticalDivider.js","webpack://@reltio/remotes/../components/src/hooks/useActions.ts","webpack://@reltio/remotes/../components/src/hooks/useCollaboration.ts","webpack://@reltio/remotes/../components/src/hooks/useUsers.ts"],"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 React from 'react';\n\nconst SvgFilter: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={18} height={18} viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M18 2V0H0v2l7 8v8l4-2v-6z\" fill=\"currentColor\" fillRule=\"nonzero\" stroke=\"none\" strokeWidth={1} />\n </svg>\n );\n};\n\nexport default SvgFilter;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n 'filterIcon--enabled': {\n color: theme.palette.primary.main\n },\n closeIcon: {\n position: 'absolute',\n right: '3px',\n bottom: '3px',\n transform: 'scale(0.5)'\n },\n button: {\n padding: '11px'\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport i18n from 'ui-i18n';\nimport {IconButton as IconButton} from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport FilterIcon from '../../../../icons/Filter';\nimport {useStyles} from './styles';\n\nconst FilterButton = ({enabled, onClick}) => {\n const styles = useStyles();\n\n return (\n <Tooltip title={enabled ? i18n.text('Clear all filters') : i18n.text('Filter')}>\n <IconButton onClick={onClick} classes={{root: styles.button}}>\n {enabled ? (\n <>\n <FilterIcon className={styles['filterIcon--enabled']} />\n <CloseIcon color=\"primary\" className={styles.closeIcon} />\n </>\n ) : (\n <FilterIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n\nFilterButton.propTypes = {\n enabled: PropTypes.bool,\n onClick: PropTypes.func\n};\n\nexport default FilterButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n pagination: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n height: '56px',\n borderTop: '1px solid rgba(0,0,0,0.12)',\n boxShadow: 'none'\n },\n caption: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px'\n },\n selectRoot: {\n marginLeft: '5px',\n marginRight: '36px'\n },\n select: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px',\n textAlign: 'right'\n },\n actions: {\n marginLeft: '32px'\n }\n});\n","import PropTypes from 'prop-types';\nimport React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {TablePagination as TablePagination} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {getValue} from '../../../core/utils';\nimport {nthArg, pipe, pathOr, identity} from 'ramda';\nimport {useStyles} from './styles';\n\nconst BasicTablePagination = ({\n classes = {},\n count,\n rowsPerPageOptions,\n page,\n onChangePage,\n rowsPerPage,\n onChangeRowsPerPage,\n basicTableRef,\n labelRowsPerPage\n}) => {\n const labelDisplayedRows = ({from, to, count}) =>\n i18n.text('${fromRow}-${toRow} of ${countRows}', {\n fromRow: i18n.number(from, '0,0'),\n toRow: i18n.number(to, '0,0'),\n countRows: i18n.number(count, '0,0')\n });\n const styles = useStyles();\n const resetScrollbarPosition = useCallback(() => {\n pathOr(identity, ['current', 'resetScrollbarPosition'], basicTableRef)();\n }, [basicTableRef]);\n const handleChangePage = useCallback(\n (value) => {\n onChangePage(value);\n resetScrollbarPosition();\n },\n [onChangePage, resetScrollbarPosition]\n );\n const handleChangeRowsPerPage = useCallback(\n (value) => {\n onChangePage(0);\n onChangeRowsPerPage(value);\n resetScrollbarPosition();\n },\n [onChangePage, onChangeRowsPerPage, resetScrollbarPosition]\n );\n return (\n <TablePagination\n classes={{\n ...classes,\n root: classnames(styles.pagination, classes.root),\n select: classnames(styles.select, classes.select),\n caption: styles.caption,\n selectRoot: styles.selectRoot,\n actions: styles.actions\n }}\n component=\"div\"\n labelRowsPerPage={labelRowsPerPage || i18n.text('Rows per page:')}\n labelDisplayedRows={labelDisplayedRows}\n count={count}\n rowsPerPageOptions={rowsPerPageOptions}\n page={page}\n onChangePage={pipe(nthArg(1), handleChangePage)}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={pipe(getValue, handleChangeRowsPerPage)}\n />\n );\n};\n\nBasicTablePagination.propTypes = {\n classes: PropTypes.object,\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n page: PropTypes.number,\n onChangePage: PropTypes.func,\n rowsPerPage: PropTypes.number,\n onChangeRowsPerPage: PropTypes.func,\n basicTableRef: PropTypes.shape({current: PropTypes.object}),\n labelRowsPerPage: PropTypes.string\n};\n\nexport default React.memo(BasicTablePagination);\n","import {always, assoc, difference, dissoc, evolve, keys, path, when} from 'ramda';\nimport {createStandardAction, toggleSortOrder} from '../../../core';\n\nconst CHANGE_COLUMNS = 'CHANGE_COLUMNS';\nconst TOGGLE_FILTERS = 'TOGGLE_FILTERS';\nconst CHANGE_FILTER = 'CHANGE_FILTER';\nconst TOGGLE_SORT = 'TOGGLE_SORT';\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS_PER_PAGE = 'CHANGE_ROWS_PER_PAGE';\n\nexport const actions = {\n changeColumns: createStandardAction(CHANGE_COLUMNS),\n toggleFilters: createStandardAction(TOGGLE_FILTERS),\n changeFilter: createStandardAction(CHANGE_FILTER),\n toggleSort: createStandardAction(TOGGLE_SORT),\n changePage: createStandardAction(CHANGE_PAGE),\n changeRowsPerPage: createStandardAction(CHANGE_ROWS_PER_PAGE)\n};\n\nexport const changeVisibleColumns = (state, nextVisibleColumns) => {\n const removedColumns = difference(state.visibleColumns, nextVisibleColumns);\n const isRemovedColumn = (columnId) => removedColumns.includes(columnId);\n return evolve(\n {\n visibleColumns: always(nextVisibleColumns),\n sorting: when(\n (sorting = {}) => isRemovedColumn(sorting.field),\n () => {\n const [nextSortField] = nextVisibleColumns;\n return {field: nextSortField, order: 'asc'};\n }\n ),\n filters: (filters) =>\n keys(filters).reduce(\n (acc, columnId) => (isRemovedColumn(columnId) ? dissoc(columnId, acc) : acc),\n filters\n )\n },\n state\n );\n};\n\nexport const reducer = (state, action) => {\n switch (action.type) {\n case CHANGE_COLUMNS: {\n const columnIds = action.payload;\n return changeVisibleColumns(state, columnIds);\n }\n case TOGGLE_FILTERS: {\n const enableFilters = !state.filters;\n return {\n ...state,\n filters: enableFilters ? {} : null,\n page: enableFilters ? state.page : 0\n };\n }\n case CHANGE_FILTER: {\n const {columnId, filter} = action.payload;\n return evolve({filters: filter ? assoc(columnId, filter) : dissoc(columnId), page: always(0)}, state);\n }\n case TOGGLE_SORT: {\n const nextSortField = action.payload;\n const prevSortField = path(['sorting', 'field'], state);\n const prevSortOrder = path(['sorting', 'order'], state);\n return {\n ...state,\n sorting: {\n field: nextSortField,\n order: toggleSortOrder(nextSortField === prevSortField ? prevSortOrder : null)\n },\n page: 0\n };\n }\n case CHANGE_PAGE:\n return {...state, page: action.payload};\n case CHANGE_ROWS_PER_PAGE:\n return {...state, rowsPerPage: action.payload};\n default:\n return state;\n }\n};\n\nexport default {\n reducer,\n actions,\n changeVisibleColumns\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n 'basic-view__paper': {\n display: 'flex',\n flexDirection: 'column',\n ...theme.basicView\n }\n}));\n","import Paper, {PaperProps} from '@material-ui/core/Paper';\nimport PropTypes from 'prop-types';\nimport React, {forwardRef, Ref} from 'react';\nimport {useStyles} from './styles';\n\nconst BasicView = forwardRef<Ref<typeof Paper>, PaperProps>(({children, className, ...otherProps}, ref) => {\n const styles = useStyles();\n return (\n <Paper ref={ref} className={className} classes={{root: styles['basic-view__paper']}} {...otherProps}>\n {children}\n </Paper>\n );\n});\n\nBasicView.displayName = 'BasicView';\n\nBasicView.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string\n};\n\nexport default BasicView;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n paper: {\n minHeight: '180px'\n },\n title: {\n padding: '16px 16px 10px 16px',\n fontSize: '20px',\n fontWeight: 500,\n letterSpacing: '0.25px',\n lineHeight: '24px'\n },\n content: {\n padding: '0 16px'\n },\n contentText: {\n marginBottom: 0,\n fontSize: '16px',\n letterSpacing: '0.15px',\n lineHeight: '24px'\n },\n actionButtons: {\n display: 'flex',\n paddingTop: '4px',\n fontSize: '14px',\n fontWeight: 500,\n letterSpacing: 0,\n lineHeight: '16px',\n '& > div': {\n marginLeft: 'auto'\n }\n },\n discardButton: {\n marginRight: '8px'\n }\n});\n\nexport {useStyles};\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {Button as Button} from '@material-ui/core';\nimport {Dialog as Dialog} from '@material-ui/core';\nimport {DialogActions as DialogActions} from '@material-ui/core';\nimport {DialogContent as DialogContent} from '@material-ui/core';\nimport {DialogContentText as DialogContentText} from '@material-ui/core';\nimport {DialogTitle as DialogTitle} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\nexport type Props = {\n open: boolean;\n title: React.ReactNode;\n content: React.ReactNode;\n cancelCaption?: string;\n discardCaption?: string;\n saveCaption?: string;\n disabledSave?: boolean;\n onCancel?: () => void;\n onDiscard?: () => void;\n onSave: () => void;\n};\n\nconst ConfirmationDialog = ({\n open,\n title,\n content,\n onCancel,\n cancelCaption = i18n.text('Cancel'),\n onDiscard,\n discardCaption = '',\n onSave,\n saveCaption = i18n.text('Save'),\n disabledSave = false\n}: Props) => {\n const styles = useStyles();\n\n return (\n <Dialog open={open} onClose={onCancel} classes={{paperScrollPaper: styles.paper}}>\n <DialogTitle classes={{root: styles.title}}>{title}</DialogTitle>\n <DialogContent classes={{root: styles.content}}>\n <DialogContentText classes={{root: styles.contentText}}>{content}</DialogContentText>\n </DialogContent>\n <DialogActions className={styles.actionButtons} disableSpacing>\n {onCancel && <Button onClick={onCancel}>{cancelCaption}</Button>}\n <div>\n {onDiscard && (\n <Button onClick={onDiscard} classes={{root: styles.discardButton}}>\n {discardCaption}\n </Button>\n )}\n <Button onClick={onSave} color=\"primary\" disabled={disabledSave} autoFocus>\n {saveCaption}\n </Button>\n </div>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default ConfirmationDialog;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n 'entityType-overflow': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n\n 'entityType-small': {\n padding: '1px 4px',\n fontSize: '10px',\n lineHeight: 'normal',\n marginRight: '12px',\n borderRadius: '2px'\n },\n 'entityType-medium': {\n padding: '2px 8px 3px',\n borderRadius: '2px',\n fontSize: '13px',\n fontWeight: 500,\n lineHeight: '15px',\n marginRight: '16px'\n }\n});\n\nexport default useStyles;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport classnames from 'classnames';\nimport {Typography as Typography} from '@material-ui/core';\n\nimport {getEntityType, getEntityTypeLabel, getPropWithInheritance, theme, utils, Entity} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport useStyles from './styles';\n\ntype Props = {\n entity: Entity;\n className?: string;\n size?: 'small' | 'medium';\n};\n\nconst EntityTypeBadge = ({entity, className, size = 'small'}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const entityTypeUri = entity.type;\n const entityType = getEntityType(metadata, entityTypeUri) || {};\n const entityTypeColor = getPropWithInheritance(metadata, entityType, 'typeColor') || theme.palette.primary.main;\n const entityTypeLabel = getEntityTypeLabel(metadata, entity);\n\n return (\n <ExpandedValueTooltip value={entityTypeLabel} placement=\"top\">\n <Typography\n style={{\n backgroundColor: entityTypeColor,\n color: utils.Colors.getColor(entityTypeColor) ? '#FFFFFF' : '#212121'\n }}\n className={classnames(styles[`entityType-${size}`], styles['entityType-overflow'], className)}\n component=\"div\"\n >\n {entityTypeLabel}\n </Typography>\n </ExpandedValueTooltip>\n );\n};\n\nexport default EntityTypeBadge;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\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, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\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} 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\nconst ProfileBand = ({className, entity, children, classes, showEntityId = true}) => {\n const styles = useStyles({classes});\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\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\nProfileBand.propTypes = {\n className: PropTypes.string,\n entity: PropTypes.object,\n children: PropTypes.node,\n classes: PropTypes.object,\n showEntityId: PropTypes.bool\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 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 total?: number;\n onPrev?: () => void;\n onNext?: () => void;\n onSearchResultsClick?: () => void;\n isPrevDisabled?: boolean;\n isNextDisabled?: boolean;\n};\n\nconst ProfileBandNavigationWidget = ({\n total = 0,\n onPrev,\n onNext,\n onSearchResultsClick,\n isPrevDisabled,\n isNextDisabled\n}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.container}>\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\nconst ProfileBandNavigation = () => {\n const {total, onPrev, onNext, onSearchResultsClick, isPrevDisabled, isNextDisabled} = useSearchNavigation();\n const isVisible = useSearchNavigationVisibility();\n return isVisible ? (\n <ProfileBandNavigationWidget\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 React from 'react';\n\nconst Spacer = () => <div style={{flex: 1}} />;\n\nexport default Spacer;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst VerticalDivider = ({height, margin}) => (\n <div\n style={{\n width: '1px',\n height: `${height}px`,\n borderLeft: '1px solid rgba(0,0,0,0.38)',\n margin: `0 ${margin}px`,\n flexShrink: '0'\n }}\n />\n);\n\nVerticalDivider.propTypes = {\n height: PropTypes.number,\n margin: PropTypes.number\n};\n\nexport default VerticalDivider;\n","import {useMemo} from 'react';\nimport {pipe} from 'ramda';\n\ntype UseActions = ({\n actions,\n dispatch\n}: {\n actions: {\n [key: string]: <T>(payload: T) => {type: string; payload: T};\n };\n dispatch: <T>({type, payload}: {type: string; payload: T}) => void;\n}) => {\n [key in keyof typeof actions]: <T>(payload: T) => void;\n};\n\nexport const useActions: UseActions = ({actions, dispatch}) =>\n useMemo(\n () =>\n Object.entries(actions).reduce((acc, [actionName, actionCreator]) => {\n return {...acc, [actionName]: pipe(actionCreator, dispatch)};\n }, {}),\n [dispatch, actions]\n );\n","import {useCallback, useEffect, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {andThen, fromPairs, map, otherwise, pipe, props, uniqBy, prop, propEq, when, always} 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} 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\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 return {\n clearCurrentComment,\n comments,\n commentsMap,\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 {useEffect, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {getAllUsersForTenant} from '@reltio/mdm-sdk';\nimport mdm from '@reltio/mdm-module';\n\nexport const useUsers = () => {\n const [users, setUsers] = useState([]);\n\n const tenant = useSelector(mdm.selectors.getTenant);\n const servicesPath = useSelector(mdm.selectors.getServicesPath);\n\n const onError = (e) => {\n console.warn('Users error', e);\n setUsers([]);\n };\n\n useEffect(() => {\n getAllUsersForTenant({tenant, servicesPath})\n .then(({array}) => setUsers(array))\n .catch(onError);\n }, [tenant, servicesPath]);\n\n return users;\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","color","palette","primary","main","closeIcon","position","right","bottom","transform","button","padding","FilterButton","enabled","Tooltip","IconButton","classes","Filter","Close","pagination","display","alignItems","justifyContent","borderTop","boxShadow","caption","fontSize","lineHeight","selectRoot","marginLeft","marginRight","select","textAlign","actions","BasicTablePagination","count","rowsPerPageOptions","page","onChangePage","rowsPerPage","onChangeRowsPerPage","basicTableRef","labelRowsPerPage","resetScrollbarPosition","pathOr","identity","handleChangePage","value","handleChangeRowsPerPage","TablePagination","component","labelDisplayedRows","from","to","fromRow","toRow","countRows","nthArg","getValue","current","React","CHANGE_COLUMNS","TOGGLE_FILTERS","CHANGE_FILTER","TOGGLE_SORT","CHANGE_PAGE","CHANGE_ROWS_PER_PAGE","changeColumns","createStandardAction","toggleFilters","changeFilter","toggleSort","changePage","changeRowsPerPage","changeVisibleColumns","state","nextVisibleColumns","removedColumns","visibleColumns","isRemovedColumn","columnId","evolve","always","sorting","field","nextSortField","order","filters","keys","dissoc","reducer","action","type","columnIds","payload","enableFilters","prevSortField","path","prevSortOrder","toggleSortOrder","flexDirection","basicView","BasicView","forwardRef","ref","otherProps","Paper","displayName","paper","minHeight","fontWeight","letterSpacing","content","contentText","marginBottom","actionButtons","paddingTop","discardButton","onCancel","cancelCaption","onDiscard","discardCaption","onSave","saveCaption","disabledSave","Dialog","paperScrollPaper","DialogTitle","DialogContent","DialogContentText","DialogActions","disableSpacing","Button","disabled","autoFocus","textOverflow","overflow","whiteSpace","borderRadius","entity","metadata","useSelector","mdmModule","entityTypeUri","entityType","getEntityType","entityTypeColor","getPropWithInheritance","entityTypeLabel","getEntityTypeLabel","ExpandedValueTooltip","placement","Typography","profileBandWrapper","flexShrink","profileBand","inactive","background","inactiveBackground","profileIcon","imageProfileIcon","profileInfo","flex","badge","wordBreak","marginTop","secondaryLabel","businessCard","secondary","specialInfo","flexWrap","entityId","cursor","textDecoration","ProfileBand","showEntityId","handleCopyEntityIdToClipboard","navigator","clipboard","writeText","getEntityId","isNil","getLabel","businessCardText","getBusinessCardAttributesText","isActive","isActiveObject","entityUri","uri","EntityAvatar","avatarClassName","imageClassName","variant","EntityTypeBadge","isTempUri","container","link","LinkWithTooltip","withTooltip","Link","ProfileBandNavigationWidget","total","onPrev","onNext","onSearchResultsClick","isPrevDisabled","isNextDisabled","underline","formatNumberAsMetric","KeyboardArrowLeft","showForDisabled","KeyboardArrowRight","MainSearchProvider","constructor","query","sortField","sortOrder","tenant","searchTenant","apiPath","dtssPath","globalSearchRequestOptions","isDT","this","getQueryFilter","rawFilter","getEntities","options","requestFilters","requestOptions","sort","scoreEnabled","getFilteredEntitiesFromDataTenant","customerTenant","dataTenant","getFilteredEntities","checkEntity","fieldName","values","offset","then","entities","requestEntities","requestTotal","getTotalFromDataTenant","getTotals","json","GraphSearchProvider","searchBody","allFilters","getGraphSearchEntities","buildFilterQueryString","getGraphSearchCount","getNewUris","cache","prop","reject","ProfileBandNavigation","safeCheckEntityPromise","useSafePromise","safeRequestTotalPromise","safeRequestEntitiesPromise","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","VerticalDivider","margin","borderLeft","useActions","Object","entries","actionName","actionCreator","filterReplies","replyId","replies","reply","getUpdatedReplies","comment","changedReplyIndex","findIndex","newReplies","defaultObjectIds","catchErrorInRequest","e","console","error","useCollaboration","objectIds","objectTypes","mdm","collaborationPath","isCollaborationEnabled","pageToken","setPageToken","comments","setComments","commentsMap","setCommentsMap","currentComment","setCurrentComment","sending","setSending","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","updateCommentInState","deleteComment","deleteCommentRequest","c","deleteCommentFromState","updateReplyInState","isDeleteReply","newStatus","prevCurrentComment","deleteReply","deleteReplyRequest","editReplyInState","editReply","updateReplyRequest","createReply","createReplyRequest","resolveThread","reOpenThread","clearCurrentComment","useUsers","users","setUsers","servicesPath","getAllUsersForTenant","array"],"sourceRoot":""}