@datawheel/bespoke 0.8.8 → 1.0.0-rc.1

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,12 +1 @@
1
- import { Stack, Text, Badge, Group, Container, TextInput, Loader, ActionIcon, LoadingOverlay, Alert, Tooltip, Modal, Autocomplete, MediaQuery, Select, Button, useMantineTheme, ScrollArea, Grid, Pagination, Image, Card } from '@mantine/core';
2
- import { createContext, forwardRef, useContext, useState, useCallback, useEffect, useMemo, useRef } from 'react';
3
- import { IconSearch, IconTrash, IconX } from '@tabler/icons-react';
4
- import { useDebouncedValue, useClickOutside } from '@mantine/hooks';
5
- import { useRouter } from 'next/router';
6
- import ge from 'axios';
7
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
- import { format } from 'd3-format';
9
-
10
- var ie={try_another:"Try another search or filter.",search:"Search",filters_all:"All",no_results:"No Results",load_more:"Load more",select_report:"Select Report",select_variant:"Select Variant",count_format:".2s",report:{},dimension:{},variant:{}},he=createContext({metadata:[],loadingItems:!1,setLoadingItems:()=>null,loadingMetadata:!1,setLoadingMetadata:()=>null,resultCount:{},totalCount:{},setResultCount:()=>null,activePage:1,setActivePage:()=>null,pageSize:10,results:[],filters:{},doQuery:()=>null,setFilters:()=>null,query:"",setQuery:()=>null,debouncedQuery:"",currentPageTotal:10,selectorStructure:[],translations:ie,setTranslations:()=>null,showSelectors:!0}),L=()=>useContext(he);function He({children:t,pageSize:n=10,sort:o=void 0}){let d={profile:void 0,variant:void 0},[s,g]=useState([]),[R,c]=useState(!1),[y,h]=useState(!1),[a,x]=useState({}),[v,p]=useState({}),[e,S]=useState(1),[b,G]=useState(d),[B,H]=useState(""),[w]=useDebouncedValue(B,750),[ee,te]=useState([]),[O,K]=useState(ie),[T,F]=useState(!1),{locale:Z}=useRouter(),re=async()=>{try{h(!0),ge.get("/api/cms/read/metadata").then(r=>{if(r&&r.data&&r.data.data&&r.data.data.data){let m=r.data.data.data.reduce((u,l)=>(l.dimensions&&l.dimensions.forEach(f=>{f.variants&&f.variants.forEach(i=>{u[i.id]=i.members_count||0;});}),u),{});g(r.data.data.data),x(m),p(m);}h(!1),F(!0);}).catch(r=>{console.error(r);});}catch(r){console.error("Error fetching metadata:",r),g([]),h(!1),x({}),p({});}},D=r=>{x(r||v);},oe=useCallback(async(r,m,u)=>{!T&&s.length===0&&await re(),G({profile:r,variant:m}),u!==""&&H(u);},[]);useEffect(()=>{let r=!1;return T&&(c(!0),S(1),Q(r,0)),()=>{r=!1;}},[w,b,T]),useEffect(()=>{if(T){c(!0);let r=(e-1)*n;Q(!1,r);}},[e]);let Q=async(r,m)=>{let u=b.profile&&!Number.isNaN(b.profile)?[b.profile]:[],l=b.variant?typeof b.variant=="string"&&b.variant.includes(",")?b.variant.split(",").map(i=>parseInt(i,10)):[parseInt(b.variant,10)]:[],f={query:w,format:"profiles",locale:Z,limit:n,offset:m,visible:!0,includes:!0,noImage:!1,variant:l,dimension:[],report:u,all:!1,origin:"typesense"};o&&(f.sort=o),ge.get("/api/cms/search/reports",{params:f}).then(i=>{if(i&&i.data&&i.data.data&&i.data.data.results&&!r){let M=i.data.data.results;te(M),x(!B||B===""?!1:i.data.data.meta.variantCount);}c(!1);}).catch(i=>{console.error(i),c(!1);});},N=a||v,U={id:void 0,name:O.filters_all||"ALL"},ne=r=>{let m=r.reduce((l,f)=>l.reduce((i,M)=>i.concat(f.map(Oe=>[].concat(M,Oe))),[])).map(l=>{let f;return Array.isArray(l)?f={id:l.map(i=>i.id).join(","),name:l.map(i=>i.name).join(" / "),members_count:l.reduce((i,M)=>i*(N[M.id]||1),1),ordering:l.reduce((i,M)=>i+M.ordering,0)}:(l.members_count=N[l.id]||0,f={...l,members_count:N[l.id]||0}),f}),u=m.reduce((l,f)=>l+(f.members_count||0),0);return [{...U,members_count:u},...m]},me=s.length>1,z=useMemo(()=>{let r=[];if(!y&&s.length>0&&N){let m=s.filter(u=>u.dimensions.length>0).map(u=>{let l=!1,f=ne(u.dimensions.map(i=>i.variants));return f&&f.length>2&&(l=!0),{id:u.id,name:u.dimensions.map(i=>i.name).join(" / "),variants:f,members_count:f.filter(i=>i.id).reduce((i,M)=>i+(M.members_count||0),0),show:l}});r=[{...U,members_count:m.reduce((u,l)=>u+(l.members_count||0),0)},...m];}return r},[y,N,s,U]),ae=useMemo(()=>{let r;return z&&(b.profile?b.profile&&(r=z.find(m=>m.id===b.profile),r&&b.variant&&r.variants&&(r=r.variants.find(m=>m.id===b.variant))):r=z.find(m=>!m.id)),r?r.members_count:n},[b,z]),J={metadata:s,loadingMetadata:y,setLoadingMetadata:h,loadingItems:R,setLoadingItems:c,resultCount:a,totalCount:v,setResultCount:D,activePage:e,setActivePage:S,pageSize:n,filters:b,setFilters:G,doQuery:Q,query:B,setQuery:H,debouncedQuery:w,results:ee,currentPageTotal:ae,selectorStructure:z,translations:O,setTranslations:r=>K({...ie,...r}),showSelectors:me,initExplore:oe};return jsx(he.Provider,{value:J,children:t})}function We({translations:t}){let{loadingItems:n,setFilters:o,selectorStructure:d,filters:s,showSelectors:g}=L(),R=e=>{let S=e===null||Number.isNaN(e)?void 0:parseInt(e,10);S!==s.profile?o({profile:S,variant:void 0}):S&&o({profile:void 0,variant:void 0});},c=e=>{let S=e===null?void 0:typeof e=="string"&&e.includes(",")?e:parseInt(e,10);S!==s.variant?o({...s,variant:S}):S&&o({...s,variant:void 0});},y=e=>e<1e3?e:format(t.count_format)(e).replace(/\.0+([a-zA-Z]*)$/,"$1"),h=d.length===2?d[1].id:s.profile,a=h?d.find(e=>e.id===h):void 0,x=a&&a.variants&&s.variant?a.variants.find(e=>e.id===s.variant):void 0,v=useMemo(()=>d.map(e=>({value:String(e.id||""),label:(t?.dimensionIcon?.[e.name]?`${t?.dimensionIcon?.[e.name]} `:"")+(t?.dimension[e.name]||e.name)+(!n&&(!a||e.id===a?.id)?` (${y(e.members_count)})`:"")})),[t,a,d]),p=useMemo(()=>a?.variants?.map(e=>({value:String(e.id||""),label:(t?.variantIcon?.[e.name]?`${t?.variantIcon?.[e.name]} `:"")+(t?.variant[e.name]||e.name)+(!n&&(!x||e.id===x?.id)?` (${y(e.members_count)})`:"")}))??[],[t,x,d]);return jsx(Fragment,{children:g&&jsxs(Fragment,{children:[jsx(MediaQuery,{largerThan:1e3,styles:{display:"none"},children:jsxs(Group,{className:"bespoke-explore-reports-select-container",position:"center",mb:"md",children:[jsx(Select,{className:"bespoke-explore-reports-select",data:v,value:String(a?.id||""),onChange:e=>R(e),label:t.select_report||"Select Report",placeholder:t.select_report||"Select Report",clearable:typeof a?.id<"u",style:{width:"450px"}}),a?.variants&&a.variants.length>2&&jsx(Select,{className:"bespoke-explore-variant-select",data:p,value:String(x?.id||""),onChange:e=>c(e),label:t.select_variant||"Select Variant",placeholder:t.select_variant||"Select Variant",clearable:typeof x?.id<"u",style:{width:"450px"}})]})}),jsx(MediaQuery,{smallerThan:1e3,styles:{display:"none"},children:jsxs("div",{children:[jsx(Group,{position:"center",className:"bespoke-explore-reports-selector",mb:"md",children:d.map(e=>jsxs(Button,{"data-selected":e.id===a?.id?"true":"false","data-report-name":e.name,variant:e.id===a?.id?"outline":"subtle",onClick:()=>R(e.id),rightIcon:e.id&&e.id===a?.id?jsx(IconX,{size:"1rem"}):void 0,leftIcon:t?.dimensionIcon?.[e.name]??void 0,children:[jsx(Text,{span:!0,className:"bespoke-explore-reports-name",dangerouslySetInnerHTML:{__html:t?.dimension[e.name]??e.name}}),!n&&(!a||e.id===a?.id)&&jsx(Text,{span:!0,size:"xs",ml:"0.2rem",className:"bespoke-explore-reports-count",children:`(${y(e.members_count)})`})]},`p-${e.id}`))}),a&&a.variants&&a.variants.length>2&&jsx(Group,{position:"center",style:{minHeight:"36px"},className:"bespoke-explore-variant-selector",mb:"md",children:a.variants.map(e=>jsxs(Button,{"data-selected":e.id===x?.id?"true":"false","data-variant-name":e.name,variant:e.id===x?.id?"outline":"subtle",onClick:()=>c(e.id),rightIcon:e.id&&e.id===x?.id?jsx(IconX,{size:"1rem"}):void 0,leftIcon:t?.variantIcon?.[e.name]?jsx(Text,{span:!0,dangerouslySetInnerHTML:{__html:t.variantIcon[e.name]}}):void 0,children:[jsx(Text,{span:!0,className:"bespoke-explore-variant-name",dangerouslySetInnerHTML:{__html:t?.variant[e.name]??e.name}}),!n&&(!x||e.id===x?.id)&&jsx(Text,{span:!0,size:"xs",ml:"0.2rem",className:"bespoke-explore-variant-count",children:`(${y(e.members_count)})`})]},`v-${e.id}`))})]})})]})})}var Pe=We;function j(){return useMantineTheme().other.bespokeStyles??{}}var Ke=()=>{let t=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",n=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[t];return n.includes(t)||n.push(t),{localeDefault:t,locales:n}},q=Ke;function nt({reportId:t,reportName:n,members:o,href:d,onClick:s}){let g=o.map(c=>jsx(Image,{src:c.image.src,height:160,imageProps:{loading:"lazy"},alt:c.name},c.id)),R=o.map(c=>jsxs(Stack,{children:[jsx(Text,{weight:500,children:c.name}),jsx(Badge,{color:"green",variant:"light",w:"fit-content",children:c.variant})]},c.id));return jsxs(Card,{className:`report-${t}-tile`,shadow:"sm",p:"lg",radius:"md",withBorder:!0,children:[jsx(Card.Section,{children:jsx(Group,{grow:!0,spacing:0,children:g})}),jsx(Group,{position:"apart",mt:"md",mb:"xs",children:R}),jsx("a",{href:d,onClick:s,children:jsx(Button,{variant:"light",color:"blue",fullWidth:!0,mt:"md",radius:"md",children:`See ${n} Report`})})]})}var at=t=>{let{components:n}=j(),o=nt;return n?.ReportTile&&(o=n?.ReportTile),t&&(o=t),o};function it({profile:t,profilePrefix:n,onSelect:o,reportTile:d}){let s=useRouter(),g=s.locale,{localeDefault:R}=q(),y=`${g===R?"":`/${g}`}${n}${t.path}`,h=t.members.map(p=>({original_id:p.metadata.id,name:p.name,id:p.id,dimension_id:p.metadata.dimension.id,dimension:p.metadata.dimension.name,variant_id:p.metadata.variant.id,variant:p.metadata.variant.name,image:{src:`/api/cms/member/image?member=${p.id}&size=thumb`,alt:p.name}})),a=p=>{s.push(`${p}`),o&&o();},x=p=>{p.preventDefault(),a(y);},v=at(d);return jsx(Grid.Col,{xs:12,sm:6,md:4,lg:4,xl:3,children:jsx(v,{reportId:t.report.id,reportName:t.report.name,members:h,href:y,onClick:x})},t.id)}var Ee=it;function mt({profilePrefix:t,onSelect:n=()=>{},reportTile:o}){let[d,s]=useState(500),g=useRef(null),{results:R}=L(),c=g.current?.offsetTop||0,y=50;return useEffect(()=>{let{innerHeight:h}=window;s(h-c-y);},[c]),jsx(ScrollArea,{offsetScrollbars:!0,type:"always",h:d,ref:g,children:jsx(Grid,{align:"stretch",children:R.map(h=>jsx(Ee,{profile:h,profilePrefix:t,reportTile:o,onSelect:n},h.id))})})}var ke=mt;function gt(){let{activePage:t,setActivePage:n,pageSize:o,currentPageTotal:d}=L();return jsx(Group,{position:"center",children:jsx(Pagination,{value:t,onChange:g=>{n(g);},total:Math.ceil(d/o),size:"sm",py:"xs"})})}var Ae=gt;function It({profilePrefix:t,initialReportId:n,initialVariantId:o,translations:d,onSelect:s,reportTile:g,initialQuery:R}){let c=useRef(),y=L(),{query:h,setQuery:a,results:x,loadingItems:v,loadingMetadata:p,translations:e,setTranslations:S,initExplore:b}=y;useEffect(()=>{b&&b(n,o,R);},[b]),useEffect(()=>{v||c.current?.focus();},[v]),useEffect(()=>{d&&S(d);},[d]);let G=()=>{a("");};return jsxs(Container,{fluid:!0,pt:"1em",children:[jsx(TextInput,{placeholder:e.search,mb:"md",size:"xl",onChange:B=>a(B.target.value),readOnly:p||v,icon:jsx(IconSearch,{size:24}),value:h,rightSectionWidth:100,rightSectionProps:{style:{justifyContent:"flex-end",padding:"0 15px 0 0"}},rightSection:jsxs(Group,{align:"center",children:[(p||v)&&jsx(Loader,{size:28}),h&&h!==""&&jsx(ActionIcon,{onClick:G,children:jsx(IconTrash,{size:24})})]}),ref:c}),jsx(Pe,{translations:e}),jsx(LoadingOverlay,{visible:p||v}),!v&&x.length===0&&jsx(Alert,{title:e.no_results,color:"blue",children:e.try_another}),jsx(ke,{profilePrefix:t,onSelect:s,reportTile:g}),jsx(Ae,{})]})}var pe=It;var{localeDefault:Bt}=q();function Nt({exploreProps:t={profilePrefix:"/",locale:Bt},icon:n=jsx(IconSearch,{size:20}),actionIconProps:o={},modalProps:d={},tooltipProps:s={},tooltipText:g="Click to Explore",showIcon:R=!0,showTooltip:c=!1,children:y}){let[h,a]=useState(!1),x={variant:"light",size:"md",radius:"md",...o},v={fullScreen:!0,opened:h,onClose:()=>a(!1)},p=jsx(ActionIcon,{...x,onClick:()=>a(!0),children:n}),e=R?jsxs(Group,{spacing:"sm",style:{cursor:"pointer"},children:[y,p]}):y;return c&&(e=jsx(Tooltip,{label:g,...s,children:e})),jsxs(Fragment,{children:[jsx(Modal,{...v,...d,children:h&&jsx(pe,{...t,onSelect:()=>a(!1)})}),jsx("div",{onClick:()=>a(!0),children:y?e:jsx(Fragment,{children:p})})]})}var wt=Nt;var Dt=forwardRef(({id:t,members:n,...o},d)=>{let s=n.map(g=>jsxs(Stack,{align:"center",children:[jsx(Text,{weight:500,children:g.name}),jsx(Badge,{color:"green",variant:"light",children:g.variant})]},g.id));return jsx("div",{ref:d,children:jsx(Group,{position:"apart",grow:!0,...o,children:s})},t)}),Ne=Dt;var Jt=t=>{let{components:n}=j(),o=Ne;return n?.ReportItem&&(o=n?.ReportItem),t&&(o=t),o};function Yt({locale:t,profilePrefix:n="/report",autocompleteProps:o={},tooltipProps:d={},tooltipText:s="Click to search",searchReportParams:g={},callback:R,children:c}){let y=useRouter(),h=y.locale,{localeDefault:a}=q(),x=h===a?"":`/${h}`,v=Jt(o?o.itemComponent:null),[p,e]=useState(""),[S,b]=useDebouncedValue(p,500),[G,B]=useState([]),[H,w]=useState(!1),[ee,te]=useState(!1),[O,K]=useState(!1),[T,F]=useState(!c),Z=()=>{F(!1);},re=()=>{F(!0),N();},D=useRef(),oe=useClickOutside(Z),Q=o?.searchConfig?.searchLimit??10,N=()=>{w(!0);let m={query:S,format:"profiles",locale:t,limit:Q,visible:!0,includes:!0,noImage:!1,variant:[],dimension:[],report:[],all:!1,...g};ge.get("/api/cms/search/reports",{params:m}).then(u=>{u&&u.data&&u.data.data&&u.data.data.results&&B(u.data.data.results.map(l=>({id:l.id,reportName:l.report.name,href:`${x}${n}${l.path}`,reportPath:`${l.path}`,profilePrefix:n,value:`VALUE: ${l.id}`,members:l.members.map(f=>({original_id:f.metadata.id,name:f.name,id:f.id,variant:f.metadata.variant.name,image:{src:`/api/cms/member/image?member=${f.id}&size=thumb`,alt:f.name}}))}))),w(!1),D.current?.focus();}).catch(u=>{console.error(u),w(!1);});};useEffect(()=>{O&&S.length>=(o.searchConfig?.queryThreshold??0)&&N();},[O,S,o.searchConfig?.queryThreshold]),useEffect(()=>{b(),D.current&&T&&K(!0);},[]),useEffect(()=>{b(),D.current&&T&&K(!0);},[T]);let U=m=>{F(!1),R?R(m):(y.push(m.href),te(!0));},ne=m=>{m.includes("VALUE:")||e(m);},{searchConfig:me,...z}=o,ae={placeholder:"Search",size:"md",icon:jsx(IconSearch,{}),...z,data:G},J=jsx(Autocomplete,{value:p,itemComponent:v,onItemSubmit:U,onChange:ne,filter:()=>!0,disabled:(H||ee)&&!O,limit:Q,maxDropdownHeight:250,rightSection:jsx(Group,{spacing:0,position:"right",children:H?jsx(Loader,{size:20}):jsx(Fragment,{})}),rightSectionWidth:50,ref:D,...ae});return c?jsx(Tooltip,{label:s,disabled:T,...d,children:jsxs(Group,{ref:oe,spacing:"sm",align:"center",style:{cursor:"pointer"},children:[!T&&jsx("div",{onClick:()=>F(!0),children:c}),T&&jsx(Fragment,{children:J}),T?jsx(ActionIcon,{variant:"light",onClick:Z,children:jsx(IconX,{size:20})}):jsx(ActionIcon,{variant:"light",onClick:re,children:jsx(IconSearch,{size:20})})]})}):J}var er=Yt;
11
-
12
- export { pe as BespokeExplore, wt as BespokeExploreModal, He as BespokeExploreProvider, er as BespokeSearch, L 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 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};
package/dist/index.js CHANGED
@@ -1,7 +1 @@
1
- import { useMantineTheme, Modal, Group, Button } from '@mantine/core';
2
- import p, { useState, useCallback, useContext } from 'react';
3
- import { jsxs, jsx } from 'react/jsx-runtime';
4
-
5
- var C=p.createContext(void 0);function b(n){let[o,r]=useState(!1),[e,i]=useState(null),s=p.useMemo(()=>{function t(d,v){return v?{show:()=>t(d)}:new Promise((D,x)=>{i({request:d,onResolve:D,onReject:x}),r(!0);})}return {newConfirmation:t}},[]),u=()=>{r(!1),setTimeout(()=>i(null),200);},P=useCallback(t=>{!o||!e||(e.onResolve(t),u());},[o,e]),g=useCallback(t=>{!o||!e||(e.onReject(t),u());},[o,e]);return jsxs(C.Provider,{value:s,children:[e&&jsx(k,{opened:o,request:e.request,onConfirm:P,onCancel:g}),n.children]})}function k(n){let{request:o,opened:r,onCancel:e,onConfirm:i}=n,s=useMantineTheme();return jsxs(Modal,{centered:!0,zIndex:1002,opened:r,title:o.title,onClose:e,children:[o.message,jsxs(Group,{position:"right",style:{marginTop:s.spacing.sm},children:[jsx(Button,{onClick:e,children:o.cancelText||"Cancel"}),jsx(Button,{color:"red",onClick:i,children:o.confirmText||"Confirm"})]})]})}function M(){let n=useContext(C);if(n===void 0)throw new Error("useConfirmationDialog must be used within ConfirmationDialogProvider.");return n}
6
-
7
- export { b as DialogProvider, M as useDialog };
1
+ import {useMantineTheme,Modal,Group,Button}from'@mantine/core';import p,{useState,useCallback,useContext}from'react';import {jsxs,jsx}from'react/jsx-runtime';var C=p.createContext(void 0);function b(n){let[o,r]=useState(false),[e,i]=useState(null),s=p.useMemo(()=>{function t(d,v){return v?{show:()=>t(d)}:new Promise((x,y)=>{i({request:d,onResolve:x,onReject:y}),r(true);})}return {newConfirmation:t}},[]),u=()=>{r(false),setTimeout(()=>i(null),200);},P=useCallback(t=>{!o||!e||(e.onResolve(t),u());},[o,e]),g=useCallback(t=>{!o||!e||(e.onReject(t),u());},[o,e]);return jsxs(C.Provider,{value:s,children:[e&&jsx(k,{opened:o,request:e.request,onConfirm:P,onCancel:g}),n.children]})}function k(n){let{request:o,opened:r,onCancel:e,onConfirm:i}=n,s=useMantineTheme();return jsxs(Modal,{centered:true,zIndex:1002,opened:r,title:o.title,onClose:e,children:[o.message,jsxs(Group,{justify:"flex-end",style:{marginTop:s.spacing.sm},children:[jsx(Button,{onClick:e,children:o.cancelText||"Cancel"}),jsx(Button,{color:"red",onClick:i,children:o.confirmText||"Confirm"})]})]})}function M(){let n=useContext(C);if(n===void 0)throw new Error("useConfirmationDialog must be used within ConfirmationDialogProvider.");return n}export{b as DialogProvider,M as useDialog};
@@ -1,33 +1,5 @@
1
- import { createSlice, configureStore } from '@reduxjs/toolkit';
2
- import { HYDRATE, createWrapper } from 'next-redux-wrapper';
3
- import nt from 'axios';
4
- import { schema, normalize } from 'normalizr';
5
- import { assign, closest, merge, isObject } from 'd3plus-common';
6
- import * as mo from 'd3-array';
7
- import * as yo from 'd3-collection';
8
- import * as Ro from 'd3-format';
9
- import * as go from 'd3-time-format';
10
- import { formatAbbreviate } from 'd3plus-format';
11
- import { date } from 'd3plus-axis';
12
- import { strip, titleCase } from 'd3plus-text';
13
- import xo from 'jsonwebtoken';
14
- import gr from 'axios-retry';
15
- import Zo from 'yn';
16
- import { format } from 'pretty-format';
17
- import yn from 'toposort';
18
- import { csvParse } from 'd3-dsv';
19
- import dn from 'next/config';
20
- import { getSession } from 'next-auth/react';
21
- import { notifications } from '@mantine/notifications';
22
- import { createContext } from 'react';
23
- import { useDispatch, useSelector } from 'react-redux';
24
- import 'react/jsx-runtime';
25
- import '@mantine/core';
26
-
27
- var no=Object.defineProperty;var so=(e,t)=>{for(var r in t)no(e,r,{get:t[r],enumerable:!0});};function ee(e,t){return e.request(t).then(r=>{let{status:o,data:n}=r;return "error"in n?{ok:!1,status:o,error:n.error}:{ok:!0,status:o,wrapper:n.wrapper,data:n.data}},r=>{if("isAxiosError"in r){let{status:o,data:n}=r.response||{status:500};return {ok:!1,status:o,error:n?.error??r.message}}return {ok:!1,status:500,error:r.message}})}function F(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>ee(e,{...o,method:"GET",params:r?r(n):n})}function q(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>ee(e,{...o,method:"POST",data:r?r(n):n})}function ie(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>ee(e,{...o,method:"DELETE",params:r?r(n):n})}function Le(e,t){return r=>ee(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function Ne(e,t){return r=>ee(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function zt(e,t){return ()=>ee(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function jt(e,t){return r=>ee(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var fe=e=>({id:e}),io=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 Me(e){let t=nt.create({baseURL:e});return {createBulkBlock:q(t,"create/bulk/block"),createBlock:q(t,"create/block"),createDimension:q(t,"create/dimension"),createFormatter:q(t,"create/formatter"),createReport:q(t,"create/report"),createSection:q(t,"create/section"),createVariant:q(t,"create/variant"),createDatasource:q(t,"create/datasource"),deleteBlock:ie(t,"delete/block",fe),deleteDimension:ie(t,"delete/dimension",fe),deleteFormatter:ie(t,"delete/formatter",fe),deleteReport:ie(t,"delete/report",fe),deleteSection:ie(t,"delete/section",fe),deleteVariant:ie(t,"delete/variant",fe),deleteDatasource:ie(t,"delete/datasource",fe),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:q(t,"update/bulk/block"),updateBlock:q(t,"update/block"),updateDimension:q(t,"update/dimension"),updateFormatter:q(t,"update/formatter"),updateReport:q(t,"update/report"),updateSection:q(t,"update/section"),updateVariant:q(t,"update/variant"),updateDatasource:q(t,"update/datasource"),searchReport:F(t,"search/reports"),validateVariantSlug:F(t,"validate/variant"),readMember:F(t,"read/members",io),readMemberImage:F(t,{url:"member/image",responseType:"blob"}),searchMember:F(t,"search/members"),updateMember:F(t,"update/members"),imageLocalSearch:Ne(t,"local"),imageLocalSave:Le(t,"local"),imageFlickrSearch:Ne(t,"flickr"),imageFlickrSave:Le(t,"flickr"),imageUnsplashSearch:Ne(t,"unsplash"),imageUnsplashSave:Le(t,"unsplash"),imageUploadSave:Le(t,"upload"),imageAdobeSearch:Ne(t,"adobe"),imageAdobeSave:Le(t,"adobe"),readMetadata:F(t,"read/metadata"),regenerateSearch:q(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:q(t,"auth/update/user"),updateMyData:q(t,"auth/update/me"),revalidateReport:F(t,"revalidate/report"),revalidateUrl:F(t,"revalidate/url"),readPrivateBlocks:q(t,"read/blocks/private"),listTablerIcons:zt(t,"tabler"),readTablerIcon:jt(t,"tabler"),readEnvSecrets:F(t,"read/secrets")}}function co(e,t){return +(e<t)-+(e>t)}function Ke(e,t,r="ordering"){return co(t[r],e[r])}function pt(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 Gt(e,t,r){let o=0,n=1,s=1,a=1,i=0,c=0,u;for(;Math.abs((s-c)/s)>1e-5;)c=s,u=-(t+i)*(t+r+i)*e/(t+2*i)/(t+2*i+1),o=s+u*o,n=a+u*n,i+=1,u=i*(r-i)*e/(t+2*i-1)/(t+2*i),s=o+u*s,a=n+u*a,o/=a,n/=a,s/=a,a=1;return s/t}function uo(e,t,r){let o,n;if(e<0)n=0;else if(e>=t)n=1;else {e=Math.floor(e);let s=r,a=e+1,i=t-e,c=a+i,u=Math.exp(pt(c)-pt(i)-pt(a)+a*Math.log(s)+i*Math.log(1-s));s<(a+1)/(c+2)?o=u*Gt(s,a,i):o=1-u*Gt(1-s,i,a),n=1-o;}return Math.round(n*1e5)/1e5}function lo(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function De(e,t,r,o){let n=t/(1-t),s=0,a=1,i=0,c=0;for(;s<=e;)c+=a,s>=r&s<=o&&(i+=a),c>1e30&&(i/=1e30,c/=1e30,a/=1e30),s+=1,a=a*n*(e+1-s)/s;return i/c}function po(e,t,r){let o=e/t,s=(100-r*100)/2,a,i;if(e===0)a=0;else {let c=o/2,u=0,l=o,p=s/100;for(;l-u>1e-5;)De(t,c,e,e)*.5+De(t,c,e+1,t)>p?(l=c,c=(u+c)/2):(u=c,c=(l+c)/2);a=c;}if(e===t)i=0;else {let c=(1+o)/2,u=o,l=1,p=s/100;for(;l-u>1e-5;)De(t,c,e,e)*.5+De(t,c,0,e-1)<p?(l=c,c=(u+c)/2):(u=c,c=(l+c)/2);i=c;}return {lci:a,uci:i}}function fo(e,t){let r=e,o=t,n=r,s=o,a=95,i=.5,c=.5,l=(100-a)/2/100,p=n;for(;c>1e-5;)c/=2,Ye((1+p)*i/(1-i),p+1,1e10)+.5*Ye((1+p)*i/(1-i),p,p)>l?i-=c:i+=c;let d=(1+p)*i/(1-i)/s;for(i=.5,c=.5,l=(100-a)/2/100;c>1e-5;)c/=2,Ye((1+p)*i/(1-i),0,p-1)+.5*Ye((1+p)*i/(1-i),p,p)<l?i-=c:i+=c;let T=(1+p)*i/(1-i)/s;return {lci:d,uci:T}}function Ye(e,t,r){let o=1,n=0,s=0,a=0;for(;a<e||o>n*1e-10;)n+=o,a>=t&a<=r&&(s+=o),n>1e30&&(s/=1e30,n/=1e30,o/=1e30),a+=1,o=o*e/a;return s/n}var Ht={binomialCdf:uo,binP:De,computeMidP:po,criticalValue:lo,smr:fo};var _e={d3:{...mo,...yo,...Ro,...go},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:Ht};var Kt={jwt:xo};var Wt=(e,t={})=>{let r={libs:Kt,...t};function o(s){return Function("globals",...s.vars,`with (globals) { ${s.logic} }`).bind(r,r)}function n(s){if(s.vars&&s.logic)return o(s);for(let a in s)Array.isArray(s[a])?s[a]=s[a].map(i=>isObject(i)?n(i):i):isObject(s[a])&&(s[a]=n(s[a]));return s}return n(e)};var Co=()=>{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}},re=Co;re();var Ue=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});Ue.define({consumers:[Ue],inputs:[Ue]});var Qt=new schema.Entity("variant"),Xt=new schema.Entity("dimension",{variants:[Qt]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),Zt=new schema.Entity("section",{blocks:[Ue]}),Po=new schema.Entity("report",{dimensions:[Xt],sections:[Zt]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(Ke):[]}}}),Lo=new schema.Entity("formatter"),_o=new schema.Entity("datasource"),Oo={report:Po,section:Zt,block:Ue,dimension:Xt,variant:Qt,formatter:Lo,datasource:_o};function We(e,t){let r=Oo[e];if(!r)throw new Error(`Invalid entity type: ${e}`);let{entities:o}=normalize(t,[r]);return {report:me(o,"report"),dimension:me(o,"dimension"),section:me(o,"section"),block:me(o,"block"),variant:me(o,"variant"),formatter:me(o,"formatter"),datasource:me(o,"datasource")}}function me(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:{}}var Jt=(e,t=void 0)=>{let{sid:r,bid:o,previews:n=[],query:s={}}=t||{},a,i,c={};return r?(a=r,c.activeSection=a):a=e.activeSection,n.length>0?(i=n,c.previews=i.filter(Boolean)):i=e.previews,{parsedParams:{sid:a,bid:o,previews:i,query:s},statusPayload:c}};var wo={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}}},ae=createSlice({name:"records",initialState:wo,reducers:{set:(e,t)=>{let r=t.payload;return {entities:Fe(e.entities,r.entities||{}),requests:Fe(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=We(r.type,o),s=Fe(e.entities,n);if(e.entities=s,r.type==="report"){let a=r.data;e.reports?e.reports.indexOf(a.id)===-1&&(e.reports=[...e.reports,a.id]):e.reports=[a.id];}else if(r.type==="dimension"){let a=r.data;e.entities.report[a.report_id].dimensions.push(a.id),e.entities.report[a.report_id].dimensions=Qe(s.report[a.report_id].dimensions,s.dimension);}else if(r.type==="variant"){let a=r.data;e.entities.dimension[a.dimension_id].variants.push(a.id);}else if(r.type==="section"&&!Array.isArray(r.data)){let a=r.data;e.entities.report[a.report_id].sections.push(a.id),e.entities.report[a.report_id].sections=Qe(s.report[a.report_id].sections,s.section);}else if(r.type==="block")if(Array.isArray(r.data)){let a=r.data,i=a[0],c=a.map(u=>u.id);e.entities.section[i.section_id].blocks.concat(c);}else {let a=r.data;e.entities.section[a.section_id].blocks.push(a.id);}}},setReadRequest(e,t){let r=t.payload;if(r.type!=="report"&&(e.requests[r.type][r.key]=r),r.status==="SUCCESS"){let o=We(r.type,r.data),n=Fe(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=We(r.type,o),s,a,i;if(r.type==="block"&&!Array.isArray(r.data)){let u=e.entities.block[r.data.id].inputs,l=n.block[r.data.id].inputs;s=u.length!==l.length,s&&(i=u.length>l.length,a=i?u.filter(p=>!l.includes(p))[0]:l.filter(p=>!u.includes(p))[0]),Object.values(n.block).forEach(p=>{p.block_input&&delete n.block[p.id];});}let c=Fe(e.entities,n);if(e.entities=c,r.type==="dimension"){let u=r.data;e.entities.report[u.report_id].dimensions=Qe(c.report[u.report_id].dimensions,c.dimension);}else if(r.type==="section"&&!Array.isArray(r.data)){let u=r.data;e.entities.report[u.report_id].sections=Qe(c.report[u.report_id].sections,c.section);}else if(r.type==="block"&&!Array.isArray(r.data)){let u=r.data;s&&(i?e.entities.block[a].consumers=e.entities.block[a].consumers.filter(l=>l!==u.id):e.entities.block[a].consumers.push(u.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:s}=r.data;if(delete e.entities[r.type][o],s&&n!=null){let a=`${r.type}s`;No(e.entities[s][n][a],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:{[HYDRATE]:(e,t)=>{let r=t.payload.records,o=r.entities;return {entities:o,reports:Object.values(o.report).map(n=>n.id),requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},tree:r.tree}}}});function Fe(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,{...e[r],...t[r]}]))}function Qe(e,t){return e.map(n=>t[n]).sort((n,s)=>typeof n.ordering=="string"&&typeof s.ordering=="string"?Ke(n,s):typeof n.ordering=="number"&&typeof s.ordering=="number"?n.ordering-s.ordering:String(n.ordering).localeCompare(String(s.ordering))).map(n=>n.id)}function No(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}var Re=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",Xe=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[Re];Xe.includes(Re)||Xe.push(Re);var Uo={localeDefault:Re,locales:Xe,currentLocale:Re,preferredLocale:Re,showToolbar:!1,activeSection:null,previews:[],query:{},sectionState:{},activeEntity:{type:null,id:null},sidebarStatus:{tools:!0,settings:!1,reportEditor:!1},isCMS:!1,isRunConsumersRunning:[]},Ze=createSlice({name:"status",initialState:Uo,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]:!0};},closeSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!1};},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:{[HYDRATE]:(e,t)=>({...e,previews:t.payload.status.previews})}}),Oe=Ze.actions;var qo={attributes:{},variables:{},status:{}},Je=createSlice({name:"variables",initialState:qo,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:{[HYDRATE]:(e,t)=>({attributes:{...e.attributes,...t.payload.variables.attributes},status:{...e.status,...t.payload.variables.status},variables:{...e.variables,...t.payload.variables.variables}})}}),er=Je.actions;var tr=()=>configureStore({reducer:{[ae.name]:ae.reducer,[Ze.name]:Ze.reducer,[Je.name]:Je.reducer},middleware(e){return e({thunk:{extraArgument:Me("/api/cms/")}})}}),rr=createWrapper(tr);var ut={};so(ut,{addBlockToState:()=>us,addRunConsumersRunning:()=>Kr,cloneEntity:()=>Vr,createEntity:()=>Dr,deleteEntity:()=>Fr,deleteQueryParam:()=>Jn,readEntity:()=>ze,readEnvSecrets:()=>fs,readMember:()=>Wr,readMetadata:()=>ts,readPrivateBlocks:()=>ls,readUser:()=>ss,recalculateVariables:()=>Xr,removeBlocksFromState:()=>cs,removeDataSourceLogic:()=>ms,removeRunConsumersRunning:()=>Yr,reportSearch:()=>Qn,resetSectionState:()=>Hr,revalidateReport:()=>ds,revalidateUrl:()=>ps,searchMember:()=>Zn,searchRegenerate:()=>Xn,searchRole:()=>os,searchUser:()=>ns,setCurrentLocale:()=>Kn,setPreferredLocale:()=>Yn,setPreviews:()=>Hn,setQueryParam:()=>es,setSectionState:()=>Gr,setStatus:()=>jr,updateEntity:()=>Ur,updateMyData:()=>is,updateUser:()=>as,urlProxy:()=>rs,variantValidateSlug:()=>Wn});var{localeDefault:Ho}=re();function Z(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||Ho}}var Ee={SINGLE:"single",MULTI:"multi"};var dt={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Ko={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Yo={DISABLED:"disabled"},Wo={FALLBACK:"fallback"};var Qo={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"},ft={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},mt="logic",S={...Qo,...ft},ar={NAME:"name",DESCRIPTION:"description",...dt,...Ko,...Wo,...Yo};var en=Zo(process.env.REPORTS_LOGGING),he=tn;function tn(e,t,r,o,n=void 0,s){let a={},i=[],{locale:c}=Z(s);try{if(t){let u=new Proxy(console,{get(p,d){return rn(d,"log","debug","info","warn","error")?(...f)=>{i.push(`${d} ${Date.now()} - ${f.map(T=>format(T)).join(" ")}`),en&&p[d](...f);}:p[d]}}),l;return n?l=new Function(e,"console","libs","formatters","locale","variables",r)(t,u,_e,o,c,n):l=new Function(e,"console","libs","formatters","locale",r)(t,u,_e,o,c),typeof l=="object"&&Object.keys(l).length>0&&Object.assign(a,l),{vars:a,error:null,log:i,output:l}}return {vars:a,error:"Invalid API Link",log:i}}catch(u){return {vars:a,error:u.message,log:i}}}function rn(e,...t){return t.includes(e)}function yt(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 Se=on;function on(e,t,r,o=!1){let{variables:n}=Z(r);if(!e)return e;let s=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(s,(i,c,u)=>{let l=d=>d;if(c){let d=c.replace(/^\w/g,f=>f.toLowerCase());d in t?l=t[d]:l=f=>`${c}${f}`;}let p=Array.isArray(n[u])?yt(n[u]):n[u];if(p===void 0)return o?i:"N/A";try{return l(p,_e,t)}catch(d){return console.error(`Error using formatter ${l.name}
28
- `,`Error message: ${d.message}`),"N/A"}})}var Rt=(e,t,r)=>{let{variables:o}=r,n=a=>a.allowed==="never"?!1:!a.allowed||a.allowed==="always"||o[a.allowed],s={...e};return Object.keys(s).forEach(a=>{typeof s[a]=="string"?s[a]=Se(s[a],t,r):Array.isArray(s[a])?s[a]=s[a].filter(n).map(i=>typeof i=="object"?Rt(i,t,r):typeof i=="string"?Se(i,t,r):i):typeof s[a]=="object"&&s[a]!==null&&!(s[a]instanceof Date)&&(s[a]=Rt(s[a],t,r));}),s},tt=Rt;var ir=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var nn=(e,t,r)=>{if(!r)return !1;if(e===Ee.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(s=>s.id).includes(n))},gt=nn;function Et(e,t,r,o,n=!1){let{variables:s}=Z(o),a=tt({logic:t},r,o).logic,i=he("variables",s,a,r,void 0,o),{vars:c,log:u,error:l}=i,p=c.type||Ee.SINGLE,d=c.component||"Selector",f=c.hideLabel||"false",T=c.resetSectionVars||"false",b=c.name||"Unlabeled Selector",m=ir(c.options||[]),I=_=>p===Ee.MULTI&&!Array.isArray(_)?[_]:_,v=c.defaultValue,x;if(v&&(v=I(v),gt(p,v,m)&&(x=v)),!x){let _=m&&m[0]&&m[0].id||m[0]||"";x=I(_);}if(n&&typeof window<"u"){let _=`selector${e}id`,J=new URLSearchParams(window.location.search),P=Object.fromEntries(J)[_];P&&!gt(p,P,m)&&P!==void 0&&(J.delete(_),window.history.replaceState(null,null,`?${J.toString()}`));}return {config:{name:b,type:p,options:m,defaultValue:x,component:d,hideLabel:f,resetSectionVars:T},log:u,error:l}}function ht(e,t,r){if(!e)return !1;let o=Array.isArray(r)?r:r.split(",");return Array.isArray(o)&&o.every(n=>e.map(s=>`${s[`${t} ID`]}`).includes(n))}function St(e,t,r,o,n=!1){let{variables:s}=Z(o),a=tt({logic:t},r,o).logic,i=he("variables",s,a,r,void 0,o),{vars:c,log:u,error:l}=i;if(n&&typeof window<"u"){let d=`multihierarchySelector${e}-value`,f=`multihierarchySelector${e}-type`,T=new URLSearchParams(window.location.search),b=Object.fromEntries(T),m=b[d],I=b[f];m&&m!==void 0&&I&&I!==void 0&&!ht(c.data,I,m)&&(T.delete(d),T.delete(f),window.history.replaceState(null,null,`?${T.toString()}`));}return {config:c,log:u,error:l}}var sn=(e,t,r)=>{let o=`selector${e}id`,n=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(o),s=new URLSearchParams(t).get(o),a=n||s;if(r.type===Ee.MULTI){let u=a?a.split(","):r.defaultValue,l=r.options.filter(p=>u.includes(p.id));return {[`selector${e}id`]:u,[`selector${e}label`]:(l||[]).map(p=>p.label)}}let i=a&&r.options.find(u=>u.id===a)?a:r.defaultValue,c=r.options.find(u=>u.id===i);return {[`selector${e}id`]:i,[`selector${e}label`]:c&&c.label||void 0}},cr=sn;var an=(e,t,r)=>{let o=`multihierarchySelector${e}-value`,n=`multihierarchySelector${e}-type`,s=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(o),a=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(n),i=new URLSearchParams(t).get(o),c=new URLSearchParams(t).get(n),u=s||i,l=a||c,p=u?u.split(","):r.defaultValue||[],d=l||r.defaultValueType||"",f=r.data?.filter(T=>p.includes(`${T[`${d} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:p,[`multihierarchySelector${e}label`]:[...new Set((f||[]).map(T=>T[d]))],[`multihierarchySelector${e}type`]:d}},ur=an;var{localeDefault:lr,locales:cn}=re(),un=Object.values(ft),ln=(e,t=lr)=>e&&un.includes(e.type)?{locale:mt,locales:[mt]}:{locale:t,locales:cn},pr=(e,t=lr)=>{if(!e)return {};let{locale:r}=ln(e,t);return e.contentByLocale?.[r]?.content};function pn(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(s=>o.includes(s)))).map(n=>[n.id,n]))}var dr=pn;var fr=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;var mr="|||";var yr="SECTION_ALLOWED";function Tt(e){return e.type===S.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}function fn(){let{publicRuntimeConfig:e}=dn(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((r,o)=>(r[`ENV_${o}`]=t[o]||"N/A",r),{})}}var Ve=fn;function mn(){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 Rr=mn;var ce=Zo(process.env.NEXT_PUBLIC_REPORTS_DEBUG),hn=process.env.REPORTS_ORIGIN||"",Sn=process.env.NEXT_PUBLIC_REPORTS_AXIOS_RETRIES,Sr=5;try{Sr=parseInt(`${Sn||5}`,10);}catch(e){console.error("Error setting axios retries NEXT_PUBLIC_REPORTS_AXIOS_RETRIES defaults to 5",e);}gr(nt,{retries:Sr,retryDelay:gr.exponentialDelay,onRetry:(e,t,r)=>{console.error("Generator request failed. Retrying... Count: ",e),console.error("URL: ",r.url),console.error(t.message);}});nt.interceptors.request.use(e=>({...e,requestStart:Date.now()}));nt.interceptors.response.use(e=>({...e,requestDuration:new Date().getTime()-e.config.requestStart}),e=>Promise.reject(e));var Tn=(e,t,r)=>{let o=Se(e,t,r);return o.startsWith("http")||(o=`${hn}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:bn}=Me("/api/cms");function ot(e){return e.ok!==void 0}function rt(e){this.message=e,this.name="ApiFetchException";}var Er=process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0;async function An(e,t,r="en",o,n){let s=Date.now(),a=e,i,c=Ve(),u=Rr(),l={envs:{...c,...u}},p=new URL(e),d=new URLSearchParams(p.searchParams.toString());d.has("bespoke_slugs")&&(p.searchParams.delete("bespoke_slugs"),a=p.toString());let f={datasource:void 0};o.find(v=>{if(!v.content?.pattern)return !1;try{let x=new RegExp(v.content.pattern,"gm");return x.test(a)?(f.datasource=v,!0):x.test(a)}catch{return !1}});let T=n?n.settings:{},b=!!(T&&T.useProxy&&T.useProxy==="true"),m=f.datasource&&typeof f.datasource.content.useProxy=="boolean"?f.datasource.content.useProxy:!1,I=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/api/cms/url/proxy?url=${encodeURIComponent(a)}`;if(typeof window=="object"&&(b||m)){let v=await bn({url:a,timeout:Er});if(v.ok===!0)i=v.data;else throw new rt(v?.error)}else try{let x={url:a,timeout:Er};if(f.datasource){let _=l;if(typeof window<"u")try{let P=await getSession();if(P){let C={user:P.user,status:"authenticated",isLoading:!1,update:async()=>P};_={...l,session:C};}}catch(P){console.warn("Could not retrieve user session:",P);}let k=await Wt({vars:["url","libs","session"],logic:f.datasource.content.logic},_)(a);if(k.axiosConfig)x=k.axiosConfig;else throw new rt(`AxiosConfig is missing in Data Source ${f.datasource.name} (ID: ${f.datasource.id}).`)}let $=await nt(x);if($.status===200)$.headers["content-type"]==="text/csv"?i=csvParse($.data):i=$.data;else throw new rt("No response for: "+a)}catch(v){throw new rt(v.message)}if(d.has("bespoke_slugs")){let v=d.get("bespoke_slugs");if(v){let x=v.split(",");if(x.length===3){let[$,_,J]=x,k=fr(i,J);if(k&&Array.isArray(k)){let P=Array.from(new Set(k.map(C=>`${C[_]}`).filter(C=>!["","undefined"].includes(C))));if(P.length>0){let C=P.join("").length>2e3,O=await t({mode:C?"whole":"ids",ids:C?void 0:P,all:!1,locale:r,variant:[parseInt($,10)],output:"lite",limit:P.length+1,allowNulls:!0}).then(N=>{let V=[];return ot(N)?N.ok&&(V=N.data.results):V=N.results,V&&Array.isArray(V)?V:[]}).catch(N=>(console.error(`Error hydrating slugs for Variant: ${$}, Key: ${_}, Accessor: ${J}`),console.error(` Url ${e}`),n&&console.error(` From Section ${n.section_id} and Block ${n.id}`),console.error(N),[]));if(O){let N=Object.fromEntries(O.map(V=>[V.id,`/${V.variant_slug}/${V.slug}`]));k.map(V=>(V.bespoke_slug=N[V[_]]?N[V[_]]:null,V));}}}}}}return {data:i,requestDuration:Date.now()-s,finalUrl:m||b?I:a,apiDataSource:f.datasource?f.datasource:!1}}function vn(e){this.name="BlockException",this.message=e;}async function hr(e,t,r,o,n){let{locale:s,variables:a,query:i}=Z(r),c=Cn(e,r,a,t),u=null,l=e.contentByLocale?.logic?.content?.api,p=null,d=null,f=null,T,b;if(!c)return {outputVariables:{},renderVariables:{},status:{allowed:!1,hiddenByCascade:e.id}};if(e.type===S.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:c,hiddenByCascade:e.id}};if(l){f=Tn(l,t,r);let k=f.split(mr).filter(O=>O!==""),P=[];for(let O=0;O<k.length;O++){let N=k[O];new RegExp("^(?:[a-z+]+:)?//","i").test(f)||(N=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${N}`.replace(/([^:]\/)\/+/g,"$1")),P.push(An(N,o,s,n,e).catch(H=>{throw new vn(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${a.report_name} (${a.report_id}) failed.
29
- Error fetching ${N}.
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.
3
+ Error fetching ${M}.
30
4
  Message: ${H.message}.
31
- `)}));}let C=await Promise.all(P).catch(O=>O.message);if(typeof C=="string"&&C)return {outputVariables:{},renderVariables:{},status:{error:C}};u=C.length===1?C[0].data:C.map(O=>O.data),d=C.reduce((O,N)=>O+JSON.stringify(N.data).length/1024,0),p=Math.max(...C.map(O=>O.requestDuration)),T=C.map(O=>O.apiDataSource?`${O.apiDataSource.name} (${O.apiDataSource.id})`:null),b=C.map(O=>O.finalUrl);}if(e.type===S.SELECTOR){let{config:k,log:P,error:C}=Et(e.id,e.contentByLocale[s].content.logic,t,r,!0);return {outputVariables:cr(e.id,i,k),renderVariables:k,status:{log:P,error:C,allowed:c}}}if(e.type===S.MULTIHIERARCHY_SELECTOR){let{config:k,log:P,error:C}=St(e.id,e.contentByLocale[s].content.logic,t,r,!0);return {outputVariables:ur(e.id,i,k),renderVariables:k,status:{log:P,error:C,allowed:c}}}if(e.type===S.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:c}};if(e.type===S.RELATED){let k=e.contentByLocale?.logic?.content?.simple?.compare||"variant",P=e.contentByLocale?.logic?.content?.simple?.limit||4,C=Object.keys(a).filter(R=>R.startsWith("report_id")).map(R=>a[R]),O=Object.keys(a).filter(R=>R.startsWith("dimension_id")).map(R=>a[R]),N=Object.keys(a).filter(R=>R.startsWith("variant_id")).map(R=>a[R]),V=Object.keys(a).filter(R=>R.startsWith("id")).map(R=>a[R]);if(!V.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:!1}};let H=await Promise.all(V.map((R,h)=>o({mode:"ids",locale:s,ids:[R],output:"lite",variant:[N[h]]}))).then(R=>R.flatMap(h=>{let A=[];return ot(h)?h.ok&&(A=h.data.results):A=h.results,A&&Array.isArray(A)?A:[]})).catch(R=>(console.error("Error getting related members",R),[]));if(O.length>1){let R=Object.keys(a).filter(w=>w.startsWith("variant_slug")).map(w=>a[w]),h=H.map((w,z)=>{let U={mode:"related",locale:s,related:P??4,current_ids:[w.content_id],output:"full",variant_ids:[w.variant_id]};return z===0&&(U.include_ids=[w.content_id]),U}),A=await Promise.all(h.map(w=>o(w))).then(w=>w.flatMap(z=>{let U=[];return ot(z)?z.ok&&(U=z.data.results):U=z.results,U&&Array.isArray(U)?U:[]})).catch(w=>(console.error("Error getting related members",w),[])),pe=A.reduce((w,z)=>{let U=z.variant_slug;return w[U]||(w[U]=[]),w[U].push(z),w},{}),He=[],G=Object.keys(pe),se=[{combination:[],index:0}];for(;se.length>0;){let w=se.pop();if(!w)continue;let{combination:z,index:U}=w;if(U===G.length){He.push(z);continue}let de=G[U],Y=pe[de];for(let W of Y)se.push({combination:[...z,W],index:U+1});}return {outputVariables:{related_reports:He.map(w=>{let z=w.sort((U,de)=>R.indexOf(U.variant_slug)-R.indexOf(de.variant_slug));return {entities:z,link:"/"+z.map(U=>`${U.variant_slug}/${U.slug}`).join("/")}})},renderVariables:{},status:{log:[],allowed:A.length>0}}}let L=H.map(R=>R.content_id),M={mode:"related",locale:s,related:P??4,current_ids:L,output:"full"};k&&(k==="report"?M.report_ids=C:k==="dimension"?M.dimension_ids=O:M.variant_ids=N);let K=await o(M).then(R=>{let h=[];return ot(R)?R.ok&&(h=R.data.results):h=R.results,h&&Array.isArray(h)?h:[]}).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:m}=pr(e,s),I=Se(m,t,r),v=he("resp",u||{},I,t,a,r),{vars:x,error:$,log:_}=v;if(typeof x!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:_,duration:p,responseSize:d,resp:u,api:f,allowed:c,apiFinalUrls:b,apiDataSources:T}};let J=Object.keys(x).reduce((k,P)=>({...k,[`${e.type}${e.id}${P}`]:x[P]}),{});return {renderVariables:x,outputVariables:[S.GENERATOR,S.SECTION_FLAG].includes(e.type)?x:J,status:{log:_,error:$,duration:p,responseSize:d,resp:u,api:f,allowed:c,apiFinalUrls:b,apiDataSources:T}}}function xn(e,t,r,o,n,s,a){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(u=>t[u]&&t[u].section_id===t[r].section_id||!n).forEach(u=>bt(u,t,o,!1,s,n,a));}})}var bt=(e,t,r=[],o=!0,n=!0,s=!0,a=[])=>{if(a.includes(e))return [];a.push(e);let i=t[e];return i&&i.inputs.length&&o&&i.inputs.forEach(c=>{let u=`${c}-${e}`;r.includes(u)||r.push(u),i.inputs.forEach(l=>bt(l,t,r,o,!1,s,a));}),i&&i.consumers.length&&n&&xn(i,t,e,r,s,n,a),r},Cn=(e,t,r,o)=>{let n=!0;if(e&&"allowed"in e.settings&&e.settings.allowed!=="always")if(e.settings.allowed==="never")n=!1;else {let s=Z(t),{error:a,output:i}=he("variables",r,e.settings.allowedLogic||"return false;",o,void 0,s);a||(n=!!i);}return n},Tr=async(e,t,r,o,n,s={},a,i="section",c)=>{let u=i==="section",l=Z(n),p=l.variables,d={...s.variables??{}},f={...s.status??{}},T=new Set,b=[],m={};r?m={...m,[r]:e[r]}:t?m=(t??[]).reduce((L,{id:M})=>({...L,...dr(M,e)}),{}):m=Object.values(e).filter(L=>Tt(L)).reduce((L,M)=>({...L,[M.id]:M}),{});let I=Object.values(m).filter(L=>Tt(L));if(I.length>0){ce&&console.info("%crunConsumers: calculating section flags","color:purple",I.map(y=>y.id).join(", "));let L=Object.fromEntries(await Promise.all(I.map(async y=>[y.id,await hr(y,o,{...l,variables:p,locale:p.locale},a,c).then(R=>{let{outputVariables:h,status:A}=R;if(A.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${y.id}, Section ${y.section_id}) failed with message: ${A.error}. `);f[y.id]={allowed:!1,error:A.error},d[y.id]={};}return (y.consumers.length>0||[S.GENERATOR,S.SECTION_FLAG,S.RELATED].includes(y.type))&&A.allowed&&Object.keys(h).length>0?d[y.id]=h:d[y.id]={},i==="report"?(f[y.id]={allowed:A.allowed},[S.GENERATOR,S.SECTION_FLAG].includes(y.type)&&A.api&&(f[y.id].api=A.api)):f[y.id]=A,R})]))),K=Object.entries(L).filter(([,y])=>!y.outputVariables[yr]).map(([y])=>Number(y));T=new Set(K.map(y=>e[y].section_id)),Object.values(m).filter(y=>T.has(y.section_id)).forEach(y=>{b.push(y.id),delete m[y.id];}),ce&&console.info("%crunConsumers: removing sections","color:purple",T.keys());}let v=T.size>0?Object.fromEntries(Object.entries(e).filter(([,L])=>T?.has(L.section_id)?(b.includes(L.id)||b.push(L.id),!1):!0)):e;if(b.length>0&&(v=Object.fromEntries(Object.entries(v).map(([L,M])=>{let K={...M,inputs:M.inputs.filter(y=>!b.includes(y)),consumers:M.consumers.filter(y=>!b.includes(y))};return [L,K]}))),!r&&!t)return {variables:{...s.variables??{},...d},status:{...s.status??{},...f}};i==="report"&&b.length>0&&b.forEach(L=>{delete d[L],delete f[L],delete e[L];}),ce&&console.info("%crunConsumers: running root blocks","color:purple",Object.keys(m));let x=Object.keys(m).reduce((L,M)=>{let K=new Date,y=bt(Number(M),v,[],!r,!0,u).map(A=>A.split("-")),h=(new Date().getTime()-K.getTime())/1e3;return ce&&console.info(`%cResolved dependencies for ${M} (${h.toFixed(2)}s)`,"color:blue"),[...L,...y]},[]),$=new Date,_=Object.keys(m).reduce((L,M)=>L.includes(M)?[...L]:[M,...L],yn(x)),k=(new Date().getTime()-$.getTime())/1e3;ce&&console.info(`%cResolved DAG (${k.toFixed(2)}s): `,"color:green",_);let P=process.env.NEXT_PUBLIC_REPORTS_MAX_CONCURRENT_QUERIES_PER_REPORT,C=parseInt(`${P||0}`,10);async function O(L,M){let K=new Map,y=[],R=async()=>y.length;for(let h of L){if(C!==0){let G=await R();for(;G>=C;)ce&&console.info("Too many pending promises, waiting...",G,y),await new Promise(se=>setTimeout(se,500)),G=await R();}let A=M[h],He=Promise.all(A.inputs.filter(G=>L.includes(String(G))).map(G=>K.get(Number(G)))).then(async()=>{let G=A.inputs.reduce((Y,W)=>({...Y,...d[W]}),p),se=A.inputs.find(Y=>(A.settings?.ignoreCascade?A.settings?.ignoreCascade:[]).includes(Y)||!f[Y]?!1:!f[Y].allowed||f[Y].hiddenByCascade);if(se){f[h]={allowed:!1,hiddenByCascade:f[se].hiddenByCascade||se},d[h]={},y.splice(y.indexOf(Number(h)),1);return}let $t=new Date,w;typeof window<"u"&&[S.SELECTOR,S.MULTIHIERARCHY_SELECTOR].includes(A.type)&&A.settings[ar.DISABLED]?w=new Promise(Y=>{Y({outputVariables:d[h],status:f[h]});}):w=hr(A,o,{...l,variables:G,locale:G.locale},a,c);let z=await w.then(({outputVariables:Y,status:W})=>{if(W.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${h}, Section ${A.section_id}) failed with message: ${W.error}.`);f[h]={allowed:!1,error:W.error},d[h]={};}(A.consumers.length>0||[S.GENERATOR,S.SECTION_FLAG,S.RELATED].includes(A.type))&&W.allowed&&Object.keys(Y).length>0?d[h]=Y:d[h]={},i==="report"?(f[h]={allowed:W.allowed},[S.GENERATOR,S.SECTION_FLAG].includes(A.type)&&W.api&&(f[h].api=W.api)):f[h]=W;}),de=(new Date().getTime()-$t.getTime())/1e3;return ce&&console.info(`%cBlock ${A.id} resolved in ${de.toFixed(3)}s`,de>500?"color:red":"color:green"),f[h].duration=f[h].duration?f[h].duration:de,y.splice(y.indexOf(Number(h)),1),z}).catch(G=>{throw y.splice(y.indexOf(Number(h)),1),G});y.push(Number(h)),K.set(Number(h),He);}await Promise.all(Array.from(K.values()));}let N=new Date;await O(_,v);let H=(new Date().getTime()-N.getTime())/1e3;return ce&&console.info(`%cResolved Variables (${H.toFixed(2)}s), ${_.length} blocks`,"color:green"),{variables:{...s.variables??{},...d},status:{...s.status??{},...f}}};function kn(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(s=>{t[`attr_${s}${n}`]=r.attributes[s];}),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 br=kn;function Te(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${Ar(r)}`;return e[n]}let o=`${t}${Ar(r)}`;return e[o]}function Ar(e){return e[0].toUpperCase()+e.slice(1)}function j(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];if(process.env.NODE_ENV!=="production"){var n=Nn[e],s=n?typeof n=="function"?n.apply(null,r):n:"unknown error nr: "+e;throw Error("[Immer] "+s)}throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map(function(a){return "'"+a+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function Ie(e){return !!e&&!!e[Q]}function Ae(e){var t;return !!e&&(function(r){if(!r||typeof r!="object")return !1;var o=Object.getPrototypeOf(r);if(o===null)return !0;var n=Object.hasOwnProperty.call(o,"constructor")&&o.constructor;return n===Object||typeof n=="function"&&Function.toString.call(n)===Mn}(e)||Array.isArray(e)||!!e[Or]||!!(!((t=e.constructor)===null||t===void 0)&&t[Or])||It(e)||Bt(e))}function $e(e,t,r){r===void 0&&(r=!1),we(e)===0?(r?Object.keys:Ut)(e).forEach(function(o){r&&typeof o=="symbol"||t(o,e[o],e);}):e.forEach(function(o,n){return t(n,o,e)});}function we(e){var t=e[Q];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:It(e)?2:Bt(e)?3:0}function kt(e,t){return we(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Pn(e,t){return we(e)===2?e.get(t):e[t]}function Ir(e,t,r){var o=we(e);o===2?e.set(t,r):o===3?e.add(r):e[t]=r;}function Ln(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function It(e){return Bn&&e instanceof Map}function Bt(e){return wn&&e instanceof Set}function be(e){return e.o||e.t}function wt(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Dn(e);delete t[Q];for(var r=Ut(t),o=0;o<r.length;o++){var n=r[o],s=t[n];s.writable===!1&&(s.writable=!0,s.configurable=!0),(s.get||s.set)&&(t[n]={configurable:!0,writable:!0,enumerable:s.enumerable,value:e[n]});}return Object.create(Object.getPrototypeOf(e),t)}function Nt(e,t){return t===void 0&&(t=!1),Mt(e)||Ie(e)||!Ae(e)||(we(e)>1&&(e.set=e.add=e.clear=e.delete=_n),Object.freeze(e),t&&$e(e,function(r,o){return Nt(o,!0)},!0)),e}function _n(){j(2);}function Mt(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function oe(e){var t=Un[e];return t||j(18,e),t}function vr(){return process.env.NODE_ENV==="production"||Be||j(0),Be}function At(e,t){t&&(oe("Patches"),e.u=[],e.s=[],e.v=t);}function st(e){Pt(e),e.p.forEach(On),e.p=null;}function Pt(e){e===Be&&(Be=e.l);}function xr(e){return Be={p:[],l:Be,h:e,m:!0,_:0}}function On(e){var t=e[Q];t.i===0||t.i===1?t.j():t.g=!0;}function vt(e,t){t._=t.p.length;var r=t.p[0],o=e!==void 0&&e!==r;return t.h.O||oe("ES5").S(t,e,o),o?(r[Q].P&&(st(t),j(4)),Ae(e)&&(e=at(t,e),t.l||it(t,e)),t.u&&oe("Patches").M(r[Q].t,e,t.u,t.s)):e=at(t,r,[]),st(t),t.u&&t.v(t.u,t.s),e!==Br?e:void 0}function at(e,t,r){if(Mt(t))return t;var o=t[Q];if(!o)return $e(t,function(i,c){return Cr(e,o,t,i,c,r)},!0),t;if(o.A!==e)return t;if(!o.P)return it(e,o.t,!0),o.t;if(!o.I){o.I=!0,o.A._--;var n=o.i===4||o.i===5?o.o=wt(o.k):o.o,s=n,a=!1;o.i===3&&(s=new Set(n),n.clear(),a=!0),$e(s,function(i,c){return Cr(e,o,n,i,c,r,a)}),it(e,n,!1),r&&e.u&&oe("Patches").N(o,r,e.u,e.s);}return o.o}function Cr(e,t,r,o,n,s,a){if(process.env.NODE_ENV!=="production"&&n===r&&j(5),Ie(n)){var i=at(e,n,s&&t&&t.i!==3&&!kt(t.R,o)?s.concat(o):void 0);if(Ir(r,o,i),!Ie(i))return;e.m=!1;}else a&&r.add(n);if(Ae(n)&&!Mt(n)){if(!e.h.D&&e._<1)return;at(e,n),t&&t.A.l||it(e,n);}}function it(e,t,r){r===void 0&&(r=!1),!e.l&&e.h.D&&e.m&&Nt(t,r);}function xt(e,t){var r=e[Q];return (r?be(r):e)[t]}function kr(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var o=Object.getOwnPropertyDescriptor(r,t);if(o)return o;r=Object.getPrototypeOf(r);}}function Lt(e){e.P||(e.P=!0,e.l&&Lt(e.l));}function Ct(e){e.o||(e.o=wt(e.t));}function _t(e,t,r){var o=It(t)?oe("MapSet").F(t,r):Bt(t)?oe("MapSet").T(t,r):e.O?function(n,s){var a=Array.isArray(n),i={i:a?1:0,A:s?s.A:vr(),P:!1,I:!1,R:{},l:s,t:n,k:null,o:null,j:null,C:!1},c=i,u=Ot;a&&(c=[i],u=qe);var l=Proxy.revocable(c,u),p=l.revoke,d=l.proxy;return i.k=d,i.j=p,d}(t,r):oe("ES5").J(t,r);return (r?r.A:vr()).p.push(o),o}function In(e){return Ie(e)||j(22,e),function t(r){if(!Ae(r))return r;var o,n=r[Q],s=we(r);if(n){if(!n.P&&(n.i<4||!oe("ES5").K(n)))return n.t;n.I=!0,o=Pr(r,s),n.I=!1;}else o=Pr(r,s);return $e(o,function(a,i){n&&Pn(n.t,a)===i||Ir(o,a,t(i));}),s===3?new Set(o):o}(e)}function Pr(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return wt(e)}var Lr,Be,Dt=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",Bn=typeof Map<"u",wn=typeof Set<"u",_r=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",Br=Dt?Symbol.for("immer-nothing"):((Lr={})["immer-nothing"]=!0,Lr),Or=Dt?Symbol.for("immer-draftable"):"__$immer_draftable",Q=Dt?Symbol.for("immer-state"):"__$immer_state";var Nn={0:"Illegal state",1:"Immer drafts cannot have computed properties",2:"This object has been frozen and should not be mutated",3:function(e){return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+e},4:"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",5:"Immer forbids circular references",6:"The first or second argument to `produce` must be a function",7:"The third argument to `produce` must be a function or undefined",8:"First argument to `createDraft` must be a plain object, an array, or an immerable object",9:"First argument to `finishDraft` must be a draft returned by `createDraft`",10:"The given draft is already finalized",11:"Object.defineProperty() cannot be used on an Immer draft",12:"Object.setPrototypeOf() cannot be used on an Immer draft",13:"Immer only supports deleting array indices",14:"Immer only supports setting array indices and the 'length' property",15:function(e){return "Cannot apply patch, path doesn't resolve: "+e},16:'Sets cannot have "replace" patches.',17:function(e){return "Unsupported patch operation: "+e},18:function(e){return "The plugin for '"+e+"' has not been loaded into Immer. To enable the plugin, import and call `enable"+e+"()` when initializing your application."},20:"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available",21:function(e){return "produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '"+e+"'"},22:function(e){return "'current' expects a draft, got: "+e},23:function(e){return "'original' expects a draft, got: "+e},24:"Patching reserved attributes like __proto__, prototype and constructor is not allowed"},Mn=""+Object.prototype.constructor,Ut=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Dn=Object.getOwnPropertyDescriptors||function(e){var t={};return Ut(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r);}),t},Un={},Ot={get:function(e,t){if(t===Q)return e;var r=be(e);if(!kt(r,t))return function(n,s,a){var i,c=kr(s,a);return c?"value"in c?c.value:(i=c.get)===null||i===void 0?void 0:i.call(n.k):void 0}(e,r,t);var o=r[t];return e.I||!Ae(o)?o:o===xt(e.t,t)?(Ct(e),e.o[t]=_t(e.A.h,o,e)):o},has:function(e,t){return t in be(e)},ownKeys:function(e){return Reflect.ownKeys(be(e))},set:function(e,t,r){var o=kr(be(e),t);if(o?.set)return o.set.call(e.k,r),!0;if(!e.P){var n=xt(be(e),t),s=n?.[Q];if(s&&s.t===r)return e.o[t]=r,e.R[t]=!1,!0;if(Ln(r,n)&&(r!==void 0||kt(e.t,t)))return !0;Ct(e),Lt(e);}return e.o[t]===r&&(r!==void 0||t in e.o)||Number.isNaN(r)&&Number.isNaN(e.o[t])||(e.o[t]=r,e.R[t]=!0),!0},deleteProperty:function(e,t){return xt(e.t,t)!==void 0||t in e.t?(e.R[t]=!1,Ct(e),Lt(e)):delete e.R[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=be(e),o=Reflect.getOwnPropertyDescriptor(r,t);return o&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:o.enumerable,value:r[t]}},defineProperty:function(){j(11);},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){j(12);}},qe={};$e(Ot,function(e,t){qe[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)};}),qe.deleteProperty=function(e,t){return process.env.NODE_ENV!=="production"&&isNaN(parseInt(t))&&j(13),qe.set.call(this,e,t,void 0)},qe.set=function(e,t,r){return process.env.NODE_ENV!=="production"&&t!=="length"&&isNaN(parseInt(t))&&j(14),Ot.set.call(this,e[0],t,r,e[0])};var Fn=function(){function e(r){var o=this;this.O=_r,this.D=!0,this.produce=function(n,s,a){if(typeof n=="function"&&typeof s!="function"){var i=s;s=n;var c=o;return function(b){var m=this;b===void 0&&(b=i);for(var I=arguments.length,v=Array(I>1?I-1:0),x=1;x<I;x++)v[x-1]=arguments[x];return c.produce(b,function($){var _;return (_=s).call.apply(_,[m,$].concat(v))})}}var u;if(typeof s!="function"&&j(6),a!==void 0&&typeof a!="function"&&j(7),Ae(n)){var l=xr(o),p=_t(o,n,void 0),d=!0;try{u=s(p),d=!1;}finally{d?st(l):Pt(l);}return typeof Promise<"u"&&u instanceof Promise?u.then(function(b){return At(l,a),vt(b,l)},function(b){throw st(l),b}):(At(l,a),vt(u,l))}if(!n||typeof n!="object"){if((u=s(n))===void 0&&(u=n),u===Br&&(u=void 0),o.D&&Nt(u,!0),a){var f=[],T=[];oe("Patches").M(n,u,f,T),a(f,T);}return u}j(21,n);},this.produceWithPatches=function(n,s){if(typeof n=="function")return function(u){for(var l=arguments.length,p=Array(l>1?l-1:0),d=1;d<l;d++)p[d-1]=arguments[d];return o.produceWithPatches(u,function(f){return n.apply(void 0,[f].concat(p))})};var a,i,c=o.produce(n,s,function(u,l){a=u,i=l;});return typeof Promise<"u"&&c instanceof Promise?c.then(function(u){return [u,a,i]}):[c,a,i]},typeof r?.useProxies=="boolean"&&this.setUseProxies(r.useProxies),typeof r?.autoFreeze=="boolean"&&this.setAutoFreeze(r.autoFreeze);}var t=e.prototype;return t.createDraft=function(r){Ae(r)||j(8),Ie(r)&&(r=In(r));var o=xr(this),n=_t(this,r,void 0);return n[Q].C=!0,Pt(o),n},t.finishDraft=function(r,o){var n=r&&r[Q];process.env.NODE_ENV!=="production"&&(n&&n.C||j(9),n.I&&j(10));var s=n.A;return At(s,o),vt(void 0,s)},t.setAutoFreeze=function(r){this.D=r;},t.setUseProxies=function(r){r&&!_r&&j(20),this.O=r;},t.applyPatches=function(r,o){var n;for(n=o.length-1;n>=0;n--){var s=o[n];if(s.path.length===0&&s.op==="replace"){r=s.value;break}}n>-1&&(o=o.slice(n+1));var a=oe("Patches").$;return Ie(r)?a(r,o):this.produce(r,function(i){return a(i,o)})},e}(),X=new Fn,Vn=X.produce;X.produceWithPatches.bind(X);X.setAutoFreeze.bind(X);X.setUseProxies.bind(X);X.applyPatches.bind(X);X.createDraft.bind(X);X.finishDraft.bind(X);var ct=Vn;var te=ae.actions,Dr=je({block:ue("block"),dimension:ue("dimension"),formatter:ue("formatter"),report:ue("report"),section:ue("section"),variant:ue("variant"),datasource:ue("datasource")}),ze=je({block:le("block"),dimension:le("dimension"),formatter:le("formatter"),report:le("report"),section:le("section"),variant:le("variant"),datasource:le("datasource")}),Ur=je({block:ne("block"),dimension:ne("dimension"),formatter:ne("formatter"),report:ne("report"),section:ne("section"),variant:ne("variant"),datasource:ne("datasource")}),Fr=je({block:ve("block"),dimension:ve("dimension"),formatter:ve("formatter"),report:ve("report"),section:ve("section"),variant:ve("variant"),datasource:ve("datasource")}),Vr=je({block:Nr("block"),section:Nr("section")});function je(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 Ce(e,t){return (r,o)=>{let s=o().records.requests[e][t],a=!s||s.status==="UNINITIALIZED"?"LOADING":"FETCHING";r(te.setRequest({key:t,type:e,status:a}));}}function xe(e,t,r,o){return n=>{typeof window=="object"&&notifications.show({autoClose:3e3,color:"red",id:t,message:o,title:"Error"}),n(te.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function ue(e){return t=>{let r=Vt(e,t);return (o,n,s)=>(o(Ce(e,r)),Te(s,"create",e)(t).then(i=>(i.ok===!0?o(te.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(xe(e,r,i.status,i.error)),i)))}}function zn(e){return t=>{let r=Vt(e,t[0]);return (o,n,s)=>(o(Ce(e,r)),Te(s,"createBulk",e)(t).then(i=>(i.ok===!0?o(te.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(xe(e,r,i.status,i.error)),i)))}}function wr(e,t,r){return r.replace(new RegExp(e,"g"),t)}function jn(e){return e.section_id!==void 0}function Gn(e){return e.report_id!==void 0}function Nr(e){return t=>{let{create:r}=t;return (o,n,s)=>ue(e)(r)(o,n,s).then(async i=>{if(i.ok){let{data:c}=i,{id:u}=c,{update:l}=t,p=zr(e,{id:u});if(o(Ce(e,`${p}`)),e==="block"&&jn(r)){let d=ct(l,m=>{m.id=u;}),{contentByLocale:f}=d;f&&(d=ct(d,m=>{m.id=u,m.contentByLocale=Object.keys(f).reduce((I,v)=>{let x=f?f[v]:{};return I[v]={...x,id:u},I},{});}));let b=d.inputs?.map(m=>({type:m.type,id:m.id,inputAction:{operation:"create",input:{input_id:m.id,block_id:d.id}}}));return b&&b.length>0&&Mr(e)([d,...b])(o,n,s).then(()=>le("section")({id:d.section_id,include:!0})(o,n,s).then(m=>(m.ok&&o(te.setRequest({key:p,type:e,status:"SUCCESS",data:m.data})),m))),ne(e)(d)(o,n,s).then(m=>(m.ok&&o(te.setRequest({key:p,type:e,status:"SUCCESS",data:m.data})),m))}if(e==="section"&&Gn(r)){let{id:d}=c,f=ct(l,m=>{m.id=d;}),{blocks:T}=f,b=T?.map(m=>({type:m.type,blockcol:m.blockcol,blockrow:m.blockrow,section_id:d,locales:Object.keys(m.contentByLocale).map(I=>I)}));return b&&T&&await zn("block")(b)(o,n,s).then(m=>{if(m.ok){let I=m.data,v=[],x=I.map(($,_)=>{let k={...$},P=k.id,C=T[_];C.contentByLocale&&(k.contentByLocale=Object.keys(C.contentByLocale).reduce((y,R)=>{let h=C.contentByLocale[R];return y[R]={...h,content:{...h.content},id:k.id},y},{}));let{settings:O}=C,{contentByLocale:N,id:V}=k;k.settings=O;let H={id:V,contentByLocale:N,settings:O};return C.inputs.map(y=>y.id).reduce((y,R)=>{let h=T.findIndex(A=>A.id===R);return [...y,h]},[]).map(y=>({...I[y],originalBlock:T[y]})).forEach(y=>{let{id:R,type:h,originalBlock:A}=y;if([S.SELECTOR,S.VIZ].includes(h)){if(H.contentByLocale?.logic?.content?.api){let pe=H.contentByLocale?.logic.content.api;H.contentByLocale.logic.content.api=wr(`(selector${A.id}id)`,`selector${R}id`,pe);}if(H.contentByLocale?.logic?.content?.logic){let pe=H.contentByLocale.logic.content.logic;H.contentByLocale.logic.content.logic=wr(`(selector${A.id}id)`,`selector${R}id`,pe);}}v.push({id:R,inputAction:{operation:"create",input:{input_id:R,block_id:P}}});}),H});return Mr("block")([...x,...v])(o,n,s)}}),ne(e)(f)(o,n,s).then(m=>(m.ok&&o(te.setRequest({key:p,type:e,status:"SUCCESS",data:m.data})),m))}return ne(e)({...l,id:c.id})(o,n,s)}})}}function le(e){return t=>{let r=qr(e,t);return (o,n,s)=>{o(Ce(e,r));let a=Te(s,"read",e);if(typeof a!="function"){let i=`Failed to get valid RPC method for entity "${e}"`;return o(xe(e,r,500,i)),Promise.reject(new Error(i))}return a(t).then(i=>(i.ok===!0?o(te.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(xe(e,r,i.status,i.error)),i))}}}function ne(e){return t=>{let r=qt(e,t);return (o,n,s)=>(o(Ce(e,r)),Te(s,"update",e)(t).then(i=>(i.ok===!0?o(te.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(xe(e,r,i.status,i.error)),i)))}}function Mr(e){return t=>{let r=qt(e,t[0]);return (o,n,s)=>(o(Ce(e,r)),Te(s,"updateBulk",e)(t).then(i=>(i.ok===!0?o(te.setUpdateRequest({key:r,operation:"updateBulk",status:"SUCCESS",type:e,data:i.data})):o(xe(e,r,i.status,i.error)),i)))}}function ve(e){return t=>{let r=$r(e,t);return (o,n,s)=>(o(Ce(e,r)),Te(s,"delete",e)(t).then(i=>{i.ok===!0?o(te.setDeleteRequest({key:r,operation:"delete",status:"SUCCESS",type:e,data:i.data})):o(xe(e,r,i.status,i.error));}))}}function Vt(e,t){if(e==="variant"){let r=t;return `create(variant, [${r.dimension_id}, ${r.name}])`}return `create(${e}, [${Object.keys(t)}])`}function qr(e,t={}){let r=t.id==null?null:`'${t.id}'`;return `read(${e}, ${r}, ${!!t.include})`}function qt(e,t){let{id:r,...o}=t;return `update(${e}, ${r}, [${Object.keys(o)}])`}function $r(e,t){return `delete(${e}, ${t})`}function zr(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:jr,setPreviews:Hn,setSectionState:Gr,resetSectionState:Hr,setCurrentLocale:Kn,setPreferredLocale:Yn,addRunConsumersRunning:Kr,removeRunConsumersRunning:Yr}=Oe;function Wn(e,t){return async(r,o,n)=>{let s=await n.validateVariantSlug({dimension:e,slug:t});if("error"in s)throw new Error(s.error);return s.data}}function Qn(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 Xn(){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 Wr(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 Zn(e){return async(t,r,o)=>{let n=await o.searchMember(e);if(n.ok===!0)return n.data;throw new Error(n.error)}}async function Qr(e,t,r,o){let n=r().status,s={...n,...o},a={...n.query,...o.query};Object.keys(a).forEach(c=>a[c]===void 0&&delete a[c]);let i={...s,query:a};t(jr(i)),n.activeSection&&t(Xr(e,{query:a}));}function Jn(e,t){return async(r,o)=>Qr(e,r,o,{query:{[t]:void 0}})}function es(e,t,r){return async(o,n)=>Qr(e,o,n,{query:{[t]:r}})}function Xr(e,t){return async(r,o)=>{let n=o(),{currentLocale:s}=n.status,a=n.records.entities.block,i=e.formatterFunctions[s],c=e.datasourceFunctions,{parsedParams:u,statusPayload:l}=Jt(n.status,t),{sid:p,bid:d,previews:f,query:T}=u;Object.keys(l).length&&r(Oe.setStatus(l));let b={...br(f),locale:s,...Ve()},m={variables:b,query:T,locale:s};r(Oe.addRunConsumersRunning([p]));let I=n.records.entities.section[p],v=async x=>r(Wr(x));try{let x=await Tr(a,I&&[I],d,i,m,void 0,v,"section",c),{variables:$,status:_}=x;r(er.setVariableChange({attributes:b,variables:$,status:_})),r(Oe.removeRunConsumersRunning([p]));}catch(x){console.error("Error in runConsumers client side: recalculateVariables",x);}}}function ts(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 rs(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 os(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function ns(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 ss(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 as({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 is(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 cs(e){let{removeBlocks:t}=ae.actions;return async r=>{await r(t(e));}}function us(e){let{addBlocks:t}=ae.actions;return async r=>{await r(t(e));}}function ls(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 ps(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 ds(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 fs(){return async(e,t,r)=>{let o=await r.readEnvSecrets({});if("error"in o)throw new Error(o.error);return o.data}}function ms(){let{removeDataSourceLogic:e}=ae.actions;return async t=>{await t(e());}}var {locales:Rs}=re(),gs={pathSegment:"path",formatterFunctions:Rs.reduce((e,t)=>({...e,[t]:{}}),{}),datasourceFunctions:[],profilePrefix:"path",siteProps:{}};createContext(gs);re();var lt=useDispatch,Ge=useSelector;
32
-
33
- export { ut as actions, rr as storeWrapper, lt as useBespokeDispatch, Ge as useBespokeSelector };
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};