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