@reltio/remotes 1.4.1193 → 1.4.1197
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/1116.js +2 -0
- package/1116.js.map +1 -0
- package/1136.js +2 -0
- package/1136.js.map +1 -0
- package/1406.js +2 -0
- package/1406.js.map +1 -0
- package/1920.js +1 -1
- package/1957.js +1 -1
- package/1957.js.map +1 -1
- package/2114.js +1 -1
- package/2114.js.map +1 -1
- package/2890.js +1 -1
- package/3270.js +2 -0
- package/3270.js.map +1 -0
- package/350.js +2 -0
- package/350.js.map +1 -0
- package/3745.js +2 -0
- package/3745.js.map +1 -0
- package/3749.js +3 -0
- package/{8148.js.LICENSE.txt → 3749.js.LICENSE.txt} +0 -0
- package/3749.js.map +1 -0
- package/4361.js +1 -1
- package/4527.js +2 -0
- package/4527.js.map +1 -0
- package/4582.js +1 -1
- package/4670.js +2 -0
- package/4670.js.map +1 -0
- package/4689.js +1 -1
- package/4689.js.map +1 -1
- package/{604.css → 4715.css} +1 -1
- package/4715.css.map +1 -0
- package/4715.js +2 -0
- package/4715.js.map +1 -0
- package/4730.js +2 -0
- package/4730.js.map +1 -0
- package/4843.js +1 -1
- package/4889.js +1 -1
- package/501.js +2 -0
- package/501.js.map +1 -0
- package/5400.js +1 -1
- package/5709.js +1 -1
- package/5720.js +1 -1
- package/5797.js +2 -0
- package/5797.js.map +1 -0
- package/5884.js +1 -1
- package/5884.js.map +1 -1
- package/621.js +1 -1
- package/6523.js +2 -0
- package/6523.js.map +1 -0
- package/6596.js +1 -1
- package/6710.js +1 -1
- package/6710.js.map +1 -1
- package/6971.js +2 -0
- package/6971.js.map +1 -0
- package/7147.js +2 -0
- package/7147.js.map +1 -0
- package/7526.js +2 -0
- package/7526.js.map +1 -0
- package/7547.js +2 -0
- package/7547.js.map +1 -0
- package/7741.js +2 -0
- package/7741.js.map +1 -0
- package/8337.js +2 -0
- package/8337.js.map +1 -0
- package/8666.js +2 -0
- package/8666.js.map +1 -0
- package/9431.js +1 -1
- package/9630.js +1 -1
- package/9838.js +1 -1
- package/9983.js +2 -0
- package/9983.js.map +1 -0
- package/package.json +1 -1
- package/remoteEntry.js +1 -1
- package/remoteEntry.js.map +1 -1
- package/1635.js +0 -2
- package/1635.js.map +0 -1
- package/2396.js +0 -2
- package/2396.js.map +0 -1
- package/2498.js +0 -2
- package/2498.js.map +0 -1
- package/3029.js +0 -2
- package/3029.js.map +0 -1
- package/3981.js +0 -2
- package/3981.js.map +0 -1
- package/4013.js +0 -2
- package/4013.js.map +0 -1
- package/4132.js +0 -2
- package/4132.js.map +0 -1
- package/452.js +0 -2
- package/452.js.map +0 -1
- package/4863.js +0 -2
- package/4863.js.map +0 -1
- package/5243.js +0 -2
- package/5243.js.map +0 -1
- package/5276.js +0 -2
- package/5276.js.map +0 -1
- package/604.css.map +0 -1
- package/604.js +0 -2
- package/604.js.map +0 -1
- package/737.js +0 -2
- package/737.js.map +0 -1
- package/7820.js +0 -2
- package/7820.js.map +0 -1
- package/8148.js +0 -3
- package/8148.js.map +0 -1
- package/8896.js +0 -2
- package/8896.js.map +0 -1
- package/9062.js +0 -2
- package/9062.js.map +0 -1
- package/9306.js +0 -2
- package/9306.js.map +0 -1
- package/9511.js +0 -2
- package/9511.js.map +0 -1
- package/9551.js +0 -2
- package/9551.js.map +0 -1
- package/9609.js +0 -2
- package/9609.js.map +0 -1
package/3745.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_reltio_remotes=self.webpackChunk_reltio_remotes||[]).push([[3745],{60894:(e,t,n)=>{n.d(t,{Z:()=>b});var i=n(24328),r=n.n(i),s=n(13980),l=n.n(s),o=n(94656);function a(){return a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},a.apply(this,arguments)}const c=e=>r().createElement("svg",a({width:20,height:18,viewBox:"0 0 20 18",xmlns:"http://www.w3.org/2000/svg"},e),r().createElement("path",{d:"M16 7.24V6h-4v1.24a8.417 8.417 0 00-2 .768V6H6v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM4 12V6H2v6h2zm0-8V2H2v2h2zm6 0V2H6v2h4zm6 0V2h-4v2h4zm-2 5a6.451 6.451 0 00-6 4.09 6.451 6.451 0 006 4.092 6.451 6.451 0 006-4.091A6.451 6.451 0 0014 9zm0 6.818a2.728 2.728 0 010-5.454 2.728 2.728 0 010 5.454zm0-4.363c-.905 0-1.636.73-1.636 1.636 0 .905.73 1.636 1.636 1.636.905 0 1.636-.73 1.636-1.636 0-.906-.73-1.636-1.636-1.636z",fill:"#000",fillRule:"nonzero",stroke:"none",strokeWidth:1,opacity:.54}));var h=n(8818),u=n(17440),d=n(47458),p=n(87918),f=n.n(p),g=n(85657);const m=e=>{let{columnsData:t,selectedColumns:n,onChangeColumns:s,title:l,tooltipTitle:o}=e;const[a,p]=(0,i.useState)(null),m=(0,i.useCallback)((e=>{const t=(0,u.pipe)(g.JJ,(0,u.pluck)("id"))(e),i=(0,g.u)(n,e);s(i?(0,u.difference)(n,t):(0,u.uniq)((0,u.concat)(n,t)))}),[n,s]);return r().createElement(r().Fragment,null,r().createElement(h.k,{tooltipTitle:o||f().text("Show/hide columns"),size:"L",icon:c,onClick:e=>p(e.currentTarget)}),r().createElement(d.G,{onColumnClick:m,anchorEl:a,columnsData:t,onClose:()=>p(null),title:l,selectedColumns:n}))};m.propTypes={columnsData:o.uz,selectedColumns:l().arrayOf(l().string),onChangeColumns:l().func,title:l().string,tooltipTitle:l().string};const b=m},47458:(e,t,n)=>{n.d(t,{G:()=>C});var i=n(24328),r=n.n(i),s=n(87918),l=n.n(s),o=n(17440),a=n(66269),c=n(44890),h=n(97820),u=n(85657),d=n(56656),p=n(54763),f=n(13980),g=n.n(f),m=n(7785),b=n(27239),v=n(71153),y=n.n(v);const k=(0,n(79692).Z)({popup:{minWidth:"200px"},groupItem:{backgroundColor:"rgba(0,0,0,0.04)"}}),x=e=>{let{item:t,onClick:n,checked:i,level:s,style:l,isFocused:o,isGroupItem:a,hideCheckBox:c}=e;const h=k();return r().createElement(m.Z,{hideCheckBox:c,key:t.id,onClick:n,checked:i,level:s,data:t,label:r().createElement(b.Z,{text:t.label,highlight:t.filterText}),labelInText:t.label,style:l,isFocused:o,hideIcon:a,className:y()({[h.groupItem]:a})})};x.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 P=x,C=e=>{let{anchorEl:t,onClose:n,title:s,columnsData:f,onColumnClick:g,selectedColumns:m,hideCheckBox:b}=e;const v=k(),[y,x]=(0,i.useState)(""),C=(0,i.useMemo)((()=>(0,u.eX)(f,y)),[f,y]),O=(0,i.useMemo)((()=>(0,d.LG)(C)),[C]),E=(0,a.fW1)("label")(C)||308,S=(0,i.useCallback)((e=>{let{item:t}=e;return g(t)}),[g]),{focusIndex:w,handleKeyDown:T}=(0,p.t)({items:O,open:!0,onSelectFocusedItem:S,selectedItems:m,onClose:n}),D=(0,i.useCallback)((0,o.pipe)(n,(()=>x(""))),[n]),I=Math.min(300,32*O.length),q=Math.max(140,I+108);return r().createElement(h.Z,{className:v.popup,open:!!t,anchorEl:t,onClose:D,onSearch:x,title:s||l().text("Show/hide columns"),containerWidth:E,containerHeight:q,searchInputOnKeyDown:T},r().createElement(c.Z,{fixedTitle:!1,height:I,renderItem:(e,t,n)=>{let{item:i,level:s=0}=t;return r().createElement(P,{hideCheckBox:b,style:e,item:i,level:s,isFocused:w===n,checked:(0,u.u)(m,i),isGroupItem:(0,u.yf)(i),onClick:b?(0,o.pipe)(g,D):g})},items:O,getItemSize:()=>32,focusIndex:w}))}},85657:(e,t,n)=>{n.d(t,{eX:()=>b,JJ:()=>v,yf:()=>o,u:()=>y});var i=n(17440),r=n(66269);function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),i.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 o=e=>e.id===e.groupId,a=(0,i.curry)(((e,t)=>{let{id:n,groupId:i}=e;return t.groupId===i&&(n===t.id||n.startsWith(`${t.id}.`))})),c=(0,i.curry)(((e,t)=>{let{groupId:n}=e;return n===t.id})),h=(0,i.propOr)(!0,"hideable"),u=(e,t)=>{const n=((e,t)=>e.find((0,i.either)(c(t),a(t))))(e,t);return n?(n.children=u(n.children||[],t),e):e.concat(t)},d=(0,i.curry)(((e,t)=>r.P6Y.strings.search(t.label,e)||(t.children||[]).some(d(e)))),p=(0,i.reduce)(((e,t)=>u(e,{id:t.id,groupId:t.groupId,label:t.label,attrType:t.dataTypeDefinition})),[]),f=(0,i.curry)((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return(0,i.pipe)((0,i.filter)(d(e)),(0,i.chain)((t=>[{item:s({},t,{filterText:e}),level:n},...t.children?f(e,t.children,n+1):[]])))(t)})),g=(0,i.has)("columns"),m=e=>{let{id:t,label:n,columns:r}=e;return[{id:t,groupId:t,label:n},...r.map((0,i.assoc)("groupId",t))]},b=(e,t)=>(0,i.pipe)((0,i.chain)((0,i.when)(g,m)),(0,i.filter)((0,i.either)(o,h)),p,f(t))(e),v=e=>e.children?(0,i.chain)(v,e.children):[e],y=(e,t)=>{const n=v(t),i=t=>e.includes(t.id);return o(t)?n.every(i):n.some(i)}},93873:(e,t,n)=>{n.d(t,{a:()=>T});var i=n(24328),r=n.n(i),s=n(87918),l=n.n(s),o=n(94079),a=n(83348),c=n(8818),h=n(67766),u=n(42767),d=n(66269);const p=(0,n(79692).Z)({container:{display:"flex",alignItems:"center"},link:{whiteSpace:"nowrap",marginRight:"9px"}}),f=(0,a.Z)(o.Link),g=e=>{let{total:t=0,onPrev:n,onNext:i,onSearchResultsClick:s,isPrevDisabled:o,isNextDisabled:a}=e;const g=p();return r().createElement("div",{className:g.container},r().createElement(f,{className:g.link,component:"button",variant:"caption",onClick:s,underline:"none",tooltipTitle:l().text("Go to search results")},(0,d.k7L)(t,1e6)," ",1===t?l().text("Search result"):l().text("Search results")),r().createElement(c.k,{size:"L",icon:h.Z,tooltipTitle:l().text("Go to previous profile"),onClick:n,disabled:o,showForDisabled:!0}),r().createElement(c.k,{size:"L",icon:u.Z,tooltipTitle:l().text("Go to next profile"),onClick:i,disabled:a,showForDisabled:!0}))};var m=n(52730),b=n(59431),v=n(17440),y=n(39450),k=n(67218);function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),i.forEach((function(t){P(e,t,n[t])}))}return e}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class C{constructor(e){var t=this;let{data:{query:n,sortField:i,sortOrder:r},tenant:s,searchTenant:l,apiPath:o,dtssPath:a,globalSearchRequestOptions:c}=e;this.query=void 0,this.sortField=void 0,this.sortOrder=void 0,this.tenant=void 0,this.searchTenant=void 0,this.apiPath=void 0,this.dtssPath=void 0,this.globalSearchRequestOptions=void 0,this.isDT=()=>this.tenant!==this.searchTenant,this.getQueryFilter=()=>({rawFilter:this.query}),this.getEntities=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=[t.getQueryFilter(),...e],r=x({},t.globalSearchRequestOptions,{sort:t.sortField,order:t.sortOrder,select:"uri,label,type",scoreEnabled:!1},n);return t.isDT()?(0,d.uqV)({filters:i,options:r,customerTenant:t.tenant,dataTenant:t.searchTenant,dtssPath:t.dtssPath}):(0,d.ZOr)(i,r)},this.checkEntity=e=>this.getEntities([{filter:"equals",fieldName:"uri",values:[e]}],{offset:0,max:1}).then((t=>t&&t.length>0&&t[0].uri===e)),this.requestEntities=(e,t)=>this.getEntities([],{offset:t,max:e}),this.requestTotal=()=>{const e=[this.getQueryFilter()],t=this.globalSearchRequestOptions;return(this.isDT()?(0,d.J$m)({filters:e,options:t,customerTenant:this.tenant,dataTenant:this.searchTenant,dtssPath:this.dtssPath}):(0,d.j_Q)(e,t)).then((e=>e.total))},this.query=n,this.sortField=i,this.sortOrder=r,this.tenant=s,this.searchTenant=l,this.apiPath=o,this.dtssPath=a,this.globalSearchRequestOptions=c}}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),i.forEach((function(t){E(e,t,n[t])}))}return e}function E(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class S{constructor(e){var t=this;let{data:n,tenant:i,apiPath:r}=e;this.searchBody=void 0,this.tenant=void 0,this.apiPath=void 0,this.getEntities=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=[{rawFilter:t.searchBody.filter},...e];return(0,d.P2h)({apiPath:t.apiPath,tenant:t.tenant,searchBody:O({},t.searchBody,{filter:e.length?(0,d.Uqd)()(i):t.searchBody.filter}),options:n})},this.checkEntity=e=>this.getEntities([{filter:"equals",fieldName:"id",values:[(0,d.BTI)({uri:e})]}],{from:0,max:1}).then((t=>t&&t.length>0&&t[0].uri===e)),this.requestEntities=(e,t)=>this.getEntities([],{from:t,max:e}),this.requestTotal=()=>(0,d.dED)({apiPath:this.apiPath,tenant:this.tenant,searchBody:this.searchBody}).then((e=>e.count)),this.searchBody=n,this.tenant=i,this.apiPath=r}}const w=(e,t)=>(0,v.pipe)((0,v.map)((0,v.prop)("uri")),(0,v.reject)((e=>t.includes(e))))(e),T=()=>{const{total:e,onPrev:t,onNext:n,onSearchResultsClick:s,isPrevDisabled:l,isNextDisabled:o}=(()=>{const e=(0,k._)(),t=(0,k._)(),n=(0,k._)(),{uri:r,index:s,total:l,tenant:o,cache:a}=(0,m.useSelector)(b.ZP.selectors.getSearchNavigationData)||{},{type:c,data:h}=(0,m.useSelector)(b.ZP.selectors.getSearchProviderData)||{},u=(0,m.useSelector)(b.ZP.selectors.getTenant),p=(0,m.useSelector)(b.ZP.selectors.getApiPath),f=(0,m.useSelector)(b.ZP.selectors.getDtssPath),g=(0,m.useSelector)((e=>b.ZP.selectors.getGlobalSearchRequestOptions(e,["ovOnly"]))),v=(0,i.useContext)(y.m),x=(0,m.useDispatch)(),[P,O]=(0,i.useState)(!1),E=(0,i.useMemo)((()=>((e,t)=>{switch(e){case"search":return new C(t);case"graphsearch":return new S(t)}})(c,{data:h,tenant:u,searchTenant:o,apiPath:p,dtssPath:f,globalSearchRequestOptions:g})),[c,h,u,o,p,f,g]),T=(0,i.useCallback)((e=>{x(b.yC.actions.updateSearchNavigationDataFields(e))}),[x]),D=(0,i.useCallback)((e=>{const t=u!==o?(0,d.wwR)({uri:e,dataTenant:o}):e;x(b.ui.actions.openEntity({uri:t,viewId:v,source:"navigation"}))}),[x,v,u,o]),I=(0,i.useCallback)((()=>{x(b.ui.actions.openPerspective({perspectiveId:c,viewId:v}))}),[x,c,v]);(0,i.useEffect)((()=>{s>=l?T({index:l-1}):s<0&&T({index:0})}),[l,s,T]);const q=(0,i.useCallback)(((e,i,r)=>{O(!0),t(E.requestTotal()).then((e=>T({total:e})));const s=r+1;return n(E.requestEntities(15,s)).then((t=>{if(t){if(t.length){const n=w(t,e);if(n.length>0)return T({cache:e.concat(n),uri:n[0],index:s+t.length-n.length}),void D(n[0]);if(r+t.length<i-1)return q(e,i-t.length,r+t.length)}T({index:s})}})).finally((()=>{O(!1)}))}),[E,T,D]),j=(0,i.useCallback)(((e,i)=>{O(!0),t(E.requestTotal()).then((e=>T({total:e})));const r=i-1,s=Math.max(0,i-15),l=15+Math.min(0,i-15);return n(E.requestEntities(l,s)).then((t=>{if(t){if(t.length){const n=w(t,e);if(n.length>0)return T({cache:n.concat(e),uri:n[n.length-1],index:r-(t.length-n.length)}),void D(n[n.length-1]);if(i-t.length>0)return j(e,i-t.length)}T({index:0})}})).finally((()=>{O(!1)}))}),[E,T,D]),Z=(0,i.useCallback)(((t,n,i,r)=>{if(n<t.length){const s=t[n];return O(!0),e(E.checkEntity(s)).then((e=>{if(!e){const e=[...t];return e.splice(n,1),Z(e,n,i-1,r)}T({index:r+1,uri:s,cache:t,total:i}),D(s)})).finally((()=>{O(!1)}))}if(!(r>=i-1))return q(t,i,r);T({cache:t,total:i,index:i-1})}),[E,T,D,q]),F=(0,i.useCallback)(((t,n,i,r)=>{if(n>-1){const s=t[n];return O(!0),e(E.checkEntity(s)).then((e=>{if(!e){const e=[...t];return e.splice(n,1),F(e,n-1,i-1,r-1)}T({index:r-1,uri:s,cache:t,total:i}),D(s)})).finally((()=>{O(!1)}))}if(!(r<=0))return j(t,r);T({index:0,cache:t,total:i})}),[E,T,D,j]),N=(0,i.useCallback)((()=>{if(a&&r){const e=a.indexOf(r)-1;F(a,e,l,s)}}),[F,a,r,l,s]),z=(0,i.useCallback)((()=>{if(a&&r){const e=a.indexOf(r)+1;Z(a,e,l,s)}}),[Z,a,r,l,s]);return{total:l,onPrev:N,onNext:z,onSearchResultsClick:I,isPrevDisabled:P||s<=0,isNextDisabled:P||s>=l-1}})();return(()=>{const{cache:e}=(0,m.useSelector)(b.ZP.selectors.getSearchNavigationData)||{},t=(0,m.useSelector)(b.ZP.selectors.getMode),n=(0,m.useSelector)(b.ZP.selectors.getEntity);return(0,d.uzs)(t)&&(null==e?void 0:e.includes(null==n?void 0:n.uri))})()?r().createElement(g,{total:e,onPrev:t,onNext:n,onSearchResultsClick:s,isPrevDisabled:l,isNextDisabled:o}):null}},51229:(e,t,n)=>{n.d(t,{Z:()=>s});var i=n(24328),r=n.n(i);const s=()=>r().createElement("div",{style:{flex:1}})}}]);
|
|
2
|
+
//# sourceMappingURL=3745.js.map
|
package/3745.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"3745.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/icons/Table.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettings.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnListItem.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettingsPopup.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/columnHelpers.js","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/ProfileBandNavigationWidget.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/MainSearchProvider.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/GraphSearchProvider.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/SearchProviderFactory.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/hooks/useSearchNavigation.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/ProfileBandNavigation.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/hooks/useSearchNavigationVisibility.ts","webpack://@reltio/remotes/../components/src/components/Spacer/Spacer.js"],"sourcesContent":["import React from 'react';\n\nconst SvgTable: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={20} height={18} viewBox=\"0 0 20 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16 7.24V6h-4v1.24a8.417 8.417 0 00-2 .768V6H6v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM4 12V6H2v6h2zm0-8V2H2v2h2zm6 0V2H6v2h4zm6 0V2h-4v2h4zm-2 5a6.451 6.451 0 00-6 4.09 6.451 6.451 0 006 4.092 6.451 6.451 0 006-4.091A6.451 6.451 0 0014 9zm0 6.818a2.728 2.728 0 010-5.454 2.728 2.728 0 010 5.454zm0-4.363c-.905 0-1.636.73-1.636 1.636 0 .905.73 1.636 1.636 1.636.905 0 1.636-.73 1.636-1.636 0-.906-.73-1.636-1.636-1.636z\"\n fill=\"#000\"\n fillRule=\"nonzero\"\n stroke=\"none\"\n strokeWidth={1}\n opacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgTable;\n","import React, {useCallback, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {ColumnsDataType} from '../../../../constants';\nimport TableIcon from '../../../../icons/Table';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport {pipe, uniq, pluck, difference, concat} from 'ramda';\n\nimport {ColumnsSettingsPopup} from './ColumnsSettingsPopup';\n\nimport i18n from 'ui-i18n';\nimport {getChildColumns, isColumnSelected} from './columnHelpers';\n\nconst ColumnsSettings = ({columnsData, selectedColumns, onChangeColumns, title, tooltipTitle}) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const openPopup = (event) => setAnchorEl(event.currentTarget);\n const closePopup = () => setAnchorEl(null);\n const handleColumnClick = useCallback(\n (column) => {\n const changedColumns = pipe(getChildColumns, pluck('id'))(column);\n const wasSelected = isColumnSelected(selectedColumns, column);\n onChangeColumns(\n wasSelected\n ? difference(selectedColumns, changedColumns)\n : uniq(concat(selectedColumns, changedColumns))\n );\n },\n [selectedColumns, onChangeColumns]\n );\n return (\n <>\n <SmallIconButtonWithTooltip\n tooltipTitle={tooltipTitle || i18n.text('Show/hide columns')}\n size=\"L\"\n icon={TableIcon}\n onClick={openPopup}\n />\n <ColumnsSettingsPopup\n onColumnClick={handleColumnClick}\n anchorEl={anchorEl}\n columnsData={columnsData}\n onClose={closePopup}\n title={title}\n selectedColumns={selectedColumns}\n />\n </>\n );\n};\n\nColumnsSettings.propTypes = {\n columnsData: ColumnsDataType,\n selectedColumns: PropTypes.arrayOf(PropTypes.string),\n onChangeColumns: PropTypes.func,\n title: PropTypes.string,\n tooltipTitle: PropTypes.string\n};\n\nexport default ColumnsSettings;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n popup: {\n minWidth: '200px'\n },\n groupItem: {\n backgroundColor: 'rgba(0,0,0,0.04)'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport AttributeListItem from '../../../AttributeListItem/AttributeListItem';\nimport Highlighter from '../../../Highlighter/Highlighter';\n\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst ColumnListItem = ({item, onClick, checked, level, style, isFocused, isGroupItem, hideCheckBox}) => {\n const styles = useStyles();\n return (\n <AttributeListItem\n hideCheckBox={hideCheckBox}\n key={item.id}\n onClick={onClick}\n checked={checked}\n level={level}\n data={item}\n label={<Highlighter text={item.label} highlight={item.filterText} />}\n labelInText={item.label}\n style={style}\n isFocused={isFocused}\n hideIcon={isGroupItem}\n className={classnames({[styles.groupItem]: isGroupItem})}\n />\n );\n};\n\nColumnListItem.propTypes = {\n item: PropTypes.shape({\n label: PropTypes.string,\n filterText: PropTypes.string\n }),\n level: PropTypes.number,\n onClick: PropTypes.func,\n checked: PropTypes.bool,\n style: PropTypes.object,\n isGroupItem: PropTypes.bool,\n isFocused: PropTypes.bool,\n hideCheckBox: PropTypes.bool\n};\n\nexport default ColumnListItem;\n","import React, {useState, useMemo, useCallback} from 'react';\nimport i18n from 'ui-i18n';\nimport {pipe} from 'ramda';\n\nimport {getMaxItemWidth, DataTypeDefinition} from '@reltio/mdm-sdk';\n\nimport VirtualGroupedList from '../../../VirtualGroupedList/VirtualGroupedList';\nimport SelectionPopup from '../../../SelectionPopup/SelectionPopup';\nimport {buildColumnItems, isColumnSelected, isGroupColumn} from './columnHelpers';\nimport {flattenGroupedItemsData} from '../../../VirtualGroupedList/helpers';\nimport {useKeyboardNavigation} from '../../../SelectionPopup/helpers';\nimport ColumnListItem from './ColumnListItem';\n\nimport {useStyles} from './styles';\nimport {ListItemProps} from '@material-ui/core/ListItem';\n\ntype Column = {\n id: string;\n label: string;\n};\n\ntype GroupedColumnData =\n | {\n id: string;\n label: string;\n columns: Column[];\n }\n | Column;\n\ntype GroupedColumnList = {\n id: string;\n groupId: string;\n label: string;\n attrType: DataTypeDefinition;\n};\n\ntype Props = {\n anchorEl: HTMLElement;\n onClose: () => void;\n title?: string;\n columnsData: GroupedColumnData[];\n onColumnClick: (column: {id: string}) => void;\n selectedColumns: string[];\n hideCheckBox?: boolean;\n};\n\nconst ITEM_HEIGHT = 32;\nconst MAX_LIST_CONTAINER_HEIGHT = 300;\nconst DEFAULT_MIN_CONTAINER_WIDTH = 308;\nconst CONTAINER_HEADER_HEIGHT = 108;\nconst MIN_CONTAINER_HEIGHT = 140;\n\nexport const ColumnsSettingsPopup = ({\n anchorEl,\n onClose,\n title,\n columnsData,\n onColumnClick,\n selectedColumns,\n hideCheckBox\n}: Props) => {\n const styles = useStyles();\n const [filterText, setFilterText] = useState('');\n const clearFilter = () => setFilterText('');\n const groupedItems = useMemo(() => buildColumnItems(columnsData, filterText), [columnsData, filterText]);\n\n const items = useMemo(() => flattenGroupedItemsData(groupedItems), [groupedItems]);\n const containerWidth: number = getMaxItemWidth('label')(groupedItems) || DEFAULT_MIN_CONTAINER_WIDTH;\n\n const handleSearchOnEnter = useCallback(\n ({item}: {item: {id: string}; groupData: {item: {id: string}}}) => onColumnClick(item),\n [onColumnClick]\n );\n\n const {focusIndex, handleKeyDown} = useKeyboardNavigation({\n items,\n open: true,\n onSelectFocusedItem: handleSearchOnEnter,\n selectedItems: selectedColumns,\n onClose\n });\n const handleClose = useCallback(pipe(onClose, clearFilter), [onClose]);\n\n const renderColumnItem = (\n style: ListItemProps['style'],\n {item, level = 0}: {item: GroupedColumnList; level?: number},\n index: number\n ) => {\n return (\n <ColumnListItem\n hideCheckBox={hideCheckBox}\n style={style}\n item={item}\n level={level}\n isFocused={focusIndex === index}\n checked={isColumnSelected(selectedColumns, item)}\n isGroupItem={isGroupColumn(item)}\n onClick={hideCheckBox ? pipe(onColumnClick, handleClose) : onColumnClick}\n />\n );\n };\n\n const listHeight = Math.min(MAX_LIST_CONTAINER_HEIGHT, ITEM_HEIGHT * items.length);\n const containerHeight = Math.max(MIN_CONTAINER_HEIGHT, listHeight + CONTAINER_HEADER_HEIGHT);\n\n return (\n <SelectionPopup\n className={styles.popup}\n open={!!anchorEl}\n anchorEl={anchorEl}\n onClose={handleClose}\n onSearch={setFilterText}\n title={title || i18n.text('Show/hide columns')}\n containerWidth={containerWidth}\n containerHeight={containerHeight}\n searchInputOnKeyDown={handleKeyDown}\n >\n <VirtualGroupedList\n fixedTitle={false}\n height={listHeight}\n renderItem={renderColumnItem}\n items={items}\n getItemSize={() => ITEM_HEIGHT}\n focusIndex={focusIndex}\n />\n </SelectionPopup>\n );\n};\n","import {assoc, chain, curry, either, filter, has, pipe, propOr, reduce, when} from 'ramda';\nimport {utils} from '@reltio/mdm-sdk';\n\nconst isGroupColumn = (column) => column.id === column.groupId;\nconst isParentToColumn = curry(\n ({id, groupId}, parent) => parent.groupId === groupId && (id === parent.id || id.startsWith(`${parent.id}.`))\n);\nconst isGroupToColumn = curry(({groupId}, group) => groupId === group.id);\nconst isHideableColumn = propOr(true, 'hideable');\n\nconst getColumnRoot = (columns, column) => columns.find(either(isGroupToColumn(column), isParentToColumn(column)));\n\nconst addColumn = (columns, column) => {\n const root = getColumnRoot(columns, column);\n if (root) {\n root.children = addColumn(root.children || [], column);\n return columns;\n } else {\n return columns.concat(column);\n }\n};\n\nconst filterColumnsByLabel = curry(\n (filterText, column) =>\n utils.strings.search(column.label, filterText) || (column.children || []).some(filterColumnsByLabel(filterText))\n);\n\nconst buildColumnsTrees = reduce(\n (acc, columnData) =>\n addColumn(acc, {\n id: columnData.id,\n groupId: columnData.groupId,\n label: columnData.label,\n attrType: columnData.dataTypeDefinition\n }),\n []\n);\n\nconst buildFilteredColumnItems = curry((filterText, columns, level = 0) =>\n pipe(\n filter(filterColumnsByLabel(filterText)),\n chain((column) => {\n const item = {\n item: {...column, filterText},\n level\n };\n const childrenItems = column.children\n ? buildFilteredColumnItems(filterText, column.children, level + 1)\n : [];\n return [item, ...childrenItems];\n })\n )(columns)\n);\n\nconst isGroupedColumnsData = has('columns');\nconst flattenGroupedColumnsData = ({id, label, columns}) => [\n {id, groupId: id, label},\n ...columns.map(assoc('groupId', id))\n];\n\nconst buildColumnItems = (columnsData, filterText) => {\n return pipe(\n chain(when(isGroupedColumnsData, flattenGroupedColumnsData)),\n filter(either(isGroupColumn, isHideableColumn)),\n buildColumnsTrees,\n buildFilteredColumnItems(filterText)\n )(columnsData);\n};\n\nconst getChildColumns = (column) => (column.children ? chain(getChildColumns, column.children) : [column]);\n\nconst isColumnSelected = (selectedColumns, column) => {\n const childColumns = getChildColumns(column);\n const isColumnSelected = (column) => selectedColumns.includes(column.id);\n return isGroupColumn(column) ? childColumns.every(isColumnSelected) : childColumns.some(isColumnSelected);\n};\n\nexport {buildColumnItems, getChildColumns, isGroupColumn, isColumnSelected};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n container: {\n display: 'flex',\n alignItems: 'center'\n },\n link: {\n whiteSpace: 'nowrap',\n marginRight: '9px'\n }\n});\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {Link as Link} from '@material-ui/core';\nimport {withTooltip} from '../../HOCs';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\nimport {formatNumberAsMetric} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst LinkWithTooltip = withTooltip<typeof Link, {component: string}>(Link);\n\ntype Props = {\n total?: number;\n onPrev?: () => void;\n onNext?: () => void;\n onSearchResultsClick?: () => void;\n isPrevDisabled?: boolean;\n isNextDisabled?: boolean;\n};\n\nconst ProfileBandNavigationWidget = ({\n total = 0,\n onPrev,\n onNext,\n onSearchResultsClick,\n isPrevDisabled,\n isNextDisabled\n}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.container}>\n <LinkWithTooltip\n className={styles.link}\n component=\"button\"\n variant=\"caption\"\n onClick={onSearchResultsClick}\n underline=\"none\"\n tooltipTitle={i18n.text('Go to search results')}\n >\n {formatNumberAsMetric(total, 1000000)}{' '}\n {total === 1 ? i18n.text('Search result') : i18n.text('Search results')}\n </LinkWithTooltip>\n <SmallIconButtonWithTooltip\n size=\"L\"\n icon={KeyboardArrowLeft}\n tooltipTitle={i18n.text('Go to previous profile')}\n onClick={onPrev}\n disabled={isPrevDisabled}\n showForDisabled\n />\n <SmallIconButtonWithTooltip\n size=\"L\"\n icon={KeyboardArrowRight}\n tooltipTitle={i18n.text('Go to next profile')}\n onClick={onNext}\n disabled={isNextDisabled}\n showForDisabled\n />\n </div>\n );\n};\n\nexport {ProfileBandNavigationWidget, LinkWithTooltip};\n","import {\n Entity,\n getFilteredEntities,\n getFilteredEntitiesFromDataTenant,\n getTotals,\n getTotalFromDataTenant,\n TotalResponse\n} from '@reltio/mdm-sdk';\n\nimport {SearchProvider} from './SearchProvider';\n\nexport class MainSearchProvider implements SearchProvider {\n private readonly query;\n private readonly sortField;\n private readonly sortOrder;\n private readonly tenant;\n private readonly searchTenant;\n private readonly apiPath;\n private readonly dtssPath;\n private readonly globalSearchRequestOptions;\n\n constructor({\n data: {query, sortField, sortOrder},\n tenant,\n searchTenant,\n apiPath,\n dtssPath,\n globalSearchRequestOptions\n }) {\n this.query = query;\n this.sortField = sortField;\n this.sortOrder = sortOrder;\n this.tenant = tenant;\n this.searchTenant = searchTenant;\n this.apiPath = apiPath;\n this.dtssPath = dtssPath;\n this.globalSearchRequestOptions = globalSearchRequestOptions;\n }\n\n private isDT = () => this.tenant !== this.searchTenant;\n\n private getQueryFilter = () => ({rawFilter: this.query});\n\n private getEntities = (filters = [], options = {}): Promise<Entity[]> => {\n const requestFilters = [this.getQueryFilter(), ...filters];\n const requestOptions = {\n ...this.globalSearchRequestOptions,\n sort: this.sortField,\n order: this.sortOrder,\n select: 'uri,label,type',\n scoreEnabled: false,\n ...options\n };\n return this.isDT()\n ? getFilteredEntitiesFromDataTenant({\n filters: requestFilters,\n options: requestOptions,\n customerTenant: this.tenant,\n dataTenant: this.searchTenant,\n dtssPath: this.dtssPath\n })\n : getFilteredEntities(requestFilters, requestOptions);\n };\n\n checkEntity = (uri): Promise<boolean> => {\n return this.getEntities(\n [\n {\n filter: 'equals',\n fieldName: 'uri',\n values: [uri]\n }\n ],\n {offset: 0, max: 1}\n ).then((entities) => {\n return entities && entities.length > 0 && entities[0].uri === uri;\n });\n };\n\n requestEntities = (max, offset): Promise<Entity[]> => {\n return this.getEntities([], {offset, max});\n };\n\n requestTotal = (): Promise<number> => {\n const filters = [this.getQueryFilter()];\n const options = this.globalSearchRequestOptions;\n return (this.isDT()\n ? getTotalFromDataTenant({\n filters,\n options,\n customerTenant: this.tenant,\n dataTenant: this.searchTenant,\n dtssPath: this.dtssPath\n })\n : getTotals(filters, options)\n ).then((json) => (json as TotalResponse).total);\n };\n}\n","import {\n Entity,\n getGraphSearchCount,\n getGraphSearchEntities,\n getEntityId,\n buildFilterQueryString\n} from '@reltio/mdm-sdk';\n\nimport {SearchProvider} from './SearchProvider';\n\nexport class GraphSearchProvider implements SearchProvider {\n private readonly searchBody;\n private readonly tenant;\n private readonly apiPath;\n\n constructor({data, tenant, apiPath}) {\n this.searchBody = data;\n this.tenant = tenant;\n this.apiPath = apiPath;\n }\n\n private getEntities = (filters = [], options = {}): Promise<Entity[]> => {\n const allFilters = [\n {\n rawFilter: this.searchBody.filter\n },\n ...filters\n ];\n return getGraphSearchEntities({\n apiPath: this.apiPath,\n tenant: this.tenant,\n searchBody: {\n ...this.searchBody,\n filter: filters.length ? buildFilterQueryString()(allFilters) : this.searchBody.filter\n },\n options\n });\n };\n\n checkEntity = (uri): Promise<boolean> => {\n return this.getEntities(\n [\n {\n filter: 'equals',\n fieldName: 'id',\n values: [getEntityId({uri})]\n }\n ],\n {from: 0, max: 1}\n ).then((entities) => {\n return entities && entities.length > 0 && entities[0].uri === uri;\n });\n };\n\n requestEntities = (max, from): Promise<Entity[]> => {\n return this.getEntities([], {from, max});\n };\n\n requestTotal = (): Promise<number> => {\n return getGraphSearchCount({\n apiPath: this.apiPath,\n tenant: this.tenant,\n searchBody: this.searchBody\n }).then((json) => json.count);\n };\n}\n","import {MainSearchProvider} from './MainSearchProvider';\nimport {GraphSearchProvider} from './GraphSearchProvider';\n\nexport const getSearchProvider = (type: string, options) => {\n switch (type) {\n case 'search':\n return new MainSearchProvider(options);\n case 'graphsearch':\n return new GraphSearchProvider(options);\n }\n};\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {search as mdmModuleSearch, ui as mdmModuleUi} from '@reltio/mdm-module';\nimport {getEntityUriForLink} from '@reltio/mdm-sdk';\nimport {map, pipe, prop, reject} from 'ramda';\nimport {ViewIdContext} from '../../../contexts';\nimport {useSafePromise} from '../../../hooks';\nimport {getSearchProvider} from '../searchProviders/SearchProviderFactory';\nimport {SearchNavigationData, SearchProviderData} from '../types';\n\nexport const REQUEST_PAGE_SIZE = 15;\n\nconst getNewUris = (entities, cache) =>\n pipe(\n map(prop('uri')),\n reject((uri) => cache.includes(uri))\n )(entities);\n\nconst useSearchNavigation = () => {\n const safeCheckEntityPromise = useSafePromise();\n const safeRequestTotalPromise = useSafePromise();\n const safeRequestEntitiesPromise = useSafePromise();\n const {uri, index, total, tenant: searchTenant, cache} =\n useSelector<unknown, SearchNavigationData>(mdmModule.selectors.getSearchNavigationData) || {};\n const {type, data} = useSelector<unknown, SearchProviderData>(mdmModule.selectors.getSearchProviderData) || {};\n const tenant = useSelector<unknown, string>(mdmModule.selectors.getTenant);\n const apiPath = useSelector<unknown, string>(mdmModule.selectors.getApiPath);\n const dtssPath = useSelector<unknown, string>(mdmModule.selectors.getDtssPath);\n const globalSearchRequestOptions = useSelector((state) =>\n mdmModule.selectors.getGlobalSearchRequestOptions(state, ['ovOnly'])\n );\n const viewId = useContext(ViewIdContext);\n const dispatch = useDispatch();\n const [loading, setLoading] = useState<boolean>(false);\n\n const searchProvider = useMemo(\n () => getSearchProvider(type, {data, tenant, searchTenant, apiPath, dtssPath, globalSearchRequestOptions}),\n [type, data, tenant, searchTenant, apiPath, dtssPath, globalSearchRequestOptions]\n );\n\n const updateNavigationData = useCallback(\n (data: Partial<SearchNavigationData>) => {\n dispatch(mdmModuleSearch.actions.updateSearchNavigationDataFields(data));\n },\n [dispatch]\n );\n\n const openEntity = useCallback(\n (uri: string) => {\n const preparedUri = tenant !== searchTenant ? getEntityUriForLink({uri, dataTenant: searchTenant}) : uri;\n dispatch(mdmModuleUi.actions.openEntity({uri: preparedUri, viewId, source: 'navigation'}));\n },\n [dispatch, viewId, tenant, searchTenant]\n );\n\n const onSearchResultsClick = useCallback(() => {\n dispatch(mdmModuleUi.actions.openPerspective({perspectiveId: type, viewId}));\n }, [dispatch, type, viewId]);\n\n useEffect(() => {\n if (index >= total) {\n updateNavigationData({\n index: total - 1\n });\n } else if (index < 0) {\n updateNavigationData({\n index: 0\n });\n }\n }, [total, index, updateNavigationData]);\n\n const requestNextPage = useCallback(\n (cache: string[], total: number, index: number): Promise<void> => {\n setLoading(true);\n safeRequestTotalPromise(searchProvider.requestTotal()).then((total) => updateNavigationData({total}));\n\n const newIndex = index + 1;\n return safeRequestEntitiesPromise(searchProvider.requestEntities(REQUEST_PAGE_SIZE, newIndex))\n .then((entities) => {\n if (!entities) {\n return;\n }\n if (entities.length) {\n const newUris = getNewUris(entities, cache);\n if (newUris.length > 0) {\n updateNavigationData({\n cache: cache.concat(newUris),\n uri: newUris[0],\n index: newIndex + entities.length - newUris.length\n });\n openEntity(newUris[0]);\n return;\n } else if (index + entities.length < total - 1) {\n return requestNextPage(cache, total - entities.length, index + entities.length);\n }\n }\n updateNavigationData({\n index: newIndex\n });\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [searchProvider, updateNavigationData, openEntity]\n );\n\n const requestPrevPage = useCallback(\n (cache: string[], index: number): Promise<void> => {\n setLoading(true);\n safeRequestTotalPromise(searchProvider.requestTotal()).then((total) => updateNavigationData({total}));\n\n const newIndex = index - 1;\n const offset = Math.max(0, index - REQUEST_PAGE_SIZE);\n const max = REQUEST_PAGE_SIZE + Math.min(0, index - REQUEST_PAGE_SIZE);\n return safeRequestEntitiesPromise(searchProvider.requestEntities(max, offset))\n .then((entities) => {\n if (!entities) {\n return;\n }\n if (entities.length) {\n const newUris = getNewUris(entities, cache);\n if (newUris.length > 0) {\n updateNavigationData({\n cache: newUris.concat(cache),\n uri: newUris[newUris.length - 1],\n index: newIndex - (entities.length - newUris.length)\n });\n openEntity(newUris[newUris.length - 1]);\n return;\n } else if (index - entities.length > 0) {\n return requestPrevPage(cache, index - entities.length);\n }\n }\n updateNavigationData({\n index: 0\n });\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [searchProvider, updateNavigationData, openEntity]\n );\n\n const stepForwardWithCheck = useCallback(\n (cache: string[], cacheIndex: number, total: number, index: number): Promise<void> | void => {\n if (cacheIndex < cache.length) {\n const uri = cache[cacheIndex];\n setLoading(true);\n return safeCheckEntityPromise(searchProvider.checkEntity(uri))\n .then((isExists) => {\n if (isExists) {\n updateNavigationData({\n index: index + 1,\n uri,\n cache,\n total\n });\n openEntity(uri);\n } else {\n const clearedCache = [...cache];\n clearedCache.splice(cacheIndex, 1);\n return stepForwardWithCheck(clearedCache, cacheIndex, total - 1, index);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n } else if (index >= total - 1) {\n updateNavigationData({\n cache,\n total,\n index: total - 1\n });\n } else {\n return requestNextPage(cache, total, index);\n }\n },\n [searchProvider, updateNavigationData, openEntity, requestNextPage]\n );\n\n const stepBackWithCheck = useCallback(\n (cache: string[], cacheIndex: number, total: number, index: number): Promise<void> | void => {\n if (cacheIndex > -1) {\n const uri = cache[cacheIndex];\n setLoading(true);\n return safeCheckEntityPromise(searchProvider.checkEntity(uri))\n .then((isExists) => {\n if (isExists) {\n updateNavigationData({\n index: index - 1,\n uri,\n cache,\n total\n });\n openEntity(uri);\n } else {\n const clearedCache = [...cache];\n clearedCache.splice(cacheIndex, 1);\n return stepBackWithCheck(clearedCache, cacheIndex - 1, total - 1, index - 1);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n } else if (index <= 0) {\n updateNavigationData({\n index: 0,\n cache,\n total\n });\n } else {\n return requestPrevPage(cache, index);\n }\n },\n [searchProvider, updateNavigationData, openEntity, requestPrevPage]\n );\n\n const onPrev = useCallback(() => {\n if (cache && uri) {\n const cacheIndex = cache.indexOf(uri) - 1;\n stepBackWithCheck(cache, cacheIndex, total, index);\n }\n }, [stepBackWithCheck, cache, uri, total, index]);\n\n const onNext = useCallback(() => {\n if (cache && uri) {\n const cacheIndex = cache.indexOf(uri) + 1;\n stepForwardWithCheck(cache, cacheIndex, total, index);\n }\n }, [stepForwardWithCheck, cache, uri, total, index]);\n\n const isPrevDisabled = loading || index <= 0;\n const isNextDisabled = loading || index >= total - 1;\n return {total, onPrev, onNext, onSearchResultsClick, isPrevDisabled, isNextDisabled};\n};\n\nexport {useSearchNavigation};\n","import React from 'react';\n\nimport {ProfileBandNavigationWidget} from './ProfileBandNavigationWidget';\nimport {useSearchNavigation} from './hooks/useSearchNavigation';\nimport {useSearchNavigationVisibility} from './hooks/useSearchNavigationVisibility';\n\nconst ProfileBandNavigation = () => {\n const {total, onPrev, onNext, onSearchResultsClick, isPrevDisabled, isNextDisabled} = useSearchNavigation();\n const isVisible = useSearchNavigationVisibility();\n return isVisible ? (\n <ProfileBandNavigationWidget\n total={total}\n onPrev={onPrev}\n onNext={onNext}\n onSearchResultsClick={onSearchResultsClick}\n isPrevDisabled={isPrevDisabled}\n isNextDisabled={isNextDisabled}\n />\n ) : null;\n};\n\nexport {ProfileBandNavigation};\n","import {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {Entity, isViewMode} from '@reltio/mdm-sdk';\nimport {SearchNavigationData} from '../types';\n\nconst useSearchNavigationVisibility = () => {\n const {cache} = useSelector<unknown, SearchNavigationData>(mdmModule.selectors.getSearchNavigationData) || {};\n const mode = useSelector<unknown, string>(mdmModule.selectors.getMode);\n const entity = useSelector<unknown, Entity>(mdmModule.selectors.getEntity);\n\n return isViewMode(mode) && cache?.includes(entity?.uri);\n};\n\nexport {useSearchNavigationVisibility};\n","import React from 'react';\n\nconst Spacer = () => <div style={{flex: 1}} />;\n\nexport default Spacer;\n"],"names":["props","width","height","viewBox","xmlns","d","fill","fillRule","stroke","strokeWidth","opacity","ColumnsSettings","columnsData","selectedColumns","onChangeColumns","title","tooltipTitle","anchorEl","setAnchorEl","useState","handleColumnClick","useCallback","column","changedColumns","pipe","getChildColumns","pluck","wasSelected","isColumnSelected","difference","uniq","concat","SmallIconButton","i18n","size","icon","TableIcon","onClick","event","currentTarget","ColumnsSettingsPopup","onColumnClick","onClose","propTypes","ColumnsDataType","PropTypes","useStyles","makeStyles","popup","minWidth","groupItem","backgroundColor","ColumnListItem","item","checked","level","style","isFocused","isGroupItem","hideCheckBox","styles","AttributeListItem","key","id","data","label","Highlighter","text","highlight","filterText","labelInText","hideIcon","className","classnames","setFilterText","groupedItems","useMemo","buildColumnItems","items","flattenGroupedItemsData","containerWidth","getMaxItemWidth","handleSearchOnEnter","focusIndex","handleKeyDown","useKeyboardNavigation","open","onSelectFocusedItem","selectedItems","handleClose","listHeight","Math","min","length","containerHeight","max","SelectionPopup","onSearch","searchInputOnKeyDown","VirtualGroupedList","fixedTitle","renderItem","index","isGroupColumn","getItemSize","groupId","isParentToColumn","curry","parent","startsWith","isGroupToColumn","group","isHideableColumn","propOr","addColumn","columns","root","find","either","getColumnRoot","children","filterColumnsByLabel","utils","some","buildColumnsTrees","reduce","acc","columnData","attrType","dataTypeDefinition","buildFilteredColumnItems","filter","chain","isGroupedColumnsData","has","flattenGroupedColumnsData","map","assoc","when","childColumns","includes","every","container","display","alignItems","link","whiteSpace","marginRight","LinkWithTooltip","withTooltip","Link","ProfileBandNavigationWidget","total","onPrev","onNext","onSearchResultsClick","isPrevDisabled","isNextDisabled","component","variant","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","uri","fieldName","values","offset","then","entities","requestEntities","requestTotal","getTotalFromDataTenant","getTotals","json","GraphSearchProvider","searchBody","allFilters","getGraphSearchEntities","buildFilterQueryString","getEntityId","from","getGraphSearchCount","count","getNewUris","cache","prop","reject","ProfileBandNavigation","safeCheckEntityPromise","useSafePromise","safeRequestTotalPromise","safeRequestEntitiesPromise","useSelector","mdmModule","type","state","viewId","useContext","ViewIdContext","dispatch","useDispatch","loading","setLoading","searchProvider","getSearchProvider","updateNavigationData","mdmModuleSearch","openEntity","preparedUri","getEntityUriForLink","mdmModuleUi","source","perspectiveId","useEffect","requestNextPage","newIndex","newUris","finally","requestPrevPage","stepForwardWithCheck","cacheIndex","isExists","clearedCache","splice","stepBackWithCheck","indexOf","useSearchNavigation","mode","entity","isViewMode","useSearchNavigationVisibility","flex"],"sourceRoot":""}
|