@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/737.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_reltio_remotes=self.webpackChunk_reltio_remotes||[]).push([[737],{8598:(e,t,n)=>{n.d(t,{Z:()=>r});var a=n(95038),o=n.n(a);const r=function(){function e(e){var t=void 0===e?{}:e,n=t.locale,a=t.instance,r=t.moment;this.yearFormat="YYYY",this.yearMonthFormat="MMMM YYYY",this.dateTime12hFormat="MMMM Do hh:mm a",this.dateTime24hFormat="MMMM Do HH:mm",this.time12hFormat="hh:mm A",this.time24hFormat="HH:mm",this.dateFormat="MMMM Do",this.moment=a||r||o(),this.locale=n}return e.prototype.parse=function(e,t){return""===e?null:this.moment(e,t,!0)},e.prototype.date=function(e){if(null===e)return null;var t=this.moment(e);return t.locale(this.locale),t},e.prototype.isValid=function(e){return this.moment(e).isValid()},e.prototype.isNull=function(e){return null===e},e.prototype.getDiff=function(e,t){return e.diff(t)},e.prototype.isAfter=function(e,t){return e.isAfter(t)},e.prototype.isBefore=function(e,t){return e.isBefore(t)},e.prototype.isAfterDay=function(e,t){return e.isAfter(t,"day")},e.prototype.isBeforeDay=function(e,t){return e.isBefore(t,"day")},e.prototype.isBeforeYear=function(e,t){return e.isBefore(t,"year")},e.prototype.isAfterYear=function(e,t){return e.isAfter(t,"year")},e.prototype.startOfDay=function(e){return e.clone().startOf("day")},e.prototype.endOfDay=function(e){return e.clone().endOf("day")},e.prototype.format=function(e,t){return e.locale(this.locale),e.format(t)},e.prototype.formatNumber=function(e){return e},e.prototype.getHours=function(e){return e.get("hours")},e.prototype.addDays=function(e,t){return t<0?e.clone().subtract(Math.abs(t),"days"):e.clone().add(t,"days")},e.prototype.setHours=function(e,t){return e.clone().hours(t)},e.prototype.getMinutes=function(e){return e.get("minutes")},e.prototype.setMinutes=function(e,t){return e.clone().minutes(t)},e.prototype.getSeconds=function(e){return e.get("seconds")},e.prototype.setSeconds=function(e,t){return e.clone().seconds(t)},e.prototype.getMonth=function(e){return e.get("month")},e.prototype.isSameDay=function(e,t){return e.isSame(t,"day")},e.prototype.isSameMonth=function(e,t){return e.isSame(t,"month")},e.prototype.isSameYear=function(e,t){return e.isSame(t,"year")},e.prototype.isSameHour=function(e,t){return e.isSame(t,"hour")},e.prototype.setMonth=function(e,t){return e.clone().month(t)},e.prototype.getMeridiemText=function(e){return"am"===e?"AM":"PM"},e.prototype.startOfMonth=function(e){return e.clone().startOf("month")},e.prototype.endOfMonth=function(e){return e.clone().endOf("month")},e.prototype.getNextMonth=function(e){return e.clone().add(1,"month")},e.prototype.getPreviousMonth=function(e){return e.clone().subtract(1,"month")},e.prototype.getMonthArray=function(e){for(var t=[e.clone().startOf("year")];t.length<12;){var n=t[t.length-1];t.push(this.getNextMonth(n))}return t},e.prototype.getYear=function(e){return e.get("year")},e.prototype.setYear=function(e,t){return e.clone().set("year",t)},e.prototype.mergeDateAndTime=function(e,t){return this.setMinutes(this.setHours(e,this.getHours(t)),this.getMinutes(t))},e.prototype.getWeekdays=function(){return this.moment.weekdaysShort(!0)},e.prototype.isEqual=function(e,t){return null===e&&null===t||this.moment(e).isSame(t)},e.prototype.getWeekArray=function(e){for(var t=e.clone().startOf("month").startOf("week"),n=e.clone().endOf("month").endOf("week"),a=0,o=t,r=[];o.isBefore(n);){var l=Math.floor(a/7);r[l]=r[l]||[],r[l].push(o),o=o.clone().add(1,"day"),a+=1}return r},e.prototype.getYearRange=function(e,t){for(var n=this.moment(e).startOf("year"),a=this.moment(t).endOf("year"),o=[],r=n;r.isBefore(a);)o.push(r),r=r.clone().add(1,"year");return o},e.prototype.getCalendarHeaderText=function(e){return this.format(e,this.yearMonthFormat)},e.prototype.getYearText=function(e){return this.format(e,"YYYY")},e.prototype.getDatePickerHeaderText=function(e){return this.format(e,"ddd, MMM D")},e.prototype.getDateTimePickerHeaderText=function(e){return this.format(e,"MMM D")},e.prototype.getMonthText=function(e){return this.format(e,"MMMM")},e.prototype.getDayText=function(e){return this.format(e,"D")},e.prototype.getHourText=function(e,t){return this.format(e,t?"hh":"HH")},e.prototype.getMinuteText=function(e){return this.format(e,"mm")},e.prototype.getSecondText=function(e){return this.format(e,"ss")},e}()},27604:(e,t,n)=>{var a=n(14859);t.Z=void 0;var o=a(n(24328)),r=(0,a(n(50175)).default)(o.default.createElement("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"}),"Edit");t.Z=r},99144:(e,t,n)=>{var a=n(14859);t.Z=void 0;var o=a(n(24328)),r=(0,a(n(50175)).default)(o.default.createElement("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"}),"Info");t.Z=r},67766:(e,t,n)=>{var a=n(14859);t.Z=void 0;var o=a(n(24328)),r=(0,a(n(50175)).default)(o.default.createElement("path",{d:"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"}),"KeyboardArrowLeft");t.Z=r},42767:(e,t,n)=>{var a=n(14859);t.Z=void 0;var o=a(n(24328)),r=(0,a(n(50175)).default)(o.default.createElement("path",{d:"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"}),"KeyboardArrowRight");t.Z=r},72753:(e,t,n)=>{var a=n(14859);t.Z=void 0;var o=a(n(24328)),r=(0,a(n(50175)).default)(o.default.createElement("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"Visibility");t.Z=r},37152:(e,t,n)=>{n.d(t,{a:()=>m});var a=n(24328),o=n(52730),r=n(17440),l=n(59431),i=n(81667),s=n(67218),c=n(30634);function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){p(e,t,n[t])}))}return e}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const d=(0,r.when)(r.identity,(0,r.pipe)(i.VGB,r.length,(0,r.times)((e=>e+1)))),m=e=>{let{sorting:t,filter:n,page:p,rowsPerPage:m,config:f,entity:y,relationActivityFilter:h,mode:b}=e;const[g,v]=(0,a.useState)(!1),E=(0,o.useDispatch)(),x=(0,o.useSelector)(l.ZP.selectors.getTenant),C=(0,o.useSelector)(l.ZP.selectors.getDtssPath),{activityFilter:S,globalFilter:w}=(0,o.useSelector)(l.ZP.selectors.getGlobalSearchRequestOptions)||{},T=(0,s._)(),O=f.suggested,D=(0,a.useCallback)((()=>{if(null!=y&&y.uri){const e=u({},f.content,{sortBy:null==t?void 0:t.field,order:null==t?void 0:t.order,returnDates:!0,returnObjects:!0,activeness:{relation:h||i.Ng6.ALL,entity:S},max:m,offset:p*m,filter:(0,i.vyX)(w,n)||void 0,suggested:d(O)}),a=[e].concat((0,r.ifElse)(r.identity,(0,r.pipe)(i.VGB,(t=>t.map(((t,n)=>u({},t,{id:e.suggested[n]}))))),(0,r.always)([]))(O)),o=(0,r.cond)([[(0,r.pipe)((0,r.prop)("uri"),i.ZiX),()=>Promise.resolve([{total:0}])],[i.biM,e=>(0,i.n_1)({entityUri:e.uri,configs:a,customerTenant:x,dataTenant:e.dataTenant,dtssPath:C})],[r.T,e=>(0,i.N6e)(e.uri,a)]]);v(!0),T(o(y)).then((e=>{let[{connections:t,total:n}]=e;E(l.N5.relations.actions.relationsLoaded({id:f.id,connections:t,total:n}))})).finally((()=>{v(!1)}))}}),[S,f,E,C,null==y?void 0:y.uri,null==y?void 0:y.dataTenant,n,w,p,h,m,T,t,x]),P=(0,a.useRef)(!1);P.current=!1,(0,a.useEffect)((()=>{P.current=!0,D()}),[D]);const k=(0,c.D)(b);return(0,a.useEffect)((()=>{b!==i.ARY.Viewing||P.current||k===b||(P.current=!0,D())}),[D,b,k]),{isLoading:g,reload:D}}},55451:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Vt});var a=n(24328),o=n.n(a),r=n(52730),l=n(8598),i=n(36138),s=n(44443),c=n(22664),u=n(39450),p=n(585),d=n(17440),m=n(59431),f=n(81667),y=n(17554),h=n(20562),b=n(37152),g=n(7718),v=n(49759),E=n(3515),x=n(31274),C=n(57304),S=n(93873),w=n(99136),T=n(58662);function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){D(e,t,n[t])}))}return e}function D(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const P={relationsTable:{},attributesTable:{}};var k=n(26180),R=n(31276),M=n(86361),N=n(87918),Z=n.n(N);const A="relation.type",F="relation.attributes",j=[{id:"entity.label",get label(){return Z().text("Profile")},dataTypeDefinition:{type:f.oS0.TYPE_STRING},hideable:!1,filterable:!1,initialWidth:280,autoResize:!1},{id:A,get label(){return Z().text("Type")}},{id:"relation.label",get label(){return Z().text("Directional Label")},filterable:!1,dataTypeDefinition:{type:f.oS0.TYPE_STRING}},{id:"relation.activeness.startDate",get label(){return Z().text("Start Date")},dataTypeDefinition:{type:f.oS0.TYPE_ACTIVENESS_DATE}},{id:"relation.activeness.endDate",get label(){return Z().text("End Date")},dataTypeDefinition:{type:f.oS0.TYPE_ACTIVENESS_DATE}},{id:F,get label(){return Z().text("Attributes")},sortable:!1,filterable:!1,maxAttrsToShow:7}],L=(0,d.pluck)("id",j),U=[A,F],I=[20,50,100],z=(0,d.pipe)(f.Tde,(0,d.concat)("relation.")),_=(0,d.pipe)((0,d.map)((e=>({id:z(e.uri),label:e.label,dataTypeDefinition:(0,f.PFL)(e)}))),(0,d.uniqBy)((0,d.prop)("id")));function B(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){W(e,t,n[t])}))}return e}function W(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const V="CHANGE_RELATION_TYPE",Y="APPLY_SAVED_STATE",H="SAVE_CURRENT_STATE",q=B({},k.ZP.actions,{changeRelationType:(0,R.zD)(V),applySavedState:(0,R.zD)(Y),saveCurrentState:(0,R.zD)(H)}),G=(0,d.assoc)("page",0),X=e=>(0,d.pipe)((0,d.prop)("visibleColumns"),(0,d.ifElse)((0,d.always)(e.currentRelationType),(0,d.without)(U),(0,d.concat)(U)),(0,d.intersection)(L))(e),K=e=>(0,d.path)(["visibleColumnsForRelationTypes",`${e.currentRelationType}`],e),$=e=>{const t=(0,d.either)(K,X)(e);return k.ZP.changeVisibleColumns(e,t)},J=e=>{const{currentRelationType:t,visibleColumns:n}=e;return(0,d.evolve)({visibleColumnsForRelationTypes:(0,d.assoc)(`${t}`,n)},e)},Q=(0,d.pipe)(J,(0,d.pick)(["currentRelationType","visibleColumnsForRelationTypes","filters","sorting"]));var ee=n(99341),te=n(94079),ne=n(92778),ae=n(30553),oe=n(51229),re=n(1876),le=n(60894),ie=n(79026),se=n(79692);const ce=(0,se.Z)({select:{fontSize:"13px",color:"rgba(0,0,0,.6)",paddingLeft:"15px","&&":{paddingRight:"35px"}},selectMenu:{"& li":{fontSize:"13px",height:"32px"}},textField:{maxWidth:"100%"}}),ue=e=>{let{value:t,onChange:n,relationTypes:r,className:l}=e;const i=ce(),s=(0,a.useMemo)((()=>(0,d.pipe)((0,d.map)((e=>{let{label:t,uri:n}=e;return{label:t,value:n}})),(0,d.concat)([{value:"",label:Z().text("All types")}]))(r)),[r]);return o().createElement("div",{className:l},o().createElement(ie.Z,{displayEmpty:!0,disableUnderline:!0,classes:{select:i.select},TextFieldProps:{classes:{root:i.textField}},MenuProps:{classes:{list:i.selectMenu}},value:t||"",entries:s,onChange:e=>n(e||null)}))},pe=(0,se.Z)((e=>({header:{height:"56px",boxSizing:"border-box",paddingRight:"10px"},title:{fontSize:"16px"},total:{fontSize:"14px",color:e.palette.text.secondary,flexShrink:0,marginRight:"5px"},relationTypeSelector:{margin:"0px 10px 0 30px",overflow:"hidden"}}))),de=(0,a.memo)((e=>{let{total:t,filteringEnabled:n,onToggleFilters:a,columnsData:r,selectedColumns:l,currentRelationType:i,onRelationTypeChange:s,relationTypes:c,onChangeColumns:u}=e;const p=pe();return o().createElement(ne.Z,{title:Z().text("Relationships"),classes:{root:p.header,title:p.title}},c.length>0&&o().createElement(ue,{className:p.relationTypeSelector,value:i,onChange:s,relationTypes:c}),o().createElement(ae.Z,{height:28,margin:20}),o().createElement(te.Typography,{variant:"caption",className:p.total},1===t?Z().text("${count} record",{count:t}):Z().text("${count} records",{count:t})),o().createElement(oe.Z,null),o().createElement(re.Z,{enabled:n,onClick:a}),o().createElement(ae.Z,{height:28,margin:8}),o().createElement(le.Z,{columnsData:r,selectedColumns:l,onChangeColumns:u}))}));var me=n(74402),fe=n(97946),ye=n(85709),he=n(25461),be=n(92332),ge=n(67353);const ve=(0,se.Z)((e=>({headCell:{display:"flex",alignItems:"center",height:"100%",width:"100%",fontSize:"12px",color:e.palette.text.secondary,background:"linear-gradient(0deg, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0.06)), #FFFFFF"},rowCell:{fontSize:"13px",overflow:"hidden",overflowWrap:"break-word"},inactiveRowCell:{opacity:.6},defaultWrapper:{padding:"15px 25px 0 25px","&:last-child":{paddingBottom:"15px"}},entityCell:{display:"flex",alignItems:"flex-start",padding:"15px"},entityAvatar:{transform:"scale(0.5)",margin:"-10px 0 -10px -10px"},inactiveEntityAvatar:{overflow:"initial","&:after":{content:'""',position:"absolute",backgroundColor:"rgb(209, 206, 206)",border:"1px solid rgba(0, 0, 0, 1)",borderRadius:"2px",width:"12px",right:0,bottom:0,height:"12px"},"& > img":{borderRadius:"50%",overflow:"hidden"}},entityLabel:{color:e.palette.primary.main,textDecoration:"none",fontWeight:500},attributesWrapper:{padding:"15px 25px 10px 25px",color:"rgba(0,0,0,0.87)"},commentsContainer:{marginLeft:"auto"}}))),Ee=(0,ge.Z)((e=>{const t=ve();return o().createElement("div",{className:t.headCell},o().createElement(be.default,e))}));var xe=n(71153),Ce=n.n(xe),Se=n(19603),we=n(31254),Te=n(31039),Oe=n(94646);const De=e=>{let{value:{entity:t,entityType:n,relation:a},isInactiveRelation:l}=e;const i=ve(),s=(0,r.useSelector)(m.ZP.selectors.getEntityUri);return o().createElement("div",{className:Ce()(i.entityCell,Se.U)},o().createElement(we.Z,{className:Ce()(i.entityAvatar,{[i.inactiveEntityAvatar]:l}),entityType:n}),o().createElement(Te.Z,{value:(0,f.wwR)({uri:t.entityUri,dataTenant:t.dataTenant}),className:i.entityLabel},(0,f.idV)(t.entityLabel)),o().createElement("div",{className:i.commentsContainer,onClick:e=>e.stopPropagation()},o().createElement(Oe.Z,{uri:a.relationUri,relatedObjectUris:(0,f.wp9)(f.q7e.RELATION,{entityUri:s,connection:{relation:a,entity:t}}),objectType:f.q7e.RELATION,allowOnlyOneComment:!0})))};var Pe=n(80931);const ke=e=>{let{columnData:t,value:{attributes:n,attributeTypes:a}}=e;const r=ve();return o().createElement("div",{className:r.attributesWrapper,onClick:e=>e.stopPropagation()},o().createElement(Pe.Z,{max:t.maxAttrsToShow,entity:{attributes:n},attrTypes:a,drawLines:!1}))};var Re=n(72768);const Me=e=>{let{value:t,columnData:{dataTypeDefinition:n}}=e;const a=ve();return o().createElement("div",{className:a.defaultWrapper},o().createElement(Re.Z,{value:t,dataTypeDefinition:n}))};function Ne(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Ze=(0,d.pipe)((0,d.split)("."),(0,d.slice)(2,1/0)),Ae=e=>{if(e.startsWith("relation.attributes")){const t=Ze(e);return t.length>1?t.slice(0,-1):null}return null},Fe=e=>{switch(e){case"entity.label":return De;case"relation.attributes":return ke;default:return Me}},je=(0,d.map)((e=>function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){Ne(e,t,n[t])}))}return e}({sortable:!0,resizable:!0},e,{headCellRenderer:Ee,nestedPath:Ae(e.id),rowCellValueRenderer:Fe(e.id)}))),Le=(0,d.cond)([[(0,d.pathEq)(["columnData","id"],"relation.attributes"),e=>{let{columnData:t,cell:n}=e;const a=(0,d.pipe)((0,d.path)(["values",0,"attributes"]),d.values,d.length)(n);return a>t.maxAttrsToShow?26*t.maxAttrsToShow+49:26*a+25}],[d.T,he.Z]]);function Ue(){return Ue=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Ue.apply(this,arguments)}const Ie=e=>{let{cell:t,CellValueRenderer:n}=e,a=function(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["cell","CellValueRenderer"]);const r=ve();return o().createElement("div",{className:Ce()(r.rowCell,{[r.inactiveRowCell]:a.isInactiveRelation})},t.values.map(((e,t)=>o().createElement(n,Ue({key:t,value:e},a)))))};var ze=n(22983),_e=n(43054),Be=n(55847),We=n(22385),Ve=n(81137),Ye=n(83348);const He=(0,se.Z)((e=>({menuItem:{minHeight:"32px",color:e.palette.text.secondary},menuText:{color:e.palette.text.primary,fontSize:"13px",lineHeight:"15px",letterSpacing:0,marginLeft:"16px"},buttons:{display:"flex",alignItems:"center",paddingRight:"5px"}}))),qe=(0,Ye.Z)(te.MenuItem),Ge=(0,a.forwardRef)(((e,t)=>{let{item:n,onMenuClose:a=R.ZT}=e;const r=He(),{icon:l,disabled:i,text:s,tooltip:c,onClick:u}=n;return o().createElement(qe,{tooltipTitle:c,showForDisabled:!0,classes:{root:r.menuItem},onClick:e=>{a(),u(e)},disabled:i,ref:t},l,o().createElement(te.Typography,{classes:{root:r.menuText}},s))}));Ge.displayName="MenuItemRenderer";const Xe=Ge,Ke=e=>{let{disableDelete:t,connection:{entity:n,relation:l},onMenuOpen:i=R.ZT,onMenuClose:s=R.ZT,onDelete:c}=e;const u=He(),p=(0,r.useSelector)(m.ZP.selectors.getMetadata),y=(0,d.pipe)((0,d.prop)("relationType"),(0,f.V3K)(p),(0,f.uGe)(f.BDP.DELETE))(l),h=!t&&y,[b,g]=(0,a.useState)(!1),v=()=>g(!1),E=[{disabled:!h,text:Z().text("Delete"),icon:o().createElement(ze.Z,null),tooltip:h?null:Z().text("You don't have permissions to delete"),onClick:()=>g(!0)}],x=(0,a.useCallback)((()=>{b||s()}),[b,s]);return o().createElement("div",{className:u.buttons},o().createElement(Be.Z,{MenuItemRenderer:Xe,menuId:"relationships-table-actions",buttonComponent:We.Z,buttonProps:{icon:_e.Z,size:"S"},menuItems:E,onMenuOpen:i,onMenuClose:x}),o().createElement(Ve.Z,{open:b,title:Z().text('Do you want to delete relationship "${label}"?',{label:(C=(0,f.idV)(n.entityLabel),C.length>17?`${C.substring(0,17)}...`:C)}),content:Z().text("This relationship will be removed and all the values in the relationship will be permanently deleted. Are you sure you want to delete this relationship?"),onSave:(0,d.pipe)(v,s,c),onDiscard:(0,d.pipe)(v,s),saveCaption:Z().text("Delete"),discardCaption:Z().text("Cancel")}));var C},$e=(0,se.Z)({tableContainer:{flex:1,overflow:"hidden",display:"flex",zIndex:0},hoveredRowRightContentWrapper:{width:"100%",pointerEvents:"none!important"},menuButtonContainer:{position:"absolute",top:"calc(50% - 12px)",right:0,pointerEvents:"all"},tooltipAnchor:{width:"100%",height:"1px"}});function Je(){return Je=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Je.apply(this,arguments)}const Qe=(0,a.memo)((e=>{let{metadata:t,connections:n,columnsData:r,sorting:l,onSort:i,filters:s,onFilter:c,onRowClick:u,tableRef:p,onDelete:m,readOnly:y}=e;const h=$e(),b=(0,a.useMemo)((()=>((e,t,n)=>(n||[]).map((n=>(0,d.pipe)((0,d.reduce)(((t,a)=>{let{id:o}=a;return(0,d.assoc)(o,((e,t,n)=>{let{entity:a,relation:o}=t;switch(n){case"entity.label":return{entity:a,entityType:(0,f.nt9)(e,a.entityType),relation:o};case"relation.type":return o.relationType;case"relation.label":return o.relationLabel;case"relation.activeness.startDate":return o.startDate;case"relation.activeness.endDate":return o.endDate;case"relation.attributes":return{attributes:o.object.attributes,attributeTypes:(0,f.V3K)(e,o.relationType).attributes};default:return((e,t)=>(0,d.pipe)((0,d.path)(["object","attributes"]),(0,f.tT_)(e))(t))(Ze(n),o)}})(e,n,o),t)}),{}),(0,d.assoc)("rawValue",n))(t))))(t,r,n)),[t,n,r]),g=(0,a.useMemo)((()=>je(r)),[r]),{getDynamicRowCellHeight:v,changeRowCellHeight:E}=(0,me.Z)(),x=(0,a.useCallback)((0,d.either)(v,Le),[v,Le]),[C,S]=(0,a.useState)(null),w=(0,a.useCallback)((e=>{const t=!(0,f.Fn9)(e.rowValue.rawValue.relation);return o().createElement(fe.Z,Je({onChangeHeight:E},e),o().createElement(Ie,Je({},e,{isInactiveRelation:t})))}),[E]),[T,O]=(0,a.useState)(!1),D=(0,a.useCallback)((()=>O(!0)),[]),P=(0,a.useCallback)((()=>{S(null),O(!1)}),[]),k=(0,a.useCallback)((e=>S((t=>T?t:e))),[T]),R=(0,a.useMemo)((()=>{const e=null!=C?b[C].rawValue:null,t=!(0,f.Fn9)(null==e?void 0:e.relation);return e&&o().createElement(o().Fragment,null,o().createElement(te.Tooltip,{key:e.relation.relationUri,open:t,title:Z().text("Inactive")},o().createElement("div",{className:h.tooltipAnchor})),o().createElement("div",{className:h.menuButtonContainer},o().createElement(Ke,{disableDelete:y,connection:e,onMenuOpen:D,onMenuClose:P,onDelete:()=>m(e.relation.relationUri)})))}),[m,b,C]);return o().createElement("div",{className:h.tableContainer},o().createElement(ye.Z,{fixFirstColumn:!0,columnsData:g,rowsData:b,sorting:l,onSort:i,filters:s,onFilter:c,defaultColumnWidth:250,defaultColumnMinWidth:200,headRowHeight:48,getRowCellHeight:x,renderRowCell:w,onRowClick:u,ref:p,hoverStateEnabled:!0,hoverRowIndex:C,onRowHover:k,hoveredRowRightContent:R,classes:{hoveredRowRightContentWrapper:h.hoveredRowRightContentWrapper}}))}));var et=n(67218),tt=n(85965),nt=n(39417),at=n(10237),ot=n(63149),rt=n(48017),lt=n(96955),it=n(66095),st=n(20982),ct=n(99144),ut=n(65549),pt=n(52017),dt=n(90186);const mt=(0,se.Z)((()=>({tableRow:{"& + &":{marginTop:"4px"},margin:"auto",maxWidth:"448px"}})));function ft(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const yt=(0,a.memo)((e=>{let{readOnly:t,relation:n,metadata:r,selectedAttributeTypes:l,onDeleteCrosswalk:i,onEditCrosswalk:s}=e;const c=mt(),u=(0,f.V3K)(r,n.type),p=(0,a.useMemo)((()=>function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return(0,d.pipe)((0,d.propOr)([],"crosswalks"),(0,d.map)((0,d.assoc)("ownerType","entity")),(0,dt.o)(e.type,t))(e)}(n,l)),[n,l]),[m,y]=(0,a.useState)([]),h=(0,a.useCallback)((e=>{i({entityUri:n.uri,crosswalkId:e})}),[i,n.uri]),b=(0,a.useCallback)((e=>{s(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){ft(e,t,n[t])}))}return e}({entityUri:n.uri},e))}),[s,n.uri]);return o().createElement("div",null,p.map((e=>{let{source:n,crosswalksByTypes:a}=e;return o().createElement("div",{key:n,className:c.tableRow},o().createElement(pt.Z,{source:n,crosswalksByTypes:a,expanded:m.includes(n),disableEditCrosswalk:!(0,f.Zm0)(u)||t,disableDeleteCrosswalk:!(0,f.a14)(u)||t,onEdit:b,onDelete:h,onToggleExpanded:()=>{y((0,d.ifElse)((0,d.includes)(n),(0,d.without)([n]),(0,d.append)(n)))}}))})))}));var ht=n(79769);const bt=(0,se.Z)((e=>({header:{display:"flex",flexDirection:"row",alignItems:"center",padding:"20px 12px",borderBottom:"1px solid rgba(0, 0, 0, 0.12)"},title:{fontWeight:500,fontSize:"20px",lineHeight:"23px",letterSpacing:"0.25px",color:e.palette.text.primary,marginLeft:"12px"},hint:{color:e.palette.text.secondary,display:"flex",flexDirection:"row",alignItems:"center",alignSelf:"flex-start",margin:"4px 14px 10px"},hintText:{marginLeft:"8px",fontSize:"12px",lineHeight:"16px"},buttons:{display:"flex",padding:"8px 6px 4px"},buttonLabel:{fontSize:"14px",fontWeight:500,lineHeight:"16px"},icon:{fontSize:"18px",marginRight:"8px"},editor:{paddingLeft:25,margin:"auto",maxWidth:"448px",boxSizing:"border-box",marginBottom:"4px"},tableContainer:{overflowY:"auto",overflowX:"hidden",paddingLeft:"16px",paddingRight:"6px"}}))),gt=(0,Ye.Z)(te.Button),vt=(0,a.memo)((e=>{let{className:t,readOnly:n,relation:l,selectedAttributeTypes:i,onAddCrosswalk:s,onDeleteCrosswalk:c,onEditCrosswalk:u}=e;const p=bt(),d=(0,r.useSelector)(m.ZP.selectors.getMetadata),y=(0,f.V3K)(d,l.type),[h,b]=(0,a.useState)(!1),g=(0,f.mkC)(y)&&!n;return o().createElement("div",{className:t},o().createElement("div",{className:p.header},o().createElement("span",{className:p.title},Z().text("Legend"))),o().createElement("div",{className:p.buttons},o().createElement(gt,{color:"primary",showForDisabled:!0,disabled:!g,tooltipTitle:g?null:Z().text("You don't have permissions to add crosswalk"),onClick:()=>b(!0)},o().createElement(ut.Z,{className:p.icon}),o().createElement("div",{className:p.buttonLabel},Z().text("Crosswalk")))),o().createElement("div",{className:p.hint},o().createElement(ct.Z,{className:p.icon}),o().createElement("span",{className:p.hintText},Z().text("You can drag a crosswalk to add values to attributes swimlanes"))),o().createElement("div",{className:p.tableContainer},h&&o().createElement(ht.Z,{className:p.editor,onAdd:e=>s({entity:l,crosswalk:e}),onClose:()=>b(!1)}),o().createElement(yt,{readOnly:n,metadata:d,relation:l,selectedAttributeTypes:i,onDeleteCrosswalk:c,onEditCrosswalk:u})))}));var Et=n(88611),xt=n(23147),Ct=n(94111),St=n(68439);const wt=(0,se.Z)((e=>({entityInfo:{flex:"0 1 auto",overflow:"hidden",minWidth:"100px"},entityLabelContainer:{display:"flex",alignItems:"center",overflow:"hidden"},entityLabel:{lineHeight:"1.2",letterSpacing:"0.25px",color:e.palette.text.primary},infoIcon:{fontSize:"16px",color:e.palette.text.secondary,marginLeft:"5px"},profileBand:{margin:"-10px",maxWidth:"500px"},entityTypeBadge:{marginTop:"7px"}}))),Tt=e=>{let{entity:t}=e;const n=wt(),a=(0,f.idV)(t.label);return o().createElement("div",{className:n.entityInfo},o().createElement("div",{className:n.entityLabelContainer},o().createElement(Et.C,{value:a},o().createElement(te.Typography,{variant:"h6",className:n.entityLabel,noWrap:!0},a)),o().createElement(Ct.Z,{title:o().createElement(C.Z,{className:n.profileBand,entity:t}),placement:"right"},o().createElement(ct.Z,{className:n.infoIcon}))),o().createElement(St.Z,{className:n.entityTypeBadge,entity:t,size:"medium"}))},Ot=(0,se.Z)((e=>({root:{flexShrink:0,overflow:"hidden",width:"110px"},label:{color:e.palette.text.secondary,fontSize:"13px"}}))),Dt=e=>{let{relation:t}=e;const n=Ot(),{direction:a,relationLabel:r}=t;return o().createElement("div",{className:n.root},o().createElement(Et.C,{value:r},o().createElement(te.Typography,{variant:"subtitle2",className:n.label,align:"center",noWrap:!0},r)),o().createElement("svg",{width:"110",height:"12",fill:"black",fillOpacity:"0.3"},"out"===a&&o().createElement("polygon",{points:"94 0, 110 6, 94 12, 94 9, 0 9, 0 3, 94 3"}),"bidirectional"===a&&o().createElement("polygon",{points:"94 0, 110 6, 94 12, 94 9, 16 9, 16 12, 0 6, 16 0, 16 3, 94 3"}),"in"===a&&o().createElement("polygon",{points:"16 12, 0 6, 16 0, 16 3, 110 3, 110 9, 16 9"})))};var Pt=n(8459),kt=n(27604);const Rt=(0,se.Z)((()=>({root:{"&:hover $editButton":{visibility:"visible"}},editButton:{visibility:"hidden",marginLeft:"4px",marginBottom:"4px"},paper:{width:"150px",border:"3px solid rgba(0, 0, 0, 0.3)",borderRadius:"4px",boxSizing:"border-box",overflow:"hidden"}}))),Mt=e=>{let{value:t=null,onChange:n,readOnly:r}=e;const l=Rt(),i=(0,a.useRef)(),[s,c]=(0,a.useState)(!1),u=()=>c(!1),[p,d]=(0,a.useState)(t),m=()=>{p!==t&&n(p),u()};return o().createElement("span",{ref:i,className:l.root},t&&(0,f.p6d)(t),o().createElement(We.Z,{disabled:r,icon:kt.Z,size:"XXS",className:l.editButton,onClick:()=>c(!0)}),o().createElement(te.Popover,{classes:{paper:l.paper},open:s,anchorEl:i.current,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:14,horizontal:20},onKeyUp:e=>{"Enter"===e.key?m():"Escape"===e.key&&u()},onBackdropClick:m},o().createElement(Pt.Z,{InputProps:{autoFocus:!0,disableUnderline:!0,fullWidth:!0},size:"small",hiddenLabel:!0,label:void 0,value:p&&new Date(p),onChange:e=>d(e&&e.valueOf())})))},Nt=(0,se.Z)((e=>({relationBand:{flexShrink:0,boxShadow:"inset 0px -1px 0px rgba(0,0,0,0.06)",padding:"16px 19px"},inactiveRelationBand:{opacity:.6,background:"rgba(185, 188, 197, 0.18)"},toolbar:{display:"flex",alignItems:"center",gap:"16px",marginBottom:"10px"},mainInfo:{display:"flex",gap:"16px",marginLeft:"40px"},detailsInfo:{display:"flex",gap:"34px",marginLeft:"40px",marginTop:"17px",color:e.palette.text.secondary,fontSize:"13px"},detailTitle:{color:e.palette.text.primary,flexShrink:0,marginRight:"4px"},directionalLabel:{display:"flex",overflow:"hidden","& span":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},relationDate:{flexShrink:0},commentsContainer:{marginRight:"18px"}})));function Zt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){At(e,t,n[t])}))}return e}function At(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Ft=(0,a.memo)((e=>{let{readOnly:t,entity:n,connection:a,onNavigateBack:r,onDelete:l,onChangeActivenessDate:i}=e;const s=!(0,f.Fn9)(a.relation),c=Nt();return o().createElement("div",{className:Ce()(c.relationBand,Se.U,{[c.inactiveRelationBand]:s})},o().createElement("div",{className:c.toolbar},o().createElement(We.Z,{icon:xt.Z,size:"S",onClick:()=>r()}),o().createElement(te.Typography,{variant:"subtitle2",display:"inline"},Z().text("Back to relationships")),o().createElement(oe.Z,null),o().createElement("div",{className:c.commentsContainer},o().createElement(Oe.Z,{uri:a.relation.relationUri,relatedObjectUris:(0,f.wp9)(f.q7e.RELATION,{entityUri:null==n?void 0:n.uri,connection:a}),objectType:f.q7e.RELATION,allowOnlyOneComment:!0})),o().createElement(Ke,{connection:a,onDelete:l,disableDelete:t})),o().createElement("div",{className:c.mainInfo},o().createElement(Tt,{entity:n}),o().createElement(Dt,{relation:a.relation}),o().createElement(Tt,{entity:Zt({},a.entity.object,{dataTenant:a.entity.dataTenant})})),o().createElement("div",{className:c.detailsInfo},o().createElement("div",{className:c.directionalLabel},o().createElement("span",{className:c.detailTitle},Z().text("Directional label:")),o().createElement(Et.C,{value:a.relation.relationLabel},o().createElement("span",null,a.relation.relationLabel))),o().createElement("div",{className:c.relationDate},o().createElement("span",{className:c.detailTitle},Z().text("Start date:")),o().createElement(Mt,{value:a.relation.startDate,onChange:e=>i("startDate",e),readOnly:t})),o().createElement("div",{className:c.relationDate},o().createElement("span",{className:c.detailTitle},Z().text("End date:")),o().createElement(Mt,{value:a.relation.endDate,onChange:e=>i("endDate",e),readOnly:t}))))})),jt=e=>{console.error(e),p.Z.addError({title:Z().text("Error"),message:(0,f.xU7)(e,Z().text("Something went wrong"))})};var Lt=n(58651),Ut=n(13896);const It=(0,se.Z)({detailsView:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"},locked:{pointerEvents:"none"},resizablePanesWrapper:{flexGrow:1},pane:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",overflow:"hidden"}}),zt=(0,a.memo)((e=>{let{entity:t,connection:n,visibleColumns:r,onClose:l,onDeleteConnection:i,onChangeConnection:s,onChangeVisibleColumns:c,readOnly:u}=e;const p=It(),m=(()=>{const[e,t]=(0,a.useState)([]),n=(0,a.useRef)([]),o=(0,a.useCallback)((0,f.DsO)((()=>{t([...n.current])}),50),[]),r=(0,a.useCallback)((e=>{n.current=e,o(e)}),[o]),l=(0,a.useCallback)(((e,t)=>{e&&r(t?[e]:[])}),[r]),[i,s]=(0,a.useState)([]),c=(0,a.useCallback)((e=>{e&&s((t=>{return n=[e],a=t,(0,d.concat)(n.filter((e=>!(0,d.any)((0,f.aFF)(e),a))),a.filter((e=>!(0,d.any)((0,f.aFF)(e),n))));var n,a}))}),[]);return{highlightedCrosswalks:(0,a.useMemo)((()=>[...e,...i]),[e,i]),focusedCrosswalks:i,toggleCrosswalkFocus:c,setCrosswalkHighlighted:l}})(),[y,h]=(0,a.useState)(-480),b=(0,a.useCallback)((e=>{let{percentageSize:t}=e;return h(t)}),[]),[g,v]=(0,a.useState)(),[E,x]=(0,a.useState)(!1),C=n.relation.relationUri,S=(0,et._)(),w=(0,a.useCallback)((()=>x(!0)),[]),T=(0,a.useCallback)((()=>x(!1)),[]),O=(0,a.useCallback)((0,d.pipe)(i,w),[]),[D,P]=(0,a.useMemo)((()=>{const e=e=>{e.errorCode===f.Xt7.CROSSWALK_NOT_FOUND?(jt(e),t()):e.errorCode===f.Xt7.OBJECT_NOT_FOUND?l(e):(jt(e),T())},t=()=>{S((0,f._vs)(C)).then((e=>{s((0,d.assocPath)(["relation","object"],e,n)),T()})).catch(e)};return[e,t]}),[n,T,s,l]),{modifiedEntity:k,crosswalksMap:R,newlyCreatedAttributes:M,onPinAttribute:N,onIgnoreAttribute:Z,onAddAttribute:A,onEditAttribute:F,onDeleteAttribute:j}=(0,tt.Q)({entity:n.relation.object,onModify:P,onError:D,onLoad:w}),{addCrosswalk:L,deleteCrosswalk:U,editCrosswalk:I}=(0,nt.P)({onSuccess:P,onError:D,onLoad:w}),z=(0,a.useCallback)(((e,t)=>{w(),(t?(0,f.rj2)({entityUri:C,attributeName:e,value:t}).then((()=>s((0,d.assocPath)(["relation",e],t,n)))):(0,f.X78)({entityUri:C,attributeName:e}).then((()=>s((0,d.dissocPath)(["relation",e],n))))).then(T).catch(D)}),[n,w,T,D]);return o().createElement(at.Z,{className:p.detailsView},o().createElement(ot.hR,m,o().createElement(Ut.DndProvider,{backend:Lt.default},o().createElement(rt.Z,null),o().createElement(lt.Z,{className:Ce()(p.resizablePanesWrapper,{[p.locked]:E}),orientation:"vertical",size:y,minSize:600,maxSize:-480,allowResize:!0,onChange:b},o().createElement("div",{className:p.pane},o().createElement(Ft,{readOnly:u,entity:t,connection:n,onNavigateBack:l,onDelete:O,onChangeActivenessDate:z}),o().createElement(it.R,{attributeUris:M},o().createElement(st.Z,{readOnly:u,entity:k,crosswalksMap:R,isLoading:E,onPin:N,onIgnore:Z,onEdit:F,onAdd:A,onDelete:j,selectedAttributeTypes:g,onSelectAttributeTypes:v,visibleColumns:r,onChangeVisibleColumns:c}))),o().createElement(vt,{readOnly:u,className:p.pane,relation:n.relation.object,selectedAttributeTypes:g,onAddCrosswalk:L,onDeleteCrosswalk:U,onEditCrosswalk:I})))))})),_t=(0,se.Z)({relationshipsView:{position:"absolute",top:0,left:0,right:0,bottom:0,overflowX:"hidden",overflowY:"auto",fontFamily:"Roboto, Helvetica, Arial, sans-serif",display:"flex",flexDirection:"column"},"@global div[role=tooltip]":{fontFamily:"Roboto, Helvetica, Arial, sans-serif"},"@global div[role=presentation]":{fontFamily:"Roboto, Helvetica, Arial, sans-serif"},pane:{display:"flex",flexDirection:"column",flex:1,overflow:"hidden",position:"relative"}}),Bt=(0,r.connect)(((e,t)=>{let{config:{id:n}}=t;return{entity:m.ZP.selectors.getEntity(e),metadata:m.ZP.selectors.getMetadata(e),connections:m.ZP.selectors.getConnectionsByViewId(e,n),total:m.ZP.selectors.getTotalByViewId(e,n)}}))((e=>{let{config:t,entity:n,metadata:r,connections:l,total:i,saveState:s,getSavedState:c,dispatch:u}=e;const p=_t(),D=(0,a.useRef)(),R=(0,y.U)(),N=(0,f.biM)(n),{type:Z}=n||{},[{visibleColumns:A,filters:F,page:z,rowsPerPage:W,sorting:X,currentRelationType:te,stateToSave:ne,entityTypeOfAppliedSavedState:ae},{changeColumns:oe,toggleFilters:re,changeFilter:le,changePage:ie,changeRowsPerPage:se,toggleSort:ce,changeRelationType:ue,saveCurrentState:pe,applySavedState:me}]=(e=>{let{defaultColumns:t,defaultSorting:n,defaultRowsPerPage:o}=e;const r={visibleColumns:t,filters:null,sorting:n,page:0,rowsPerPage:o,currentRelationType:null,stateToSave:null,visibleColumnsForRelationTypes:{},entityTypeOfAppliedSavedState:null},[l,i]=(0,a.useReducer)(((e,t)=>{switch(t.type){case V:{const n=t.payload;return(0,d.pipe)(J,(0,d.assoc)("currentRelationType",n),$,G)(e)}case Y:{const{savedState:n,entityTypeUri:a}=t.payload;return B({},e,n,{visibleColumns:n?K(n):e.visibleColumns,entityTypeOfAppliedSavedState:a})}case H:return B({},e,{stateToSave:Q(e)});default:return k.ZP.reducer(e,t)}}),r);return[l,(0,M.o)({actions:q,dispatch:i})]})({defaultColumns:L,defaultRowsPerPage:I[0],defaultSorting:{field:L[0],order:"asc"}}),fe=ae===Z,{isLoading:ye,relationsTableSavedState:he,attributesTableSavedState:be,updateRelationsTableSavedState:ge,updateAttributesTableSavedState:ve}=(e=>{var t;let{getSavedState:n,saveState:o,entityTypeUri:r}=e;const[l,i]=(0,a.useState)(P),[s,c]=(0,a.useState)(null);(0,h.D)((()=>{s&&(i(O({},l,{relationsTable:s})),c(null))}),[r]);const[u,p]=(0,a.useState)(!0);return(0,a.useEffect)((()=>{n().then((e=>{i(e||P)})).then((e=>p(!1))).catch((e=>p(!1)))}),[]),{isLoading:u,relationsTableSavedState:null===(t=l.relationsTable)||void 0===t?void 0:t[r],attributesTableSavedState:l.attributesTable,updateRelationsTableSavedState:e=>{const t=O({},l.relationsTable,{[r]:e});c(t),o(O({},l,{relationsTable:t}))},updateAttributesTableSavedState:e=>{o(O({},l,{attributesTable:e}))}}})({getSavedState:c,saveState:s,entityTypeUri:Z}),[Ee,xe]=(0,a.useState)();(0,a.useEffect)((()=>{ye||me({savedState:he,entityTypeUri:Z})}),[ye,Z]),(0,a.useEffect)((()=>{ye||xe(null==be?void 0:be.visibleColumns)}),[ye]),(0,h.D)((()=>{fe&&ge(ne)}),[ne]),(0,h.D)((()=>{ie(0)}),[n]);const[Ce,Se]=(0,a.useState)(),we=(0,a.useCallback)((()=>{Se(null)}),[]),Te=(0,a.useMemo)((()=>{const e=(0,f.io3)(r,Z);return r.relationTypes.filter((0,d.both)((0,f.uGe)(f.BDP.READ),(t=>{let{startObject:n,endObject:a}=t;return e.some((0,d.either)((0,d.equals)(n.objectTypeURI),(0,d.equals)(a.objectTypeURI)))})))}),[r,Z]),Oe=(0,a.useMemo)((()=>((e,t)=>t?(0,d.pipe)((0,d.find)((e=>e.uri===t)),f.DK$,_,(0,d.concat)(j),(0,d.reject)((e=>{let{id:t}=e;return U.includes(t)})))(e):(e=>{return t=(0,d.assoc)("dataTypeDefinition",(e=>({type:f.oS0.TYPE_SELECT,options:e.map((e=>{let{uri:t,label:n}=e;return{value:t,label:n}}))}))(e)),e=>(0,d.adjust)(e.findIndex((0,d.propEq)("id","relation.type")),t,e);var t})(e)(j))(Te,te)),[Te,te]),De=(0,a.useMemo)((()=>A.map((e=>Oe.find((0,d.propEq)("id",e)))).filter(d.identity)),[A,Oe]),Pe=(0,a.useMemo)((()=>{const e=(0,d.pipe)((0,d.when)((0,d.always)(te),(0,d.filter)((0,d.propEq)("uri",te))),(0,d.map)((0,d.prop)("uri")))(Te);return{id:t.id,content:{inRelations:e,outRelations:e}}}),[t.id,te,Te]),ke=(0,a.useMemo)((()=>((e,t)=>{const n=(0,ee.Tz)(t,e);return(new f.MEy).addClause(n).build()})(F,De)),[F,De]),{isLoading:Re,reload:Me}=(0,b.a)({page:z,rowsPerPage:W,config:Pe,entity:fe?n:null,filter:ke,mode:f.ARY.Viewing,sorting:X}),Ne=!fe||Re,Ze=(0,a.useCallback)((0,d.pipe)(ce,pe),[ce,pe]),Ae=(0,a.useCallback)((0,d.pipe)(le,pe),[le,pe]),Fe=(0,a.useCallback)((0,d.pipe)(re,pe),[re,pe]),je=(0,a.useCallback)((0,d.pipe)(oe,pe),[oe,pe]),Le=(0,a.useCallback)((0,d.pipe)(ue,pe),[ue,pe]),Ue=(0,a.useCallback)((e=>{xe(e),ve({visibleColumns:e})}),[ve]),Ie=null==l?void 0:l[Ce],ze=(0,a.useCallback)((e=>{u(m.N5.relations.actions.relationsLoaded({id:t.id,connections:(0,d.update)(Ce,e,l),total:i}))}),[Ie]),[_e,Be]=(0,a.useMemo)((()=>[(0,f.w3p)(l),[f.q7e.RELATION]]),[l]),We=(0,g.C)({objectIds:_e,objectTypes:Be,enabled:!N}),Ve=(0,a.useMemo)((()=>(0,f.Px$)(l)),[l]),Ye=(0,a.useCallback)((e=>{jt(e),e.errorCode===f.Xt7.OBJECT_NOT_FOUND&&Me()}),[Me]),He=(0,a.useCallback)((e=>{(0,d.pipe)(f.VGk,(0,d.andThen)(Me),(0,d.otherwise)(Ye))(e)}),[Me,Ye]),qe=(0,a.useCallback)((()=>{(0,d.pipe)(f.VGk,(0,d.andThen)((0,d.pipe)(we,Me)),(0,d.otherwise)((e=>{e.errorCode===f.Xt7.OBJECT_NOT_FOUND&&we(),Ye(e)})))(Ie.relation.relationUri)}),[Ie,Me,we,Ye]),Ge=(0,a.useCallback)((e=>{e&&Ye(e),we()}),[Ye,we]);return o().createElement(v.s.Provider,{value:R},o().createElement(E.h.Provider,{value:We},o().createElement(x.X.Provider,{value:Ve},o().createElement("div",{className:p.relationshipsView},o().createElement(C.Z,{entity:n},o().createElement(S.a,null)),o().createElement(de,{total:i,filteringEnabled:!!F,onToggleFilters:Fe,columnsData:Oe,selectedColumns:A,onChangeColumns:je,relationTypes:Te,currentRelationType:te,onRelationTypeChange:Le}),o().createElement("div",{className:p.pane},Ne&&o().createElement(w.Z,null),o().createElement(Qe,{readOnly:N,metadata:r,connections:l,columnsData:De,sorting:X,onSort:Ze,filters:F,onFilter:Ae,onRowClick:Se,tableRef:D,onDelete:He}),o().createElement(T.Z,{count:i,rowsPerPageOptions:I,page:z,onChangePage:ie,rowsPerPage:W,onChangeRowsPerPage:se,basicTableRef:D})),Ie&&o().createElement(zt,{readOnly:N,entity:n,visibleColumns:Ee,onChangeVisibleColumns:Ue,connection:Ie,onClose:Ge,onDeleteConnection:qe,onChangeConnection:ze})))))})),Wt=(0,i.createGenerateClassName)({productionPrefix:"relationshipsPerspective",disableGlobal:!0}),Vt=e=>{let{config:t,store:n,onResize:d,saveState:m,getSavedState:y}=e;const h=(0,a.useCallback)((0,f.aYu)(y),[y]);return o().createElement(r.Provider,{store:n},o().createElement(u.m.Provider,{value:t.id},o().createElement(i.StylesProvider,{generateClassName:Wt},o().createElement(c.MuiPickersUtilsProvider,{utils:l.Z},o().createElement(s.Z,{handleHeight:!0,onResize:(e,t)=>null==d?void 0:d(Math.floor(e),Math.floor(t))}),t&&o().createElement(Bt,{config:t,saveState:m,getSavedState:h}),o().createElement(p.Z,null)))))}},46847:(e,t,n)=>{function a(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!=e&&this.setState(e)}function o(e){this.setState(function(t){var n=this.constructor.getDerivedStateFromProps(e,t);return null!=n?n:null}.bind(this))}function r(e,t){try{var n=this.props,a=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,a)}finally{this.props=n,this.state=a}}function l(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof t.getSnapshotBeforeUpdate)return e;var n=null,l=null,i=null;if("function"==typeof t.componentWillMount?n="componentWillMount":"function"==typeof t.UNSAFE_componentWillMount&&(n="UNSAFE_componentWillMount"),"function"==typeof t.componentWillReceiveProps?l="componentWillReceiveProps":"function"==typeof t.UNSAFE_componentWillReceiveProps&&(l="UNSAFE_componentWillReceiveProps"),"function"==typeof t.componentWillUpdate?i="componentWillUpdate":"function"==typeof t.UNSAFE_componentWillUpdate&&(i="UNSAFE_componentWillUpdate"),null!==n||null!==l||null!==i){var s=e.displayName||e.name,c="function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+s+" uses "+c+" but also contains the following legacy lifecycles:"+(null!==n?"\n "+n:"")+(null!==l?"\n "+l:"")+(null!==i?"\n "+i:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(t.componentWillMount=a,t.componentWillReceiveProps=o),"function"==typeof t.getSnapshotBeforeUpdate){if("function"!=typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=r;var u=t.componentDidUpdate;t.componentDidUpdate=function(e,t,n){var a=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;u.call(this,e,t,a)}}return e}n.r(t),n.d(t,{polyfill:()=>l}),a.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0,r.__suppressDeprecationWarning=!0}}]);
2
+ //# sourceMappingURL=737.js.map
package/737.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"737.js","mappings":"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","sources":["webpack://@reltio/remotes/../../node_modules/@date-io/moment/build/index.esm.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/Edit.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/Info.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/KeyboardArrowLeft.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/KeyboardArrowRight.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/Visibility.js","webpack://@reltio/remotes/../components/src/hooks/useRelationsLoader.ts","webpack://@reltio/remotes/../relationships/src/hooks/useSavedState.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/helpers/tableHelpers.ts","webpack://@reltio/remotes/../relationships/src/hooks/useRelationshipsTable.ts","webpack://@reltio/remotes/../relationships/src/components/RelationTypeSelector/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationTypeSelector/RelationTypeSelector.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTableHeader/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTableHeader/RelationshipsTableHeader.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/HeadCellRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/EntityProfileRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/AttributesRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/DefaultCellValueRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/helpers.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/RowCellRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipMenuButton/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipMenuButton/MenuItemRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipMenuButton/RelationshipMenuButton.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/RelationshipsTable.tsx","webpack://@reltio/remotes/../relationships/src/components/LegendTable/helpers.ts","webpack://@reltio/remotes/../relationships/src/components/LegendTable/styles.ts","webpack://@reltio/remotes/../relationships/src/components/LegendTable/LegendTable.tsx","webpack://@reltio/remotes/../relationships/src/components/LegendPanel/styles.ts","webpack://@reltio/remotes/../relationships/src/components/LegendPanel/LegendPanel.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/EntityInfo/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/EntityInfo/EntityInfo.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationDirection/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationDirection/RelationDirection.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationDate/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationDate/RelationDate.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationshipBand.tsx","webpack://@reltio/remotes/../relationships/src/services/errors.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipDetails/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipDetails/RelationshipDetails.tsx","webpack://@reltio/remotes/../relationships/src/hooks/useCrosswalksDisplay.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/RelationshipsView.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/helpers/filtersHelpers.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/index.tsx","webpack://@reltio/remotes/./src/relationships.ts","webpack://@reltio/remotes/../../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"],"sourcesContent":["import defaultMoment from 'moment';\n\nvar MomentUtils = /** @class */ (function () {\n function MomentUtils(_a) {\n var _b = _a === void 0 ? {} : _a, locale = _b.locale, instance = _b.instance, moment = _b.moment;\n this.yearFormat = \"YYYY\";\n this.yearMonthFormat = \"MMMM YYYY\";\n this.dateTime12hFormat = \"MMMM Do hh:mm a\";\n this.dateTime24hFormat = \"MMMM Do HH:mm\";\n this.time12hFormat = \"hh:mm A\";\n this.time24hFormat = \"HH:mm\";\n this.dateFormat = \"MMMM Do\";\n this.moment = instance || moment || defaultMoment;\n this.locale = locale;\n }\n MomentUtils.prototype.parse = function (value, format) {\n if (value === \"\") {\n return null;\n }\n return this.moment(value, format, true);\n };\n MomentUtils.prototype.date = function (value) {\n if (value === null) {\n return null;\n }\n var moment = this.moment(value);\n moment.locale(this.locale);\n return moment;\n };\n MomentUtils.prototype.isValid = function (value) {\n return this.moment(value).isValid();\n };\n MomentUtils.prototype.isNull = function (date) {\n return date === null;\n };\n MomentUtils.prototype.getDiff = function (date, comparing) {\n return date.diff(comparing);\n };\n MomentUtils.prototype.isAfter = function (date, value) {\n return date.isAfter(value);\n };\n MomentUtils.prototype.isBefore = function (date, value) {\n return date.isBefore(value);\n };\n MomentUtils.prototype.isAfterDay = function (date, value) {\n return date.isAfter(value, \"day\");\n };\n MomentUtils.prototype.isBeforeDay = function (date, value) {\n return date.isBefore(value, \"day\");\n };\n MomentUtils.prototype.isBeforeYear = function (date, value) {\n return date.isBefore(value, \"year\");\n };\n MomentUtils.prototype.isAfterYear = function (date, value) {\n return date.isAfter(value, \"year\");\n };\n MomentUtils.prototype.startOfDay = function (date) {\n return date.clone().startOf(\"day\");\n };\n MomentUtils.prototype.endOfDay = function (date) {\n return date.clone().endOf(\"day\");\n };\n MomentUtils.prototype.format = function (date, formatString) {\n date.locale(this.locale);\n return date.format(formatString);\n };\n MomentUtils.prototype.formatNumber = function (numberToFormat) {\n return numberToFormat;\n };\n MomentUtils.prototype.getHours = function (date) {\n return date.get(\"hours\");\n };\n MomentUtils.prototype.addDays = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"days\")\n : date.clone().add(count, \"days\");\n };\n MomentUtils.prototype.setHours = function (date, count) {\n return date.clone().hours(count);\n };\n MomentUtils.prototype.getMinutes = function (date) {\n return date.get(\"minutes\");\n };\n MomentUtils.prototype.setMinutes = function (date, count) {\n return date.clone().minutes(count);\n };\n MomentUtils.prototype.getSeconds = function (date) {\n return date.get(\"seconds\");\n };\n MomentUtils.prototype.setSeconds = function (date, count) {\n return date.clone().seconds(count);\n };\n MomentUtils.prototype.getMonth = function (date) {\n return date.get(\"month\");\n };\n MomentUtils.prototype.isSameDay = function (date, comparing) {\n return date.isSame(comparing, \"day\");\n };\n MomentUtils.prototype.isSameMonth = function (date, comparing) {\n return date.isSame(comparing, \"month\");\n };\n MomentUtils.prototype.isSameYear = function (date, comparing) {\n return date.isSame(comparing, \"year\");\n };\n MomentUtils.prototype.isSameHour = function (date, comparing) {\n return date.isSame(comparing, \"hour\");\n };\n MomentUtils.prototype.setMonth = function (date, count) {\n return date.clone().month(count);\n };\n MomentUtils.prototype.getMeridiemText = function (ampm) {\n return ampm === \"am\" ? \"AM\" : \"PM\";\n };\n MomentUtils.prototype.startOfMonth = function (date) {\n return date.clone().startOf(\"month\");\n };\n MomentUtils.prototype.endOfMonth = function (date) {\n return date.clone().endOf(\"month\");\n };\n MomentUtils.prototype.getNextMonth = function (date) {\n return date.clone().add(1, \"month\");\n };\n MomentUtils.prototype.getPreviousMonth = function (date) {\n return date.clone().subtract(1, \"month\");\n };\n MomentUtils.prototype.getMonthArray = function (date) {\n var firstMonth = date.clone().startOf(\"year\");\n var monthArray = [firstMonth];\n while (monthArray.length < 12) {\n var prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(this.getNextMonth(prevMonth));\n }\n return monthArray;\n };\n MomentUtils.prototype.getYear = function (date) {\n return date.get(\"year\");\n };\n MomentUtils.prototype.setYear = function (date, year) {\n return date.clone().set(\"year\", year);\n };\n MomentUtils.prototype.mergeDateAndTime = function (date, time) {\n return this.setMinutes(this.setHours(date, this.getHours(time)), this.getMinutes(time));\n };\n MomentUtils.prototype.getWeekdays = function () {\n return this.moment.weekdaysShort(true);\n };\n MomentUtils.prototype.isEqual = function (value, comparing) {\n if (value === null && comparing === null) {\n return true;\n }\n return this.moment(value).isSame(comparing);\n };\n MomentUtils.prototype.getWeekArray = function (date) {\n var start = date\n .clone()\n .startOf(\"month\")\n .startOf(\"week\");\n var end = date\n .clone()\n .endOf(\"month\")\n .endOf(\"week\");\n var count = 0;\n var current = start;\n var nestedWeeks = [];\n while (current.isBefore(end)) {\n var weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n current = current.clone().add(1, \"day\");\n count += 1;\n }\n return nestedWeeks;\n };\n MomentUtils.prototype.getYearRange = function (start, end) {\n var startDate = this.moment(start).startOf(\"year\");\n var endDate = this.moment(end).endOf(\"year\");\n var years = [];\n var current = startDate;\n while (current.isBefore(endDate)) {\n years.push(current);\n current = current.clone().add(1, \"year\");\n }\n return years;\n };\n // displaying methods\n MomentUtils.prototype.getCalendarHeaderText = function (date) {\n return this.format(date, this.yearMonthFormat);\n };\n MomentUtils.prototype.getYearText = function (date) {\n return this.format(date, \"YYYY\");\n };\n MomentUtils.prototype.getDatePickerHeaderText = function (date) {\n return this.format(date, \"ddd, MMM D\");\n };\n MomentUtils.prototype.getDateTimePickerHeaderText = function (date) {\n return this.format(date, \"MMM D\");\n };\n MomentUtils.prototype.getMonthText = function (date) {\n return this.format(date, \"MMMM\");\n };\n MomentUtils.prototype.getDayText = function (date) {\n return this.format(date, \"D\");\n };\n MomentUtils.prototype.getHourText = function (date, ampm) {\n return this.format(date, ampm ? \"hh\" : \"HH\");\n };\n MomentUtils.prototype.getMinuteText = function (date) {\n return this.format(date, \"mm\");\n };\n MomentUtils.prototype.getSecondText = function (date) {\n return this.format(date, \"ss\");\n };\n return MomentUtils;\n}());\n\nexport default MomentUtils;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n}), 'Edit');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"\n}), 'Info');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"\n}), 'KeyboardArrowLeft');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n}), 'KeyboardArrowRight');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'Visibility');\n\nexports.default = _default;","import {useCallback, useEffect, useRef, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {cond, pipe, prop, T, when, identity, times, length, ifElse, always} from 'ramda';\nimport mdm, {profile} from '@reltio/mdm-module';\nimport {\n ActivityFilter,\n addGlobalFilterToQuery,\n Entity,\n getRelationsForDataTenantEntity,\n getRelationsForEntity,\n GlobalSearchRequestOptions,\n isDataTenantEntity,\n isTempUri,\n Mode,\n wrapInArrayIfNeeded\n} from '@reltio/mdm-sdk';\nimport {useSafePromise} from './useSafePromise';\nimport {usePrevious} from './usePrevious';\n\ntype Props = {\n sorting?: {\n field: string;\n order: string;\n };\n filter?: string;\n page: number;\n rowsPerPage: number;\n config: {\n id: string;\n content: Record<string, unknown>;\n suggested?: Record<string, unknown>[] | Record<string, unknown>;\n };\n entity: Entity;\n relationActivityFilter?: ActivityFilter;\n mode: Mode;\n};\n\nconst buildSuggestedIds = when(\n identity,\n pipe(\n wrapInArrayIfNeeded,\n length,\n times((n) => n + 1)\n )\n);\n\nexport const useRelationsLoader = ({\n sorting,\n filter,\n page,\n rowsPerPage,\n config,\n entity,\n relationActivityFilter,\n mode\n}: Props) => {\n const [isLoading, setIsLoading] = useState(false);\n const dispatch = useDispatch();\n const tenant = useSelector(mdm.selectors.getTenant) as string;\n const dtssPath = useSelector(mdm.selectors.getDtssPath) as string;\n const {activityFilter, globalFilter}: GlobalSearchRequestOptions =\n useSelector(mdm.selectors.getGlobalSearchRequestOptions) || {};\n const safePromise = useSafePromise();\n const suggested = config.suggested;\n const loadRelations = useCallback(() => {\n if (entity?.uri) {\n const requestConfig = {\n ...config.content,\n sortBy: sorting?.field,\n order: sorting?.order,\n returnDates: true,\n returnObjects: true,\n activeness: {\n relation: relationActivityFilter || ActivityFilter.ALL,\n entity: activityFilter\n },\n max: rowsPerPage,\n offset: page * rowsPerPage,\n filter: addGlobalFilterToQuery(globalFilter, filter) || undefined,\n suggested: buildSuggestedIds(suggested)\n };\n const configs = [requestConfig].concat(\n ifElse(\n identity,\n pipe(wrapInArrayIfNeeded, (suggested) =>\n suggested.map((config, i) => ({...config, id: requestConfig.suggested[i]}))\n ),\n always([])\n )(suggested)\n );\n const request = cond([\n [pipe(prop('uri'), isTempUri), () => Promise.resolve([{total: 0}])],\n [\n isDataTenantEntity,\n (entity) =>\n getRelationsForDataTenantEntity({\n entityUri: entity.uri,\n configs: configs,\n customerTenant: tenant,\n dataTenant: entity.dataTenant,\n dtssPath\n })\n ],\n [T, (entity) => getRelationsForEntity(entity.uri, configs)]\n ]);\n setIsLoading(true);\n safePromise(request(entity))\n .then(([{connections, total}]) => {\n dispatch(profile.relations.actions.relationsLoaded({id: config.id, connections, total}));\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n activityFilter,\n config,\n dispatch,\n dtssPath,\n entity?.uri,\n entity?.dataTenant,\n filter,\n globalFilter,\n page,\n relationActivityFilter,\n rowsPerPage,\n safePromise,\n sorting,\n tenant\n ]);\n const isRequestSentRef = useRef<boolean>(false);\n isRequestSentRef.current = false;\n useEffect(() => {\n isRequestSentRef.current = true;\n loadRelations();\n }, [loadRelations]);\n const prevMode = usePrevious(mode);\n useEffect(() => {\n if (mode === Mode.Viewing && !isRequestSentRef.current && prevMode !== mode) {\n isRequestSentRef.current = true;\n loadRelations();\n }\n }, [loadRelations, mode, prevMode]);\n return {isLoading, reload: loadRelations};\n};\n","import {useEffect, useState} from 'react';\nimport {useDidUpdateEffect} from '@reltio/components';\nimport {\n RelationshipsSavedState,\n RelationsTableSavedState,\n AttributesTableSavedState\n} from './../types/RelationshipsSavedState';\n\nconst DEFAULT_SAVED_STATE = {\n relationsTable: {},\n attributesTable: {}\n};\n\nconst useSavedState = ({getSavedState, saveState, entityTypeUri}) => {\n const [savedState, setSavedState] = useState<RelationshipsSavedState>(DEFAULT_SAVED_STATE);\n const [changedRelationsState, setRelationsChangedState] = useState<Record<string, RelationsTableSavedState>>(null);\n\n const saveChangesLocallyForPrevEntityType = () => {\n if (changedRelationsState) {\n setSavedState({...savedState, relationsTable: changedRelationsState});\n setRelationsChangedState(null);\n }\n };\n useDidUpdateEffect(saveChangesLocallyForPrevEntityType, [entityTypeUri]);\n\n const updateRelationsTableSavedState = (stateToSave: RelationsTableSavedState) => {\n const changedState: Record<string, RelationsTableSavedState> = {\n ...savedState.relationsTable,\n [entityTypeUri]: stateToSave\n };\n setRelationsChangedState(changedState);\n saveState({...savedState, relationsTable: changedState});\n };\n\n const updateAttributesTableSavedState = (stateToSave: AttributesTableSavedState) => {\n saveState({...savedState, attributesTable: stateToSave});\n };\n\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n getSavedState()\n .then((savedState) => {\n setSavedState(savedState || DEFAULT_SAVED_STATE);\n })\n .then((_) => setIsLoading(false))\n .catch((_) => setIsLoading(false));\n }, []); // eslint-disable-line\n return {\n isLoading,\n relationsTableSavedState: savedState.relationsTable?.[entityTypeUri],\n attributesTableSavedState: savedState.attributesTable,\n updateRelationsTableSavedState,\n updateAttributesTableSavedState\n };\n};\n\nexport default useSavedState;\n","import {\n attributeUriToSearchUri,\n DataTypes,\n getAttrDataTypeDefinition,\n getReadableAttributesList,\n TRelationType\n} from '@reltio/mdm-sdk';\nimport {adjust, assoc, concat, find, map, pipe, pluck, prop, propEq, reject, uniqBy} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {RelationshipsTableColumnData} from '../../../types';\n\nconst RELATION_TYPE_COLUMN_ID = 'relation.type';\nconst ATTRIBUTES_COLUMN_ID = 'relation.attributes';\n\nexport const DEFAULT_COLUMNS_DATA = [\n {\n id: 'entity.label',\n get label() {\n return i18n.text('Profile');\n },\n dataTypeDefinition: {\n type: DataTypes.TYPE_STRING\n },\n hideable: false,\n filterable: false,\n initialWidth: 280,\n autoResize: false\n },\n {\n id: RELATION_TYPE_COLUMN_ID,\n get label() {\n return i18n.text('Type');\n }\n },\n {\n id: 'relation.label',\n get label() {\n return i18n.text('Directional Label');\n },\n filterable: false,\n dataTypeDefinition: {\n type: DataTypes.TYPE_STRING\n }\n },\n {\n id: 'relation.activeness.startDate',\n get label() {\n return i18n.text('Start Date');\n },\n dataTypeDefinition: {\n type: DataTypes.TYPE_ACTIVENESS_DATE\n }\n },\n {\n id: 'relation.activeness.endDate',\n get label() {\n return i18n.text('End Date');\n },\n dataTypeDefinition: {\n type: DataTypes.TYPE_ACTIVENESS_DATE\n }\n },\n {\n id: ATTRIBUTES_COLUMN_ID,\n get label() {\n return i18n.text('Attributes');\n },\n sortable: false,\n filterable: false,\n maxAttrsToShow: 7\n }\n];\n\nexport const DEFAULT_COLUMNS = pluck('id', DEFAULT_COLUMNS_DATA);\nexport const ALL_TYPES_COLUMNS = [RELATION_TYPE_COLUMN_ID, ATTRIBUTES_COLUMN_ID];\n\nexport const ROWS_PER_PAGE_OPTIONS = [20, 50, 100];\n\nconst getColumnIdFromAttrUri = pipe(attributeUriToSearchUri, concat('relation.'));\n\nconst getColumnsDataFromRelationAttributes = pipe(\n map((attr) => ({\n id: getColumnIdFromAttrUri(attr.uri),\n label: attr.label,\n dataTypeDefinition: getAttrDataTypeDefinition(attr)\n })),\n uniqBy(prop('id'))\n);\n\nconst getRelationColumnDataType = (relationTypes: TRelationType[]) => ({\n type: DataTypes.TYPE_SELECT,\n options: relationTypes.map(({uri, label}) => ({value: uri, label}))\n});\n\nconst updateColumnData = (columnId: string, updateFn) => (columnsData: RelationshipsTableColumnData[]) =>\n adjust(columnsData.findIndex(propEq('id', columnId)), updateFn, columnsData);\n\nconst updateRelationTypeColumn = (relationTypes: TRelationType[]) =>\n updateColumnData(RELATION_TYPE_COLUMN_ID, assoc('dataTypeDefinition', getRelationColumnDataType(relationTypes)));\n\nexport const getColumnsData = (relationTypes: TRelationType[], currentRelationType: string) =>\n currentRelationType\n ? pipe(\n find((relationType: TRelationType) => relationType.uri === currentRelationType),\n getReadableAttributesList,\n getColumnsDataFromRelationAttributes,\n concat(DEFAULT_COLUMNS_DATA),\n reject(({id}) => ALL_TYPES_COLUMNS.includes(id))\n )(relationTypes)\n : updateRelationTypeColumn(relationTypes)(DEFAULT_COLUMNS_DATA);\n","import {assoc, pipe, evolve, either, path, prop, ifElse, always, without, concat, intersection, pick} from 'ramda';\nimport {useReducer} from 'react';\nimport {basicTableViewState, createStandardAction, Sorting, useActions} from '@reltio/components';\nimport {ALL_TYPES_COLUMNS, DEFAULT_COLUMNS} from '../components/RelationshipsView/helpers/tableHelpers';\n\ntype Props = {\n defaultColumns: string[];\n defaultSorting: Sorting;\n defaultRowsPerPage: number;\n};\n\nconst CHANGE_RELATION_TYPE = 'CHANGE_RELATION_TYPE';\nconst APPLY_SAVED_STATE = 'APPLY_SAVED_STATE';\nconst SAVE_CURRENT_STATE = 'SAVE_CURRENT_STATE';\n\nconst actions = {\n ...basicTableViewState.actions,\n changeRelationType: createStandardAction(CHANGE_RELATION_TYPE),\n applySavedState: createStandardAction(APPLY_SAVED_STATE),\n saveCurrentState: createStandardAction(SAVE_CURRENT_STATE)\n};\n\nconst resetPageNumber = assoc('page', 0);\n\nconst getDefaultVisibleColumnsForCurrentRelationType = (state) => {\n return pipe(\n prop('visibleColumns'),\n ifElse(always(state.currentRelationType), without(ALL_TYPES_COLUMNS), concat(ALL_TYPES_COLUMNS)),\n intersection(DEFAULT_COLUMNS)\n )(state);\n};\n\nconst getSavedVisibleColumnsForCurrentRelationType = (state) =>\n path(['visibleColumnsForRelationTypes', `${state.currentRelationType}`], state);\n\nconst changeVisibleColumnsForCurrentRelationType = (state) => {\n const nextVisibleColumns = either(\n getSavedVisibleColumnsForCurrentRelationType,\n getDefaultVisibleColumnsForCurrentRelationType\n )(state);\n return basicTableViewState.changeVisibleColumns(state, nextVisibleColumns);\n};\n\nconst saveVisibleColumnsForCurrentRelationType = (state) => {\n const {currentRelationType, visibleColumns} = state;\n return evolve(\n {\n visibleColumnsForRelationTypes: assoc(`${currentRelationType}`, visibleColumns)\n },\n state\n );\n};\n\nconst getStateToSave = pipe(\n saveVisibleColumnsForCurrentRelationType,\n pick(['currentRelationType', 'visibleColumnsForRelationTypes', 'filters', 'sorting'])\n);\n\nexport const useRelationshipsTable = ({defaultColumns, defaultSorting, defaultRowsPerPage}: Props) => {\n const initState = {\n visibleColumns: defaultColumns,\n filters: null,\n sorting: defaultSorting,\n page: 0,\n rowsPerPage: defaultRowsPerPage,\n currentRelationType: null,\n stateToSave: null,\n visibleColumnsForRelationTypes: {},\n entityTypeOfAppliedSavedState: null\n };\n const [state, dispatch] = useReducer((state, action) => {\n switch (action.type) {\n case CHANGE_RELATION_TYPE: {\n const nextRelationType = action.payload;\n return pipe(\n saveVisibleColumnsForCurrentRelationType,\n assoc('currentRelationType', nextRelationType),\n changeVisibleColumnsForCurrentRelationType,\n resetPageNumber\n )(state);\n }\n case APPLY_SAVED_STATE: {\n const {savedState, entityTypeUri} = action.payload;\n const visibleColumns = savedState\n ? getSavedVisibleColumnsForCurrentRelationType(savedState)\n : state.visibleColumns;\n return {\n ...state,\n ...savedState,\n visibleColumns,\n entityTypeOfAppliedSavedState: entityTypeUri\n };\n }\n case SAVE_CURRENT_STATE: {\n return {\n ...state,\n stateToSave: getStateToSave(state)\n };\n }\n default:\n return basicTableViewState.reducer(state, action);\n }\n }, initState);\n const tableActions = useActions({actions, dispatch});\n return [state, tableActions];\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n select: {\n fontSize: '13px',\n color: 'rgba(0,0,0,.6)',\n paddingLeft: '15px',\n '&&': {\n paddingRight: '35px'\n }\n },\n selectMenu: {\n '& li': {\n fontSize: '13px',\n height: '32px'\n }\n },\n textField: {\n maxWidth: '100%'\n }\n});\n","import React, {useMemo} from 'react';\nimport i18n from 'ui-i18n';\nimport {map, concat, pipe} from 'ramda';\nimport {TRelationType} from '@reltio/mdm-sdk';\nimport {DropDownEditor} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: string;\n onChange: (value: string) => void;\n relationTypes: TRelationType[];\n className?: string;\n};\n\nconst RelationTypeSelector = ({value, onChange, relationTypes, className}: Props) => {\n const styles = useStyles();\n const entries = useMemo(\n () =>\n pipe(\n map(({label, uri}) => ({label, value: uri})),\n concat([{value: '', label: i18n.text('All types')}])\n )(relationTypes),\n [relationTypes]\n );\n\n return (\n <div className={className}>\n <DropDownEditor\n displayEmpty\n disableUnderline\n classes={{\n select: styles.select\n }}\n TextFieldProps={{\n classes: {\n root: styles.textField\n }\n }}\n MenuProps={{\n classes: {\n list: styles.selectMenu\n }\n }}\n value={value || ''}\n entries={entries}\n onChange={(value: string) => onChange(value || null)}\n />\n </div>\n );\n};\n\nexport default RelationTypeSelector;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n header: {\n height: '56px',\n boxSizing: 'border-box',\n paddingRight: '10px'\n },\n title: {\n fontSize: '16px'\n },\n total: {\n fontSize: '14px',\n color: theme.palette.text.secondary,\n flexShrink: 0,\n marginRight: '5px'\n },\n relationTypeSelector: {\n margin: '0px 10px 0 30px',\n overflow: 'hidden'\n }\n}));\n","import React, {memo} from 'react';\nimport i18n from 'ui-i18n';\nimport {TRelationType} from '@reltio/mdm-sdk';\nimport {Typography as Typography} from '@material-ui/core';\nimport {BasicViewHeader, ColumnsSettings, FilterButton, Spacer, VerticalDivider} from '@reltio/components';\nimport RelationTypeSelector from '../RelationTypeSelector/RelationTypeSelector';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n total: number;\n filteringEnabled: boolean;\n onToggleFilters: () => void;\n columnsData: Record<string, unknown>[];\n selectedColumns: string[];\n currentRelationType: string;\n onRelationTypeChange: (value: string) => void;\n relationTypes: TRelationType[];\n onChangeColumns: (columns: string[]) => void;\n};\n\nconst RelationshipsTableHeader = ({\n total,\n filteringEnabled,\n onToggleFilters,\n columnsData,\n selectedColumns,\n currentRelationType,\n onRelationTypeChange,\n relationTypes,\n onChangeColumns\n}: Props) => {\n const styles = useStyles();\n return (\n <BasicViewHeader title={i18n.text('Relationships')} classes={{root: styles.header, title: styles.title}}>\n {relationTypes.length > 0 && (\n <RelationTypeSelector\n className={styles.relationTypeSelector}\n value={currentRelationType}\n onChange={onRelationTypeChange}\n relationTypes={relationTypes}\n />\n )}\n <VerticalDivider height={28} margin={20} />\n <Typography variant=\"caption\" className={styles.total}>\n {total === 1\n ? i18n.text('${count} record', {count: total})\n : i18n.text('${count} records', {count: total})}\n </Typography>\n <Spacer />\n <FilterButton enabled={filteringEnabled} onClick={onToggleFilters} />\n <VerticalDivider height={28} margin={8} />\n <ColumnsSettings\n columnsData={columnsData}\n selectedColumns={selectedColumns}\n onChangeColumns={onChangeColumns}\n />\n </BasicViewHeader>\n );\n};\n\nexport default memo(RelationshipsTableHeader);\n","import {makeStyles, Theme} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n headCell: {\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n width: '100%',\n fontSize: '12px',\n color: theme.palette.text.secondary,\n background: 'linear-gradient(0deg, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0.06)), #FFFFFF'\n },\n rowCell: {\n fontSize: '13px',\n overflow: 'hidden',\n overflowWrap: 'break-word'\n },\n inactiveRowCell: {\n opacity: 0.6\n },\n defaultWrapper: {\n padding: '15px 25px 0 25px',\n '&:last-child': {\n paddingBottom: '15px'\n }\n },\n entityCell: {\n display: 'flex',\n alignItems: 'flex-start',\n padding: '15px'\n },\n entityAvatar: {\n transform: 'scale(0.5)',\n margin: '-10px 0 -10px -10px'\n },\n inactiveEntityAvatar: {\n overflow: 'initial',\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n backgroundColor: 'rgb(209, 206, 206)',\n border: '1px solid rgba(0, 0, 0, 1)',\n borderRadius: '2px',\n width: '12px',\n right: 0,\n bottom: 0,\n height: '12px'\n },\n '& > img': {\n borderRadius: '50%',\n overflow: 'hidden'\n }\n },\n entityLabel: {\n color: theme.palette.primary.main,\n textDecoration: 'none',\n fontWeight: 500\n },\n attributesWrapper: {\n padding: '15px 25px 10px 25px',\n color: 'rgba(0,0,0,0.87)'\n },\n commentsContainer: {\n marginLeft: 'auto'\n }\n}));\n","import React from 'react';\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport {withFilterAtBottom} from '@reltio/components';\n\nimport {useStyles} from './styles';\n\nconst HeadCellRenderer = (props) => {\n const styles = useStyles();\n return (\n <div className={styles.headCell}>\n <DefaultHeadCellRenderer {...props} />\n </div>\n );\n};\n\nexport default withFilterAtBottom(HeadCellRenderer);\n","import React from 'react';\nimport classnames from 'classnames';\nimport {useSelector} from 'react-redux';\nimport {CommentsContainer, COMMENTS_CONTAINER_VISIBILITY_AREA, EntityTypeIcon, EntityUriLink} from '@reltio/components';\nimport {\n CollaborationObjectTypes,\n ConnectionEntity,\n ConnectionRelation,\n createRelatedObjectUris,\n getEntityUriForLink,\n getLabel,\n TEntityType\n} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {\n entity: ConnectionEntity;\n relation: ConnectionRelation;\n entityType: TEntityType;\n };\n isInactiveRelation?: boolean;\n};\n\nconst EntityProfileRenderer = ({value: {entity, entityType, relation}, isInactiveRelation}: Props) => {\n const styles = useStyles();\n const currentEntityUri = useSelector(mdmModule.selectors.getEntityUri);\n return (\n <div className={classnames(styles.entityCell, COMMENTS_CONTAINER_VISIBILITY_AREA)}>\n <EntityTypeIcon\n className={classnames(styles.entityAvatar, {[styles.inactiveEntityAvatar]: isInactiveRelation})}\n entityType={entityType}\n />\n <EntityUriLink\n value={getEntityUriForLink({uri: entity.entityUri, dataTenant: entity.dataTenant})}\n className={styles.entityLabel}\n >\n {getLabel(entity.entityLabel)}\n </EntityUriLink>\n <div className={styles.commentsContainer} onClick={(e) => e.stopPropagation()}>\n <CommentsContainer\n uri={relation.relationUri}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.RELATION, {\n entityUri: currentEntityUri,\n connection: {relation, entity}\n })}\n objectType={CollaborationObjectTypes.RELATION}\n allowOnlyOneComment\n />\n </div>\n </div>\n );\n};\n\nexport default EntityProfileRenderer;\n","import React from 'react';\nimport {ReadOnlyAttributesList} from '@reltio/components';\nimport {AttributeType, RecordAttributesType} from '@reltio/mdm-sdk';\nimport {RelationshipsTableColumnData} from '../../../types';\nimport {useStyles} from './styles';\n\ntype Props = {\n columnData: RelationshipsTableColumnData;\n value: {\n attributeTypes: AttributeType[];\n attributes: RecordAttributesType;\n };\n};\n\nconst AttributesRenderer = ({columnData, value: {attributes, attributeTypes}}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={styles.attributesWrapper} onClick={(e) => e.stopPropagation()}>\n <ReadOnlyAttributesList\n max={columnData.maxAttrsToShow}\n entity={{attributes}}\n attrTypes={attributeTypes}\n drawLines={false}\n />\n </div>\n );\n};\n\nexport default AttributesRenderer;\n","import React from 'react';\nimport {DataTypeValue} from '@reltio/components';\nimport {useStyles} from './styles';\nimport {RelationshipsTableColumnData} from '../../../types';\n\ntype Props = {\n columnData: RelationshipsTableColumnData;\n value: unknown;\n};\n\nconst DefaultCellValueRenderer = ({value, columnData: {dataTypeDefinition}}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.defaultWrapper}>\n <DataTypeValue value={value} dataTypeDefinition={dataTypeDefinition} />\n </div>\n );\n};\n\nexport default DefaultCellValueRenderer;\n","import {assoc, split, slice, values, length, path, cond, map, pathEq, pipe, reduce, T} from 'ramda';\nimport {defaultGetRowCellHeight} from '@reltio/components';\nimport {Connection, getEntityType, getRelationType, getOvAttributeValuesByPath, Metadata} from '@reltio/mdm-sdk';\nimport HeadCellRenderer from './cell-renderers/HeadCellRenderer';\nimport EntityProfileRenderer from './cell-renderers/EntityProfileRenderer';\nimport AttributesRenderer from './cell-renderers/AttributesRenderer';\nimport DefaultCellValueRenderer from './cell-renderers/DefaultCellValueRenderer';\nimport {RelationshipsTableColumnData} from '../../types';\n\nconst getAttrPathFromColumnId = pipe(split('.'), slice(2, Infinity));\n\nconst getRelationAttributeValues = (attrPath, relation) =>\n pipe(path(['object', 'attributes']), getOvAttributeValuesByPath(attrPath))(relation);\n\nconst getRowValueByColumnId = (metadata: Metadata, {entity, relation}: Connection, columnId: string) => {\n switch (columnId) {\n case 'entity.label':\n return {entity, entityType: getEntityType(metadata, entity.entityType), relation};\n case 'relation.type':\n return relation.relationType;\n case 'relation.label':\n return relation.relationLabel;\n case 'relation.activeness.startDate':\n return relation.startDate;\n case 'relation.activeness.endDate':\n return relation.endDate;\n case 'relation.attributes':\n return {\n attributes: relation.object.attributes,\n attributeTypes: getRelationType(metadata, relation.relationType).attributes\n };\n default: {\n const attrPath = getAttrPathFromColumnId(columnId);\n return getRelationAttributeValues(attrPath, relation);\n }\n }\n};\n\nconst getBasicTableRowsData = (\n metadata: Metadata,\n columnsData: RelationshipsTableColumnData[],\n connections: Connection[]\n) => {\n return (connections || []).map((connection) =>\n pipe(\n reduce((acc, {id}) => assoc(id, getRowValueByColumnId(metadata, connection, id), acc), {}),\n assoc('rawValue', connection)\n )(columnsData)\n );\n};\n\nconst getNestedPathByColumnId = (columnId: string) => {\n if (columnId.startsWith('relation.attributes')) {\n const attrPath = getAttrPathFromColumnId(columnId);\n return attrPath.length > 1 ? attrPath.slice(0, -1) : null;\n } else {\n return null;\n }\n};\n\nconst getCellValueRenderer = (columnId: string) => {\n switch (columnId) {\n case 'entity.label':\n return EntityProfileRenderer;\n case 'relation.attributes':\n return AttributesRenderer;\n default:\n return DefaultCellValueRenderer;\n }\n};\n\nconst getColumnDataByColumnId = (columnData: RelationshipsTableColumnData) => ({\n sortable: true,\n resizable: true,\n ...columnData,\n headCellRenderer: HeadCellRenderer,\n nestedPath: getNestedPathByColumnId(columnData.id),\n rowCellValueRenderer: getCellValueRenderer(columnData.id)\n});\n\nconst getBasicTableColumnsData = map(getColumnDataByColumnId);\n\nconst calculateAttributesCellHeight = ({columnData, cell}) => {\n const attributesCount = pipe(path(['values', 0, 'attributes']), values, length)(cell);\n return attributesCount > columnData.maxAttrsToShow\n ? columnData.maxAttrsToShow * 26 + 49\n : attributesCount * 26 + 25;\n};\n\nconst getStaticRowCellHeight = cond([\n [pathEq(['columnData', 'id'], 'relation.attributes'), calculateAttributesCellHeight],\n [T, defaultGetRowCellHeight]\n]);\n\nexport {getBasicTableRowsData, getBasicTableColumnsData, getStaticRowCellHeight};\n","import React from 'react';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\ntype Props = {\n cell: {\n values: unknown[];\n };\n CellValueRenderer: React.ElementType;\n isInactiveRelation?: boolean;\n};\n\nconst RowCellRenderer = ({cell, CellValueRenderer, ...otherProps}: Props) => {\n const styles = useStyles();\n return (\n <div className={classnames(styles.rowCell, {[styles.inactiveRowCell]: otherProps.isInactiveRelation})}>\n {cell.values.map((value, index) => (\n <CellValueRenderer key={index} value={value} {...otherProps} />\n ))}\n </div>\n );\n};\n\nexport default RowCellRenderer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n menuItem: {\n minHeight: '32px',\n color: theme.palette.text.secondary\n },\n menuText: {\n color: theme.palette.text.primary,\n fontSize: '13px',\n lineHeight: '15px',\n letterSpacing: 0,\n marginLeft: '16px'\n },\n buttons: {\n display: 'flex',\n alignItems: 'center',\n paddingRight: '5px'\n }\n}));\n","import React, {forwardRef, ReactNode} from 'react';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {noop, withTooltip} from '@reltio/components';\nimport {useStyles} from './styles';\n\nconst MenuItemWithTooltip = withTooltip(MenuItem);\n\ntype Item = {\n text?: string;\n disabled?: boolean;\n icon: ReactNode;\n tooltip?: string;\n onClick?: (e) => void;\n};\n\ntype Props = {\n item: Item;\n onMenuClose?: () => void;\n};\n\nconst MenuItemRenderer = forwardRef(({item, onMenuClose = noop}: Props, ref: React.Ref<HTMLLIElement>) => {\n const styles = useStyles();\n const {icon, disabled, text, tooltip, onClick} = item;\n const handleClick = (e) => {\n onMenuClose();\n onClick(e);\n };\n\n return (\n <MenuItemWithTooltip\n tooltipTitle={tooltip}\n showForDisabled={true}\n classes={{root: styles.menuItem}}\n onClick={handleClick}\n disabled={disabled}\n ref={ref}\n >\n {icon}\n <Typography classes={{root: styles.menuText}}>{text}</Typography>\n </MenuItemWithTooltip>\n );\n});\nMenuItemRenderer.displayName = 'MenuItemRenderer';\n\nexport default MenuItemRenderer;\n","import React, {useCallback, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport i18n from 'ui-i18n';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {ConfirmationDialog, DropDownMenuButton, noop, SmallIconButton} from '@reltio/components';\nimport MenuItemRenderer from './MenuItemRenderer';\nimport {checkMetadataPermission, Connection, getLabel, getRelationType, MetadataPermissions} from '@reltio/mdm-sdk';\nimport {pipe, prop} from 'ramda';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n disableDelete?: boolean;\n connection: Connection;\n onMenuOpen?: () => void;\n onMenuClose?: () => void;\n onDelete: () => void;\n};\n\nexport const RelationshipMenuButton = ({\n disableDelete,\n connection: {entity, relation},\n onMenuOpen = noop,\n onMenuClose = noop,\n onDelete\n}: Props) => {\n const styles = useStyles();\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const hasDeletePermission = pipe(\n prop('relationType'),\n getRelationType(metadata),\n checkMetadataPermission(MetadataPermissions.DELETE)\n )(relation);\n\n const canDelete = !disableDelete && hasDeletePermission;\n\n const [pendingDeletion, setPendingDeletion] = useState(false);\n const showDeleteConfirmation = () => setPendingDeletion(true);\n const hideDeleteConfirmation = () => setPendingDeletion(false);\n\n const actions = [\n {\n disabled: !canDelete,\n text: i18n.text('Delete'),\n icon: <DeleteIcon />,\n tooltip: canDelete ? null : i18n.text(\"You don't have permissions to delete\"),\n onClick: showDeleteConfirmation\n }\n ];\n\n const handleMenuClose = useCallback(() => {\n if (!pendingDeletion) {\n onMenuClose();\n }\n }, [pendingDeletion, onMenuClose]);\n const truncateWithEllipsis = (text: string) => (text.length > 17 ? `${text.substring(0, 17)}...` : text);\n\n return (\n <div className={styles.buttons}>\n <DropDownMenuButton\n MenuItemRenderer={MenuItemRenderer}\n menuId={'relationships-table-actions'}\n buttonComponent={SmallIconButton}\n buttonProps={{\n icon: MoreVertIcon,\n size: 'S'\n }}\n menuItems={actions}\n onMenuOpen={onMenuOpen}\n onMenuClose={handleMenuClose}\n />\n <ConfirmationDialog\n open={pendingDeletion}\n title={i18n.text('Do you want to delete relationship \"${label}\"?', {\n label: truncateWithEllipsis(getLabel(entity.entityLabel))\n })}\n content={i18n.text(\n 'This relationship will be removed and all the values in the relationship will be permanently deleted. \\\nAre you sure you want to delete this relationship?'\n )}\n onSave={pipe(hideDeleteConfirmation, onMenuClose, onDelete)}\n onDiscard={pipe(hideDeleteConfirmation, onMenuClose)}\n saveCaption={i18n.text('Delete')}\n discardCaption={i18n.text('Cancel')}\n />\n </div>\n );\n};\n\nexport default RelationshipMenuButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n tableContainer: {\n flex: 1,\n overflow: 'hidden',\n display: 'flex',\n zIndex: 0\n },\n hoveredRowRightContentWrapper: {\n width: '100%',\n pointerEvents: 'none!important' as any\n },\n menuButtonContainer: {\n position: 'absolute',\n top: 'calc(50% - 12px)',\n right: 0,\n pointerEvents: 'all'\n },\n tooltipAnchor: {\n width: '100%',\n height: '1px'\n }\n});\n","import React, {ForwardedRef, memo, useCallback, useMemo, useState} from 'react';\nimport {Connection, isActiveObject, Metadata} from '@reltio/mdm-sdk';\nimport {\n BasicTable,\n ColumnData,\n ColumnFilter,\n RowCellAutoSizer,\n Sorting,\n useDynamicRowCellHeight\n} from '@reltio/components';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {getBasicTableColumnsData, getBasicTableRowsData, getStaticRowCellHeight} from './helpers';\nimport RowCellRenderer from './cell-renderers/RowCellRenderer';\nimport {either} from 'ramda';\nimport RelationshipMenuButton from '../RelationshipMenuButton/RelationshipMenuButton';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n metadata: Metadata;\n connections: Connection[];\n columnsData: ColumnData[];\n sorting: Sorting;\n onSort: (field: string) => void;\n filters?: Record<string, ColumnFilter>;\n onFilter: (event: {columnId: string; filter: ColumnFilter}) => void;\n onRowClick: (rowIndex: number) => void;\n onDelete: (relationUri: string) => void;\n tableRef: ForwardedRef<unknown>;\n readOnly?: boolean;\n};\n\nconst RelationshipsTable = ({\n metadata,\n connections,\n columnsData,\n sorting,\n onSort,\n filters,\n onFilter,\n onRowClick,\n tableRef,\n onDelete,\n readOnly\n}: Props) => {\n const styles = useStyles();\n\n const tableRowsData = useMemo(() => getBasicTableRowsData(metadata, columnsData, connections), [\n metadata,\n connections,\n columnsData\n ]);\n const tableColumnsData = useMemo(() => getBasicTableColumnsData(columnsData), [columnsData]);\n\n const {getDynamicRowCellHeight, changeRowCellHeight} = useDynamicRowCellHeight();\n const getRowCellHeight = useCallback(either(getDynamicRowCellHeight, getStaticRowCellHeight), [\n getDynamicRowCellHeight,\n getStaticRowCellHeight\n ]);\n const [hoverRowIndex, setHoverRowIndex] = useState<number>(null);\n\n const renderRowCell = useCallback(\n (props) => {\n const isInactiveRelation = !isActiveObject(props.rowValue.rawValue.relation);\n return (\n <RowCellAutoSizer onChangeHeight={changeRowCellHeight} {...props}>\n <RowCellRenderer {...props} isInactiveRelation={isInactiveRelation} />\n </RowCellAutoSizer>\n );\n },\n [changeRowCellHeight]\n );\n\n const [isActionsMenuOpen, setIsActionsMenuOpen] = useState(false);\n\n const handleActionsMenuOpen = useCallback(() => setIsActionsMenuOpen(true), []);\n const handleActionsMenuClose = useCallback(() => {\n setHoverRowIndex(null);\n setIsActionsMenuOpen(false);\n }, []);\n\n const onRowHover = useCallback(\n (rowIndex) => setHoverRowIndex((prevHoverRowIndex) => (isActionsMenuOpen ? prevHoverRowIndex : rowIndex)),\n [isActionsMenuOpen]\n );\n\n const hoveredRowRightContent = useMemo(() => {\n const connection: Connection = hoverRowIndex != null ? tableRowsData[hoverRowIndex].rawValue : null;\n const isInactiveRelation = !isActiveObject(connection?.relation);\n\n return (\n connection && (\n <>\n <Tooltip\n key={connection.relation.relationUri}\n open={isInactiveRelation}\n title={i18n.text('Inactive')}\n >\n <div className={styles.tooltipAnchor} />\n </Tooltip>\n <div className={styles.menuButtonContainer}>\n <RelationshipMenuButton\n disableDelete={readOnly}\n connection={connection}\n onMenuOpen={handleActionsMenuOpen}\n onMenuClose={handleActionsMenuClose}\n onDelete={() => onDelete(connection.relation.relationUri)}\n />\n </div>\n </>\n )\n );\n }, [onDelete, tableRowsData, hoverRowIndex]);\n\n return (\n <div className={styles.tableContainer}>\n <BasicTable\n fixFirstColumn={true}\n columnsData={tableColumnsData}\n rowsData={tableRowsData}\n sorting={sorting}\n onSort={onSort}\n filters={filters}\n onFilter={onFilter}\n defaultColumnWidth={250}\n defaultColumnMinWidth={200}\n headRowHeight={48}\n getRowCellHeight={getRowCellHeight}\n renderRowCell={renderRowCell}\n onRowClick={onRowClick}\n ref={tableRef}\n hoverStateEnabled={true}\n hoverRowIndex={hoverRowIndex}\n onRowHover={onRowHover}\n hoveredRowRightContent={hoveredRowRightContent}\n classes={{\n hoveredRowRightContentWrapper: styles.hoveredRowRightContentWrapper\n }}\n />\n </div>\n );\n};\n\nexport default memo(RelationshipsTable);\n","import {AttributeType, Relation} from '@reltio/mdm-sdk';\nimport {CrosswalksByTypes, groupCrosswalksByTypesAndSources} from '@reltio/components';\nimport {assoc, map, pipe, propOr} from 'ramda';\n\ntype TableRow = {\n source: string;\n crosswalksByTypes: CrosswalksByTypes;\n};\n\nexport const buildTableRowsData = (relation: Relation, selectedAttributeTypes: AttributeType[] = []): TableRow[] => {\n return pipe(\n propOr([], 'crosswalks'),\n map(assoc('ownerType', 'entity')),\n groupCrosswalksByTypesAndSources(relation.type, selectedAttributeTypes)\n )(relation);\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n tableRow: {\n '& + &': {\n marginTop: '4px'\n },\n margin: 'auto',\n maxWidth: '448px'\n }\n}));\n","import React, {memo, useCallback, useMemo, useState} from 'react';\nimport {\n AttributeType,\n checkCanDeleteCrosswalk,\n checkCanEditCrosswalk,\n getRelationType,\n Metadata,\n Relation,\n TRelationType\n} from '@reltio/mdm-sdk';\nimport {DeleteCrosswalkEvent, EditCrosswalkEvent, SourceCrosswalksRow} from '@reltio/components';\nimport {append, ifElse, includes, without} from 'ramda';\nimport {buildTableRowsData} from './helpers';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n readOnly?: boolean;\n relation: Relation;\n metadata: Metadata;\n selectedAttributeTypes?: AttributeType[];\n onDeleteCrosswalk: (event: DeleteCrosswalkEvent) => void;\n onEditCrosswalk: (event: EditCrosswalkEvent) => void;\n};\n\nconst LegendTable = ({\n readOnly,\n relation,\n metadata,\n selectedAttributeTypes,\n onDeleteCrosswalk,\n onEditCrosswalk\n}: Props) => {\n const styles = useStyles();\n\n const relationType: TRelationType = getRelationType(metadata, relation.type);\n\n const rowsData = useMemo(() => buildTableRowsData(relation, selectedAttributeTypes), [\n relation,\n selectedAttributeTypes\n ]);\n const [expandedSources, setExpandedSources] = useState<string[]>([]);\n\n const handleDelete = useCallback(\n (crosswalkId: string) => {\n onDeleteCrosswalk({entityUri: relation.uri, crosswalkId});\n },\n [onDeleteCrosswalk, relation.uri]\n );\n\n const handleEdit = useCallback(\n (event: Omit<EditCrosswalkEvent, 'entityUri'>) => {\n onEditCrosswalk({entityUri: relation.uri, ...event});\n },\n [onEditCrosswalk, relation.uri]\n );\n\n return (\n <div>\n {rowsData.map(({source, crosswalksByTypes}) => {\n return (\n <div key={source} className={styles.tableRow}>\n <SourceCrosswalksRow\n source={source}\n crosswalksByTypes={crosswalksByTypes}\n expanded={expandedSources.includes(source)}\n disableEditCrosswalk={!checkCanEditCrosswalk(relationType) || readOnly}\n disableDeleteCrosswalk={!checkCanDeleteCrosswalk(relationType) || readOnly}\n onEdit={handleEdit}\n onDelete={handleDelete}\n onToggleExpanded={() => {\n setExpandedSources(ifElse(includes(source), without([source]), append(source)));\n }}\n />\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default memo(LegendTable);\n","import {makeStyles, Theme} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n header: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n padding: '20px 12px',\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)'\n },\n title: {\n fontWeight: 500,\n fontSize: '20px',\n lineHeight: '23px',\n letterSpacing: '0.25px',\n color: theme.palette.text.primary,\n marginLeft: '12px'\n },\n hint: {\n color: theme.palette.text.secondary,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n alignSelf: 'flex-start',\n margin: '4px 14px 10px'\n },\n hintText: {\n marginLeft: '8px',\n fontSize: '12px',\n lineHeight: '16px'\n },\n buttons: {\n display: 'flex',\n padding: '8px 6px 4px'\n },\n buttonLabel: {\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '16px'\n },\n icon: {\n fontSize: '18px',\n marginRight: '8px'\n },\n editor: {\n paddingLeft: 25,\n margin: 'auto',\n maxWidth: '448px',\n boxSizing: 'border-box',\n marginBottom: '4px'\n },\n tableContainer: {\n overflowY: 'auto',\n overflowX: 'hidden',\n paddingLeft: '16px',\n paddingRight: '6px'\n }\n}));\n","import React, {memo, useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport InfoIcon from '@material-ui/icons/Info';\nimport AddIcon from '@material-ui/icons/Add';\nimport {Button as Button} from '@material-ui/core';\nimport LegendTable from '../LegendTable/LegendTable';\nimport {\n AttributeType,\n checkCanCreateCrosswalk,\n getRelationType,\n Metadata,\n Relation,\n TRelationType\n} from '@reltio/mdm-sdk';\nimport {\n AddCrosswalkEvent,\n CrosswalkEditor,\n DeleteCrosswalkEvent,\n EditCrosswalkEvent,\n withTooltip\n} from '@reltio/components';\n\nimport {useStyles} from './styles';\n\nconst ButtonWithTooltip = withTooltip(Button);\n\ntype Props = {\n className?: string;\n readOnly?: boolean;\n relation: Relation;\n selectedAttributeTypes?: AttributeType[];\n onAddCrosswalk: (event: AddCrosswalkEvent) => void;\n onDeleteCrosswalk: (event: DeleteCrosswalkEvent) => void;\n onEditCrosswalk: (event: EditCrosswalkEvent) => void;\n};\n\nconst LegendPanel = ({\n className,\n readOnly,\n relation,\n selectedAttributeTypes,\n onAddCrosswalk,\n onDeleteCrosswalk,\n onEditCrosswalk\n}: Props) => {\n const styles = useStyles();\n\n const metadata: Metadata = useSelector(mdmModule.selectors.getMetadata);\n const relationType: TRelationType = getRelationType(metadata, relation.type);\n\n const [openEditor, setOpenEditor] = useState(false);\n const canAdd = checkCanCreateCrosswalk(relationType) && !readOnly;\n\n return (\n <div className={className}>\n <div className={styles.header}>\n <span className={styles.title}>{i18n.text('Legend')}</span>\n </div>\n <div className={styles.buttons}>\n <ButtonWithTooltip\n color=\"primary\"\n showForDisabled={true}\n disabled={!canAdd}\n tooltipTitle={canAdd ? null : i18n.text(\"You don't have permissions to add crosswalk\")}\n onClick={() => setOpenEditor(true)}\n >\n <AddIcon className={styles.icon} />\n <div className={styles.buttonLabel}>{i18n.text('Crosswalk')}</div>\n </ButtonWithTooltip>\n </div>\n <div className={styles.hint}>\n <InfoIcon className={styles.icon} />\n <span className={styles.hintText}>\n {i18n.text('You can drag a crosswalk to add values to attributes swimlanes')}\n </span>\n </div>\n <div className={styles.tableContainer}>\n {openEditor && (\n <CrosswalkEditor\n className={styles.editor}\n onAdd={(crosswalk) => onAddCrosswalk({entity: relation, crosswalk})}\n onClose={() => setOpenEditor(false)}\n />\n )}\n <LegendTable\n readOnly={readOnly}\n metadata={metadata}\n relation={relation}\n selectedAttributeTypes={selectedAttributeTypes}\n onDeleteCrosswalk={onDeleteCrosswalk}\n onEditCrosswalk={onEditCrosswalk}\n />\n </div>\n </div>\n );\n};\n\nexport default memo(LegendPanel);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n entityInfo: {\n flex: '0 1 auto',\n overflow: 'hidden',\n minWidth: '100px'\n },\n entityLabelContainer: {\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden'\n },\n entityLabel: {\n lineHeight: '1.2',\n letterSpacing: '0.25px',\n color: theme.palette.text.primary\n },\n infoIcon: {\n fontSize: '16px',\n color: theme.palette.text.secondary,\n marginLeft: '5px'\n },\n profileBand: {\n margin: '-10px',\n maxWidth: '500px'\n },\n entityTypeBadge: {\n marginTop: '7px'\n }\n}));\n","import React from 'react';\nimport {Entity, getLabel} from '@reltio/mdm-sdk';\nimport {Typography as Typography} from '@material-ui/core';\nimport {ExpandedValueTooltip, LightArrowTooltip, ProfileBand, EntityTypeBadge} from '@reltio/components';\nimport InfoIcon from '@material-ui/icons/Info';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n};\n\nconst EntityInfo = ({entity}: Props) => {\n const styles = useStyles();\n const label = getLabel(entity.label);\n return (\n <div className={styles.entityInfo}>\n <div className={styles.entityLabelContainer}>\n <ExpandedValueTooltip value={label}>\n <Typography variant=\"h6\" className={styles.entityLabel} noWrap>\n {label}\n </Typography>\n </ExpandedValueTooltip>\n <LightArrowTooltip\n title={<ProfileBand className={styles.profileBand} entity={entity} />}\n placement={'right'}\n >\n <InfoIcon className={styles.infoIcon} />\n </LightArrowTooltip>\n </div>\n <EntityTypeBadge className={styles.entityTypeBadge} entity={entity} size={'medium'} />\n </div>\n );\n};\n\nexport default EntityInfo;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n root: {\n flexShrink: 0,\n overflow: 'hidden',\n width: '110px'\n },\n label: {\n color: theme.palette.text.secondary,\n fontSize: '13px'\n }\n}));\n","import React from 'react';\nimport {ConnectionRelation} from '@reltio/mdm-sdk';\nimport {Typography as Typography} from '@material-ui/core';\nimport {ExpandedValueTooltip} from '@reltio/components';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n relation: ConnectionRelation;\n};\n\nconst RelationDirection = ({relation}: Props) => {\n const styles = useStyles();\n const {direction, relationLabel} = relation;\n return (\n <div className={styles.root}>\n <ExpandedValueTooltip value={relationLabel}>\n <Typography variant={'subtitle2'} className={styles.label} align={'center'} noWrap>\n {relationLabel}\n </Typography>\n </ExpandedValueTooltip>\n <svg width=\"110\" height=\"12\" fill=\"black\" fillOpacity=\"0.3\">\n {direction === 'out' && <polygon points=\"94 0, 110 6, 94 12, 94 9, 0 9, 0 3, 94 3\" />}\n {direction === 'bidirectional' && (\n <polygon points=\"94 0, 110 6, 94 12, 94 9, 16 9, 16 12, 0 6, 16 0, 16 3, 94 3\" />\n )}\n {direction === 'in' && <polygon points=\"16 12, 0 6, 16 0, 16 3, 110 3, 110 9, 16 9\" />}\n </svg>\n </div>\n );\n};\n\nexport default RelationDirection;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n root: {\n '&:hover $editButton': {\n visibility: 'visible'\n }\n },\n editButton: {\n visibility: 'hidden',\n marginLeft: '4px',\n marginBottom: '4px'\n },\n paper: {\n width: '150px',\n border: '3px solid rgba(0, 0, 0, 0.3)',\n borderRadius: '4px',\n boxSizing: 'border-box',\n overflow: 'hidden'\n }\n}));\n","import React, {KeyboardEvent, useRef, useState} from 'react';\nimport {formatDate} from '@reltio/mdm-sdk';\nimport {DateEditor, SmallIconButton} from '@reltio/components';\nimport EditIcon from '@material-ui/icons/Edit';\nimport {Popover as Popover} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n value: number;\n onChange: (value: number) => void;\n readOnly?: boolean;\n};\n\nconst RelationDate = ({value = null, onChange, readOnly}: Props) => {\n const styles = useStyles();\n const ref = useRef<HTMLSpanElement>();\n\n const [showEditor, setShowEditor] = useState(false);\n const openEditor = () => setShowEditor(true);\n const closeEditor = () => setShowEditor(false);\n\n const [editedValue, setEditedValue] = useState(value);\n\n const applyChangesAndClose = () => {\n if (editedValue !== value) {\n onChange(editedValue);\n }\n closeEditor();\n };\n\n const onKeyUp = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter') applyChangesAndClose();\n else if (event.key === 'Escape') closeEditor();\n };\n\n return (\n <span ref={ref} className={styles.root}>\n {value && formatDate(value)}\n <SmallIconButton\n disabled={readOnly}\n icon={EditIcon}\n size={'XXS'}\n className={styles.editButton}\n onClick={openEditor}\n />\n <Popover\n classes={{paper: styles.paper}}\n open={showEditor}\n anchorEl={ref.current}\n anchorOrigin={{vertical: 'top', horizontal: 'left'}}\n transformOrigin={{vertical: 14, horizontal: 20}}\n onKeyUp={onKeyUp}\n onBackdropClick={applyChangesAndClose}\n >\n <DateEditor\n InputProps={{\n autoFocus: true,\n disableUnderline: true,\n fullWidth: true\n }}\n size={'small'}\n hiddenLabel={true}\n label={undefined}\n value={editedValue && new Date(editedValue)}\n onChange={(value) => setEditedValue(value && value.valueOf())}\n />\n </Popover>\n </span>\n );\n};\n\nexport default RelationDate;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n relationBand: {\n flexShrink: 0,\n boxShadow: 'inset 0px -1px 0px rgba(0,0,0,0.06)',\n padding: '16px 19px'\n },\n inactiveRelationBand: {\n opacity: 0.6,\n background: 'rgba(185, 188, 197, 0.18)'\n },\n toolbar: {\n display: 'flex',\n alignItems: 'center',\n gap: '16px',\n marginBottom: '10px'\n },\n mainInfo: {\n display: 'flex',\n gap: '16px',\n marginLeft: '40px'\n },\n detailsInfo: {\n display: 'flex',\n gap: '34px',\n marginLeft: '40px',\n marginTop: '17px',\n color: theme.palette.text.secondary,\n fontSize: '13px'\n },\n detailTitle: {\n color: theme.palette.text.primary,\n flexShrink: 0,\n marginRight: '4px'\n },\n directionalLabel: {\n display: 'flex',\n overflow: 'hidden',\n '& span': {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }\n },\n relationDate: {\n flexShrink: 0\n },\n commentsContainer: {\n marginRight: '18px'\n }\n}));\n","import React, {memo} from 'react';\nimport {CollaborationObjectTypes, Connection, createRelatedObjectUris, Entity, isActiveObject} from '@reltio/mdm-sdk';\nimport {\n CommentsContainer,\n COMMENTS_CONTAINER_VISIBILITY_AREA,\n ExpandedValueTooltip,\n SmallIconButton,\n Spacer\n} from '@reltio/components';\nimport classnames from 'classnames';\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\nimport {Typography as Typography} from '@material-ui/core';\nimport EntityInfo from './EntityInfo/EntityInfo';\nimport RelationDirection from './RelationDirection/RelationDirection';\nimport RelationDate from './RelationDate/RelationDate';\nimport RelationshipMenuButton from '../RelationshipMenuButton/RelationshipMenuButton';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n readOnly?: boolean;\n entity: Entity;\n connection: Connection;\n onNavigateBack: () => void;\n onDelete: () => void;\n onChangeActivenessDate: (attributeName: string, value: number) => void;\n};\n\nconst RelationshipBand = ({readOnly, entity, connection, onNavigateBack, onDelete, onChangeActivenessDate}: Props) => {\n const isInactiveRelation = !isActiveObject(connection.relation);\n const styles = useStyles();\n return (\n <div\n className={classnames(styles.relationBand, COMMENTS_CONTAINER_VISIBILITY_AREA, {\n [styles.inactiveRelationBand]: isInactiveRelation\n })}\n >\n <div className={styles.toolbar}>\n <SmallIconButton icon={ArrowBackIcon} size={'S'} onClick={() => onNavigateBack()} />\n <Typography variant={'subtitle2'} display={'inline'}>\n {i18n.text('Back to relationships')}\n </Typography>\n <Spacer />\n <div className={styles.commentsContainer}>\n <CommentsContainer\n uri={connection.relation.relationUri}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.RELATION, {\n entityUri: entity?.uri,\n connection\n })}\n objectType={CollaborationObjectTypes.RELATION}\n allowOnlyOneComment\n />\n </div>\n <RelationshipMenuButton connection={connection} onDelete={onDelete} disableDelete={readOnly} />\n </div>\n <div className={styles.mainInfo}>\n <EntityInfo entity={entity} />\n <RelationDirection relation={connection.relation} />\n <EntityInfo entity={{...connection.entity.object, dataTenant: connection.entity.dataTenant}} />\n </div>\n <div className={styles.detailsInfo}>\n <div className={styles.directionalLabel}>\n <span className={styles.detailTitle}>{i18n.text('Directional label:')}</span>\n <ExpandedValueTooltip value={connection.relation.relationLabel}>\n <span>{connection.relation.relationLabel}</span>\n </ExpandedValueTooltip>\n </div>\n <div className={styles.relationDate}>\n <span className={styles.detailTitle}>{i18n.text('Start date:')}</span>\n <RelationDate\n value={connection.relation.startDate}\n onChange={(value) => onChangeActivenessDate('startDate', value)}\n readOnly={readOnly}\n />\n </div>\n <div className={styles.relationDate}>\n <span className={styles.detailTitle}>{i18n.text('End date:')}</span>\n <RelationDate\n value={connection.relation.endDate}\n onChange={(value) => onChangeActivenessDate('endDate', value)}\n readOnly={readOnly}\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport default memo(RelationshipBand);\n","import {ErrorPopup} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {getRequestErrorMessage} from '@reltio/mdm-sdk';\n\nexport const showErrorMessage = (error: unknown) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: getRequestErrorMessage(error, i18n.text('Something went wrong'))\n });\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n detailsView: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: 'hidden'\n },\n locked: {\n pointerEvents: 'none'\n },\n resizablePanesWrapper: {\n flexGrow: 1\n },\n pane: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden'\n }\n});\n","import React, {memo, useCallback, useMemo, useState} from 'react';\nimport classnames from 'classnames';\nimport {\n ApiError,\n ApiErrorCode,\n AttributeType,\n Connection,\n deleteActivenessAttribute,\n Entity,\n getRelation,\n Relation,\n updateActivenessAttribute\n} from '@reltio/mdm-sdk';\nimport {\n AttributesTable,\n BasicView,\n CrosswalkDragLayer,\n CrosswalksDisplayProvider,\n ExpandedAttributesProvider,\n ResizablePanes,\n useCrosswalkActions,\n useModifiedEntity,\n useSafePromise\n} from '@reltio/components';\nimport LegendPanel from '../LegendPanel/LegendPanel';\nimport RelationshipBand from '../RelationshipBand/RelationshipBand';\nimport {assocPath, dissocPath, pipe} from 'ramda';\nimport {showErrorMessage} from '../../services/errors';\nimport {useCrosswalksDisplay} from '../../hooks/useCrosswalksDisplay';\nimport HTML5Backend from 'react-dnd-html5-backend';\nimport {DndProvider} from 'react-dnd';\n\nimport {useStyles} from './styles';\n\nconst MIN_PANE1_SIZE = 600;\nconst MIN_PANE2_SIZE = 480;\nconst MAX_PANE1_SIZE = -MIN_PANE2_SIZE;\n\ntype Props = {\n entity: Entity;\n connection: Connection;\n visibleColumns?: string[];\n onClose: (error?: ApiError) => void;\n onDeleteConnection: () => void;\n onChangeConnection: (connection: Connection) => void;\n onChangeVisibleColumns: (visibleColumns: string[]) => void;\n readOnly?: boolean;\n};\n\nconst RelationshipDetails = ({\n entity,\n connection,\n visibleColumns,\n onClose,\n onDeleteConnection,\n onChangeConnection,\n onChangeVisibleColumns,\n readOnly\n}: Props) => {\n const styles = useStyles();\n const displayProps = useCrosswalksDisplay();\n const [paneSize, setPaneSize] = useState(MAX_PANE1_SIZE);\n const handlePaneSizeChange = useCallback(({percentageSize}) => setPaneSize(percentageSize), []);\n\n const [selectedAttrTypes, setSelectedAttrTypes] = useState<AttributeType[]>();\n const [isLoading, setIsLoading] = useState(false);\n const relationUri = connection.relation.relationUri;\n\n const safePromise = useSafePromise();\n const onLoad = useCallback(() => setIsLoading(true), []);\n const onLoaded = useCallback(() => setIsLoading(false), []);\n const onDeleteRelation = useCallback(pipe(onDeleteConnection, onLoad), []);\n const [onError, reloadRelation] = useMemo(() => {\n const onError = (error: ApiError) => {\n if (error.errorCode === ApiErrorCode.CROSSWALK_NOT_FOUND) {\n showErrorMessage(error);\n reloadRelation();\n } else if (error.errorCode === ApiErrorCode.OBJECT_NOT_FOUND) {\n onClose(error);\n } else {\n showErrorMessage(error);\n onLoaded();\n }\n };\n const reloadRelation = () => {\n safePromise(getRelation(relationUri))\n .then((newRelation: Relation) => {\n onChangeConnection(assocPath(['relation', 'object'], newRelation, connection));\n onLoaded();\n })\n .catch(onError);\n };\n return [onError, reloadRelation];\n }, [connection, onLoaded, onChangeConnection, onClose]);\n\n const {\n modifiedEntity,\n crosswalksMap,\n newlyCreatedAttributes,\n onPinAttribute,\n onIgnoreAttribute,\n onAddAttribute,\n onEditAttribute,\n onDeleteAttribute\n } = useModifiedEntity({\n entity: connection.relation.object,\n onModify: reloadRelation,\n onError,\n onLoad\n });\n\n const {addCrosswalk, deleteCrosswalk, editCrosswalk} = useCrosswalkActions({\n onSuccess: reloadRelation,\n onError,\n onLoad\n });\n\n const onChangeActivenessDate = useCallback(\n (attributeName: string, value: number) => {\n onLoad();\n const request = value\n ? updateActivenessAttribute({entityUri: relationUri, attributeName, value}).then(() =>\n onChangeConnection(assocPath(['relation', attributeName], value, connection))\n )\n : deleteActivenessAttribute({entityUri: relationUri, attributeName}).then(() =>\n onChangeConnection(dissocPath(['relation', attributeName], connection))\n );\n request.then(onLoaded).catch(onError);\n },\n [connection, onLoad, onLoaded, onError]\n );\n\n return (\n <BasicView className={styles.detailsView}>\n <CrosswalksDisplayProvider {...displayProps}>\n <DndProvider backend={HTML5Backend}>\n <CrosswalkDragLayer />\n <ResizablePanes\n className={classnames(styles.resizablePanesWrapper, {[styles.locked]: isLoading})}\n orientation={'vertical'}\n size={paneSize}\n minSize={MIN_PANE1_SIZE}\n maxSize={MAX_PANE1_SIZE}\n allowResize={true}\n onChange={handlePaneSizeChange}\n >\n <div className={styles.pane}>\n <RelationshipBand\n readOnly={readOnly}\n entity={entity}\n connection={connection}\n onNavigateBack={onClose}\n onDelete={onDeleteRelation}\n onChangeActivenessDate={onChangeActivenessDate}\n />\n <ExpandedAttributesProvider attributeUris={newlyCreatedAttributes}>\n <AttributesTable\n readOnly={readOnly}\n entity={modifiedEntity}\n crosswalksMap={crosswalksMap}\n isLoading={isLoading}\n onPin={onPinAttribute}\n onIgnore={onIgnoreAttribute}\n onEdit={onEditAttribute}\n onAdd={onAddAttribute}\n onDelete={onDeleteAttribute}\n selectedAttributeTypes={selectedAttrTypes}\n onSelectAttributeTypes={setSelectedAttrTypes}\n visibleColumns={visibleColumns}\n onChangeVisibleColumns={onChangeVisibleColumns}\n />\n </ExpandedAttributesProvider>\n </div>\n <LegendPanel\n readOnly={readOnly}\n className={styles.pane}\n relation={connection.relation.object}\n selectedAttributeTypes={selectedAttrTypes}\n onAddCrosswalk={addCrosswalk}\n onDeleteCrosswalk={deleteCrosswalk}\n onEditCrosswalk={editCrosswalk}\n />\n </ResizablePanes>\n </DndProvider>\n </CrosswalksDisplayProvider>\n </BasicView>\n );\n};\n\nexport default memo(RelationshipDetails);\n","import {useCallback, useMemo, useState, useRef} from 'react';\nimport {CrosswalkBase, debounce, eqCrosswalks} from '@reltio/mdm-sdk';\nimport {any, concat} from 'ramda';\n\nexport const useCrosswalksDisplay = () => {\n const [highlightedCrosswalks, setHighlightedCrosswalks] = useState<CrosswalkBase[]>([]);\n const highlightedCrosswalksCache = useRef([]);\n const applyHighlightedCrosswalks = useCallback(\n debounce(() => {\n setHighlightedCrosswalks([...highlightedCrosswalksCache.current]);\n }, 50),\n []\n );\n const cacheHighlightedCrosswalks = useCallback(\n (arr) => {\n highlightedCrosswalksCache.current = arr;\n applyHighlightedCrosswalks(arr);\n },\n [applyHighlightedCrosswalks]\n );\n\n const setCrosswalkHighlighted = useCallback(\n (crosswalk: CrosswalkBase, highlighted: boolean) => {\n if (!crosswalk) return;\n if (highlighted) {\n cacheHighlightedCrosswalks([crosswalk]);\n } else {\n cacheHighlightedCrosswalks([]);\n }\n },\n [cacheHighlightedCrosswalks]\n );\n\n const [focusedCrosswalks, setFocusedCrosswalks] = useState<CrosswalkBase[]>([]);\n const calculateFocusedCrosswalks = (prev: CrosswalkBase[], next: CrosswalkBase[]) =>\n concat(\n prev.filter((prevCrosswalk) => !any(eqCrosswalks(prevCrosswalk), next)),\n next.filter((nextCrosswalk) => !any(eqCrosswalks(nextCrosswalk), prev))\n );\n\n const toggleCrosswalkFocus = useCallback((crosswalk: CrosswalkBase) => {\n if (!crosswalk) return;\n setFocusedCrosswalks((prevValue) => calculateFocusedCrosswalks([crosswalk], prevValue));\n }, []);\n\n return {\n highlightedCrosswalks: useMemo(() => [...highlightedCrosswalks, ...focusedCrosswalks], [\n highlightedCrosswalks,\n focusedCrosswalks\n ]),\n focusedCrosswalks,\n toggleCrosswalkFocus,\n setCrosswalkHighlighted\n };\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n relationshipsView: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflowX: 'hidden',\n overflowY: 'auto',\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif',\n display: 'flex',\n flexDirection: 'column'\n },\n '@global div[role=tooltip]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n },\n '@global div[role=presentation]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n },\n pane: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'hidden',\n position: 'relative'\n }\n});\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport {Dispatch} from 'redux';\nimport {connect} from 'react-redux';\nimport {\n always,\n andThen,\n both,\n either,\n equals,\n filter,\n identity,\n map,\n otherwise,\n pipe,\n prop,\n propEq,\n update,\n when\n} from 'ramda';\nimport mdmModule, {profile} from '@reltio/mdm-module';\nimport {\n ApiError,\n ApiErrorCode,\n checkMetadataPermission,\n CollaborationObjectTypes,\n Connection,\n Entity,\n getEntitiesMapForConnections,\n getInheritancePath,\n getRelationshipsObjectIdsForCollaboration,\n isDataTenantEntity,\n Metadata,\n MetadataPermissions,\n Mode,\n RelationshipsPerspectiveConfig,\n removeRelation,\n TRelationType\n} from '@reltio/mdm-sdk';\nimport {\n BasicTablePagination,\n CollaborationContext,\n EntitiesMapContext,\n LinearLoadIndicator,\n ProfileBand,\n ProfileBandNavigation,\n useCollaboration,\n useDidUpdateEffect,\n useRelationsLoader,\n UsersContext,\n useUsers\n} from '@reltio/components';\nimport useSavedState from '../../hooks/useSavedState';\nimport {useRelationshipsTable} from '../../hooks/useRelationshipsTable';\nimport {RelationshipsSavedState} from '../../types';\nimport {DEFAULT_COLUMNS, getColumnsData, ROWS_PER_PAGE_OPTIONS} from './helpers/tableHelpers';\nimport {buildRelationshipsFilter} from './helpers/filtersHelpers';\nimport RelationshipsTableHeader from '../RelationshipsTableHeader/RelationshipsTableHeader';\nimport RelationshipsTable from '../RelationshipsTable/RelationshipsTable';\nimport RelationshipDetails from '../RelationshipDetails/RelationshipDetails';\nimport {showErrorMessage} from '../../services/errors';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n config: RelationshipsPerspectiveConfig;\n entity: Entity;\n metadata: Metadata;\n connections: Connection[];\n total: number;\n saveState: (state: RelationshipsSavedState) => void;\n getSavedState: () => Promise<RelationshipsSavedState>;\n dispatch: Dispatch;\n};\n\nconst RelationshipsView = ({\n config,\n entity,\n metadata,\n connections,\n total,\n saveState,\n getSavedState,\n dispatch\n}: Props) => {\n const styles = useStyles();\n const tableRef = useRef();\n const users = useUsers();\n\n const isDTEntity = isDataTenantEntity(entity);\n\n const {type: entityTypeUri} = entity || {};\n const [\n {\n visibleColumns,\n filters,\n page,\n rowsPerPage,\n sorting,\n currentRelationType,\n stateToSave,\n entityTypeOfAppliedSavedState\n },\n {\n changeColumns,\n toggleFilters,\n changeFilter,\n changePage,\n changeRowsPerPage,\n toggleSort,\n changeRelationType,\n saveCurrentState,\n applySavedState\n }\n ] = useRelationshipsTable({\n defaultColumns: DEFAULT_COLUMNS,\n defaultRowsPerPage: ROWS_PER_PAGE_OPTIONS[0],\n defaultSorting: {\n field: DEFAULT_COLUMNS[0],\n order: 'asc'\n }\n });\n\n const isSavedStateApplied = entityTypeOfAppliedSavedState === entityTypeUri;\n\n const {\n isLoading: isSavedStateLoading,\n relationsTableSavedState,\n attributesTableSavedState,\n updateRelationsTableSavedState,\n updateAttributesTableSavedState\n } = useSavedState({\n getSavedState,\n saveState,\n entityTypeUri\n });\n\n const [attributesTableVisibleColumns, setAttributesTableVisibleColumns] = useState<string[]>();\n\n useEffect(() => {\n if (!isSavedStateLoading) {\n applySavedState({savedState: relationsTableSavedState, entityTypeUri});\n }\n }, [isSavedStateLoading, entityTypeUri]); // eslint-disable-line\n\n useEffect(() => {\n if (!isSavedStateLoading) {\n setAttributesTableVisibleColumns(attributesTableSavedState?.visibleColumns);\n }\n }, [isSavedStateLoading]); // eslint-disable-line\n\n useDidUpdateEffect(() => {\n if (isSavedStateApplied) {\n updateRelationsTableSavedState(stateToSave);\n }\n }, [stateToSave]);\n\n const resetPage = () => {\n changePage(0);\n };\n useDidUpdateEffect(resetPage, [entity]);\n\n const [detailedConnectionIndex, setDetailedConnectionIndex] = useState<number>();\n const hideConnectionDetails = useCallback(() => {\n setDetailedConnectionIndex(null);\n }, []);\n\n const relationTypes: TRelationType[] = useMemo(() => {\n const inheritancePath = getInheritancePath(metadata, entityTypeUri);\n const isRelatedToEntityType = ({startObject, endObject}) =>\n inheritancePath.some(either(equals(startObject.objectTypeURI), equals(endObject.objectTypeURI)));\n return metadata.relationTypes.filter(\n both(checkMetadataPermission(MetadataPermissions.READ), isRelatedToEntityType)\n );\n }, [metadata, entityTypeUri]);\n\n const columnsData = useMemo(() => getColumnsData(relationTypes, currentRelationType), [\n relationTypes,\n currentRelationType\n ]);\n const visibleColumnsData = useMemo(\n () => visibleColumns.map((id) => columnsData.find(propEq('id', id))).filter(identity),\n [visibleColumns, columnsData]\n );\n\n const relationsConfig = useMemo(() => {\n const relations = pipe(\n when(always(currentRelationType), filter(propEq('uri', currentRelationType))),\n map(prop('uri'))\n )(relationTypes);\n return {\n id: config.id,\n content: {\n inRelations: relations,\n outRelations: relations\n }\n };\n }, [config.id, currentRelationType, relationTypes]);\n\n const relationFilter = useMemo(() => buildRelationshipsFilter(filters, visibleColumnsData), [\n filters,\n visibleColumnsData\n ]);\n\n const {isLoading: isRelationsLoading, reload: reloadRelations} = useRelationsLoader({\n page,\n rowsPerPage,\n config: relationsConfig,\n entity: isSavedStateApplied ? entity : null,\n filter: relationFilter,\n mode: Mode.Viewing,\n sorting\n });\n\n const isLoading = !isSavedStateApplied || isRelationsLoading;\n\n const onSort = useCallback(pipe(toggleSort, saveCurrentState), [toggleSort, saveCurrentState]);\n const onFilter = useCallback(pipe(changeFilter, saveCurrentState), [changeFilter, saveCurrentState]);\n const onToggleFilters = useCallback(pipe(toggleFilters, saveCurrentState), [toggleFilters, saveCurrentState]);\n const onChangeColumns = useCallback(pipe(changeColumns, saveCurrentState), [changeColumns, saveCurrentState]);\n const onRelationTypeChange = useCallback(pipe(changeRelationType, saveCurrentState), [\n changeRelationType,\n saveCurrentState\n ]);\n const onChangeDetailedColumns = useCallback(\n (visibleColumns: string[]) => {\n setAttributesTableVisibleColumns(visibleColumns);\n updateAttributesTableSavedState({visibleColumns});\n },\n [updateAttributesTableSavedState]\n );\n\n const detailedConnection = connections?.[detailedConnectionIndex];\n const onChangeDetailedConnection = useCallback(\n (newConnection: Connection) => {\n dispatch(\n profile.relations.actions.relationsLoaded({\n id: config.id,\n connections: update(detailedConnectionIndex, newConnection, connections),\n total\n })\n );\n },\n [detailedConnection]\n );\n const [objectIds, objectTypes] = useMemo(() => {\n return [getRelationshipsObjectIdsForCollaboration(connections), [CollaborationObjectTypes.RELATION]];\n }, [connections]);\n\n const collaboration = useCollaboration({objectIds, objectTypes, enabled: !isDTEntity});\n const entitiesMap = useMemo(() => getEntitiesMapForConnections(connections), [connections]);\n\n const handleError = useCallback(\n (error: ApiError) => {\n showErrorMessage(error);\n if (error.errorCode === ApiErrorCode.OBJECT_NOT_FOUND) {\n reloadRelations();\n }\n },\n [reloadRelations]\n );\n\n const deleteRelation = useCallback(\n (relationUri: string) => {\n pipe(removeRelation, andThen(reloadRelations), otherwise(handleError))(relationUri);\n },\n [reloadRelations, handleError]\n );\n\n const deleteRelationAndCloseDetails = useCallback(() => {\n pipe(\n removeRelation,\n andThen(pipe(hideConnectionDetails, reloadRelations)),\n otherwise((error: ApiError) => {\n if (error.errorCode === ApiErrorCode.OBJECT_NOT_FOUND) {\n hideConnectionDetails();\n }\n handleError(error);\n })\n )(detailedConnection.relation.relationUri);\n }, [detailedConnection, reloadRelations, hideConnectionDetails, handleError]);\n\n const onCloseConnectionDetails = useCallback(\n (error?: ApiError) => {\n if (error) handleError(error);\n hideConnectionDetails();\n },\n [handleError, hideConnectionDetails]\n );\n\n return (\n <UsersContext.Provider value={users}>\n <CollaborationContext.Provider value={collaboration}>\n <EntitiesMapContext.Provider value={entitiesMap}>\n <div className={styles.relationshipsView}>\n <ProfileBand entity={entity}>\n <ProfileBandNavigation />\n </ProfileBand>\n <RelationshipsTableHeader\n total={total}\n filteringEnabled={!!filters}\n onToggleFilters={onToggleFilters}\n columnsData={columnsData}\n selectedColumns={visibleColumns}\n onChangeColumns={onChangeColumns}\n relationTypes={relationTypes}\n currentRelationType={currentRelationType}\n onRelationTypeChange={onRelationTypeChange}\n />\n <div className={styles.pane}>\n {isLoading && <LinearLoadIndicator />}\n <RelationshipsTable\n readOnly={isDTEntity}\n metadata={metadata}\n connections={connections}\n columnsData={visibleColumnsData}\n sorting={sorting}\n onSort={onSort}\n filters={filters}\n onFilter={onFilter}\n onRowClick={setDetailedConnectionIndex}\n tableRef={tableRef}\n onDelete={deleteRelation}\n />\n <BasicTablePagination\n count={total}\n rowsPerPageOptions={ROWS_PER_PAGE_OPTIONS}\n page={page}\n onChangePage={changePage}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={changeRowsPerPage}\n basicTableRef={tableRef}\n />\n </div>\n {detailedConnection && (\n <RelationshipDetails\n readOnly={isDTEntity}\n entity={entity}\n visibleColumns={attributesTableVisibleColumns}\n onChangeVisibleColumns={onChangeDetailedColumns}\n connection={detailedConnection}\n onClose={onCloseConnectionDetails}\n onDeleteConnection={deleteRelationAndCloseDetails}\n onChangeConnection={onChangeDetailedConnection}\n />\n )}\n </div>\n </EntitiesMapContext.Provider>\n </CollaborationContext.Provider>\n </UsersContext.Provider>\n );\n};\n\nconst mapStateToProps = (state, {config: {id}}) => {\n return {\n entity: mdmModule.selectors.getEntity(state),\n metadata: mdmModule.selectors.getMetadata(state),\n connections: mdmModule.selectors.getConnectionsByViewId(state, id),\n total: mdmModule.selectors.getTotalByViewId(state, id)\n };\n};\n\nexport default connect(mapStateToProps)(RelationshipsView);\n","import {buildColumnsFilter, ColumnFilter} from '@reltio/components';\nimport {FilterBuilder} from '@reltio/mdm-sdk';\nimport {RelationshipsTableColumnData} from '../../../types';\n\nexport const buildRelationshipsFilter = (\n filters: Record<string, ColumnFilter>,\n columnsData: RelationshipsTableColumnData[]\n) => {\n const filtersClause = buildColumnsFilter(columnsData, filters);\n\n return new FilterBuilder().addClause(filtersClause).build();\n};\n","import React, {useCallback} from 'react';\nimport {Provider} from 'react-redux';\nimport {Store} from 'redux';\n\nimport MomentUtils from '@date-io/moment';\nimport {createGenerateClassName, StylesProvider} from '@material-ui/core/styles';\nimport ReactResizeDetector from 'react-resize-detector';\nimport {MuiPickersUtilsProvider} from '@material-ui/pickers';\nimport {ErrorPopup, ViewIdContext} from '@reltio/components';\nimport {RelationshipsSavedState} from '../../types';\nimport RelationshipsView from './RelationshipsView';\nimport {promisifyCallback, RelationshipsPerspectiveConfig} from '@reltio/mdm-sdk';\n\nconst generateClassName = createGenerateClassName({\n productionPrefix: 'relationshipsPerspective',\n disableGlobal: true\n});\n\ntype Props = {\n config: RelationshipsPerspectiveConfig;\n store: Store<unknown>;\n onResize?: (width: number, height: number) => void;\n saveState: (state: RelationshipsSavedState) => void;\n getSavedState: (clb: (state: RelationshipsSavedState) => void) => void;\n};\n\nconst RelationshipsPerspective = ({config, store, onResize, saveState, getSavedState}: Props) => {\n const getSavedStatePromisified: () => Promise<RelationshipsSavedState> = useCallback(\n promisifyCallback(getSavedState),\n [getSavedState]\n );\n\n return (\n <Provider store={store}>\n <ViewIdContext.Provider value={config.id}>\n <StylesProvider generateClassName={generateClassName}>\n <MuiPickersUtilsProvider utils={MomentUtils}>\n <ReactResizeDetector\n handleHeight\n onResize={(width, height) => onResize?.(Math.floor(width), Math.floor(height))}\n />\n {config && (\n <RelationshipsView\n config={config}\n saveState={saveState}\n getSavedState={getSavedStatePromisified}\n />\n )}\n <ErrorPopup />\n </MuiPickersUtilsProvider>\n </StylesProvider>\n </ViewIdContext.Provider>\n </Provider>\n );\n};\n\nexport default RelationshipsPerspective;\n","import {RelationshipsView} from '@reltio/relationships';\n\nexport default RelationshipsView;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n"],"names":["MomentUtils","_a","_b","locale","instance","moment","this","yearFormat","yearMonthFormat","dateTime12hFormat","dateTime24hFormat","time12hFormat","time24hFormat","dateFormat","prototype","parse","value","format","date","isValid","isNull","getDiff","comparing","diff","isAfter","isBefore","isAfterDay","isBeforeDay","isBeforeYear","isAfterYear","startOfDay","clone","startOf","endOfDay","endOf","formatString","formatNumber","numberToFormat","getHours","get","addDays","count","subtract","Math","abs","add","setHours","hours","getMinutes","setMinutes","minutes","getSeconds","setSeconds","seconds","getMonth","isSameDay","isSame","isSameMonth","isSameYear","isSameHour","setMonth","month","getMeridiemText","ampm","startOfMonth","endOfMonth","getNextMonth","getPreviousMonth","getMonthArray","monthArray","length","prevMonth","push","getYear","setYear","year","set","mergeDateAndTime","time","getWeekdays","weekdaysShort","isEqual","getWeekArray","start","end","current","nestedWeeks","weekNumber","floor","getYearRange","startDate","endDate","years","getCalendarHeaderText","getYearText","getDatePickerHeaderText","getDateTimePickerHeaderText","getMonthText","getDayText","getHourText","getMinuteText","getSecondText","_interopRequireDefault","exports","_react","_default","default","createElement","d","buildSuggestedIds","when","identity","pipe","wrapInArrayIfNeeded","times","n","useRelationsLoader","sorting","filter","page","rowsPerPage","config","entity","relationActivityFilter","mode","isLoading","setIsLoading","useState","dispatch","useDispatch","tenant","useSelector","mdm","dtssPath","activityFilter","globalFilter","safePromise","useSafePromise","suggested","loadRelations","useCallback","uri","requestConfig","content","sortBy","field","order","returnDates","returnObjects","activeness","relation","ActivityFilter","max","offset","addGlobalFilterToQuery","undefined","configs","concat","ifElse","map","i","id","always","request","cond","prop","isTempUri","Promise","resolve","total","isDataTenantEntity","getRelationsForDataTenantEntity","entityUri","customerTenant","dataTenant","T","getRelationsForEntity","then","connections","profile","finally","isRequestSentRef","useRef","useEffect","prevMode","usePrevious","Mode","reload","DEFAULT_SAVED_STATE","relationsTable","attributesTable","RELATION_TYPE_COLUMN_ID","ATTRIBUTES_COLUMN_ID","DEFAULT_COLUMNS_DATA","label","i18n","dataTypeDefinition","type","DataTypes","hideable","filterable","initialWidth","autoResize","sortable","maxAttrsToShow","DEFAULT_COLUMNS","pluck","ALL_TYPES_COLUMNS","ROWS_PER_PAGE_OPTIONS","getColumnIdFromAttrUri","attributeUriToSearchUri","getColumnsDataFromRelationAttributes","attr","getAttrDataTypeDefinition","uniqBy","CHANGE_RELATION_TYPE","APPLY_SAVED_STATE","SAVE_CURRENT_STATE","actions","basicTableViewState","changeRelationType","createStandardAction","applySavedState","saveCurrentState","resetPageNumber","assoc","getDefaultVisibleColumnsForCurrentRelationType","state","currentRelationType","without","intersection","getSavedVisibleColumnsForCurrentRelationType","path","changeVisibleColumnsForCurrentRelationType","nextVisibleColumns","either","saveVisibleColumnsForCurrentRelationType","visibleColumns","evolve","visibleColumnsForRelationTypes","getStateToSave","pick","useStyles","makeStyles","select","fontSize","color","paddingLeft","paddingRight","selectMenu","height","textField","maxWidth","onChange","relationTypes","className","styles","entries","useMemo","DropDownEditor","displayEmpty","disableUnderline","classes","TextFieldProps","root","MenuProps","list","theme","header","boxSizing","title","palette","text","secondary","flexShrink","marginRight","relationTypeSelector","margin","overflow","memo","filteringEnabled","onToggleFilters","columnsData","selectedColumns","onRelationTypeChange","onChangeColumns","BasicViewHeader","VerticalDivider","Typography","variant","Spacer","FilterButton","enabled","onClick","ColumnsSettings","headCell","display","alignItems","width","background","rowCell","overflowWrap","inactiveRowCell","opacity","defaultWrapper","padding","paddingBottom","entityCell","entityAvatar","transform","inactiveEntityAvatar","position","backgroundColor","border","borderRadius","right","bottom","entityLabel","primary","main","textDecoration","fontWeight","attributesWrapper","commentsContainer","marginLeft","withFilterAtBottom","props","DefaultHeadCellRenderer","entityType","isInactiveRelation","currentEntityUri","mdmModule","classnames","COMMENTS_CONTAINER_VISIBILITY_AREA","EntityTypeIcon","EntityUriLink","getEntityUriForLink","getLabel","e","stopPropagation","CommentsContainer","relationUri","relatedObjectUris","createRelatedObjectUris","CollaborationObjectTypes","connection","objectType","allowOnlyOneComment","columnData","attributes","attributeTypes","attrTypes","drawLines","DataTypeValue","getAttrPathFromColumnId","split","slice","Infinity","getNestedPathByColumnId","columnId","startsWith","attrPath","getCellValueRenderer","EntityProfileRenderer","AttributesRenderer","DefaultCellValueRenderer","getBasicTableColumnsData","resizable","headCellRenderer","HeadCellRenderer","nestedPath","rowCellValueRenderer","getStaticRowCellHeight","pathEq","cell","attributesCount","values","defaultGetRowCellHeight","CellValueRenderer","otherProps","index","key","menuItem","minHeight","menuText","lineHeight","letterSpacing","buttons","MenuItemWithTooltip","withTooltip","MenuItem","MenuItemRenderer","forwardRef","ref","item","onMenuClose","noop","icon","disabled","tooltip","tooltipTitle","showForDisabled","displayName","disableDelete","onMenuOpen","onDelete","metadata","hasDeletePermission","getRelationType","checkMetadataPermission","MetadataPermissions","canDelete","pendingDeletion","setPendingDeletion","hideDeleteConfirmation","Delete","handleMenuClose","DropDownMenuButton","menuId","buttonComponent","SmallIconButton","buttonProps","MoreVertIcon","size","menuItems","ConfirmationDialog","open","substring","onSave","onDiscard","saveCaption","discardCaption","tableContainer","flex","zIndex","hoveredRowRightContentWrapper","pointerEvents","menuButtonContainer","top","tooltipAnchor","onSort","filters","onFilter","onRowClick","tableRef","readOnly","tableRowsData","reduce","acc","getEntityType","relationType","relationLabel","object","getOvAttributeValuesByPath","getRelationAttributeValues","getRowValueByColumnId","getBasicTableRowsData","tableColumnsData","getDynamicRowCellHeight","changeRowCellHeight","useDynamicRowCellHeight","getRowCellHeight","hoverRowIndex","setHoverRowIndex","renderRowCell","isActiveObject","rowValue","rawValue","RowCellAutoSizer","onChangeHeight","isActionsMenuOpen","setIsActionsMenuOpen","handleActionsMenuOpen","handleActionsMenuClose","onRowHover","rowIndex","prevHoverRowIndex","hoveredRowRightContent","Tooltip","BasicTable","fixFirstColumn","rowsData","defaultColumnWidth","defaultColumnMinWidth","headRowHeight","hoverStateEnabled","tableRow","marginTop","selectedAttributeTypes","onDeleteCrosswalk","onEditCrosswalk","propOr","groupCrosswalksByTypesAndSources","buildTableRowsData","expandedSources","setExpandedSources","handleDelete","crosswalkId","handleEdit","event","source","crosswalksByTypes","SourceCrosswalksRow","expanded","includes","disableEditCrosswalk","checkCanEditCrosswalk","disableDeleteCrosswalk","checkCanDeleteCrosswalk","onEdit","onToggleExpanded","append","flexDirection","borderBottom","hint","alignSelf","hintText","buttonLabel","editor","marginBottom","overflowY","overflowX","ButtonWithTooltip","Button","onAddCrosswalk","openEditor","setOpenEditor","canAdd","checkCanCreateCrosswalk","Add","Info","CrosswalkEditor","onAdd","crosswalk","onClose","entityInfo","minWidth","entityLabelContainer","infoIcon","profileBand","entityTypeBadge","ExpandedValueTooltip","noWrap","LightArrowTooltip","ProfileBand","placement","EntityTypeBadge","direction","align","fill","fillOpacity","points","visibility","editButton","paper","showEditor","setShowEditor","closeEditor","editedValue","setEditedValue","applyChangesAndClose","formatDate","EditIcon","Popover","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","onKeyUp","onBackdropClick","DateEditor","InputProps","autoFocus","fullWidth","hiddenLabel","Date","valueOf","relationBand","boxShadow","inactiveRelationBand","toolbar","gap","mainInfo","detailsInfo","detailTitle","directionalLabel","textOverflow","whiteSpace","relationDate","onNavigateBack","onChangeActivenessDate","ArrowBackIcon","showErrorMessage","error","console","ErrorPopup","message","getRequestErrorMessage","detailsView","left","locked","resizablePanesWrapper","flexGrow","pane","onDeleteConnection","onChangeConnection","onChangeVisibleColumns","displayProps","highlightedCrosswalks","setHighlightedCrosswalks","highlightedCrosswalksCache","applyHighlightedCrosswalks","debounce","cacheHighlightedCrosswalks","arr","setCrosswalkHighlighted","highlighted","focusedCrosswalks","setFocusedCrosswalks","toggleCrosswalkFocus","prevValue","calculateFocusedCrosswalks","prev","next","prevCrosswalk","any","eqCrosswalks","nextCrosswalk","useCrosswalksDisplay","paneSize","setPaneSize","handlePaneSizeChange","percentageSize","selectedAttrTypes","setSelectedAttrTypes","onLoad","onLoaded","onDeleteRelation","onError","reloadRelation","errorCode","ApiErrorCode","getRelation","newRelation","assocPath","catch","modifiedEntity","crosswalksMap","newlyCreatedAttributes","onPinAttribute","onIgnoreAttribute","onAddAttribute","onEditAttribute","onDeleteAttribute","useModifiedEntity","onModify","addCrosswalk","deleteCrosswalk","editCrosswalk","useCrosswalkActions","onSuccess","attributeName","updateActivenessAttribute","deleteActivenessAttribute","dissocPath","BasicView","DndProvider","backend","HTML5Backend","CrosswalkDragLayer","ResizablePanes","orientation","minSize","maxSize","allowResize","attributeUris","AttributesTable","onPin","onIgnore","onSelectAttributeTypes","relationshipsView","fontFamily","connect","saveState","getSavedState","users","useUsers","isDTEntity","entityTypeUri","stateToSave","entityTypeOfAppliedSavedState","changeColumns","toggleFilters","changeFilter","changePage","changeRowsPerPage","toggleSort","defaultColumns","defaultSorting","defaultRowsPerPage","initState","useReducer","action","nextRelationType","payload","savedState","useActions","useRelationshipsTable","isSavedStateApplied","isSavedStateLoading","relationsTableSavedState","attributesTableSavedState","updateRelationsTableSavedState","updateAttributesTableSavedState","setSavedState","changedRelationsState","setRelationsChangedState","useDidUpdateEffect","_","changedState","useSavedState","attributesTableVisibleColumns","setAttributesTableVisibleColumns","detailedConnectionIndex","setDetailedConnectionIndex","hideConnectionDetails","inheritancePath","getInheritancePath","both","startObject","endObject","some","equals","objectTypeURI","find","getReadableAttributesList","reject","updateColumnData","updateFn","options","getRelationColumnDataType","adjust","findIndex","propEq","updateRelationTypeColumn","getColumnsData","visibleColumnsData","relationsConfig","relations","inRelations","outRelations","relationFilter","filtersClause","buildColumnsFilter","FilterBuilder","addClause","build","buildRelationshipsFilter","isRelationsLoading","reloadRelations","onChangeDetailedColumns","detailedConnection","onChangeDetailedConnection","newConnection","update","objectIds","objectTypes","getRelationshipsObjectIdsForCollaboration","collaboration","useCollaboration","entitiesMap","getEntitiesMapForConnections","handleError","deleteRelation","removeRelation","andThen","otherwise","deleteRelationAndCloseDetails","onCloseConnectionDetails","UsersContext","CollaborationContext","EntitiesMapContext","ProfileBandNavigation","LinearLoadIndicator","BasicTablePagination","rowsPerPageOptions","onChangePage","onChangeRowsPerPage","basicTableRef","generateClassName","createGenerateClassName","productionPrefix","disableGlobal","store","onResize","getSavedStatePromisified","promisifyCallback","Provider","ViewIdContext","StylesProvider","MuiPickersUtilsProvider","utils","handleHeight","componentWillMount","constructor","getDerivedStateFromProps","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","name","newApiName","componentDidUpdate","maybeSnapshot","snapshot","call","__suppressDeprecationWarning"],"sourceRoot":""}