@datawheel/bespoke 1.0.0-rc.2 → 1.0.0-rc.3

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/explore.js CHANGED
@@ -1 +1 @@
1
- import {Stack,Text,Badge,Group,Container,TextInput,Loader,ActionIcon,LoadingOverlay,Alert,Tooltip,Modal,Autocomplete,Box,Select,Button,ScrollArea,Grid,Pagination,Image,Card}from'@mantine/core';import {createContext,forwardRef,useContext,useState,useCallback,useEffect,useMemo,useRef}from'react';import {IconTrash,IconSearch,IconX}from'@tabler/icons-react';import {useDebouncedValue,useClickOutside}from'@mantine/hooks';import {useRouter}from'next/router';import Se from'axios';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {format}from'd3-format';var ce={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:{}},ve=createContext({metadata:[],loadingItems:false,setLoadingItems:()=>null,loadingMetadata:false,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:ce,setTranslations:()=>null,showSelectors:true}),$=()=>useContext(ve);function Ke({children:t,pageSize:o=10}){let a={profile:void 0,variant:void 0},[s,m]=useState([]),[u,x]=useState(false),[c,f]=useState(false),[g,n]=useState({}),[y,R]=useState({}),[l,e]=useState(1),[p,w]=useState(a),[I,q]=useState(""),[O]=useDebouncedValue(I,750),[K,ee]=useState([]),[te,Q]=useState(ce),[F,N]=useState(false),{locale:V}=useRouter(),oe=async()=>{try{f(!0),Se.get("/api/cms/read/metadata").then(r=>{if(r&&r.data&&r.data.data&&r.data.data.data){let h=r.data.data.data.reduce((b,d)=>(d.dimensions&&d.dimensions.forEach(v=>{v.variants&&v.variants.forEach(i=>{b[i.id]=i.members_count||0;});}),b),{});m(r.data.data.data),n(h),R(h);}f(!1),N(!0);}).catch(r=>{console.error(r);});}catch(r){console.error("Error fetching metadata:",r),m([]),f(false),n({}),R({});}},le=r=>{n(r||y);},re=useCallback(async(r,h,b)=>{!F&&s.length===0&&await oe(),w({profile:r,variant:h}),b!==""&&q(b);},[]);useEffect(()=>{let r=false;return F&&(x(true),e(1),W(r,0)),()=>{r=false;}},[O,p,F]),useEffect(()=>{if(F){x(true);let r=(l-1)*o;W(false,r);}},[l]);let W=async(r,h)=>{let b=p.profile&&!Number.isNaN(p.profile)?[p.profile]:[],d=p.variant?typeof p.variant=="string"&&p.variant.includes(",")?p.variant.split(",").map(i=>parseInt(i,10)):[parseInt(p.variant,10)]:[],v={query:O,format:"profiles",locale:V,limit:o,offset:h,visible:true,includes:true,noImage:false,variant:d,dimension:[],report:b,all:false,origin:"typesense"};Se.get("/api/cms/search/reports",{params:v}).then(i=>{if(i&&i.data&&i.data.data&&i.data.data.results&&!r){let A=i.data.data.results;ee(A),n(!I||I===""?false:i.data.data.meta.variantCount);}x(false);}).catch(i=>{console.error(i),x(false);});},z=g||y,H={id:void 0,name:te.filters_all||"ALL"},ne=r=>{let h=r.reduce((d,v)=>d.reduce((i,A)=>i.concat(v.map(S=>[].concat(A,S))),[])).map(d=>{let v;return Array.isArray(d)?v={id:d.map(i=>i.id).join(","),name:d.map(i=>i.name).join(" / "),members_count:d.reduce((i,A)=>i*(z[A.id]||1),1),ordering:d.reduce((i,A)=>i+A.ordering,0)}:(d.members_count=z[d.id]||0,v={...d,members_count:z[d.id]||0}),v}),b=h.reduce((d,v)=>d+(v.members_count||0),0);return [{...H,members_count:b},...h]},pe=s.length>1,j=useMemo(()=>{let r=[];if(!c&&s.length>0&&z){let h=s.filter(b=>b.dimensions.length>0).map(b=>{let d=false,v=ne(b.dimensions.map(i=>i.variants));return v&&v.length>2&&(d=true),{id:b.id,name:b.dimensions.map(i=>i.name).join(" / "),variants:v,members_count:v.filter(i=>i.id).reduce((i,A)=>i+(A.members_count||0),0),show:d}});r=[{...H,members_count:h.reduce((b,d)=>b+(d.members_count||0),0)},...h];}return r},[c,z,s,H]),Z=useMemo(()=>{let r;return j&&(p.profile?p.profile&&(r=j.find(h=>h.id===p.profile),r&&p.variant&&r.variants&&(r=r.variants.find(h=>h.id===p.variant))):r=j.find(h=>!h.id)),r?r.members_count:o},[p,j]),ye={metadata:s,loadingMetadata:c,setLoadingMetadata:f,loadingItems:u,setLoadingItems:x,resultCount:g,totalCount:y,setResultCount:le,activePage:l,setActivePage:e,pageSize:o,filters:p,setFilters:w,doQuery:W,query:I,setQuery:q,debouncedQuery:O,results:K,currentPageTotal:Z,selectorStructure:j,translations:te,setTranslations:r=>Q({...ce,...r}),showSelectors:pe,initExplore:re};return jsx(ve.Provider,{value:ye,children:t})}function Je({translations:t}){let{loadingItems:o,setFilters:a,selectorStructure:s,filters:m,showSelectors:u}=$(),x=e=>{let p=e===null||Number.isNaN(e)?void 0:parseInt(e,10);p!==m.profile?a({profile:p,variant:void 0}):p&&a({profile:void 0,variant:void 0});},c=e=>{let p=e===null?void 0:typeof e=="string"&&e.includes(",")?e:parseInt(e,10);p!==m.variant?a({...m,variant:p}):p&&a({...m,variant:void 0});},f=e=>e<1e3?e:format(t.count_format)(e).replace(/\.0+([a-zA-Z]*)$/,"$1"),g=s.length===2?s[1].id:m.profile,n=g?s.find(e=>e.id===g):void 0,y=n&&n.variants&&m.variant?n.variants.find(e=>e.id===m.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)+(!o&&(!n||e.id===n?.id)?` (${f(e.members_count)})`:"")})),[t,n,s]),l=useMemo(()=>n?.variants?.map(e=>({value:String(e.id||""),label:(t?.variantIcon?.[e.name]?`${t?.variantIcon?.[e.name]} `:"")+(t?.variant[e.name]||e.name)+(!o&&(!y||e.id===y?.id)?` (${f(e.members_count)})`:"")}))??[],[t,y,s]);return jsx(Fragment,{children:u&&jsxs(Fragment,{children:[jsx(Box,{className:"bespoke-explore-reports-select-container",mb:"md",sx:{display:"block","@media (min-width: 1000px)":{display:"none"}},children:jsxs(Group,{justify:"center",children:[jsx(Select,{className:"bespoke-explore-reports-select",data:R,value:String(n?.id||""),onChange:e=>x(e),label:t.select_report||"Select Report",placeholder:t.select_report||"Select Report",clearable:typeof n?.id<"u",style:{width:"450px"}}),n?.variants&&n.variants.length>2&&jsx(Select,{className:"bespoke-explore-variant-select",data:l,value:String(y?.id||""),onChange:e=>c(e),label:t.select_variant||"Select Variant",placeholder:t.select_variant||"Select Variant",clearable:typeof y?.id<"u",style:{width:"450px"}})]})}),jsx(Box,{sx:{display:"none","@media (min-width: 1000px)":{display:"block"}},children:jsxs("div",{children:[jsx(Group,{justify:"center",className:"bespoke-explore-reports-selector",mb:"md",children:s.map(e=>jsxs(Button,{"data-selected":e.id===n?.id?"true":"false","data-report-name":e.name,variant:e.id===n?.id?"outline":"subtle",onClick:()=>x(e.id),rightSection:e.id&&e.id===n?.id?jsx(IconX,{size:"1rem"}):void 0,leftSection:t?.dimensionIcon?.[e.name]??void 0,children:[jsx(Text,{span:true,className:"bespoke-explore-reports-name",dangerouslySetInnerHTML:{__html:t?.dimension[e.name]??e.name}}),!o&&(!n||e.id===n?.id)&&jsx(Text,{span:true,size:"xs",ml:"0.2rem",className:"bespoke-explore-reports-count",children:`(${f(e.members_count)})`})]},`p-${e.id}`))}),n&&n.variants&&n.variants.length>2&&jsx(Group,{justify:"center",style:{minHeight:"36px"},className:"bespoke-explore-variant-selector",mb:"md",children:n.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:()=>c(e.id),rightSection:e.id&&e.id===y?.id?jsx(IconX,{size:"1rem"}):void 0,leftSection:t?.variantIcon?.[e.name]?jsx(Text,{span:true,dangerouslySetInnerHTML:{__html:t.variantIcon[e.name]}}):void 0,children:[jsx(Text,{span:true,className:"bespoke-explore-variant-name",dangerouslySetInnerHTML:{__html:t?.variant[e.name]??e.name}}),!o&&(!y||e.id===y?.id)&&jsx(Text,{span:true,size:"xs",ml:"0.2rem",className:"bespoke-explore-variant-count",children:`(${f(e.members_count)})`})]},`v-${e.id}`))})]})})]})})}var ke=Je;var tt=createContext({});function ae(t){let o=useContext(tt);if(o==null)throw new Error("useBespokeStyles must be used within a BespokeStylesProvider");return o}var ot=()=>{let t=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",o=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[t];return o.includes(t)||o.push(t),{localeDefault:t,locales:o}},U=ot;function ct({reportId:t,reportName:o,members:a,href:s,onClick:m}){let u=a.map(c=>jsx(Image,{src:c.image.src,height:160,loading:"lazy",alt:c.name},c.id)),x=a.map(c=>jsxs(Stack,{children:[jsx(Text,{fw: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:true,children:[jsx(Card.Section,{children:jsx(Group,{grow:true,gap:0,children:u})}),jsx(Group,{justify:"space-between",mt:"md",mb:"xs",children:x}),jsx("a",{href:s,onClick:m,children:jsx(Button,{variant:"light",color:"blue",fullWidth:true,mt:"md",radius:"md",children:`See ${o} Report`})})]})}var mt=t=>{let{components:o}=ae(),a=ct;return o?.ReportTile&&(a=o?.ReportTile),t&&(a=t),a};function dt({profile:t,profilePrefix:o,onSelect:a,reportTile:s}){let m=useRouter(),u=m.locale,{localeDefault:x}=U(),f=`${u===x?"":`/${u}`}${o}${t.path}`,g=t.members.map(l=>({original_id:l.metadata.id,name:l.name,id:l.id,dimension_id:l.metadata.dimension.id,dimension:l.metadata.dimension.name,variant_id:l.metadata.variant.id,variant:l.metadata.variant.name,image:{src:`/api/cms/member/image?member=${l.id}&size=thumb`,alt:l.name}})),n=l=>{m.push(`${l}`),a&&a();},y=l=>{l.preventDefault(),n(f);},R=mt(s);return jsx(Grid.Col,{span:{base:12,sm:6,md:4,lg:4,xl:3},children:jsx(R,{reportId:t.report.id,reportName:t.report.name,members:g,href:f,onClick:y})},t.id)}var Me=dt;function ht({profilePrefix:t,onSelect:o=()=>{},reportTile:a}){let[s,m]=useState(500),u=useRef(null),{results:x}=$(),c=u.current?.offsetTop||0,f=50;return useEffect(()=>{let{innerHeight:g}=window;m(g-c-f);},[c]),jsx(ScrollArea,{offsetScrollbars:true,type:"always",h:s,ref:u,children:jsx(Grid,{align:"stretch",children:x.map(g=>jsx(Me,{profile:g,profilePrefix:t,reportTile:a,onSelect:o},g.id))})})}var Le=ht;function vt(){let{activePage:t,setActivePage:o,pageSize:a,currentPageTotal:s}=$();return jsx(Group,{justify:"center",children:jsx(Pagination,{value:t,onChange:u=>{o(u);},total:Math.ceil(s/a),size:"sm",py:"xs"})})}var Ne=vt;function Mt({profilePrefix:t,initialReportId:o,initialVariantId:a,translations:s,onSelect:m,reportTile:u,initialQuery:x}){let c=useRef(),f=$(),{query:g,setQuery:n,results:y,loadingItems:R,loadingMetadata:l,translations:e,setTranslations:p,initExplore:w}=f;useEffect(()=>{w&&w(o,a,x);},[w]),useEffect(()=>{R||c.current?.focus();},[R]),useEffect(()=>{s&&p(s);},[s]);let I=()=>{n("");};return jsxs(Container,{fluid:true,pt:"1em",children:[jsx(TextInput,{placeholder:e.search,mb:"md",size:"xl",onChange:q=>n(q.target.value),readOnly:l||R,leftSection:jsx(IconSearch,{size:24}),value:g,rightSectionWidth:100,rightSectionProps:{style:{justifyContent:"flex-end",padding:"0 15px 0 0"}},rightSection:jsxs(Group,{align:"center",children:[(l||R)&&jsx(Loader,{size:28}),g&&g!==""&&jsx(ActionIcon,{variant:"transparent",onClick:I,children:jsx(IconTrash,{size:24})})]}),ref:c}),jsx(ke,{translations:e}),jsx(LoadingOverlay,{visible:l||R}),!R&&y.length===0&&jsx(Alert,{title:e.no_results,color:"blue",children:e.try_another}),jsx(Le,{profilePrefix:t,onSelect:m,reportTile:u}),jsx(Ne,{})]})}var fe=Mt;var{localeDefault:Ft}=U();function Gt({exploreProps:t={profilePrefix:"/",locale:Ft},icon:o=jsx(IconSearch,{size:20}),actionIconProps:a={},modalProps:s={},tooltipProps:m={},tooltipText:u="Click to Explore",showIcon:x=true,showTooltip:c=false,children:f}){let[g,n]=useState(false),y={variant:"light",size:"md",radius:"md",...a},R={fullScreen:true,opened:g,onClose:()=>n(false)},l=jsx(ActionIcon,{...y,onClick:()=>n(true),children:o}),e=x?jsxs(Group,{gap:"sm",style:{cursor:"pointer"},children:[f,l]}):f;return c&&(e=jsx(Tooltip,{label:u,...m,children:e})),jsxs(Fragment,{children:[jsx(Modal,{...R,...s,children:g&&jsx(fe,{...t,onSelect:()=>n(false)})}),jsx("div",{onClick:()=>n(true),children:f?e:jsx(Fragment,{children:l})})]})}var Dt=Gt;var Ut=forwardRef(({id:t,members:o=[],...a},s)=>{let m=o.map(u=>jsxs(Stack,{align:"center",children:[jsx(Text,{fw:500,children:u.name}),jsx(Badge,{color:"green",variant:"light",children:u.variant})]},u.id));return jsx("div",{ref:s,style:{width:"100%"},children:jsx(Group,{justify:"space-between",grow:true,children:m})},t)}),Fe=Ut;var no=t=>{let{components:o}=ae(),a=Fe;return o?.ReportItem&&(a=o?.ReportItem),a};function ao({locale:t,profilePrefix:o="/report",autocompleteProps:a={},tooltipProps:s={},tooltipText:m="Click to search",searchReportParams:u={},callback:x,children:c}){let f=useRouter(),g=f.locale,{localeDefault:n}=U(),y=g===n?"":`/${g}`,R=no(),[l,e]=useState(""),[p,w]=useDebouncedValue(l,500),[I,q]=useState([]),[O,K]=useState(false),[ee,te]=useState(false),[Q,F]=useState(false),[N,V]=useState(!c),oe=()=>{V(false);},le=()=>{V(true),H();},re=useRef(),W=useClickOutside(oe),z=a?.searchConfig?.searchLimit??10,H=()=>{K(true);let S={query:p,format:"profiles",locale:t,limit:z,visible:true,includes:true,noImage:false,variant:[],dimension:[],report:[],all:false,...u};Se.get("/api/cms/search/reports",{params:S}).then(T=>{T&&T.data&&T.data.data&&T.data.data.results&&q(T.data.data.results.map(E=>{let xe=E.report?.name??E.name??`${E.id}`;return {id:E.id,reportName:xe,label:xe,href:`${y}${o}${E.path}`,reportPath:`${E.path}`,profilePrefix:o,value:E.id,members:(E.members||[]).map(G=>({original_id:String(G?.metadata?.id??G.id),name:G?.name??"",id:G.id??0,variant:G?.metadata?.variant?.name??"",image:{src:`/api/cms/member/image?member=${G.id}&size=thumb`,alt:G?.name??""}}))}})),K(false),re.current?.focus();}).catch(T=>{console.error(T),K(false);});};useEffect(()=>{Q&&p.length>=(a.searchConfig?.queryThreshold??0)&&H();},[Q,p,a.searchConfig?.queryThreshold]),useEffect(()=>{w(),N&&F(true);},[]),useEffect(()=>{w(),N&&F(true);},[N]);let ne=S=>{V(false),x?x(S):(f.push(S.href),te(true));},pe=S=>{e(S);},{searchConfig:j,renderOption:Z,data:ye,...r}=a??{},h=useMemo(()=>I.map(S=>({value:S.value,label:S.reportName})),[I]),b=useMemo(()=>Object.fromEntries(I.map(S=>[S.value,S])),[I]),d=useMemo(()=>Z||R,[Z,R]),v=useMemo(()=>({placeholder:"Search",size:"md",leftSection:jsx(IconSearch,{}),value:l,onChange:pe,disabled:(O||ee)&&!Q,limit:z,maxDropdownHeight:250,filter:S=>S.options,rightSection:jsx(Group,{gap:0,justify:"right",children:O?jsx(Loader,{size:20}):jsx(Fragment,{})}),renderOption:S=>{let T=S.option,E=b[T.value];return E?jsx(d,{...E}):T.label},onOptionSubmit:S=>{let T=b[S];T&&ne(T);},comboboxProps:{withinPortal:false},...r,data:h}),[l,O,ee,Q,z,h,b,Z,ne,r]),i=jsx(Autocomplete,{ref:re,...v});return c?jsx(Tooltip,{label:m,disabled:N,...s,children:jsxs(Group,{ref:W,gap:"sm",align:"center",style:{cursor:"pointer"},children:[!N&&jsx("div",{onClick:()=>V(true),children:c}),N&&jsx(Fragment,{children:i}),N?jsx(ActionIcon,{variant:"light",onClick:oe,children:jsx(IconX,{size:20})}):jsx(ActionIcon,{variant:"light",onClick:le,children:jsx(IconSearch,{size:20})})]})}):i}var io=ao;export{fe as BespokeExplore,Dt as BespokeExploreModal,Ke as BespokeExploreProvider,io as BespokeSearch,$ as useBespokeExplore};
1
+ import {Stack,Text,Badge,Group,Container,TextInput,Loader,ActionIcon,LoadingOverlay,Alert,Tooltip,Modal,Autocomplete,Box,Select,Button,ScrollArea,Grid,Pagination,Image,Card}from'@mantine/core';import {createContext,forwardRef,useContext,useState,useCallback,useEffect,useMemo,useRef}from'react';import {IconTrash,IconSearch,IconX}from'@tabler/icons-react';import {useDebouncedValue,useClickOutside}from'@mantine/hooks';import {useRouter}from'next/router';import Se from'axios';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {format}from'd3-format';var pe={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:{}},ve=createContext({metadata:[],loadingItems:false,setLoadingItems:()=>null,loadingMetadata:false,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:pe,setTranslations:()=>null,showSelectors:true}),z=()=>useContext(ve);function Ke({children:t,pageSize:o=10,sort:n=void 0}){let d={profile:void 0,variant:void 0},[s,u]=useState([]),[R,l]=useState(false),[x,f]=useState(false),[a,g]=useState({}),[S,p]=useState({}),[e,P]=useState(1),[y,w]=useState(d),[$,V]=useState(""),[F]=useDebouncedValue($,750),[Z,ae]=useState([]),[G,J]=useState(pe),[I,H]=useState(false),{locale:Y}=useRouter(),ie=async()=>{try{f(!0),Se.get("/api/cms/read/metadata").then(r=>{if(r&&r.data&&r.data.data&&r.data.data.data){let h=r.data.data.data.reduce((v,m)=>(m.dimensions&&m.dimensions.forEach(b=>{b.variants&&b.variants.forEach(i=>{v[i.id]=i.members_count||0;});}),v),{});u(r.data.data.data),g(h),p(h);}f(!1),H(!0);}).catch(r=>{console.error(r);});}catch(r){console.error("Error fetching metadata:",r),u([]),f(false),g({}),p({});}},ee=r=>{g(r||S);},se=useCallback(async(r,h,v)=>{!I&&s.length===0&&await ie(),w({profile:r,variant:h}),v!==""&&V(v);},[]);useEffect(()=>{let r=false;return I&&(l(true),P(1),D(r,0)),()=>{r=false;}},[F,y,I]),useEffect(()=>{if(I){l(true);let r=(e-1)*o;D(false,r);}},[e]);let D=async(r,h)=>{let v=y.profile&&!Number.isNaN(y.profile)?[y.profile]:[],m=y.variant?typeof y.variant=="string"&&y.variant.includes(",")?y.variant.split(",").map(i=>parseInt(i,10)):[parseInt(y.variant,10)]:[],b={query:F,format:"profiles",locale:Y,limit:o,offset:h,visible:true,includes:true,noImage:false,variant:m,dimension:[],report:v,all:false,origin:"typesense"};n&&(b.sort=n),Se.get("/api/cms/search/reports",{params:b}).then(i=>{if(i&&i.data&&i.data.data&&i.data.data.results&&!r){let c=i.data.data.results;ae(c),g(!$||$===""?false:i.data.data.meta.variantCount);}l(false);}).catch(i=>{console.error(i),l(false);});},O=a||S,j={id:void 0,name:G.filters_all||"ALL"},le=r=>{let h=r.reduce((m,b)=>m.reduce((i,c)=>i.concat(b.map(T=>[].concat(c,T))),[])).map(m=>{let b;return Array.isArray(m)?b={id:m.map(i=>i.id).join(","),name:m.map(i=>i.name).join(" / "),members_count:m.reduce((i,c)=>i*(O[c.id]||1),1),ordering:m.reduce((i,c)=>i+c.ordering,0)}:(m.members_count=O[m.id]||0,b={...m,members_count:O[m.id]||0}),b}),v=h.reduce((m,b)=>m+(b.members_count||0),0);return [{...j,members_count:v},...h]},ge=s.length>1,N=useMemo(()=>{let r=[];if(!x&&s.length>0&&O){let h=s.filter(v=>v.dimensions.length>0).map(v=>{let m=false,b=le(v.dimensions.map(i=>i.variants));return b&&b.length>2&&(m=true),{id:v.id,name:v.dimensions.map(i=>i.name).join(" / "),variants:b,members_count:b.filter(i=>i.id).reduce((i,c)=>i+(c.members_count||0),0),show:m}});r=[{...j,members_count:h.reduce((v,m)=>v+(m.members_count||0),0)},...h];}return r},[x,O,s,j]),ye=useMemo(()=>{let r;return N&&(y.profile?y.profile&&(r=N.find(h=>h.id===y.profile),r&&y.variant&&r.variants&&(r=r.variants.find(h=>h.id===y.variant))):r=N.find(h=>!h.id)),r?r.members_count:o},[y,N]),te={metadata:s,loadingMetadata:x,setLoadingMetadata:f,loadingItems:R,setLoadingItems:l,resultCount:a,totalCount:S,setResultCount:ee,activePage:e,setActivePage:P,pageSize:o,filters:y,setFilters:w,doQuery:D,query:$,setQuery:V,debouncedQuery:F,results:Z,currentPageTotal:ye,selectorStructure:N,translations:G,setTranslations:r=>J({...pe,...r}),showSelectors:ge,initExplore:se};return jsx(ve.Provider,{value:te,children:t})}function Je({translations:t}){let{loadingItems:o,setFilters:n,selectorStructure:d,filters:s,showSelectors:u}=z(),R=e=>{let P=e===null||Number.isNaN(e)?void 0:parseInt(e,10);P!==s.profile?n({profile:P,variant:void 0}):P&&n({profile:void 0,variant:void 0});},l=e=>{let P=e===null?void 0:typeof e=="string"&&e.includes(",")?e:parseInt(e,10);P!==s.variant?n({...s,variant:P}):P&&n({...s,variant:void 0});},x=e=>e<1e3?e:format(t.count_format)(e).replace(/\.0+([a-zA-Z]*)$/,"$1"),f=d.length===2?d[1].id:s.profile,a=f?d.find(e=>e.id===f):void 0,g=a&&a.variants&&s.variant?a.variants.find(e=>e.id===s.variant):void 0,S=useMemo(()=>d.map(e=>({value:String(e.id||""),label:(t?.dimensionIcon?.[e.name]?`${t?.dimensionIcon?.[e.name]} `:"")+(t?.dimension[e.name]||e.name)+(!o&&(!a||e.id===a?.id)?` (${x(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)+(!o&&(!g||e.id===g?.id)?` (${x(e.members_count)})`:"")}))??[],[t,g,d]);return jsx(Fragment,{children:u&&jsxs(Fragment,{children:[jsx(Box,{className:"bespoke-explore-reports-select-container",mb:"md",sx:{display:"block","@media (min-width: 1000px)":{display:"none"}},children:jsxs(Group,{justify:"center",children:[jsx(Select,{className:"bespoke-explore-reports-select",data:S,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(g?.id||""),onChange:e=>l(e),label:t.select_variant||"Select Variant",placeholder:t.select_variant||"Select Variant",clearable:typeof g?.id<"u",style:{width:"450px"}})]})}),jsx(Box,{sx:{display:"none","@media (min-width: 1000px)":{display:"block"}},children:jsxs("div",{children:[jsx(Group,{justify:"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),rightSection:e.id&&e.id===a?.id?jsx(IconX,{size:"1rem"}):void 0,leftSection:t?.dimensionIcon?.[e.name]??void 0,children:[jsx(Text,{span:true,className:"bespoke-explore-reports-name",dangerouslySetInnerHTML:{__html:t?.dimension[e.name]??e.name}}),!o&&(!a||e.id===a?.id)&&jsx(Text,{span:true,size:"xs",ml:"0.2rem",className:"bespoke-explore-reports-count",children:`(${x(e.members_count)})`})]},`p-${e.id}`))}),a&&a.variants&&a.variants.length>2&&jsx(Group,{justify:"center",style:{minHeight:"36px"},className:"bespoke-explore-variant-selector",mb:"md",children:a.variants.map(e=>jsxs(Button,{"data-selected":e.id===g?.id?"true":"false","data-variant-name":e.name,variant:e.id===g?.id?"outline":"subtle",onClick:()=>l(e.id),rightSection:e.id&&e.id===g?.id?jsx(IconX,{size:"1rem"}):void 0,leftSection:t?.variantIcon?.[e.name]?jsx(Text,{span:true,dangerouslySetInnerHTML:{__html:t.variantIcon[e.name]}}):void 0,children:[jsx(Text,{span:true,className:"bespoke-explore-variant-name",dangerouslySetInnerHTML:{__html:t?.variant[e.name]??e.name}}),!o&&(!g||e.id===g?.id)&&jsx(Text,{span:true,size:"xs",ml:"0.2rem",className:"bespoke-explore-variant-count",children:`(${x(e.members_count)})`})]},`v-${e.id}`))})]})})]})})}var ke=Je;var tt=createContext({});function oe(t){let o=useContext(tt);if(o==null)throw new Error("useBespokeStyles must be used within a BespokeStylesProvider");return o}var ot=()=>{let t=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",o=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[t];return o.includes(t)||o.push(t),{localeDefault:t,locales:o}},U=ot;function ct({reportId:t,reportName:o,members:n,href:d,onClick:s}){let u=n.map(l=>jsx(Image,{src:l.image.src,height:160,loading:"lazy",alt:l.name},l.id)),R=n.map(l=>jsxs(Stack,{children:[jsx(Text,{fw:500,children:l.name}),jsx(Badge,{color:"green",variant:"light",w:"fit-content",children:l.variant})]},l.id));return jsxs(Card,{className:`report-${t}-tile`,shadow:"sm",p:"lg",radius:"md",withBorder:true,children:[jsx(Card.Section,{children:jsx(Group,{grow:true,gap:0,children:u})}),jsx(Group,{justify:"space-between",mt:"md",mb:"xs",children:R}),jsx("a",{href:d,onClick:s,children:jsx(Button,{variant:"light",color:"blue",fullWidth:true,mt:"md",radius:"md",children:`See ${o} Report`})})]})}var dt=t=>{let{components:o}=oe(),n=ct;return o?.ReportTile&&(n=o?.ReportTile),t&&(n=t),n};function mt({profile:t,profilePrefix:o,onSelect:n,reportTile:d}){let s=useRouter(),u=s.locale,{localeDefault:R}=U(),x=`${u===R?"":`/${u}`}${o}${t.path}`,f=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}`),n&&n();},g=p=>{p.preventDefault(),a(x);},S=dt(d);return jsx(Grid.Col,{span:{base:12,sm:6,md:4,lg:4,xl:3},children:jsx(S,{reportId:t.report.id,reportName:t.report.name,members:f,href:x,onClick:g})},t.id)}var Me=mt;function ht({profilePrefix:t,onSelect:o=()=>{},reportTile:n}){let[d,s]=useState(500),u=useRef(null),{results:R}=z(),l=u.current?.offsetTop||0,x=50;return useEffect(()=>{let{innerHeight:f}=window;s(f-l-x);},[l]),jsx(ScrollArea,{offsetScrollbars:true,type:"always",h:d,ref:u,children:jsx(Grid,{align:"stretch",children:R.map(f=>jsx(Me,{profile:f,profilePrefix:t,reportTile:n,onSelect:o},f.id))})})}var Le=ht;function vt(){let{activePage:t,setActivePage:o,pageSize:n,currentPageTotal:d}=z();return jsx(Group,{justify:"center",children:jsx(Pagination,{value:t,onChange:u=>{o(u);},total:Math.ceil(d/n),size:"sm",py:"xs"})})}var Ne=vt;function Mt({profilePrefix:t,initialReportId:o,initialVariantId:n,translations:d,onSelect:s,reportTile:u,initialQuery:R}){let l=useRef(),x=z(),{query:f,setQuery:a,results:g,loadingItems:S,loadingMetadata:p,translations:e,setTranslations:P,initExplore:y}=x;useEffect(()=>{y&&y(o,n,R);},[y]),useEffect(()=>{S||l.current?.focus();},[S]),useEffect(()=>{d&&P(d);},[d]);let w=()=>{a("");};return jsxs(Container,{fluid:true,pt:"1em",children:[jsx(TextInput,{placeholder:e.search,mb:"md",size:"xl",onChange:$=>a($.target.value),readOnly:p||S,leftSection:jsx(IconSearch,{size:24}),value:f,rightSectionWidth:100,rightSectionProps:{style:{justifyContent:"flex-end",padding:"0 15px 0 0"}},rightSection:jsxs(Group,{align:"center",children:[(p||S)&&jsx(Loader,{size:28}),f&&f!==""&&jsx(ActionIcon,{variant:"transparent",onClick:w,children:jsx(IconTrash,{size:24})})]}),ref:l}),jsx(ke,{translations:e}),jsx(LoadingOverlay,{visible:p||S}),!S&&g.length===0&&jsx(Alert,{title:e.no_results,color:"blue",children:e.try_another}),jsx(Le,{profilePrefix:t,onSelect:s,reportTile:u}),jsx(Ne,{})]})}var ue=Mt;var{localeDefault:Ft}=U();function Gt({exploreProps:t={profilePrefix:"/",locale:Ft},icon:o=jsx(IconSearch,{size:20}),actionIconProps:n={},modalProps:d={},tooltipProps:s={},tooltipText:u="Click to Explore",showIcon:R=true,showTooltip:l=false,children:x}){let[f,a]=useState(false),g={variant:"light",size:"md",radius:"md",...n},S={fullScreen:true,opened:f,onClose:()=>a(false)},p=jsx(ActionIcon,{...g,onClick:()=>a(true),children:o}),e=R?jsxs(Group,{gap:"sm",style:{cursor:"pointer"},children:[x,p]}):x;return l&&(e=jsx(Tooltip,{label:u,...s,children:e})),jsxs(Fragment,{children:[jsx(Modal,{...S,...d,children:f&&jsx(ue,{...t,onSelect:()=>a(false)})}),jsx("div",{onClick:()=>a(true),children:x?e:jsx(Fragment,{children:p})})]})}var Dt=Gt;var Ut=forwardRef(({id:t,members:o=[],...n},d)=>{let s=o.map(u=>jsxs(Stack,{align:"center",children:[jsx(Text,{fw:500,children:u.name}),jsx(Badge,{color:"green",variant:"light",children:u.variant})]},u.id));return jsx("div",{ref:d,style:{width:"100%"},children:jsx(Group,{justify:"space-between",grow:true,children:s})},t)}),Fe=Ut;var no=t=>{let{components:o}=oe(),n=Fe;return o?.ReportItem&&(n=o?.ReportItem),n};function ao({locale:t,profilePrefix:o="/report",autocompleteProps:n={},tooltipProps:d={},tooltipText:s="Click to search",searchReportParams:u={},callback:R,children:l}){let x=useRouter(),f=x.locale,{localeDefault:a}=U(),g=f===a?"":`/${f}`,S=no(),[p,e]=useState(""),[P,y]=useDebouncedValue(p,500),[w,$]=useState([]),[V,F]=useState(false),[Z,ae]=useState(false),[G,J]=useState(false),[I,H]=useState(!l),Y=()=>{H(false);},ie=()=>{H(true),O();},ee=useRef(),se=useClickOutside(Y),D=n?.searchConfig?.searchLimit??10,O=()=>{F(true);let c={query:P,format:"profiles",locale:t,limit:D,visible:true,includes:true,noImage:false,variant:[],dimension:[],report:[],all:false,...u};Se.get("/api/cms/search/reports",{params:c}).then(T=>{T&&T.data&&T.data.data&&T.data.data.results&&$(T.data.data.results.map(k=>{let xe=k.report?.name??k.name??`${k.id}`;return {id:k.id,reportName:xe,label:xe,href:`${g}${o}${k.path}`,reportPath:`${k.path}`,profilePrefix:o,value:k.id,members:(k.members||[]).map(q=>({original_id:String(q?.metadata?.id??q.id),name:q?.name??"",id:q.id??0,variant:q?.metadata?.variant?.name??"",image:{src:`/api/cms/member/image?member=${q.id}&size=thumb`,alt:q?.name??""}}))}})),F(false),ee.current?.focus();}).catch(T=>{console.error(T),F(false);});};useEffect(()=>{G&&P.length>=(n.searchConfig?.queryThreshold??0)&&O();},[G,P,n.searchConfig?.queryThreshold]),useEffect(()=>{y(),I&&J(true);},[]),useEffect(()=>{y(),I&&J(true);},[I]);let j=c=>{H(false),R?R(c):(x.push(c.href),ae(true));},le=c=>{e(c);},{searchConfig:ge,renderOption:N,data:ye,...te}=n??{},r=useMemo(()=>w.map(c=>({value:c.value,label:c.reportName})),[w]),h=useMemo(()=>Object.fromEntries(w.map(c=>[c.value,c])),[w]),v=useMemo(()=>N||S,[N,S]),m=useMemo(()=>({placeholder:"Search",size:"md",leftSection:jsx(IconSearch,{}),value:p,onChange:le,disabled:(V||Z)&&!G,limit:D,maxDropdownHeight:250,filter:c=>c.options,rightSection:jsx(Group,{gap:0,justify:"right",children:V?jsx(Loader,{size:20}):jsx(Fragment,{})}),renderOption:c=>{let T=c.option,k=h[T.value];return k?jsx(v,{...k}):T.label},onOptionSubmit:c=>{let T=h[c];T&&j(T);},comboboxProps:{withinPortal:false},...te,data:r}),[p,V,Z,G,D,r,h,N,j,te]),b=jsx(Autocomplete,{ref:ee,...m});return l?jsx(Tooltip,{label:s,disabled:I,...d,children:jsxs(Group,{ref:se,gap:"sm",align:"center",style:{cursor:"pointer"},children:[!I&&jsx("div",{onClick:()=>H(true),children:l}),I&&jsx(Fragment,{children:b}),I?jsx(ActionIcon,{variant:"light",onClick:Y,children:jsx(IconX,{size:20})}):jsx(ActionIcon,{variant:"light",onClick:ie,children:jsx(IconSearch,{size:20})})]})}):b}var io=ao;export{ue as BespokeExplore,Dt as BespokeExploreModal,Ke as BespokeExploreProvider,io as BespokeSearch,z as useBespokeExplore};
@@ -1,5 +1,5 @@
1
- import {createSlice,configureStore}from'@reduxjs/toolkit';import {HYDRATE,createWrapper}from'next-redux-wrapper';import Ye from'axios';import {schema,normalize}from'normalizr';import {merge,closest,assign,isObject}from'd3plus-common';import*as Br from'd3-array';import*as Ir from'd3-collection';import*as Or from'd3-format';import*as vr from'd3-time-format';import {formatAbbreviate}from'd3plus-format';import {date}from'd3plus-axis';import {titleCase,strip}from'd3plus-text';import Vr from'jsonwebtoken';import Vt from'axios-retry';import yo from'yn';import {format}from'pretty-format';import Oo from'toposort';import {csvParse}from'd3-dsv';import _o from'next/config';import {getSession}from'next-auth/react';import {notifications}from'@mantine/notifications';import {produce}from'immer';import {createContext}from'react';import {useDispatch,useSelector,Provider}from'react-redux';import {jsx}from'react/jsx-runtime';import'@mantine/core';var br=Object.defineProperty;var Ar=(e,t)=>{for(var r in t)br(e,r,{get:t[r],enumerable:true});};function X(e,t){return e.request(t).then(r=>{let{status:o,data:n}=r;return "error"in n?{ok:false,status:o,error:n.error}:{ok:true,status:o,wrapper:n.wrapper,data:n.data}},r=>{if("isAxiosError"in r){let{status:o,data:n}=r.response||{status:500};return {ok:false,status:o,error:n?.error??r.message}}return {ok:false,status:500,error:r.message}})}function F(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>X(e,{...o,method:"GET",params:r?r(n):n})}function V(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>X(e,{...o,method:"POST",data:n})}function oe(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>X(e,{...o,method:"DELETE",params:r?r(n):n})}function he(e,t){return r=>X(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function ke(e,t){return r=>X(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function yt(e,t){return ()=>X(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function Rt(e,t){return r=>X(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var le=e=>({id:e}),Cr=e=>{if(e.mode==="slugs"){let t=e.slugs.map(r=>[r.variantSlug,r.memberSlug].join("/")).join(",");return {...e,slugs:t}}return ["related","whole"].includes(e.mode)?{...e}:{...e,[e.mode]:e[e.mode].join(",")}};function Le(e){let t=Ye.create({baseURL:e});return {createBulkBlock:V(t,"create/bulk/block"),createBlock:V(t,"create/block"),createDimension:V(t,"create/dimension"),createFormatter:V(t,"create/formatter"),createReport:V(t,"create/report"),createSection:V(t,"create/section"),createVariant:V(t,"create/variant"),createDatasource:V(t,"create/datasource"),deleteBlock:oe(t,"delete/block",le),deleteDimension:oe(t,"delete/dimension",le),deleteFormatter:oe(t,"delete/formatter",le),deleteReport:oe(t,"delete/report",le),deleteSection:oe(t,"delete/section",le),deleteVariant:oe(t,"delete/variant",le),deleteDatasource:oe(t,"delete/datasource",le),readBlock:F(t,"read/block"),readDimension:F(t,"read/dimension"),readFormatter:F(t,"read/formatter"),readReport:F(t,"read/report"),readSection:F(t,"read/section"),readVariant:F(t,"read/variant"),readDatasource:F(t,"read/datasource"),updateBulkBlock:V(t,"update/bulk/block"),updateBlock:V(t,"update/block"),updateDimension:V(t,"update/dimension"),updateFormatter:V(t,"update/formatter"),updateReport:V(t,"update/report"),updateSection:V(t,"update/section"),updateVariant:V(t,"update/variant"),updateDatasource:V(t,"update/datasource"),searchReport:F(t,"search/reports"),validateVariantSlug:F(t,"validate/variant"),readMember:F(t,"read/members",Cr),readMemberImage:F(t,{url:"member/image",responseType:"blob"}),searchMember:F(t,"search/members"),updateMember:F(t,"update/members"),imageLocalSearch:ke(t,"local"),imageLocalSave:he(t,"local"),imageFlickrSearch:ke(t,"flickr"),imageFlickrSave:he(t,"flickr"),imageUnsplashSearch:ke(t,"unsplash"),imageUnsplashSave:he(t,"unsplash"),imageUploadSave:he(t,"upload"),imageAdobeSearch:ke(t,"adobe"),imageAdobeSave:he(t,"adobe"),readMetadata:F(t,"read/metadata"),regenerateSearch:V(t,"search/regenerate"),urlProxy:F(t,"url/proxy"),searchRole:F(t,"auth/search/roles"),searchUser:F(t,"auth/search/users"),readUser:F(t,"auth/read/user"),updateUser:V(t,"auth/update/user"),updateMyData:V(t,"auth/update/me"),revalidateReport:F(t,"revalidate/report"),revalidateUrl:F(t,"revalidate/url"),readPrivateBlocks:V(t,"read/blocks/private"),listTablerIcons:yt(t,"tabler"),readTablerIcon:Rt(t,"tabler"),readEnvSecrets:F(t,"read/secrets")}}function xr(e,t){return +(e<t)-+(e>t)}function we(e,t,r="ordering"){return xr(t[r],e[r])}function Je(e){let t=1+76.18009173/e-86.50532033/(e+1)+24.01409822/(e+2)-1.231739516/(e+3)+.00120858003/(e+4)-536382e-11/(e+5);return (e-.5)*Math.log(e+4.5)-(e+4.5)+Math.log(t*2.50662827465)}function Et(e,t,r){let o=0,n=1,a=1,s=1,i=0,c=0,l;for(;Math.abs((a-c)/a)>1e-5;)c=a,l=-(t+i)*(t+r+i)*e/(t+2*i)/(t+2*i+1),o=a+l*o,n=s+l*n,i+=1,l=i*(r-i)*e/(t+2*i-1)/(t+2*i),a=o+l*a,s=n+l*s,o/=s,n/=s,a/=s,s=1;return a/t}function kr(e,t,r){let o,n;if(e<0)n=0;else if(e>=t)n=1;else {e=Math.floor(e);let a=r,s=e+1,i=t-e,c=s+i,l=Math.exp(Je(c)-Je(i)-Je(s)+s*Math.log(a)+i*Math.log(1-a));a<(s+1)/(c+2)?o=l*Et(a,s,i):o=1-l*Et(1-a,i,s),n=1-o;}return Math.round(n*1e5)/1e5}function Lr(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function _e(e,t,r,o){let n=t/(1-t),a=0,s=1,i=0,c=0;for(;a<=e;)c+=s,a>=r&a<=o&&(i+=s),c>1e30&&(i/=1e30,c/=1e30,s/=1e30),a+=1,s=s*n*(e+1-a)/a;return i/c}function _r(e,t,r){let o=e/t,a=(100-r*100)/2,s,i;if(e===0)s=0;else {let c=o/2,l=0,m=o,u=a/100;for(;m-l>1e-5;)_e(t,c,e,e)*.5+_e(t,c,e+1,t)>u?(m=c,c=(l+c)/2):(l=c,c=(m+c)/2);s=c;}if(e===t)i=0;else {let c=(1+o)/2,l=o,m=1,u=a/100;for(;m-l>1e-5;)_e(t,c,e,e)*.5+_e(t,c,0,e-1)<u?(m=c,c=(l+c)/2):(l=c,c=(m+c)/2);i=c;}return {lci:s,uci:i}}function Pr(e,t){let r=e,o=t,n=r,a=o,s=95,i=.5,c=.5,m=(100-s)/2/100,u=n;for(;c>1e-5;)c/=2,Ue((1+u)*i/(1-i),u+1,1e10)+.5*Ue((1+u)*i/(1-i),u,u)>m?i-=c:i+=c;let f=(1+u)*i/(1-i)/a;for(i=.5,c=.5,m=(100-s)/2/100;c>1e-5;)c/=2,Ue((1+u)*i/(1-i),0,u-1)+.5*Ue((1+u)*i/(1-i),u,u)<m?i-=c:i+=c;let A=(1+u)*i/(1-i)/a;return {lci:f,uci:A}}function Ue(e,t,r){let o=1,n=0,a=0,s=0;for(;s<e||o>n*1e-10;)n+=o,s>=t&s<=r&&(a+=o),n>1e30&&(a/=1e30,n/=1e30,o/=1e30),s+=1,o=o*e/s;return a/n}var gt={binomialCdf:kr,binP:_e,computeMidP:_r,criticalValue:Lr,smr:Pr};var Ce={d3:{...Br,...Ir,...Or,...vr},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:gt};var St={jwt:Vr};var bt=(e,t={})=>{let r={libs:St,...t};function o(a){return Function("globals",...a.vars,`with (globals) { ${a.logic} }`).bind(r,r)}function n(a){if(a.vars&&a.logic)return o(a);for(let s in a)Array.isArray(a[s])?a[s]=a[s].map(i=>isObject(i)?n(i):i):isObject(a[s])&&(a[s]=n(a[s]));return a}return n(e)};var $r=()=>{let e=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",t=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[e];return t.includes(e)||t.push(e),{localeDefault:e,locales:t}},Z=$r;Z();var Pe=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});Pe.define({consumers:[Pe],inputs:[Pe]});var At=new schema.Entity("variant"),ht=new schema.Entity("dimension",{variants:[At]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),Ct=new schema.Entity("section",{blocks:[Pe]}),Gr=new schema.Entity("report",{dimensions:[ht],sections:[Ct]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(we):[]}}}),Hr=new schema.Entity("formatter"),Kr=new schema.Entity("datasource"),jr={report:Gr,section:Ct,block:Pe,dimension:ht,variant:At,formatter:Hr,datasource:Kr};function De(e,t){let r=jr[e];if(!r)throw new Error(`Invalid entity type: ${e}`);let{entities:o}=normalize(t,[r]);return {report:ue(o,"report"),dimension:ue(o,"dimension"),section:ue(o,"section"),block:ue(o,"block"),variant:ue(o,"variant"),formatter:ue(o,"formatter"),datasource:ue(o,"datasource")}}function ue(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:{}}var xt=(e,t=void 0)=>{let{sid:r,bid:o,previews:n=[],query:a={}}=t||{},s,i,c={};return r?(s=r,c.activeSection=s):s=e.activeSection,n.length>0?(i=n,c.previews=i.filter(Boolean)):i=e.previews,{parsedParams:{sid:s,bid:o,previews:i,query:a},statusPayload:c}};var Qr={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}}},re=createSlice({name:"records",initialState:Qr,reducers:{set:(e,t)=>{let r=t.payload;return {entities:Be(e.entities,r.entities||{}),requests:Be(e.requests,r.requests||{}),reports:r.reports||e.reports,tree:r.tree||e.tree}},setRequest:(e,t)=>{let r=t.payload;e.requests[r.type][r.key]=r;},setCreateRequest(e,t){let r=t.payload;if(e.requests[r.type][r.key]=r,r.status==="SUCCESS"){let o=Array.isArray(r.data)?r.data:[r.data],n=De(r.type,o),a=Be(e.entities,n);if(e.entities=a,r.type==="report"){let s=r.data;e.reports?e.reports.indexOf(s.id)===-1&&(e.reports=[...e.reports,s.id]):e.reports=[s.id];}else if(r.type==="dimension"){let s=r.data;e.entities.report[s.report_id].dimensions.push(s.id),e.entities.report[s.report_id].dimensions=Fe(a.report[s.report_id].dimensions,a.dimension);}else if(r.type==="variant"){let s=r.data;e.entities.dimension[s.dimension_id].variants.push(s.id);}else if(r.type==="section"&&!Array.isArray(r.data)){let s=r.data;e.entities.report[s.report_id].sections.push(s.id),e.entities.report[s.report_id].sections=Fe(a.report[s.report_id].sections,a.section);}else if(r.type==="block")if(Array.isArray(r.data)){let s=r.data,i=s[0],c=s.map(l=>l.id);e.entities.section[i.section_id].blocks.concat(c);}else {let s=r.data;e.entities.section[s.section_id].blocks.push(s.id);}}},setReadRequest(e,t){let r=t.payload;if(r.type!=="report"&&(e.requests[r.type][r.key]=r),r.status==="SUCCESS"){let o=De(r.type,r.data),n=Be(e.entities,o);e.entities=n;}},setUpdateRequest(e,t){let r=t.payload;if(e.requests[r.type][r.key]=r,r.status==="SUCCESS"){let o=Array.isArray(r.data)?r.data:[r.data],n=De(r.type,o),a,s,i;if(r.type==="block"&&!Array.isArray(r.data)){let l=e.entities.block[r.data.id].inputs,m=n.block[r.data.id].inputs;a=l.length!==m.length,a&&(i=l.length>m.length,s=i?l.filter(u=>!m.includes(u))[0]:m.filter(u=>!l.includes(u))[0]),Object.values(n.block).forEach(u=>{u.block_input&&delete n.block[u.id];});}let c=Be(e.entities,n);if(e.entities=c,r.type==="dimension"){let l=r.data;e.entities.report[l.report_id].dimensions=Fe(c.report[l.report_id].dimensions,c.dimension);}else if(r.type==="section"&&!Array.isArray(r.data)){let l=r.data;e.entities.report[l.report_id].sections=Fe(c.report[l.report_id].sections,c.section);}else if(r.type==="block"&&!Array.isArray(r.data)){let l=r.data;a&&(i?e.entities.block[s].consumers=e.entities.block[s].consumers.filter(m=>m!==l.id):e.entities.block[s].consumers.push(l.id));}}},setDeleteRequest(e,t){let r=t.payload;if(e.requests[r.type][r.key]=r,r.status==="SUCCESS"){let{id:o,parentId:n,parentType:a}=r.data;if(delete e.entities[r.type][o],a&&n!=null){let s=`${r.type}s`;Xr(e.entities[a][n][s],o);}}},removeBlocks:(e,t)=>{let r=t.payload,o={...e.entities.block};return r.forEach(n=>{delete o[n];}),{...e,entities:{...e.entities,block:o}}},addBlocks:(e,t)=>{let r=t.payload;return {...e,entities:{...e.entities,block:{...e.entities.block,...r}}}},removeDataSourceLogic:e=>{let t={...e.entities.datasource};Object.keys(t).forEach(r=>{e.entities.datasource[r].content.useProxy&&(delete e.entities.datasource[r].content.logic,delete e.entities.datasource[r].content.testUrl,delete e.entities.datasource[r].content.access);});}},extraReducers:e=>{e.addCase(HYDRATE,(t,r)=>{let o=r.payload.records,n=o.entities;t.entities=n,t.reports=Object.values(n.report).map(a=>a.id),t.requests={block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},t.tree=o.tree;});}});function Be(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,{...e[r],...t[r]}]))}function Fe(e,t){return e.map(n=>t[n]).sort(we).map(n=>n.id)}function Xr(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}var de=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",qe=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[de];qe.includes(de)||qe.push(de);var eo={localeDefault:de,locales:qe,currentLocale:de,preferredLocale:de,showToolbar:false,activeSection:null,previews:[],query:{},sectionState:{},activeEntity:{type:null,id:null},sidebarStatus:{tools:true,settings:false,reportEditor:false},isCMS:false,isRunConsumersRunning:[]},Ve=createSlice({name:"status",initialState:eo,reducers:{setStatus:(e,t)=>{Object.assign(e,t.payload);},setPreviews(e,t){e.previews=t.payload;},setCurrentLocale(e,t){e.currentLocale=t.payload;},setPreferredLocale(e,t){e.preferredLocale=t.payload;},setSectionState(e,t){e.sectionState={...e.sectionState,...t.payload};},resetSectionState(e,t){e.sectionState={...e.sectionState,[t.payload]:{}};},setActiveEntity(e,t){e.activeEntity=t.payload;},openSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:true};},closeSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:false};},toggleSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!e.sidebarStatus[t.payload]};},addRunConsumersRunning(e,t){e.isRunConsumersRunning=e.isRunConsumersRunning.concat(t.payload);},removeRunConsumersRunning(e,t){e.isRunConsumersRunning=e.isRunConsumersRunning.filter(r=>!t.payload.includes(r));}},extraReducers:e=>{e.addCase(HYDRATE,(t,r)=>{t.previews=r.payload.status.previews;});}}),xe=Ve.actions;var oo={attributes:{},variables:{},status:{}},$e=createSlice({name:"variables",initialState:oo,reducers:{setVariableChange:(e,t)=>{e.attributes={...e.attributes,...t.payload.attributes},e.variables={...e.variables,...t.payload.variables},e.status={...e.status,...t.payload.status};}},extraReducers:e=>{e.addCase(HYDRATE,(t,r)=>{let o=r.payload.variables;t.attributes={...t.attributes,...o.attributes},t.status={...t.status,...o.status},t.variables={...t.variables,...o.variables};});}}),kt=$e.actions;var Lt=()=>configureStore({reducer:{[re.name]:re.reducer,[Ve.name]:Ve.reducer,[$e.name]:$e.reducer},middleware(e){return e({thunk:{extraArgument:Le("/api/cms/")}})}}),ze=createWrapper(Lt);var We={};Ar(We,{addBlockToState:()=>fn,addRunConsumersRunning:()=>ir,cloneEntity:()=>er,createEntity:()=>Xt,deleteEntity:()=>Zt,deleteQueryParam:()=>on,readEntity:()=>Oe,readEnvSecrets:()=>gn,readMember:()=>lr,readMetadata:()=>sn,readPrivateBlocks:()=>yn,readUser:()=>un,recalculateVariables:()=>pr,removeBlocksFromState:()=>mn,removeDataSourceLogic:()=>Sn,removeRunConsumersRunning:()=>cr,reportSearch:()=>en,resetSectionState:()=>ar,revalidateReport:()=>En,revalidateUrl:()=>Rn,searchMember:()=>rn,searchRegenerate:()=>tn,searchRole:()=>cn,searchUser:()=>ln,setCurrentLocale:()=>Xo,setPreferredLocale:()=>Jo,setPreviews:()=>Qo,setQueryParam:()=>nn,setSectionState:()=>sr,setStatus:()=>nr,updateEntity:()=>Jt,updateMyData:()=>dn,updateUser:()=>pn,urlProxy:()=>an,variantValidateSlug:()=>Zo});var{localeDefault:co}=Z();function W(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||co}}var fe={SINGLE:"single",MULTI:"multi"};var Ze={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},lo={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},uo={DISABLED:"disabled"},po={FALLBACK:"fallback"};var mo={IMAGE:"image",PARAGRAPH:"paragraph",SELECTOR:"selector",STAT:"stat",SUBTITLE:"subtitle",TITLE:"title",NAV:"nav",RESET_BUTTON:"reset_button",COMPARISON_BUTTON:"comparison_button",TABLE:"table",BUTTON:"button",MULTIHIERARCHY_SELECTOR:"multihierarchy_selector",FALLBACK:"fallback"},et={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},tt="logic",T={...mo,...et},It={...Ze,...lo,...po,...uo};var Eo=yo(process.env.REPORTS_LOGGING),ye=go;function go(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=W(a);try{if(t){let l=new Proxy(console,{get(u,f){return So(f,"log","debug","info","warn","error")?(...p)=>{i.push(`${f} ${Date.now()} - ${p.map(A=>format(A)).join(" ")}`),Eo&&u[f](...p);}:u[f]}}),m;return n?m=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,Ce,o,c,n):m=new Function(e,"console","libs","formatters","locale",r)(t,l,Ce,o,c),typeof m=="object"&&Object.keys(m).length>0&&Object.assign(s,m),{vars:s,error:null,log:i,output:m}}return {vars:s,error:"Invalid API Link",log:i}}catch(l){return {vars:s,error:l.message,log:i}}}function So(e,...t){return t.includes(e)}function rt(e){return e.reduce((t,r,o)=>(o?o===e.length-1&&o===1?t+=` and ${r}`:o===e.length-1?t+=`, and ${r}`:t+=`, ${r}`:t+=r,t),"")}var Re=To;function To(e,t,r,o=false){let{variables:n}=W(r);if(!e)return e;let a=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(a,(i,c,l)=>{let m=f=>f;if(c){let f=c.replace(/^\w/g,p=>p.toLowerCase());f in t?m=t[f]:m=p=>`${c}${p}`;}let u=Array.isArray(n[l])?rt(n[l]):n[l];if(u===void 0)return o?i:"N/A";try{return m(u,Ce,t)}catch(f){return console.error(`Error using formatter ${m.name}
2
- `,`Error message: ${f.message}`),"N/A"}})}var ot=(e,t,r)=>{let{variables:o}=r,n=s=>s.allowed==="never"?false:!s.allowed||s.allowed==="always"||o[s.allowed],a={...e};return Object.keys(a).forEach(s=>{typeof a[s]=="string"?a[s]=Re(a[s],t,r):Array.isArray(a[s])?a[s]=a[s].filter(n).map(i=>typeof i=="object"?ot(i,t,r):typeof i=="string"?Re(i,t,r):i):typeof a[s]=="object"&&a[s]!==null&&!(a[s]instanceof Date)&&(a[s]=ot(a[s],t,r));}),a},He=ot;var Ot=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var bo=(e,t,r)=>{if(!r)return false;if(e===fe.SINGLE)return r.find(n=>n.id===t);let o=Array.isArray(t)?t:t.split(",");return Array.isArray(o)&&o.every(n=>r.map(a=>a.id).includes(n))},nt=bo;function st(e,t,r,o,n=false){let{variables:a}=W(o),s=He({logic:t},r,o).logic,i=ye("variables",a,s,r,void 0,o),{vars:c,log:l,error:m}=i,u=c.type||fe.SINGLE,f=c.component||"Selector",p=c.hideLabel||"false",A=c.resetSectionVars||"false",P=c.name||"Unlabeled Selector",d=Ot(c.options||[]),N=O=>u===fe.MULTI&&!Array.isArray(O)?[O]:O,h=c.defaultValue,x;if(h&&(h=N(h),nt(u,h,d)&&(x=h)),!x){let O=d&&d[0]&&d[0].id||d[0]||"";x=N(O);}if(n&&typeof window<"u"){let O=`selector${e}id`,Q=new URLSearchParams(window.location.search),L=Object.fromEntries(Q)[O];L&&!nt(u,L,d)&&L!==void 0&&(Q.delete(O),window.history.replaceState(null,null,`?${Q.toString()}`));}return {config:{name:P,type:u,options:d,defaultValue:x,component:f,hideLabel:p,resetSectionVars:A},log:l,error:m}}function at(e,t,r){if(!e)return false;let o=Array.isArray(r)?r:r.split(",");return Array.isArray(o)&&o.every(n=>e.map(a=>`${a[`${t} ID`]}`).includes(n))}function it(e,t,r,o,n=false){let{variables:a}=W(o),s=He({logic:t},r,o).logic,i=ye("variables",a,s,r,void 0,o),{vars:c,log:l,error:m}=i;if(n&&typeof window<"u"){let f=`multihierarchySelector${e}-value`,p=`multihierarchySelector${e}-type`,A=new URLSearchParams(window.location.search),P=Object.fromEntries(A),d=P[f],N=P[p];d&&d!==void 0&&N&&N!==void 0&&!at(c.data,N,d)&&(A.delete(f),A.delete(p),window.history.replaceState(null,null,`?${A.toString()}`));}return {config:c,log:l,error:m}}var Ao=(e,t,r)=>{let o=`selector${e}id`,n=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(o),a=new URLSearchParams(t).get(o),s=n||a;if(r.type===fe.MULTI){let l=s?s.split(","):r.defaultValue,m=r.options.filter(u=>l.includes(u.id));return {[`selector${e}id`]:l,[`selector${e}label`]:(m||[]).map(u=>u.label)}}let i=s&&r.options.find(l=>l.id===s)?s:r.defaultValue,c=r.options.find(l=>l.id===i);return {[`selector${e}id`]:i,[`selector${e}label`]:c&&c.label||void 0}},vt=Ao;var ho=(e,t,r)=>{let o=`multihierarchySelector${e}-value`,n=`multihierarchySelector${e}-type`,a=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(o),s=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(n),i=new URLSearchParams(t).get(o),c=new URLSearchParams(t).get(n),l=a||i,m=s||c,u=l?l.split(","):r.defaultValue||[],f=m||r.defaultValueType||"",p=r.data?.filter(A=>u.includes(`${A[`${f} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:u,[`multihierarchySelector${e}label`]:[...new Set((p||[]).map(A=>A[f]))],[`multihierarchySelector${e}type`]:f}},Nt=ho;var{localeDefault:Mt,locales:Co}=Z(),xo=Object.values(et),ko=(e,t=Mt)=>e&&xo.includes(e.type)?{locale:tt,locales:[tt]}:{locale:t,locales:Co},wt=(e,t=Mt)=>{if(!e)return {};let{locale:r}=ko(e,t);return e.contentByLocale?.[r]?.content};function Lo(e,t){let r=Object.values(t),o=r.filter(n=>n.shared&&n.section_id!==e).map(n=>n.id);return Object.fromEntries(r.filter(n=>n.section_id===e&&(n.inputs.length===0||n.inputs.some(a=>o.includes(a)))).map(n=>[n.id,n]))}var Ut=Lo;var Dt=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;var Ft="SECTION_ALLOWED";function ct(e){return e.type===T.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}function Po(){let{publicRuntimeConfig:e}=_o(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((r,o)=>(r[`ENV_${o}`]=t[o]||"N/A",r),{})}}var Ie=Po;function Bo(){return typeof process>"u"?{}:Object.entries(process.env).filter(([e])=>e.startsWith("BESPOKE_SECRET_")).reduce((e,[t,r])=>({...e,[t.replace("BESPOKE_SECRET_","ENV_SECRET_")]:r}),{})}var qt=Bo;var ne=yo(process.env.NEXT_PUBLIC_REPORTS_DEBUG),wo=process.env.REPORTS_ORIGIN||"",Uo=process.env.NEXT_PUBLIC_REPORTS_AXIOS_RETRIES,Gt=5;try{Gt=parseInt(`${Uo||5}`,10);}catch(e){console.error("Error setting axios retries NEXT_PUBLIC_REPORTS_AXIOS_RETRIES defaults to 5",e);}Vt(Ye,{retries:Gt,retryDelay:Vt.exponentialDelay,onRetry:(e,t,r)=>{console.error("Generator request failed. Retrying... Count: ",e),console.error("URL: ",r.url),console.error(t.message);}});Ye.interceptors.request.use(e=>({...e,requestStart:Date.now()}));Ye.interceptors.response.use(e=>({...e,requestDuration:new Date().getTime()-e.config.requestStart}),e=>Promise.reject(e));var Do=(e,t,r)=>{let o=Re(e,t,r);return o.startsWith("http")||(o=`${wo}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:Fo}=Le("/api/cms");function je(e){return e.ok!==void 0}function Ke(e){this.message=e,this.name="ApiFetchException";}var $t=process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0;async function qo(e,t,r="en",o,n){let a=Date.now(),s=e,i,c=Ie(),l=qt(),m={envs:{...c,...l}},u=new URL(e),f=new URLSearchParams(u.searchParams.toString());f.has("bespoke_slugs")&&(u.searchParams.delete("bespoke_slugs"),s=u.toString());let p={datasource:void 0};o.find(h=>{if(!h.content?.pattern)return false;try{let x=new RegExp(h.content.pattern,"gm");return x.test(s)?(p.datasource=h,!0):x.test(s)}catch{return false}});let A=n?n.settings:{},P=!!(A&&A.useProxy&&A.useProxy==="true"),d=p.datasource&&typeof p.datasource.content.useProxy=="boolean"?p.datasource.content.useProxy:false,N=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/api/cms/url/proxy?url=${encodeURIComponent(s)}`;if(typeof window=="object"&&(P||d)){let h=await Fo({url:s,timeout:$t});if(h.ok===true)i=h.data;else throw new Ke(h?.error)}else try{let x={url:s,timeout:$t};if(p.datasource){let O=m;if(typeof window<"u")try{let L=await getSession();if(L){let C={user:L.user,status:"authenticated",isLoading:!1,update:async()=>L};O={...m,session:C};}}catch(L){console.warn("Could not retrieve user session:",L);}let k=await bt({vars:["url","libs","session"],logic:p.datasource.content.logic},O)(s);if(k.axiosConfig)x=k.axiosConfig;else throw new Ke(`AxiosConfig is missing in Data Source ${p.datasource.name} (ID: ${p.datasource.id}).`)}let z=await Ye(x);if(z.status===200)z.headers["content-type"]==="text/csv"?i=csvParse(z.data):i=z.data;else throw new Ke("No response for: "+s)}catch(h){throw new Ke(h.message)}if(f.has("bespoke_slugs")){let h=f.get("bespoke_slugs");if(h){let x=h.split(",");if(x.length===3){let[z,O,Q]=x,k=Dt(i,Q);if(k&&Array.isArray(k)){let L=Array.from(new Set(k.map(C=>`${C[O]}`).filter(C=>!["","undefined"].includes(C))));if(L.length>0){let C=L.join("").length>2e3,B=await t({mode:C?"whole":"ids",ids:C?void 0:L,all:false,locale:r,variant:[parseInt(z,10)],output:"lite",limit:L.length+1,allowNulls:true}).then(M=>{let q=[];return je(M)?M.ok&&(q=M.data.results):q=M.results,q&&Array.isArray(q)?q:[]}).catch(M=>(console.error(`Error hydrating slugs for Variant: ${z}, Key: ${O}, Accessor: ${Q}`),console.error(` Url ${e}`),n&&console.error(` From Section ${n.section_id} and Block ${n.id}`),console.error(M),[]));if(B){let M=Object.fromEntries(B.map(q=>[q.id,`/${q.variant_slug}/${q.slug}`]));k.map(q=>(q.bespoke_slug=M[q[O]]?M[q[O]]:null,q));}}}}}}return {data:i,requestDuration:Date.now()-a,finalUrl:d||P?N:s,apiDataSource:p.datasource?p.datasource:false}}function Vo(e){this.name="BlockException",this.message=e;}async function zt(e,t,r,o,n){let{locale:a,variables:s,query:i}=W(r),c=zo(e,r,s,t),l=null,m=e.contentByLocale?.logic?.content?.api,u=null,f=null,p=null,A,P;if(!c)return {outputVariables:{},renderVariables:{},status:{allowed:false,hiddenByCascade:e.id}};if(e.type===T.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:c,hiddenByCascade:e.id}};if(m){p=Do(m,t,r);let k=p.split("|||").filter(B=>B!==""),L=[];for(let B=0;B<k.length;B++){let M=k[B];new RegExp("^(?:[a-z+]+:)?//","i").test(p)||(M=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${M}`.replace(/([^:]\/)\/+/g,"$1")),L.push(qo(M,o,a,n,e).catch(H=>{throw new Vo(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${s.report_name} (${s.report_id}) failed.
1
+ import {createSlice,configureStore}from'@reduxjs/toolkit';import {HYDRATE,createWrapper}from'next-redux-wrapper';import Ye from'axios';import {schema,normalize}from'normalizr';import {merge,closest,assign,isObject}from'd3plus-common';import*as Br from'd3-array';import*as Ir from'd3-collection';import*as Or from'd3-format';import*as vr from'd3-time-format';import {formatAbbreviate}from'd3plus-format';import {date}from'd3plus-axis';import {titleCase,strip}from'd3plus-text';import Vr from'jsonwebtoken';import Vt from'axios-retry';import yo from'yn';import {format}from'pretty-format';import Oo from'toposort';import {csvParse}from'd3-dsv';import _o from'next/config';import {getSession}from'next-auth/react';import {notifications}from'@mantine/notifications';import {produce}from'immer';import {createContext}from'react';import {useDispatch,useSelector,Provider}from'react-redux';import {jsx}from'react/jsx-runtime';import'@mantine/core';var br=Object.defineProperty;var Ar=(e,t)=>{for(var r in t)br(e,r,{get:t[r],enumerable:true});};function J(e,t){return e.request(t).then(r=>{let{status:o,data:n}=r;return "error"in n?{ok:false,status:o,error:n.error}:{ok:true,status:o,wrapper:n.wrapper,data:n.data}},r=>{if("isAxiosError"in r){let{status:o,data:n}=r.response||{status:500};return {ok:false,status:o,error:n?.error??r.message}}return {ok:false,status:500,error:r.message}})}function F(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>J(e,{...o,method:"GET",params:r?r(n):n})}function V(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>J(e,{...o,method:"POST",data:n})}function oe(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>J(e,{...o,method:"DELETE",params:r?r(n):n})}function he(e,t){return r=>J(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function ke(e,t){return r=>J(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function yt(e,t){return ()=>J(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function Rt(e,t){return r=>J(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var le=e=>({id:e}),Cr=e=>{if(e.mode==="slugs"){let t=e.slugs.map(r=>[r.variantSlug,r.memberSlug].join("/")).join(",");return {...e,slugs:t}}return ["related","whole"].includes(e.mode)?{...e}:{...e,[e.mode]:e[e.mode].join(",")}};function Le(e){let t=Ye.create({baseURL:e});return {createBulkBlock:V(t,"create/bulk/block"),createBlock:V(t,"create/block"),createDimension:V(t,"create/dimension"),createFormatter:V(t,"create/formatter"),createReport:V(t,"create/report"),createSection:V(t,"create/section"),createVariant:V(t,"create/variant"),createDatasource:V(t,"create/datasource"),deleteBlock:oe(t,"delete/block",le),deleteDimension:oe(t,"delete/dimension",le),deleteFormatter:oe(t,"delete/formatter",le),deleteReport:oe(t,"delete/report",le),deleteSection:oe(t,"delete/section",le),deleteVariant:oe(t,"delete/variant",le),deleteDatasource:oe(t,"delete/datasource",le),readBlock:F(t,"read/block"),readDimension:F(t,"read/dimension"),readFormatter:F(t,"read/formatter"),readReport:F(t,"read/report"),readSection:F(t,"read/section"),readVariant:F(t,"read/variant"),readDatasource:F(t,"read/datasource"),updateBulkBlock:V(t,"update/bulk/block"),updateBlock:V(t,"update/block"),updateDimension:V(t,"update/dimension"),updateFormatter:V(t,"update/formatter"),updateReport:V(t,"update/report"),updateSection:V(t,"update/section"),updateVariant:V(t,"update/variant"),updateDatasource:V(t,"update/datasource"),searchReport:F(t,"search/reports"),validateVariantSlug:F(t,"validate/variant"),readMember:F(t,"read/members",Cr),readMemberImage:F(t,{url:"member/image",responseType:"blob"}),searchMember:F(t,"search/members"),updateMember:F(t,"update/members"),imageLocalSearch:ke(t,"local"),imageLocalSave:he(t,"local"),imageFlickrSearch:ke(t,"flickr"),imageFlickrSave:he(t,"flickr"),imageUnsplashSearch:ke(t,"unsplash"),imageUnsplashSave:he(t,"unsplash"),imageUploadSave:he(t,"upload"),imageAdobeSearch:ke(t,"adobe"),imageAdobeSave:he(t,"adobe"),readMetadata:F(t,"read/metadata"),regenerateSearch:V(t,"search/regenerate"),urlProxy:F(t,"url/proxy"),searchRole:F(t,"auth/search/roles"),searchUser:F(t,"auth/search/users"),readUser:F(t,"auth/read/user"),updateUser:V(t,"auth/update/user"),updateMyData:V(t,"auth/update/me"),revalidateReport:F(t,"revalidate/report"),revalidateUrl:F(t,"revalidate/url"),readPrivateBlocks:V(t,"read/blocks/private"),listTablerIcons:yt(t,"tabler"),readTablerIcon:Rt(t,"tabler"),readEnvSecrets:F(t,"read/secrets")}}function xr(e,t){return +(e<t)-+(e>t)}function we(e,t,r="ordering"){return xr(t[r],e[r])}function Xe(e){let t=1+76.18009173/e-86.50532033/(e+1)+24.01409822/(e+2)-1.231739516/(e+3)+.00120858003/(e+4)-536382e-11/(e+5);return (e-.5)*Math.log(e+4.5)-(e+4.5)+Math.log(t*2.50662827465)}function Et(e,t,r){let o=0,n=1,a=1,s=1,i=0,c=0,l;for(;Math.abs((a-c)/a)>1e-5;)c=a,l=-(t+i)*(t+r+i)*e/(t+2*i)/(t+2*i+1),o=a+l*o,n=s+l*n,i+=1,l=i*(r-i)*e/(t+2*i-1)/(t+2*i),a=o+l*a,s=n+l*s,o/=s,n/=s,a/=s,s=1;return a/t}function kr(e,t,r){let o,n;if(e<0)n=0;else if(e>=t)n=1;else {e=Math.floor(e);let a=r,s=e+1,i=t-e,c=s+i,l=Math.exp(Xe(c)-Xe(i)-Xe(s)+s*Math.log(a)+i*Math.log(1-a));a<(s+1)/(c+2)?o=l*Et(a,s,i):o=1-l*Et(1-a,i,s),n=1-o;}return Math.round(n*1e5)/1e5}function Lr(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function _e(e,t,r,o){let n=t/(1-t),a=0,s=1,i=0,c=0;for(;a<=e;)c+=s,a>=r&a<=o&&(i+=s),c>1e30&&(i/=1e30,c/=1e30,s/=1e30),a+=1,s=s*n*(e+1-a)/a;return i/c}function _r(e,t,r){let o=e/t,a=(100-r*100)/2,s,i;if(e===0)s=0;else {let c=o/2,l=0,m=o,u=a/100;for(;m-l>1e-5;)_e(t,c,e,e)*.5+_e(t,c,e+1,t)>u?(m=c,c=(l+c)/2):(l=c,c=(m+c)/2);s=c;}if(e===t)i=0;else {let c=(1+o)/2,l=o,m=1,u=a/100;for(;m-l>1e-5;)_e(t,c,e,e)*.5+_e(t,c,0,e-1)<u?(m=c,c=(l+c)/2):(l=c,c=(m+c)/2);i=c;}return {lci:s,uci:i}}function Pr(e,t){let r=e,o=t,n=r,a=o,s=95,i=.5,c=.5,m=(100-s)/2/100,u=n;for(;c>1e-5;)c/=2,Ue((1+u)*i/(1-i),u+1,1e10)+.5*Ue((1+u)*i/(1-i),u,u)>m?i-=c:i+=c;let f=(1+u)*i/(1-i)/a;for(i=.5,c=.5,m=(100-s)/2/100;c>1e-5;)c/=2,Ue((1+u)*i/(1-i),0,u-1)+.5*Ue((1+u)*i/(1-i),u,u)<m?i-=c:i+=c;let A=(1+u)*i/(1-i)/a;return {lci:f,uci:A}}function Ue(e,t,r){let o=1,n=0,a=0,s=0;for(;s<e||o>n*1e-10;)n+=o,s>=t&s<=r&&(a+=o),n>1e30&&(a/=1e30,n/=1e30,o/=1e30),s+=1,o=o*e/s;return a/n}var gt={binomialCdf:kr,binP:_e,computeMidP:_r,criticalValue:Lr,smr:Pr};var Ce={d3:{...Br,...Ir,...Or,...vr},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:gt};var St={jwt:Vr};var bt=(e,t={})=>{let r={libs:St,...t};function o(a){return Function("globals",...a.vars,`with (globals) { ${a.logic} }`).bind(r,r)}function n(a){if(a.vars&&a.logic)return o(a);for(let s in a)Array.isArray(a[s])?a[s]=a[s].map(i=>isObject(i)?n(i):i):isObject(a[s])&&(a[s]=n(a[s]));return a}return n(e)};var $r=()=>{let e=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",t=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[e];return t.includes(e)||t.push(e),{localeDefault:e,locales:t}},Z=$r;Z();var Pe=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});Pe.define({consumers:[Pe],inputs:[Pe]});var At=new schema.Entity("variant"),ht=new schema.Entity("dimension",{variants:[At]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),Ct=new schema.Entity("section",{blocks:[Pe]}),zr=new schema.Entity("report",{dimensions:[ht],sections:[Ct]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(we):[]}}}),Hr=new schema.Entity("formatter"),Kr=new schema.Entity("datasource"),jr={report:zr,section:Ct,block:Pe,dimension:ht,variant:At,formatter:Hr,datasource:Kr};function De(e,t){let r=jr[e];if(!r)throw new Error(`Invalid entity type: ${e}`);let{entities:o}=normalize(t,[r]);return {report:ue(o,"report"),dimension:ue(o,"dimension"),section:ue(o,"section"),block:ue(o,"block"),variant:ue(o,"variant"),formatter:ue(o,"formatter"),datasource:ue(o,"datasource")}}function ue(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:{}}var xt=(e,t=void 0)=>{let{sid:r,bid:o,previews:n=[],query:a={}}=t||{},s,i,c={};return r?(s=r,c.activeSection=s):s=e.activeSection,n.length>0?(i=n,c.previews=i.filter(Boolean)):i=e.previews,{parsedParams:{sid:s,bid:o,previews:i,query:a},statusPayload:c}};var Qr={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}}},re=createSlice({name:"records",initialState:Qr,reducers:{set:(e,t)=>{let r=t.payload;return {entities:Be(e.entities,r.entities||{}),requests:Be(e.requests,r.requests||{}),reports:r.reports||e.reports,tree:r.tree||e.tree}},setRequest:(e,t)=>{let r=t.payload;e.requests[r.type][r.key]=r;},setCreateRequest(e,t){let r=t.payload;if(e.requests[r.type][r.key]=r,r.status==="SUCCESS"){let o=Array.isArray(r.data)?r.data:[r.data],n=De(r.type,o),a=Be(e.entities,n);if(e.entities=a,r.type==="report"){let s=r.data;e.reports?e.reports.indexOf(s.id)===-1&&(e.reports=[...e.reports,s.id]):e.reports=[s.id];}else if(r.type==="dimension"){let s=r.data;e.entities.report[s.report_id].dimensions.push(s.id),e.entities.report[s.report_id].dimensions=Fe(a.report[s.report_id].dimensions,a.dimension);}else if(r.type==="variant"){let s=r.data;e.entities.dimension[s.dimension_id].variants.push(s.id);}else if(r.type==="section"&&!Array.isArray(r.data)){let s=r.data;e.entities.report[s.report_id].sections.push(s.id),e.entities.report[s.report_id].sections=Fe(a.report[s.report_id].sections,a.section);}else if(r.type==="block")if(Array.isArray(r.data)){let s=r.data,i=s[0],c=s.map(l=>l.id);e.entities.section[i.section_id].blocks.concat(c);}else {let s=r.data;e.entities.section[s.section_id].blocks.push(s.id);}}},setReadRequest(e,t){let r=t.payload;if(r.type!=="report"&&(e.requests[r.type][r.key]=r),r.status==="SUCCESS"){let o=De(r.type,r.data),n=Be(e.entities,o);e.entities=n;}},setUpdateRequest(e,t){let r=t.payload;if(e.requests[r.type][r.key]=r,r.status==="SUCCESS"){let o=Array.isArray(r.data)?r.data:[r.data],n=De(r.type,o),a,s,i;if(r.type==="block"&&!Array.isArray(r.data)){let l=e.entities.block[r.data.id].inputs,m=n.block[r.data.id].inputs;a=l.length!==m.length,a&&(i=l.length>m.length,s=i?l.filter(u=>!m.includes(u))[0]:m.filter(u=>!l.includes(u))[0]),Object.values(n.block).forEach(u=>{u.block_input&&delete n.block[u.id];});}let c=Be(e.entities,n);if(e.entities=c,r.type==="dimension"){let l=r.data;e.entities.report[l.report_id].dimensions=Fe(c.report[l.report_id].dimensions,c.dimension);}else if(r.type==="section"&&!Array.isArray(r.data)){let l=r.data;e.entities.report[l.report_id].sections=Fe(c.report[l.report_id].sections,c.section);}else if(r.type==="block"&&!Array.isArray(r.data)){let l=r.data;a&&(i?e.entities.block[s].consumers=e.entities.block[s].consumers.filter(m=>m!==l.id):e.entities.block[s].consumers.push(l.id));}}},setDeleteRequest(e,t){let r=t.payload;if(e.requests[r.type][r.key]=r,r.status==="SUCCESS"){let{id:o,parentId:n,parentType:a}=r.data;if(delete e.entities[r.type][o],a&&n!=null){let s=`${r.type}s`;Jr(e.entities[a][n][s],o);}}},removeBlocks:(e,t)=>{let r=t.payload,o={...e.entities.block};return r.forEach(n=>{delete o[n];}),{...e,entities:{...e.entities,block:o}}},addBlocks:(e,t)=>{let r=t.payload;return {...e,entities:{...e.entities,block:{...e.entities.block,...r}}}},removeDataSourceLogic:e=>{let t={...e.entities.datasource};Object.keys(t).forEach(r=>{e.entities.datasource[r].content.useProxy&&(delete e.entities.datasource[r].content.logic,delete e.entities.datasource[r].content.testUrl,delete e.entities.datasource[r].content.access);});}},extraReducers:e=>{e.addCase(HYDRATE,(t,r)=>{let o=r.payload.records,n=o.entities;t.entities=n,t.reports=Object.values(n.report).map(a=>a.id),t.requests={block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},t.tree=o.tree;});}});function Be(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,{...e[r],...t[r]}]))}function Fe(e,t){return e.map(n=>t[n]).sort((n,a)=>typeof n.ordering=="string"&&typeof a.ordering=="string"?we(n,a):typeof n.ordering=="number"&&typeof a.ordering=="number"?n.ordering-a.ordering:String(n.ordering).localeCompare(String(a.ordering))).map(n=>n.id)}function Jr(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}var de=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",qe=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[de];qe.includes(de)||qe.push(de);var eo={localeDefault:de,locales:qe,currentLocale:de,preferredLocale:de,showToolbar:false,activeSection:null,previews:[],query:{},sectionState:{},activeEntity:{type:null,id:null},sidebarStatus:{tools:true,settings:false,reportEditor:false},isCMS:false,isRunConsumersRunning:[]},Ve=createSlice({name:"status",initialState:eo,reducers:{setStatus:(e,t)=>{Object.assign(e,t.payload);},setPreviews(e,t){e.previews=t.payload;},setCurrentLocale(e,t){e.currentLocale=t.payload;},setPreferredLocale(e,t){e.preferredLocale=t.payload;},setSectionState(e,t){e.sectionState={...e.sectionState,...t.payload};},resetSectionState(e,t){e.sectionState={...e.sectionState,[t.payload]:{}};},setActiveEntity(e,t){e.activeEntity=t.payload;},openSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:true};},closeSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:false};},toggleSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!e.sidebarStatus[t.payload]};},addRunConsumersRunning(e,t){e.isRunConsumersRunning=e.isRunConsumersRunning.concat(t.payload);},removeRunConsumersRunning(e,t){e.isRunConsumersRunning=e.isRunConsumersRunning.filter(r=>!t.payload.includes(r));}},extraReducers:e=>{e.addCase(HYDRATE,(t,r)=>{t.previews=r.payload.status.previews;});}}),xe=Ve.actions;var oo={attributes:{},variables:{},status:{}},$e=createSlice({name:"variables",initialState:oo,reducers:{setVariableChange:(e,t)=>{e.attributes={...e.attributes,...t.payload.attributes},e.variables={...e.variables,...t.payload.variables},e.status={...e.status,...t.payload.status};}},extraReducers:e=>{e.addCase(HYDRATE,(t,r)=>{let o=r.payload.variables;t.attributes={...t.attributes,...o.attributes},t.status={...t.status,...o.status},t.variables={...t.variables,...o.variables};});}}),kt=$e.actions;var Lt=()=>configureStore({reducer:{[re.name]:re.reducer,[Ve.name]:Ve.reducer,[$e.name]:$e.reducer},middleware(e){return e({thunk:{extraArgument:Le("/api/cms/")}})}}),Ge=createWrapper(Lt);var We={};Ar(We,{addBlockToState:()=>fn,addRunConsumersRunning:()=>ir,cloneEntity:()=>er,createEntity:()=>Jt,deleteEntity:()=>Zt,deleteQueryParam:()=>on,readEntity:()=>Oe,readEnvSecrets:()=>gn,readMember:()=>lr,readMetadata:()=>sn,readPrivateBlocks:()=>yn,readUser:()=>un,recalculateVariables:()=>pr,removeBlocksFromState:()=>mn,removeDataSourceLogic:()=>Sn,removeRunConsumersRunning:()=>cr,reportSearch:()=>en,resetSectionState:()=>ar,revalidateReport:()=>En,revalidateUrl:()=>Rn,searchMember:()=>rn,searchRegenerate:()=>tn,searchRole:()=>cn,searchUser:()=>ln,setCurrentLocale:()=>Jo,setPreferredLocale:()=>Xo,setPreviews:()=>Qo,setQueryParam:()=>nn,setSectionState:()=>sr,setStatus:()=>nr,updateEntity:()=>Xt,updateMyData:()=>dn,updateUser:()=>pn,urlProxy:()=>an,variantValidateSlug:()=>Zo});var{localeDefault:co}=Z();function W(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||co}}var fe={SINGLE:"single",MULTI:"multi"};var Ze={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},lo={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},uo={DISABLED:"disabled"},po={FALLBACK:"fallback"};var mo={IMAGE:"image",PARAGRAPH:"paragraph",SELECTOR:"selector",STAT:"stat",SUBTITLE:"subtitle",TITLE:"title",NAV:"nav",RESET_BUTTON:"reset_button",COMPARISON_BUTTON:"comparison_button",TABLE:"table",BUTTON:"button",MULTIHIERARCHY_SELECTOR:"multihierarchy_selector",FALLBACK:"fallback"},et={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},tt="logic",T={...mo,...et},It={...Ze,...lo,...po,...uo};var Eo=yo(process.env.REPORTS_LOGGING),ye=go;function go(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=W(a);try{if(t){let l=new Proxy(console,{get(u,f){return So(f,"log","debug","info","warn","error")?(...p)=>{i.push(`${f} ${Date.now()} - ${p.map(A=>format(A)).join(" ")}`),Eo&&u[f](...p);}:u[f]}}),m;return n?m=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,Ce,o,c,n):m=new Function(e,"console","libs","formatters","locale",r)(t,l,Ce,o,c),typeof m=="object"&&Object.keys(m).length>0&&Object.assign(s,m),{vars:s,error:null,log:i,output:m}}return {vars:s,error:"Invalid API Link",log:i}}catch(l){return {vars:s,error:l.message,log:i}}}function So(e,...t){return t.includes(e)}function rt(e){return e.reduce((t,r,o)=>(o?o===e.length-1&&o===1?t+=` and ${r}`:o===e.length-1?t+=`, and ${r}`:t+=`, ${r}`:t+=r,t),"")}var Re=To;function To(e,t,r,o=false){let{variables:n}=W(r);if(!e)return e;let a=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(a,(i,c,l)=>{let m=f=>f;if(c){let f=c.replace(/^\w/g,p=>p.toLowerCase());f in t?m=t[f]:m=p=>`${c}${p}`;}let u=Array.isArray(n[l])?rt(n[l]):n[l];if(u===void 0)return o?i:"N/A";try{return m(u,Ce,t)}catch(f){return console.error(`Error using formatter ${m.name}
2
+ `,`Error message: ${f.message}`),"N/A"}})}var ot=(e,t,r)=>{let{variables:o}=r,n=s=>s.allowed==="never"?false:!s.allowed||s.allowed==="always"||o[s.allowed],a={...e};return Object.keys(a).forEach(s=>{typeof a[s]=="string"?a[s]=Re(a[s],t,r):Array.isArray(a[s])?a[s]=a[s].filter(n).map(i=>typeof i=="object"?ot(i,t,r):typeof i=="string"?Re(i,t,r):i):typeof a[s]=="object"&&a[s]!==null&&!(a[s]instanceof Date)&&(a[s]=ot(a[s],t,r));}),a},He=ot;var Ot=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var bo=(e,t,r)=>{if(!r)return false;if(e===fe.SINGLE)return r.find(n=>n.id===t);let o=Array.isArray(t)?t:t.split(",");return Array.isArray(o)&&o.every(n=>r.map(a=>a.id).includes(n))},nt=bo;function st(e,t,r,o,n=false){let{variables:a}=W(o),s=He({logic:t},r,o).logic,i=ye("variables",a,s,r,void 0,o),{vars:c,log:l,error:m}=i,u=c.type||fe.SINGLE,f=c.component||"Selector",p=c.hideLabel||"false",A=c.resetSectionVars||"false",P=c.name||"Unlabeled Selector",d=Ot(c.options||[]),N=O=>u===fe.MULTI&&!Array.isArray(O)?[O]:O,h=c.defaultValue,x;if(h&&(h=N(h),nt(u,h,d)&&(x=h)),!x){let O=d&&d[0]&&d[0].id||d[0]||"";x=N(O);}if(n&&typeof window<"u"){let O=`selector${e}id`,Q=new URLSearchParams(window.location.search),L=Object.fromEntries(Q)[O];L&&!nt(u,L,d)&&L!==void 0&&(Q.delete(O),window.history.replaceState(null,null,`?${Q.toString()}`));}return {config:{name:P,type:u,options:d,defaultValue:x,component:f,hideLabel:p,resetSectionVars:A},log:l,error:m}}function at(e,t,r){if(!e)return false;let o=Array.isArray(r)?r:r.split(",");return Array.isArray(o)&&o.every(n=>e.map(a=>`${a[`${t} ID`]}`).includes(n))}function it(e,t,r,o,n=false){let{variables:a}=W(o),s=He({logic:t},r,o).logic,i=ye("variables",a,s,r,void 0,o),{vars:c,log:l,error:m}=i;if(n&&typeof window<"u"){let f=`multihierarchySelector${e}-value`,p=`multihierarchySelector${e}-type`,A=new URLSearchParams(window.location.search),P=Object.fromEntries(A),d=P[f],N=P[p];d&&d!==void 0&&N&&N!==void 0&&!at(c.data,N,d)&&(A.delete(f),A.delete(p),window.history.replaceState(null,null,`?${A.toString()}`));}return {config:c,log:l,error:m}}var Ao=(e,t,r)=>{let o=`selector${e}id`,n=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(o),a=new URLSearchParams(t).get(o),s=n||a;if(r.type===fe.MULTI){let l=s?s.split(","):r.defaultValue,m=r.options.filter(u=>l.includes(u.id));return {[`selector${e}id`]:l,[`selector${e}label`]:(m||[]).map(u=>u.label)}}let i=s&&r.options.find(l=>l.id===s)?s:r.defaultValue,c=r.options.find(l=>l.id===i);return {[`selector${e}id`]:i,[`selector${e}label`]:c&&c.label||void 0}},vt=Ao;var ho=(e,t,r)=>{let o=`multihierarchySelector${e}-value`,n=`multihierarchySelector${e}-type`,a=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(o),s=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(n),i=new URLSearchParams(t).get(o),c=new URLSearchParams(t).get(n),l=a||i,m=s||c,u=l?l.split(","):r.defaultValue||[],f=m||r.defaultValueType||"",p=r.data?.filter(A=>u.includes(`${A[`${f} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:u,[`multihierarchySelector${e}label`]:[...new Set((p||[]).map(A=>A[f]))],[`multihierarchySelector${e}type`]:f}},Nt=ho;var{localeDefault:Mt,locales:Co}=Z(),xo=Object.values(et),ko=(e,t=Mt)=>e&&xo.includes(e.type)?{locale:tt,locales:[tt]}:{locale:t,locales:Co},wt=(e,t=Mt)=>{if(!e)return {};let{locale:r}=ko(e,t);return e.contentByLocale?.[r]?.content};function Lo(e,t){let r=Object.values(t),o=r.filter(n=>n.shared&&n.section_id!==e).map(n=>n.id);return Object.fromEntries(r.filter(n=>n.section_id===e&&(n.inputs.length===0||n.inputs.some(a=>o.includes(a)))).map(n=>[n.id,n]))}var Ut=Lo;var Dt=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;var Ft="SECTION_ALLOWED";function ct(e){return e.type===T.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}function Po(){let{publicRuntimeConfig:e}=_o(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((r,o)=>(r[`ENV_${o}`]=t[o]||"N/A",r),{})}}var Ie=Po;function Bo(){return typeof process>"u"?{}:Object.entries(process.env).filter(([e])=>e.startsWith("BESPOKE_SECRET_")).reduce((e,[t,r])=>({...e,[t.replace("BESPOKE_SECRET_","ENV_SECRET_")]:r}),{})}var qt=Bo;var ne=yo(process.env.NEXT_PUBLIC_REPORTS_DEBUG),wo=process.env.REPORTS_ORIGIN||"",Uo=process.env.NEXT_PUBLIC_REPORTS_AXIOS_RETRIES,zt=5;try{zt=parseInt(`${Uo||5}`,10);}catch(e){console.error("Error setting axios retries NEXT_PUBLIC_REPORTS_AXIOS_RETRIES defaults to 5",e);}Vt(Ye,{retries:zt,retryDelay:Vt.exponentialDelay,onRetry:(e,t,r)=>{console.error("Generator request failed. Retrying... Count: ",e),console.error("URL: ",r.url),console.error(t.message);}});Ye.interceptors.request.use(e=>({...e,requestStart:Date.now()}));Ye.interceptors.response.use(e=>({...e,requestDuration:new Date().getTime()-e.config.requestStart}),e=>Promise.reject(e));var Do=(e,t,r)=>{let o=Re(e,t,r);return o.startsWith("http")||(o=`${wo}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:Fo}=Le("/api/cms");function je(e){return e.ok!==void 0}function Ke(e){this.message=e,this.name="ApiFetchException";}var $t=process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0;async function qo(e,t,r="en",o,n){let a=Date.now(),s=e,i,c=Ie(),l=qt(),m={envs:{...c,...l}},u=new URL(e),f=new URLSearchParams(u.searchParams.toString());f.has("bespoke_slugs")&&(u.searchParams.delete("bespoke_slugs"),s=u.toString());let p={datasource:void 0};o.find(h=>{if(!h.content?.pattern)return false;try{let x=new RegExp(h.content.pattern,"gm");return x.test(s)?(p.datasource=h,!0):x.test(s)}catch{return false}});let A=n?n.settings:{},P=!!(A&&A.useProxy&&A.useProxy==="true"),d=p.datasource&&typeof p.datasource.content.useProxy=="boolean"?p.datasource.content.useProxy:false,N=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/api/cms/url/proxy?url=${encodeURIComponent(s)}`;if(typeof window=="object"&&(P||d)){let h=await Fo({url:s,timeout:$t});if(h.ok===true)i=h.data;else throw new Ke(h?.error)}else try{let x={url:s,timeout:$t};if(p.datasource){let O=m;if(typeof window<"u")try{let L=await getSession();if(L){let C={user:L.user,status:"authenticated",isLoading:!1,update:async()=>L};O={...m,session:C};}}catch(L){console.warn("Could not retrieve user session:",L);}let k=await bt({vars:["url","libs","session"],logic:p.datasource.content.logic},O)(s);if(k.axiosConfig)x=k.axiosConfig;else throw new Ke(`AxiosConfig is missing in Data Source ${p.datasource.name} (ID: ${p.datasource.id}).`)}let G=await Ye(x);if(G.status===200)G.headers["content-type"]==="text/csv"?i=csvParse(G.data):i=G.data;else throw new Ke("No response for: "+s)}catch(h){throw new Ke(h.message)}if(f.has("bespoke_slugs")){let h=f.get("bespoke_slugs");if(h){let x=h.split(",");if(x.length===3){let[G,O,Q]=x,k=Dt(i,Q);if(k&&Array.isArray(k)){let L=Array.from(new Set(k.map(C=>`${C[O]}`).filter(C=>!["","undefined"].includes(C))));if(L.length>0){let C=L.join("").length>2e3,B=await t({mode:C?"whole":"ids",ids:C?void 0:L,all:false,locale:r,variant:[parseInt(G,10)],output:"lite",limit:L.length+1,allowNulls:true}).then(M=>{let q=[];return je(M)?M.ok&&(q=M.data.results):q=M.results,q&&Array.isArray(q)?q:[]}).catch(M=>(console.error(`Error hydrating slugs for Variant: ${G}, Key: ${O}, Accessor: ${Q}`),console.error(` Url ${e}`),n&&console.error(` From Section ${n.section_id} and Block ${n.id}`),console.error(M),[]));if(B){let M=Object.fromEntries(B.map(q=>[q.id,`/${q.variant_slug}/${q.slug}`]));k.map(q=>(q.bespoke_slug=M[q[O]]?M[q[O]]:null,q));}}}}}}return {data:i,requestDuration:Date.now()-a,finalUrl:d||P?N:s,apiDataSource:p.datasource?p.datasource:false}}function Vo(e){this.name="BlockException",this.message=e;}async function Gt(e,t,r,o,n){let{locale:a,variables:s,query:i}=W(r),c=Go(e,r,s,t),l=null,m=e.contentByLocale?.logic?.content?.api,u=null,f=null,p=null,A,P;if(!c)return {outputVariables:{},renderVariables:{},status:{allowed:false,hiddenByCascade:e.id}};if(e.type===T.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:c,hiddenByCascade:e.id}};if(m){p=Do(m,t,r);let k=p.split("|||").filter(B=>B!==""),L=[];for(let B=0;B<k.length;B++){let M=k[B];new RegExp("^(?:[a-z+]+:)?//","i").test(p)||(M=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${M}`.replace(/([^:]\/)\/+/g,"$1")),L.push(qo(M,o,a,n,e).catch(H=>{throw new Vo(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${s.report_name} (${s.report_id}) failed.
3
3
  Error fetching ${M}.
4
4
  Message: ${H.message}.
5
- `)}));}let C=await Promise.all(L).catch(B=>B.message);if(typeof C=="string"&&C)return {outputVariables:{},renderVariables:{},status:{error:C}};l=C.length===1?C[0].data:C.map(B=>B.data),f=C.reduce((B,M)=>B+JSON.stringify(M.data).length/1024,0),u=Math.max(...C.map(B=>B.requestDuration)),A=C.map(B=>B.apiDataSource?`${B.apiDataSource.name} (${B.apiDataSource.id})`:null),P=C.map(B=>B.finalUrl);}if(e.type===T.SELECTOR){let{config:k,log:L,error:C}=st(e.id,e.contentByLocale[a].content.logic,t,r,true);return {outputVariables:vt(e.id,i,k),renderVariables:k,status:{log:L,error:C,allowed:c}}}if(e.type===T.MULTIHIERARCHY_SELECTOR){let{config:k,log:L,error:C}=it(e.id,e.contentByLocale[a].content.logic,t,r,true);return {outputVariables:Nt(e.id,i,k),renderVariables:k,status:{log:L,error:C,allowed:c}}}if(e.type===T.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:c}};if(e.type===T.RELATED){let k=e.contentByLocale?.logic?.content?.simple?.compare||"variant",L=e.contentByLocale?.logic?.content?.simple?.limit||4,C=Object.keys(s).filter(R=>R.startsWith("report_id")).map(R=>s[R]),B=Object.keys(s).filter(R=>R.startsWith("dimension_id")).map(R=>s[R]),M=Object.keys(s).filter(R=>R.startsWith("variant_id")).map(R=>s[R]),q=Object.keys(s).filter(R=>R.startsWith("id")).map(R=>s[R]);if(!q.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:false}};let H=await Promise.all(q.map((R,S)=>o({mode:"ids",locale:a,ids:[R],output:"lite",variant:[M[S]]}))).then(R=>R.flatMap(S=>{let b=[];return je(S)?S.ok&&(b=S.data.results):b=S.results,b&&Array.isArray(b)?b:[]})).catch(R=>(console.error("Error getting related members",R),[]));if(B.length>1){let R=Object.keys(s).filter(v=>v.startsWith("variant_slug")).map(v=>s[v]),S=H.map((v,$)=>{let D={mode:"related",locale:a,related:L??4,current_ids:[v.content_id],output:"full",variant_ids:[v.variant_id]};return $===0&&(D.include_ids=[v.content_id]),D}),b=await Promise.all(S.map(v=>o(v))).then(v=>v.flatMap($=>{let D=[];return je($)?$.ok&&(D=$.data.results):D=$.results,D&&Array.isArray(D)?D:[]})).catch(v=>(console.error("Error getting related members",v),[])),ie=b.reduce((v,$)=>{let D=$.variant_slug;return v[D]||(v[D]=[]),v[D].push($),v},{}),Me=[],G=Object.keys(ie),te=[{combination:[],index:0}];for(;te.length>0;){let v=te.pop();if(!v)continue;let{combination:$,index:D}=v;if(D===G.length){Me.push($);continue}let ce=G[D],j=ie[ce];for(let Y of j)te.push({combination:[...$,Y],index:D+1});}return {outputVariables:{related_reports:Me.map(v=>{let $=v.sort((D,ce)=>R.indexOf(D.variant_slug)-R.indexOf(ce.variant_slug));return {entities:$,link:"/"+$.map(D=>`${D.variant_slug}/${D.slug}`).join("/")}})},renderVariables:{},status:{log:[],allowed:b.length>0}}}let _=H.map(R=>R.content_id),w={mode:"related",locale:a,related:L??4,current_ids:_,output:"full"};k&&(k==="report"?w.report_ids=C:k==="dimension"?w.dimension_ids=B:w.variant_ids=M);let K=await o(w).then(R=>{let S=[];return je(R)?R.ok&&(S=R.data.results):S=R.results,S&&Array.isArray(S)?S:[]}).catch(R=>(console.error("Error getting related members",R),[]));return {outputVariables:{related_reports:K.map(R=>({entities:[R],link:`/${R.variant_slug}/${R.slug}`}))},renderVariables:{},status:{log:[],allowed:K.length>0}}}let{logic:d}=wt(e,a),N=Re(d,t,r),h=ye("resp",l||{},N,t,s,r),{vars:x,error:z,log:O}=h;if(typeof x!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:O,duration:u,responseSize:f,resp:l,api:p,allowed:c,apiFinalUrls:P,apiDataSources:A}};let Q=Object.keys(x).reduce((k,L)=>({...k,[`${e.type}${e.id}${L}`]:x[L]}),{});return {renderVariables:x,outputVariables:[T.GENERATOR,T.SECTION_FLAG].includes(e.type)?x:Q,status:{log:O,error:z,duration:u,responseSize:f,resp:l,api:p,allowed:c,apiFinalUrls:P,apiDataSources:A}}}function $o(e,t,r,o,n,a,s){return e.consumers.forEach(i=>{if(t[i]){let c=`${r}-${i}`;!o.includes(c)&&(t[i].section_id===t[r].section_id||!n)&&o.push(c),e.consumers.filter(l=>t[l]&&t[l].section_id===t[r].section_id||!n).forEach(l=>lt(l,t,o,false,a,n,s));}})}var lt=(e,t,r=[],o=true,n=true,a=true,s=[])=>{if(s.includes(e))return [];s.push(e);let i=t[e];return i&&i.inputs.length&&o&&i.inputs.forEach(c=>{let l=`${c}-${e}`;r.includes(l)||r.push(l),i.inputs.forEach(m=>lt(m,t,r,o,false,a,s));}),i&&i.consumers.length&&n&&$o(i,t,e,r,a,n,s),r},zo=(e,t,r,o)=>{let n=true;if(e&&"allowed"in e.settings&&e.settings.allowed!=="always")if(e.settings.allowed==="never")n=false;else {let a=W(t),{error:s,output:i}=ye("variables",r,e.settings.allowedLogic||"return false;",o,void 0,a);s||(n=!!i);}return n},Ht=async(e,t,r,o,n,a={},s,i="section",c)=>{let l=i==="section",m=W(n),u=m.variables,f={...a.variables??{}},p={...a.status??{}},A=new Set,P=[],d={};r?d={...d,[r]:e[r]}:t?d=(t??[]).reduce((_,{id:w})=>({..._,...Ut(w,e)}),{}):d=Object.values(e).filter(_=>ct(_)).reduce((_,w)=>({..._,[w.id]:w}),{});let N=Object.values(d).filter(_=>ct(_));if(N.length>0){ne&&console.info("%crunConsumers: calculating section flags","color:purple",N.map(y=>y.id).join(", "));let _=Object.fromEntries(await Promise.all(N.map(async y=>[y.id,await zt(y,o,{...m,variables:u,locale:u.locale},s,c).then(R=>{let{outputVariables:S,status:b}=R;if(b.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${y.id}, Section ${y.section_id}) failed with message: ${b.error}. `);p[y.id]={allowed:false,error:b.error},f[y.id]={};}return (y.consumers.length>0||[T.GENERATOR,T.SECTION_FLAG,T.RELATED].includes(y.type))&&b.allowed&&Object.keys(S).length>0?f[y.id]=S:f[y.id]={},i==="report"?(p[y.id]={allowed:b.allowed},[T.GENERATOR,T.SECTION_FLAG].includes(y.type)&&b.api&&(p[y.id].api=b.api)):p[y.id]=b,R})]))),K=Object.entries(_).filter(([,y])=>!y.outputVariables[Ft]).map(([y])=>Number(y));A=new Set(K.map(y=>e[y].section_id)),Object.values(d).filter(y=>A.has(y.section_id)).forEach(y=>{P.push(y.id),delete d[y.id];}),ne&&console.info("%crunConsumers: removing sections","color:purple",A.keys());}let h=A.size>0?Object.fromEntries(Object.entries(e).filter(([,_])=>A?.has(_.section_id)?(P.includes(_.id)||P.push(_.id),false):true)):e;if(P.length>0&&(h=Object.fromEntries(Object.entries(h).map(([_,w])=>{let K={...w,inputs:w.inputs.filter(y=>!P.includes(y)),consumers:w.consumers.filter(y=>!P.includes(y))};return [_,K]}))),!r&&!t)return {variables:{...a.variables??{},...f},status:{...a.status??{},...p}};i==="report"&&P.length>0&&P.forEach(_=>{delete f[_],delete p[_],delete e[_];}),ne&&console.info("%crunConsumers: running root blocks","color:purple",Object.keys(d));let x=Object.keys(d).reduce((_,w)=>{let K=new Date,y=lt(Number(w),h,[],!r,true,l).map(b=>b.split("-")),S=(new Date().getTime()-K.getTime())/1e3;return ne&&console.info(`%cResolved dependencies for ${w} (${S.toFixed(2)}s)`,"color:blue"),[..._,...y]},[]),z=new Date,O=Object.keys(d).reduce((_,w)=>_.includes(w)?[..._]:[w,..._],Oo(x)),k=(new Date().getTime()-z.getTime())/1e3;ne&&console.info(`%cResolved DAG (${k.toFixed(2)}s): `,"color:green",O);let L=process.env.NEXT_PUBLIC_REPORTS_MAX_CONCURRENT_QUERIES_PER_REPORT,C=parseInt(`${L||0}`,10);async function B(_,w){let K=new Map,y=[],R=async()=>y.length;for(let S of _){if(C!==0){let G=await R();for(;G>=C;)ne&&console.info("Too many pending promises, waiting...",G,y),await new Promise(te=>setTimeout(te,500)),G=await R();}let b=w[S],Me=Promise.all(b.inputs.filter(G=>_.includes(String(G))).map(G=>K.get(Number(G)))).then(async()=>{let G=b.inputs.reduce((j,Y)=>({...j,...f[Y]}),u),te=b.inputs.find(j=>(b.settings?.ignoreCascade?b.settings?.ignoreCascade:[]).includes(j)||!p[j]?false:!p[j].allowed||p[j].hiddenByCascade);if(te){p[S]={allowed:false,hiddenByCascade:p[te].hiddenByCascade||te},f[S]={},y.splice(y.indexOf(Number(S)),1);return}let ft=new Date,v;typeof window<"u"&&[T.SELECTOR,T.MULTIHIERARCHY_SELECTOR].includes(b.type)&&b.settings[It.DISABLED]?v=new Promise(j=>{j({outputVariables:f[S],status:p[S]});}):v=zt(b,o,{...m,variables:G,locale:G.locale},s,c);let $=await v.then(({outputVariables:j,status:Y})=>{if(Y.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${S}, Section ${b.section_id}) failed with message: ${Y.error}.`);p[S]={allowed:false,error:Y.error},f[S]={};}(b.consumers.length>0||[T.GENERATOR,T.SECTION_FLAG,T.RELATED].includes(b.type))&&Y.allowed&&Object.keys(j).length>0?f[S]=j:f[S]={},i==="report"?(p[S]={allowed:Y.allowed},[T.GENERATOR,T.SECTION_FLAG].includes(b.type)&&Y.api&&(p[S].api=Y.api)):p[S]=Y;}),ce=(new Date().getTime()-ft.getTime())/1e3;return ne&&console.info(`%cBlock ${b.id} resolved in ${ce.toFixed(3)}s`,ce>500?"color:red":"color:green"),p[S].duration=p[S].duration?p[S].duration:ce,y.splice(y.indexOf(Number(S)),1),$}).catch(G=>{throw y.splice(y.indexOf(Number(S)),1),G});y.push(Number(S)),K.set(Number(S),Me);}await Promise.all(Array.from(K.values()));}let M=new Date;await B(O,h);let H=(new Date().getTime()-M.getTime())/1e3;return ne&&console.info(`%cResolved Variables (${H.toFixed(2)}s), ${O.length} blocks`,"color:green"),{variables:{...a.variables??{},...f},status:{...a.status??{},...p}}};function Go(e=[]){return e.reduce((t,r,o)=>{if(r){let n=o+1;t[`id${n}`]=r.id,t[`name${n}`]=r.name,t[`slug${n}`]=r.slug,"attributes"in r&&Object.keys(r.attributes).forEach(a=>{t[`attr_${a}${n}`]=r.attributes[a];}),t[`variant_id${n}`]=r.variant_id,t[`variant_name${n}`]=r.variant_name,t[`variant_slug${n}`]=r.variant_slug,t[`dimension_id${n}`]=r.dimension_id,t[`dimension_name${n}`]=r.dimension_name,t.report_id=r.report_id,t.report_name=r.report_name;}return t},{})}var Kt=Go;function Ee(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${jt(r)}`;return e[n]}let o=`${t}${jt(r)}`;return e[o]}function jt(e){return e[0].toUpperCase()+e.slice(1)}var J=re.actions,Xt=ve({block:se("block"),dimension:se("dimension"),formatter:se("formatter"),report:se("report"),section:se("section"),variant:se("variant"),datasource:se("datasource")}),Oe=ve({block:ae("block"),dimension:ae("dimension"),formatter:ae("formatter"),report:ae("report"),section:ae("section"),variant:ae("variant"),datasource:ae("datasource")}),Jt=ve({block:ee("block"),dimension:ee("dimension"),formatter:ee("formatter"),report:ee("report"),section:ee("section"),variant:ee("variant"),datasource:ee("datasource")}),Zt=ve({block:ge("block"),dimension:ge("dimension"),formatter:ge("formatter"),report:ge("report"),section:ge("section"),variant:ge("variant"),datasource:ge("datasource")}),er=ve({block:Wt("block"),section:Wt("section")});function ve(e){return (t,r)=>{let o=e[t];if(!o)throw new Error(`Attempting to dispatch action for invalid entity type '${t}'`);return o(r)}}function Te(e,t){return (r,o)=>{let a=o().records.requests[e][t],s=!a||a.status==="UNINITIALIZED"?"LOADING":"FETCHING";r(J.setRequest({key:t,type:e,status:s}));}}function Se(e,t,r,o){return n=>{typeof window=="object"&&notifications.show({autoClose:3e3,color:"red",id:t,message:o,title:"Error"}),n(J.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function se(e){return t=>{let r=dt(e,t);return (o,n,a)=>(o(Te(e,r)),Ee(a,"create",e)(t).then(i=>(i.ok===true?o(J.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(Se(e,r,i.status,i.error)),i)))}}function jo(e){return t=>{let r=dt(e,t[0]);return (o,n,a)=>(o(Te(e,r)),Ee(a,"createBulk",e)(t).then(i=>(i.ok===true?o(J.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(Se(e,r,i.status,i.error)),i)))}}function Yt(e,t,r){return r.replace(new RegExp(e,"g"),t)}function Yo(e){return e.section_id!==void 0}function Wo(e){return e.report_id!==void 0}function Wt(e){return t=>{let{create:r}=t;return (o,n,a)=>se(e)(r)(o,n,a).then(async i=>{if(i.ok){let{data:c}=i,{id:l}=c,{update:m}=t,u=or(e,{id:l});if(o(Te(e,`${u}`)),e==="block"&&Yo(r)){let f=produce(m,d=>{d.id=l;}),{contentByLocale:p}=f;p&&(f=produce(f,d=>{d.id=l,d.contentByLocale=Object.keys(p).reduce((N,h)=>{let x=p?p[h]:{};return N[h]={...x,id:l},N},{});}));let P=f.inputs?.map(d=>({type:d.type,id:d.id,inputAction:{operation:"create",input:{input_id:d.id,block_id:f.id}}}));return P&&P.length>0&&Qt(e)([f,...P])(o,n,a).then(()=>ae("section")({id:f.section_id,include:true})(o,n,a).then(d=>(d.ok&&o(J.setRequest({key:u,type:e,status:"SUCCESS",data:d.data})),d))),ee(e)(f)(o,n,a).then(d=>(d.ok&&o(J.setRequest({key:u,type:e,status:"SUCCESS",data:d.data})),d))}if(e==="section"&&Wo(r)){let{id:f}=c,p=produce(m,d=>{d.id=f;}),{blocks:A}=p,P=A?.map(d=>({type:d.type,blockcol:d.blockcol,blockrow:d.blockrow,section_id:f,locales:Object.keys(d.contentByLocale).map(N=>N)}));return P&&A&&await jo("block")(P)(o,n,a).then(d=>{if(d.ok){let N=d.data,h=[],x=N.map((z,O)=>{let k={...z},L=k.id,C=A[O];C.contentByLocale&&(k.contentByLocale=Object.keys(C.contentByLocale).reduce((y,R)=>{let S=C.contentByLocale[R];return y[R]={...S,content:{...S.content},id:k.id},y},{}));let{settings:B}=C,{contentByLocale:M,id:q}=k;k.settings=B;let H={id:q,contentByLocale:M,settings:B};return C.inputs.map(y=>y.id).reduce((y,R)=>{let S=A.findIndex(b=>b.id===R);return [...y,S]},[]).map(y=>({...N[y],originalBlock:A[y]})).forEach(y=>{let{id:R,type:S,originalBlock:b}=y;if([T.SELECTOR,T.VIZ].includes(S)){if(H.contentByLocale?.logic?.content?.api){let ie=H.contentByLocale?.logic.content.api;H.contentByLocale.logic.content.api=Yt(`(selector${b.id}id)`,`selector${R}id`,ie);}if(H.contentByLocale?.logic?.content?.logic){let ie=H.contentByLocale.logic.content.logic;H.contentByLocale.logic.content.logic=Yt(`(selector${b.id}id)`,`selector${R}id`,ie);}}h.push({id:R,inputAction:{operation:"create",input:{input_id:R,block_id:L}}});}),H});return Qt("block")([...x,...h])(o,n,a)}}),ee(e)(p)(o,n,a).then(d=>(d.ok&&o(J.setRequest({key:u,type:e,status:"SUCCESS",data:d.data})),d))}return ee(e)({...m,id:c.id})(o,n,a)}})}}function ae(e){return t=>{let r=tr(e,t);return (o,n,a)=>{o(Te(e,r));let s=Ee(a,"read",e);if(typeof s!="function"){let i=`Failed to get valid RPC method for entity "${e}"`;return o(Se(e,r,500,i)),Promise.reject(new Error(i))}return s(t).then(i=>(i.ok===true?o(J.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(Se(e,r,i.status,i.error)),i))}}}function ee(e){return t=>{let r=mt(e,t);return (o,n,a)=>(o(Te(e,r)),Ee(a,"update",e)(t).then(i=>(i.ok===true?o(J.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(Se(e,r,i.status,i.error)),i)))}}function Qt(e){return t=>{let r=mt(e,t[0]);return (o,n,a)=>(o(Te(e,r)),Ee(a,"updateBulk",e)(t).then(i=>(i.ok===true?o(J.setUpdateRequest({key:r,operation:"updateBulk",status:"SUCCESS",type:e,data:i.data})):o(Se(e,r,i.status,i.error)),i)))}}function ge(e){return t=>{let r=rr(e,t);return (o,n,a)=>(o(Te(e,r)),Ee(a,"delete",e)(t).then(i=>{i.ok===true?o(J.setDeleteRequest({key:r,operation:"delete",status:"SUCCESS",type:e,data:i.data})):o(Se(e,r,i.status,i.error));}))}}function dt(e,t){if(e==="variant"){let r=t;return `create(variant, [${r.dimension_id}, ${r.name}])`}return `create(${e}, [${Object.keys(t)}])`}function tr(e,t={}){let r=t.id==null?null:`'${t.id}'`;return `read(${e}, ${r}, ${!!t.include})`}function mt(e,t){let{id:r,...o}=t;return `update(${e}, ${r}, [${Object.keys(o)}])`}function rr(e,t){return `delete(${e}, ${t})`}function or(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:nr,setPreviews:Qo,setSectionState:sr,resetSectionState:ar,setCurrentLocale:Xo,setPreferredLocale:Jo,addRunConsumersRunning:ir,removeRunConsumersRunning:cr}=xe;function Zo(e,t){return async(r,o,n)=>{let a=await n.validateVariantSlug({dimension:e,slug:t});if("error"in a)throw new Error(a.error);return a.data}}function en(e){return async(t,r,o)=>{let n=await o.searchReport(e);if("error"in n)throw new Error(n.error);return n.data}}function tn(){return async(e,t,r)=>{let o=await r.regenerateSearch(void 0);if("error"in o)throw new Error(o.error);return o.data}}function lr(e){return async(t,r,o)=>{let n=await o.readMember(e);if("error"in n)throw new Error(n.error);return n.data}}function rn(e){return async(t,r,o)=>{let n=await o.searchMember(e);if(n.ok===true)return n.data;throw new Error(n.error)}}async function ur(e,t,r,o){let n=r().status,a={...n,...o},s={...n.query,...o.query};Object.keys(s).forEach(c=>s[c]===void 0&&delete s[c]);let i={...a,query:s};t(nr(i)),n.activeSection&&t(pr(e,{query:s}));}function on(e,t){return async(r,o)=>ur(e,r,o,{query:{[t]:void 0}})}function nn(e,t,r){return async(o,n)=>ur(e,o,n,{query:{[t]:r}})}function pr(e,t){return async(r,o)=>{let n=o(),{currentLocale:a}=n.status,s=n.records.entities.block,i=e.formatterFunctions[a],c=e.datasourceFunctions,{parsedParams:l,statusPayload:m}=xt(n.status,t),{sid:u,bid:f,previews:p,query:A}=l;Object.keys(m).length&&r(xe.setStatus(m));let P={...Kt(p),locale:a,...Ie()},d={variables:P,query:A,locale:a};r(xe.addRunConsumersRunning([u]));let N=n.records.entities.section[u],h=async x=>r(lr(x));try{let x=await Ht(s,N&&[N],f,i,d,void 0,h,"section",c),{variables:z,status:O}=x;r(kt.setVariableChange({attributes:P,variables:z,status:O})),r(xe.removeRunConsumersRunning([u]));}catch(x){console.error("Error in runConsumers client side: recalculateVariables",x);}}}function sn(e){return async(t,r,o)=>{let n=await o.readMetadata(e);if("error"in n)throw new Error(n.error);return n.data}}function an(e){return async(t,r,o)=>{let n=await o.urlProxy(e);if("error"in n)throw new Error(n.error);return n.data}}function cn(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function ln(e){return async(t,r,o)=>{let n=await o.searchUser(e);if("error"in n)throw new Error(n.error);return n.data}}function un(e){return async(t,r,o)=>{let n=await o.readUser({user_id:e});if("error"in n)throw new Error(n.error);return n.data}}function pn({user:e}){return async(t,r,o)=>{let n=await o.updateUser(e);if("error"in n)throw new Error(n.error);return n.data}}function dn(e){return async(t,r,o)=>{let n=await o.updateMyData(e);if("error"in n)throw new Error(n.error);return n.data}}function mn(e){let{removeBlocks:t}=re.actions;return async r=>{await r(t(e));}}function fn(e){let{addBlocks:t}=re.actions;return async r=>{await r(t(e));}}function yn(e){return async(t,r,o)=>{let n=await o.readPrivateBlocks({...e,roles:[]});if("error"in n)throw new Error(n.error);return n.data}}function Rn(e){return async(t,r,o)=>{let n=await o.revalidateUrl({target:e.target});if("error"in n)throw new Error(n.error);return n.data}}function En(e){return async(t,r,o)=>{let n=await o.revalidateReport({reportId:e.reportId,profilePrefix:e.profilePrefix});if("error"in n)throw new Error(n.error);return n.data}}function gn(){return async(e,t,r)=>{let o=await r.readEnvSecrets({});if("error"in o)throw new Error(o.error);return o.data}}function Sn(){let{removeDataSourceLogic:e}=re.actions;return async t=>{await t(e());}}var {locales:bn}=Z(),An={pathSegment:"path",formatterFunctions:bn.reduce((e,t)=>({...e,[t]:{}}),{}),datasourceFunctions:[],profilePrefix:"path",siteProps:{}};createContext(An);Z();var Xe=useDispatch,Ne=useSelector;var Tr=e=>r=>{let{store:o,props:n}=ze.useWrappedStore(r);return jsx(Provider,{store:o,children:jsx(e,{...n})})};export{We as actions,ze as storeWrapper,Xe as useBespokeDispatch,Ne as useBespokeSelector,Tr as withBespokeStore};
5
+ `)}));}let C=await Promise.all(L).catch(B=>B.message);if(typeof C=="string"&&C)return {outputVariables:{},renderVariables:{},status:{error:C}};l=C.length===1?C[0].data:C.map(B=>B.data),f=C.reduce((B,M)=>B+JSON.stringify(M.data).length/1024,0),u=Math.max(...C.map(B=>B.requestDuration)),A=C.map(B=>B.apiDataSource?`${B.apiDataSource.name} (${B.apiDataSource.id})`:null),P=C.map(B=>B.finalUrl);}if(e.type===T.SELECTOR){let{config:k,log:L,error:C}=st(e.id,e.contentByLocale[a].content.logic,t,r,true);return {outputVariables:vt(e.id,i,k),renderVariables:k,status:{log:L,error:C,allowed:c}}}if(e.type===T.MULTIHIERARCHY_SELECTOR){let{config:k,log:L,error:C}=it(e.id,e.contentByLocale[a].content.logic,t,r,true);return {outputVariables:Nt(e.id,i,k),renderVariables:k,status:{log:L,error:C,allowed:c}}}if(e.type===T.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:c}};if(e.type===T.RELATED){let k=e.contentByLocale?.logic?.content?.simple?.compare||"variant",L=e.contentByLocale?.logic?.content?.simple?.limit||4,C=Object.keys(s).filter(R=>R.startsWith("report_id")).map(R=>s[R]),B=Object.keys(s).filter(R=>R.startsWith("dimension_id")).map(R=>s[R]),M=Object.keys(s).filter(R=>R.startsWith("variant_id")).map(R=>s[R]),q=Object.keys(s).filter(R=>R.startsWith("id")).map(R=>s[R]);if(!q.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:false}};let H=await Promise.all(q.map((R,S)=>o({mode:"ids",locale:a,ids:[R],output:"lite",variant:[M[S]]}))).then(R=>R.flatMap(S=>{let b=[];return je(S)?S.ok&&(b=S.data.results):b=S.results,b&&Array.isArray(b)?b:[]})).catch(R=>(console.error("Error getting related members",R),[]));if(B.length>1){let R=Object.keys(s).filter(v=>v.startsWith("variant_slug")).map(v=>s[v]),S=H.map((v,$)=>{let D={mode:"related",locale:a,related:L??4,current_ids:[v.content_id],output:"full",variant_ids:[v.variant_id]};return $===0&&(D.include_ids=[v.content_id]),D}),b=await Promise.all(S.map(v=>o(v))).then(v=>v.flatMap($=>{let D=[];return je($)?$.ok&&(D=$.data.results):D=$.results,D&&Array.isArray(D)?D:[]})).catch(v=>(console.error("Error getting related members",v),[])),ie=b.reduce((v,$)=>{let D=$.variant_slug;return v[D]||(v[D]=[]),v[D].push($),v},{}),Me=[],z=Object.keys(ie),te=[{combination:[],index:0}];for(;te.length>0;){let v=te.pop();if(!v)continue;let{combination:$,index:D}=v;if(D===z.length){Me.push($);continue}let ce=z[D],j=ie[ce];for(let Y of j)te.push({combination:[...$,Y],index:D+1});}return {outputVariables:{related_reports:Me.map(v=>{let $=v.sort((D,ce)=>R.indexOf(D.variant_slug)-R.indexOf(ce.variant_slug));return {entities:$,link:"/"+$.map(D=>`${D.variant_slug}/${D.slug}`).join("/")}})},renderVariables:{},status:{log:[],allowed:b.length>0}}}let _=H.map(R=>R.content_id),w={mode:"related",locale:a,related:L??4,current_ids:_,output:"full"};k&&(k==="report"?w.report_ids=C:k==="dimension"?w.dimension_ids=B:w.variant_ids=M);let K=await o(w).then(R=>{let S=[];return je(R)?R.ok&&(S=R.data.results):S=R.results,S&&Array.isArray(S)?S:[]}).catch(R=>(console.error("Error getting related members",R),[]));return {outputVariables:{related_reports:K.map(R=>({entities:[R],link:`/${R.variant_slug}/${R.slug}`}))},renderVariables:{},status:{log:[],allowed:K.length>0}}}let{logic:d}=wt(e,a),N=Re(d,t,r),h=ye("resp",l||{},N,t,s,r),{vars:x,error:G,log:O}=h;if(typeof x!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:O,duration:u,responseSize:f,resp:l,api:p,allowed:c,apiFinalUrls:P,apiDataSources:A}};let Q=Object.keys(x).reduce((k,L)=>({...k,[`${e.type}${e.id}${L}`]:x[L]}),{});return {renderVariables:x,outputVariables:[T.GENERATOR,T.SECTION_FLAG].includes(e.type)?x:Q,status:{log:O,error:G,duration:u,responseSize:f,resp:l,api:p,allowed:c,apiFinalUrls:P,apiDataSources:A}}}function $o(e,t,r,o,n,a,s){return e.consumers.forEach(i=>{if(t[i]){let c=`${r}-${i}`;!o.includes(c)&&(t[i].section_id===t[r].section_id||!n)&&o.push(c),e.consumers.filter(l=>t[l]&&t[l].section_id===t[r].section_id||!n).forEach(l=>lt(l,t,o,false,a,n,s));}})}var lt=(e,t,r=[],o=true,n=true,a=true,s=[])=>{if(s.includes(e))return [];s.push(e);let i=t[e];return i&&i.inputs.length&&o&&i.inputs.forEach(c=>{let l=`${c}-${e}`;r.includes(l)||r.push(l),i.inputs.forEach(m=>lt(m,t,r,o,false,a,s));}),i&&i.consumers.length&&n&&$o(i,t,e,r,a,n,s),r},Go=(e,t,r,o)=>{let n=true;if(e&&"allowed"in e.settings&&e.settings.allowed!=="always")if(e.settings.allowed==="never")n=false;else {let a=W(t),{error:s,output:i}=ye("variables",r,e.settings.allowedLogic||"return false;",o,void 0,a);s||(n=!!i);}return n},Ht=async(e,t,r,o,n,a={},s,i="section",c)=>{let l=i==="section",m=W(n),u=m.variables,f={...a.variables??{}},p={...a.status??{}},A=new Set,P=[],d={};r?d={...d,[r]:e[r]}:t?d=(t??[]).reduce((_,{id:w})=>({..._,...Ut(w,e)}),{}):d=Object.values(e).filter(_=>ct(_)).reduce((_,w)=>({..._,[w.id]:w}),{});let N=Object.values(d).filter(_=>ct(_));if(N.length>0){ne&&console.info("%crunConsumers: calculating section flags","color:purple",N.map(y=>y.id).join(", "));let _=Object.fromEntries(await Promise.all(N.map(async y=>[y.id,await Gt(y,o,{...m,variables:u,locale:u.locale},s,c).then(R=>{let{outputVariables:S,status:b}=R;if(b.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${y.id}, Section ${y.section_id}) failed with message: ${b.error}. `);p[y.id]={allowed:false,error:b.error},f[y.id]={};}return (y.consumers.length>0||[T.GENERATOR,T.SECTION_FLAG,T.RELATED].includes(y.type))&&b.allowed&&Object.keys(S).length>0?f[y.id]=S:f[y.id]={},i==="report"?(p[y.id]={allowed:b.allowed},[T.GENERATOR,T.SECTION_FLAG].includes(y.type)&&b.api&&(p[y.id].api=b.api)):p[y.id]=b,R})]))),K=Object.entries(_).filter(([,y])=>!y.outputVariables[Ft]).map(([y])=>Number(y));A=new Set(K.map(y=>e[y].section_id)),Object.values(d).filter(y=>A.has(y.section_id)).forEach(y=>{P.push(y.id),delete d[y.id];}),ne&&console.info("%crunConsumers: removing sections","color:purple",A.keys());}let h=A.size>0?Object.fromEntries(Object.entries(e).filter(([,_])=>A?.has(_.section_id)?(P.includes(_.id)||P.push(_.id),false):true)):e;if(P.length>0&&(h=Object.fromEntries(Object.entries(h).map(([_,w])=>{let K={...w,inputs:w.inputs.filter(y=>!P.includes(y)),consumers:w.consumers.filter(y=>!P.includes(y))};return [_,K]}))),!r&&!t)return {variables:{...a.variables??{},...f},status:{...a.status??{},...p}};i==="report"&&P.length>0&&P.forEach(_=>{delete f[_],delete p[_],delete e[_];}),ne&&console.info("%crunConsumers: running root blocks","color:purple",Object.keys(d));let x=Object.keys(d).reduce((_,w)=>{let K=new Date,y=lt(Number(w),h,[],!r,true,l).map(b=>b.split("-")),S=(new Date().getTime()-K.getTime())/1e3;return ne&&console.info(`%cResolved dependencies for ${w} (${S.toFixed(2)}s)`,"color:blue"),[..._,...y]},[]),G=new Date,O=Object.keys(d).reduce((_,w)=>_.includes(w)?[..._]:[w,..._],Oo(x)),k=(new Date().getTime()-G.getTime())/1e3;ne&&console.info(`%cResolved DAG (${k.toFixed(2)}s): `,"color:green",O);let L=process.env.NEXT_PUBLIC_REPORTS_MAX_CONCURRENT_QUERIES_PER_REPORT,C=parseInt(`${L||0}`,10);async function B(_,w){let K=new Map,y=[],R=async()=>y.length;for(let S of _){if(C!==0){let z=await R();for(;z>=C;)ne&&console.info("Too many pending promises, waiting...",z,y),await new Promise(te=>setTimeout(te,500)),z=await R();}let b=w[S],Me=Promise.all(b.inputs.filter(z=>_.includes(String(z))).map(z=>K.get(Number(z)))).then(async()=>{let z=b.inputs.reduce((j,Y)=>({...j,...f[Y]}),u),te=b.inputs.find(j=>(b.settings?.ignoreCascade?b.settings?.ignoreCascade:[]).includes(j)||!p[j]?false:!p[j].allowed||p[j].hiddenByCascade);if(te){p[S]={allowed:false,hiddenByCascade:p[te].hiddenByCascade||te},f[S]={},y.splice(y.indexOf(Number(S)),1);return}let ft=new Date,v;typeof window<"u"&&[T.SELECTOR,T.MULTIHIERARCHY_SELECTOR].includes(b.type)&&b.settings[It.DISABLED]?v=new Promise(j=>{j({outputVariables:f[S],status:p[S]});}):v=Gt(b,o,{...m,variables:z,locale:z.locale},s,c);let $=await v.then(({outputVariables:j,status:Y})=>{if(Y.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${S}, Section ${b.section_id}) failed with message: ${Y.error}.`);p[S]={allowed:false,error:Y.error},f[S]={};}(b.consumers.length>0||[T.GENERATOR,T.SECTION_FLAG,T.RELATED].includes(b.type))&&Y.allowed&&Object.keys(j).length>0?f[S]=j:f[S]={},i==="report"?(p[S]={allowed:Y.allowed},[T.GENERATOR,T.SECTION_FLAG].includes(b.type)&&Y.api&&(p[S].api=Y.api)):p[S]=Y;}),ce=(new Date().getTime()-ft.getTime())/1e3;return ne&&console.info(`%cBlock ${b.id} resolved in ${ce.toFixed(3)}s`,ce>500?"color:red":"color:green"),p[S].duration=p[S].duration?p[S].duration:ce,y.splice(y.indexOf(Number(S)),1),$}).catch(z=>{throw y.splice(y.indexOf(Number(S)),1),z});y.push(Number(S)),K.set(Number(S),Me);}await Promise.all(Array.from(K.values()));}let M=new Date;await B(O,h);let H=(new Date().getTime()-M.getTime())/1e3;return ne&&console.info(`%cResolved Variables (${H.toFixed(2)}s), ${O.length} blocks`,"color:green"),{variables:{...a.variables??{},...f},status:{...a.status??{},...p}}};function zo(e=[]){return e.reduce((t,r,o)=>{if(r){let n=o+1;t[`id${n}`]=r.id,t[`name${n}`]=r.name,t[`slug${n}`]=r.slug,"attributes"in r&&Object.keys(r.attributes).forEach(a=>{t[`attr_${a}${n}`]=r.attributes[a];}),t[`variant_id${n}`]=r.variant_id,t[`variant_name${n}`]=r.variant_name,t[`variant_slug${n}`]=r.variant_slug,t[`dimension_id${n}`]=r.dimension_id,t[`dimension_name${n}`]=r.dimension_name,t.report_id=r.report_id,t.report_name=r.report_name;}return t},{})}var Kt=zo;function Ee(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${jt(r)}`;return e[n]}let o=`${t}${jt(r)}`;return e[o]}function jt(e){return e[0].toUpperCase()+e.slice(1)}var X=re.actions,Jt=ve({block:se("block"),dimension:se("dimension"),formatter:se("formatter"),report:se("report"),section:se("section"),variant:se("variant"),datasource:se("datasource")}),Oe=ve({block:ae("block"),dimension:ae("dimension"),formatter:ae("formatter"),report:ae("report"),section:ae("section"),variant:ae("variant"),datasource:ae("datasource")}),Xt=ve({block:ee("block"),dimension:ee("dimension"),formatter:ee("formatter"),report:ee("report"),section:ee("section"),variant:ee("variant"),datasource:ee("datasource")}),Zt=ve({block:ge("block"),dimension:ge("dimension"),formatter:ge("formatter"),report:ge("report"),section:ge("section"),variant:ge("variant"),datasource:ge("datasource")}),er=ve({block:Wt("block"),section:Wt("section")});function ve(e){return (t,r)=>{let o=e[t];if(!o)throw new Error(`Attempting to dispatch action for invalid entity type '${t}'`);return o(r)}}function Te(e,t){return (r,o)=>{let a=o().records.requests[e][t],s=!a||a.status==="UNINITIALIZED"?"LOADING":"FETCHING";r(X.setRequest({key:t,type:e,status:s}));}}function Se(e,t,r,o){return n=>{typeof window=="object"&&notifications.show({autoClose:3e3,color:"red",id:t,message:o,title:"Error"}),n(X.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function se(e){return t=>{let r=dt(e,t);return (o,n,a)=>(o(Te(e,r)),Ee(a,"create",e)(t).then(i=>(i.ok===true?o(X.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(Se(e,r,i.status,i.error)),i)))}}function jo(e){return t=>{let r=dt(e,t[0]);return (o,n,a)=>(o(Te(e,r)),Ee(a,"createBulk",e)(t).then(i=>(i.ok===true?o(X.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(Se(e,r,i.status,i.error)),i)))}}function Yt(e,t,r){return r.replace(new RegExp(e,"g"),t)}function Yo(e){return e.section_id!==void 0}function Wo(e){return e.report_id!==void 0}function Wt(e){return t=>{let{create:r}=t;return (o,n,a)=>se(e)(r)(o,n,a).then(async i=>{if(i.ok){let{data:c}=i,{id:l}=c,{update:m}=t,u=or(e,{id:l});if(o(Te(e,`${u}`)),e==="block"&&Yo(r)){let f=produce(m,d=>{d.id=l;}),{contentByLocale:p}=f;p&&(f=produce(f,d=>{d.id=l,d.contentByLocale=Object.keys(p).reduce((N,h)=>{let x=p?p[h]:{};return N[h]={...x,id:l},N},{});}));let P=f.inputs?.map(d=>({type:d.type,id:d.id,inputAction:{operation:"create",input:{input_id:d.id,block_id:f.id}}}));return P&&P.length>0&&Qt(e)([f,...P])(o,n,a).then(()=>ae("section")({id:f.section_id,include:true})(o,n,a).then(d=>(d.ok&&o(X.setRequest({key:u,type:e,status:"SUCCESS",data:d.data})),d))),ee(e)(f)(o,n,a).then(d=>(d.ok&&o(X.setRequest({key:u,type:e,status:"SUCCESS",data:d.data})),d))}if(e==="section"&&Wo(r)){let{id:f}=c,p=produce(m,d=>{d.id=f;}),{blocks:A}=p,P=A?.map(d=>({type:d.type,blockcol:d.blockcol,blockrow:d.blockrow,section_id:f,locales:Object.keys(d.contentByLocale).map(N=>N)}));return P&&A&&await jo("block")(P)(o,n,a).then(d=>{if(d.ok){let N=d.data,h=[],x=N.map((G,O)=>{let k={...G},L=k.id,C=A[O];C.contentByLocale&&(k.contentByLocale=Object.keys(C.contentByLocale).reduce((y,R)=>{let S=C.contentByLocale[R];return y[R]={...S,content:{...S.content},id:k.id},y},{}));let{settings:B}=C,{contentByLocale:M,id:q}=k;k.settings=B;let H={id:q,contentByLocale:M,settings:B};return C.inputs.map(y=>y.id).reduce((y,R)=>{let S=A.findIndex(b=>b.id===R);return [...y,S]},[]).map(y=>({...N[y],originalBlock:A[y]})).forEach(y=>{let{id:R,type:S,originalBlock:b}=y;if([T.SELECTOR,T.VIZ].includes(S)){if(H.contentByLocale?.logic?.content?.api){let ie=H.contentByLocale?.logic.content.api;H.contentByLocale.logic.content.api=Yt(`(selector${b.id}id)`,`selector${R}id`,ie);}if(H.contentByLocale?.logic?.content?.logic){let ie=H.contentByLocale.logic.content.logic;H.contentByLocale.logic.content.logic=Yt(`(selector${b.id}id)`,`selector${R}id`,ie);}}h.push({id:R,inputAction:{operation:"create",input:{input_id:R,block_id:L}}});}),H});return Qt("block")([...x,...h])(o,n,a)}}),ee(e)(p)(o,n,a).then(d=>(d.ok&&o(X.setRequest({key:u,type:e,status:"SUCCESS",data:d.data})),d))}return ee(e)({...m,id:c.id})(o,n,a)}})}}function ae(e){return t=>{let r=tr(e,t);return (o,n,a)=>{o(Te(e,r));let s=Ee(a,"read",e);if(typeof s!="function"){let i=`Failed to get valid RPC method for entity "${e}"`;return o(Se(e,r,500,i)),Promise.reject(new Error(i))}return s(t).then(i=>(i.ok===true?o(X.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(Se(e,r,i.status,i.error)),i))}}}function ee(e){return t=>{let r=mt(e,t);return (o,n,a)=>(o(Te(e,r)),Ee(a,"update",e)(t).then(i=>(i.ok===true?o(X.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(Se(e,r,i.status,i.error)),i)))}}function Qt(e){return t=>{let r=mt(e,t[0]);return (o,n,a)=>(o(Te(e,r)),Ee(a,"updateBulk",e)(t).then(i=>(i.ok===true?o(X.setUpdateRequest({key:r,operation:"updateBulk",status:"SUCCESS",type:e,data:i.data})):o(Se(e,r,i.status,i.error)),i)))}}function ge(e){return t=>{let r=rr(e,t);return (o,n,a)=>(o(Te(e,r)),Ee(a,"delete",e)(t).then(i=>{i.ok===true?o(X.setDeleteRequest({key:r,operation:"delete",status:"SUCCESS",type:e,data:i.data})):o(Se(e,r,i.status,i.error));}))}}function dt(e,t){if(e==="variant"){let r=t;return `create(variant, [${r.dimension_id}, ${r.name}])`}return `create(${e}, [${Object.keys(t)}])`}function tr(e,t={}){let r=t.id==null?null:`'${t.id}'`;return `read(${e}, ${r}, ${!!t.include})`}function mt(e,t){let{id:r,...o}=t;return `update(${e}, ${r}, [${Object.keys(o)}])`}function rr(e,t){return `delete(${e}, ${t})`}function or(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:nr,setPreviews:Qo,setSectionState:sr,resetSectionState:ar,setCurrentLocale:Jo,setPreferredLocale:Xo,addRunConsumersRunning:ir,removeRunConsumersRunning:cr}=xe;function Zo(e,t){return async(r,o,n)=>{let a=await n.validateVariantSlug({dimension:e,slug:t});if("error"in a)throw new Error(a.error);return a.data}}function en(e){return async(t,r,o)=>{let n=await o.searchReport(e);if("error"in n)throw new Error(n.error);return n.data}}function tn(){return async(e,t,r)=>{let o=await r.regenerateSearch(void 0);if("error"in o)throw new Error(o.error);return o.data}}function lr(e){return async(t,r,o)=>{let n=await o.readMember(e);if("error"in n)throw new Error(n.error);return n.data}}function rn(e){return async(t,r,o)=>{let n=await o.searchMember(e);if(n.ok===true)return n.data;throw new Error(n.error)}}async function ur(e,t,r,o){let n=r().status,a={...n,...o},s={...n.query,...o.query};Object.keys(s).forEach(c=>s[c]===void 0&&delete s[c]);let i={...a,query:s};t(nr(i)),n.activeSection&&t(pr(e,{query:s}));}function on(e,t){return async(r,o)=>ur(e,r,o,{query:{[t]:void 0}})}function nn(e,t,r){return async(o,n)=>ur(e,o,n,{query:{[t]:r}})}function pr(e,t){return async(r,o)=>{let n=o(),{currentLocale:a}=n.status,s=n.records.entities.block,i=e.formatterFunctions[a],c=e.datasourceFunctions,{parsedParams:l,statusPayload:m}=xt(n.status,t),{sid:u,bid:f,previews:p,query:A}=l;Object.keys(m).length&&r(xe.setStatus(m));let P={...Kt(p),locale:a,...Ie()},d={variables:P,query:A,locale:a};r(xe.addRunConsumersRunning([u]));let N=n.records.entities.section[u],h=async x=>r(lr(x));try{let x=await Ht(s,N&&[N],f,i,d,void 0,h,"section",c),{variables:G,status:O}=x;r(kt.setVariableChange({attributes:P,variables:G,status:O})),r(xe.removeRunConsumersRunning([u]));}catch(x){console.error("Error in runConsumers client side: recalculateVariables",x);}}}function sn(e){return async(t,r,o)=>{let n=await o.readMetadata(e);if("error"in n)throw new Error(n.error);return n.data}}function an(e){return async(t,r,o)=>{let n=await o.urlProxy(e);if("error"in n)throw new Error(n.error);return n.data}}function cn(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function ln(e){return async(t,r,o)=>{let n=await o.searchUser(e);if("error"in n)throw new Error(n.error);return n.data}}function un(e){return async(t,r,o)=>{let n=await o.readUser({user_id:e});if("error"in n)throw new Error(n.error);return n.data}}function pn({user:e}){return async(t,r,o)=>{let n=await o.updateUser(e);if("error"in n)throw new Error(n.error);return n.data}}function dn(e){return async(t,r,o)=>{let n=await o.updateMyData(e);if("error"in n)throw new Error(n.error);return n.data}}function mn(e){let{removeBlocks:t}=re.actions;return async r=>{await r(t(e));}}function fn(e){let{addBlocks:t}=re.actions;return async r=>{await r(t(e));}}function yn(e){return async(t,r,o)=>{let n=await o.readPrivateBlocks({...e,roles:[]});if("error"in n)throw new Error(n.error);return n.data}}function Rn(e){return async(t,r,o)=>{let n=await o.revalidateUrl({target:e.target});if("error"in n)throw new Error(n.error);return n.data}}function En(e){return async(t,r,o)=>{let n=await o.revalidateReport({reportId:e.reportId,profilePrefix:e.profilePrefix});if("error"in n)throw new Error(n.error);return n.data}}function gn(){return async(e,t,r)=>{let o=await r.readEnvSecrets({});if("error"in o)throw new Error(o.error);return o.data}}function Sn(){let{removeDataSourceLogic:e}=re.actions;return async t=>{await t(e());}}var {locales:bn}=Z(),An={pathSegment:"path",formatterFunctions:bn.reduce((e,t)=>({...e,[t]:{}}),{}),datasourceFunctions:[],profilePrefix:"path",siteProps:{}};createContext(An);Z();var Je=useDispatch,Ne=useSelector;var Tr=e=>r=>{let{store:o,props:n}=Ge.useWrappedStore(r);return jsx(Provider,{store:o,children:jsx(e,{...n})})};export{We as actions,Ge as storeWrapper,Je as useBespokeDispatch,Ne as useBespokeSelector,Tr as withBespokeStore};