@datawheel/bespoke 0.7.7 → 0.7.8
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/dist/cms.js +31 -31
- package/dist/explore.js +3 -3
- package/dist/report.js +14 -14
- package/package.json +2 -2
package/dist/explore.js
CHANGED
|
@@ -3,10 +3,10 @@ import { createContext, forwardRef, useContext, useState, useCallback, useEffect
|
|
|
3
3
|
import { IconSearch, IconTrash, IconX } from '@tabler/icons-react';
|
|
4
4
|
import { useDebouncedValue, useClickOutside } from '@mantine/hooks';
|
|
5
5
|
import { useRouter } from 'next/router';
|
|
6
|
-
import
|
|
6
|
+
import fe from 'axios';
|
|
7
7
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import { format } from 'd3-format';
|
|
9
9
|
|
|
10
|
-
var ne={try_another:"Try another search or filter.",search:"Search",filters_all:"All",no_results:"No Results",load_more:"Load more",select_report:"Select Report",select_variant:"Select Variant",count_format:".2s",report:{},dimension:{},variant:{}},fe=createContext({metadata:[],loadingItems:!1,setLoadingItems:()=>null,loadingMetadata:!1,setLoadingMetadata:()=>null,resultCount:{},totalCount:{},setResultCount:()=>null,activePage:1,setActivePage:()=>null,pageSize:10,results:[],filters:{},doQuery:()=>null,setFilters:()=>null,query:"",setQuery:()=>null,debouncedQuery:"",currentPageTotal:10,selectorStructure:[],translations:ne,setTranslations:()=>null,showSelectors:!0}),L=()=>useContext(fe);function Ve({children:t,pageSize:n=10}){let i={profile:void 0,variant:void 0},[s,d]=useState([]),[y,p]=useState(!1),[b,m]=useState(!1),[h,o]=useState({}),[x,v]=useState({}),[u,e]=useState(1),[c,_]=useState(i),[B,G]=useState(""),[$]=useDebouncedValue(B,750),[H,Y]=useState([]),[K,U]=useState(ne),[z,A]=useState(!1),{locale:O}=useRouter(),Z=async()=>{try{m(!0),de.get("/api/cms/read/metadata").then(r=>{if(r&&r.data&&r.data.data&&r.data.data.data){let R=r.data.data.data.reduce((f,l)=>(l.dimensions&&l.dimensions.forEach(g=>{g.variants&&g.variants.forEach(a=>{f[a.id]=a.members_count||0;});}),f),{});d(r.data.data.data),o(R),v(R);}m(!1),A(!0);}).catch(r=>{console.error(r);});}catch(r){console.error("Error fetching metadata:",r),d([]),m(!1),o({}),v({});}},ee=r=>{o(r||x);},F=useCallback(async(r,R,f)=>{!z&&s.length===0&&await Z(),_({profile:r,variant:R}),f!==""&&G(f);},[]);useEffect(()=>{let r=!1;return z&&(p(!0),e(1),X(r,0)),()=>{r=!1;}},[$,c,z]),useEffect(()=>{if(z){p(!0);let r=(u-1)*n;X(!1,r);}},[u]);let X=async(r,R)=>{let f=c.profile&&!Number.isNaN(c.profile)?[c.profile]:[],l=c.variant?typeof c.variant=="string"&&c.variant.includes(",")?c.variant.split(",").map(a=>parseInt(a,10)):[parseInt(c.variant,10)]:[],g={query:$,format:"profiles",locale:O,limit:n,offset:R,visible:!0,includes:!0,noImage:!1,variant:l,dimension:[],report:f,all:!1,origin:"typesense"};de.get("/api/cms/search/reports",{params:g}).then(a=>{if(a&&a.data&&a.data.data&&a.data.data.results&&!r){let M=a.data.data.results;Y(M),o(!B||B===""?!1:a.data.data.meta.variantCount);}p(!1);}).catch(a=>{console.error(a),p(!1);});},w=h||x,D={id:void 0,name:K.filters_all||"ALL"},te=r=>{let R=r.reduce((l,g)=>l.reduce((a,M)=>a.concat(g.map($e=>[].concat(M,$e))),[])).map(l=>{let g;return Array.isArray(l)?g={id:l.map(a=>a.id).join(","),name:l.map(a=>a.name).join(" / "),members_count:l.reduce((a,M)=>a*(w[M.id]||1),1),ordering:l.reduce((a,M)=>a+M.ordering,0)}:(l.members_count=w[l.id]||0,g={...l,members_count:w[l.id]||0}),g}),f=R.reduce((l,g)=>l+(g.members_count||0),0);return [{...D,members_count:f},...R]},re=s.length>1,Q=useMemo(()=>{let r=[];if(!b&&s.length>0&&w){let R=s.filter(f=>f.dimensions.length>0).map(f=>{let l=!1,g=te(f.dimensions.map(a=>a.variants));return g&&g.length>2&&(l=!0),{id:f.id,name:f.dimensions.map(a=>a.name).join(" / "),variants:g,members_count:g.filter(a=>a.id).reduce((a,M)=>a+(M.members_count||0),0),show:l}});r=[{...D,members_count:R.reduce((f,l)=>f+(l.members_count||0),0)},...R];}return r},[b,w,s,D]),oe=useMemo(()=>{let r;return Q&&(c.profile?c.profile&&(r=Q.find(R=>R.id===c.profile),r&&c.variant&&r.variants&&(r=r.variants.find(R=>R.id===c.variant))):r=Q.find(R=>!R.id)),r?r.members_count:n},[c,Q]),ae={metadata:s,loadingMetadata:b,setLoadingMetadata:m,loadingItems:y,setLoadingItems:p,resultCount:h,totalCount:x,setResultCount:ee,activePage:u,setActivePage:e,pageSize:n,filters:c,setFilters:_,doQuery:X,query:B,setQuery:G,debouncedQuery:$,results:H,currentPageTotal:oe,selectorStructure:Q,translations:K,setTranslations:r=>U({...ne,...r}),showSelectors:re,initExplore:F};return jsx(fe.Provider,{value:ae,children:t})}function Xe({translations:t}){let{loadingItems:n,setFilters:i,selectorStructure:s,filters:d,showSelectors:y}=L(),p=e=>{let c=e===null||Number.isNaN(e)?void 0:parseInt(e,10);c!==d.profile?i({profile:c,variant:void 0}):c&&i({profile:void 0,variant:void 0});},b=e=>{let c=e===null?void 0:typeof e=="string"&&e.includes(",")?e:parseInt(e,10);c!==d.variant?i({...d,variant:c}):c&&i({...d,variant:void 0});},m=e=>e<1e3?e:format(t.count_format)(e).replace(/\.0+([a-zA-Z]*)$/,"$1"),h=s.length===2?s[1].id:d.profile,o=h?s.find(e=>e.id===h):void 0,x=o&&o.variants&&d.variant?o.variants.find(e=>e.id===d.variant):void 0,v=useMemo(()=>s.map(e=>({value:String(e.id||""),label:t?.dimension[e.name]??e.name+(!n&&(!o||e.id===o?.id)?` (${m(e.members_count)})`:"")})),[t,o,s]),u=useMemo(()=>o?.variants?.map(e=>({value:String(e.id||""),label:t?.dimension[e.name]??e.name+(!n&&(!x||e.id===x?.id)?` (${m(e.members_count)})`:"")}))??[],[t,x,s]);return jsx(Fragment,{children:y&&jsxs(Fragment,{children:[jsx(MediaQuery,{largerThan:1e3,styles:{display:"none"},children:jsxs(Group,{className:"bespoke-explore-reports-select-container",position:"center",mb:"md",children:[jsx(Select,{className:"bespoke-explore-reports-select",data:v,value:String(o?.id||""),onChange:e=>p(e),label:t.select_report||"Select Report",placeholder:t.select_report||"Select Report",clearable:typeof o?.id<"u",style:{width:"450px"}}),o?.variants&&o.variants.length>2&&jsx(Select,{className:"bespoke-explore-variant-select",data:u,value:String(x?.id||""),onChange:e=>b(e),label:t.select_variant||"Select Variant",placeholder:t.select_variant||"Select Variant",clearable:typeof x?.id<"u",style:{width:"450px"}})]})}),jsx(MediaQuery,{smallerThan:1e3,styles:{display:"none"},children:jsxs("div",{children:[jsx(Group,{position:"center",className:"bespoke-explore-reports-selector",mb:"md",children:s.map(e=>jsxs(Button,{"data-selected":e.id===o?.id?"true":"false","data-report-name":e.name,variant:e.id===o?.id?"outline":"subtle",onClick:()=>p(e.id),rightIcon:e.id&&e.id===o?.id?jsx(IconX,{size:"1rem"}):void 0,children:[t?.dimension[e.name]??e.name,!n&&(!o||e.id===o?.id)&&jsx(Text,{span:!0,size:"xs",ml:"0.2rem",children:`(${m(e.members_count)})`})]},`p-${e.id}`))}),o&&o.variants&&o.variants.length>2&&jsx(Group,{position:"center",style:{minHeight:"36px"},className:"bespoke-explore-variant-selector",mb:"md",children:o.variants.map(e=>jsxs(Button,{"data-selected":e.id===x?.id?"true":"false","data-variant-name":e.name,variant:e.id===x?.id?"outline":"subtle",onClick:()=>b(e.id),rightIcon:e.id&&e.id===x?.id?jsx(IconX,{size:"1rem"}):void 0,children:[t?.dimension[e.name]??e.name,!n&&(!x||e.id===x?.id)&&jsx(Text,{span:!0,size:"xs",ml:"0.2rem",children:`(${m(e.members_count)})`})]},`v-${e.id}`))})]})})]})})}var Pe=Xe;function j(){return useMantineTheme().other.bespokeStyles??{}}var q=()=>{let t=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",n=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[t];return n.includes(t)||n.push(t),{localeDefault:t,locales:n}};function rt({reportName:t,members:n,href:i,onClick:s}){let d=n.map(p=>jsx(Image,{src:p.image.src,height:160,imageProps:{loading:"lazy"},alt:p.name},p.id)),y=n.map(p=>jsxs(Stack,{children:[jsx(Text,{weight:500,children:p.name}),jsx(Badge,{color:"green",variant:"light",w:"fit-content",children:p.variant})]},p.id));return jsxs(Card,{shadow:"sm",p:"lg",radius:"md",withBorder:!0,children:[jsx(Card.Section,{children:jsx(Group,{grow:!0,spacing:0,children:d})}),jsx(Group,{position:"apart",mt:"md",mb:"xs",children:y}),jsx("a",{href:i,onClick:s,children:jsx(Button,{variant:"light",color:"blue",fullWidth:!0,mt:"md",radius:"md",children:`See ${t} Report`})})]})}var ot=t=>{let{components:n}=j(),i=rt;return n?.ReportTile&&(i=n?.ReportTile),t&&(i=t),i};function at({profile:t,profilePrefix:n,onSelect:i,reportTile:s}){let d=useRouter(),y=d.locale,{localeDefault:p}=q(),m=`${y===p?"":`/${y}`}${n}${t.path}`,h=t.members.map(u=>({original_id:u.metadata.id,name:u.name,id:u.id,variant:u.metadata.variant.name,image:{src:`/api/cms/member/image?member=${u.id}&size=thumb`,alt:u.name}})),o=u=>{d.push(`${u}`),i&&i();},x=u=>{u.preventDefault(),o(m);},v=ot(s);return jsx(Grid.Col,{xs:12,sm:6,md:4,lg:4,xl:3,children:jsx(v,{reportName:t.report.name,members:h,href:m,onClick:x})},t.id)}var Ee=at;function pt({profilePrefix:t,onSelect:n=()=>{},reportTile:i}){let[s,d]=useState(500),y=useRef(null),{results:p}=L(),b=y.current?.offsetTop||0,m=50;return useEffect(()=>{let{innerHeight:h}=window;d(h-b-m);},[b]),jsx(ScrollArea,{offsetScrollbars:!0,type:"always",h:s,ref:y,children:jsx(Grid,{align:"stretch",children:p.map(h=>jsx(Ee,{profile:h,profilePrefix:t,reportTile:i,onSelect:n},h.id))})})}var Ie=pt;function dt(){let{activePage:t,setActivePage:n,pageSize:i,currentPageTotal:s}=L();return jsx(Group,{position:"center",children:jsx(Pagination,{value:t,onChange:y=>{n(y);},total:Math.ceil(s/i),size:"sm",py:"xs"})})}var _e=dt;function Tt({profilePrefix:t,initialReportId:n,initialVariantId:i,translations:s,onSelect:d,reportTile:y,initialQuery:p}){let b=useRef(),m=L(),{query:h,setQuery:o,results:x,loadingItems:v,loadingMetadata:u,translations:e,setTranslations:c,initExplore:_}=m;useEffect(()=>{_&&_(n,i,p);},[_]),useEffect(()=>{v||b.current?.focus();},[v]),useEffect(()=>{s&&c(s);},[s]);let B=()=>{o("");};return jsxs(Container,{fluid:!0,pt:"1em",children:[jsx(TextInput,{placeholder:e.search,mb:"md",size:"xl",onChange:G=>o(G.target.value),readOnly:u||v,icon:jsx(IconSearch,{size:24}),value:h,rightSectionWidth:100,rightSectionProps:{style:{justifyContent:"flex-end",padding:"0 15px 0 0"}},rightSection:jsxs(Group,{align:"center",children:[(u||v)&&jsx(Loader,{size:28}),h&&h!==""&&jsx(ActionIcon,{onClick:B,children:jsx(IconTrash,{size:24})})]}),ref:b}),jsx(Pe,{translations:e}),jsx(LoadingOverlay,{visible:u||v}),!v&&x.length===0&&jsx(Alert,{title:e.no_results,color:"blue",children:e.try_another}),jsx(Ie,{profilePrefix:t,onSelect:d,reportTile:y}),jsx(_e,{})]})}var ce=Tt;var{localeDefault:Mt}=q();function Lt({exploreProps:t={profilePrefix:"/",locale:Mt},icon:n=jsx(IconSearch,{size:20}),actionIconProps:i={},modalProps:s={},tooltipProps:d={},tooltipText:y="Click to Explore",showIcon:p=!0,showTooltip:b=!1,children:m}){let[h,o]=useState(!1),x={variant:"light",size:"md",radius:"md",...i},v={fullScreen:!0,opened:h,onClose:()=>o(!1)},u=jsx(ActionIcon,{...x,onClick:()=>o(!0),children:n}),e=p?jsxs(Group,{spacing:"sm",style:{cursor:"pointer"},children:[m,u]}):m;return b&&(e=jsx(Tooltip,{label:y,...d,children:e})),jsxs(Fragment,{children:[jsx(Modal,{...v,...s,children:h&&jsx(ce,{...t,onSelect:()=>o(!1)})}),jsx("div",{onClick:()=>o(!0),children:m?e:jsx(Fragment,{children:u})})]})}var Bt=Lt;var Ot=forwardRef(({id:t,members:n,profilePrefix:i,reportName:s,reportPath:d,...y},p)=>{let b=n.map(m=>jsxs(Stack,{align:"center",children:[jsx(Text,{weight:500,children:m.name}),jsx(Badge,{color:"green",variant:"light",children:m.variant})]},m.id));return jsx("div",{ref:p,children:jsx(Group,{position:"apart",grow:!0,...y,children:b})},t)}),Be=Ot;var Kt=t=>{let{components:n}=j(),i=Be;return n?.ReportItem&&(i=n?.ReportItem),t&&(i=t),i};function Zt({locale:t,profilePrefix:n="/report",autocompleteProps:i={},tooltipProps:s={},tooltipText:d="Click to search",searchReportParams:y={},callback:p,children:b}){let m=useRouter(),h=m.locale,{localeDefault:o}=q(),x=h===o?"":`/${h}`,v=Kt(i?i.itemComponent:null),[u,e]=useState(""),[c,_]=useDebouncedValue(u,500),[B,G]=useState([]),[$,H]=useState(!1),[Y,K]=useState(!1),[U,z]=useState(!1),[A,O]=useState(!b),Z=()=>{O(!1);},ee=()=>{O(!0),D();},F=useRef(),X=useClickOutside(Z),w=i?.searchConfig?.searchLimit??10,D=()=>{H(!0);let f={query:c,format:"profiles",locale:t,limit:w,visible:!0,includes:!0,noImage:!1,variant:[],dimension:[],report:[],all:!1,...y};de.get("/api/cms/search/reports",{params:f}).then(l=>{l&&l.data&&l.data.data&&l.data.data.results&&G(l.data.data.results.map(g=>({id:g.id,reportName:g.report.name,href:`${x}${n}${g.path}`,reportPath:`${g.path}`,profilePrefix:n,value:`VALUE: ${g.id}`,members:g.members.map(a=>({original_id:a.metadata.id,name:a.name,id:a.id,variant:a.metadata.variant.name,image:{src:`/api/cms/member/image?member=${a.id}&size=thumb`,alt:a.name}}))}))),H(!1),F.current?.focus();}).catch(l=>{console.error(l),H(!1);});};useEffect(()=>{U&&c.length>=(i.searchConfig?.queryThreshold??0)&&D();},[U,c,i.searchConfig?.queryThreshold]),useEffect(()=>{_(),F.current&&A&&z(!0);},[]),useEffect(()=>{_(),F.current&&A&&z(!0);},[A]);let te=f=>{O(!1),p?p(f):(m.push(f.href),K(!0));},re=f=>{f.includes("VALUE:")||e(f);},{searchConfig:Q,...oe}=i,ae={placeholder:"Search",size:"md",icon:jsx(IconSearch,{}),...oe,data:B},r=jsx(Autocomplete,{value:u,itemComponent:v,onItemSubmit:te,onChange:re,filter:()=>!0,disabled:($||Y)&&!U,limit:w,maxDropdownHeight:250,rightSection:jsx(Group,{spacing:0,position:"right",children:$?jsx(Loader,{size:20}):jsx(Fragment,{})}),rightSectionWidth:50,ref:F,...ae});return b?jsx(Tooltip,{label:d,disabled:A,...s,children:jsxs(Group,{ref:X,spacing:"sm",align:"center",style:{cursor:"pointer"},children:[!A&&jsx("div",{onClick:()=>O(!0),children:b}),A&&jsx(Fragment,{children:r}),A?jsx(ActionIcon,{variant:"light",onClick:Z,children:jsx(IconX,{size:20})}):jsx(ActionIcon,{variant:"light",onClick:ee,children:jsx(IconSearch,{size:20})})]})}):r}var Jt=Zt;
|
|
10
|
+
var ie={try_another:"Try another search or filter.",search:"Search",filters_all:"All",no_results:"No Results",load_more:"Load more",select_report:"Select Report",select_variant:"Select Variant",count_format:".2s",report:{},dimension:{},variant:{}},ge=createContext({metadata:[],loadingItems:!1,setLoadingItems:()=>null,loadingMetadata:!1,setLoadingMetadata:()=>null,resultCount:{},totalCount:{},setResultCount:()=>null,activePage:1,setActivePage:()=>null,pageSize:10,results:[],filters:{},doQuery:()=>null,setFilters:()=>null,query:"",setQuery:()=>null,debouncedQuery:"",currentPageTotal:10,selectorStructure:[],translations:ie,setTranslations:()=>null,showSelectors:!0}),L=()=>useContext(ge);function Ve({children:t,pageSize:a=10}){let i={profile:void 0,variant:void 0},[s,u]=useState([]),[y,p]=useState(!1),[b,m]=useState(!1),[h,o]=useState({}),[x,R]=useState({}),[d,e]=useState(1),[c,_]=useState(i),[B,$]=useState(""),[G]=useDebouncedValue(B,750),[H,ee]=useState([]),[Z,U]=useState(ie),[w,A]=useState(!1),{locale:O}=useRouter(),J=async()=>{try{m(!0),fe.get("/api/cms/read/metadata").then(r=>{if(r&&r.data&&r.data.data&&r.data.data.data){let v=r.data.data.data.reduce((f,l)=>(l.dimensions&&l.dimensions.forEach(g=>{g.variants&&g.variants.forEach(n=>{f[n.id]=n.members_count||0;});}),f),{});u(r.data.data.data),o(v),R(v);}m(!1),A(!0);}).catch(r=>{console.error(r);});}catch(r){console.error("Error fetching metadata:",r),u([]),m(!1),o({}),R({});}},te=r=>{o(r||x);},F=useCallback(async(r,v,f)=>{!w&&s.length===0&&await J(),_({profile:r,variant:v}),f!==""&&$(f);},[]);useEffect(()=>{let r=!1;return w&&(p(!0),e(1),X(r,0)),()=>{r=!1;}},[G,c,w]),useEffect(()=>{if(w){p(!0);let r=(d-1)*a;X(!1,r);}},[d]);let X=async(r,v)=>{let f=c.profile&&!Number.isNaN(c.profile)?[c.profile]:[],l=c.variant?typeof c.variant=="string"&&c.variant.includes(",")?c.variant.split(",").map(n=>parseInt(n,10)):[parseInt(c.variant,10)]:[],g={query:G,format:"profiles",locale:O,limit:a,offset:v,visible:!0,includes:!0,noImage:!1,variant:l,dimension:[],report:f,all:!1,origin:"typesense"};fe.get("/api/cms/search/reports",{params:g}).then(n=>{if(n&&n.data&&n.data.data&&n.data.data.results&&!r){let M=n.data.data.results;ee(M),o(!B||B===""?!1:n.data.data.meta.variantCount);}p(!1);}).catch(n=>{console.error(n),p(!1);});},N=h||x,D={id:void 0,name:Z.filters_all||"ALL"},re=r=>{let v=r.reduce((l,g)=>l.reduce((n,M)=>n.concat(g.map(Ge=>[].concat(M,Ge))),[])).map(l=>{let g;return Array.isArray(l)?g={id:l.map(n=>n.id).join(","),name:l.map(n=>n.name).join(" / "),members_count:l.reduce((n,M)=>n*(N[M.id]||1),1),ordering:l.reduce((n,M)=>n+M.ordering,0)}:(l.members_count=N[l.id]||0,g={...l,members_count:N[l.id]||0}),g}),f=v.reduce((l,g)=>l+(g.members_count||0),0);return [{...D,members_count:f},...v]},oe=s.length>1,Q=useMemo(()=>{let r=[];if(!b&&s.length>0&&N){let v=s.filter(f=>f.dimensions.length>0).map(f=>{let l=!1,g=re(f.dimensions.map(n=>n.variants));return g&&g.length>2&&(l=!0),{id:f.id,name:f.dimensions.map(n=>n.name).join(" / "),variants:g,members_count:g.filter(n=>n.id).reduce((n,M)=>n+(M.members_count||0),0),show:l}});r=[{...D,members_count:v.reduce((f,l)=>f+(l.members_count||0),0)},...v];}return r},[b,N,s,D]),ne=useMemo(()=>{let r;return Q&&(c.profile?c.profile&&(r=Q.find(v=>v.id===c.profile),r&&c.variant&&r.variants&&(r=r.variants.find(v=>v.id===c.variant))):r=Q.find(v=>!v.id)),r?r.members_count:a},[c,Q]),ae={metadata:s,loadingMetadata:b,setLoadingMetadata:m,loadingItems:y,setLoadingItems:p,resultCount:h,totalCount:x,setResultCount:te,activePage:d,setActivePage:e,pageSize:a,filters:c,setFilters:_,doQuery:X,query:B,setQuery:$,debouncedQuery:G,results:H,currentPageTotal:ne,selectorStructure:Q,translations:Z,setTranslations:r=>U({...ie,...r}),showSelectors:oe,initExplore:F};return jsx(ge.Provider,{value:ae,children:t})}function Xe({translations:t}){let{loadingItems:a,setFilters:i,selectorStructure:s,filters:u,showSelectors:y}=L(),p=e=>{let c=e===null||Number.isNaN(e)?void 0:parseInt(e,10);c!==u.profile?i({profile:c,variant:void 0}):c&&i({profile:void 0,variant:void 0});},b=e=>{let c=e===null?void 0:typeof e=="string"&&e.includes(",")?e:parseInt(e,10);c!==u.variant?i({...u,variant:c}):c&&i({...u,variant:void 0});},m=e=>e<1e3?e:format(t.count_format)(e).replace(/\.0+([a-zA-Z]*)$/,"$1"),h=s.length===2?s[1].id:u.profile,o=h?s.find(e=>e.id===h):void 0,x=o&&o.variants&&u.variant?o.variants.find(e=>e.id===u.variant):void 0,R=useMemo(()=>s.map(e=>({value:String(e.id||""),label:(t?.dimensionIcon?.[e.name]?`${t?.dimensionIcon?.[e.name]} `:"")+(t?.dimension[e.name]||e.name)+(!a&&(!o||e.id===o?.id)?` (${m(e.members_count)})`:"")})),[t,o,s]),d=useMemo(()=>o?.variants?.map(e=>({value:String(e.id||""),label:(t?.variantIcon?.[e.name]?`${t?.variantIcon?.[e.name]} `:"")+(t?.variant[e.name]||e.name)+(!a&&(!x||e.id===x?.id)?` (${m(e.members_count)})`:"")}))??[],[t,x,s]);return jsx(Fragment,{children:y&&jsxs(Fragment,{children:[jsx(MediaQuery,{largerThan:1e3,styles:{display:"none"},children:jsxs(Group,{className:"bespoke-explore-reports-select-container",position:"center",mb:"md",children:[jsx(Select,{className:"bespoke-explore-reports-select",data:R,value:String(o?.id||""),onChange:e=>p(e),label:t.select_report||"Select Report",placeholder:t.select_report||"Select Report",clearable:typeof o?.id<"u",style:{width:"450px"}}),o?.variants&&o.variants.length>2&&jsx(Select,{className:"bespoke-explore-variant-select",data:d,value:String(x?.id||""),onChange:e=>b(e),label:t.select_variant||"Select Variant",placeholder:t.select_variant||"Select Variant",clearable:typeof x?.id<"u",style:{width:"450px"}})]})}),jsx(MediaQuery,{smallerThan:1e3,styles:{display:"none"},children:jsxs("div",{children:[jsx(Group,{position:"center",className:"bespoke-explore-reports-selector",mb:"md",children:s.map(e=>jsxs(Button,{"data-selected":e.id===o?.id?"true":"false","data-report-name":e.name,variant:e.id===o?.id?"outline":"subtle",onClick:()=>p(e.id),rightIcon:e.id&&e.id===o?.id?jsx(IconX,{size:"1rem"}):void 0,leftIcon:t?.dimensionIcon?.[e.name]??void 0,children:[jsx(Text,{span:!0,className:"bespoke-explore-reports-name",dangerouslySetInnerHTML:{__html:t?.dimension[e.name]??e.name}}),!a&&(!o||e.id===o?.id)&&jsx(Text,{span:!0,size:"xs",ml:"0.2rem",className:"bespoke-explore-reports-count",children:`(${m(e.members_count)})`})]},`p-${e.id}`))}),o&&o.variants&&o.variants.length>2&&jsx(Group,{position:"center",style:{minHeight:"36px"},className:"bespoke-explore-variant-selector",mb:"md",children:o.variants.map(e=>jsxs(Button,{"data-selected":e.id===x?.id?"true":"false","data-variant-name":e.name,variant:e.id===x?.id?"outline":"subtle",onClick:()=>b(e.id),rightIcon:e.id&&e.id===x?.id?jsx(IconX,{size:"1rem"}):void 0,leftIcon:t?.variantIcon?.[e.name]?jsx(Text,{span:!0,dangerouslySetInnerHTML:{__html:t.variantIcon[e.name]}}):void 0,children:[jsx(Text,{span:!0,className:"bespoke-explore-variant-name",dangerouslySetInnerHTML:{__html:t?.variant[e.name]??e.name}}),!a&&(!x||e.id===x?.id)&&jsx(Text,{span:!0,size:"xs",ml:"0.2rem",className:"bespoke-explore-variant-count",children:`(${m(e.members_count)})`})]},`v-${e.id}`))})]})})]})})}var Se=Xe;function K(){return useMantineTheme().other.bespokeStyles??{}}var q=()=>{let t=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",a=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[t];return a.includes(t)||a.push(t),{localeDefault:t,locales:a}};function rt({reportName:t,members:a,href:i,onClick:s}){let u=a.map(p=>jsx(Image,{src:p.image.src,height:160,imageProps:{loading:"lazy"},alt:p.name},p.id)),y=a.map(p=>jsxs(Stack,{children:[jsx(Text,{weight:500,children:p.name}),jsx(Badge,{color:"green",variant:"light",w:"fit-content",children:p.variant})]},p.id));return jsxs(Card,{shadow:"sm",p:"lg",radius:"md",withBorder:!0,children:[jsx(Card.Section,{children:jsx(Group,{grow:!0,spacing:0,children:u})}),jsx(Group,{position:"apart",mt:"md",mb:"xs",children:y}),jsx("a",{href:i,onClick:s,children:jsx(Button,{variant:"light",color:"blue",fullWidth:!0,mt:"md",radius:"md",children:`See ${t} Report`})})]})}var ot=t=>{let{components:a}=K(),i=rt;return a?.ReportTile&&(i=a?.ReportTile),t&&(i=t),i};function nt({profile:t,profilePrefix:a,onSelect:i,reportTile:s}){let u=useRouter(),y=u.locale,{localeDefault:p}=q(),m=`${y===p?"":`/${y}`}${a}${t.path}`,h=t.members.map(d=>({original_id:d.metadata.id,name:d.name,id:d.id,variant:d.metadata.variant.name,image:{src:`/api/cms/member/image?member=${d.id}&size=thumb`,alt:d.name}})),o=d=>{u.push(`${d}`),i&&i();},x=d=>{d.preventDefault(),o(m);},R=ot(s);return jsx(Grid.Col,{xs:12,sm:6,md:4,lg:4,xl:3,children:jsx(R,{reportName:t.report.name,members:h,href:m,onClick:x})},t.id)}var Ie=nt;function pt({profilePrefix:t,onSelect:a=()=>{},reportTile:i}){let[s,u]=useState(500),y=useRef(null),{results:p}=L(),b=y.current?.offsetTop||0,m=50;return useEffect(()=>{let{innerHeight:h}=window;u(h-b-m);},[b]),jsx(ScrollArea,{offsetScrollbars:!0,type:"always",h:s,ref:y,children:jsx(Grid,{align:"stretch",children:p.map(h=>jsx(Ie,{profile:h,profilePrefix:t,reportTile:i,onSelect:a},h.id))})})}var Ee=pt;function ut(){let{activePage:t,setActivePage:a,pageSize:i,currentPageTotal:s}=L();return jsx(Group,{position:"center",children:jsx(Pagination,{value:t,onChange:y=>{a(y);},total:Math.ceil(s/i),size:"sm",py:"xs"})})}var _e=ut;function Tt({profilePrefix:t,initialReportId:a,initialVariantId:i,translations:s,onSelect:u,reportTile:y,initialQuery:p}){let b=useRef(),m=L(),{query:h,setQuery:o,results:x,loadingItems:R,loadingMetadata:d,translations:e,setTranslations:c,initExplore:_}=m;useEffect(()=>{_&&_(a,i,p);},[_]),useEffect(()=>{R||b.current?.focus();},[R]),useEffect(()=>{s&&c(s);},[s]);let B=()=>{o("");};return jsxs(Container,{fluid:!0,pt:"1em",children:[jsx(TextInput,{placeholder:e.search,mb:"md",size:"xl",onChange:$=>o($.target.value),readOnly:d||R,icon:jsx(IconSearch,{size:24}),value:h,rightSectionWidth:100,rightSectionProps:{style:{justifyContent:"flex-end",padding:"0 15px 0 0"}},rightSection:jsxs(Group,{align:"center",children:[(d||R)&&jsx(Loader,{size:28}),h&&h!==""&&jsx(ActionIcon,{onClick:B,children:jsx(IconTrash,{size:24})})]}),ref:b}),jsx(Se,{translations:e}),jsx(LoadingOverlay,{visible:d||R}),!R&&x.length===0&&jsx(Alert,{title:e.no_results,color:"blue",children:e.try_another}),jsx(Ee,{profilePrefix:t,onSelect:u,reportTile:y}),jsx(_e,{})]})}var pe=Tt;var{localeDefault:Mt}=q();function Lt({exploreProps:t={profilePrefix:"/",locale:Mt},icon:a=jsx(IconSearch,{size:20}),actionIconProps:i={},modalProps:s={},tooltipProps:u={},tooltipText:y="Click to Explore",showIcon:p=!0,showTooltip:b=!1,children:m}){let[h,o]=useState(!1),x={variant:"light",size:"md",radius:"md",...i},R={fullScreen:!0,opened:h,onClose:()=>o(!1)},d=jsx(ActionIcon,{...x,onClick:()=>o(!0),children:a}),e=p?jsxs(Group,{spacing:"sm",style:{cursor:"pointer"},children:[m,d]}):m;return b&&(e=jsx(Tooltip,{label:y,...u,children:e})),jsxs(Fragment,{children:[jsx(Modal,{...R,...s,children:h&&jsx(pe,{...t,onSelect:()=>o(!1)})}),jsx("div",{onClick:()=>o(!0),children:m?e:jsx(Fragment,{children:d})})]})}var Bt=Lt;var Ot=forwardRef(({id:t,members:a,profilePrefix:i,reportName:s,reportPath:u,...y},p)=>{let b=a.map(m=>jsxs(Stack,{align:"center",children:[jsx(Text,{weight:500,children:m.name}),jsx(Badge,{color:"green",variant:"light",children:m.variant})]},m.id));return jsx("div",{ref:p,children:jsx(Group,{position:"apart",grow:!0,...y,children:b})},t)}),Be=Ot;var Kt=t=>{let{components:a}=K(),i=Be;return a?.ReportItem&&(i=a?.ReportItem),t&&(i=t),i};function Zt({locale:t,profilePrefix:a="/report",autocompleteProps:i={},tooltipProps:s={},tooltipText:u="Click to search",searchReportParams:y={},callback:p,children:b}){let m=useRouter(),h=m.locale,{localeDefault:o}=q(),x=h===o?"":`/${h}`,R=Kt(i?i.itemComponent:null),[d,e]=useState(""),[c,_]=useDebouncedValue(d,500),[B,$]=useState([]),[G,H]=useState(!1),[ee,Z]=useState(!1),[U,w]=useState(!1),[A,O]=useState(!b),J=()=>{O(!1);},te=()=>{O(!0),D();},F=useRef(),X=useClickOutside(J),N=i?.searchConfig?.searchLimit??10,D=()=>{H(!0);let f={query:c,format:"profiles",locale:t,limit:N,visible:!0,includes:!0,noImage:!1,variant:[],dimension:[],report:[],all:!1,...y};fe.get("/api/cms/search/reports",{params:f}).then(l=>{l&&l.data&&l.data.data&&l.data.data.results&&$(l.data.data.results.map(g=>({id:g.id,reportName:g.report.name,href:`${x}${a}${g.path}`,reportPath:`${g.path}`,profilePrefix:a,value:`VALUE: ${g.id}`,members:g.members.map(n=>({original_id:n.metadata.id,name:n.name,id:n.id,variant:n.metadata.variant.name,image:{src:`/api/cms/member/image?member=${n.id}&size=thumb`,alt:n.name}}))}))),H(!1),F.current?.focus();}).catch(l=>{console.error(l),H(!1);});};useEffect(()=>{U&&c.length>=(i.searchConfig?.queryThreshold??0)&&D();},[U,c,i.searchConfig?.queryThreshold]),useEffect(()=>{_(),F.current&&A&&w(!0);},[]),useEffect(()=>{_(),F.current&&A&&w(!0);},[A]);let re=f=>{O(!1),p?p(f):(m.push(f.href),Z(!0));},oe=f=>{f.includes("VALUE:")||e(f);},{searchConfig:Q,...ne}=i,ae={placeholder:"Search",size:"md",icon:jsx(IconSearch,{}),...ne,data:B},r=jsx(Autocomplete,{value:d,itemComponent:R,onItemSubmit:re,onChange:oe,filter:()=>!0,disabled:(G||ee)&&!U,limit:N,maxDropdownHeight:250,rightSection:jsx(Group,{spacing:0,position:"right",children:G?jsx(Loader,{size:20}):jsx(Fragment,{})}),rightSectionWidth:50,ref:F,...ae});return b?jsx(Tooltip,{label:u,disabled:A,...s,children:jsxs(Group,{ref:X,spacing:"sm",align:"center",style:{cursor:"pointer"},children:[!A&&jsx("div",{onClick:()=>O(!0),children:b}),A&&jsx(Fragment,{children:r}),A?jsx(ActionIcon,{variant:"light",onClick:J,children:jsx(IconX,{size:20})}):jsx(ActionIcon,{variant:"light",onClick:te,children:jsx(IconSearch,{size:20})})]})}):r}var Jt=Zt;
|
|
11
11
|
|
|
12
|
-
export {
|
|
12
|
+
export { pe as BespokeExplore, Bt as BespokeExploreModal, Ve as BespokeExploreProvider, Jt as BespokeSearch, L as useBespokeExplore };
|