@reltio/remotes 1.4.1545 → 1.4.1547
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/122.js +2 -0
- package/122.js.map +1 -0
- package/1268.js +1 -1
- package/1852.js +2 -0
- package/1852.js.map +1 -0
- package/2125.js +1 -1
- package/2125.js.map +1 -1
- package/2890.js +1 -1
- package/2890.js.map +1 -1
- package/3346.js +2 -0
- package/3346.js.map +1 -0
- package/3396.js +1 -1
- package/3396.js.map +1 -1
- package/3468.js +2 -0
- package/3468.js.map +1 -0
- package/{574.css → 3515.css} +1 -1
- package/3515.css.map +1 -0
- package/{574.js → 3515.js} +2 -2
- package/3515.js.map +1 -0
- package/3540.js +1 -1
- package/3540.js.map +1 -1
- package/3726.js +2 -0
- package/3726.js.map +1 -0
- package/4120.js +1 -1
- package/4120.js.map +1 -1
- package/4183.js +1 -1
- package/4183.js.map +1 -1
- package/4469.js +1 -1
- package/4469.js.map +1 -1
- package/4571.js +1 -1
- package/4701.js +2 -0
- package/4701.js.map +1 -0
- package/4806.js +3 -0
- package/4806.js.map +1 -0
- package/6396.js +2 -0
- package/6396.js.map +1 -0
- package/705.js +2 -0
- package/705.js.map +1 -0
- package/7416.js +1 -1
- package/7416.js.map +1 -1
- package/7594.js +2 -0
- package/7594.js.map +1 -0
- package/769.js +1 -1
- package/769.js.map +1 -1
- package/8061.js +2 -0
- package/8061.js.map +1 -0
- package/8340.js +1 -1
- package/8340.js.map +1 -1
- package/8684.js +1 -1
- package/package.json +1 -1
- package/remoteEntry.js +1 -1
- package/remoteEntry.js.map +1 -1
- package/1308.js +0 -2
- package/1308.js.map +0 -1
- package/2663.js +0 -2
- package/2663.js.map +0 -1
- package/2899.js +0 -3
- package/2899.js.map +0 -1
- package/316.js +0 -2
- package/316.js.map +0 -1
- package/385.js +0 -2
- package/385.js.map +0 -1
- package/566.js +0 -2
- package/566.js.map +0 -1
- package/574.css.map +0 -1
- package/574.js.map +0 -1
- package/6233.js +0 -2
- package/6233.js.map +0 -1
- package/6299.js +0 -2
- package/6299.js.map +0 -1
- package/6578.js +0 -2
- package/6578.js.map +0 -1
- package/7198.js +0 -2
- package/7198.js.map +0 -1
- package/8051.js +0 -2
- package/8051.js.map +0 -1
- package/8594.js +0 -2
- package/8594.js.map +0 -1
- /package/{2899.js.LICENSE.txt → 4806.js.LICENSE.txt} +0 -0
package/122.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_reltio_remotes=self.webpackChunk_reltio_remotes||[]).push([[122],{97991:(e,t,n)=>{n.d(t,{Z:()=>u});var r,a=n(94079),i=n(71153),o=n.n(i),l=n(24328),s=n.n(l);function c(){return c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}!function(e){e[e.ICON_MODE=0]="ICON_MODE",e[e.TEXT_MODE=1]="TEXT_MODE",e[e.ERROR_MODE=2]="ERROR_MODE"}(r||(r={}));const u=e=>{let{className:t,icon:n,avatarText:i,rootClasses:u}=e,d=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,["className","icon","avatarText","rootClasses"]);const[h,p]=(0,l.useState)(null);(0,l.useEffect)((()=>{p(n?r.ICON_MODE:r.TEXT_MODE)}),[n,i]);const m=()=>{p(r.ERROR_MODE)};switch(h){case r.ICON_MODE:return s().createElement(a.Avatar,c({className:o()(t,null==u?void 0:u.iconRoot),src:n,onError:m},d));case r.TEXT_MODE:case r.ERROR_MODE:return s().createElement(a.Avatar,c({className:o()(t,null==u?void 0:u.textRoot)},d),i);default:return null}}},32528:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(13688),a=n(48852);const i=e=>t=>(0,a.l)(r.X,e,t)},60894:(e,t,n)=>{n.d(t,{Z:()=>b});var r=n(24328),a=n.n(r),i=n(13980),o=n.n(i),l=n(94656);function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}const c=e=>a().createElement("svg",s({width:20,height:18,viewBox:"0 0 20 18",xmlns:"http://www.w3.org/2000/svg"},e),a().createElement("path",{d:"M16 7.24V6h-4v1.24a8.417 8.417 0 00-2 .768V6H6v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM4 12V6H2v6h2zm0-8V2H2v2h2zm6 0V2H6v2h4zm6 0V2h-4v2h4zm-2 5a6.451 6.451 0 00-6 4.09 6.451 6.451 0 006 4.092 6.451 6.451 0 006-4.091A6.451 6.451 0 0014 9zm0 6.818a2.728 2.728 0 010-5.454 2.728 2.728 0 010 5.454zm0-4.363c-.905 0-1.636.73-1.636 1.636 0 .905.73 1.636 1.636 1.636.905 0 1.636-.73 1.636-1.636 0-.906-.73-1.636-1.636-1.636z",fill:"#000",fillRule:"nonzero",stroke:"none",strokeWidth:1,opacity:.54}));var u=n(8818),d=n(17440),h=n(47458),p=n(87918),m=n.n(p),g=n(85657);const f=e=>{let{columnsData:t,selectedColumns:n,onChangeColumns:i,title:o,tooltipTitle:l}=e;const[s,p]=(0,r.useState)(null),f=(0,r.useCallback)((e=>{const t=(0,d.pipe)(g.JJ,(0,d.pluck)("id"))(e),r=(0,g.u)(n,e);i(r?(0,d.difference)(n,t):(0,d.uniq)((0,d.concat)(n,t)))}),[n,i]);return a().createElement(a().Fragment,null,a().createElement(u.k,{tooltipTitle:l||m().text("Show/hide columns"),size:"L",icon:c,onClick:e=>p(e.currentTarget)}),a().createElement(h.G,{onColumnClick:f,anchorEl:s,columnsData:t,onClose:()=>p(null),title:o,selectedColumns:n}))};f.propTypes={columnsData:l.uz,selectedColumns:o().arrayOf(o().string),onChangeColumns:o().func,title:o().string,tooltipTitle:o().string};const b=f},47458:(e,t,n)=>{n.d(t,{G:()=>E});var r=n(24328),a=n.n(r),i=n(87918),o=n.n(i),l=n(17440),s=n(94815),c=n(44890),u=n(97820),d=n(85657),h=n(56656),p=n(54763),m=n(13980),g=n.n(m),f=n(7785),b=n(27239),y=n(71153),v=n.n(y);const x=(0,n(79692).Z)({popup:{minWidth:"200px"},groupItem:{backgroundColor:"rgba(0,0,0,0.04)"}}),C=e=>{let{item:t,onClick:n,checked:r,level:i,style:o,isFocused:l,isGroupItem:s,hideCheckBox:c}=e;const u=x();return a().createElement(f.Z,{hideCheckBox:c,key:t.id,onClick:n,checked:r,level:i,data:t,label:a().createElement(b.Z,{text:t.label,highlight:t.filterText}),labelInText:t.label,style:o,isFocused:l,hideIcon:s,className:v()({[u.groupItem]:s})})};C.propTypes={item:g().shape({label:g().string,filterText:g().string}),level:g().number,onClick:g().func,checked:g().bool,style:g().object,isGroupItem:g().bool,isFocused:g().bool,hideCheckBox:g().bool};const O=C,E=e=>{let{anchorEl:t,onClose:n,title:i,columnsData:m,onColumnClick:g,selectedColumns:f,hideCheckBox:b}=e;const y=x(),[v,C]=(0,r.useState)(""),E=(0,r.useMemo)((()=>(0,d.eX)(m,v)),[m,v]),S=(0,r.useMemo)((()=>(0,h.LG)(E)),[E]),k=(0,s.fW1)("label")(E)||308,P=(0,r.useCallback)((e=>{let{item:t}=e;return g(t)}),[g]),{focusIndex:I,handleKeyDown:T}=(0,p.t)({items:S,open:!0,onSelectFocusedItem:P,selectedItems:f,onClose:n}),w=(0,r.useCallback)((0,l.pipe)(n,(()=>C(""))),[n]),j=Math.min(300,32*S.length),N=Math.max(140,j+108);return a().createElement(u.Z,{className:y.popup,open:!!t,anchorEl:t,onClose:w,onSearch:C,title:i||o().text("Show/hide columns"),containerWidth:k,containerHeight:N,searchInputOnKeyDown:T},a().createElement(c.Z,{fixedTitle:!1,height:j,renderItem:(e,t,n)=>{let{item:r,level:i=0}=t;return a().createElement(O,{hideCheckBox:b,style:e,item:r,level:i,isFocused:I===n,checked:(0,d.u)(f,r),isGroupItem:(0,d.yf)(r),onClick:b?(0,l.pipe)(g,w):g})},items:S,getItemSize:()=>32,focusIndex:I}))}},85657:(e,t,n)=>{n.d(t,{eX:()=>b,JJ:()=>y,yf:()=>l,u:()=>v});var r=n(17440),a=n(94815);function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){o(e,t,n[t])}))}return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const l=e=>e.id===e.groupId,s=(0,r.curry)(((e,t)=>{let{id:n,groupId:r}=e;return t.groupId===r&&(n===t.id||n.startsWith(`${t.id}.`))})),c=(0,r.curry)(((e,t)=>{let{groupId:n}=e;return n===t.id})),u=(0,r.propOr)(!0,"hideable"),d=(e,t)=>{const n=((e,t)=>e.find((0,r.either)(c(t),s(t))))(e,t);return n?(n.children=d(n.children||[],t),e):e.concat(t)},h=(0,r.curry)(((e,t)=>a.P6Y.strings.search(t.label,e)||(t.children||[]).some(h(e)))),p=(0,r.reduce)(((e,t)=>d(e,{id:t.id,groupId:t.groupId,label:t.label,attrType:t.dataTypeDefinition})),[]),m=(0,r.curry)((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return(0,r.pipe)((0,r.filter)(h(e)),(0,r.chain)((t=>[{item:i({},t,{filterText:e}),level:n},...t.children?m(e,t.children,n+1):[]])))(t)})),g=(0,r.has)("columns"),f=e=>{let{id:t,label:n,columns:a}=e;return[{id:t,groupId:t,label:n},...a.map((0,r.assoc)("groupId",t))]},b=(e,t)=>(0,r.pipe)((0,r.chain)((0,r.when)(g,f)),(0,r.filter)((0,r.either)(l,u)),p,m(t))(e),y=e=>e.children?(0,r.chain)(y,e.children):[e],v=(e,t)=>{const n=y(t),r=t=>e.includes(t.id);return l(t)?n.every(r):n.some(r)}},68439:(e,t,n)=>{n.d(t,{Z:()=>p});var r=n(24328),a=n.n(r),i=n(52730),o=n(71153),l=n.n(o),s=n(94079),c=n(94815),u=n(49885),d=n(95613);const h=(0,n(79692).Z)({"entityType-overflow":{textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"},"entityType-small":{padding:"1px 4px",fontSize:"10px",lineHeight:"normal",marginRight:"12px",borderRadius:"2px",flexShrink:0},"entityType-medium":{padding:"2px 8px 3px",borderRadius:"2px",fontSize:"13px",fontWeight:500,lineHeight:"15px",marginRight:"16px",flexShrink:0}}),p=e=>{let{entity:t,className:n,size:r="small"}=e;const o=h(),p=(0,i.useSelector)(u.ZP.selectors.getMetadata),m=t.type,g=(0,c.nt9)(p,m)||{},f=(0,c.VD3)(p,g,"typeColor")||c.rSc.palette.primary.main,b=(0,c.jFi)(p,t);return a().createElement(d.Z,{value:b,placement:"top"},a().createElement(s.Typography,{style:{backgroundColor:f,color:c.P6Y.Colors.getColor(f)?"#FFFFFF":"#212121"},className:l()(o[`entityType-${r}`],o["entityType-overflow"],n),component:"div"},b))}},64459:(e,t,n)=>{n.d(t,{Z:()=>b});var r=n(24328),a=n.n(r),i=n(71153),o=n.n(i),l=n(52730),s=n(17440),c=n(94079),u=n(87918),d=n.n(u),h=n(94815),p=n(49885),m=n(53180),g=n(68439);const f=(0,n(79692).Z)((e=>({profileBandWrapper:{flexShrink:0},profileBand:{display:"flex",padding:"16px 12px 16px 16px",alignItems:"flex-start",backgroundColor:"#fff",boxShadow:"0px 1px 0px rgba(0, 0, 0, 0.12)",marginBottom:"1px","&:after":{content:'""',minHeight:"inherit",fontSize:0}},inactive:{background:e.inactiveBackground},profileIcon:{marginRight:"12px"},imageProfileIcon:{width:"48px",height:"48px"},profileInfo:{display:"flex",flexDirection:"column",flex:"1 1 50%"},badge:{},label:{lineHeight:"1.2",letterSpacing:"0.25px",color:e.palette.text.primary,wordBreak:"break-word","&+ $specialInfo":{marginTop:"4px"}},secondaryLabel:{display:"inline-flex",color:e.palette.text.primary,marginTop:"2px",lineHeight:"16px",fontSize:"14px",fontWeight:400,"&+ $businessCard":{marginLeft:"12px"}},businessCard:{color:e.palette.text.secondary,display:"inline-flex",fontSize:"14px",marginTop:"4px",lineHeight:"1.2"},specialInfo:{display:"flex",justifyContent:"space-between",flexWrap:"wrap",width:"100%",marginTop:"8px"},entityType:{display:"flex",flexWrap:"wrap"},entityId:{fontSize:"13px",color:e.palette.text.secondary,whiteSpace:"nowrap",cursor:"pointer","&:hover":{textDecoration:"underline"}}}))),b=e=>{let{className:t,entity:n,children:i,classes:u,renderLabel:b=s.identity}=e;const y=f({classes:u}),v=(0,l.useSelector)(p.ZP.selectors.getMetadata),x=(0,l.useSelector)(p.ZP.selectors.getShowEntityId),C=(0,r.useCallback)((()=>{navigator.clipboard.writeText((0,h.BTI)(n))}),[n]);if((0,s.isNil)(n))return null;const O=(0,h.idV)(n.label),E=n.secondaryLabel,S=(0,h.ptG)(v,n),k=(0,h.Fn9)(n),P=n.uri,I=(0,h.BTI)(n);return a().createElement("div",{className:o()(y.profileBandWrapper,t)},a().createElement("div",{className:o()(y.profileBand,{[y.inactive]:!k}),"data-entity-uri":P},a().createElement(m.Z,{key:n.uri,entity:n,avatarClassName:y.profileIcon,imageClassName:y.imageProfileIcon}),a().createElement("div",{className:y.profileInfo},a().createElement("div",null,a().createElement(c.Typography,{variant:"h6",className:y.label},b(O)),E&&a().createElement(c.Typography,{variant:"subtitle2",className:y.secondaryLabel},E),S&&a().createElement(c.Typography,{variant:"subtitle1",className:y.businessCard},S)),a().createElement("div",{className:y.specialInfo},a().createElement("div",{className:y.entityType},a().createElement(g.Z,{entity:n,size:"medium",className:y.badge}),!(0,h.ZiX)(P)&&x&&a().createElement(c.Tooltip,{title:d().text("Copy to clipboard")},a().createElement(c.Typography,{display:"inline",variant:"body2",className:y.entityId,onClick:C},d().text("Entity ID"),": ",I))))),i&&a().createElement("div",null,i)))}},79618:(e,t,n)=>{n.d(t,{a:()=>F});var r=n(24328),a=n.n(r),i=n(94079),o=n(67766),l=n(42767),s=n(94815),c=n(71153),u=n.n(c),d=n(17440),h=n(87918),p=n.n(h),m=n(79468),g=n(83348),f=n(8818);const b=(0,n(79692).Z)({container:{display:"flex",alignItems:"center"},link:{whiteSpace:"nowrap",marginRight:"9px"}}),y=(0,g.Z)(i.Link),v=e=>{var t;let{className:n,total:i=0,onPrev:c,onNext:h,onSearchResultsClick:g,isPrevDisabled:v,isNextDisabled:x}=e;const C=b(),O=(0,r.useContext)(m.T),{OPEN_RESULTS:E,SEARCH_RESULT:S,SEARCH_RESULTS:k,NEXT_PROFILE:P,PREVIOUS_PROFILE:I}=(0,d.mergeRight)({OPEN_RESULTS:p().text("Go to search results"),SEARCH_RESULT:p().text("Search result"),SEARCH_RESULTS:p().text("Search results"),PREVIOUS_PROFILE:p().text("Go to previous profile"),NEXT_PROFILE:p().text("Go to next profile")},null!==(t=null==O?void 0:O.profileBand)&&void 0!==t?t:{});return a().createElement("div",{className:u()(C.container,n)},a().createElement(y,{className:C.link,component:"button",variant:"caption",onClick:g,underline:"none",tooltipTitle:E},(0,s.k7L)(i,1e6)," ",1===i?S:k),a().createElement(f.k,{size:"L",icon:o.Z,tooltipTitle:I,onClick:c,disabled:v,showForDisabled:!0}),a().createElement(f.k,{size:"L",icon:l.Z,tooltipTitle:P,onClick:h,disabled:x,showForDisabled:!0}))};var x=n(52730),C=n(49885),O=n(94622),E=n(47898),S=n(54198),k=n(85229);function P(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){I(e,t,n[t])}))}return e}function I(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class T{constructor(e){var t=this;let{data:{query:n,sortField:r,sortOrder:a},tenant:i,searchTenant:o,apiPath:l,dtssPath:c,globalSearchRequestOptions:u}=e;this.query=void 0,this.sortField=void 0,this.sortOrder=void 0,this.tenant=void 0,this.searchTenant=void 0,this.apiPath=void 0,this.dtssPath=void 0,this.globalSearchRequestOptions=void 0,this.isDT=()=>this.tenant!==this.searchTenant,this.getQueryFilter=()=>({rawFilter:this.query}),this.getEntities=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=[t.getQueryFilter(),...e],a=P({},t.globalSearchRequestOptions,{sort:t.sortField,order:t.sortOrder,select:"uri,label,type",scoreEnabled:!1},n);return t.isDT()?(0,s.uqV)({filters:r,options:a,customerTenant:t.tenant,dataTenant:t.searchTenant,dtssPath:t.dtssPath}):(0,s.ZOr)(r,a)},this.checkEntity=e=>this.getEntities([{filter:"equals",fieldName:"uri",values:[e]}],{offset:0,max:1}).then((t=>t&&t.length>0&&t[0].uri===e)),this.requestEntities=(e,t)=>this.getEntities([],{offset:t,max:e}),this.requestTotal=()=>{const e=[this.getQueryFilter()],t=this.globalSearchRequestOptions;return(this.isDT()?(0,s.J$m)({filters:e,options:t,customerTenant:this.tenant,dataTenant:this.searchTenant,dtssPath:this.dtssPath}):(0,s.j_Q)(e,t)).then((e=>e.total))},this.query=n,this.sortField=r,this.sortOrder=a,this.tenant=i,this.searchTenant=o,this.apiPath=l,this.dtssPath=c,this.globalSearchRequestOptions=u}}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){j(e,t,n[t])}))}return e}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class N{constructor(e){var t=this;let{data:n,tenant:r,apiPath:a}=e;this.searchBody=void 0,this.tenant=void 0,this.apiPath=void 0,this.getEntities=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=[{rawFilter:t.searchBody.filter},...e];return(0,s.P2h)({apiPath:t.apiPath,tenant:t.tenant,searchBody:w({},t.searchBody,{filter:e.length?(0,s.Uqd)()(r):t.searchBody.filter}),options:n})},this.checkEntity=e=>this.getEntities([{filter:"equals",fieldName:"id",values:[(0,s.BTI)({uri:e})]}],{from:0,max:1}).then((t=>t&&t.length>0&&t[0].uri===e)),this.requestEntities=(e,t)=>this.getEntities([],{from:t,max:e}),this.requestTotal=()=>(0,s.dED)({apiPath:this.apiPath,tenant:this.tenant,searchBody:this.searchBody}).then((e=>e.count)),this.searchBody=n,this.tenant=r,this.apiPath=a}}function R(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){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 Z=(e,t)=>(0,d.pipe)((0,d.map)((0,d.prop)("uri")),(0,d.reject)((e=>t.includes(e))))(e),z=()=>{const e=(0,k._)(),t=(0,k._)(),n=(0,k._)(),{uri:a,index:i,total:o,tenant:l,cache:c}=(0,x.useSelector)(C.ZP.selectors.getSearchNavigationData)||{},{type:u,data:d}=(0,x.useSelector)(C.ZP.selectors.getSearchProviderData)||{},h=(0,x.useSelector)(C.ZP.selectors.getTenant),p=(0,x.useSelector)(C.ZP.selectors.getApiPath),m=(0,x.useSelector)(C.ZP.selectors.getDtssPath),g=(0,x.useSelector)((e=>C.ZP.selectors.getGlobalSearchRequestOptions(e,["ovOnly"]))),{updateEntitiesNavigationLoadingState:f}=(0,O.M)(),b=(0,r.useContext)(E.m),y=(0,x.useDispatch)(),[v,P]=(0,r.useState)(!1),I=(0,r.useMemo)((()=>((e,t)=>{switch(e){case"search":return new T(t);case"graphsearch":return new N(t)}})(u,{data:d,tenant:h,searchTenant:l,apiPath:p,dtssPath:m,globalSearchRequestOptions:g})),[u,d,h,l,p,m,g]),w=(0,r.useCallback)((e=>{y(C.yC.actions.updateSearchNavigationDataFields(e))}),[y]),j=(0,r.useCallback)((e=>{const t=h!==l?(0,s.wwR)({uri:e,dataTenant:l}):e;y(C.ui.actions.openEntity({uri:t,viewId:b,source:"navigation"}))}),[y,b,h,l]),D=(0,r.useCallback)((()=>{y(C.ui.actions.openPerspective({perspectiveId:u,viewId:b}))}),[y,u,b]);(0,r.useEffect)((()=>{i>=o?w({index:o-1}):i<0&&w({index:0})}),[o,i,w]);const z=(0,S.u)();(0,r.useEffect)((()=>{const e=z(((e,t)=>{switch(e.type){case C.yC.constants.UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE:{const n=C.ZP.selectors.getSearchNavigationData(t);n&&w(((e,t)=>{const{winnerUri:n,losersUris:r=[]}=t,a=((e,t)=>{let{uri:n,index:r,total:a,cache:i}=e;if(t&&t!==n){if(i&&i.includes(n)){i=[...i];const e=i.indexOf(t);let o=i.indexOf(n);e>=0&&(i.splice(e,1),a--,e<o&&r--),o=i.indexOf(n),i.splice(o,1,t)}return n=t,R({},e,{uri:n,index:r,cache:i,total:a})}return e})(e,n);return((e,t)=>{const{cache:n=[],index:r,total:a,uri:i}=e,o=t.filter((e=>n.includes(e)));if(0===o.length)return e;const l=a-o.length,s=n.indexOf(i);let c=r;for(const e of o)n.indexOf(e)<s&&c--;const u=n.filter((e=>!o.includes(e)));return R({},e,{cache:u,index:c,total:l})})(a,r)})(n,e.payload));break}}}));return()=>e()}),[z,w]);const F=(0,r.useCallback)(((e,r,a)=>{P(!0),t(I.requestTotal()).then((e=>w({total:e})));const i=a+1;return n(I.requestEntities(15,i)).then((t=>{if(t){if(t.length){const n=Z(t,e);if(n.length>0)return w({cache:e.concat(n),uri:n[0],index:i+t.length-n.length}),void j(n[0]);if(a+t.length<r-1)return F(e,r-t.length,a+t.length)}w({index:i})}})).finally((()=>{P(!1)}))}),[I,w,j]),_=(0,r.useCallback)(((e,r)=>{P(!0),t(I.requestTotal()).then((e=>w({total:e})));const a=r-1,i=Math.max(0,r-15),o=15+Math.min(0,r-15);return n(I.requestEntities(o,i)).then((t=>{if(t){if(t.length){const n=Z(t,e);if(n.length>0)return w({cache:n.concat(e),uri:n[n.length-1],index:a-(t.length-n.length)}),void j(n[n.length-1]);if(r-t.length>0)return _(e,r-t.length)}w({index:0})}})).finally((()=>{P(!1)}))}),[I,w,j]),B=(0,r.useCallback)(((t,n,r,a)=>{if(n<t.length){const i=t[n];return P(!0),e(I.checkEntity(i)).then((e=>{if(!e){const e=[...t];return e.splice(n,1),B(e,n,r-1,a)}w({index:a+1,uri:i,cache:t,total:r}),j(i)})).finally((()=>{P(!1)}))}if(!(a>=r-1))return F(t,r,a);w({cache:t,total:r,index:r-1})}),[I,w,j,F]),L=(0,r.useCallback)(((t,n,r,a)=>{if(n>-1){const i=t[n];return P(!0),e(I.checkEntity(i)).then((e=>{if(!e){const e=[...t];return e.splice(n,1),L(e,n-1,r-1,a-1)}w({index:a-1,uri:i,cache:t,total:r}),j(i)})).finally((()=>{P(!1)}))}if(!(a<=0))return _(t,a);w({index:0,cache:t,total:r})}),[I,w,j,_]),M=(0,r.useCallback)((()=>{if(c&&a){const e=c.indexOf(a)-1;L(c,e,o,i)}}),[L,c,a,o,i]),q=(0,r.useCallback)((()=>{if(c&&a){const e=c.indexOf(a)+1;B(c,e,o,i)}}),[B,c,a,o,i]);return(0,r.useEffect)((()=>{f(v)}),[f,v]),(0,r.useEffect)((()=>()=>f(!1)),[]),{total:o,onPrev:M,onNext:q,onSearchResultsClick:D,isPrevDisabled:v||i<=0,isNextDisabled:v||i>=o-1}},F=e=>{let{className:t}=e;const{total:n,onPrev:r,onNext:i,onSearchResultsClick:o,isPrevDisabled:l,isNextDisabled:c}=z();return(()=>{const{cache:e}=(0,x.useSelector)(C.ZP.selectors.getSearchNavigationData)||{},t=(0,x.useSelector)(C.ZP.selectors.getMode),n=(0,x.useSelector)(C.ZP.selectors.getEntity);return(0,s.uzs)(t)&&(null==e?void 0:e.includes(null==n?void 0:n.uri))})()?a().createElement(v,{className:t,total:n,onPrev:r,onNext:i,onSearchResultsClick:o,isPrevDisabled:l,isNextDisabled:c}):null}},18798:(e,t,n)=>{n.d(t,{u:()=>p});var r=n(24328),a=n.n(r),i=n(71153),o=n.n(i),l=n(31396),s=n(60364),c=n(94815);const u=(0,n(79692).Z)((()=>({container:{position:"relative","& .Resizer":{zIndex:1,boxSizing:"border-box",backgroundClip:"padding-box","&.disabled":{cursor:"initial",height:0,margin:0},"&.horizontal":{height:"11px",backgroundImage:"linear-gradient(rgba(0,0,0,0.33), rgba(0,0,0,0.33))",backgroundRepeat:"no-repeat",backgroundSize:"100% 1px",backgroundPosition:"top",width:"100%",marginBottom:"-10px","&:not(.disabled):hover":{cursor:"row-resize",backgroundImage:"linear-gradient(rgba(0, 114, 206, 0), rgba(0, 114, 206, 0.35), rgba(0, 114, 206, 1))",backgroundSize:"100% 3px"}},"&.vertical":{width:"11px",backgroundImage:"linear-gradient(rgba(0,0,0,0.33), rgba(0,0,0,0.33))",backgroundRepeat:"no-repeat",backgroundSize:"1px 100%",backgroundPosition:"left",height:"100%",marginRight:"-10px","&:not(.disabled):hover":{cursor:"col-resize",backgroundImage:"linear-gradient(to left, rgba(0, 114, 206, 0.35), rgba(0, 114, 206, 1), rgba(0, 114, 206, 0.35))",backgroundSize:"3px 100%"}}}}}))),d=250,h=e=>"horizontal"===e,p=e=>{let{className:t,children:n,orientation:i,primary:p,defaultSize:m,size:g,minSize:f,maxSize:b,allowResize:y,debounceInterval:v=d,onChange:x}=e;const C=u(),O=(0,s.Z)(),[E,S]=(0,r.useState)(null),[k,P]=(0,r.useState)(!0),I=(0,r.useCallback)((()=>P(!0)),[]),T=(0,r.useCallback)((()=>P(!1)),[]),w=()=>h(i)?null==E?void 0:E.clientHeight:null==E?void 0:E.clientWidth,j=(0,r.useCallback)((0,c.DsO)((e=>{const t=w();x({percentageSize:e/t*100+"%",isMaxSize:b>0?e===b:e===t+b,isMinSize:e===f,size:e})}),v),[x,i,b,E]),N=(0,r.useMemo)((()=>({transition:O.transitions.create(h(i)?"height":"width",{easing:O.transitions.easing.sharp,duration:O.transitions.duration.leavingScreen})})),[i,O]);return"number"==typeof g&&g<0&&(g=(w()||0)+g),a().createElement("div",{ref:S,className:o()(C.container,t)},a().createElement(l.Z,{split:i,size:g,primary:p,allowResize:y,onChange:j,defaultSize:m,minSize:f,maxSize:b,onDragStarted:T,onDragFinished:I,pane1Style:k?N:void 0},n))};p.displayName="ResizablePanes"},94175:(e,t,n)=>{n.d(t,{Z:()=>c});var r=n(24328),a=n.n(r),i=n(52730),o=n(49885),l=n(94815),s=n(97991);const c=e=>{let{sourceType:t,className:n,classes:r}=e;const c=(0,i.useSelector)(o.ZP.selectors.getMetadata),{uri:u,icon:d}=(0,l.PWK)(c,t)||{},h=u?(0,l.tH7)(c,u)[0]:"",p=d?(0,l.vPL)("https://s3.amazonaws.com/reltio.images/api",d):null;return a().createElement(s.Z,{className:n,avatarText:h,icon:p,variant:"square",rootClasses:r})}},51229:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(24328),a=n.n(r);const i=()=>a().createElement("div",{style:{flex:1}})},3409:(e,t,n)=>{n.d(t,{Z:()=>h});var r=n(24328),a=n.n(r),i=n(52730),o=n(49885),l=n(94079),s=n(17440),c=n(87918),u=n.n(c);const d=(0,n(79692).Z)({root:{display:"flex",alignItems:"flex-start"},slice:{fontWeight:500},cancelButton:{width:"88px",flexShrink:0,marginLeft:"15px"}}),h=()=>{const e=d(),t=(0,i.useSelector)(o.ZP.selectors.getHistoryEvent),n=(0,i.useDispatch)(),r=(0,s.pipe)(o.N5.history.actions.clearHistoryEvent,n);return t?a().createElement("div",{className:e.root},a().createElement(l.Typography,{component:"div"},u().text("You are viewing a historic slice:")," ",a().createElement("span",{className:e.slice},u().date(t.aStamp,"llll"))),a().createElement(l.Button,{className:e.cancelButton,variant:"contained",color:"primary",onClick:r},u().text("Cancel"))):null}},54198:(e,t,n)=>{n.d(t,{G:()=>o,u:()=>l});var r=n(24328),a=n.n(r);const i=(0,r.createContext)(null);i.displayName="ActionsHookContext";const o=e=>{let{children:t,hook:n}=e;return a().createElement(i.Provider,{value:n},t)},l=()=>{const e=(0,r.useContext)(i);if(!e)throw new Error("ActionsHookContext must be provided");return e}},63149:(e,t,n)=>{n.d(t,{hR:()=>c,nX:()=>u,RT:()=>d,pu:()=>h,BF:()=>p});var r=n(24328),a=n.n(r),i=n(94815),o=n(17440),l=n(31276);const s=(0,r.createContext)(null),c=e=>{let{children:t}=e,n=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,["children"]);return a().createElement(s.Provider,{value:n},t)},u=e=>{const{getCrosswalkColor:t=(0,o.pipe)(i.uKF,i.CJp)}=(0,r.useContext)(s)||{};return e?t(e):""},d=()=>{const{highlightedCrosswalks:e=[]}=(0,r.useContext)(s)||{};return e},h=e=>{const{highlightedCrosswalks:t=[],setCrosswalkHighlighted:n=l.ZT}=(0,r.useContext)(s)||{},a=!!e&&!!t.find((0,o.eqBy)(i.uKF,e));return{isHighlighted:a,isDimmed:t.length>0&&!a,highlightCrosswalk:(0,r.useCallback)((()=>n(e,!0)),[e,n]),removeHighlight:(0,r.useCallback)((()=>n(e,!1)),[e,n])}},p=e=>{const{toggleCrosswalkFocus:t=l.ZT,focusedCrosswalks:n=[]}=(0,r.useContext)(s)||{};return{isFocused:!!e&&n.some((0,o.eqBy)(i.uKF,e)),toggleCrosswalkFocus:(0,r.useCallback)((()=>t(e)),[e,t])}}},94622:(e,t,n)=>{n.d(t,{f:()=>u,M:()=>d});var r=n(24328),a=n.n(r),i=n(31276);function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){l(e,t,n[t])}))}return e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const s=a().createContext({isLoading:!1,updateEntityLoadingState:i.ZT,updateEntitiesNavigationLoadingState:i.ZT,resetLoadingState:i.ZT}),c={entitiesNavigation:!1,entity:!1},u=e=>{let{children:t}=e;const n=(()=>{const[e,t]=(0,r.useState)(c),n=(0,r.useCallback)((e=>{t((t=>o({},t,{entity:e})))}),[]),a=(0,r.useCallback)((e=>{t((t=>o({},t,{entitiesNavigation:e})))}),[]),i=(0,r.useCallback)((()=>{t(c)}),[]);return{isLoading:Object.values(e).includes(!0),updateEntityLoadingState:n,updateEntitiesNavigationLoadingState:a,resetLoadingState:i}})();return a().createElement(s.Provider,{value:n},t)},d=()=>(0,r.useContext)(s)},79468:(e,t,n)=>{n.d(t,{T:()=>a});var r=n(24328);const a=n.n(r)().createContext({profileBand:{}});a.displayName="LabelsContext"},7718:(e,t,n)=>{n.d(t,{C:()=>m});var r=n(24328),a=n(52730),i=n(17440),o=n(94815),l=n(49885);function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){c(e,t,n[t])}))}return e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const u=(e,t)=>t.filter((t=>t.replyId!==e)),d=(e,t)=>{const n=e.replies.findIndex((e=>{let{replyId:n}=e;return n===t.replyId})),r=[...e.replies];return r[n]=t,r},h=[],p=e=>console.error("Collaboration error",e),m=e=>{let{objectIds:t=h,objectTypes:n,enabled:c=!0}=e;const m=(0,a.useSelector)(l.ZP.selectors.getEntity),g=(0,a.useSelector)(l.ZP.selectors.getTenant),f=(0,a.useSelector)(l.ZP.selectors.getCollaborationPath),b=(0,a.useSelector)(l.ZP.selectors.isCollaborationEnabled)&&c,[y,v]=(0,r.useState)(null),[x,C]=(0,r.useState)([]),[O,E]=(0,r.useState)(null),[S,k]=(0,r.useState)(null),[P,I]=(0,r.useState)(!1),[T,w]=(0,r.useState)(!1),[j,N]=(0,r.useState)({}),R=(0,r.useCallback)((e=>{E((t=>s({},t,e)))}),[]),D=null==m?void 0:m.uri,Z=(0,r.useCallback)((function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(b&&D&&!(0,o.ZiX)(D)){const n=e=>{console.warn("Collaboration error",e),E(null)};(0,i.pipe)(o.$oF,(0,i.andThen)((0,i.map)((0,i.props)(["objectId","comments"]))),(0,i.andThen)(i.fromPairs),(0,i.andThen)(t?E:R),(0,i.otherwise)(n))({uris:e,tenant:g,collaborationPath:f})}else E(null)}),[R,f,D,b,g]);(0,r.useEffect)((()=>{Z(t,!0)}),[t,Z]);const z=(0,r.useCallback)(((e,t)=>{(0,o.liG)({collaborationPath:f,tenant:g,relatedObjectUri:e,pageToken:t}).then((e=>{let{items:n,nextPageToken:r}=e;C((e=>t?(0,i.uniqBy)((0,i.prop)("commentId"),[...e,...n]):n)),v(r)})).catch(p)}),[f,g]),F=(0,r.useCallback)((e=>{w(!0),(0,o.d7q)({collaborationPath:f,tenant:g,commentId:e}).then(k).catch(p).finally((()=>w(!1)))}),[f,g]),_=(0,r.useCallback)((e=>{let{content:t,namedUsers:n,objectType:r,uri:a,relatedObjectUris:i}=e;I(!0);const l={objectId:a,content:t,relatedObjectUris:i,objectType:r,visibility:"public",namedUsers:n,permanentLink:`${window.location.href}&commentId=${encodeURIComponent("{commentId}")}`};return(0,o.Yrx)({collaborationPath:f,tenant:g,data:l}).then((e=>{let[t]=e;return((e,t)=>{k(e),E((n=>s({},n,{[t]:[...n[t]||[],{commentId:e.commentId,replies:0,status:"open"}]}))),C((t=>[e,...t]))})(t,a)})).catch(p).finally((()=>I(!1)))}),[f,g]),B=(0,r.useCallback)((e=>{let{content:t,namedUsers:n,objectType:r,uri:a,relatedObjectUris:l,commentId:c,replies:u}=e;I(!0);const d={objectId:a,content:t,relatedObjectUris:l,objectType:r,visibility:"public",namedUsers:n,commentId:c,replies:u};return(0,o.uAg)({collaborationPath:f,tenant:g,data:d}).then((e=>(e=>{k(e),C((0,i.map)((0,i.when)((0,i.propEq)("commentId",e.commentId),(0,i.always)(e))))})(s({},e,{replies:u})))).catch(p).finally((()=>I(!1)))}),[f,g]),L=(0,r.useCallback)((e=>{let{uri:t,commentId:n}=e;I(!0),(0,o.YFy)({collaborationPath:f,tenant:g,commentId:n}).then((()=>((e,t)=>{k(null),E((n=>{const r=n[t]||[];return s({},n,{[t]:r.filter((t=>t.commentId!==e))})})),C((t=>t.filter((t=>t.commentId!==e))))})(n,t))).catch(p).finally((()=>I(!1)))}),[f,g]),M=(0,r.useCallback)(((e,t,n,r)=>{const a="resolve"===e.action?"resolved":"open",{replyId:i}=e;k("resolved"===a?e=>{if(e)return null}:t=>{if(t)return s({},t,{replies:r?u(i,t.replies):[...t.replies,e]})}),E((e=>s({},e,{[t]:(e[t]||[]).map((e=>e.commentId===n?s({},e,{status:a,replies:r?e.replies-1:e.replies+1}):e))}))),C((t=>t.map((t=>t.commentId===n?s({},t,{status:a,replies:r?u(e.replyId,t.replies):[...t.replies,e]}):t))))}),[]),q=(0,r.useCallback)((e=>{let{uri:t,commentId:n,reply:r}=e;I(!0),(0,o.Mfr)({collaborationPath:f,tenant:g,commentId:n,replyId:r.replyId}).then((()=>M(r,t,n,!0))).catch(p).finally((()=>I(!1)))}),[f,M,g]),U=(0,r.useCallback)(((e,t)=>{k((t=>{if(t)return s({},t,{replies:d(t,e)})})),C((n=>n.map((n=>n.commentId===t?s({},n,{replies:d(n,e)}):n))))}),[]),H=(0,r.useCallback)((e=>{let{content:t,namedUsers:n,commentId:r,replyId:a}=e;I(!0);const i={content:t,namedUsers:n};return(0,o.ufV)({collaborationPath:f,tenant:g,commentId:r,replyId:a,data:i}).then((e=>U(e,r))).catch(p).finally((()=>I(!1)))}),[f,g,U]),A=(0,r.useCallback)((e=>{let{content:t,namedUsers:n,commentId:r,action:a,uri:i}=e;I(!0);const l={content:t,action:a,namedUsers:n};return(0,o.PP2)({collaborationPath:f,tenant:g,commentId:r,data:l}).then((e=>{let[t]=e;return M(t,i,r)})).catch(p).finally((()=>I(!1)))}),[f,g,M]),G=(0,r.useCallback)((e=>{let{commentId:t,uri:n}=e;A({content:"",namedUsers:[],commentId:t,action:"resolve",uri:n})}),[A]),V=(0,r.useCallback)((e=>{let{commentId:t,uri:n}=e;A({content:"",namedUsers:[],commentId:t,action:"reopen",uri:n})}),[A]);return{clearCurrentComment:(0,r.useCallback)((()=>{k(null)}),[]),comments:x,commentsMap:O,getCommentState:(e,t)=>(0,i.pathOr)({},[e,t],j),updateCommentState:(e,t,n)=>{N((r=>{const a=[e,t],o=(0,i.path)(a,r);return(0,i.assocPath)(a,(0,i.mergeRight)(o,n),r)}))},clearCommentState:(e,t)=>N((0,i.dissocPath)([e,t])),createComment:_,createReply:A,currentComment:S,deleteComment:L,editComment:B,getComment:F,getComments:z,getCommentsCount:Z,loading:T,objectTypes:n,pageToken:y,reOpenThread:V,resolveThread:G,sending:P,deleteReply:q,editReply:H}}}}]);
|
|
2
|
+
//# sourceMappingURL=122.js.map
|
package/122.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"122.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/AvatarWithFallback/AvatarWithFallback.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withTableContext.js","webpack://@reltio/remotes/../components/src/icons/Table.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettings.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnListItem.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettingsPopup.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/columnHelpers.js","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/EntityTypeBadge.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBand/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfileBand/ProfileBand.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/ProfileBandNavigationWidget.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/MainSearchProvider.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/GraphSearchProvider.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/helpers/index.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/hooks/useSearchNavigation.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/SearchProviderFactory.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/ProfileBandNavigation.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/hooks/useSearchNavigationVisibility.ts","webpack://@reltio/remotes/../components/src/components/ResizablePanes/styles.ts","webpack://@reltio/remotes/../components/src/components/ResizablePanes/ResizablePanes.tsx","webpack://@reltio/remotes/../components/src/components/SourceIcon/SourceIcon.tsx","webpack://@reltio/remotes/../components/src/components/Spacer/Spacer.js","webpack://@reltio/remotes/../components/src/components/history/ProfileBandHistory/styles.ts","webpack://@reltio/remotes/../components/src/components/history/ProfileBandHistory/ProfileBandHistory.tsx","webpack://@reltio/remotes/../components/src/contexts/ActionsHookContext/index.tsx","webpack://@reltio/remotes/../components/src/contexts/CrosswalksDisplayContext/index.tsx","webpack://@reltio/remotes/../components/src/contexts/EntityLoadingIndicationContext/index.tsx","webpack://@reltio/remotes/../components/src/contexts/LabelsContext/index.ts","webpack://@reltio/remotes/../components/src/hooks/useCollaboration.ts"],"sourcesContent":["import {Avatar as Avatar} from '@material-ui/core';\nimport classnames from 'classnames';\nimport React, {useEffect, useState} from 'react';\n\nenum AvatarStates {\n ICON_MODE,\n TEXT_MODE,\n ERROR_MODE\n}\ntype Props = {\n className?: string;\n icon?: string;\n avatarText?: string;\n variant?: 'circle' | 'circular' | 'rounded' | 'square';\n rootClasses?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst AvatarWithFallback = ({className, icon, avatarText, rootClasses, ...otherProps}: Props) => {\n const [state, setState] = useState<AvatarStates>(null);\n useEffect(() => {\n if (icon) {\n setState(AvatarStates.ICON_MODE);\n } else {\n setState(AvatarStates.TEXT_MODE);\n }\n }, [icon, avatarText]);\n const onImageLoadFail = () => {\n setState(AvatarStates.ERROR_MODE);\n };\n\n switch (state) {\n case AvatarStates.ICON_MODE:\n return (\n <Avatar\n className={classnames(className, rootClasses?.iconRoot)}\n src={icon}\n onError={onImageLoadFail}\n {...otherProps}\n />\n );\n case AvatarStates.TEXT_MODE:\n case AvatarStates.ERROR_MODE:\n return (\n <Avatar className={classnames(className, rootClasses?.textRoot)} {...otherProps}>\n {avatarText}\n </Avatar>\n );\n default:\n return null;\n }\n};\n\nexport default AvatarWithFallback;\n","import {TableContext} from '../contexts/TableContext';\nimport {withContext} from '../../../../HOCs/withContext/withContext';\n\nconst withTableContext = (contextSelector) => (CellRenderer) =>\n withContext(TableContext, contextSelector, CellRenderer);\n\nexport default withTableContext;\n","import React from 'react';\n\nconst SvgTable: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={20} height={18} viewBox=\"0 0 20 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16 7.24V6h-4v1.24a8.417 8.417 0 00-2 .768V6H6v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM4 12V6H2v6h2zm0-8V2H2v2h2zm6 0V2H6v2h4zm6 0V2h-4v2h4zm-2 5a6.451 6.451 0 00-6 4.09 6.451 6.451 0 006 4.092 6.451 6.451 0 006-4.091A6.451 6.451 0 0014 9zm0 6.818a2.728 2.728 0 010-5.454 2.728 2.728 0 010 5.454zm0-4.363c-.905 0-1.636.73-1.636 1.636 0 .905.73 1.636 1.636 1.636.905 0 1.636-.73 1.636-1.636 0-.906-.73-1.636-1.636-1.636z\"\n fill=\"#000\"\n fillRule=\"nonzero\"\n stroke=\"none\"\n strokeWidth={1}\n opacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgTable;\n","import React, {useCallback, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {ColumnsDataType} from '../../../../constants';\nimport TableIcon from '../../../../icons/Table';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport {pipe, uniq, pluck, difference, concat} from 'ramda';\n\nimport {ColumnsSettingsPopup} from './ColumnsSettingsPopup';\n\nimport i18n from 'ui-i18n';\nimport {getChildColumns, isColumnSelected} from './columnHelpers';\n\nconst ColumnsSettings = ({columnsData, selectedColumns, onChangeColumns, title, tooltipTitle}) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const openPopup = (event) => setAnchorEl(event.currentTarget);\n const closePopup = () => setAnchorEl(null);\n const handleColumnClick = useCallback(\n (column) => {\n const changedColumns = pipe(getChildColumns, pluck('id'))(column);\n const wasSelected = isColumnSelected(selectedColumns, column);\n onChangeColumns(\n wasSelected\n ? difference(selectedColumns, changedColumns)\n : uniq(concat(selectedColumns, changedColumns))\n );\n },\n [selectedColumns, onChangeColumns]\n );\n return (\n <>\n <SmallIconButtonWithTooltip\n tooltipTitle={tooltipTitle || i18n.text('Show/hide columns')}\n size=\"L\"\n icon={TableIcon}\n onClick={openPopup}\n />\n <ColumnsSettingsPopup\n onColumnClick={handleColumnClick}\n anchorEl={anchorEl}\n columnsData={columnsData}\n onClose={closePopup}\n title={title}\n selectedColumns={selectedColumns}\n />\n </>\n );\n};\n\nColumnsSettings.propTypes = {\n columnsData: ColumnsDataType,\n selectedColumns: PropTypes.arrayOf(PropTypes.string),\n onChangeColumns: PropTypes.func,\n title: PropTypes.string,\n tooltipTitle: PropTypes.string\n};\n\nexport default ColumnsSettings;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n popup: {\n minWidth: '200px'\n },\n groupItem: {\n backgroundColor: 'rgba(0,0,0,0.04)'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport AttributeListItem from '../../../AttributeListItem/AttributeListItem';\nimport Highlighter from '../../../Highlighter/Highlighter';\n\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst ColumnListItem = ({item, onClick, checked, level, style, isFocused, isGroupItem, hideCheckBox}) => {\n const styles = useStyles();\n return (\n <AttributeListItem\n hideCheckBox={hideCheckBox}\n key={item.id}\n onClick={onClick}\n checked={checked}\n level={level}\n data={item}\n label={<Highlighter text={item.label} highlight={item.filterText} />}\n labelInText={item.label}\n style={style}\n isFocused={isFocused}\n hideIcon={isGroupItem}\n className={classnames({[styles.groupItem]: isGroupItem})}\n />\n );\n};\n\nColumnListItem.propTypes = {\n item: PropTypes.shape({\n label: PropTypes.string,\n filterText: PropTypes.string\n }),\n level: PropTypes.number,\n onClick: PropTypes.func,\n checked: PropTypes.bool,\n style: PropTypes.object,\n isGroupItem: PropTypes.bool,\n isFocused: PropTypes.bool,\n hideCheckBox: PropTypes.bool\n};\n\nexport default ColumnListItem;\n","import React, {useState, useMemo, useCallback} from 'react';\nimport i18n from 'ui-i18n';\nimport {pipe} from 'ramda';\n\nimport {getMaxItemWidth, DataTypeDefinition} from '@reltio/mdm-sdk';\n\nimport VirtualGroupedList from '../../../VirtualGroupedList/VirtualGroupedList';\nimport SelectionPopup from '../../../SelectionPopup/SelectionPopup';\nimport {buildColumnItems, isColumnSelected, isGroupColumn} from './columnHelpers';\nimport {flattenGroupedItemsData} from '../../../VirtualGroupedList/helpers';\nimport {useKeyboardNavigation} from '../../../SelectionPopup/helpers';\nimport ColumnListItem from './ColumnListItem';\n\nimport {useStyles} from './styles';\nimport {ListItemProps} from '@material-ui/core/ListItem';\n\ntype Column = {\n id: string;\n label: string;\n};\n\ntype GroupedColumnData =\n | {\n id: string;\n label: string;\n columns: Column[];\n }\n | Column;\n\ntype GroupedColumnList = {\n id: string;\n groupId: string;\n label: string;\n attrType: DataTypeDefinition;\n};\n\ntype Props = {\n anchorEl: HTMLElement;\n onClose: () => void;\n title?: string;\n columnsData: GroupedColumnData[];\n onColumnClick: (column: {id: string}) => void;\n selectedColumns: string[];\n hideCheckBox?: boolean;\n};\n\nconst ITEM_HEIGHT = 32;\nconst MAX_LIST_CONTAINER_HEIGHT = 300;\nconst DEFAULT_MIN_CONTAINER_WIDTH = 308;\nconst CONTAINER_HEADER_HEIGHT = 108;\nconst MIN_CONTAINER_HEIGHT = 140;\n\nexport const ColumnsSettingsPopup = ({\n anchorEl,\n onClose,\n title,\n columnsData,\n onColumnClick,\n selectedColumns,\n hideCheckBox\n}: Props) => {\n const styles = useStyles();\n const [filterText, setFilterText] = useState('');\n const clearFilter = () => setFilterText('');\n const groupedItems = useMemo(() => buildColumnItems(columnsData, filterText), [columnsData, filterText]);\n\n const items = useMemo(() => flattenGroupedItemsData(groupedItems), [groupedItems]);\n const containerWidth: number = getMaxItemWidth('label')(groupedItems) || DEFAULT_MIN_CONTAINER_WIDTH;\n\n const handleSearchOnEnter = useCallback(\n ({item}: {item: {id: string}; groupData: {item: {id: string}}}) => onColumnClick(item),\n [onColumnClick]\n );\n\n const {focusIndex, handleKeyDown} = useKeyboardNavigation({\n items,\n open: true,\n onSelectFocusedItem: handleSearchOnEnter,\n selectedItems: selectedColumns,\n onClose\n });\n const handleClose = useCallback(pipe(onClose, clearFilter), [onClose]);\n\n const renderColumnItem = (\n style: ListItemProps['style'],\n {item, level = 0}: {item: GroupedColumnList; level?: number},\n index: number\n ) => {\n return (\n <ColumnListItem\n hideCheckBox={hideCheckBox}\n style={style}\n item={item}\n level={level}\n isFocused={focusIndex === index}\n checked={isColumnSelected(selectedColumns, item)}\n isGroupItem={isGroupColumn(item)}\n onClick={hideCheckBox ? pipe(onColumnClick, handleClose) : onColumnClick}\n />\n );\n };\n\n const listHeight = Math.min(MAX_LIST_CONTAINER_HEIGHT, ITEM_HEIGHT * items.length);\n const containerHeight = Math.max(MIN_CONTAINER_HEIGHT, listHeight + CONTAINER_HEADER_HEIGHT);\n\n return (\n <SelectionPopup\n className={styles.popup}\n open={!!anchorEl}\n anchorEl={anchorEl}\n onClose={handleClose}\n onSearch={setFilterText}\n title={title || i18n.text('Show/hide columns')}\n containerWidth={containerWidth}\n containerHeight={containerHeight}\n searchInputOnKeyDown={handleKeyDown}\n >\n <VirtualGroupedList\n fixedTitle={false}\n height={listHeight}\n renderItem={renderColumnItem}\n items={items}\n getItemSize={() => ITEM_HEIGHT}\n focusIndex={focusIndex}\n />\n </SelectionPopup>\n );\n};\n","import {assoc, chain, curry, either, filter, has, pipe, propOr, reduce, when} from 'ramda';\nimport {utils} from '@reltio/mdm-sdk';\n\nconst isGroupColumn = (column) => column.id === column.groupId;\nconst isParentToColumn = curry(\n ({id, groupId}, parent) => parent.groupId === groupId && (id === parent.id || id.startsWith(`${parent.id}.`))\n);\nconst isGroupToColumn = curry(({groupId}, group) => groupId === group.id);\nconst isHideableColumn = propOr(true, 'hideable');\n\nconst getColumnRoot = (columns, column) => columns.find(either(isGroupToColumn(column), isParentToColumn(column)));\n\nconst addColumn = (columns, column) => {\n const root = getColumnRoot(columns, column);\n if (root) {\n root.children = addColumn(root.children || [], column);\n return columns;\n } else {\n return columns.concat(column);\n }\n};\n\nconst filterColumnsByLabel = curry(\n (filterText, column) =>\n utils.strings.search(column.label, filterText) || (column.children || []).some(filterColumnsByLabel(filterText))\n);\n\nconst buildColumnsTrees = reduce(\n (acc, columnData) =>\n addColumn(acc, {\n id: columnData.id,\n groupId: columnData.groupId,\n label: columnData.label,\n attrType: columnData.dataTypeDefinition\n }),\n []\n);\n\nconst buildFilteredColumnItems = curry((filterText, columns, level = 0) =>\n pipe(\n filter(filterColumnsByLabel(filterText)),\n chain((column) => {\n const item = {\n item: {...column, filterText},\n level\n };\n const childrenItems = column.children\n ? buildFilteredColumnItems(filterText, column.children, level + 1)\n : [];\n return [item, ...childrenItems];\n })\n )(columns)\n);\n\nconst isGroupedColumnsData = has('columns');\nconst flattenGroupedColumnsData = ({id, label, columns}) => [\n {id, groupId: id, label},\n ...columns.map(assoc('groupId', id))\n];\n\nconst buildColumnItems = (columnsData, filterText) => {\n return pipe(\n chain(when(isGroupedColumnsData, flattenGroupedColumnsData)),\n filter(either(isGroupColumn, isHideableColumn)),\n buildColumnsTrees,\n buildFilteredColumnItems(filterText)\n )(columnsData);\n};\n\nconst getChildColumns = (column) => (column.children ? chain(getChildColumns, column.children) : [column]);\n\nconst isColumnSelected = (selectedColumns, column) => {\n const childColumns = getChildColumns(column);\n const isColumnSelected = (column) => selectedColumns.includes(column.id);\n return isGroupColumn(column) ? childColumns.every(isColumnSelected) : childColumns.some(isColumnSelected);\n};\n\nexport {buildColumnItems, getChildColumns, isGroupColumn, isColumnSelected};\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n 'entityType-overflow': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n\n 'entityType-small': {\n padding: '1px 4px',\n fontSize: '10px',\n lineHeight: 'normal',\n marginRight: '12px',\n borderRadius: '2px',\n flexShrink: 0\n },\n 'entityType-medium': {\n padding: '2px 8px 3px',\n borderRadius: '2px',\n fontSize: '13px',\n fontWeight: 500,\n lineHeight: '15px',\n marginRight: '16px',\n flexShrink: 0\n }\n});\n\nexport default useStyles;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport classnames from 'classnames';\nimport {Typography as Typography} from '@material-ui/core';\n\nimport {getEntityType, getEntityTypeLabel, getPropWithInheritance, theme, utils, Entity} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport useStyles from './styles';\n\ntype Props = {\n entity: Entity;\n className?: string;\n size?: 'small' | 'medium';\n};\n\nconst EntityTypeBadge = ({entity, className, size = 'small'}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const entityTypeUri = entity.type;\n const entityType = getEntityType(metadata, entityTypeUri) || {};\n const entityTypeColor = getPropWithInheritance(metadata, entityType, 'typeColor') || theme.palette.primary.main;\n const entityTypeLabel = getEntityTypeLabel(metadata, entity);\n\n return (\n <ExpandedValueTooltip value={entityTypeLabel} placement=\"top\">\n <Typography\n style={{\n backgroundColor: entityTypeColor,\n color: utils.Colors.getColor(entityTypeColor) ? '#FFFFFF' : '#212121'\n }}\n className={classnames(styles[`entityType-${size}`], styles['entityType-overflow'], className)}\n component=\"div\"\n >\n {entityTypeLabel}\n </Typography>\n </ExpandedValueTooltip>\n );\n};\n\nexport default EntityTypeBadge;\n","import {makeStyles, Theme} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme & {inactiveBackground: string}) => ({\n profileBandWrapper: {\n // especially for IE (overflow fix)\n flexShrink: 0\n },\n profileBand: {\n display: 'flex',\n padding: '16px 12px 16px 16px',\n alignItems: 'flex-start',\n backgroundColor: '#fff',\n boxShadow: '0px 1px 0px rgba(0, 0, 0, 0.12)',\n marginBottom: '1px',\n '&:after': {\n // IE workaround for minHeight and centering items\n content: '\"\"',\n minHeight: 'inherit',\n fontSize: 0\n }\n },\n inactive: {\n background: theme.inactiveBackground\n },\n profileIcon: {\n marginRight: '12px'\n },\n imageProfileIcon: {\n width: '48px',\n height: '48px'\n },\n profileInfo: {\n display: 'flex',\n flexDirection: 'column',\n flex: '1 1 50%'\n },\n badge: {},\n label: {\n lineHeight: '1.2',\n letterSpacing: '0.25px',\n color: theme.palette.text.primary,\n wordBreak: 'break-word',\n\n '&+ $specialInfo': {\n marginTop: '4px'\n }\n },\n secondaryLabel: {\n display: 'inline-flex',\n color: theme.palette.text.primary,\n marginTop: '2px',\n lineHeight: '16px',\n fontSize: '14px',\n fontWeight: 400,\n\n '&+ $businessCard': {\n marginLeft: '12px'\n }\n },\n businessCard: {\n color: theme.palette.text.secondary,\n display: 'inline-flex',\n fontSize: '14px',\n marginTop: '4px',\n lineHeight: '1.2'\n },\n specialInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n marginTop: '8px'\n },\n entityType: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n entityId: {\n fontSize: '13px',\n color: theme.palette.text.secondary,\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n}));\n\nexport default useStyles;\n","import React, {ReactNode, useCallback} from 'react';\nimport classnames from 'classnames';\nimport {useSelector} from 'react-redux';\nimport {isNil, identity} from 'ramda';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nimport {getLabel, isActiveObject, getBusinessCardAttributesText, getEntityId, isTempUri, Entity} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\n\nimport EntityAvatar from '../EntityAvatar/EntityAvatar';\nimport EntityTypeBadge from '../EntityTypeBadge/EntityTypeBadge';\n\nimport useStyles from './styles';\n\ntype Props = {\n className?: string;\n entity?: Entity;\n children?: ReactNode;\n classes?: Partial<ReturnType<typeof useStyles>>;\n renderLabel?: (label: string) => React.ReactNode;\n};\n\nconst ProfileBand = ({className, entity, children, classes, renderLabel = identity}: Props) => {\n const styles = useStyles({classes});\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const showEntityId = useSelector(mdmModule.selectors.getShowEntityId);\n const handleCopyEntityIdToClipboard = useCallback(() => {\n navigator.clipboard.writeText(getEntityId(entity));\n }, [entity]);\n\n if (isNil(entity)) {\n return null;\n }\n\n const label = getLabel(entity.label);\n const secondaryLabel = entity.secondaryLabel;\n const businessCardText = getBusinessCardAttributesText(metadata, entity);\n const isActive = isActiveObject(entity);\n const entityUri = entity.uri;\n const entityId = getEntityId(entity);\n return (\n <div className={classnames(styles.profileBandWrapper, className)}>\n <div\n className={classnames(styles.profileBand, {\n [styles.inactive]: !isActive\n })}\n data-entity-uri={entityUri}\n >\n <EntityAvatar\n key={entity.uri}\n entity={entity}\n avatarClassName={styles.profileIcon}\n imageClassName={styles.imageProfileIcon}\n />\n <div className={styles.profileInfo}>\n <div>\n <Typography variant=\"h6\" className={styles.label}>\n {renderLabel(label)}\n </Typography>\n {secondaryLabel && (\n <Typography variant=\"subtitle2\" className={styles.secondaryLabel}>\n {secondaryLabel}\n </Typography>\n )}\n {businessCardText && (\n <Typography variant=\"subtitle1\" className={styles.businessCard}>\n {businessCardText}\n </Typography>\n )}\n </div>\n <div className={styles.specialInfo}>\n <div className={styles.entityType}>\n <EntityTypeBadge entity={entity} size=\"medium\" className={styles.badge} />\n {!isTempUri(entityUri) && showEntityId && (\n <Tooltip title={i18n.text('Copy to clipboard')}>\n <Typography\n display=\"inline\"\n variant=\"body2\"\n className={styles.entityId}\n onClick={handleCopyEntityIdToClipboard}\n >\n {i18n.text('Entity ID')}: {entityId}\n </Typography>\n </Tooltip>\n )}\n </div>\n </div>\n </div>\n {children && <div>{children}</div>}\n </div>\n </div>\n );\n};\n\nexport default ProfileBand;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n container: {\n display: 'flex',\n alignItems: 'center'\n },\n link: {\n whiteSpace: 'nowrap',\n marginRight: '9px'\n }\n});\n","import React, {useContext} from 'react';\nimport {Link as Link} from '@material-ui/core';\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\nimport {formatNumberAsMetric} from '@reltio/mdm-sdk';\nimport classnames from 'classnames';\nimport {mergeRight} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {LabelsContext} from '../../contexts/LabelsContext';\nimport {withTooltip} from '../../HOCs';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\n\nimport {useStyles} from './styles';\n\nconst LinkWithTooltip = withTooltip<typeof Link, {component: string}>(Link);\n\ntype Props = {\n className?: string;\n total?: number;\n onPrev?: () => void;\n onNext?: () => void;\n onSearchResultsClick?: () => void;\n isPrevDisabled?: boolean;\n isNextDisabled?: boolean;\n};\n\nconst ProfileBandNavigationWidget = ({\n className,\n total = 0,\n onPrev,\n onNext,\n onSearchResultsClick,\n isPrevDisabled,\n isNextDisabled\n}: Props) => {\n const styles = useStyles();\n const labels = useContext(LabelsContext);\n const {OPEN_RESULTS, SEARCH_RESULT, SEARCH_RESULTS, NEXT_PROFILE, PREVIOUS_PROFILE} = mergeRight(\n {\n OPEN_RESULTS: i18n.text('Go to search results'),\n SEARCH_RESULT: i18n.text('Search result'),\n SEARCH_RESULTS: i18n.text('Search results'),\n PREVIOUS_PROFILE: i18n.text('Go to previous profile'),\n NEXT_PROFILE: i18n.text('Go to next profile')\n },\n labels?.profileBand ?? {}\n );\n return (\n <div className={classnames(styles.container, className)}>\n <LinkWithTooltip\n className={styles.link}\n component=\"button\"\n variant=\"caption\"\n onClick={onSearchResultsClick}\n underline=\"none\"\n tooltipTitle={OPEN_RESULTS}\n >\n {formatNumberAsMetric(total, 1000000)} {total === 1 ? SEARCH_RESULT : SEARCH_RESULTS}\n </LinkWithTooltip>\n <SmallIconButtonWithTooltip\n size=\"L\"\n icon={KeyboardArrowLeft}\n tooltipTitle={PREVIOUS_PROFILE}\n onClick={onPrev}\n disabled={isPrevDisabled}\n showForDisabled\n />\n <SmallIconButtonWithTooltip\n size=\"L\"\n icon={KeyboardArrowRight}\n tooltipTitle={NEXT_PROFILE}\n onClick={onNext}\n disabled={isNextDisabled}\n showForDisabled\n />\n </div>\n );\n};\n\nexport {ProfileBandNavigationWidget, LinkWithTooltip};\n","import {\n Entity,\n getFilteredEntities,\n getFilteredEntitiesFromDataTenant,\n getTotals,\n getTotalFromDataTenant,\n TotalResponse\n} from '@reltio/mdm-sdk';\n\nimport {SearchProvider} from './SearchProvider';\n\nexport class MainSearchProvider implements SearchProvider {\n private readonly query;\n private readonly sortField;\n private readonly sortOrder;\n private readonly tenant;\n private readonly searchTenant;\n private readonly apiPath;\n private readonly dtssPath;\n private readonly globalSearchRequestOptions;\n\n constructor({\n data: {query, sortField, sortOrder},\n tenant,\n searchTenant,\n apiPath,\n dtssPath,\n globalSearchRequestOptions\n }) {\n this.query = query;\n this.sortField = sortField;\n this.sortOrder = sortOrder;\n this.tenant = tenant;\n this.searchTenant = searchTenant;\n this.apiPath = apiPath;\n this.dtssPath = dtssPath;\n this.globalSearchRequestOptions = globalSearchRequestOptions;\n }\n\n private isDT = () => this.tenant !== this.searchTenant;\n\n private getQueryFilter = () => ({rawFilter: this.query});\n\n private getEntities = (filters = [], options = {}): Promise<Entity[]> => {\n const requestFilters = [this.getQueryFilter(), ...filters];\n const requestOptions = {\n ...this.globalSearchRequestOptions,\n sort: this.sortField,\n order: this.sortOrder,\n select: 'uri,label,type',\n scoreEnabled: false,\n ...options\n };\n return this.isDT()\n ? getFilteredEntitiesFromDataTenant({\n filters: requestFilters,\n options: requestOptions,\n customerTenant: this.tenant,\n dataTenant: this.searchTenant,\n dtssPath: this.dtssPath\n })\n : getFilteredEntities(requestFilters, requestOptions);\n };\n\n checkEntity = (uri): Promise<boolean> => {\n return this.getEntities(\n [\n {\n filter: 'equals',\n fieldName: 'uri',\n values: [uri]\n }\n ],\n {offset: 0, max: 1}\n ).then((entities) => {\n return entities && entities.length > 0 && entities[0].uri === uri;\n });\n };\n\n requestEntities = (max, offset): Promise<Entity[]> => {\n return this.getEntities([], {offset, max});\n };\n\n requestTotal = (): Promise<number> => {\n const filters = [this.getQueryFilter()];\n const options = this.globalSearchRequestOptions;\n return (this.isDT()\n ? getTotalFromDataTenant({\n filters,\n options,\n customerTenant: this.tenant,\n dataTenant: this.searchTenant,\n dtssPath: this.dtssPath\n })\n : getTotals(filters, options)\n ).then((json) => (json as TotalResponse).total);\n };\n}\n","import {\n Entity,\n getGraphSearchCount,\n getGraphSearchEntities,\n getEntityId,\n buildFilterQueryString\n} from '@reltio/mdm-sdk';\n\nimport {SearchProvider} from './SearchProvider';\n\nexport class GraphSearchProvider implements SearchProvider {\n private readonly searchBody;\n private readonly tenant;\n private readonly apiPath;\n\n constructor({data, tenant, apiPath}) {\n this.searchBody = data;\n this.tenant = tenant;\n this.apiPath = apiPath;\n }\n\n private getEntities = (filters = [], options = {}): Promise<Entity[]> => {\n const allFilters = [\n {\n rawFilter: this.searchBody.filter\n },\n ...filters\n ];\n return getGraphSearchEntities({\n apiPath: this.apiPath,\n tenant: this.tenant,\n searchBody: {\n ...this.searchBody,\n filter: filters.length ? buildFilterQueryString()(allFilters) : this.searchBody.filter\n },\n options\n });\n };\n\n checkEntity = (uri): Promise<boolean> => {\n return this.getEntities(\n [\n {\n filter: 'equals',\n fieldName: 'id',\n values: [getEntityId({uri})]\n }\n ],\n {from: 0, max: 1}\n ).then((entities) => {\n return entities && entities.length > 0 && entities[0].uri === uri;\n });\n };\n\n requestEntities = (max, from): Promise<Entity[]> => {\n return this.getEntities([], {from, max});\n };\n\n requestTotal = (): Promise<number> => {\n return getGraphSearchCount({\n apiPath: this.apiPath,\n tenant: this.tenant,\n searchBody: this.searchBody\n }).then((json) => json.count);\n };\n}\n","import {SearchNavigationData} from '../types';\n\ntype Payload = {\n winnerUri: string;\n losersUris: string[];\n};\n\nconst replaceWithWinnerUri = (searchNavigationData: SearchNavigationData, winnerUri: string): SearchNavigationData => {\n let {uri, index, total, cache} = searchNavigationData;\n if (winnerUri && winnerUri !== uri) {\n if (cache && cache.includes(uri)) {\n cache = [...cache];\n const winnerIndex = cache.indexOf(winnerUri);\n let uriIndex = cache.indexOf(uri);\n if (winnerIndex >= 0) {\n cache.splice(winnerIndex, 1);\n total--;\n if (winnerIndex < uriIndex) {\n index--;\n }\n }\n uriIndex = cache.indexOf(uri);\n cache.splice(uriIndex, 1, winnerUri);\n }\n uri = winnerUri;\n return {\n ...searchNavigationData,\n uri,\n index,\n cache,\n total\n };\n }\n return searchNavigationData;\n};\n\nconst removeLosersUris = (searchNavigationData: SearchNavigationData, losersUris: string[]): SearchNavigationData => {\n const {cache = [], index, total, uri} = searchNavigationData;\n const losersInCache = losersUris.filter((uri) => cache.includes(uri));\n if (losersInCache.length === 0) {\n return searchNavigationData;\n }\n const updatedTotal = total - losersInCache.length;\n const uriIndex = cache.indexOf(uri);\n let updatedIndex = index;\n for (const loser of losersInCache) {\n const loserIndex = cache.indexOf(loser);\n if (loserIndex < uriIndex) {\n updatedIndex--;\n }\n }\n const updatedCache = cache.filter((uri) => !losersInCache.includes(uri));\n\n return {\n ...searchNavigationData,\n cache: updatedCache,\n index: updatedIndex,\n total: updatedTotal\n };\n};\n\nexport const applyMergeToSearchNavigationData = (\n searchNavigationData: SearchNavigationData,\n payload: Payload\n): SearchNavigationData => {\n const {winnerUri, losersUris = []} = payload;\n const updatedSearchNavigationData = replaceWithWinnerUri(searchNavigationData, winnerUri);\n return removeLosersUris(updatedSearchNavigationData, losersUris);\n};\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {search as mdmModuleSearch, ui as mdmModuleUi} from '@reltio/mdm-module';\nimport {getEntityUriForLink} from '@reltio/mdm-sdk';\nimport {map, pipe, prop, reject} from 'ramda';\nimport {useEntityLoadingIndication, useActionsHook, ViewIdContext} from '../../../contexts';\nimport {useSafePromise} from '../../../hooks';\nimport {getSearchProvider} from '../searchProviders/SearchProviderFactory';\nimport {SearchNavigationData, SearchProviderData} from '../types';\nimport {applyMergeToSearchNavigationData} from '../helpers';\n\nexport const REQUEST_PAGE_SIZE = 15;\n\nconst getNewUris = (entities, cache) =>\n pipe(\n map(prop('uri')),\n reject((uri) => cache.includes(uri))\n )(entities);\n\nconst useSearchNavigation = () => {\n const safeCheckEntityPromise = useSafePromise();\n const safeRequestTotalPromise = useSafePromise();\n const safeRequestEntitiesPromise = useSafePromise();\n const {\n uri,\n index,\n total,\n tenant: searchTenant,\n cache\n } = useSelector<unknown, SearchNavigationData>(mdmModule.selectors.getSearchNavigationData) || {};\n const {type, data} = useSelector<unknown, SearchProviderData>(mdmModule.selectors.getSearchProviderData) || {};\n const tenant = useSelector<unknown, string>(mdmModule.selectors.getTenant);\n const apiPath = useSelector<unknown, string>(mdmModule.selectors.getApiPath);\n const dtssPath = useSelector<unknown, string>(mdmModule.selectors.getDtssPath);\n const globalSearchRequestOptions = useSelector((state) =>\n mdmModule.selectors.getGlobalSearchRequestOptions(state, ['ovOnly'])\n );\n const {updateEntitiesNavigationLoadingState} = useEntityLoadingIndication();\n const viewId = useContext(ViewIdContext);\n const dispatch = useDispatch();\n const [loading, setLoading] = useState<boolean>(false);\n\n const searchProvider = useMemo(\n () => getSearchProvider(type, {data, tenant, searchTenant, apiPath, dtssPath, globalSearchRequestOptions}),\n [type, data, tenant, searchTenant, apiPath, dtssPath, globalSearchRequestOptions]\n );\n\n const updateNavigationData = useCallback(\n (data: Partial<SearchNavigationData>) => {\n dispatch(mdmModuleSearch.actions.updateSearchNavigationDataFields(data));\n },\n [dispatch]\n );\n\n const openEntity = useCallback(\n (uri: string) => {\n const preparedUri = tenant !== searchTenant ? getEntityUriForLink({uri, dataTenant: searchTenant}) : uri;\n dispatch(mdmModuleUi.actions.openEntity({uri: preparedUri, viewId, source: 'navigation'}));\n },\n [dispatch, viewId, tenant, searchTenant]\n );\n\n const onSearchResultsClick = useCallback(() => {\n dispatch(mdmModuleUi.actions.openPerspective({perspectiveId: type, viewId}));\n }, [dispatch, type, viewId]);\n\n useEffect(() => {\n if (index >= total) {\n updateNavigationData({\n index: total - 1\n });\n } else if (index < 0) {\n updateNavigationData({\n index: 0\n });\n }\n }, [total, index, updateNavigationData]);\n\n const listenToActions = useActionsHook();\n\n useEffect(() => {\n const stopListeningActions = listenToActions((action, state) => {\n switch (action.type) {\n case mdmModuleSearch.constants.UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE: {\n const searchNavigationData: SearchNavigationData =\n mdmModule.selectors.getSearchNavigationData(state);\n if (searchNavigationData) {\n updateNavigationData(applyMergeToSearchNavigationData(searchNavigationData, action.payload));\n }\n break;\n }\n }\n });\n return () => stopListeningActions();\n }, [listenToActions, updateNavigationData]);\n\n const requestNextPage = useCallback(\n (cache: string[], total: number, index: number): Promise<void> => {\n setLoading(true);\n safeRequestTotalPromise(searchProvider.requestTotal()).then((total) => updateNavigationData({total}));\n\n const newIndex = index + 1;\n return safeRequestEntitiesPromise(searchProvider.requestEntities(REQUEST_PAGE_SIZE, newIndex))\n .then((entities) => {\n if (!entities) {\n return;\n }\n if (entities.length) {\n const newUris = getNewUris(entities, cache);\n if (newUris.length > 0) {\n updateNavigationData({\n cache: cache.concat(newUris),\n uri: newUris[0],\n index: newIndex + entities.length - newUris.length\n });\n openEntity(newUris[0]);\n return;\n } else if (index + entities.length < total - 1) {\n return requestNextPage(cache, total - entities.length, index + entities.length);\n }\n }\n updateNavigationData({\n index: newIndex\n });\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [searchProvider, updateNavigationData, openEntity]\n );\n\n const requestPrevPage = useCallback(\n (cache: string[], index: number): Promise<void> => {\n setLoading(true);\n safeRequestTotalPromise(searchProvider.requestTotal()).then((total) => updateNavigationData({total}));\n\n const newIndex = index - 1;\n const offset = Math.max(0, index - REQUEST_PAGE_SIZE);\n const max = REQUEST_PAGE_SIZE + Math.min(0, index - REQUEST_PAGE_SIZE);\n return safeRequestEntitiesPromise(searchProvider.requestEntities(max, offset))\n .then((entities) => {\n if (!entities) {\n return;\n }\n if (entities.length) {\n const newUris = getNewUris(entities, cache);\n if (newUris.length > 0) {\n updateNavigationData({\n cache: newUris.concat(cache),\n uri: newUris[newUris.length - 1],\n index: newIndex - (entities.length - newUris.length)\n });\n openEntity(newUris[newUris.length - 1]);\n return;\n } else if (index - entities.length > 0) {\n return requestPrevPage(cache, index - entities.length);\n }\n }\n updateNavigationData({\n index: 0\n });\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [searchProvider, updateNavigationData, openEntity]\n );\n\n const stepForwardWithCheck = useCallback(\n (cache: string[], cacheIndex: number, total: number, index: number): Promise<void> | void => {\n if (cacheIndex < cache.length) {\n const uri = cache[cacheIndex];\n setLoading(true);\n return safeCheckEntityPromise(searchProvider.checkEntity(uri))\n .then((isExists) => {\n if (isExists) {\n updateNavigationData({\n index: index + 1,\n uri,\n cache,\n total\n });\n openEntity(uri);\n } else {\n const clearedCache = [...cache];\n clearedCache.splice(cacheIndex, 1);\n return stepForwardWithCheck(clearedCache, cacheIndex, total - 1, index);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n } else if (index >= total - 1) {\n updateNavigationData({\n cache,\n total,\n index: total - 1\n });\n } else {\n return requestNextPage(cache, total, index);\n }\n },\n [searchProvider, updateNavigationData, openEntity, requestNextPage]\n );\n\n const stepBackWithCheck = useCallback(\n (cache: string[], cacheIndex: number, total: number, index: number): Promise<void> | void => {\n if (cacheIndex > -1) {\n const uri = cache[cacheIndex];\n setLoading(true);\n return safeCheckEntityPromise(searchProvider.checkEntity(uri))\n .then((isExists) => {\n if (isExists) {\n updateNavigationData({\n index: index - 1,\n uri,\n cache,\n total\n });\n openEntity(uri);\n } else {\n const clearedCache = [...cache];\n clearedCache.splice(cacheIndex, 1);\n return stepBackWithCheck(clearedCache, cacheIndex - 1, total - 1, index - 1);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n } else if (index <= 0) {\n updateNavigationData({\n index: 0,\n cache,\n total\n });\n } else {\n return requestPrevPage(cache, index);\n }\n },\n [searchProvider, updateNavigationData, openEntity, requestPrevPage]\n );\n\n const onPrev = useCallback(() => {\n if (cache && uri) {\n const cacheIndex = cache.indexOf(uri) - 1;\n stepBackWithCheck(cache, cacheIndex, total, index);\n }\n }, [stepBackWithCheck, cache, uri, total, index]);\n\n const onNext = useCallback(() => {\n if (cache && uri) {\n const cacheIndex = cache.indexOf(uri) + 1;\n stepForwardWithCheck(cache, cacheIndex, total, index);\n }\n }, [stepForwardWithCheck, cache, uri, total, index]);\n\n useEffect(() => {\n updateEntitiesNavigationLoadingState(loading);\n }, [updateEntitiesNavigationLoadingState, loading]);\n\n useEffect(() => {\n return () => updateEntitiesNavigationLoadingState(false);\n }, []);\n\n const isPrevDisabled = loading || index <= 0;\n const isNextDisabled = loading || index >= total - 1;\n return {total, onPrev, onNext, onSearchResultsClick, isPrevDisabled, isNextDisabled};\n};\n\nexport {useSearchNavigation};\n","import {MainSearchProvider} from './MainSearchProvider';\nimport {GraphSearchProvider} from './GraphSearchProvider';\n\nexport const getSearchProvider = (type: string, options) => {\n switch (type) {\n case 'search':\n return new MainSearchProvider(options);\n case 'graphsearch':\n return new GraphSearchProvider(options);\n }\n};\n","import React from 'react';\n\nimport {ProfileBandNavigationWidget} from './ProfileBandNavigationWidget';\nimport {useSearchNavigation} from './hooks/useSearchNavigation';\nimport {useSearchNavigationVisibility} from './hooks/useSearchNavigationVisibility';\n\ntype Props = {\n className?: string;\n};\n\nconst ProfileBandNavigation = ({className}: Props) => {\n const {total, onPrev, onNext, onSearchResultsClick, isPrevDisabled, isNextDisabled} = useSearchNavigation();\n const isVisible = useSearchNavigationVisibility();\n return isVisible ? (\n <ProfileBandNavigationWidget\n className={className}\n total={total}\n onPrev={onPrev}\n onNext={onNext}\n onSearchResultsClick={onSearchResultsClick}\n isPrevDisabled={isPrevDisabled}\n isNextDisabled={isNextDisabled}\n />\n ) : null;\n};\n\nexport {ProfileBandNavigation};\n","import {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {Entity, isViewMode} from '@reltio/mdm-sdk';\nimport {SearchNavigationData} from '../types';\n\nconst useSearchNavigationVisibility = () => {\n const {cache} = useSelector<unknown, SearchNavigationData>(mdmModule.selectors.getSearchNavigationData) || {};\n const mode = useSelector<unknown, string>(mdmModule.selectors.getMode);\n const entity = useSelector<unknown, Entity>(mdmModule.selectors.getEntity);\n\n return isViewMode(mode) && cache?.includes(entity?.uri);\n};\n\nexport {useSearchNavigationVisibility};\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(() => ({\n container: {\n position: 'relative',\n '& .Resizer': {\n zIndex: 1,\n boxSizing: 'border-box',\n backgroundClip: 'padding-box',\n '&.disabled': {\n cursor: 'initial',\n height: 0,\n margin: 0\n },\n '&.horizontal': {\n height: '11px',\n backgroundImage: 'linear-gradient(rgba(0,0,0,0.33), rgba(0,0,0,0.33))',\n backgroundRepeat: 'no-repeat',\n backgroundSize: '100% 1px',\n backgroundPosition: 'top',\n width: '100%',\n marginBottom: '-10px',\n '&:not(.disabled):hover': {\n cursor: 'row-resize',\n backgroundImage:\n 'linear-gradient(rgba(0, 114, 206, 0), rgba(0, 114, 206, 0.35), rgba(0, 114, 206, 1))',\n backgroundSize: '100% 3px'\n }\n },\n '&.vertical': {\n width: '11px',\n backgroundImage: 'linear-gradient(rgba(0,0,0,0.33), rgba(0,0,0,0.33))',\n backgroundRepeat: 'no-repeat',\n backgroundSize: '1px 100%',\n backgroundPosition: 'left',\n height: '100%',\n marginRight: '-10px',\n '&:not(.disabled):hover': {\n cursor: 'col-resize',\n backgroundImage:\n 'linear-gradient(to left, rgba(0, 114, 206, 0.35), rgba(0, 114, 206, 1), rgba(0, 114, 206, 0.35))',\n backgroundSize: '3px 100%'\n }\n }\n }\n }\n}));\n\nexport {useStyles};\n","import React, {useCallback, useMemo, useState} from 'react';\nimport classnames from 'classnames';\nimport SplitPane from 'react-split-pane';\nimport {useTheme} from '@material-ui/core/styles';\nimport {debounce} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst HANDLE_CHANGE_DEBOUNCE_INTERVAL = 250;\n\nconst isHorizontal = (orientation) => orientation === 'horizontal';\n\nexport type Size = string | number;\ntype OnChange = {\n size: number;\n percentageSize: string;\n isMaxSize: boolean;\n isMinSize: boolean;\n};\n\ntype Props = {\n className?: string;\n children: React.ReactElement[];\n allowResize?: boolean;\n primary?: 'first' | 'second';\n minSize?: Size;\n maxSize?: Size;\n defaultSize?: Size;\n debounceInterval?: number;\n size?: Size;\n orientation?: 'vertical' | 'horizontal';\n onChange?: ({size, percentageSize, isMaxSize, isMinSize}: OnChange) => void;\n};\n\nexport const ResizablePanes = ({\n className,\n children,\n orientation,\n primary,\n defaultSize,\n size,\n minSize,\n maxSize,\n allowResize,\n debounceInterval = HANDLE_CHANGE_DEBOUNCE_INTERVAL,\n onChange\n}: Props) => {\n const styles = useStyles();\n const theme = useTheme();\n const [containerEl, setContainerEl] = useState(null);\n const [isPaneAnimationEnabled, setIsPaneAnimationEnabled] = useState(true);\n\n const enableAnimation = useCallback(() => setIsPaneAnimationEnabled(true), []);\n const disableAnimation = useCallback(() => setIsPaneAnimationEnabled(false), []);\n const getContainerSize = () => (isHorizontal(orientation) ? containerEl?.clientHeight : containerEl?.clientWidth);\n\n const handleChange = useCallback(\n debounce((size) => {\n const containerSize = getContainerSize();\n onChange({\n percentageSize: `${(size / containerSize) * 100}%`,\n isMaxSize: maxSize > 0 ? size === maxSize : size === containerSize + maxSize,\n isMinSize: size === minSize,\n size\n });\n }, debounceInterval),\n [onChange, orientation, maxSize, containerEl]\n );\n\n const paneAnimationStyle = useMemo(\n () => ({\n transition: theme.transitions.create(isHorizontal(orientation) ? 'height' : 'width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen\n })\n }),\n [orientation, theme]\n );\n\n if (typeof size === 'number' && size < 0) {\n size = (getContainerSize() || 0) + size;\n }\n\n return (\n <div ref={setContainerEl} className={classnames(styles.container, className)}>\n <SplitPane\n split={orientation}\n size={size}\n primary={primary}\n allowResize={allowResize}\n onChange={handleChange}\n defaultSize={defaultSize}\n minSize={minSize}\n maxSize={maxSize}\n onDragStarted={disableAnimation}\n onDragFinished={enableAnimation}\n pane1Style={isPaneAnimationEnabled ? paneAnimationStyle : undefined}\n >\n {children}\n </SplitPane>\n </div>\n );\n};\n\nResizablePanes.displayName = 'ResizablePanes';\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {findSourceSystemByUri, getAbsoluteImageUrl, getSourceSystemLabel, Source} from '@reltio/mdm-sdk';\nimport AvatarWithFallback from '../AvatarWithFallback/AvatarWithFallback';\n\ntype Props = {\n sourceType: string;\n className?: string;\n classes?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst SOURCE_URL = 'https://s3.amazonaws.com/reltio.images/api';\nconst SourceIcon = ({sourceType, className, classes}: Props) => {\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const {uri, icon}: Source = findSourceSystemByUri(metadata, sourceType) || {};\n const avatarText = uri ? getSourceSystemLabel(metadata, uri)[0] : '';\n const sourceIcon = icon ? getAbsoluteImageUrl(SOURCE_URL, icon) : null;\n\n return (\n <AvatarWithFallback\n className={className}\n avatarText={avatarText}\n icon={sourceIcon}\n variant=\"square\"\n rootClasses={classes}\n />\n );\n};\n\nexport default SourceIcon;\n","import React from 'react';\n\nconst Spacer = () => <div style={{flex: 1}} />;\n\nexport default Spacer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'flex-start'\n },\n slice: {\n fontWeight: 500\n },\n cancelButton: {\n width: '88px',\n flexShrink: 0,\n marginLeft: '15px'\n }\n});\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {profile} from '@reltio/mdm-module';\nimport {Button as Button} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {pipe} from 'ramda';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\nconst ProfileBandHistory = () => {\n const styles = useStyles();\n\n const historyEvent = useSelector(mdmModule.selectors.getHistoryEvent);\n const dispatch = useDispatch();\n const onCancel = pipe(profile.history.actions.clearHistoryEvent, dispatch);\n\n return historyEvent ? (\n <div className={styles.root}>\n <Typography component={'div'}>\n {i18n.text('You are viewing a historic slice:')}{' '}\n <span className={styles.slice}>{i18n.date(historyEvent.aStamp, 'llll')}</span>\n </Typography>\n <Button className={styles.cancelButton} variant=\"contained\" color=\"primary\" onClick={onCancel}>\n {i18n.text('Cancel')}\n </Button>\n </div>\n ) : null;\n};\n\nexport default ProfileBandHistory;\n","import React, {createContext, useContext} from 'react';\nimport {AnyAction} from 'redux';\n\ntype ActionsHook = (listener: (action: AnyAction, state: any) => void) => () => void;\n\nconst ActionsHookContext = createContext<ActionsHook | null>(null);\nActionsHookContext.displayName = 'ActionsHookContext';\n\ntype ProviderProps = {\n hook: ActionsHook;\n children: React.ReactNode;\n};\n\nexport const ActionsHookProvider = ({children, hook}: ProviderProps) => {\n return <ActionsHookContext.Provider value={hook}>{children}</ActionsHookContext.Provider>;\n};\n\nexport const useActionsHook = () => {\n const listenToActions = useContext(ActionsHookContext);\n if (!listenToActions) {\n throw new Error('ActionsHookContext must be provided');\n }\n return listenToActions;\n};\n","import React, {createContext, useCallback, useContext} from 'react';\nimport {CrosswalkBase, getCrosswalkColor, getCrosswalkId} from '@reltio/mdm-sdk';\nimport {pipe, eqBy} from 'ramda';\nimport {noop} from '../../core';\n\nconst CrosswalksDisplayContext = createContext(null);\n\ntype ProviderProps = {\n children: React.ReactNode;\n getCrosswalkColor?: (crosswalk: CrosswalkBase) => string;\n focusedCrosswalks?: CrosswalkBase[];\n highlightedCrosswalks?: CrosswalkBase[];\n toggleCrosswalkFocus?: (crosswalk: CrosswalkBase) => void;\n setCrosswalkHighlighted?: (crosswalk: CrosswalkBase, highlighted: boolean) => void;\n};\n\nexport const CrosswalksDisplayProvider = ({children, ...props}: ProviderProps) => {\n return <CrosswalksDisplayContext.Provider value={props}>{children}</CrosswalksDisplayContext.Provider>;\n};\n\nexport const useCrosswalkColor = (crosswalk?: CrosswalkBase) => {\n const {getCrosswalkColor: getColor = pipe(getCrosswalkId, getCrosswalkColor)} =\n useContext(CrosswalksDisplayContext) || {};\n return crosswalk ? getColor(crosswalk) : '';\n};\n\nexport const useHighlightedCrosswalks = () => {\n const {highlightedCrosswalks = []} = useContext(CrosswalksDisplayContext) || {};\n return highlightedCrosswalks;\n};\n\nexport const useCrosswalkHighlight = (crosswalk?: CrosswalkBase) => {\n const {highlightedCrosswalks = [], setCrosswalkHighlighted = noop} = useContext(CrosswalksDisplayContext) || {};\n const isHighlighted = !!crosswalk && !!highlightedCrosswalks.find(eqBy(getCrosswalkId, crosswalk));\n return {\n isHighlighted,\n isDimmed: highlightedCrosswalks.length > 0 && !isHighlighted,\n highlightCrosswalk: useCallback(() => setCrosswalkHighlighted(crosswalk, true), [\n crosswalk,\n setCrosswalkHighlighted\n ]),\n removeHighlight: useCallback(() => setCrosswalkHighlighted(crosswalk, false), [\n crosswalk,\n setCrosswalkHighlighted\n ])\n };\n};\n\nexport const useCrosswalkFocus = (crosswalk?: CrosswalkBase) => {\n const {toggleCrosswalkFocus = noop, focusedCrosswalks = []} = useContext(CrosswalksDisplayContext) || {};\n const isFocused = !!crosswalk && focusedCrosswalks.some(eqBy(getCrosswalkId, crosswalk));\n return {\n isFocused,\n toggleCrosswalkFocus: useCallback(() => toggleCrosswalkFocus(crosswalk), [crosswalk, toggleCrosswalkFocus])\n };\n};\n","import React, {useState, useCallback, useContext} from 'react';\nimport {noop} from '../../core/utils';\n\ntype LoadingState = {\n entitiesNavigation: boolean;\n entity: boolean;\n};\n\ntype ContextValue = {\n isLoading: boolean;\n updateEntityLoadingState: (loading: boolean) => void;\n updateEntitiesNavigationLoadingState: (loading: boolean) => void;\n resetLoadingState: () => void;\n};\n\nconst EntityLoadingIndicationContext = React.createContext<ContextValue>({\n isLoading: false,\n updateEntityLoadingState: noop,\n updateEntitiesNavigationLoadingState: noop,\n resetLoadingState: noop\n});\n\nconst defaultLoadingState: LoadingState = {entitiesNavigation: false, entity: false};\n\nconst useEntityLoadingIndicationHook = () => {\n const [loadingState, setLoadingState] = useState(defaultLoadingState);\n\n const updateEntityLoadingState = useCallback((loading: boolean) => {\n setLoadingState((prevLoadingState) => ({...prevLoadingState, entity: loading}));\n }, []);\n\n const updateEntitiesNavigationLoadingState = useCallback((loading: boolean) => {\n setLoadingState((prevLoadingState) => ({...prevLoadingState, entitiesNavigation: loading}));\n }, []);\n\n const resetLoadingState = useCallback(() => {\n setLoadingState(defaultLoadingState);\n }, []);\n\n const isLoading = Object.values(loadingState).includes(true);\n\n return {isLoading, updateEntityLoadingState, updateEntitiesNavigationLoadingState, resetLoadingState};\n};\n\ntype Props = {\n children: React.ReactNode;\n};\n\nexport const EntityLoadingIndicationProvider = ({children}: Props) => {\n const value = useEntityLoadingIndicationHook();\n return <EntityLoadingIndicationContext.Provider value={value}>{children}</EntityLoadingIndicationContext.Provider>;\n};\n\nexport const useEntityLoadingIndication = () => {\n return useContext(EntityLoadingIndicationContext);\n};\n","import React from 'react';\n\ntype Labels = {\n profileBand: {\n OPEN_RESULTS?: string;\n SEARCH_RESULT?: string;\n SEARCH_RESULTS?: string;\n NEXT_PROFILE?: string;\n PREVIOUS_PROFILE?: string;\n };\n};\nexport const LabelsContext = React.createContext<Labels>({\n profileBand: {}\n});\n\nLabelsContext.displayName = 'LabelsContext';\n","import {useCallback, useEffect, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {\n andThen,\n fromPairs,\n map,\n otherwise,\n pipe,\n props,\n uniqBy,\n prop,\n propEq,\n when,\n always,\n assocPath,\n dissocPath,\n path,\n pathOr,\n mergeRight\n} from 'ramda';\nimport {\n CollaborationObjectTypes,\n Comment,\n CommentsMap,\n createComment as createCommentRequest,\n createReply as createReplyRequest,\n getComment as getCommentRequest,\n getCommentsCount as getCommentsCountRequest,\n Reply,\n updateComment as updateCommentRequest,\n updateReply as updateReplyRequest,\n deleteComment as deleteCommentRequest,\n deleteReply as deleteReplyRequest,\n getComments as getCommentsRequest,\n isTempUri,\n CollaborationStateMap,\n CommentState\n} from '@reltio/mdm-sdk';\nimport mdm from '@reltio/mdm-module';\n\ntype Props = {\n objectIds?: string[];\n objectTypes?: CollaborationObjectTypes[];\n enabled?: boolean;\n};\n\nconst filterReplies = (replyId: string, replies: Reply[]) => replies.filter((reply) => reply.replyId !== replyId);\n\nconst getUpdatedReplies = (comment: Comment, reply: Reply) => {\n const changedReplyIndex = comment.replies.findIndex(({replyId}) => replyId === reply.replyId);\n const newReplies = [...comment.replies];\n newReplies[changedReplyIndex] = reply;\n return newReplies;\n};\n\nconst defaultObjectIds = [];\nconst catchErrorInRequest = (e) => console.error('Collaboration error', e);\nexport const useCollaboration = ({objectIds = defaultObjectIds, objectTypes, enabled = true}: Props) => {\n const entity = useSelector(mdm.selectors.getEntity);\n const tenant: string = useSelector(mdm.selectors.getTenant);\n const collaborationPath: string = useSelector(mdm.selectors.getCollaborationPath);\n const isCollaborationEnabled = useSelector(mdm.selectors.isCollaborationEnabled) && enabled;\n\n const [pageToken, setPageToken] = useState<string | null>(null);\n const [comments, setComments] = useState<Comment[]>([]);\n const [commentsMap, setCommentsMap] = useState<CommentsMap>(null);\n const [currentComment, setCurrentComment] = useState<Comment | null>(null);\n const [sending, setSending] = useState(false);\n const [loading, setLoading] = useState(false);\n const [collaborationStateMap, setCollaborationStateMap] = useState<CollaborationStateMap>({});\n\n const addCommentsToCommentsMap = useCallback((commentsMap: CommentsMap) => {\n setCommentsMap((currentCommentsMap) => ({\n ...currentCommentsMap,\n ...commentsMap\n }));\n }, []);\n const entityUri = entity?.uri;\n const getCommentsCount = useCallback(\n (objectIds: string[], shouldResetCommentsMap = false) => {\n if (isCollaborationEnabled && entityUri && !isTempUri(entityUri)) {\n const onError = (e) => {\n console.warn('Collaboration error', e);\n setCommentsMap(null);\n };\n pipe(\n getCommentsCountRequest,\n andThen(map(props(['objectId', 'comments']))),\n andThen(fromPairs),\n andThen(shouldResetCommentsMap ? setCommentsMap : addCommentsToCommentsMap),\n otherwise(onError)\n )({uris: objectIds, tenant, collaborationPath});\n } else {\n setCommentsMap(null);\n }\n },\n [addCommentsToCommentsMap, collaborationPath, entityUri, isCollaborationEnabled, tenant]\n );\n\n useEffect(() => {\n getCommentsCount(objectIds, true);\n }, [objectIds, getCommentsCount]);\n\n const getComments = useCallback(\n (relatedObjectUri: string, pageToken?: string) => {\n getCommentsRequest({collaborationPath, tenant, relatedObjectUri, pageToken})\n .then(({items, nextPageToken}) => {\n setComments((prevComments) => {\n if (!pageToken) {\n return items;\n }\n return uniqBy(prop('commentId'), [...prevComments, ...items]);\n });\n setPageToken(nextPageToken);\n })\n .catch(catchErrorInRequest);\n },\n [collaborationPath, tenant]\n );\n\n const getComment = useCallback(\n (commentId: string) => {\n setLoading(true);\n\n getCommentRequest({collaborationPath, tenant, commentId})\n .then(setCurrentComment)\n .catch(catchErrorInRequest)\n .finally(() => setLoading(false));\n },\n [collaborationPath, tenant]\n );\n\n const addCommentToState = (comment: Comment, uri: string) => {\n setCurrentComment(comment);\n setCommentsMap((prevCommentsMap) => {\n return {\n ...prevCommentsMap,\n [uri]: [...(prevCommentsMap[uri] || []), {commentId: comment.commentId, replies: 0, status: 'open'}]\n };\n });\n setComments((prevComments) => [comment, ...prevComments]);\n };\n const updateCommentInState = (comment: Comment) => {\n setCurrentComment(comment);\n setComments(map(when(propEq('commentId', comment.commentId), always(comment))));\n };\n const deleteCommentFromState = (commentId: string, uri: string) => {\n setCurrentComment(null);\n setCommentsMap((prevCommentsMap) => {\n const comments = prevCommentsMap[uri] || [];\n return {\n ...prevCommentsMap,\n [uri]: comments.filter((c) => c.commentId !== commentId)\n };\n });\n setComments((prevComments) => {\n return prevComments.filter((comment) => comment.commentId !== commentId);\n });\n };\n const createComment = useCallback(\n ({content, namedUsers, objectType, uri, relatedObjectUris}) => {\n setSending(true);\n\n const data = {\n objectId: uri,\n content,\n relatedObjectUris,\n objectType,\n visibility: 'public',\n namedUsers,\n permanentLink: `${window.location.href}&commentId=${encodeURIComponent('{commentId}')}`\n };\n\n return createCommentRequest({collaborationPath, tenant, data})\n .then(([comment]) => addCommentToState(comment, uri))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const editComment = useCallback(\n ({content, namedUsers, objectType, uri, relatedObjectUris, commentId, replies}) => {\n setSending(true);\n\n const data = {\n objectId: uri,\n content,\n relatedObjectUris,\n objectType,\n visibility: 'public',\n namedUsers,\n commentId,\n replies\n };\n\n return updateCommentRequest({collaborationPath, tenant, data})\n .then((comment) => updateCommentInState({...comment, replies}))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const deleteComment = useCallback(\n ({uri, commentId}) => {\n setSending(true);\n\n deleteCommentRequest({collaborationPath, tenant, commentId})\n .then(() => deleteCommentFromState(commentId, uri))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const updateReplyInState = useCallback((reply: Reply, uri: string, commentId: string, isDeleteReply?: boolean) => {\n const newStatus = reply.action === 'resolve' ? 'resolved' : 'open';\n const {replyId} = reply;\n if (newStatus === 'resolved') {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return null;\n }\n });\n } else {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return {\n ...prevCurrentComment,\n replies: isDeleteReply\n ? filterReplies(replyId, prevCurrentComment.replies)\n : [...prevCurrentComment.replies, reply]\n };\n }\n });\n }\n\n setCommentsMap((prevCommentsMap) => ({\n ...prevCommentsMap,\n [uri]: (prevCommentsMap[uri] || []).map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n status: newStatus,\n replies: isDeleteReply ? comment.replies - 1 : comment.replies + 1\n };\n }\n\n return comment;\n })\n }));\n\n setComments((prevComments) => {\n return prevComments.map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n status: newStatus,\n replies: isDeleteReply\n ? filterReplies(reply.replyId, comment.replies)\n : [...comment.replies, reply]\n };\n }\n\n return comment;\n });\n });\n }, []);\n\n const deleteReply = useCallback(\n ({uri, commentId, reply}) => {\n setSending(true);\n\n deleteReplyRequest({collaborationPath, tenant, commentId, replyId: reply.replyId})\n .then(() => updateReplyInState(reply, uri, commentId, true))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, updateReplyInState, tenant]\n );\n\n const editReplyInState = useCallback((reply: Reply, commentId: string) => {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return {\n ...prevCurrentComment,\n replies: getUpdatedReplies(prevCurrentComment, reply)\n };\n }\n });\n\n setComments((prevComments) => {\n return prevComments.map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n replies: getUpdatedReplies(comment, reply)\n };\n }\n\n return comment;\n });\n });\n }, []);\n\n const editReply = useCallback(\n ({content, namedUsers, commentId, replyId}) => {\n setSending(true);\n const data = {\n content,\n namedUsers\n };\n return updateReplyRequest({collaborationPath, tenant, commentId, replyId, data})\n .then((reply) => editReplyInState(reply, commentId))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant, editReplyInState]\n );\n\n const createReply = useCallback(\n ({content, namedUsers, commentId, action, uri}) => {\n setSending(true);\n\n const data = {\n content,\n action,\n namedUsers\n };\n\n return createReplyRequest({collaborationPath, tenant, commentId, data})\n .then(([reply]) => updateReplyInState(reply, uri, commentId))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant, updateReplyInState]\n );\n\n const resolveThread = useCallback(\n ({commentId, uri}) => {\n createReply({content: '', namedUsers: [], commentId, action: 'resolve', uri});\n },\n [createReply]\n );\n\n const reOpenThread = useCallback(\n ({commentId, uri}) => {\n createReply({content: '', namedUsers: [], commentId, action: 'reopen', uri});\n },\n [createReply]\n );\n\n const clearCurrentComment = useCallback(() => {\n setCurrentComment(null);\n }, []);\n\n const getCommentState = (uri: string, commentUri: string) => pathOr({}, [uri, commentUri], collaborationStateMap);\n\n const clearCommentState = (uri: string, commentUri: string) =>\n setCollaborationStateMap(dissocPath([uri, commentUri]));\n\n const updateCommentState = (uri: string, commentUri: string, newState: CommentState) => {\n setCollaborationStateMap((prevCollaborationStateMap) => {\n const pathToCommentState = [uri, commentUri];\n const prevCommentState = path(pathToCommentState, prevCollaborationStateMap);\n return assocPath(pathToCommentState, mergeRight(prevCommentState, newState), prevCollaborationStateMap);\n });\n };\n\n return {\n clearCurrentComment,\n comments,\n commentsMap,\n getCommentState,\n updateCommentState,\n clearCommentState,\n createComment,\n createReply,\n currentComment,\n deleteComment,\n editComment,\n getComment,\n getComments,\n getCommentsCount,\n loading,\n objectTypes,\n pageToken,\n reOpenThread,\n resolveThread,\n sending,\n deleteReply,\n editReply\n };\n};\n"],"names":["AvatarStates","className","icon","avatarText","rootClasses","otherProps","state","setState","useState","useEffect","ICON_MODE","TEXT_MODE","onImageLoadFail","ERROR_MODE","Avatar","classnames","iconRoot","src","onError","textRoot","contextSelector","CellRenderer","withContext","TableContext","props","width","height","viewBox","xmlns","d","fill","fillRule","stroke","strokeWidth","opacity","ColumnsSettings","columnsData","selectedColumns","onChangeColumns","title","tooltipTitle","anchorEl","setAnchorEl","handleColumnClick","useCallback","column","changedColumns","pipe","getChildColumns","pluck","wasSelected","isColumnSelected","difference","uniq","concat","SmallIconButton","i18n","size","TableIcon","onClick","event","currentTarget","ColumnsSettingsPopup","onColumnClick","onClose","propTypes","ColumnsDataType","PropTypes","useStyles","makeStyles","popup","minWidth","groupItem","backgroundColor","ColumnListItem","item","checked","level","style","isFocused","isGroupItem","hideCheckBox","styles","AttributeListItem","key","id","data","label","Highlighter","text","highlight","filterText","labelInText","hideIcon","setFilterText","groupedItems","useMemo","buildColumnItems","items","flattenGroupedItemsData","containerWidth","getMaxItemWidth","handleSearchOnEnter","focusIndex","handleKeyDown","useKeyboardNavigation","open","onSelectFocusedItem","selectedItems","handleClose","listHeight","Math","min","length","containerHeight","max","SelectionPopup","onSearch","searchInputOnKeyDown","VirtualGroupedList","fixedTitle","renderItem","index","isGroupColumn","getItemSize","groupId","isParentToColumn","curry","parent","startsWith","isGroupToColumn","group","isHideableColumn","propOr","addColumn","columns","root","find","either","getColumnRoot","children","filterColumnsByLabel","utils","some","buildColumnsTrees","reduce","acc","columnData","attrType","dataTypeDefinition","buildFilteredColumnItems","filter","chain","isGroupedColumnsData","has","flattenGroupedColumnsData","map","assoc","when","childColumns","includes","every","textOverflow","overflow","whiteSpace","padding","fontSize","lineHeight","marginRight","borderRadius","flexShrink","fontWeight","entity","metadata","useSelector","mdmModule","entityTypeUri","type","entityType","getEntityType","entityTypeColor","getPropWithInheritance","theme","entityTypeLabel","getEntityTypeLabel","ExpandedValueTooltip","value","placement","Typography","color","component","profileBandWrapper","profileBand","display","alignItems","boxShadow","marginBottom","content","minHeight","inactive","background","inactiveBackground","profileIcon","imageProfileIcon","profileInfo","flexDirection","flex","badge","letterSpacing","palette","primary","wordBreak","marginTop","secondaryLabel","marginLeft","businessCard","secondary","specialInfo","justifyContent","flexWrap","entityId","cursor","textDecoration","classes","renderLabel","identity","showEntityId","handleCopyEntityIdToClipboard","navigator","clipboard","writeText","getEntityId","isNil","getLabel","businessCardText","getBusinessCardAttributesText","isActive","isActiveObject","entityUri","uri","EntityAvatar","avatarClassName","imageClassName","variant","EntityTypeBadge","isTempUri","Tooltip","container","link","LinkWithTooltip","withTooltip","Link","ProfileBandNavigationWidget","total","onPrev","onNext","onSearchResultsClick","isPrevDisabled","isNextDisabled","labels","useContext","LabelsContext","OPEN_RESULTS","SEARCH_RESULT","SEARCH_RESULTS","NEXT_PROFILE","PREVIOUS_PROFILE","mergeRight","underline","formatNumberAsMetric","KeyboardArrowLeft","disabled","showForDisabled","KeyboardArrowRight","MainSearchProvider","constructor","query","sortField","sortOrder","tenant","searchTenant","apiPath","dtssPath","globalSearchRequestOptions","isDT","this","getQueryFilter","rawFilter","getEntities","filters","options","requestFilters","requestOptions","sort","order","select","scoreEnabled","getFilteredEntitiesFromDataTenant","customerTenant","dataTenant","getFilteredEntities","checkEntity","fieldName","values","offset","then","entities","requestEntities","requestTotal","getTotalFromDataTenant","getTotals","json","GraphSearchProvider","searchBody","allFilters","getGraphSearchEntities","buildFilterQueryString","from","getGraphSearchCount","count","getNewUris","cache","prop","reject","useSearchNavigation","safeCheckEntityPromise","useSafePromise","safeRequestTotalPromise","safeRequestEntitiesPromise","updateEntitiesNavigationLoadingState","useEntityLoadingIndication","viewId","ViewIdContext","dispatch","useDispatch","loading","setLoading","searchProvider","getSearchProvider","updateNavigationData","mdmModuleSearch","openEntity","preparedUri","getEntityUriForLink","mdmModuleUi","source","perspectiveId","listenToActions","useActionsHook","stopListeningActions","action","searchNavigationData","payload","winnerUri","losersUris","updatedSearchNavigationData","winnerIndex","indexOf","uriIndex","splice","replaceWithWinnerUri","losersInCache","updatedTotal","updatedIndex","loser","updatedCache","removeLosersUris","applyMergeToSearchNavigationData","requestNextPage","newIndex","newUris","finally","requestPrevPage","stepForwardWithCheck","cacheIndex","isExists","clearedCache","stepBackWithCheck","ProfileBandNavigation","mode","isViewMode","useSearchNavigationVisibility","position","zIndex","boxSizing","backgroundClip","margin","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","HANDLE_CHANGE_DEBOUNCE_INTERVAL","isHorizontal","orientation","ResizablePanes","defaultSize","minSize","maxSize","allowResize","debounceInterval","onChange","useTheme","containerEl","setContainerEl","isPaneAnimationEnabled","setIsPaneAnimationEnabled","enableAnimation","disableAnimation","getContainerSize","clientHeight","clientWidth","handleChange","debounce","containerSize","percentageSize","isMaxSize","isMinSize","paneAnimationStyle","transition","transitions","create","easing","sharp","duration","leavingScreen","ref","split","onDragStarted","onDragFinished","pane1Style","undefined","displayName","sourceType","findSourceSystemByUri","getSourceSystemLabel","sourceIcon","getAbsoluteImageUrl","slice","cancelButton","historyEvent","onCancel","profile","aStamp","Button","ActionsHookContext","createContext","ActionsHookProvider","hook","Provider","Error","CrosswalksDisplayContext","CrosswalksDisplayProvider","useCrosswalkColor","crosswalk","getCrosswalkColor","getColor","getCrosswalkId","useHighlightedCrosswalks","highlightedCrosswalks","useCrosswalkHighlight","setCrosswalkHighlighted","noop","isHighlighted","eqBy","isDimmed","highlightCrosswalk","removeHighlight","useCrosswalkFocus","toggleCrosswalkFocus","focusedCrosswalks","EntityLoadingIndicationContext","React","isLoading","updateEntityLoadingState","resetLoadingState","defaultLoadingState","entitiesNavigation","EntityLoadingIndicationProvider","loadingState","setLoadingState","prevLoadingState","Object","useEntityLoadingIndicationHook","filterReplies","replyId","replies","reply","getUpdatedReplies","comment","changedReplyIndex","findIndex","newReplies","defaultObjectIds","catchErrorInRequest","e","console","error","useCollaboration","objectIds","objectTypes","enabled","mdm","collaborationPath","isCollaborationEnabled","pageToken","setPageToken","comments","setComments","commentsMap","setCommentsMap","currentComment","setCurrentComment","sending","setSending","collaborationStateMap","setCollaborationStateMap","addCommentsToCommentsMap","currentCommentsMap","getCommentsCount","shouldResetCommentsMap","warn","getCommentsCountRequest","andThen","fromPairs","otherwise","uris","getComments","relatedObjectUri","getCommentsRequest","nextPageToken","prevComments","uniqBy","catch","getComment","commentId","getCommentRequest","createComment","namedUsers","objectType","relatedObjectUris","objectId","visibility","permanentLink","window","location","href","encodeURIComponent","createCommentRequest","prevCommentsMap","status","addCommentToState","editComment","updateCommentRequest","propEq","always","updateCommentInState","deleteComment","deleteCommentRequest","c","deleteCommentFromState","updateReplyInState","isDeleteReply","newStatus","prevCurrentComment","deleteReply","deleteReplyRequest","editReplyInState","editReply","updateReplyRequest","createReply","createReplyRequest","resolveThread","reOpenThread","clearCurrentComment","getCommentState","commentUri","pathOr","updateCommentState","newState","prevCollaborationStateMap","pathToCommentState","prevCommentState","path","assocPath","clearCommentState","dissocPath"],"sourceRoot":""}
|
package/1268.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_reltio_remotes=self.webpackChunk_reltio_remotes||[]).push([[1268],{66248:(e,s,t)=>{t.r(s),t.d(s,{default:()=>r});const r=t(
|
|
1
|
+
"use strict";(self.webpackChunk_reltio_remotes=self.webpackChunk_reltio_remotes||[]).push([[1268],{66248:(e,s,t)=>{t.r(s),t.d(s,{default:()=>r});const r=t(77594)._n}}]);
|
|
2
2
|
//# sourceMappingURL=1268.js.map
|