@datawheel/bespoke 0.8.0-rc.12 → 0.8.0-rc.13
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/report.js +1 -1
- package/dist/server.js +5 -5
- package/package.json +1 -1
package/dist/report.js
CHANGED
|
@@ -55,7 +55,7 @@ var ym=Object.defineProperty;var S=(e,r)=>()=>(e&&(r=e(e=0)),r);var ls=(e,r)=>{f
|
|
|
55
55
|
dignissim interdum eros. Curabitur non tincidunt libero.
|
|
56
56
|
Suspendisse quis nibh in massa tincidunt feugiat sit amet vitae nisl.
|
|
57
57
|
In pulvinar sapien ut tincidunt volutpat. Donec auctor tellus eu augue feugiat,
|
|
58
|
-
a viverra sapien pulvinar.`,style:t,append:r?jsx(Pe,{content:r,style:{display:"inline-block",verticalAlign:"bottom"}}):jsx(Fragment,{}),isPreview:!0})}var vp=S(()=>{u();Lt();ke();});function qi({subtitle:e,title:r,value:t,tooltip:o,settings:n,_iconType:s,_iconVariant:i,_icon:a,_iconRadius:l,_iconSize:c,_iconPadding:d}){let p=r||"<span class='cr-block-placeholder'>Title</span>",m=t||"<span class='cr-block-placeholder'>Big Stat</span>",y=e||"<span class='cr-block-placeholder'>Subtitle</span>",b=n&&n.align||"left";return jsx("div",{className:"bespoke-Stat-root",children:jsxs(Group,{className:"bespoke-StatGroup-wrapper",position:Xe(b),children:[s!=="none"&&s&&jsx(Ie,{blockType:"stat",iconType:s,iconVariant:i,iconRadius:l,iconSize:c,icon:a,iconPadding:d}),jsxs("div",{className:"bespoke-Stat-wrapper",children:[jsx(te,{component:"div",size:"md",html:p,style:n,isPreview:!0}),jsx(te,{component:"div",size:"xl",html:m,style:n,isPreview:!0}),jsx(te,{component:"div",size:"sm",html:y,style:n,isPreview:!0})]},"stat"),o&&jsx(Pe,{content:o})]})})}var Tp=S(()=>{u();Lt();br();ke();Me();});function ji({subtitle:e,tooltip:r,settings:t}){let o=Be(e)||"<span class='cr-block-placeholder'>Small subtitle.</span>",n=t&&t.align?t.align:"left";return jsxs(Group,{spacing:"sm",position:Xe(n),children:[jsx(te,{size:"sm",html:o,isPreview:!0}),r&&jsx(Pe,{content:r,style:{display:"inline-flex"}})]})}var xp=S(()=>{u();Lt();hr();ke();Me();});function Wi({title:e,tooltip:r,_iconType:t,_iconVariant:o,_icon:n,settings:s,_iconRadius:i,_iconSize:a,_iconPadding:l}){let c=Be(e)||"Title",d=s&&s.order?parseInt(s.order,10):1,p=d<=6?d:1,m=!!(s&&s.search&&s.search!=="off"),y=s&&s.search?s.search:"",b=s&&s.align?s.align:"left";return jsxs(Group,{spacing:"sm",position:Xe(b),children:[t!=="none"&&t&&jsx(Ie,{blockType:"title",iconType:t,iconVariant:o,iconRadius:i,iconSize:a,icon:n,iconPadding:l}),jsx(te,{component:"h",order:p,style:s,html:c,isPreview:!0}),m&&jsx(Tooltip,{label:`Click will open '${y}' report search`,children:jsx(ActionIcon,{variant:"light",children:jsx(IconSearch,{size:20})})}),r&&jsx(Pe,{content:r})]})}var Ep=S(()=>{u();Lt();hr();br();ke();Me();});function Qi(e){let{id:r,type:t,defaultValue:o,options:n,name:s,settings:i,hideLabel:a,component:l,resetSectionVars:c,section:d}=e,p=useDispatch(),m=useContext(wt),y=K(w=>w.status.query),{sectionVariables:b,resetSectionVariables:h}=xe(d),g=Dv(r),L=useMemo(()=>y[g]||o,[y[g],t,o]),A=useMemo(()=>Fv(y[g],o),[y[g],t,o]),[O,x]=useState(n?.map(w=>({value:w.id,label:w.label,imageUrl:w.imageUrl}))||[]),[k,D]=useState((n||[]).map(w=>w.id).join("-"));useEffect(()=>{let w=n.map(F=>`${F.label}|${F.id}`).join("-");if(k===w)return;D(w);let U=n.map(F=>({value:F.id,label:F.label}));x(U);let q=t===Re.SINGLE?L:A;ir(t,q,n)||p(Ks(m,g));},[JSON.stringify(n),r]);let P=()=>{c==="true"&&b&&h();},E=w=>{p(gr(m,g,w)),P();},v=w=>{p(gr(m,g,w.join())),P();},_=a==="true"?jsx(Fragment,{}):jsx(te,{component:"div",html:s,size:"sm",style:i,isPreview:!0});return O.length===0?jsx(Text,{c:"dimmed",size:"xs",children:"No options defined yet. Selector hidden in report."}):O.length===1?jsxs(Text,{c:"dimmed",size:"xs",children:["Only one option defined. Selector hidden in report. ",JSON.stringify(O)]}):{[Re.SINGLE]:l===Zo.SEGMENTED_CONTROL?jsxs("div",{children:[_,jsx(SegmentedControl,{data:O,value:O.map(w=>w.value).includes(L)?L:"",onChange:E,fullWidth:!0})]}):jsx(Select,{label:_,data:O,value:L,onChange:E,itemComponent:zv,styles:{label:{display:a==="true"?"none":"block"}}}),[Re.MULTI]:jsx(MultiSelect,{label:_,data:O,value:A,onChange:v,styles:{label:{display:a==="true"?"none":"block"}}})}[t]}var Dv,Fv,zv,Ap=S(()=>{u();Ro();Xo();me();pe();qt();ke();Ee();Dv=e=>`selector${e}id`,Fv=(e,r)=>e&&typeof e=="string"?e.split(","):r,zv=forwardRef(function({imageUrl:r,label:t,...o},n){return jsx("div",{ref:n,...o,children:jsxs(Group,{noWrap:!0,children:[r&&jsx(Box,{component:"img",w:25,h:25,src:r}),jsx("div",{children:jsx(Text,{size:"sm",children:t})})]})})});});var Pp=S(()=>{});function ea({dimmed:e=!1,label:r,root:t=!0,value:o,parentIsArray:n=!1,level:s=0}){let i=useMantineTheme();if(s===Xi)return null;let a=jsx(Text,{lineClamp:1,size:"xs",variant:"dimmed",p:5,children:"[Max depth hitted for preview]"}),l=Ji(o),c=o,d=JSON.stringify(o),p=!!(d&&d.length>50),m=!!(d&&d.length>1e3),y=10,b={control:{padding:"5px 0px 5px 5px"},label:{padding:"5px 0px"},content:{paddingTop:0,paddingBottom:0,paddingRight:0}};if(l==="object")return jsx(Accordion,{className:"cr-variable-accordion",variant:"contained",styles:b,children:jsxs(Accordion.Item,{value:"label",children:[jsx(Accordion.Control,{children:jsx(Text,{lineClamp:1,size:"xs",weight:700,color:e?"dimmed":i.primaryColor,children:t?`{{${r}}}`:n?`[${r}]`:r})}),jsx(Accordion.Panel,{children:s+1<Xi?Object.keys(o).sort((h,g)=>{let L=Ji(o[h]),A=Ji(o[g]);return L!==A?Ip.indexOf(L)-Ip.indexOf(A):h.localeCompare(g)}).map(h=>jsx(ea,{root:!1,label:h,value:o[h],level:s+1},h)):a})]})});if(l==="array"){let h=o.length>y,g=h?o.slice(0,y):o,L=h?o.length-y:0;return jsx(Accordion,{className:"cr-variable-accordion",variant:"contained",styles:b,children:jsxs(Accordion.Item,{value:"label",children:[jsx(Accordion.Control,{children:jsx(Text,{lineClamp:1,size:"xs",weight:700,p:0,color:e?"dimmed":i.primaryColor,children:t?`{{${r}}}`:n?`[${r}]`:r})}),jsxs(Accordion.Panel,{children:[s+1<Xi?g.map((A,O)=>jsx(ea,{root:!1,label:O,value:A,level:s+1,parentIsArray:!0},O)):a,h&&jsxs(Text,{lineClamp:1,size:"xs",variant:"dimmed",p:5,children:["[+ ",L," other elements]"]})]})]})})}return l==="string"?c=m?`"${c.substring(0,1e3)} ... "`:`"${c}"`:l==="error"?c=`Error: ${c.message}`:l==="undefined"?c=l:c.toString&&(c=c.toString()),jsxs(Group,{noWrap:!0,spacing:0,children:[jsx(Text,{color:e?"dimmed":i.primaryColor,lineClamp:1,size:"xs",pl:5,style:{overflow:"visible",wordBreak:"keep-all",whiteSpace:"nowrap"},weight:700,children:t?`{{${r}}}`:n?`[${r}]`:r}),jsx(Prism,{className:"cr-variable",language:"jsx",noCopy:!0,scrollAreaComponent:"div",styles:{root:{flex:"1 1 100%",textAlign:"right",overflow:"hidden"},code:{padding:"5px 0 5px 5px"},scrollArea:{marginLeft:"5px"},line:{paddingRight:"5px"}},children:c}),p&&jsxs(HoverCard,{width:400,shadow:"md",withinPortal:!0,children:[jsx(HoverCard.Target,{children:jsx(ActionIcon,{children:jsx(IconCodePlus,{})})}),jsx(HoverCard.Dropdown,{children:jsx(Text,{size:"sm",children:JSON.stringify(o).substring(0,5e3)})})]})]})}var Ji,Ip,Xi,wp,Op=S(()=>{u();Pp();Ji=e=>{let r=typeof e;if(r==="object"){if(e===null)return "undefined";Array.isArray(e)?r="array":["Error","EvalError","ReferenceError","SyntaxError"].includes(e.constructor.name)&&(r="error");}return r},Ip=["object","array","string","number"],Xi=5;wp=ea;});var Lp,_p=S(()=>{u();Lp=e=>r=>r.replace(new RegExp(`^${e}`),"").startsWith("_");});function Kv({reserved:e=[],id:r,variables:t={},showInternal:o=!1}){let s=lt(r==="attributes"?null:r).data,i=s?s.type:"block",a=s?.type&&s?.id?`${s.type}${s.id}`:"",l=Object.keys(t).filter(o?()=>!0:c=>!Lp(a)(c));return jsx(Stack,{spacing:0,children:l.length?l.map(c=>jsx(wp,{dimmed:e.includes(c),label:c,value:t[c]},c)):jsx(Text,{color:"dimmed",size:"xs",children:jsx("i",{children:`empty ${i}`})})})}var Bp,Mp=S(()=>{u();Op();pe();_p();Bp=Kv;});function oS({outputVariables:e,status:r,hasAPI:t=!1,debug:o,type:n}){let[s,i]=useState(!1),a=t&&!Object.keys(e).length&&!r.error,l=Object.keys(e).some(d=>d.startsWith("_"));return o?a?jsxs(Stack,{align:"center",children:[jsx(Loader,{}),jsxs(Text,{size:"sm",children:["Loading ",n]})]}):jsxs(Fragment,{children:[jsx(Divider,{label:"Output Variables",labelPosition:"center"}),l&&jsx(Switch,{label:"Show internal variables",mb:"xs",size:"xs",checked:s,onChange:d=>i(d.currentTarget.checked)}),jsx(Bp,{variables:e,showInternal:s})]}):jsx(Center,{children:jsx(Badge,{color:"gray",variant:"outline",children:n.toUpperCase()},"type")})}var ra,Np=S(()=>{u();Mp();ra=oS;});function oa(e){let{alt:r,src:t,desc:o,title:n,settings:s,...i}=e,a=Be(r),l=Be(t),c=Be(o),d=jsx("img",{src:l,alt:a,style:i}),p=s&&s.align?String(s.align):"left";return (c&&c.length||n&&n.length)&&(d=jsxs(Stack,{className:"bespoke-Image-wrapper",align:yt(p),spacing:"sm",children:[n&&jsx(te,{component:"p",html:n,style:s,isPreview:!0}),d,o&&jsx(te,{component:"p",size:"sm",html:o,style:s,isPreview:!0})]})),l&&a?d:jsx(Center,{mih:100,bg:"white",children:jsx(Badge,{color:"gray",variant:"outline",children:"IMAGE"},"type")})}var Dp=S(()=>{u();hr();ke();Me();});var na=S(()=>{u();qt();});var Fp=S(()=>{u();pe();na();});var zp=S(()=>{u();na();Fp();Pi();});function aa({headings:e,settings:r}){let{min:t="1",max:o="6",icons:n="yes"}=r||{},s=Jr(parseInt(t,10),parseInt(o,10),e),i=n==="yes",a=Kr(r&&r.align?String(r.align):"left"),l=c=>!c||!c?.length?null:jsx(Fragment,{children:c.map(d=>jsxs(Fragment$1,{children:[jsx(Menu.Item,{children:jsx(Anchor,{href:`#bespoke-title-${d.id}`,children:jsxs(Group,{spacing:"sm",children:[i&&jsx(Ie,{...d.iconProps,iconSize:"sm"}),jsx(Text,{dangerouslySetInnerHTML:{__html:d.label}})]})})},d.id),jsx(Box,{pl:"xs",children:l(d.children)})]},d.id))});return jsx(Box,{pos:"relative",children:jsxs(List,{sx:c=>({display:"flex",gap:c.spacing.md,justifyContent:a,listStyleType:"none"}),children:[s?.map(c=>jsx(List.Item,{children:jsxs(Menu,{trigger:"hover",openDelay:100,closeDelay:400,children:[jsx(Menu.Target,{children:jsx(Anchor,{href:`#bespoke-title-${c.id}`,children:jsxs(Group,{spacing:"sm",noWrap:!0,children:[i&&jsx(Ie,{blockType:"nav",...c.iconProps,iconSize:"sm",iconPadding:"2"}),jsx(Text,{dangerouslySetInnerHTML:{__html:c.label}})]})})}),c?.children?.length?jsx(Menu.Dropdown,{children:l(c.children)}):null]})},c.id)),!s||s.length===0&&jsx(List.Item,{children:jsx(Text,{color:"dimmed",children:"- Include some titles as inputs to see the Nav component -"})})]})})}var Gp=S(()=>{u();zp();br();Me();});function ca(e){let{related_reports:r,settings:t}=e;if(!r?.length)return jsx(Text,{children:"There are no available members related to your current selection and report."});let o=Kr(t&&t.align?String(t.align):"left");return jsx(List,{sx:()=>({display:"flex",justifyContent:o,"& li":{marginRight:"1rem"}}),children:r.map(n=>jsx(List.Item,{children:n.entities.map(s=>s.name).join(" & ")},n.link))})}var qp=S(()=>{u();Me();});function pa({id:e,label:r,settings:t,showIcon:o,fullWidth:n,showWhenDisabled:s}){let i=lt(e).data,{sectionVariables:a,resetSectionVariables:l}=xe(i?.section_id),c=!!Object.keys(a).length,d=yt(t&&t.align?t.align:"left");return jsxs(Stack,{align:d,children:[!c&&!s&&jsx(Text,{size:"xs",ta:t?.align||"left",children:"Reset button will not be shown on its disabled state"}),jsx(Button,{onClick:()=>l(),disabled:!c,fullWidth:n,children:jsxs(Group,{align:"center",children:[r,o&&jsx(IconRefresh,{})]})})]})}var Wp=S(()=>{u();Ee();Ee();Me();});function da({settings:e,label:r,showIcon:t,position:o="center"}){let n=e&&e.search?e.search:"";return jsxs(Group,{position:o,children:[jsx(Tooltip,{label:`Click will open '${n}' report search`,children:jsx(Button,{children:jsxs(Group,{align:"center",children:[r||"Comparison Button",t&&jsx(IconPlus,{})]})})}),jsx(ActionIcon,{variant:"light",children:jsx(IconSearch,{size:20})})]})}var Qp=S(()=>{u();});function fa({columns:e=[],id:r,data:t=[],tableProps:o={}}){let[n,s]=useState({}),{initialState:i}=o,a=i?.pagination?.pageIndex,l=i?.pagination?.pageSize,c=`table-${[r,a,l].filter(b=>b).join("-")}`,d=useMemo(()=>e.map(b=>b.accessorKey),[e]),p=useMemo(()=>t.filter(b=>typeof b=="object"&&b!==null&&!Array.isArray(b)&&Object.keys(b).some(h=>d.includes(h))),[d,t]),m=useMemo(()=>e.map(b=>({...b,Cell:({renderedCellValue:h})=>jsx(te,{html:`${h}`,isPreview:!0}),filterFn:"contains"})),[e]),y=Jl();return useEffect(()=>{(async()=>{try{let h=y||"en",g=`${h.toUpperCase()}`,L=await import(`mantine-react-table/locales/${h}.js`);s(L[`MRT_Localization_${g}`]);}catch(h){console.error("Error loading translations:",h);}})();},[y]),createElement(MantineReactTable,{...o,autoResetPageIndex:!1,columns:m,data:p,enableColumnFilterModes:!0,enableFilterMatchHighlighting:!1,globalFilterFn:"contains",key:c,layoutMode:"grid",localization:n,state:{...o.state,isFullScreen:!1}})}var Zp=S(()=>{u();ke();Ee();});function ga({label:e,url:r,settings:t}){let{align:o}=t;return jsx(Group,{position:o,grow:o==="justify",children:jsx(Button,{component:"a",target:"_blank",href:r||"",children:e||"Button"})})}var Xp=S(()=>{u();});function ya(e){let r=useDispatch(),t=useContext(wt),o=K(z=>z.status.query),n=qS(e.id),s=useMantineTheme(),{allLabel:i,colorKey:a,data:l,defaultValue:c,defaultValueType:d,iconKey:p,levels:m,limit:y,placeholder:b,searchIndexKey:h,searchIndexSeparator:g,resetSectionVars:L,section:A}=e,[O,x]=useState(!1),[k,D]=useState(!0),[P,E]=useState(""),[v,_]=useState(!1),[w,U]=useState([""].slice(1)),{sectionVariables:q,resetSectionVariables:F}=xe(A),C=useMemo(()=>jS(o[`${n}-value`],c),[o,c,n]),j=useMemo(()=>o[`${n}-type`]||d,[o,d,n]),Y=useCallback(()=>{L==="true"&&q&&F();},[L,q,F]),G=useCallback(z=>{Y(),r(gr(t,`${n}-value`,z.join()));},[r,t,n,Y]),oe=useCallback(z=>{Y(),r(gr(t,`${n}-type`,z));},[r,t,n,Y]),re=useRef(null),W=useRef(!1),N=useRef(!!y&&y<C.length),H=w.length,$=m[H],V=w.filter(Boolean);w.length>0&&V.length===0&&V.push(`${i} ${$?.label}`),useEffect(()=>{let z=()=>{D(!0);};return window.addEventListener("touchmove",z),()=>{window.removeEventListener("touchmove",z);}},[]);let M=useMemo(()=>US(l,m,a,p,h,g),[a,l,p,m,h,g]),B=useMemo(()=>{let z=GS(P),se=Array.from(HS(M,z)).reverse();return v?se:w.reduce((I,Z)=>I.filter(Q=>!Z||Q.searchindex.indexOf(Z)>-1),se.filter(I=>I.type===$?.value))},[$,M,P,v,w]),J=useRef(null),ee=An({count:O?B.length:0,estimateSize:()=>30,getScrollElement:useCallback(()=>J.current,[]),overscan:10,rangeExtractor:useCallback(z=>Lo(z),[])}),[fe,X]=useState(-1),ye=Math.min(fe,B.length-1),Se=useCallback(z=>{let se=w.concat(z);v&&_(!1),U(se);},[v,w]),ot=useCallback(()=>{let z=w.slice(0,H-1);v&&_(!1),U(z);},[v,w,H]),ce=useCallback(z=>{E(z.currentTarget.value),!N.current&&l.length>0&&x(!0);},[l,E,N,x]),nt=useCallback(()=>{E(""),G([]),re.current?.focus(),y&&(N.current=!1);},[E,G,re,y,N]),At=useCallback(z=>{let se=C.filter(I=>I!==z);G(se),y&&se.length<y&&(N.current=!1);},[C,G,y,N]),Fe=useCallback(z=>{j||oe(z.type),j!==z.type?(oe(z.type),G([z.value])):C.includes(z.value)?At(z.value):y?(C.length<y&&G([...C,z.value]),C.length===y&&G([...C.slice(1),z.value])):G([...C,z.value]),E("");},[j,oe,G,C,At,y]),lo=useCallback(()=>{C.length>0&&P.length===0&&(G(C.slice(0,-1)),x(!0),y&&(N.current=!1)),P.length>0&&E(P.slice(0,-1));},[C,P,G,E,x,y,N]),co=useCallback(()=>{D(z=>z&&(W.current=z,!z)),X(z=>z+1>=B.length?z:z+1);},[X,B]),rr=useCallback(()=>{let z=B[ye];z&&Fe(z);},[B,ye,Fe]),uo=useCallback(()=>{x(!1);},[x]),Xn=useCallback(()=>{ot(),X(0);},[X,ot]),es=useCallback(()=>{let z=B[ye];!v&&z&&z.type!==m[m.length-1]?.value&&(Se(z.name),X(0));},[B,ye,v,m,X,Se]),ts=useCallback(()=>{D(z=>z&&(W.current=z,!z)),X(z=>z-1<0?0:z-1);},[X]),rs=({label:z,onRemove:se,...I})=>jsxs("div",{style:{alignItems:"center",backgroundColor:s.colorScheme==="dark"?s.colors.dark[7]:s.colors.gray[1],borderRadius:s.radius.sm,cursor:"default",color:s.colorScheme==="dark"?s.colors.dark[0]:s.colors.gray[7],display:"flex",fontSize:rem(12),fontWeight:500,height:rem(22),margin:`calc(${s.spacing.xs} / 2 - ${rem(2)}) calc(${s.spacing.xs} / 2)`,maxWidth:`calc(100% - ${rem(10)})`,paddingLeft:`calc(${s.spacing.sm} / 1.5)`,paddingRight:0,userSelect:"none"},...I,children:[jsx("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:z}),jsx(CloseButton,{"aria-hidden":!0,iconSize:"70%",onMouseDown:se,radius:2,size:"sm",sx:{color:s.colorScheme==="dark"?s.colors.dark[0]:s.colors.gray[7],marginLeft:`calc(${s.spacing.sm} / 6)`},tabIndex:-1})]}),os=useMemo(()=>C.map(z=>M.find(se=>se.value===z)).filter(z=>!!z).map((z,se)=>createElement(rs,{...z,index:se,key:z.value,onRemove:I=>{I.preventDefault(),I.stopPropagation(),At(z.value);}})),[C]),ns=forwardRef(function({color:se,icon:I,label:Z,value:Q,...ze},de){return jsx("div",{ref:de,style:{cursor:"pointer",width:"100%"},...ze,children:jsxs(Group,{align:"center",noWrap:!0,spacing:"xs",w:"100%",children:[I&&jsx(Box,{bg:se??"transparent",component:"img",w:20,h:20,src:I}),jsx(Text,{lineClamp:1,size:"sm",children:Z||Q})]})})}),{settings:ss}=e,is=e.hideLabel==="true"||!e.label?jsx(Fragment,{}):jsx(te,{component:"div",html:e.label,size:"sm",style:ss,isPreview:!0});return jsx(Input.Wrapper,{label:is,children:jsxs(Popover,{closeOnClickOutside:!0,keepMounted:!0,opened:O,onChange:x,onClose:()=>{X(0),E("");},onOpen:()=>{ee.scrollToIndex(0);},shadow:"sm",width:"target",withinPortal:!0,children:[jsx(Popover.Target,{children:jsxs(Box,{"aria-haspopup":"listbox",component:"div",onMouseLeave:()=>X(0),sx:{position:"relative","& .defaultValue":{backgroundColor:s.colorScheme==="dark"?s.colors.dark[5]:s.colors.gray[3],color:s.colorScheme==="dark"?s.colors.dark[1]:s.colors.gray[7]}},tabIndex:-1,children:[jsx("input",{type:"hidden",value:C.join(",")}),jsx(Input,{component:"div",multiline:!0,onMouseDown:z=>{z.preventDefault(),!N.current&&l.length>0&&x(!O),re.current?.focus();},rightSection:C.length>0?jsx(CloseButton,{onClick:nt,onMouseDown:z=>z.preventDefault(),variant:"transparent"}):jsx(IconSelector,{color:s.colors.gray[6],size:18,stroke:1.5}),style:{overflow:"hidden"},w:"100%",children:jsxs(Box,{component:"div","data-clearable":!0,sx:{alignItems:"center",boxSizing:"border-box",display:"flex",flexWrap:"wrap",marginLeft:`calc(-${s.spacing.xs} / 2)`,minHeight:`calc(${rem(36)} - ${rem(2)})`,"&[data-clearable]":{marginRight:rem(36)},"&::placeholder":{color:s.colorScheme==="dark"?s.colors.dark[3]:s.colors.gray[5],opacity:1}},children:[os,jsx("input",{autoComplete:"off","data-mantine-stop-propagation":O,onChange:ce,onKeyDown:getHotkeyHandler([["ArrowDown",co],["ArrowLeft",Xn],["ArrowRight",es],["ArrowUp",ts],["Backspace",lo],["Enter",rr],["Escape",uo]]),placeholder:C.length===0?b:void 0,ref:re,readOnly:N.current,style:{appearance:"none",backgroundColor:"transparent",border:0,color:"inherit",flex:1,fontSize:s.fontSizes.sm,marginLeft:`calc(${s.spacing.xs} / 2)`,maxHeight:rem(22),minWidth:rem(60),outline:0,padding:0},type:"search",value:P})]})})]})}),jsx(Popover.Dropdown,{onMouseDown:z=>z.preventDefault(),p:0,children:jsx("div",{style:{display:"flex",maxHeight:rem(300)},children:jsx(Box,{component:"div","data-combobox-popover":!0,onMouseDown:z=>z.preventDefault(),role:"listbox",sx:{width:"100%"},tabIndex:-1,children:jsxs(Stack,{h:"100%",py:"xs",spacing:"xs",w:"100%",children:[m.length>1&&jsxs(Stack,{spacing:"xs",children:[jsxs(Group,{onClick:z=>{z.stopPropagation();},px:"xs",position:"center",spacing:"xs",children:[jsx(Button,{onClick:()=>{X(0),_(!0),U([]),B.length>0&&ee.scrollToIndex(0);},size:"xs",variant:v?"filled":"outline",children:i}),m.map((z,se)=>jsx(Button,{onClick:()=>{v&&_(!1);let I=[""].slice(1),Z=se;for(;Z--;)I[Z]=w[Z]||"";X(0),U(I),B.length>0&&ee.scrollToIndex(0);},size:"xs",variant:!v&&w.length===m.findIndex(I=>I.value===z?.value)?"filled":"outline",children:z?.label},z?.value))]}),jsx(Divider,{})]}),H>0&&jsxs(Group,{align:"center",noWrap:!0,px:"xs",children:[jsx(ActionIcon,{onClick:ot,size:"sm",children:jsx(IconChevronLeft,{})}),jsx("div",{children:V.map(z=>jsx(Text,{lineClamp:1,size:"xs",children:z},`${z}`))})]}),jsx(ScrollArea,{mah:250,onWheel:()=>D(!0),px:"xs",style:{overflow:"auto",width:"100%"},viewportRef:J,viewportProps:{tabIndex:-1},w:"100%",children:jsx("div",{style:{height:`${ee.getTotalSize()}px`,position:"relative",width:"100%"},children:ee.getVirtualItems().map(z=>{let se=B[z.index],I=ye===z.index,Z=C.includes(se.value);return B.length>0&&I&&!k&&ee.scrollToIndex(ye),jsxs(Group,{"aria-selected":I,align:"center","data-hovered":I||void 0,"data-index":z.index,"data-selected":Z,id:se.vale,noWrap:!0,onMouseEnter:Q=>{Q.preventDefault(),Q.stopPropagation(),k&&(X(z.index),D(!1));},onMouseMove:Q=>{Q.preventDefault(),Q.stopPropagation(),D(!0);},onMouseDown:Q=>{Q.preventDefault(),Fe(se);},position:"apart",ref:ee.measureElement,role:"option",spacing:"xs",sx:Q=>({borderRadius:Q.radius.xs,padding:"15px 5px 15px",paddingLeft:v&&10*m.findIndex(ze=>ze?.value===se.type)||5,position:"absolute",top:0,left:0,height:`${z.size}px`,transform:`translateY(${z.start}px)`,width:"100%","&[data-hovered]":{backgroundColor:Q.colorScheme==="dark"?Q.colors.dark[4]:Q.colors.gray[1]},"&:hover":{backgroundColor:Q.colorScheme==="dark"?Q.colors.dark[4]:Q.colors.gray[1]}}),tabIndex:-1,children:[jsx(ns,{index:z.index,...se}),!v&&se.type!==m[m.length-1]?.value&&jsx(ActionIcon,{onMouseDown:Q=>{Q.preventDefault(),Q.stopPropagation(),Se(se.name);},size:"sm",tabIndex:-1,children:jsx(IconChevronRight,{})})]},se.value)})})})]})})})})]})})}var US,GS,HS,qS,jS,id=S(()=>{u();Ri();ke();qt();pe();Ee();Ro();US=(e=[],r=[],t="",o="",n="",s="|")=>{let i=r.map(h=>h.value).slice(),a=`${i.pop()}`,l=h=>h[t],c=h=>h[o],d=h=>{if(h[n])return typeof h[n]=="string"?h[n].split(s):h[n]},p=new Set,m=[],y=[],b=nest().rollup(h=>{let g=h[0],L=v=>v&&v.value&&!p.has(v.value),A=i.map(v=>g[`${v} ID`]),O=i.map(v=>g[v]),x=i.map((v,_)=>{if(y[_]!==O[_]){y[_]=O[_];let w=l[_]||l[l.length-1]||l,U=c[_]||c[c.length-1]||c,q=d[_]||d[d.length-1]||d;return {color:w(g,v)||void 0,icon:U(g,v)||void 0,value:`${A[_]}`,label:O[_],name:O[_],type:v,searchindex:O.slice(0,_+1).concat(q(g,v)).join("|")}}return {}}).filter(L);x.forEach(v=>p.add(v.value));let k=l[l.length-1]||l,D=c[c.length-1]||c,P=d[d.length-1]||d,E=h.map(v=>({color:k(v,a)||void 0,icon:D(v,a)||void 0,value:`${v[`${a} ID`]}`,label:v[a],name:v[a],type:a,searchindex:O.concat(v[a]).concat(P(v,a)).join("|")}));m.push(...x.concat(E));});return i.forEach(h=>{b.key(g=>`${g[`${h} ID`]}|${g[h]}`);}),b.entries(e),m},GS=e=>{if(!e)return /./i;let r=e.normalize("NFD").replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g,"[^|]+");return RegExp(r,"i")},HS=(e,r)=>{let t=e.length,o,n=a=>o&&o.searchindex.includes(a.searchindex),i={next:()=>{for(let a=t-1;a>-1;a--){let l=e[a];if(r.test(`${l.value} ${l.label} ${l.searchindex}`)||n(l))return o=l,t=a,{done:!1,value:l}}return {done:!0,value:void 0}},[Symbol.iterator]:()=>i};return i},qS=e=>`multihierarchySelector${e}`,jS=(e,r)=>e&&typeof e=="string"?e.split(","):r;});var ld={};ls(ld,{default:()=>oT});function rT({block:e,active:r,locale:t,variables:o,debug:n,configOverride:s={}}){let i=eT(),a=Ve(e),l=Ht(t),c={variables:o},d=useRouter(),{sectionVariables:p,setSectionVariables:m,resetSectionVariables:y}=xe(e.section_id),b=useMemo(()=>{if(!r)return {error:"Activate to View"};if(!a?.logic)return {error:"Add a Configuration"};let v=mt({logic:a.logic},l,c).logic,_={router:d,section:{variables:p,setVariables:m,resetVariables:y}};return Xr(v,l,o,t,e.id,{},_)},[a?.logic,r,o,p]);useMemo(()=>{if(!r||!a?.logic)return {};let{logic:v}=a,{vars:_}=Qe("variables",o,v,l,void 0,c);return _},[e,r]);let {type:g}=b.config||{},L=g&&ba[g]?g:"Treemap";g||(b.config={error:'Visualization missing "type"'}),ba[g]||(b.config={error:`"${g}" is not a valid Visualization Type`});let A=ba[L],O=b.error||b.config?.error||!1;if(O)return jsx(Center,{style:{height:"100%"},children:jsx(Badge,{color:"gray",variant:"outline",children:O},"type")});let{_data:x,...k}=b.config,D={locale:t,variables:o,...k,...s};i.print&&(D.detectVisible=!1);!i.print&&g!=="Graphic"&&g!=="HTML";return jsx("div",{style:{display:"flex",flex:"1 1 100%"},children:jsx(xr,{fallback:jsx("p",{children:"Error in d3plus viz config."}),children:jsx(A,{style:{flex:1},dataFormat:v=>{b.data&&Array.isArray(b.data)&&b.data.length>1&&b.data.some(q=>typeof q=="string")?v:[v];let U;try{U=b.dataFormat(v);}catch(q){console.log("Error in dataFormat: ",q),U=[];}return U},linksFormat:b.linksFormat,nodesFormat:b.nodesFormat,topojsonFormat:b.topojsonFormat,config:{...D}},"viz-key")})})}var eT,tT,ba,oT,cd=S(()=>{u();Br();_r();$i();Nn();Dr();Ee();Vi();eT=()=>({}),tT={},ba={HTML:Mo,...cv,...tT};oT=memo(rT,(e,r)=>e.block.contentByLocale.logic.content===r.block.contentByLocale.logic.content&&e.active===r.active&&e.locale===r.locale&&JSON.stringify(e.variables)===JSON.stringify(r.variables)&&JSON.stringify(e.configOverride)===JSON.stringify(r.configOverride));});var sT,Oe,ud=S(()=>{u();me();vp();Tp();xp();Ep();Ap();Np();Dp();Gp();qp();Wp();Qp();Zp();Xp();id();sT=dv(()=>Promise.resolve().then(()=>(cd(),ld)),{ssr:!1}),Oe={[f.PARAGRAPH]:Hi,[f.STAT]:qi,[f.SUBTITLE]:ji,[f.TITLE]:Wi,[f.SELECTOR]:Qi,[f.VIZ]:sT,[f.GENERATOR]:ra,[f.SECTION_FLAG]:ra,[f.IMAGE]:oa,[f.NAV]:aa,[f.RELATED]:ca,[f.RESET_BUTTON]:pa,[f.COMPARISON_BUTTON]:da,[f.TABLE]:fa,[f.BUTTON]:ga,[f.MULTIHIERARCHY_SELECTOR]:ya};});var pd=S(()=>{u();me();({[f.TITLE]:IconHeading,[f.GENERATOR]:IconApi,[f.SECTION_FLAG]:IconFlag,[f.STAT]:IconPercentage,[f.VIZ]:IconChartBar,[f.PARAGRAPH]:IconAlignLeft,[f.SELECTOR]:IconSelector,[f.IMAGE]:IconPhoto,[f.TABLE]:IconTable,[f.MULTIHIERARCHY_SELECTOR]:IconListTree});});var dd=S(()=>{u();me();({[f.TITLE]:"Title",[f.GENERATOR]:"Data",[f.STAT]:"Stat",[f.VIZ]:"Visualization",[f.PARAGRAPH]:"Paragraph",[f.SELECTOR]:"Selector",[f.SUBTITLE]:"Subtitle",[f.RESET_BUTTON]:"Reset Button",[f.COMPARISON_BUTTON]:"Comparison Button",[f.RELATED]:"Related Reports",[f.NAV]:"Navigation",[f.IMAGE]:"Image",[f.TABLE]:"Table",[f.BUTTON]:"Button",[f.FALLBACK]:"Fallback",[f.SECTION_FLAG]:"Section Flag",[f.MULTIHIERARCHY_SELECTOR]:"Multihierarchy Selector"});});var hT,va,md=S(()=>{u();me();bp();ud();pd();dd();hT={[f.GENERATOR]:{type:f.GENERATOR,renderer:Oe[f.GENERATOR],renderPreviewOnEdit:!1},[f.SECTION_FLAG]:{type:f.SECTION_FLAG,renderer:Oe[f.SECTION_FLAG],renderPreviewOnEdit:!1},[f.IMAGE]:{type:f.IMAGE,renderer:Oe[f.IMAGE],renderPreviewOnEdit:!1},[f.PARAGRAPH]:{type:f.PARAGRAPH,renderer:Oe[f.PARAGRAPH],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.RELATED]:{type:f.RELATED,renderer:Oe[f.RELATED],renderPreviewOnEdit:!1,evalWhenNonActive:!1},[f.SELECTOR]:{type:f.SELECTOR,renderer:Oe[f.SELECTOR],adapter:Do[f.SELECTOR],nonActiveAdapter:()=>Do[f.SELECTOR]({name:"Selector Preview"}),renderPreviewOnEdit:!1},[f.STAT]:{type:f.STAT,renderer:Oe[f.STAT],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.SUBTITLE]:{type:f.SUBTITLE,renderer:Oe[f.SUBTITLE],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.TITLE]:{type:f.TITLE,renderer:Oe[f.TITLE],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.VIZ]:{type:f.VIZ,renderer:Oe[f.VIZ],renderPreviewOnEdit:!1},[f.NAV]:{type:f.NAV,renderer:Oe[f.NAV],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.RESET_BUTTON]:{type:f.RESET_BUTTON,renderer:Oe[f.RESET_BUTTON],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.COMPARISON_BUTTON]:{type:f.COMPARISON_BUTTON,renderer:Oe[f.COMPARISON_BUTTON],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.TABLE]:{type:f.TABLE,renderer:Oe[f.TABLE],renderPreviewOnEdit:!1,evalWhenNonActive:!1},[f.BUTTON]:{type:f.BUTTON,renderer:Oe[f.BUTTON],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.MULTIHIERARCHY_SELECTOR]:{type:f.MULTIHIERARCHY_SELECTOR,renderer:Oe[f.MULTIHIERARCHY_SELECTOR],adapter:Do[f.MULTIHIERARCHY_SELECTOR],nonActiveAdapter:()=>Do[f.MULTIHIERARCHY_SELECTOR]({label:"Multihierarchy Selector Preview"}),renderPreviewOnEdit:!1}},va=hT;});function Un({blockId:e,active:r=!0,asComparison:t=!1}){let{query:o,locale:n=it}=useRouter(),s=Ge(),i=lt(e).data,a=Hr(e,t&&s.active?s?.variables.variables:void 0,t&&s.active?s?.variables.attributes:void 0),l=Ve(i,n),c=Ht(n),d={variables:a,query:o,locale:n},p=K(L=>L.variables.variables[i.id]||{}),m=K(L=>L.variables.status[i.id]||{}),[y,b]=useState(()=>{if(![f.GENERATOR,f.VIZ,f.NAV].includes(i.type)){if(i?.type===f.SELECTOR){let O=Ve(i,n),{config:x}=Mr(i.id,O?.logic,c,d);return {...x,id:i.id,section:i.section_id}}if(i?.type===f.MULTIHIERARCHY_SELECTOR){let O=Ve(i,n),{config:x}=Nr(i.id,O.logic,c,d);return {...x,id:i.id,section:i.section_id}}if(i?.type===f.RESET_BUTTON)return {...l.simple,id:i.id,section:i.section_id};if(i?.type===f.COMPARISON_BUTTON)return {...l.simple,id:i.id,section:i.section_id};let L=Pt(l?.logic,c,d),{vars:A}=Qe("variables",a,L,c,void 0,d);return A}return null});useEffect(()=>{(async()=>{if(!i||i.type===f.GENERATOR)return;if(i.type===f.VIZ){b({block:i,locale:n,variables:a,active:r});return}if(!r&&!va[i.type].evalWhenNonActive){let{nonActiveAdapter:x}=va[i.type],k=x&&typeof x=="function"?x():{};b(k);return}if(i.type===f.GENERATOR){b({outputVariables:p});return}if(f.SELECTOR===i.type){let x=Ve(i,n),{config:k}=Mr(i.id,x.logic,c,d);b({...k,id:i.id,section:i.section_id});return}if(f.MULTIHIERARCHY_SELECTOR===i.type){let x=Ve(i,n),{config:k}=Nr(i.id,x.logic,c,d);b({...k,id:i.id,section:i.section_id});return}if(i.type===f.NAV){b({id:i.id,headings:i.inputs,section:i.section_id,settings:i.settings});return}if(i.type===f.RELATED){let{related_reports:x}=p;b({related_reports:x});return}if(i.type===f.RESET_BUTTON){b({id:i.id,...l.simple});return}if(i.type===f.COMPARISON_BUTTON){b({id:i.id,...l.simple});return}if(i.type===f.FALLBACK){b({id:i.id,...l});return}let A=Pt(l?.logic,c,d),{vars:O}=Qe("variables",a,A,c,void 0,d);if(i.type===f.TABLE){b({sectionId:i.section_id,...O});return}b(O);})();},[l,a]);let h=m.allowed||i?.type===f.NAV;if(!i||!y||!h)return null;let g=pp[i.type];return jsx("div",{id:`bespoke-${i.type}-${i.id}`,className:`cms-block-wrapper bespoke-block-area cms-block-${e}`,children:jsx(g,{...y,settings:i.settings,asComparison:t})})}var gd=S(()=>{u();me();dp();md();Dr();Ee();Jo();_r();sn();bs();Ss();Mt();});var hd,ST,yd,Gn,Hn=S(()=>{u();hd={margin:{label:"Content Margin",defaultValue:"md",options:[{label:"None",value:"0px"},{label:"Small",value:"sm"},{label:"Medium",value:"md"},{label:"Large",value:"lg"}]},columnGutter:{label:"Column Gutter",defaultValue:"md",options:[{label:"None",value:"0px"},{label:"Small",value:"sm"},{label:"Medium",value:"md"},{label:"Large",value:"lg"}]},width:{label:"Width",defaultValue:"full",options:[{label:"Full Width",value:"full"},{label:"Center",value:"center"}]},position:{label:"Position",defaultValue:"normal",options:[{label:"Normal",value:"normal"},{label:"Sticky",value:"sticky"}]},style:{label:"Style",defaultValue:"none",options:[{label:"None",value:"none"},{label:"Card",value:"card"}]}},ST=Object.keys(hd).reduce((e,r)=>(e[r]=hd[r].defaultValue,e),{}),yd={memberImageBg:!1,optionsMenu:!1,optionData:!0,optionImage:!0,optionShare:!0,showAnchor:!1,...ST},Gn=e=>({data:typeof e.optionData=="boolean"?e.optionData:!0,image:typeof e.optionImage=="boolean"?e.optionImage:!0,share:typeof e.optionShare=="boolean"?e.optionShare:!0});});function bd({previews:e}){let r=e.map((t,o)=>({key:t?`bg-${t.content_id}`:`bg-${o}`,src:t?`/api/cms/member/image?member=${t.content_id}&size=splash`:""}));return jsxs(Fragment,{children:[jsx(Group,{className:"cms-section-bg",grow:!0,spacing:0,style:{position:"absolute",width:"100%",height:"100%"},children:r.map(t=>jsx("div",{className:"cms-section-member-bg",style:{backgroundImage:`url(${t.src})`,backgroundSize:"cover",backgroundPosition:"center center",height:"100%",width:"100%"}},t.key))}),jsx("div",{className:"cms-section-gradient-bg",style:{background:"white",position:"absolute",width:"100%",height:"100%",opacity:.33}})]})}var vd=S(()=>{u();});function Sd({data:e}){let o=(e&&Array.isArray(e)&&e[0]?Object.keys(e[0]):[]).filter(n=>!n.startsWith("_")).map(n=>({accessorKey:n,header:n,enableSorting:!0,mantineTableBodyCellProps:{sx:{textWrap:"wrap"}}}));return jsx(MantineReactTable,{columns:o,data:e,enableBottomToolbar:!1,enableColumnActions:!1,enablePagination:!1,enableSorting:!0,enableTopToolbar:!1,initialState:{density:"xs"},layoutMode:"grid",mantineTableContainerProps:{sx:{minHeight:100,maxHeight:350}}})}var Td=S(()=>{u();});function ao(e){let r={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"," ":""},t=`(?:${Object.keys(r).join("|")})`,o=RegExp(t),n=RegExp(t,"g"),s=String(e).replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();return o.test(s)?s.replace(n,i=>r[i]):s}var Ta=S(()=>{u();});function Ra(e){return typeof e=="string"?String(e).replace(/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});/ig," "):e}var Rd=S(()=>{u();});function AT(e){return e?CT(Ra(ao(e)),{replacement:"-",remove:/[*+~.()'"!:@]/g,lower:!0,strict:!0,trim:!0}):""}var Ft,Uo=S(()=>{u();Ta();Rd();Ft=AT;});function Ad(e){let{section:r}=e,t=St(),o=useRouter(),n=K(M=>M.status.isCMS),s=K(M=>M.status.currentLocale),i=o.locale,a=n?s:i,l=50,c=Ht(a),d=Ue("options"),p={...KT,...d.data_tab},[m,y]=useState([]),[b,h]=useState([]),[g,L]=useState(),[A,O]=useState(),[x,k]=useState(!1),[D,P]=useState({}),[E,v]=useState(!0),[_,w]=useState(!0),{sectionVariables:U,setSectionVariables:q,resetSectionVariables:F}=xe(r.id),C=r.blocks||[],j=K(M=>M),Y=useMemo(()=>C.reduce((M,B)=>{let J=j.records.entities.block[B],ee=j.variables.variables[B],fe=j.variables.status[B];return (f.GENERATOR===J.type&&ee._downloadEnabled===!0&&fe.allowed||f.VIZ===J.type&&fe.allowed)&&(M[B]={entity:J,variables:j.variables.variables[B],status:j.variables.status[B],inputVariablesFlat:J.inputs.reduce((X,ye)=>({...X,...j.variables.variables[ye]}),j.variables.attributes)}),M},{}),[C]),G=M=>{h(B=>B.includes(M)?B:[...B,M]);},oe=M=>{y(B=>(B.find(ee=>ee.ix===M.ix)?B:[...B,M]).sort((ee,fe)=>ee.ix>fe.ix?1:-1));};function re(M){!g&&M[0]&&W(M[0]);}function W(M){L(M),O("0");}useEffect(()=>{let M=async(B,J,ee)=>{let fe=dataLoad.bind({});return new Promise((X,ye)=>{fe(J,null,null,(Se,ot)=>{if(Se)ye(Se);else {let ce=ee instanceof Function?ee(ot):ot;B.data.unshift(ce),oe(B),X(ot);}});})};if(m.length===0&&b.length===0){let B=0;for(let J of Object.values(Y)){let ee=J.entity;if([f.GENERATOR,f.SECTION_FLAG].includes(ee.type)){let fe=J.variables._downloadData||J.variables._downloadUrl||J.status.api;if(fe){let X=[];typeof fe=="string"?X=fe.split(en):X=[fe];let ye=J.variables._downloadTitle||`${p.data_source} ${B+1}`,Se=J.variables._downloadFileName||ye;oe({ix:B,id:ee.id,title:ao(ye),fileName:Se,data:Array.isArray(X)?X:[X],loading:!1,type:f.GENERATOR}),G(B),B++;}}else if(ee.type===f.VIZ){let fe=Ve(ee),X=J.inputVariablesFlat,ye={variables:X},Se=mt({logic:fe.logic},c,ye).logic,ot={router:o,section:{variables:U,setVariables:q,resetVariables:F}},ce=Xr(Se,c,X,a,ee.id,{},ot),nt=ce.config._downloadTitle||ce.config.title||`${p.viz_source} ${B+1}`,At=ce.config._downloadFileName||nt;if(ce.config._downloadEnabled!==!1)try{let Fe=ce.config._downloadUrl||ce.config.data,lo=typeof Fe=="string"?[Fe]:Fe,co=ce.dataFormat instanceof Function?ce.dataFormat:!1,rr=ce.config._downloadDataFormat instanceof Function?ce.config._downloadDataFormat:!1;M({ix:B,id:ee.id,title:ao(nt),fileName:At,data:lo,loading:!1,type:f.VIZ},Fe,rr||co),G(B),B++;}catch(Fe){console.error("DataLoad catch",Fe);}}}w(!1);}},[Y]),useEffect(()=>{m.length===b.length&&re(m);},[m]),useEffect(()=>{if(g&&A){let M=parseInt(A,10);if(g.data[M]&&(!D[g.ix]||!D[g.ix][A])){v(!0);let B=g.data[A];typeof B=="string"?Es(B,t,a).then(J=>{let ee=YT(J);P({...D,[g.ix]:{...D[g.ix],[M]:ee}});}).catch(J=>{console.error(J);}).finally(()=>{v(!1);}):(P({...D,[g.ix]:{...D[g.ix],[M]:B}}),v(!1));}}},[A,g]);let N=(M,B)=>{let J=M===B?"":`-${M}`.toLowerCase();if(g){let ee=g.data.length>1&&A?`-${parseInt(A,10)+1}`:"";return `${Ft(g.fileName)}${J}${ee}.${B.toLowerCase()}`}return `${J}.${B}`},H=async M=>{if(g){k(!0);let B=new BT,J=N(M,M);try{switch(M){case jn.json.extension:B.file(J,JSON.stringify($));break;case jn.csv.extension:B.file(J,csvFormat($));break;case jn.xlsx.extension:let{utils:ee,write:fe}=await import('xlsx'),X=ee.book_new();ee.book_append_sheet(X,ee.json_to_sheet($),J.substring(0,30));let ye=fe(X,{bookType:"xlsx",bookSST:!0,type:"binary"});B.file(J,ye,{binary:!0});break;default:break}B.generateAsync({type:"blob",compression:"DEFLATE",compressionOptions:{level:9}}).then(ee=>{k(!1),saveAs(ee,N(M,"zip"));});}catch(ee){console.error(p.error_generating,ee),k(!1);}}},$=useMemo(()=>g&&D[g.ix]&&D[g.ix][A]?D[g.ix][A]:[],[D,g,A]),V=useMemo(()=>m&&m.length>0&&m.length===b.length&&m.map((M,B)=>jsx(Button,{leftIcon:jsx(IconDatabase,{size:16}),onClick:()=>W(M),variant:g?.ix===B?"filled":"default",loading:M.loading,disabled:M.loading,children:M.title},`source-${M.id}-${B}`)),[m,g,b]);return jsxs(Stack,{className:"cms-section-options-data",children:[jsx(Space,{h:"xs"}),jsx(LoadingOverlay,{visible:_,overlayBlur:2}),m.length===0&&!_&&jsx(Alert,{icon:jsx(IconAlertCircle,{size:"1rem"}),title:"Oops!",children:p.no_data_src}),m.length>1&&m.length===b.length&&!_&&jsx(Input.Wrapper,{label:`${p.choose_data_src}:`,children:jsx(Group,{spacing:"xs",children:V})}),g&&A&&jsx(Stack,{spacing:"xs",children:jsx(Input.Wrapper,{label:`${p.preview}
|
|
58
|
+
a viverra sapien pulvinar.`,style:t,append:r?jsx(Pe,{content:r,style:{display:"inline-block",verticalAlign:"bottom"}}):jsx(Fragment,{}),isPreview:!0})}var vp=S(()=>{u();Lt();ke();});function qi({subtitle:e,title:r,value:t,tooltip:o,settings:n,_iconType:s,_iconVariant:i,_icon:a,_iconRadius:l,_iconSize:c,_iconPadding:d}){let p=r||"<span class='cr-block-placeholder'>Title</span>",m=t||"<span class='cr-block-placeholder'>Big Stat</span>",y=e||"<span class='cr-block-placeholder'>Subtitle</span>",b=n&&n.align||"left";return jsx("div",{className:"bespoke-Stat-root",children:jsxs(Group,{className:"bespoke-StatGroup-wrapper",position:Xe(b),children:[s!=="none"&&s&&jsx(Ie,{blockType:"stat",iconType:s,iconVariant:i,iconRadius:l,iconSize:c,icon:a,iconPadding:d}),jsxs("div",{className:"bespoke-Stat-wrapper",children:[jsx(te,{component:"div",size:"md",html:p,style:n,isPreview:!0}),jsx(te,{component:"div",size:"xl",html:m,style:n,isPreview:!0}),jsx(te,{component:"div",size:"sm",html:y,style:n,isPreview:!0})]},"stat"),o&&jsx(Pe,{content:o})]})})}var Tp=S(()=>{u();Lt();br();ke();Me();});function ji({subtitle:e,tooltip:r,settings:t}){let o=Be(e)||"<span class='cr-block-placeholder'>Small subtitle.</span>",n=t&&t.align?t.align:"left";return jsxs(Group,{spacing:"sm",position:Xe(n),children:[jsx(te,{size:"sm",html:o,isPreview:!0}),r&&jsx(Pe,{content:r,style:{display:"inline-flex"}})]})}var xp=S(()=>{u();Lt();hr();ke();Me();});function Wi({title:e,tooltip:r,_iconType:t,_iconVariant:o,_icon:n,settings:s,_iconRadius:i,_iconSize:a,_iconPadding:l}){let c=Be(e)||"Title",d=s&&s.order?parseInt(s.order,10):1,p=d<=6?d:1,m=!!(s&&s.search&&s.search!=="off"),y=s&&s.search?s.search:"",b=s&&s.align?s.align:"left";return jsxs(Group,{spacing:"sm",position:Xe(b),children:[t!=="none"&&t&&jsx(Ie,{blockType:"title",iconType:t,iconVariant:o,iconRadius:i,iconSize:a,icon:n,iconPadding:l}),jsx(te,{component:"h",order:p,style:s,html:c,isPreview:!0}),m&&jsx(Tooltip,{label:`Click will open '${y}' report search`,children:jsx(ActionIcon,{variant:"light",children:jsx(IconSearch,{size:20})})}),r&&jsx(Pe,{content:r})]})}var Ep=S(()=>{u();Lt();hr();br();ke();Me();});function Qi(e){let{id:r,type:t,defaultValue:o,options:n,name:s,settings:i,hideLabel:a,component:l,resetSectionVars:c,section:d}=e,p=useDispatch(),m=useContext(wt),y=K(w=>w.status.query),{sectionVariables:b,resetSectionVariables:h}=xe(d),g=Dv(r),L=useMemo(()=>y[g]||o,[y[g],t,o]),A=useMemo(()=>Fv(y[g],o),[y[g],t,o]),[O,x]=useState(n?.map(w=>({value:w.id,label:w.label,imageUrl:w.imageUrl}))||[]),[k,D]=useState((n||[]).map(w=>w.id).join("-"));useEffect(()=>{let w=n.map(F=>`${F.label}|${F.id}`).join("-");if(k===w)return;D(w);let U=n.map(F=>({value:F.id,label:F.label}));x(U);let q=t===Re.SINGLE?L:A;ir(t,q,n)||p(Ks(m,g));},[JSON.stringify(n),r]);let P=()=>{c==="true"&&b&&h();},E=w=>{p(gr(m,g,w)),P();},v=w=>{p(gr(m,g,w.join())),P();},_=a==="true"?jsx(Fragment,{}):jsx(te,{component:"div",html:s,size:"sm",style:i,isPreview:!0});return O.length===0?jsx(Text,{c:"dimmed",size:"xs",children:"No options defined yet. Selector hidden in report."}):O.length===1?jsxs(Text,{c:"dimmed",size:"xs",children:["Only one option defined. Selector hidden in report. ",JSON.stringify(O)]}):{[Re.SINGLE]:l===Zo.SEGMENTED_CONTROL?jsxs("div",{children:[_,jsx(SegmentedControl,{data:O,value:O.map(w=>w.value).includes(L)?L:"",onChange:E,fullWidth:!0})]}):jsx(Select,{label:_,data:O,value:L,onChange:E,itemComponent:zv,styles:{label:{display:a==="true"?"none":"block"}}}),[Re.MULTI]:jsx(MultiSelect,{label:_,data:O,value:A,onChange:v,styles:{label:{display:a==="true"?"none":"block"}}})}[t]}var Dv,Fv,zv,Ap=S(()=>{u();Ro();Xo();me();pe();qt();ke();Ee();Dv=e=>`selector${e}id`,Fv=(e,r)=>e&&typeof e=="string"?e.split(","):r,zv=forwardRef(function({imageUrl:r,label:t,...o},n){return jsx("div",{ref:n,...o,children:jsxs(Group,{noWrap:!0,children:[r&&jsx(Box,{component:"img",w:25,h:25,src:r}),jsx("div",{children:jsx(Text,{size:"sm",children:t})})]})})});});var Pp=S(()=>{});function ea({dimmed:e=!1,label:r,root:t=!0,value:o,parentIsArray:n=!1,level:s=0}){let i=useMantineTheme();if(s===Xi)return null;let a=jsx(Text,{lineClamp:1,size:"xs",variant:"dimmed",p:5,children:"[Max depth hitted for preview]"}),l=Ji(o),c=o,d=JSON.stringify(o),p=!!(d&&d.length>50),m=!!(d&&d.length>1e3),y=10,b={control:{padding:"5px 0px 5px 5px"},label:{padding:"5px 0px"},content:{paddingTop:0,paddingBottom:0,paddingRight:0}};if(l==="object")return jsx(Accordion,{className:"cr-variable-accordion",variant:"contained",styles:b,children:jsxs(Accordion.Item,{value:"label",children:[jsx(Accordion.Control,{children:jsx(Text,{lineClamp:1,size:"xs",weight:700,color:e?"dimmed":i.primaryColor,children:t?`{{${r}}}`:n?`[${r}]`:r})}),jsx(Accordion.Panel,{children:s+1<Xi?Object.keys(o).sort((h,g)=>{let L=Ji(o[h]),A=Ji(o[g]);return L!==A?Ip.indexOf(L)-Ip.indexOf(A):h.localeCompare(g)}).map(h=>jsx(ea,{root:!1,label:h,value:o[h],level:s+1},h)):a})]})});if(l==="array"){let h=o.length>y,g=h?o.slice(0,y):o,L=h?o.length-y:0;return jsx(Accordion,{className:"cr-variable-accordion",variant:"contained",styles:b,children:jsxs(Accordion.Item,{value:"label",children:[jsx(Accordion.Control,{children:jsx(Text,{lineClamp:1,size:"xs",weight:700,p:0,color:e?"dimmed":i.primaryColor,children:t?`{{${r}}}`:n?`[${r}]`:r})}),jsxs(Accordion.Panel,{children:[s+1<Xi?g.map((A,O)=>jsx(ea,{root:!1,label:O,value:A,level:s+1,parentIsArray:!0},O)):a,h&&jsxs(Text,{lineClamp:1,size:"xs",variant:"dimmed",p:5,children:["[+ ",L," other elements]"]})]})]})})}return l==="string"?c=m?`"${c.substring(0,1e3)} ... "`:`"${c}"`:l==="error"?c=`Error: ${c.message}`:l==="undefined"?c=l:c.toString&&(c=c.toString()),jsxs(Group,{noWrap:!0,spacing:0,children:[jsx(Text,{color:e?"dimmed":i.primaryColor,lineClamp:1,size:"xs",pl:5,style:{overflow:"visible",wordBreak:"keep-all",whiteSpace:"nowrap"},weight:700,children:t?`{{${r}}}`:n?`[${r}]`:r}),jsx(Prism,{className:"cr-variable",language:"jsx",noCopy:!0,scrollAreaComponent:"div",styles:{root:{flex:"1 1 100%",textAlign:"right",overflow:"hidden"},code:{padding:"5px 0 5px 5px"},scrollArea:{marginLeft:"5px"},line:{paddingRight:"5px"}},children:c}),p&&jsxs(HoverCard,{width:400,shadow:"md",withinPortal:!0,children:[jsx(HoverCard.Target,{children:jsx(ActionIcon,{children:jsx(IconCodePlus,{})})}),jsx(HoverCard.Dropdown,{children:jsx(Text,{size:"sm",children:JSON.stringify(o).substring(0,5e3)})})]})]})}var Ji,Ip,Xi,wp,Op=S(()=>{u();Pp();Ji=e=>{let r=typeof e;if(r==="object"){if(e===null)return "undefined";Array.isArray(e)?r="array":["Error","EvalError","ReferenceError","SyntaxError"].includes(e.constructor.name)&&(r="error");}return r},Ip=["object","array","string","number"],Xi=5;wp=ea;});var Lp,_p=S(()=>{u();Lp=e=>r=>r.replace(new RegExp(`^${e}`),"").startsWith("_");});function Kv({reserved:e=[],id:r,variables:t={},showInternal:o=!1}){let s=lt(r==="attributes"?null:r).data,i=s?s.type:"block",a=s?.type&&s?.id?`${s.type}${s.id}`:"",l=Object.keys(t).filter(o?()=>!0:c=>!Lp(a)(c));return jsx(Stack,{spacing:0,children:l.length?l.map(c=>jsx(wp,{dimmed:e.includes(c),label:c,value:t[c]},c)):jsx(Text,{color:"dimmed",size:"xs",children:jsx("i",{children:`empty ${i}`})})})}var Bp,Mp=S(()=>{u();Op();pe();_p();Bp=Kv;});function oS({outputVariables:e,status:r,hasAPI:t=!1,debug:o,type:n}){let[s,i]=useState(!1),a=t&&!Object.keys(e).length&&!r.error,l=Object.keys(e).some(d=>d.startsWith("_"));return o?a?jsxs(Stack,{align:"center",children:[jsx(Loader,{}),jsxs(Text,{size:"sm",children:["Loading ",n]})]}):jsxs(Fragment,{children:[jsx(Divider,{label:"Output Variables",labelPosition:"center"}),l&&jsx(Switch,{label:"Show internal variables",mb:"xs",size:"xs",checked:s,onChange:d=>i(d.currentTarget.checked)}),jsx(Bp,{variables:e,showInternal:s})]}):jsx(Center,{children:jsx(Badge,{color:"gray",variant:"outline",children:n.toUpperCase()},"type")})}var ra,Np=S(()=>{u();Mp();ra=oS;});function oa(e){let{alt:r,src:t,desc:o,title:n,settings:s,...i}=e,a=Be(r),l=Be(t),c=Be(o),d=jsx("img",{src:l,alt:a,style:i}),p=s&&s.align?String(s.align):"left";return (c&&c.length||n&&n.length)&&(d=jsxs(Stack,{className:"bespoke-Image-wrapper",align:yt(p),spacing:"sm",children:[n&&jsx(te,{component:"p",html:n,style:s,isPreview:!0}),d,o&&jsx(te,{component:"p",size:"sm",html:o,style:s,isPreview:!0})]})),l&&a?d:jsx(Center,{mih:100,bg:"white",children:jsx(Badge,{color:"gray",variant:"outline",children:"IMAGE"},"type")})}var Dp=S(()=>{u();hr();ke();Me();});var na=S(()=>{u();qt();});var Fp=S(()=>{u();pe();na();});var zp=S(()=>{u();na();Fp();Pi();});function aa({headings:e,settings:r}){let{min:t="1",max:o="6",icons:n="yes"}=r||{},s=Jr(parseInt(t,10),parseInt(o,10),e),i=n==="yes",a=Kr(r&&r.align?String(r.align):"left"),l=c=>!c||!c?.length?null:jsx(Fragment,{children:c.map(d=>jsxs(Fragment$1,{children:[jsx(Menu.Item,{children:jsx(Anchor,{href:`#bespoke-title-${d.id}`,children:jsxs(Group,{spacing:"sm",children:[i&&jsx(Ie,{...d.iconProps,iconSize:"sm"}),jsx(Text,{dangerouslySetInnerHTML:{__html:d.label}})]})})},d.id),jsx(Box,{pl:"xs",children:l(d.children)})]},d.id))});return jsx(Box,{pos:"relative",children:jsxs(List,{sx:c=>({display:"flex",gap:c.spacing.md,justifyContent:a,listStyleType:"none"}),children:[s?.map(c=>jsx(List.Item,{children:jsxs(Menu,{trigger:"hover",openDelay:100,closeDelay:400,children:[jsx(Menu.Target,{children:jsx(Anchor,{href:`#bespoke-title-${c.id}`,children:jsxs(Group,{spacing:"sm",noWrap:!0,children:[i&&jsx(Ie,{blockType:"nav",...c.iconProps,iconSize:"sm",iconPadding:"2"}),jsx(Text,{dangerouslySetInnerHTML:{__html:c.label}})]})})}),c?.children?.length?jsx(Menu.Dropdown,{children:l(c.children)}):null]})},c.id)),!s||s.length===0&&jsx(List.Item,{children:jsx(Text,{color:"dimmed",children:"- Include some titles as inputs to see the Nav component -"})})]})})}var Gp=S(()=>{u();zp();br();Me();});function ca(e){let{related_reports:r,settings:t}=e;if(!r?.length)return jsx(Text,{children:"There are no available members related to your current selection and report."});let o=Kr(t&&t.align?String(t.align):"left");return jsx(List,{sx:()=>({display:"flex",justifyContent:o,"& li":{marginRight:"1rem"}}),children:r.map(n=>jsx(List.Item,{children:n.entities.map(s=>s.name).join(" & ")},n.link))})}var qp=S(()=>{u();Me();});function pa({id:e,label:r,settings:t,showIcon:o,fullWidth:n,showWhenDisabled:s}){let i=lt(e).data,{sectionVariables:a,resetSectionVariables:l}=xe(i?.section_id),c=!!Object.keys(a).length,d=yt(t&&t.align?t.align:"left");return jsxs(Stack,{align:d,children:[!c&&!s&&jsx(Text,{size:"xs",ta:t?.align||"left",children:"Reset button will not be shown on its disabled state"}),jsx(Button,{onClick:()=>l(),disabled:!c,fullWidth:n,children:jsxs(Group,{align:"center",children:[r,o&&jsx(IconRefresh,{})]})})]})}var Wp=S(()=>{u();Ee();Ee();Me();});function da({settings:e,label:r,showIcon:t,position:o="center"}){let n=e&&e.search?e.search:"";return jsxs(Group,{position:o,children:[jsx(Tooltip,{label:`Click will open '${n}' report search`,children:jsx(Button,{children:jsxs(Group,{align:"center",children:[r||"Comparison Button",t&&jsx(IconPlus,{})]})})}),jsx(ActionIcon,{variant:"light",children:jsx(IconSearch,{size:20})})]})}var Qp=S(()=>{u();});function fa({columns:e=[],id:r,data:t=[],tableProps:o={}}){let[n,s]=useState({}),{initialState:i}=o,a=i?.pagination?.pageIndex,l=i?.pagination?.pageSize,c=`table-${[r,a,l].filter(b=>b).join("-")}`,d=useMemo(()=>e.map(b=>b.accessorKey),[e]),p=useMemo(()=>t.filter(b=>typeof b=="object"&&b!==null&&!Array.isArray(b)&&Object.keys(b).some(h=>d.includes(h))),[d,t]),m=useMemo(()=>e.map(b=>({...b,Cell:({renderedCellValue:h})=>jsx(te,{html:`${h}`,isPreview:!0}),filterFn:"contains"})),[e]),y=Jl();return useEffect(()=>{(async()=>{try{let h=y||"en",g=`${h.toUpperCase()}`,L=await import(`mantine-react-table/locales/${h}.js`);s(L[`MRT_Localization_${g}`]);}catch(h){console.error("Error loading translations:",h);}})();},[y]),createElement(MantineReactTable,{...o,autoResetPageIndex:!1,columns:m,data:p,enableColumnFilterModes:!0,enableFilterMatchHighlighting:!1,globalFilterFn:"contains",key:c,layoutMode:"grid",localization:n,state:{...o.state,isFullScreen:!1}})}var Zp=S(()=>{u();ke();Ee();});function ga({label:e,url:r,settings:t}){let{align:o}=t;return jsx(Group,{position:o,grow:o==="justify",children:jsx(Button,{component:"a",target:"_blank",href:r||"",children:e||"Button"})})}var Xp=S(()=>{u();});function ya(e){let r=useDispatch(),t=useContext(wt),o=K(z=>z.status.query),n=qS(e.id),s=useMantineTheme(),{allLabel:i,colorKey:a,data:l,defaultValue:c,defaultValueType:d,iconKey:p,levels:m,limit:y,placeholder:b,searchIndexKey:h,searchIndexSeparator:g,resetSectionVars:L,section:A}=e,[O,x]=useState(!1),[k,D]=useState(!0),[P,E]=useState(""),[v,_]=useState(!1),[w,U]=useState([""].slice(1)),{sectionVariables:q,resetSectionVariables:F}=xe(A),C=useMemo(()=>jS(o[`${n}-value`],c),[o,c,n]),j=useMemo(()=>o[`${n}-type`]||d,[o,d,n]),Y=useCallback(()=>{L==="true"&&q&&F();},[L,q,F]),G=useCallback(z=>{Y(),r(gr(t,`${n}-value`,z.join()));},[r,t,n,Y]),oe=useCallback(z=>{Y(),r(gr(t,`${n}-type`,z));},[r,t,n,Y]),re=useRef(null),W=useRef(!1),N=useRef(!!y&&y<C.length),H=w.length,$=m[H],V=w.filter(Boolean);w.length>0&&V.length===0&&V.push(`${i} ${$?.label}`),useEffect(()=>{let z=()=>{D(!0);};return window.addEventListener("touchmove",z),()=>{window.removeEventListener("touchmove",z);}},[]);let M=useMemo(()=>US(l,m,a,p,h,g),[a,l,p,m,h,g]),B=useMemo(()=>{let z=GS(P),se=Array.from(HS(M,z)).reverse();return v?se:w.reduce((I,Z)=>I.filter(Q=>!Z||Q.searchindex.indexOf(Z)>-1),se.filter(I=>I.type===$?.value))},[$,M,P,v,w]),J=useRef(null),ee=An({count:O?B.length:0,estimateSize:()=>30,getScrollElement:useCallback(()=>J.current,[]),overscan:10,rangeExtractor:useCallback(z=>Lo(z),[])}),[fe,X]=useState(-1),ye=Math.min(fe,B.length-1),Se=useCallback(z=>{let se=w.concat(z);v&&_(!1),U(se);},[v,w]),ot=useCallback(()=>{let z=w.slice(0,H-1);v&&_(!1),U(z);},[v,w,H]),ce=useCallback(z=>{E(z.currentTarget.value),!N.current&&l.length>0&&x(!0);},[l,E,N,x]),nt=useCallback(()=>{E(""),G([]),re.current?.focus(),y&&(N.current=!1);},[E,G,re,y,N]),At=useCallback(z=>{let se=C.filter(I=>I!==z);G(se),y&&se.length<y&&(N.current=!1);},[C,G,y,N]),Fe=useCallback(z=>{j||oe(z.type),j!==z.type?(oe(z.type),G([z.value])):C.includes(z.value)?At(z.value):y?(C.length<y&&G([...C,z.value]),C.length===y&&G([...C.slice(1),z.value])):G([...C,z.value]),E("");},[j,oe,G,C,At,y]),lo=useCallback(()=>{C.length>0&&P.length===0&&(G(C.slice(0,-1)),x(!0),y&&(N.current=!1)),P.length>0&&E(P.slice(0,-1));},[C,P,G,E,x,y,N]),co=useCallback(()=>{D(z=>z&&(W.current=z,!z)),X(z=>z+1>=B.length?z:z+1);},[X,B]),rr=useCallback(()=>{let z=B[ye];z&&Fe(z);},[B,ye,Fe]),uo=useCallback(()=>{x(!1);},[x]),Xn=useCallback(()=>{ot(),X(0);},[X,ot]),es=useCallback(()=>{let z=B[ye];!v&&z&&z.type!==m[m.length-1]?.value&&(Se(z.name),X(0));},[B,ye,v,m,X,Se]),ts=useCallback(()=>{D(z=>z&&(W.current=z,!z)),X(z=>z-1<0?0:z-1);},[X]),rs=({label:z,onRemove:se,...I})=>jsxs("div",{style:{alignItems:"center",backgroundColor:s.colorScheme==="dark"?s.colors.dark[7]:s.colors.gray[1],borderRadius:s.radius.sm,cursor:"default",color:s.colorScheme==="dark"?s.colors.dark[0]:s.colors.gray[7],display:"flex",fontSize:rem(12),fontWeight:500,height:rem(22),margin:`calc(${s.spacing.xs} / 2 - ${rem(2)}) calc(${s.spacing.xs} / 2)`,maxWidth:`calc(100% - ${rem(10)})`,paddingLeft:`calc(${s.spacing.sm} / 1.5)`,paddingRight:0,userSelect:"none"},...I,children:[jsx("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:z}),jsx(CloseButton,{"aria-hidden":!0,iconSize:"70%",onMouseDown:se,radius:2,size:"sm",sx:{color:s.colorScheme==="dark"?s.colors.dark[0]:s.colors.gray[7],marginLeft:`calc(${s.spacing.sm} / 6)`},tabIndex:-1})]}),os=useMemo(()=>C.map(z=>M.find(se=>se.value===z)).filter(z=>!!z).map((z,se)=>createElement(rs,{...z,index:se,key:z.value,onRemove:I=>{I.preventDefault(),I.stopPropagation(),At(z.value);}})),[C]),ns=forwardRef(function({color:se,icon:I,label:Z,value:Q,...ze},de){return jsx("div",{ref:de,style:{cursor:"pointer",width:"100%"},...ze,children:jsxs(Group,{align:"center",noWrap:!0,spacing:"xs",w:"100%",children:[I&&jsx(Box,{bg:se??"transparent",component:"img",w:20,h:20,src:I}),jsx(Text,{lineClamp:1,size:"sm",children:Z||Q})]})})}),{settings:ss}=e,is=e.hideLabel==="true"||!e.label?jsx(Fragment,{}):jsx(te,{component:"div",html:e.label,size:"sm",style:ss,isPreview:!0});return jsx(Input.Wrapper,{label:is,children:jsxs(Popover,{closeOnClickOutside:!0,keepMounted:!0,opened:O,onChange:x,onClose:()=>{X(0),E("");},onOpen:()=>{ee.scrollToIndex(0);},shadow:"sm",width:"target",withinPortal:!0,children:[jsx(Popover.Target,{children:jsxs(Box,{"aria-haspopup":"listbox",component:"div",onMouseLeave:()=>X(0),sx:{position:"relative","& .defaultValue":{backgroundColor:s.colorScheme==="dark"?s.colors.dark[5]:s.colors.gray[3],color:s.colorScheme==="dark"?s.colors.dark[1]:s.colors.gray[7]}},tabIndex:-1,children:[jsx("input",{type:"hidden",value:C.join(",")}),jsx(Input,{component:"div",multiline:!0,onMouseDown:z=>{z.preventDefault(),!N.current&&l.length>0&&x(!O),re.current?.focus();},rightSection:C.length>0?jsx(CloseButton,{onClick:nt,onMouseDown:z=>z.preventDefault(),variant:"transparent"}):jsx(IconSelector,{color:s.colors.gray[6],size:18,stroke:1.5}),style:{overflow:"hidden"},w:"100%",children:jsxs(Box,{component:"div","data-clearable":!0,sx:{alignItems:"center",boxSizing:"border-box",display:"flex",flexWrap:"wrap",marginLeft:`calc(-${s.spacing.xs} / 2)`,minHeight:`calc(${rem(36)} - ${rem(2)})`,"&[data-clearable]":{marginRight:rem(36)},"&::placeholder":{color:s.colorScheme==="dark"?s.colors.dark[3]:s.colors.gray[5],opacity:1}},children:[os,jsx("input",{autoComplete:"off","data-mantine-stop-propagation":O,onChange:ce,onKeyDown:getHotkeyHandler([["ArrowDown",co],["ArrowLeft",Xn],["ArrowRight",es],["ArrowUp",ts],["Backspace",lo],["Enter",rr],["Escape",uo]]),placeholder:C.length===0?b:void 0,ref:re,readOnly:N.current,style:{appearance:"none",backgroundColor:"transparent",border:0,color:"inherit",flex:1,fontSize:s.fontSizes.sm,marginLeft:`calc(${s.spacing.xs} / 2)`,maxHeight:rem(22),minWidth:rem(60),outline:0,padding:0},type:"search",value:P})]})})]})}),jsx(Popover.Dropdown,{onMouseDown:z=>z.preventDefault(),p:0,children:jsx("div",{style:{display:"flex",maxHeight:rem(300)},children:jsx(Box,{component:"div","data-combobox-popover":!0,onMouseDown:z=>z.preventDefault(),role:"listbox",sx:{width:"100%"},tabIndex:-1,children:jsxs(Stack,{h:"100%",py:"xs",spacing:"xs",w:"100%",children:[m.length>1&&jsxs(Stack,{spacing:"xs",children:[jsxs(Group,{onClick:z=>{z.stopPropagation();},px:"xs",position:"center",spacing:"xs",children:[jsx(Button,{onClick:()=>{X(0),_(!0),U([]),B.length>0&&ee.scrollToIndex(0);},size:"xs",variant:v?"filled":"outline",children:i}),m.map((z,se)=>jsx(Button,{onClick:()=>{v&&_(!1);let I=[""].slice(1),Z=se;for(;Z--;)I[Z]=w[Z]||"";X(0),U(I),B.length>0&&ee.scrollToIndex(0);},size:"xs",variant:!v&&w.length===m.findIndex(I=>I.value===z?.value)?"filled":"outline",children:z?.label},z?.value))]}),jsx(Divider,{})]}),H>0&&jsxs(Group,{align:"center",noWrap:!0,px:"xs",children:[jsx(ActionIcon,{onClick:ot,size:"sm",children:jsx(IconChevronLeft,{})}),jsx("div",{children:V.map(z=>jsx(Text,{lineClamp:1,size:"xs",children:z},`${z}`))})]}),jsx(ScrollArea,{mah:250,onWheel:()=>D(!0),px:"xs",style:{overflow:"auto",width:"100%"},viewportRef:J,viewportProps:{tabIndex:-1},w:"100%",children:jsx("div",{style:{height:`${ee.getTotalSize()}px`,position:"relative",width:"100%"},children:ee.getVirtualItems().map(z=>{let se=B[z.index],I=ye===z.index,Z=C.includes(se.value);return B.length>0&&I&&!k&&ee.scrollToIndex(ye),jsxs(Group,{"aria-selected":I,align:"center","data-hovered":I||void 0,"data-index":z.index,"data-selected":Z,id:se.vale,noWrap:!0,onMouseEnter:Q=>{Q.preventDefault(),Q.stopPropagation(),k&&(X(z.index),D(!1));},onMouseMove:Q=>{Q.preventDefault(),Q.stopPropagation(),D(!0);},onMouseDown:Q=>{Q.preventDefault(),Fe(se);},position:"apart",ref:ee.measureElement,role:"option",spacing:"xs",sx:Q=>({borderRadius:Q.radius.xs,padding:"15px 5px 15px",paddingLeft:v&&10*m.findIndex(ze=>ze?.value===se.type)||5,position:"absolute",top:0,left:0,height:`${z.size}px`,transform:`translateY(${z.start}px)`,width:"100%","&[data-hovered]":{backgroundColor:Q.colorScheme==="dark"?Q.colors.dark[4]:Q.colors.gray[1]},"&:hover":{backgroundColor:Q.colorScheme==="dark"?Q.colors.dark[4]:Q.colors.gray[1]}}),tabIndex:-1,children:[jsx(ns,{index:z.index,...se}),!v&&se.type!==m[m.length-1]?.value&&jsx(ActionIcon,{onMouseDown:Q=>{Q.preventDefault(),Q.stopPropagation(),Se(se.name);},size:"sm",tabIndex:-1,children:jsx(IconChevronRight,{})})]},se.value)})})})]})})})})]})})}var US,GS,HS,qS,jS,id=S(()=>{u();Ri();ke();qt();pe();Ee();Ro();US=(e=[],r=[],t="",o="",n="",s="|")=>{let i=r.map(h=>h.value).slice(),a=`${i.pop()}`,l=h=>h[t],c=h=>h[o],d=h=>{if(h[n])return typeof h[n]=="string"?h[n].split(s):h[n]},p=new Set,m=[],y=[],b=nest().rollup(h=>{let g=h[0],L=v=>v&&v.value&&!p.has(v.value),A=i.map(v=>g[`${v} ID`]),O=i.map(v=>g[v]),x=i.map((v,_)=>{if(y[_]!==O[_]){y[_]=O[_];let w=l[_]||l[l.length-1]||l,U=c[_]||c[c.length-1]||c,q=d[_]||d[d.length-1]||d;return {color:w(g,v)||void 0,icon:U(g,v)||void 0,value:`${A[_]}`,label:O[_],name:O[_],type:v,searchindex:O.slice(0,_+1).concat(q(g,v)).join("|")}}return {}}).filter(L);x.forEach(v=>p.add(v.value));let k=l[l.length-1]||l,D=c[c.length-1]||c,P=d[d.length-1]||d,E=h.map(v=>({color:k(v,a)||void 0,icon:D(v,a)||void 0,value:`${v[`${a} ID`]}`,label:v[a],name:v[a],type:a,searchindex:O.concat(v[a]).concat(P(v,a)).join("|")}));m.push(...x.concat(E));});return i.forEach(h=>{b.key(g=>`${g[`${h} ID`]}|${g[h]}`);}),b.entries(e),m},GS=e=>{if(!e)return /./i;let r=e.normalize("NFD").replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g,"[^|]+");return RegExp(r,"i")},HS=(e,r)=>{let t=e.length,o,n=a=>o&&o.searchindex.includes(a.searchindex),i={next:()=>{for(let a=t-1;a>-1;a--){let l=e[a];if(r.test(`${l.value} ${l.label} ${l.searchindex}`)||n(l))return o=l,t=a,{done:!1,value:l}}return {done:!0,value:void 0}},[Symbol.iterator]:()=>i};return i},qS=e=>`multihierarchySelector${e}`,jS=(e,r)=>e&&typeof e=="string"?e.split(","):r;});var ld={};ls(ld,{default:()=>oT});function rT({block:e,active:r,locale:t,variables:o,debug:n,configOverride:s={}}){let i=eT(),a=Ve(e),l=Ht(t),c={variables:o},d=useRouter(),{sectionVariables:p,setSectionVariables:m,resetSectionVariables:y}=xe(e.section_id),b=useMemo(()=>{if(!r)return {error:"Activate to View"};if(!a?.logic)return {error:"Add a Configuration"};let v=mt({logic:a.logic},l,c).logic,_={router:d,section:{variables:p,setVariables:m,resetVariables:y}};return Xr(v,l,o,t,e.id,{},_)},[a?.logic,r,o,p]);useMemo(()=>{if(!r||!a?.logic)return {};let{logic:v}=a,{vars:_}=Qe("variables",o,v,l,void 0,c);return _},[e,r]);let {type:g}=b.config||{},L=g&&ba[g]?g:"Treemap";g||(b.config={error:'Visualization missing "type"'}),ba[g]||(b.config={error:`"${g}" is not a valid Visualization Type`});let A=ba[L],O=b.error||b.config?.error||!1;if(O)return jsx(Center,{style:{height:"100%"},children:jsx(Badge,{color:"gray",variant:"outline",children:O},"type")});let{_data:x,...k}=b.config,D={locale:t,variables:o,...k,...s};i.print&&(D.detectVisible=!1);!i.print&&g!=="Graphic"&&g!=="HTML";return jsx("div",{style:{display:"flex",flex:"1 1 100%"},children:jsx(xr,{fallback:jsx("p",{children:"Error in d3plus viz config."}),children:jsx(A,{style:{flex:1},dataFormat:v=>{b.data&&Array.isArray(b.data)&&b.data.length>1&&b.data.some(q=>typeof q=="string")?v:[v];let U;try{U=b.dataFormat(v);}catch(q){console.log("Error in dataFormat: ",q),U=[];}return U},linksFormat:b.linksFormat,nodesFormat:b.nodesFormat,topojsonFormat:b.topojsonFormat,config:{...D}},"viz-key")})})}var eT,tT,ba,oT,cd=S(()=>{u();Br();_r();$i();Nn();Dr();Ee();Vi();eT=()=>({}),tT={},ba={HTML:Mo,...cv,...tT};oT=memo(rT,(e,r)=>e.block.contentByLocale.logic.content===r.block.contentByLocale.logic.content&&e.active===r.active&&e.locale===r.locale&&JSON.stringify(e.variables)===JSON.stringify(r.variables)&&JSON.stringify(e.configOverride)===JSON.stringify(r.configOverride));});var sT,Oe,ud=S(()=>{u();me();vp();Tp();xp();Ep();Ap();Np();Dp();Gp();qp();Wp();Qp();Zp();Xp();id();sT=dv(()=>Promise.resolve().then(()=>(cd(),ld)),{ssr:!1}),Oe={[f.PARAGRAPH]:Hi,[f.STAT]:qi,[f.SUBTITLE]:ji,[f.TITLE]:Wi,[f.SELECTOR]:Qi,[f.VIZ]:sT,[f.GENERATOR]:ra,[f.SECTION_FLAG]:ra,[f.IMAGE]:oa,[f.NAV]:aa,[f.RELATED]:ca,[f.RESET_BUTTON]:pa,[f.COMPARISON_BUTTON]:da,[f.TABLE]:fa,[f.BUTTON]:ga,[f.MULTIHIERARCHY_SELECTOR]:ya};});var pd=S(()=>{u();me();({[f.TITLE]:IconHeading,[f.GENERATOR]:IconApi,[f.SECTION_FLAG]:IconFlag,[f.STAT]:IconPercentage,[f.VIZ]:IconChartBar,[f.PARAGRAPH]:IconAlignLeft,[f.SELECTOR]:IconSelector,[f.IMAGE]:IconPhoto,[f.TABLE]:IconTable,[f.MULTIHIERARCHY_SELECTOR]:IconListTree});});var dd=S(()=>{u();me();({[f.TITLE]:"Title",[f.GENERATOR]:"Data",[f.STAT]:"Stat",[f.VIZ]:"Visualization",[f.PARAGRAPH]:"Paragraph",[f.SELECTOR]:"Selector",[f.SUBTITLE]:"Subtitle",[f.RESET_BUTTON]:"Reset Button",[f.COMPARISON_BUTTON]:"Comparison Button",[f.RELATED]:"Related Reports",[f.NAV]:"Navigation",[f.IMAGE]:"Image",[f.TABLE]:"Table",[f.BUTTON]:"Button",[f.FALLBACK]:"Fallback",[f.SECTION_FLAG]:"Section Flag",[f.MULTIHIERARCHY_SELECTOR]:"Multihierarchy Selector"});});var hT,va,md=S(()=>{u();me();bp();ud();pd();dd();hT={[f.GENERATOR]:{type:f.GENERATOR,renderer:Oe[f.GENERATOR],renderPreviewOnEdit:!1},[f.SECTION_FLAG]:{type:f.SECTION_FLAG,renderer:Oe[f.SECTION_FLAG],renderPreviewOnEdit:!1},[f.IMAGE]:{type:f.IMAGE,renderer:Oe[f.IMAGE],renderPreviewOnEdit:!1},[f.PARAGRAPH]:{type:f.PARAGRAPH,renderer:Oe[f.PARAGRAPH],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.RELATED]:{type:f.RELATED,renderer:Oe[f.RELATED],renderPreviewOnEdit:!1,evalWhenNonActive:!1},[f.SELECTOR]:{type:f.SELECTOR,renderer:Oe[f.SELECTOR],adapter:Do[f.SELECTOR],nonActiveAdapter:()=>Do[f.SELECTOR]({name:"Selector Preview"}),renderPreviewOnEdit:!1},[f.STAT]:{type:f.STAT,renderer:Oe[f.STAT],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.SUBTITLE]:{type:f.SUBTITLE,renderer:Oe[f.SUBTITLE],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.TITLE]:{type:f.TITLE,renderer:Oe[f.TITLE],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.VIZ]:{type:f.VIZ,renderer:Oe[f.VIZ],renderPreviewOnEdit:!1},[f.NAV]:{type:f.NAV,renderer:Oe[f.NAV],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.RESET_BUTTON]:{type:f.RESET_BUTTON,renderer:Oe[f.RESET_BUTTON],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.COMPARISON_BUTTON]:{type:f.COMPARISON_BUTTON,renderer:Oe[f.COMPARISON_BUTTON],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.TABLE]:{type:f.TABLE,renderer:Oe[f.TABLE],renderPreviewOnEdit:!1,evalWhenNonActive:!1},[f.BUTTON]:{type:f.BUTTON,renderer:Oe[f.BUTTON],renderPreviewOnEdit:!0,evalWhenNonActive:!0},[f.MULTIHIERARCHY_SELECTOR]:{type:f.MULTIHIERARCHY_SELECTOR,renderer:Oe[f.MULTIHIERARCHY_SELECTOR],adapter:Do[f.MULTIHIERARCHY_SELECTOR],nonActiveAdapter:()=>Do[f.MULTIHIERARCHY_SELECTOR]({label:"Multihierarchy Selector Preview"}),renderPreviewOnEdit:!1}},va=hT;});function Un({blockId:e,active:r=!0,asComparison:t=!1}){let{query:o,locale:n=it}=useRouter(),s=Ge(),i=lt(e).data,a=Hr(e,t&&s.active?s?.variables.variables:void 0,t&&s.active?s?.variables.attributes:void 0),l=Ve(i,n),c=Ht(n),d={variables:a,query:o,locale:n},p=K(L=>L.variables.variables[i.id]||{}),m=K(L=>L.variables.status[i.id]||{}),[y,b]=useState(()=>{if(![f.GENERATOR,f.VIZ,f.NAV].includes(i.type)){if(i?.type===f.SELECTOR){let O=Ve(i,n),{config:x}=Mr(i.id,O?.logic,c,d);return {...x,id:i.id,section:i.section_id}}if(i?.type===f.MULTIHIERARCHY_SELECTOR){let O=Ve(i,n),{config:x}=Nr(i.id,O.logic,c,d);return {...x,id:i.id,section:i.section_id}}if(i?.type===f.RESET_BUTTON)return {...l.simple,id:i.id,section:i.section_id};if(i?.type===f.COMPARISON_BUTTON)return {...l.simple,id:i.id,section:i.section_id};let L=Pt(l?.logic,c,d),{vars:A}=Qe("variables",a,L,c,void 0,d);return A}return null});useEffect(()=>{(async()=>{if(!i||i.type===f.GENERATOR)return;if(i.type===f.VIZ){b({block:i,locale:n,variables:a,active:r});return}if(!r&&!va[i.type].evalWhenNonActive){let{nonActiveAdapter:x}=va[i.type],k=x&&typeof x=="function"?x():{};b(k);return}if(i.type===f.GENERATOR){b({outputVariables:p});return}if(f.SELECTOR===i.type){let x=Ve(i,n),{config:k}=Mr(i.id,x.logic,c,d);b({...k,id:i.id,section:i.section_id});return}if(f.MULTIHIERARCHY_SELECTOR===i.type){let x=Ve(i,n),{config:k}=Nr(i.id,x.logic,c,d);b({...k,id:i.id,section:i.section_id});return}if(i.type===f.NAV){b({id:i.id,headings:i.inputs,section:i.section_id,settings:i.settings});return}if(i.type===f.RELATED){let{related_reports:x}=p;b({related_reports:x});return}if(i.type===f.RESET_BUTTON){b({id:i.id,...l.simple});return}if(i.type===f.COMPARISON_BUTTON){b({id:i.id,...l.simple});return}if(i.type===f.FALLBACK){b({id:i.id,type:i.original_type,roles:i.settings.access});return}let A=Pt(l?.logic,c,d),{vars:O}=Qe("variables",a,A,c,void 0,d);if(i.type===f.TABLE){b({sectionId:i.section_id,...O});return}b(O);})();},[l,a]);let h=m.allowed||i?.type===f.NAV;if(!i||!y||!h)return null;let g=pp[i.type];return jsx("div",{id:`bespoke-${i.type}-${i.id}`,className:`cms-block-wrapper bespoke-block-area cms-block-${e}`,children:jsx(g,{...y,settings:i.settings,asComparison:t})})}var gd=S(()=>{u();me();dp();md();Dr();Ee();Jo();_r();sn();bs();Ss();Mt();});var hd,ST,yd,Gn,Hn=S(()=>{u();hd={margin:{label:"Content Margin",defaultValue:"md",options:[{label:"None",value:"0px"},{label:"Small",value:"sm"},{label:"Medium",value:"md"},{label:"Large",value:"lg"}]},columnGutter:{label:"Column Gutter",defaultValue:"md",options:[{label:"None",value:"0px"},{label:"Small",value:"sm"},{label:"Medium",value:"md"},{label:"Large",value:"lg"}]},width:{label:"Width",defaultValue:"full",options:[{label:"Full Width",value:"full"},{label:"Center",value:"center"}]},position:{label:"Position",defaultValue:"normal",options:[{label:"Normal",value:"normal"},{label:"Sticky",value:"sticky"}]},style:{label:"Style",defaultValue:"none",options:[{label:"None",value:"none"},{label:"Card",value:"card"}]}},ST=Object.keys(hd).reduce((e,r)=>(e[r]=hd[r].defaultValue,e),{}),yd={memberImageBg:!1,optionsMenu:!1,optionData:!0,optionImage:!0,optionShare:!0,showAnchor:!1,...ST},Gn=e=>({data:typeof e.optionData=="boolean"?e.optionData:!0,image:typeof e.optionImage=="boolean"?e.optionImage:!0,share:typeof e.optionShare=="boolean"?e.optionShare:!0});});function bd({previews:e}){let r=e.map((t,o)=>({key:t?`bg-${t.content_id}`:`bg-${o}`,src:t?`/api/cms/member/image?member=${t.content_id}&size=splash`:""}));return jsxs(Fragment,{children:[jsx(Group,{className:"cms-section-bg",grow:!0,spacing:0,style:{position:"absolute",width:"100%",height:"100%"},children:r.map(t=>jsx("div",{className:"cms-section-member-bg",style:{backgroundImage:`url(${t.src})`,backgroundSize:"cover",backgroundPosition:"center center",height:"100%",width:"100%"}},t.key))}),jsx("div",{className:"cms-section-gradient-bg",style:{background:"white",position:"absolute",width:"100%",height:"100%",opacity:.33}})]})}var vd=S(()=>{u();});function Sd({data:e}){let o=(e&&Array.isArray(e)&&e[0]?Object.keys(e[0]):[]).filter(n=>!n.startsWith("_")).map(n=>({accessorKey:n,header:n,enableSorting:!0,mantineTableBodyCellProps:{sx:{textWrap:"wrap"}}}));return jsx(MantineReactTable,{columns:o,data:e,enableBottomToolbar:!1,enableColumnActions:!1,enablePagination:!1,enableSorting:!0,enableTopToolbar:!1,initialState:{density:"xs"},layoutMode:"grid",mantineTableContainerProps:{sx:{minHeight:100,maxHeight:350}}})}var Td=S(()=>{u();});function ao(e){let r={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"," ":""},t=`(?:${Object.keys(r).join("|")})`,o=RegExp(t),n=RegExp(t,"g"),s=String(e).replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();return o.test(s)?s.replace(n,i=>r[i]):s}var Ta=S(()=>{u();});function Ra(e){return typeof e=="string"?String(e).replace(/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});/ig," "):e}var Rd=S(()=>{u();});function AT(e){return e?CT(Ra(ao(e)),{replacement:"-",remove:/[*+~.()'"!:@]/g,lower:!0,strict:!0,trim:!0}):""}var Ft,Uo=S(()=>{u();Ta();Rd();Ft=AT;});function Ad(e){let{section:r}=e,t=St(),o=useRouter(),n=K(M=>M.status.isCMS),s=K(M=>M.status.currentLocale),i=o.locale,a=n?s:i,l=50,c=Ht(a),d=Ue("options"),p={...KT,...d.data_tab},[m,y]=useState([]),[b,h]=useState([]),[g,L]=useState(),[A,O]=useState(),[x,k]=useState(!1),[D,P]=useState({}),[E,v]=useState(!0),[_,w]=useState(!0),{sectionVariables:U,setSectionVariables:q,resetSectionVariables:F}=xe(r.id),C=r.blocks||[],j=K(M=>M),Y=useMemo(()=>C.reduce((M,B)=>{let J=j.records.entities.block[B],ee=j.variables.variables[B],fe=j.variables.status[B];return (f.GENERATOR===J.type&&ee._downloadEnabled===!0&&fe.allowed||f.VIZ===J.type&&fe.allowed)&&(M[B]={entity:J,variables:j.variables.variables[B],status:j.variables.status[B],inputVariablesFlat:J.inputs.reduce((X,ye)=>({...X,...j.variables.variables[ye]}),j.variables.attributes)}),M},{}),[C]),G=M=>{h(B=>B.includes(M)?B:[...B,M]);},oe=M=>{y(B=>(B.find(ee=>ee.ix===M.ix)?B:[...B,M]).sort((ee,fe)=>ee.ix>fe.ix?1:-1));};function re(M){!g&&M[0]&&W(M[0]);}function W(M){L(M),O("0");}useEffect(()=>{let M=async(B,J,ee)=>{let fe=dataLoad.bind({});return new Promise((X,ye)=>{fe(J,null,null,(Se,ot)=>{if(Se)ye(Se);else {let ce=ee instanceof Function?ee(ot):ot;B.data.unshift(ce),oe(B),X(ot);}});})};if(m.length===0&&b.length===0){let B=0;for(let J of Object.values(Y)){let ee=J.entity;if([f.GENERATOR,f.SECTION_FLAG].includes(ee.type)){let fe=J.variables._downloadData||J.variables._downloadUrl||J.status.api;if(fe){let X=[];typeof fe=="string"?X=fe.split(en):X=[fe];let ye=J.variables._downloadTitle||`${p.data_source} ${B+1}`,Se=J.variables._downloadFileName||ye;oe({ix:B,id:ee.id,title:ao(ye),fileName:Se,data:Array.isArray(X)?X:[X],loading:!1,type:f.GENERATOR}),G(B),B++;}}else if(ee.type===f.VIZ){let fe=Ve(ee),X=J.inputVariablesFlat,ye={variables:X},Se=mt({logic:fe.logic},c,ye).logic,ot={router:o,section:{variables:U,setVariables:q,resetVariables:F}},ce=Xr(Se,c,X,a,ee.id,{},ot),nt=ce.config._downloadTitle||ce.config.title||`${p.viz_source} ${B+1}`,At=ce.config._downloadFileName||nt;if(ce.config._downloadEnabled!==!1)try{let Fe=ce.config._downloadUrl||ce.config.data,lo=typeof Fe=="string"?[Fe]:Fe,co=ce.dataFormat instanceof Function?ce.dataFormat:!1,rr=ce.config._downloadDataFormat instanceof Function?ce.config._downloadDataFormat:!1;M({ix:B,id:ee.id,title:ao(nt),fileName:At,data:lo,loading:!1,type:f.VIZ},Fe,rr||co),G(B),B++;}catch(Fe){console.error("DataLoad catch",Fe);}}}w(!1);}},[Y]),useEffect(()=>{m.length===b.length&&re(m);},[m]),useEffect(()=>{if(g&&A){let M=parseInt(A,10);if(g.data[M]&&(!D[g.ix]||!D[g.ix][A])){v(!0);let B=g.data[A];typeof B=="string"?Es(B,t,a).then(J=>{let ee=YT(J);P({...D,[g.ix]:{...D[g.ix],[M]:ee}});}).catch(J=>{console.error(J);}).finally(()=>{v(!1);}):(P({...D,[g.ix]:{...D[g.ix],[M]:B}}),v(!1));}}},[A,g]);let N=(M,B)=>{let J=M===B?"":`-${M}`.toLowerCase();if(g){let ee=g.data.length>1&&A?`-${parseInt(A,10)+1}`:"";return `${Ft(g.fileName)}${J}${ee}.${B.toLowerCase()}`}return `${J}.${B}`},H=async M=>{if(g){k(!0);let B=new BT,J=N(M,M);try{switch(M){case jn.json.extension:B.file(J,JSON.stringify($));break;case jn.csv.extension:B.file(J,csvFormat($));break;case jn.xlsx.extension:let{utils:ee,write:fe}=await import('xlsx'),X=ee.book_new();ee.book_append_sheet(X,ee.json_to_sheet($),J.substring(0,30));let ye=fe(X,{bookType:"xlsx",bookSST:!0,type:"binary"});B.file(J,ye,{binary:!0});break;default:break}B.generateAsync({type:"blob",compression:"DEFLATE",compressionOptions:{level:9}}).then(ee=>{k(!1),saveAs(ee,N(M,"zip"));});}catch(ee){console.error(p.error_generating,ee),k(!1);}}},$=useMemo(()=>g&&D[g.ix]&&D[g.ix][A]?D[g.ix][A]:[],[D,g,A]),V=useMemo(()=>m&&m.length>0&&m.length===b.length&&m.map((M,B)=>jsx(Button,{leftIcon:jsx(IconDatabase,{size:16}),onClick:()=>W(M),variant:g?.ix===B?"filled":"default",loading:M.loading,disabled:M.loading,children:M.title},`source-${M.id}-${B}`)),[m,g,b]);return jsxs(Stack,{className:"cms-section-options-data",children:[jsx(Space,{h:"xs"}),jsx(LoadingOverlay,{visible:_,overlayBlur:2}),m.length===0&&!_&&jsx(Alert,{icon:jsx(IconAlertCircle,{size:"1rem"}),title:"Oops!",children:p.no_data_src}),m.length>1&&m.length===b.length&&!_&&jsx(Input.Wrapper,{label:`${p.choose_data_src}:`,children:jsx(Group,{spacing:"xs",children:V})}),g&&A&&jsx(Stack,{spacing:"xs",children:jsx(Input.Wrapper,{label:`${p.preview}
|
|
59
59
|
${$.length>l?p.rows_preview.replace("{nrows}",l):""}:`,children:jsxs(Group,{spacing:"xs",children:[jsx(Select,{disabled:!(g.data.length>1),style:{flex:"1"},value:A,onChange:M=>O(M),data:g.data.map((M,B)=>({value:`${B}`,group:typeof M=="string"?p.raw_group:p.formatted_group,label:typeof M=="string"?M:p.formatted_src.replace("{src}",g.title)})),icon:typeof g.data[A]=="string"?jsx(IconLink,{}):jsx(IconSparkles,{})}),jsx(CopyButton,{value:typeof g.data[A]=="string"?g.data[A]:"",timeout:2e3,children:({copied:M,copy:B})=>jsx(Tooltip,{label:M?p.copied:p.copy,withArrow:!0,position:"top",children:jsx(ActionIcon,{variant:M?"filled":"subtle",onClick:B,disabled:typeof g.data[A]!="string",children:M?jsx(IconClipboardCheck,{size:16}):jsx(IconClipboardCopy,{size:16})})})})]})})}),g&&!E&&$.length===0&&jsx(Alert,{icon:jsx(IconAlertCircle,{size:"1rem"}),title:"Oops!",children:p.error_preview}),g&&A&&!E&&$.length===0&&jsx("a",{href:g.data[A],target:"_blank",rel:"noreferrer",children:jsx(Button,{leftIcon:jsx(IconExternalLink,{size:16}),fullWidth:!0,children:p.open_in_window.replace("{src}",g.title)})}),jsxs(Stack,{pos:"relative",mih:"430px",children:[jsx(LoadingOverlay,{visible:E&&m.length>0,overlayBlur:2}),g&&!E&&$.length>0&&jsxs(Fragment,{children:[jsx(Box,{h:"350px",children:jsx(Sd,{data:$.slice(0,l)})}),jsx(Input.Wrapper,{label:`${p.download}:`,children:jsx(Button.Group,{children:Object.values(jn).map(M=>jsx(Button,{leftIcon:jsx(M.icon,{size:24}),onClick:()=>H(M.extension),loading:x,fullWidth:!0,children:M.extension},`format-${M.extension}`))})})]})]})]})}var jn,KT,YT,Pd=S(()=>{u();pe();Td();me();Nn();Uo();Ta();Dr();Ee();Br();lr();Zr();Ts();Bt();jn={csv:{extension:"CSV",icon:IconFileTypeCsv},json:{extension:"JSON",icon:IconFileTypeJs},xlsx:{extension:"XLSX",icon:IconFileTypeXls}},KT={data_source:"Data Source",no_data_src:"No data sources defined",viz_source:"Visualization Source",error_generating:"Error generating file.",choose_data_src:"Choose data source",original_src:"Original {src}",loading:"Loading...",error_preview:`Sorry. We could not generate the data preview as a table.
|
|
60
60
|
Try to open the source and check the data directly.`,open_in_window:"Open {src} response in a new window",formatted_src:"Formatted {src}",formatted_group:"Formatted Data",raw_group:"Raw Data",rows_preview:"(First {nrows} rows as preview)",choose_format:"Choose format",processing_file:"Processing file...",download:"Download data as",preview:"Preview",copy:"Click to copy",copied:"Copied!"},YT=e=>{let r=[];return e&&e.data&&(e.data&&Array.isArray(e.data)?r=e.data:e.data&&e.data.data&&Array.isArray(e.data.data)?r=e.data.data:e.data&&e.data.data&&e.data.data.results&&Array.isArray(e.data.data.results)?r=e.data.data.results:e.data&&e.data.results&&Array.isArray(e.data.results)&&(r=e.data.results)),r};});function Ld(e){let{section:r}=e,t=r.blocks||[],o=K(W=>t.map(N=>W.records.entities.block[N]).filter(N=>N.type===f.VIZ&&W.variables.status[N.id].allowed)),[n,s]=useState(kt.section),[i,a]=useState(Ct.png),[l,c]=useState(!1),[d,p]=useState(!1),[m,y]=useState([]),[b,h]=useState(o.length>0?o[0].id:null),[g,L]=useState(!0),[A,O]=useState(!1),x=Ue("options"),k={...fR,...x.image_tab},{siteProps:D}=Eo(),P=D?.logoSrc&&typeof D.logoSrc=="string",E=r?.settings?.name||`section-${r.id}`,v=`#${E}`,_=useMantineTheme(),w=()=>{let W=F(b);return select(W).select("svg").size()===1},U=()=>`${Ft(E)}`,q=()=>{let W=document.getElementById(E);return select(W).select(".bespoke-section-content").node()},F=W=>{let N=q();return select(N).select(`#bespoke-visualization-${W}.bespoke-block-area`).node()},C=()=>new Promise(W=>{let N;n===kt.section?N=q():n===kt.viz&&(N=F(b));let H=document.createElement("div");H.style.display="flex",H.style.justifyContent="space-between",H.classList.add("bespoke-Viz-source"),H.style.padding=_.spacing.xs,H.style.width="100%";let $=document.createElement("div");if($.innerText=k.source.replace("{src}",`${window.location}${v}`),$.style.fontSize=_.fontSizes.xs,H.appendChild($),P){let V=document.createElement("img");V.src=D.logoSrc,V.style.height="30px",V.onload=()=>W(N),V.onerror=()=>{V.remove(),W(N);},H.appendChild(V),N.appendChild(H);}else N.appendChild(H),W(N);}),j=W=>{if(g)return "transparent";let N=select(W).style("background-color");return N!=="rgba(0, 0, 0, 0)"&&N!=="transparent"?N:W===document.body?"white":j(W.parentNode)},Y=async(W,N)=>{let{toPng:H}=await import('html-to-image');H(W,{backgroundColor:N.background,cacheBust:!0,filter:$=>$&&$.classList?!N.exclusionClasses.some(V=>$.classList.contains(V)):!0}).then($=>{let V=document.createElement("a");V.download=`${N.filename}.png`,V.href=$,V.click(),mR(),c(!1);}).catch($=>{console.log($);});},G=(W,N)=>{saveElement(W,{filename:N.filename,type:"svg",callback:()=>c(!1)},{background:N.background});},oe=async()=>{c(!0);let W=await C(),N={background:j(W),exclusionClasses:["export-hidden"],filename:U()},H=i===Ct.png?Y:G;try{if(W)H(W,N);else throw new Error(k.wrong_node)}catch{c(!1);}},re=async()=>{let{toCanvas:W}=await import('html-to-image');Promise.all(o.map(N=>W(F(N.id)))).then(N=>{y(N.map(H=>H.toDataURL())),O(!1);});};return useEffect(()=>{n===kt.viz&&o.length>0?(h(o[0].id),O(!0),re()):n===kt.section&&y([]);},[n]),useEffect(()=>{b&&(w()?p(!0):(p(!1),a(Ct.png)));},[b]),jsxs(Stack,{className:"cms-section-options-image",children:[jsx(Space,{h:"xs"}),o.length>0?jsx(Input.Wrapper,{label:`${k.choose_area}:`,children:jsx(SegmentedControl,{fullWidth:!0,value:n,data:[{value:kt.section,label:jsxs(Center,{children:[jsx(IconTemplate,{size:"1rem"}),jsx(Box,{ml:10,children:k.entire_section})]})},{value:kt.viz,label:jsxs(Center,{children:[jsx(IconChartBar,{size:"1rem"}),jsx(Box,{ml:10,children:k.viz_only})]})}],onChange:W=>{s(W),W===kt.section&&a(Ct.png);}})}):jsx(Text,{fw:"700",color:"gray.7",children:`${k.entire_section}:`}),n===kt.viz&&o.length>0&&jsxs(Input.Wrapper,{label:`${k.choose_viz}:`,style:{minHeight:"161px",position:"relative"},children:[!A&&m.length>0&&jsx(ScrollArea,{style:{height:250},children:jsx(SimpleGrid,{cols:3,children:o.map((W,N)=>jsx(Image,{alt:`Viz ${W.id}`,onClick:()=>{h(W.id);},style:{cursor:"pointer",border:b===W.id?"4px solid #228be6":"4px solid #eee"},radius:0,src:m[N],withPlaceholder:!0},`viz-option-${W.id}`))})}),jsx(LoadingOverlay,{visible:A})]}),d&&n!==kt.section&&jsx(Input.Wrapper,{label:`${k.choose_format}:`,children:jsxs(Button.Group,{children:[jsx(Button,{leftIcon:jsx(IconPolaroid,{size:16}),onClick:()=>a(Ct.png),variant:i===Ct.png?"filled":"default",fullWidth:!0,children:Ct.png}),jsx(Button,{leftIcon:jsx(IconCode,{size:16}),onClick:()=>a(Ct.svg),variant:i===Ct.svg?"filled":"default",fullWidth:!0,children:Ct.svg})]})}),jsx(Checkbox,{checked:g,label:`${k.transparent_bg}`,onChange:()=>L(!g),radius:"xl"}),jsx(Button,{leftIcon:jsx(IconDownload,{size:16}),loading:l,onClick:oe,fullWidth:!0,children:jsx("span",{children:l?k.processing:k.download.replace("{imageFormat}",i)})})]})}var kt,Ct,mR,fR,_d=S(()=>{u();Uo();pe();Bt();qt();me();kt={viz:"viz",section:"section"},Ct={png:"PNG",svg:"SVG"},mR=()=>{let e=document.getElementsByClassName("bespoke-Viz-source");Array.from(e).forEach(r=>r.remove());},fR={wrong_node:"Wrong node in export",choose_area:"Choose image area",choose_viz:"Choose visualization",choose_format:"Choose format",transparent_bg:"Transparent background",processing:"Processing image...",download:"Download {imageFormat}",entire_section:"Entire section",viz_only:"Visualization only",source:"Source: {src}"};});function Md(e){let{title:r,url:t,disabled:o=!1}=e,n=o?IconCode:IconLink;return jsx(Input.Wrapper,{label:r,children:jsx(Input,{icon:jsx(n,{}),value:t,disabled:o,readOnly:!0,rightSection:jsx(CopyButton,{value:t,timeout:2e3,children:({copied:s,copy:i})=>jsx(Tooltip,{label:s?"Copied":"Copy",withArrow:!0,position:"right",children:jsx(ActionIcon,{variant:s?"filled":"subtle",onClick:i,disabled:o,children:s?jsx(IconClipboardCheck,{size:16}):jsx(IconClipboardCopy,{size:16})})})})})})}var Nd=S(()=>{u();});function Fd(e){let{section:r}=e,[t,o]=useState(""),[n,s]=useState(""),[i,a]=useState(!0),l=Ue("options"),c={...$R,...l.share_tab};return useEffect(()=>{s(document.title);let{origin:d,pathname:p}=window.location,m=`${d}${p}`,y=i?r.settings?.name?.length?`#${Ft(r.settings.name)}`:`#section-${r.id}`:"";o(`${m}${y}`);},[i]),jsxs(Stack,{className:"cms-section-options-share",children:[jsx(Space,{h:"xs"}),jsx(Md,{title:`${c.title}: ${n}`,url:t}),jsx(Checkbox,{checked:i,label:c.include_section,onChange:()=>a(!i),radius:"xl"}),jsxs(Group,{position:"center",children:[jsx(FacebookShareButton,{url:t,quote:n,children:jsx(FacebookIcon,{size:32,round:!0})}),jsx(TwitterShareButton,{url:t,title:n,children:jsx(TwitterIcon,{size:32,round:!0})}),jsx(TelegramShareButton,{url:t,title:n,children:jsx(TelegramIcon,{size:32,round:!0})}),jsx(WhatsappShareButton,{url:t,title:n,separator:":: ",children:jsx(WhatsappIcon,{size:32,round:!0})}),jsx(LinkedinShareButton,{url:t,children:jsx(LinkedinIcon,{size:32,round:!0})}),jsx(RedditShareButton,{url:t,title:n,windowWidth:660,windowHeight:460,children:jsx(RedditIcon,{size:32,round:!0})}),jsx(EmailShareButton,{url:t,subject:n,children:jsx(EmailIcon,{size:32,round:!0})})]})]})}var $R,zd=S(()=>{u();Nd();Bt();Uo();$R={title:"Title",include_section:"Include Section"};});function Ud(e){let{section:r,initialMode:t,onEnds:o,open:n,title:s}=e,i=Gn(r.settings),a=useMemo(()=>qR.filter(y=>i[y]),[i]),[l,c]=useState(t||a[0]||"data"),d=Ue("options");useEffect(()=>{t!==l&&c(t);},[t]);let p={...Ia,...d},m=useMemo(()=>jsxs(Fragment,{children:[jsxs(Tabs.List,{children:[i.data&&jsx(Tabs.Tab,{value:"data",children:p.download_title}),i.image&&jsx(Tabs.Tab,{value:"image",children:p.image_title}),i.share&&jsx(Tabs.Tab,{value:"share",children:p.share_title})]}),i.data&&jsx(Tabs.Panel,{value:"data",children:jsx(Ad,{section:r})}),i.image&&jsx(Tabs.Panel,{value:"image",children:jsx(Ld,{section:r})}),i.share&&jsx(Tabs.Panel,{value:"share",children:jsx(Fd,{section:r})})]}),[i,r,p]);return jsx("div",{className:"cms-section-options-modal",children:n&&jsx(Modal,{className:"bespoke-options-modal",opened:!0,onClose:()=>o(),size:"xl",title:s,children:jsx(Tabs,{onTabChange:c,value:l,keepMounted:!1,children:m})})})}var Ia,qR,Gd=S(()=>{u();Pd();_d();zd();Bt();Hn();Ia={download_title:"Download Data",image_title:"Save Image",share_title:"Share Link"},qR=["data","image","share"];});function jd(e){let{sectionId:r,disabled:t=!1}=e,[o,n]=useState(!1),[s,i]=useState("data"),a=yn(r),l=Ue("options"),c={...Ia,...l},d=Gn(a.isSuccess?a.data.settings:{}),p=y=>{i(y),n(!0);},m=()=>{n(!1);};return jsxs("div",{className:"cms-section-options",children:[jsxs(Button.Group,{children:[d.data&&jsx(Button,{variant:"default",size:"xs",compact:!0,onClick:()=>p("data"),"aria-label":c.download_title,disabled:t,children:jsx(IconTable,{size:16})}),d.image&&jsx(Button,{variant:"default",size:"xs",compact:!0,onClick:()=>p("image"),"aria-label":c.image_title,disabled:t,children:jsx(IconCamera,{size:16})}),d.share&&jsx(Button,{variant:"default",size:"xs",compact:!0,onClick:()=>p("share"),"aria-label":c.share_title,disabled:t,children:jsx(IconShare,{size:16})})]}),a.isSuccess&&jsx(Ud,{section:a.data,initialMode:s,open:o,onEnds:m})]})}var Wd=S(()=>{u();Gd();pe();Bt();Hn();});var Kd=S(()=>{u();pe();});function ZR({children:e,containerProps:r},t){return jsx(Flex,{ref:t,className:"bespoke-section-content",pos:"relative",align:"stretch",p:0,direction:{base:"column",md:"row"},wrap:"wrap",...r,children:e})}var Zn,Zd,Xd=S(()=>{u();pe();Kd();Zn=Nt__default.forwardRef(function({children:r,column:t,basis:o,columnSettings:n={},sx:s={},...i},a){let l=Object.values(t).some(m=>m.settings?.display==="inline"),c=n?.width?`${n.width}px`:o,d=n?.width?`${n?.width}px`:"100&",p=n?.full?"100%":d;return jsx(Flex,{ref:a,className:"bespoke-section-col",align:"flex-start",direction:l?"row":"column",wrap:l?"wrap":"nowrap",maw:{base:"100%",md:p},miw:{base:"none",md:300},p:0,pos:"relative",sx:[{flexGrow:1,flexShrink:n?.full?0:1,flexBasis:n?.full?"100%":c},...packSx(s)],...i,children:r})}),Zd=Nt__default.forwardRef(ZR);});var em=S(()=>{u();});var Ho,tm=S(()=>{u();Me();pe();em();me();Ho={px:e=>Number.isNaN(parseFloat(e))?"px":`${e}px`.replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),"%":e=>Number.isNaN(parseFloat(e))?"%":`${e}%`.replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,")},{px:{defaultValue:400,min:25,step:5,formatter:Ho.px},"%":{defaultValue:50,min:20,max:100,step:5,formatter:Ho["%"]}};});var wa,rm=S(()=>{u();wa={backgroundColor:"#fafafa",block:{padding:10},column:{padding:12},section:{backgroundColor:"white",borderRadius:10,boxShadow:"0px 6px 10px rgba(12, 32, 50, 0.14), 0px 1px 15px rgba(12, 32, 50, 0.12), 0px 3px 5px rgba(12, 32, 50, 0.15)",margin:8,padding:32}};});function La({previews:e,translations:r}){let t=$e(),o=useMemo(()=>e.map(({image:n,name:s},i)=>(n?.author||n?.url)&&jsxs(Stack,{spacing:0,children:[n.author&&jsxs(Text,{size:"xs",children:[s," ",r.image_by," ",jsx("strong",{children:n.author})]}),n.url&&jsxs(Text,{size:"xs",children:["URL: "," ",jsx(Anchor,{href:n.url,target:"_blank",children:n.url})]}),i+1<e.length&&jsx(Divider,{})]},n.id)),[e]);return jsx(Fragment,{children:t?jsx(Fragment,{children:o}):jsxs(Popover,{position:"right",children:[jsx(Popover.Target,{children:jsx(ActionIcon,{variant:"light",radius:"xl",children:jsx(IconPhoto,{size:20})})}),jsx(Popover.Dropdown,{children:o})]})})}var sm=S(()=>{u();_t();});function dx({name:e,children:r,id:t,sectionSettings:o,sectionStyles:n,previews:s,translations:i}){let a=$e(),l=o.memberImageBg&&s.some(({image:d})=>d&&(d.url||d.author)),c=useMemo(()=>o.showAnchor&&o.optionsMenu?"apart":!o.showAnchor&&o.optionsMenu?"right":o.showAnchor&&!o.optionsMenu?"left":"right",[o.showAnchor,o.optionsMenu]);return jsxs(cx,{className:`bespoke-Section-${t} bespoke-Section-root `,settings:o,styles:n?.root||void 0,children:[o.memberImageBg&&jsx(bd,{previews:s}),jsxs(ux,{className:`bespoke-Section-${t} bespoke-Section-container `,settings:o,styles:n?.container,id:e?.length?Ft(e):`section-${t}`,pos:"relative",children:[!a&&jsxs(Group,{position:c,mb:"xs",children:[o.showAnchor&&jsxs(Anchor,{className:"cms-section-anchor",href:`#${o.name?Ft(o.name):"section-"+t}`,sx:{"&:hover .cms-section-name":{visibility:"visible",opacity:1}},children:[jsx(Text,{span:!0,size:"small",children:"#"}),jsx(Text,{span:!0,size:"small",className:"cms-section-name",sx:{visibility:"hidden",opacity:0,transition:"visibility 0s, opacity 0.2s ease-in-out"},children:o.name||"section-"+t})]}),o.optionsMenu&&jsx(jd,{sectionId:t,disabled:!1})]}),jsxs(px,{className:`bespoke-Section-${t} bespoke-Section-container`,settings:o,styles:n?.content,children:[r,l&&jsx(La,{previews:s,translations:i})]})]})]})}function mx({section:e}){let{id:r,settings:t}=e,o={...yd,...t},n=Ge(),s=K(x=>x),i=K(x=>x.variables.status),a=K(x=>x.status.previews),l=n.active&&n.status?a.concat(n.status?.previews||[]):a,c=We().Section,d=ht(s),p=Object.values(d||{}).filter(x=>x.section_id===r),m=Ue("sections"),y={...lx,...m},b=p.some(x=>{try{return i[x.id].allowed&&![f.GENERATOR,f.SECTION_FLAG].includes(x.type)||x.type===f.NAV}catch{return x.settings.allowed==="always"}}),h=p.filter(x=>![f.GENERATOR,f.SECTION_FLAG].includes(x.type)).reduce((x,k)=>(x[k.blockcol]?x[k.blockcol][k.blockrow]=k:x[k.blockcol]={[k.blockrow]:k},x),{}),g=Object.keys(p).length>0&&!t.hidden&&b,L=Object.keys(h).length;if(!g||n.active&&t.comparisonHide)return null;let A=(x,k=!1)=>{let D=Array.from(new Set(x.map(E=>E.blockcol))).map(E=>({blockcol:E})).sort((E,v)=>He(E,v,"blockcol")),P=[];return D.forEach(({blockcol:E})=>{let v=x.filter(_=>_.blockcol===E).sort((_,w)=>He(_,w,"blockrow")).map(_=>{if(!_.id||!i[_.id]?.allowed&&_.type!==f.NAV)return null;let{settings:w,type:U}=d[_.id],q=w.width&&!w.width.stretch&&w.width.unit?Ho[w.width.unit](w.width.value):w.display==="inline"?"auto":"100%",F={alignSelf:U===f.VIZ?"stretch":"flex-start",flexGrow:0,margin:"0",width:q,minWidth:300};return jsx(Box,{className:"bespoke-Block-wrapper",id:`bespoke-Block-${_.id}`,sx:F,py:wa.block.padding,children:jsx(Un,{blockId:_.id,asComparison:k},_.id)},_.id)});P.push(v);}),P.flat()},O=[];if(n.active&&!t.comparisonMerge){let x=p.filter(k=>![f.GENERATOR,f.SECTION_FLAG].includes(k.type)).reduce((k,D)=>({...k,[D.id]:D}),{});O=[jsx(Zn,{column:x,basis:"50%",children:A(Object.values(p.filter(k=>![f.GENERATOR,f.SECTION_FLAG].includes(k.type))))},"original"),jsx(Zn,{column:x,basis:"50%",children:A(Object.values(p.filter(k=>![f.GENERATOR,f.SECTION_FLAG].includes(k.type))),!0)},"comparison")];}else O=Object.keys(h).sort((x,k)=>-cs(x,k)).map(x=>{let k=h[x],D=t.columnSettings?t.columnSettings[x]:{},P=Object.values(k).sort((E,v)=>He(E,v,"blockrow"));return P.some(E=>!i[E.id]||i[E.id].allowed||E.type===f.NAV)?jsx(Zn,{column:k,columnSettings:D,basis:`calc(${100/L}% - (10px * ${L}))`,children:P.map(E=>{if(!E.id||!i[E.id]?.allowed&&E.type!==f.NAV)return null;let{settings:v,type:_}=d[E.id],w=v.width&&!v.width.stretch&&v.width.unit?Ho[v.width.unit](v.width.value):v.display==="inline"?"auto":"100%",U={alignSelf:_===f.VIZ?"stretch":"flex-start",flexGrow:0,margin:"0",width:w,minWidth:300};return jsx(Box,{className:`bespoke-Block-wrapper bespoke-${E.type}-wrapper`,id:`bespoke-Block-${E.id}`,sx:U,py:wa.block.padding,children:jsx(Un,{blockId:E.id},E.id)},E.id)})},x):null});return jsx(dx,{id:r,name:e?.settings?.name,previews:l,sectionSettings:o,sectionStyles:c,translations:y,children:jsx(Zd,{containerProps:{gap:o.columnGutter||"md",wrap:n.active?"nowrap":"wrap",sx:{zIndex:20}},children:O})})}var lx,_a,cx,ux,px,cm,um=S(()=>{u();pe();Wt();gd();Hn();Cr();vd();Wd();vr();me();Xd();tm();rm();_t();Bt();sm();Mt();Uo();lx={image_by:"image by"},_a=(e,r)=>t=>e?e(t,r):{},cx=({settings:e,styles:r,children:t,...o})=>{let{position:n}=e,s={normal:{position:"relative",backgroundColor:"transparent",borderRadius:0},sticky:{position:"sticky",zIndex:2,top:0,borderRadius:0,borderTop:"none",borderLeft:"none",borderRight:"none"}},i={normal:{radius:0},sticky:{radius:0,withBorder:!0}},a=[s[n],_a(r,e)];return jsx(Paper,{component:"section",sx:a,...i[n],...o,children:t})},ux=({settings:e,styles:r,children:t,...o})=>{let{width:n}=e,s={center:{zIndex:1},full:{zIndex:1}},i={center:{size:"lg",p:"sm",fluid:!1},full:{fluid:!0,p:"md"}},a=[s[n],_a(r,e)];return jsx(Container,{sx:a,...i[n],...o,children:t})},px=({settings:e,styles:r,children:t,...o})=>{let{style:n}=e,s={none:{},card:{}},i={none:{bg:"transparent"},card:{shadow:"lg",p:"md",radius:"md"}},a=[s[n],_a(r,e)];return jsx(Paper,{sx:a,...i[n],...o,children:t})};cm=mx;});function $e(){return useContext(fm)}function Ax({pathSegmentsKey:e="bespoke"}){let{asPath:r,query:t}=useRouter(),o=xo(),n=Ge(),s=dm(t.print)??!1,i=dm(t.printBtn)??!1,[a,l]=useState(!1),c=()=>{l(!0),rn.post("/api/cms/pdf",{path:r,slugs:t[e]}).then(d=>{let p=Buffer.from(d.data.data,"base64"),m=new Blob([p],{type:"application/pdf"});saveAs(m,"test.pdf"),l(!1);});};return _n(),jsxs(fm.Provider,{value:s,children:[s&&jsx(MediaQuery,{query:"print",styles:{display:"block"},children:jsx(Title,{display:"none",children:"This is the report header"})}),jsxs(Container,{id:"bespoke-report",className:n.comparisonLoaded?"compare":"",p:0,pos:"relative",fluid:!0,children:[o.isSuccess&&o.data.sort(He).map(d=>jsx(cm,{section:d},d.id)),i&&!s&&jsx(Affix,{position:{bottom:rem(20),right:rem(20)},children:jsx(ActionIcon,{variant:"filled",radius:"xl",color:"blue",onClick:c,children:a?jsx(Loader,{size:"1.125rem",color:"white"}):jsx(IconDownload,{size:"1.125rem"})})})]})]})}var fm,gm,_t=S(()=>{u();pe();Cr();um();Mt();Ai();fm=createContext(!1);gm=Ax;});u();u();qt();_t();Ii();Bt();Mt();u();pe();var Ix=createContext({active:!1});function Ba({children:e}){let t=K(o=>Object.values(o.records.entities.report)[0]).settings;return jsx(Ix.Provider,{value:{active:t.pdf||!1},children:e})}Yr();function _x({pathSegmentsKey:e="bespoke",translations:r,bespokeStyles:t,buildTime:o,siteProps:n,profilePrefix:s="/defaultPath",loader:i=jsx(LoadingOverlay,{visible:!0}),mantineProviderProps:a={}}){return Ln(e)?jsx(Fragment,{children:i}):jsx(MantineProvider,{...a,theme:{other:{bespokeStyles:t}},inherit:!0,children:jsxs(nc,{pathSegment:"bespoke",profilePrefix:s,siteProps:n,children:[jsx(oi,{translations:r,children:jsx(mi,{children:jsx(Ba,{children:jsx(xc,{pageSize:12,children:jsx(gm,{})})})})}),jsx("small",{className:"bespoke-timestamp",children:o})]})})}/*! Bundled license information:
|
|
61
61
|
|
package/dist/server.js
CHANGED
|
@@ -42,7 +42,7 @@ import 'react-redux';
|
|
|
42
42
|
import 'react/jsx-runtime';
|
|
43
43
|
import '@mantine/core';
|
|
44
44
|
|
|
45
|
-
var ps=Object.defineProperty;var ds=(e,t)=>{for(var r in t)ps(e,r,{get:t[r],enumerable:!0});};function ve(e){let t=e;if(t&&!t.source)if(!t.providers||t.providers.length===0){let r=ms({clientId:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET,issuer:process.env.AUTH0_ISSUER_BASE_URL});t.providers=[r],t.callbacks={async jwt({token:o,profile:n,trigger:a,session:s}){return n&&(o.bespoke_app_metadata=n.bespoke_app_metadata||{},o.bespoke_user_metadata=n.bespoke_user_metadata||{},o.bespoke_roles=n.bespoke_roles||[],o.name=n.name),a==="update"&&(s.user_metadata&&(o.bespoke_user_metadata={...o.bespoke_user_metadata,...s.user_metadata}),s.app_metadata&&(o.bespoke_app_metadata={...o.bespoke_app_metadata,...s.app_metadata}),s.roles&&s.roles.length>0&&(o.bespoke_roles=s.roles.map(i=>i.name))),o},async session({session:o,token:n}){return o&&n&&(o.user.id=n.sub,o.user.bespoke_app_metadata=n.bespoke_app_metadata,o.user.bespoke_user_metadata=n.bespoke_user_metadata,o.user.bespoke_roles=n.bespoke_roles),o}},t.source="auth0";}else t.source="custom";return t.secret||(t.secret=process.env.AUTH0_SECRET||process.env.NEXTAUTH_SECRET),t}async function me(e,t,r={providers:[]}){let o=ve(r),n=await getServerSession(e,t,o);return n&&(n.source=o.source||""),n}var ys=(e={providers:[]})=>{let t=ve(e);return gs(t)},hs=ys;var Io=initAuth0({secret:process.env.NEXTAUTH_SECRET,issuerBaseURL:process.env.AUTH0_ISSUER_BASE_URL,baseURL:process.env.REPORTS_BASE_URL||process.env.NEXTAUTH_URL,clientID:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET});var S=class extends Error{constructor(r,o){super(o);this.code=r;}toJSON(){return Bo(this)}static is(r){return Object.prototype.hasOwnProperty.call(r,"code")&&typeof r.code=="number"}};function bs(e){return {ok:!0,status:200,data:e}}function Bo(e){return {ok:!1,status:S.is(e)?e.code:500,error:e.message}}function k(e){return t=>e(t).then(bs,Bo)}function ae(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${fe(r)}`;return e[n]}let o=`${t}${fe(r)}`;return e[o]}function fe(e){return e[0].toUpperCase()+e.slice(1)}var G={ADMIN:"Admin",EDITOR:"Editor",WRITER:"Writer"},Co={APP:"App",USER:"User"},Mo=e=>{let t=Object.values(G);return e?e.map(r=>({...r,type:t.includes(r.name)?Co.APP:Co.USER})):[]};var Pe={domain:new URL(process.env.AUTH0_ISSUER_BASE_URL||"https://localhost:3000").host,clientId:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET};function Oo(){return async()=>{try{let t=await new ke.ManagementClient(Pe).roles.getAll({include_totals:!0,per_page:100});return {roles:Mo(t.roles)}}catch(e){throw console.error("AuthZeroError",e),new S(e.response?.status||500,e.message)}}}function Lo(){return async e=>{try{let t;if(e){let r={include_totals:!0,per_page:10,page:e.page||0},o=new ke.ManagementClient(Pe);if(e.role_id&&e.role_id!==""){let n={...r,id:e.role_id};t=await o.roles.getUsers(n);}else {let n={...r,q:e.query};t=await o.users.getAll(n);}}return t}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}function No(){return async e=>{try{if(e){let t=new ke.ManagementClient(Pe),r=await Promise.all([t.users.get({id:e}),t.users.getRoles({id:e})]);return {...r[0],roles:r[1]}}else throw new S(404,"User ID required")}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}function Do(){return async e=>{try{if(e.user_id){if(e.app_metadata&&await Br(e.user_id,e.app_metadata),e.user_metadata&&await Cr(e.user_id,e.user_metadata),e.roles){let t=new ke.ManagementClient(Pe),o=(await t.users.getRoles({id:e.user_id})).map(i=>i.id),n=e.roles.map(i=>i.id),a=n.filter(i=>!o.includes(i)),s=o.filter(i=>!n.includes(i));a.length>0&&await t.users.assignRoles({id:e.user_id},{roles:a}),s.length>0&&await t.users.removeRoles({id:e.user_id},{roles:s});}return {status:"success",message:"User updated!"}}else throw new S(404,"user_id is required")}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}function Uo(){return async e=>{try{return "NOT USED SERVICE"}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}async function Br(e,t){return await new ke.ManagementClient(Pe).users.updateAppMetadata({id:e},t)}async function Cr(e,t){return await new ke.ManagementClient(Pe).users.updateUserMetadata({id:e},t)}async function Fo(e,t){try{let r=new ke.ManagementClient(Pe),o=await r.getUsers({search_engine:"v3",q:`user_metadata.${e}:"${t}"`});for(let n=0;n<o.length;n++){let a=o[n];a.bespoke_user_metadata=a.user_metadata||{},delete a.user_metadata,a.bespoke_roles=(await r.users.getRoles({id:a.user_id})).map(s=>s.name);}return o}catch(r){console.error(r);}}var Ss=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{let s=await Io.getSession(e,t);if(!s||!s.user)throw new Error("not_authenticated");{let{user:i}=s,l={...s.user.bespoke_app_metadata||{},...r};await Br(s.user.sub,l),o({error:"",description:`App metadata updated for user ${s.user.email}`});}}catch(s){n({error:s.message,description:"The user does not have an active session or is not authenticated"});}})();}),Es=Ss;var Ts=(e,t,r,o)=>new Promise((n,a)=>{(async()=>{try{let i=await me(e,t,r);if(!i||!i.user)throw new Error("not_authenticated");{let{user:c,source:l}=i,u={...c.bespoke_user_metadata||{},...o};l==="custom"&&r.actions?.updateUser?await r.actions.updateUser()({user_id:c.id,user_metadata:u}):await Cr(c.id,u),n({error:"",description:`App metadata updated for user ${c.email}`});}}catch(i){a({error:i.message,description:"The user does not have an active session or is not authenticated"});}})();}),_s=Ts;var Tt=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;function Qt(e,t){return e.some(r=>t.includes(r))}function Zt(e){return e.filter((t,r,o)=>o.indexOf(t)===r)}var vs=(e,t,r)=>async function(o,n){let a=await me(o,n,r);if(!a||!a.user){n.status(401).json({error:"not_authenticated",description:"The user does not have an active session or is not authenticated"});return}let s=a.user.bespoke_roles||[];if(t.length>0&&!Qt(s,t)){n.status(402).json({error:"unauthorize",description:"The user requires some specific roles"});return}await e(o,n);},ks=vs;var Ps=(e,t)=>new Promise((r,o)=>{(async()=>{try{if(e&&t&&e!==""&&t!==""){let a=await Fo(e,t);r(a);}else o({error:"empty_params",description:"key or value params are empty"});}catch(a){o({error:a.message,description:"Error "});}})();}),ws=Ps;var Ye=(e=process.env)=>lr(e.REPORTS_LOGGING);var xe=class extends Model{getContent(t){let r=this.contentByLocale.find(o=>o.locale===t);if(!r)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return r}toJSON(){let t=this.get({plain:!0}),{inputs:r=[],consumers:o=[],contentByLocale:n=[]}=this;return {...t,inputs:r.map(a=>a.toJSON()),consumers:o.map(a=>a.toJSON()),contentByLocale:Object.fromEntries(n.map(a=>[a.locale,a.toJSON()]))}}};function Bs(e){return xe.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},settings:{type:DataTypes.JSON,defaultValue:{}},type:{type:DataTypes.STRING,defaultValue:"paragraph"},shared:{type:DataTypes.BOOLEAN,defaultValue:!1},blockrow:DataTypes.STRING,blockcol:DataTypes.STRING,section_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_section",key:"id"}}},{sequelize:e,modelName:"block",tableName:"bespoke_reports_block",freezeTableName:!0,timestamps:!1}),t=>(xe.hasMany(t.block_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),xe.belongsToMany(t.block,{through:"block_input",foreignKey:"block_id",otherKey:"input_id",as:"inputs"}),xe.belongsToMany(t.block,{through:"block_input",foreignKey:"input_id",otherKey:"block_id",as:"consumers"}),xe)}var Vo=Bs;var Xt=class extends Model{};function Ms(e){return Xt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:!0},content:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"block_content",tableName:"bespoke_reports_block_content",freezeTableName:!0,timestamps:!1}),()=>Xt}var zo=Ms;var er=class extends Model{};function Ls(e){return er.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},block_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},input_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}}},{sequelize:e,modelName:"block_input",tableName:"bespoke_reports_block_input",freezeTableName:!0,timestamps:!1}),()=>er}var $o=Ls;function Lr(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 qo(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 Ns(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(Lr(c)-Lr(i)-Lr(s)+s*Math.log(a)+i*Math.log(1-a));a<(s+1)/(c+2)?o=l*qo(a,s,i):o=1-l*qo(1-a,i,s),n=1-o;}return Math.round(n*1e5)/1e5}function Ds(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function _t(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 Us(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,p=o,u=a/100;for(;p-l>1e-5;)_t(t,c,e,e)*.5+_t(t,c,e+1,t)>u?(p=c,c=(l+c)/2):(l=c,c=(p+c)/2);s=c;}if(e===t)i=0;else {let c=(1+o)/2,l=o,p=1,u=a/100;for(;p-l>1e-5;)_t(t,c,e,e)*.5+_t(t,c,0,e-1)<u?(p=c,c=(l+c)/2):(l=c,c=(p+c)/2);i=c;}return {lci:s,uci:i}}function Fs(e,t){let r=e,o=t,n=r,a=o,s=95,i=.5,c=.5,p=(100-s)/2/100,u=n;for(;c>1e-5;)c/=2,tr((1+u)*i/(1-i),u+1,1e10)+.5*tr((1+u)*i/(1-i),u,u)>p?i-=c:i+=c;let d=(1+u)*i/(1-i)/a;for(i=.5,c=.5,p=(100-s)/2/100;c>1e-5;)c/=2,tr((1+u)*i/(1-i),0,u-1)+.5*tr((1+u)*i/(1-i),u,u)<p?i-=c:i+=c;let y=(1+u)*i/(1-i)/a;return {lci:d,uci:y}}function tr(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 Go={binomialCdf:Ns,binP:_t,computeMidP:Us,criticalValue:Ds,smr:Fs};var Ie={d3:{...Vs,...zs,...$s,...qs},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:Go},Ko={};var Se={UNILATERAL:"uni",MULTILATERAL:"multi"},Ce={SINGLE:"single",MULTI:"multi"};var Nr={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Qs={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Zs={FALLBACK:"fallback"};var Xs={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"},Dr={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},Ur="logic",B={...Xs,...Dr},Wo={NAME:"name",DESCRIPTION:"description",...Nr,...Qs,...Zs};var rr={FORMATTER:"formatter",FUNCTION:"function"},Qe={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"};var Ze=class extends Model{};function ri(e){return Ze.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{description:"",testValue:"Foo",type:rr.FORMATTER,inputType:Qe.STRING,logic:"return n;"}}},{sequelize:e,modelName:"formatter",tableName:"bespoke_reports_formatter",freezeTableName:!0,timestamps:!1,hooks:{async afterSync(t){let r=await Ze.findAll();if(t.force||r.length===0){let o=Object.entries(Ko).map(([n,a])=>({name:n,content:a}));await Ze.bulkCreate(o);}}}}),()=>Ze}var Jo=ri;var vt=class extends Model{getContent(t){let{contentByLocale:r}=this;if(!r)throw new Error("This ImageModel entity didn't include its ImageContentModel association.");let o=r.find(n=>n.locale===t);if(!o)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return o}};function ni(e){return vt.init({id:{autoIncrement:!0,primaryKey:!0,type:DataTypes.INTEGER},url:{type:DataTypes.TEXT,unique:!0},author:DataTypes.TEXT,license:DataTypes.TEXT,splash:DataTypes.BLOB,thumb:DataTypes.BLOB},{sequelize:e,modelName:"image",tableName:"bespoke_reports_image",freezeTableName:!0}),t=>(vt.hasMany(t.image_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),vt)}var Yo=ni;var or=class extends Model{};function si(e){return or.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_image",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:!0},meta:DataTypes.TEXT},{sequelize:e,modelName:"image_content",tableName:"bespoke_reports_image_content",freezeTableName:!0,timestamps:!1}),()=>or}var Qo=si;var et=class extends Model{toJSON(){let t=this.get({plain:!0}),{dimensions:r=[],sections:o=[]}=this;return {...t,settings:t.settings,date:new Date(this.date||Date.now()).toISOString(),dimensions:r.map(n=>n.toJSON()),sections:o.map(n=>n.toJSON())}}};function ci(e){return et.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,allowNull:!1,defaultValue:""},visible:{type:DataTypes.BOOLEAN,defaultValue:!0},date:{type:DataTypes.DATE,defaultValue:DataTypes.NOW},type:{type:DataTypes.STRING,defaultValue:"report",validate:{isIn:[["report","story"]]}},settings:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"report",tableName:"bespoke_reports_report",freezeTableName:!0,timestamps:!1}),t=>(et.hasMany(t.dimension,{foreignKey:"report_id",sourceKey:"id",as:"dimensions"}),et.hasMany(t.section,{foreignKey:"report_id",sourceKey:"id",as:"sections"}),et)}var Zo=ci;var rt=class extends Model{toJSON(){let t=this.get({plain:!0}),{variants:r=[]}=this;return {...t,variants:r.map(o=>o.toJSON())}}};function ui(e){return rt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},report_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},ordering:{type:DataTypes.INTEGER,defaultValue:0},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"dimension",tableName:"bespoke_reports_report_dimension",freezeTableName:!0,timestamps:!1}),t=>(rt.hasMany(t.variant,{foreignKey:"dimension_id",sourceKey:"id",as:"variants",constraints:!1}),rt.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),rt)}var Xo=ui;var ot=class extends Model{get report(){return this.dimension?.report}toJSON(){return this.get({plain:!0})}};function di(e){return ot.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},dimension_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},slug:{type:DataTypes.STRING,defaultValue:""},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},config:{type:DataTypes.JSONB,defaultValue:{}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"variant",tableName:"bespoke_reports_report_dimension_variant",freezeTableName:!0,timestamps:!1}),t=>(ot.hasMany(t.search,{foreignKey:"variant_id",sourceKey:"id",as:"members",constraints:!1}),ot.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),ot)}var en=di;var Re=class extends Model{getContent(t){let{contentByLocale:r}=this;if(!r)throw new Error("This SearchModel entity didn't include its SearchContentModel association.");let o=r.find(n=>n.locale===t);if(!o)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return o}};function fi(e){return Re.init({id:{primaryKey:!0,type:DataTypes.TEXT},zvalue:DataTypes.DOUBLE,slug:DataTypes.TEXT,image_id:{type:DataTypes.INTEGER,references:{model:"bespoke_reports_image",key:"id"}},content_id:{autoIncrement:!0,type:DataTypes.INTEGER,unique:!0},variant_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension_variant",key:"id"}},dimension_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},report_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"search",tableName:"bespoke_reports_search",freezeTableName:!0,timestamps:!1}),t=>(Re.belongsTo(t.variant,{foreignKey:"variant_id",targetKey:"id",as:"variant",constraints:!1}),Re.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),Re.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),Re.belongsTo(t.image,{foreignKey:"image_id",targetKey:"id",as:"image",constraints:!1}),Re.hasMany(t.search_content,{foreignKey:"id",sourceKey:"content_id",as:"contentByLocale"}),Re)}var tn=fi;var nr=class extends Model{};function yi(e){return nr.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_search",key:"content_id"}},locale:{type:DataTypes.STRING,primaryKey:!0},name:DataTypes.TEXT,annotations:{type:DataTypes.JSONB,defaultValue:{}},attributes:{type:DataTypes.JSONB,defaultValue:{}},keywords:DataTypes.ARRAY(DataTypes.TEXT)},{sequelize:e,modelName:"search_content",tableName:"bespoke_reports_search_content",freezeTableName:!0,timestamps:!1}),()=>nr}var rn=yi;var Pt=class extends Model{toJSON(){let t=this.get({plain:!0}),{blocks:r=[]}=this;return {...t,blocks:r.map(o=>o.toJSON())}}};function Ri(e){return Pt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},settings:{type:DataTypes.JSON,defaultValue:{}},heading:{type:DataTypes.INTEGER,defaultValue:1},ordering:DataTypes.STRING,report_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}}},{sequelize:e,modelName:"section",tableName:"bespoke_reports_section",freezeTableName:!0,timestamps:!1}),t=>(Pt.hasMany(t.block,{foreignKey:"section_id",sourceKey:"id",as:"blocks"}),Pt)}var on=Ri;var nn={block:Vo,block_content:zo,block_input:$o,formatter:Jo,image:Yo,image_content:Qo,report:Zo,dimension:Xo,variant:en,search:tn,search_content:rn,section:on};var an=Ye(),sn=process.env.REPORTS_DB_CONNECTION||"";if(!sn)throw new Error(`
|
|
45
|
+
var ps=Object.defineProperty;var ds=(e,t)=>{for(var r in t)ps(e,r,{get:t[r],enumerable:!0});};function ve(e){let t=e;if(t&&!t.source)if(!t.providers||t.providers.length===0){let r=ms({clientId:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET,issuer:process.env.AUTH0_ISSUER_BASE_URL});t.providers=[r],t.callbacks={async jwt({token:o,profile:n,trigger:a,session:s}){return n&&(o.bespoke_app_metadata=n.bespoke_app_metadata||{},o.bespoke_user_metadata=n.bespoke_user_metadata||{},o.bespoke_roles=n.bespoke_roles||[],o.name=n.name),a==="update"&&(s.user_metadata&&(o.bespoke_user_metadata={...o.bespoke_user_metadata,...s.user_metadata}),s.app_metadata&&(o.bespoke_app_metadata={...o.bespoke_app_metadata,...s.app_metadata}),s.roles&&s.roles.length>0&&(o.bespoke_roles=s.roles.map(i=>i.name))),o},async session({session:o,token:n}){return o&&n&&(o.user.id=n.sub,o.user.bespoke_app_metadata=n.bespoke_app_metadata,o.user.bespoke_user_metadata=n.bespoke_user_metadata,o.user.bespoke_roles=n.bespoke_roles),o}},t.source="auth0";}else t.source="custom";return t.secret||(t.secret=process.env.AUTH0_SECRET||process.env.NEXTAUTH_SECRET),t}async function me(e,t,r={providers:[]}){let o=ve(r),n=await getServerSession(e,t,o);return n&&(n.source=o.source||""),n}var ys=(e={providers:[]})=>{let t=ve(e);return gs(t)},hs=ys;var Io=initAuth0({secret:process.env.NEXTAUTH_SECRET,issuerBaseURL:process.env.AUTH0_ISSUER_BASE_URL,baseURL:process.env.REPORTS_BASE_URL||process.env.NEXTAUTH_URL,clientID:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET});var S=class extends Error{constructor(r,o){super(o);this.code=r;}toJSON(){return Co(this)}static is(r){return Object.prototype.hasOwnProperty.call(r,"code")&&typeof r.code=="number"}};function bs(e){return {ok:!0,status:200,data:e}}function Co(e){return {ok:!1,status:S.is(e)?e.code:500,error:e.message}}function k(e){return t=>e(t).then(bs,Co)}function ae(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${fe(r)}`;return e[n]}let o=`${t}${fe(r)}`;return e[o]}function fe(e){return e[0].toUpperCase()+e.slice(1)}var G={ADMIN:"Admin",EDITOR:"Editor",WRITER:"Writer"},Bo={APP:"App",USER:"User"},Mo=e=>{let t=Object.values(G);return e?e.map(r=>({...r,type:t.includes(r.name)?Bo.APP:Bo.USER})):[]};var Pe={domain:new URL(process.env.AUTH0_ISSUER_BASE_URL||"https://localhost:3000").host,clientId:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET};function Oo(){return async()=>{try{let t=await new ke.ManagementClient(Pe).roles.getAll({include_totals:!0,per_page:100});return {roles:Mo(t.roles)}}catch(e){throw console.error("AuthZeroError",e),new S(e.response?.status||500,e.message)}}}function Lo(){return async e=>{try{let t;if(e){let r={include_totals:!0,per_page:10,page:e.page||0},o=new ke.ManagementClient(Pe);if(e.role_id&&e.role_id!==""){let n={...r,id:e.role_id};t=await o.roles.getUsers(n);}else {let n={...r,q:e.query};t=await o.users.getAll(n);}}return t}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}function No(){return async e=>{try{if(e){let t=new ke.ManagementClient(Pe),r=await Promise.all([t.users.get({id:e}),t.users.getRoles({id:e})]);return {...r[0],roles:r[1]}}else throw new S(404,"User ID required")}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}function Do(){return async e=>{try{if(e.user_id){if(e.app_metadata&&await Cr(e.user_id,e.app_metadata),e.user_metadata&&await Br(e.user_id,e.user_metadata),e.roles){let t=new ke.ManagementClient(Pe),o=(await t.users.getRoles({id:e.user_id})).map(i=>i.id),n=e.roles.map(i=>i.id),a=n.filter(i=>!o.includes(i)),s=o.filter(i=>!n.includes(i));a.length>0&&await t.users.assignRoles({id:e.user_id},{roles:a}),s.length>0&&await t.users.removeRoles({id:e.user_id},{roles:s});}return {status:"success",message:"User updated!"}}else throw new S(404,"user_id is required")}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}function Uo(){return async e=>{try{return "NOT USED SERVICE"}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}async function Cr(e,t){return await new ke.ManagementClient(Pe).users.updateAppMetadata({id:e},t)}async function Br(e,t){return await new ke.ManagementClient(Pe).users.updateUserMetadata({id:e},t)}async function Fo(e,t){try{let r=new ke.ManagementClient(Pe),o=await r.getUsers({search_engine:"v3",q:`user_metadata.${e}:"${t}"`});for(let n=0;n<o.length;n++){let a=o[n];a.bespoke_user_metadata=a.user_metadata||{},delete a.user_metadata,a.bespoke_roles=(await r.users.getRoles({id:a.user_id})).map(s=>s.name);}return o}catch(r){console.error(r);}}var Ss=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{let s=await Io.getSession(e,t);if(!s||!s.user)throw new Error("not_authenticated");{let{user:i}=s,l={...s.user.bespoke_app_metadata||{},...r};await Cr(s.user.sub,l),o({error:"",description:`App metadata updated for user ${s.user.email}`});}}catch(s){n({error:s.message,description:"The user does not have an active session or is not authenticated"});}})();}),Es=Ss;var Ts=(e,t,r,o)=>new Promise((n,a)=>{(async()=>{try{let i=await me(e,t,r);if(!i||!i.user)throw new Error("not_authenticated");{let{user:c,source:l}=i,u={...c.bespoke_user_metadata||{},...o};l==="custom"&&r.actions?.updateUser?await r.actions.updateUser()({user_id:c.id,user_metadata:u}):await Br(c.id,u),n({error:"",description:`App metadata updated for user ${c.email}`});}}catch(i){a({error:i.message,description:"The user does not have an active session or is not authenticated"});}})();}),_s=Ts;var Tt=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;function Qt(e,t){return e.some(r=>t.includes(r))}function Zt(e){return e.filter((t,r,o)=>o.indexOf(t)===r)}var vs=(e,t,r)=>async function(o,n){let a=await me(o,n,r);if(!a||!a.user){n.status(401).json({error:"not_authenticated",description:"The user does not have an active session or is not authenticated"});return}let s=a.user.bespoke_roles||[];if(t.length>0&&!Qt(s,t)){n.status(402).json({error:"unauthorize",description:"The user requires some specific roles"});return}await e(o,n);},ks=vs;var Ps=(e,t)=>new Promise((r,o)=>{(async()=>{try{if(e&&t&&e!==""&&t!==""){let a=await Fo(e,t);r(a);}else o({error:"empty_params",description:"key or value params are empty"});}catch(a){o({error:a.message,description:"Error "});}})();}),ws=Ps;var Ye=(e=process.env)=>lr(e.REPORTS_LOGGING);var xe=class extends Model{getContent(t){let r=this.contentByLocale.find(o=>o.locale===t);if(!r)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return r}toJSON(){let t=this.get({plain:!0}),{inputs:r=[],consumers:o=[],contentByLocale:n=[]}=this;return {...t,inputs:r.map(a=>a.toJSON()),consumers:o.map(a=>a.toJSON()),contentByLocale:Object.fromEntries(n.map(a=>[a.locale,a.toJSON()]))}}};function Cs(e){return xe.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},settings:{type:DataTypes.JSON,defaultValue:{}},type:{type:DataTypes.STRING,defaultValue:"paragraph"},shared:{type:DataTypes.BOOLEAN,defaultValue:!1},blockrow:DataTypes.STRING,blockcol:DataTypes.STRING,section_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_section",key:"id"}}},{sequelize:e,modelName:"block",tableName:"bespoke_reports_block",freezeTableName:!0,timestamps:!1}),t=>(xe.hasMany(t.block_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),xe.belongsToMany(t.block,{through:"block_input",foreignKey:"block_id",otherKey:"input_id",as:"inputs"}),xe.belongsToMany(t.block,{through:"block_input",foreignKey:"input_id",otherKey:"block_id",as:"consumers"}),xe)}var Vo=Cs;var Xt=class extends Model{};function Ms(e){return Xt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:!0},content:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"block_content",tableName:"bespoke_reports_block_content",freezeTableName:!0,timestamps:!1}),()=>Xt}var zo=Ms;var er=class extends Model{};function Ls(e){return er.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},block_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},input_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}}},{sequelize:e,modelName:"block_input",tableName:"bespoke_reports_block_input",freezeTableName:!0,timestamps:!1}),()=>er}var $o=Ls;function Lr(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 qo(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 Ns(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(Lr(c)-Lr(i)-Lr(s)+s*Math.log(a)+i*Math.log(1-a));a<(s+1)/(c+2)?o=l*qo(a,s,i):o=1-l*qo(1-a,i,s),n=1-o;}return Math.round(n*1e5)/1e5}function Ds(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function _t(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 Us(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,p=o,u=a/100;for(;p-l>1e-5;)_t(t,c,e,e)*.5+_t(t,c,e+1,t)>u?(p=c,c=(l+c)/2):(l=c,c=(p+c)/2);s=c;}if(e===t)i=0;else {let c=(1+o)/2,l=o,p=1,u=a/100;for(;p-l>1e-5;)_t(t,c,e,e)*.5+_t(t,c,0,e-1)<u?(p=c,c=(l+c)/2):(l=c,c=(p+c)/2);i=c;}return {lci:s,uci:i}}function Fs(e,t){let r=e,o=t,n=r,a=o,s=95,i=.5,c=.5,p=(100-s)/2/100,u=n;for(;c>1e-5;)c/=2,tr((1+u)*i/(1-i),u+1,1e10)+.5*tr((1+u)*i/(1-i),u,u)>p?i-=c:i+=c;let d=(1+u)*i/(1-i)/a;for(i=.5,c=.5,p=(100-s)/2/100;c>1e-5;)c/=2,tr((1+u)*i/(1-i),0,u-1)+.5*tr((1+u)*i/(1-i),u,u)<p?i-=c:i+=c;let y=(1+u)*i/(1-i)/a;return {lci:d,uci:y}}function tr(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 Go={binomialCdf:Ns,binP:_t,computeMidP:Us,criticalValue:Ds,smr:Fs};var Ie={d3:{...Vs,...zs,...$s,...qs},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:Go},Ko={};var Se={UNILATERAL:"uni",MULTILATERAL:"multi"},Be={SINGLE:"single",MULTI:"multi"};var Nr={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Qs={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Zs={FALLBACK:"fallback"};var Xs={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"},Dr={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},Ur="logic",C={...Xs,...Dr},Wo={NAME:"name",DESCRIPTION:"description",...Nr,...Qs,...Zs};var rr={FORMATTER:"formatter",FUNCTION:"function"},Qe={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"};var Ze=class extends Model{};function ri(e){return Ze.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{description:"",testValue:"Foo",type:rr.FORMATTER,inputType:Qe.STRING,logic:"return n;"}}},{sequelize:e,modelName:"formatter",tableName:"bespoke_reports_formatter",freezeTableName:!0,timestamps:!1,hooks:{async afterSync(t){let r=await Ze.findAll();if(t.force||r.length===0){let o=Object.entries(Ko).map(([n,a])=>({name:n,content:a}));await Ze.bulkCreate(o);}}}}),()=>Ze}var Jo=ri;var vt=class extends Model{getContent(t){let{contentByLocale:r}=this;if(!r)throw new Error("This ImageModel entity didn't include its ImageContentModel association.");let o=r.find(n=>n.locale===t);if(!o)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return o}};function ni(e){return vt.init({id:{autoIncrement:!0,primaryKey:!0,type:DataTypes.INTEGER},url:{type:DataTypes.TEXT,unique:!0},author:DataTypes.TEXT,license:DataTypes.TEXT,splash:DataTypes.BLOB,thumb:DataTypes.BLOB},{sequelize:e,modelName:"image",tableName:"bespoke_reports_image",freezeTableName:!0}),t=>(vt.hasMany(t.image_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),vt)}var Yo=ni;var or=class extends Model{};function si(e){return or.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_image",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:!0},meta:DataTypes.TEXT},{sequelize:e,modelName:"image_content",tableName:"bespoke_reports_image_content",freezeTableName:!0,timestamps:!1}),()=>or}var Qo=si;var et=class extends Model{toJSON(){let t=this.get({plain:!0}),{dimensions:r=[],sections:o=[]}=this;return {...t,settings:t.settings,date:new Date(this.date||Date.now()).toISOString(),dimensions:r.map(n=>n.toJSON()),sections:o.map(n=>n.toJSON())}}};function ci(e){return et.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,allowNull:!1,defaultValue:""},visible:{type:DataTypes.BOOLEAN,defaultValue:!0},date:{type:DataTypes.DATE,defaultValue:DataTypes.NOW},type:{type:DataTypes.STRING,defaultValue:"report",validate:{isIn:[["report","story"]]}},settings:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"report",tableName:"bespoke_reports_report",freezeTableName:!0,timestamps:!1}),t=>(et.hasMany(t.dimension,{foreignKey:"report_id",sourceKey:"id",as:"dimensions"}),et.hasMany(t.section,{foreignKey:"report_id",sourceKey:"id",as:"sections"}),et)}var Zo=ci;var rt=class extends Model{toJSON(){let t=this.get({plain:!0}),{variants:r=[]}=this;return {...t,variants:r.map(o=>o.toJSON())}}};function ui(e){return rt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},report_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},ordering:{type:DataTypes.INTEGER,defaultValue:0},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"dimension",tableName:"bespoke_reports_report_dimension",freezeTableName:!0,timestamps:!1}),t=>(rt.hasMany(t.variant,{foreignKey:"dimension_id",sourceKey:"id",as:"variants",constraints:!1}),rt.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),rt)}var Xo=ui;var ot=class extends Model{get report(){return this.dimension?.report}toJSON(){return this.get({plain:!0})}};function di(e){return ot.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},dimension_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},slug:{type:DataTypes.STRING,defaultValue:""},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},config:{type:DataTypes.JSONB,defaultValue:{}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"variant",tableName:"bespoke_reports_report_dimension_variant",freezeTableName:!0,timestamps:!1}),t=>(ot.hasMany(t.search,{foreignKey:"variant_id",sourceKey:"id",as:"members",constraints:!1}),ot.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),ot)}var en=di;var Re=class extends Model{getContent(t){let{contentByLocale:r}=this;if(!r)throw new Error("This SearchModel entity didn't include its SearchContentModel association.");let o=r.find(n=>n.locale===t);if(!o)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return o}};function fi(e){return Re.init({id:{primaryKey:!0,type:DataTypes.TEXT},zvalue:DataTypes.DOUBLE,slug:DataTypes.TEXT,image_id:{type:DataTypes.INTEGER,references:{model:"bespoke_reports_image",key:"id"}},content_id:{autoIncrement:!0,type:DataTypes.INTEGER,unique:!0},variant_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension_variant",key:"id"}},dimension_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},report_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"search",tableName:"bespoke_reports_search",freezeTableName:!0,timestamps:!1}),t=>(Re.belongsTo(t.variant,{foreignKey:"variant_id",targetKey:"id",as:"variant",constraints:!1}),Re.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),Re.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),Re.belongsTo(t.image,{foreignKey:"image_id",targetKey:"id",as:"image",constraints:!1}),Re.hasMany(t.search_content,{foreignKey:"id",sourceKey:"content_id",as:"contentByLocale"}),Re)}var tn=fi;var nr=class extends Model{};function yi(e){return nr.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_search",key:"content_id"}},locale:{type:DataTypes.STRING,primaryKey:!0},name:DataTypes.TEXT,annotations:{type:DataTypes.JSONB,defaultValue:{}},attributes:{type:DataTypes.JSONB,defaultValue:{}},keywords:DataTypes.ARRAY(DataTypes.TEXT)},{sequelize:e,modelName:"search_content",tableName:"bespoke_reports_search_content",freezeTableName:!0,timestamps:!1}),()=>nr}var rn=yi;var Pt=class extends Model{toJSON(){let t=this.get({plain:!0}),{blocks:r=[]}=this;return {...t,blocks:r.map(o=>o.toJSON())}}};function Ri(e){return Pt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},settings:{type:DataTypes.JSON,defaultValue:{}},heading:{type:DataTypes.INTEGER,defaultValue:1},ordering:DataTypes.STRING,report_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}}},{sequelize:e,modelName:"section",tableName:"bespoke_reports_section",freezeTableName:!0,timestamps:!1}),t=>(Pt.hasMany(t.block,{foreignKey:"section_id",sourceKey:"id",as:"blocks"}),Pt)}var on=Ri;var nn={block:Vo,block_content:zo,block_input:$o,formatter:Jo,image:Yo,image_content:Qo,report:Zo,dimension:Xo,variant:en,search:tn,search_content:rn,section:on};var an=Ye(),sn=process.env.REPORTS_DB_CONNECTION||"";if(!sn)throw new Error(`
|
|
46
46
|
Env var 'REPORTS_DB_CONNECTION' is not present.
|
|
47
47
|
This is required to connect to a database to save the Reports CMS changes.
|
|
48
48
|
`);var Ne=()=>{if(global.sequelize)an&&console.log("\u267B\uFE0F RE-UTILIZING DB CONNECTION");else {an&&console.log("\u{1F511} INITIALIZING DB CONNECTION");let e;try{e=new Sequelize(sn,{logging:!1,dialectModule:bi,pool:{max:10,min:1,acquire:5*1e3,idle:10*1e3,evict:1*1e3}});}catch(t){throw new Error(`
|
|
@@ -52,14 +52,14 @@ var ps=Object.defineProperty;var ds=(e,t)=>{for(var r in t)ps(e,r,{get:t[r],enum
|
|
|
52
52
|
${t.message}
|
|
53
53
|
`)}Object.values(nn).map(t=>t(e)).map(t=>t({...e.models,sequelize:e})),global.sequelize=e.sync().catch(t=>{t instanceof Error$1&&console.error("=".repeat(40),`
|
|
54
54
|
Error initializing sequelize connection:
|
|
55
|
-
`,t.stack||t.message),global.sequelize=void 0;}).then(()=>({...e.models,sequelize:e}));}return global.sequelize};var j=()=>{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}};function K(e){let t={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"," ":""},r=`(?:${Object.keys(t).join("|")})`,o=RegExp(r),n=RegExp(r,"g"),a=String(e).replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();return o.test(a)?a.replace(n,s=>t[s]):a}function wt(e){return typeof e=="string"?String(e).replace(/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});/ig," "):e}function Ti(e){return e?Ai(wt(K(e)),{replacement:"-",remove:/[*+~.()'"!:@]/g,lower:!0,strict:!0,trim:!0}):""}var ar=Ti;var xt=e=>({overrideNames:e&&typeof e.overrideNames<"u"?e.overrideNames:!1,overrideRelevance:e&&typeof e.overrideRelevance<"u"?e.overrideRelevance:!1,regenerateSlugs:e&&typeof e.regenerateSlugs<"u"?e.regenerateSlugs:!1,keepOldMembers:e&&typeof e.keepOldMembers<"u"?e.keepOldMembers:!0,doIngest:e&&typeof e.doIngest<"u"?e.doIngest:!1,overrideAttributes:e&&typeof e.overrideAttributes<"u"?e.overrideAttributes:!1,order:e&&typeof e.order<"u"?e.order:0});var{localeDefault:zr}=j();function un(e){let{search:t,search_content:r}=e;return o;async function o(a){let{id:s,config:i={},settings:c={}}=a,l=i[zr]?zr:Object.keys(i)[0],{overrideNames:p,overrideAttributes:u}=xt(c),{accessor:d,path:m,idKey:y,labelKey:h}=i[zr];if(!m||!y||!h)return;let R=await fr.get(m).catch(b=>({data:[],error:b})),A=Tt(R.data,d),P=[];try{console.log(`Ingesting default items for variant ${a.name} for ${l}`),P=await n(a,l,A);}catch(b){let O=`[ERROR] Ingesting default member items for ${l}`;throw console.error(O,b),new S(500,O)}let I=await t.findAll({where:{variant_id:s}}).then(b=>Object.fromEntries(b.map(O=>[O.id,{content_id:O.content_id,needsUpdate:P.includes(O.content_id)}]))),E=Object.entries(i).map(async([b,O])=>{let{path:D,accessor:F,idKey:Z,labelKey:W,attributes:L=[]}=O;if(!D||!Z||!W)return;let z=await fr.get(D).catch(N=>({data:[],error:N})),H=Tt(z.data,F),v=await r.findAll({where:{id:P,locale:b}}).then(N=>Object.fromEntries(N.map(_=>[_.id,_.toJSON()]))),T=H.filter(N=>N[Z]&&N[Z]!==""&&N[W]&&N[W]!=="").map(N=>{let _=I[N[Z]],w,$=Object.fromEntries(L.map(X=>[X.name,X.type==="constant"?X.value:N[X.value]||""]));return _.needsUpdate&&v[_.content_id]?(w={...v[_.content_id]},p&&(w.name=N[W]),u&&(w.attributes=$)):w={id:_.content_id,locale:b,name:N[W],attributes:$},w});try{return r.bulkCreate(T,{updateOnDuplicate:["name","attributes"]})}catch(N){let _=`[ERROR] Ingesting search content items for ${b}`;throw console.error(_,N),new S(500,_)}});await Promise.all(E);}async function n(a,s,i){let{id:c,dimension_id:l,slug:p}=a,{report_id:u}=a.dimension,{idKey:d,labelKey:m,zValueKey:y}=a.config[s],{overrideNames:h,regenerateSlugs:R,keepOldMembers:A,overrideRelevance:P,overrideAttributes:I}=xt(a.settings),E=t.findAll({attributes:["slug",[fn$1("COUNT",col("variant.id")),"slugCount"]],include:{association:"variant",attributes:[],required:!1,right:!0,where:{dimension_id:l,slug:p,id:{[Op.not]:c}}},group:"search.slug"}).then(_=>Object.fromEntries(_.map(w=>{let $=w.getDataValue("slugCount");return [w.slug,Number.parseInt(`${$}`,10)]}))),b=t.findAll({where:{variant_id:c}}).then(_=>Object.fromEntries(_.map(w=>[w.id,w.toJSON()]))),[O,D]=await Promise.all([E,b]),F=Object.values(D).map(_=>_.slug),Z=[],W=null,L=null;if(y&&y!==""){for(let _ of i)if(typeof _[y]=="number"&&!isNaN(_[y])){let w=_[y];(W===null||w<W)&&(W=w),(L===null||w>L)&&(L=w);}}let z=[],H=[],v=[],T=!1;i.filter(_=>_[d]&&_[d]!==""&&_[m]&&_[m]!=="").forEach(_=>{let w=_[d],$=ar(_[m]);T=!1;let X=parseFloat(Math.random().toPrecision(5));if(y&&y!==""&&W&&L&&_[y]){let x;try{x=parseInt(_[y],10);}catch{x=0;}let Y=L!==null&&W!==null&&L!==W?(x-W)/(L-W):0;X=L===W?1:parseFloat(Y.toPrecision(5));}if(D[w]){if(h||R||P||I){let x=D[w];if((h||I)&&v.push(x.content_id),h&&R){let Y=Object.values(D).filter(M=>M.id!==w).map(M=>M.slug),U=O[$]||Y.includes[$]||Z.includes($);U&&console.log("Duplicate slug!",$,"replaced by",`${$}-${w}`);let V=U?`${$}-${w}`:$;x.slug!==V&&(x.slug=V,Z.push($),T=!0,console.log("UPDATE SLUG",w,$));}y&&y!==""&&P&&x.zvalue!==X&&(x.zvalue=X,T=!0,console.log("UPDATE ZVALUE",w,X)),T&&H.push(x);}}else {console.log("INSERT ID",w);let x=O[$]||F.includes[$]||Z.includes($);x&&console.log("Duplicate slug!",$,"replaced by",`${$}-${w}`);let Y=x?`${$}-${w}`:$;Z.push($),z.push({id:w,slug:Y,variant_id:c,dimension_id:l,report_id:u,zvalue:X});}});let N=[];if(!A){let _=i.map(w=>w[d]);N=Object.keys(D).filter(w=>!_.includes(w));}try{return (z.length>0||H.length>0)&&(await t.bulkCreate([...z,...H],{updateOnDuplicate:["slug","zvalue"]}),console.log("New members ingested:",z.length),console.log("New members updated:",H.length)),N.length>0&&(await t.destroy({where:{id:{[Op.in]:N}}}),console.log("Old members deleted:",N.length)),v}catch(_){throw console.error(`[ERROR] Ingesting search members for ${s}`,_),new Error(_)}}}function pn(e){let{search:t}=e;return r;async function r(o){let{all:n,locale:a,mode:s,variant:i,output:c}=o,l={content_id:[],...i&&i.length?{variant_id:i}:{}};if(s==="content_ids")l.content_id=o.content_ids;else if(s==="ids"){if(n)throw new S(400,"Search by ids doesn't support locale all. Pick one locale.");let m={id:o.ids,...i&&i.length?{variant_id:i}:{}},y=await t.findAll({attributes:["content_id"],where:m,include:[{association:"contentByLocale",where:{locale:a}}]});l.content_id=y.map(h=>h.content_id);}else if(s==="slugs"){let m=o.slugs.map(h=>t.findAll({attributes:["content_id"],where:{slug:h.memberSlug},include:{association:"variant",attributes:["id","name","slug"],required:!0,where:{slug:h.variantSlug}}})),y=await Promise.all(m).then(h=>h.reduce((R,A)=>R.concat(A),[]));l.content_id=y.map(h=>h.content_id);}else if(s==="related"){let m=()=>{if(o.variant_ids?.length)return {variant_id:o.variant_ids.map(R=>R)};if(o.dimension_ids?.length)return {dimension_id:o.dimension_ids.map(R=>R)};if(o.report_ids?.length)return {report_id:o.report_ids.map(R=>R)}},y=()=>o.include_ids?.length?{[Op.in]:o.include_ids.map(R=>R)}:!1,h=await t.findAll({attributes:["content_id"],where:{...m(),content_id:y()||{[Op.notIn]:o.current_ids},visible:!0},order:[Sequelize.fn("RANDOM")],limit:o.related||4});l.content_id=h.map(R=>R.content_id);}else if(s==="whole"){let m={...i&&i.length?{variant_id:i}:{}},y=await t.findAll({attributes:["content_id"],where:m});l.content_id=y.map(h=>h.content_id);}let p={locale:n?{[Op.ne]:null}:a},u=await t.findAll({where:l,include:[{association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name","ordering"]},{association:"variant",attributes:["id","name","slug"]},{association:"image",attributes:["id","author","url","license"],include:[{association:"contentByLocale",where:p}]},{association:"contentByLocale",where:p}]});if(!["related","whole"].includes(s)&&o[s]&&u.length!==o[s].length)throw new S(404,"One or more members were not found.");u.sort((m,y)=>l.content_id.indexOf(m.content_id)-l.content_id.indexOf(y.content_id));let d=u.map(m=>{let y,h={id:m.id,slug:m.slug,visible:m.visible,zvalue:m.zvalue,content_id:m.content_id,report_id:m.report_id,report_name:m.report.name,dimension_id:m.dimension_id,dimension_name:m.dimension.name,variant_id:m.variant_id,variant_name:m.variant.name,variant_slug:m.variant.slug};if(n){let R=m.contentByLocale;h.contentByLocale=R,h.image=m.image,h.image_id=m.image_id,y=h;}else {let R=m.getContent(a),A=m.image?.getContent(a),P=A&&{id:m.image.id,author:m.image.author,url:m.image.url,license:m.image.license,meta:A.meta};y={...h,locale:R.locale,name:R.name,attributes:R.attributes,keywords:R.keywords,image:P||null,image_id:m.image_id};}return c==="lite"&&(delete y.image,delete y.image_id),y});return {meta:o,results:d}}}function dn(e){let{search:t}=e;return r;async function r(o){let n=await t.findOne({where:{content_id:o.member},include:[{association:"image",attributes:[o.size],include:[{association:"contentByLocale"}]}]});return n&&n.image&&n.image[o.size]?n.image[o.size]:Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkkAQAAB8AG7jymN8AAAAASUVORK5CYII=","base64")}}function wi(e,t=!0){if(!e)return "";let r=wt(K(e.toLowerCase()));return (t?Ai(r,{replacement:" ",remove:/[*+~.()'"!:@-]/g,lower:!0,strict:!1,trim:!0}):r).replace(/\s\s+/g," ")}var nt=wi;var sr=[{charset:"latin",locales:["en","es","fr","de","it","pt","ro","nl","sv","da","fi","no","pl","cs","hu","sk","sl"]},{charset:"cjk",locales:["zh","ja","ko"]},{charset:"arabic",locales:["ar","fa","ur","he"]},{charset:"cyrilic",locales:["bg","ru","uk","sr","mk"]}],Ii=sr.reduce((e,t)=>e.concat(t.locales),[]),It=Ye(),{locales:
|
|
55
|
+
`,t.stack||t.message),global.sequelize=void 0;}).then(()=>({...e.models,sequelize:e}));}return global.sequelize};var j=()=>{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}};function K(e){let t={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"," ":""},r=`(?:${Object.keys(t).join("|")})`,o=RegExp(r),n=RegExp(r,"g"),a=String(e).replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();return o.test(a)?a.replace(n,s=>t[s]):a}function wt(e){return typeof e=="string"?String(e).replace(/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});/ig," "):e}function Ti(e){return e?Ai(wt(K(e)),{replacement:"-",remove:/[*+~.()'"!:@]/g,lower:!0,strict:!0,trim:!0}):""}var ar=Ti;var xt=e=>({overrideNames:e&&typeof e.overrideNames<"u"?e.overrideNames:!1,overrideRelevance:e&&typeof e.overrideRelevance<"u"?e.overrideRelevance:!1,regenerateSlugs:e&&typeof e.regenerateSlugs<"u"?e.regenerateSlugs:!1,keepOldMembers:e&&typeof e.keepOldMembers<"u"?e.keepOldMembers:!0,doIngest:e&&typeof e.doIngest<"u"?e.doIngest:!1,overrideAttributes:e&&typeof e.overrideAttributes<"u"?e.overrideAttributes:!1,order:e&&typeof e.order<"u"?e.order:0});var{localeDefault:zr}=j();function un(e){let{search:t,search_content:r}=e;return o;async function o(a){let{id:s,config:i={},settings:c={}}=a,l=i[zr]?zr:Object.keys(i)[0],{overrideNames:p,overrideAttributes:u}=xt(c),{accessor:d,path:m,idKey:y,labelKey:h}=i[zr];if(!m||!y||!h)return;let R=await fr.get(m).catch(b=>({data:[],error:b})),A=Tt(R.data,d),P=[];try{console.log(`Ingesting default items for variant ${a.name} for ${l}`),P=await n(a,l,A);}catch(b){let O=`[ERROR] Ingesting default member items for ${l}`;throw console.error(O,b),new S(500,O)}let I=await t.findAll({where:{variant_id:s}}).then(b=>Object.fromEntries(b.map(O=>[O.id,{content_id:O.content_id,needsUpdate:P.includes(O.content_id)}]))),E=Object.entries(i).map(async([b,O])=>{let{path:D,accessor:F,idKey:Z,labelKey:W,attributes:L=[]}=O;if(!D||!Z||!W)return;let z=await fr.get(D).catch(N=>({data:[],error:N})),H=Tt(z.data,F),v=await r.findAll({where:{id:P,locale:b}}).then(N=>Object.fromEntries(N.map(_=>[_.id,_.toJSON()]))),T=H.filter(N=>N[Z]&&N[Z]!==""&&N[W]&&N[W]!=="").map(N=>{let _=I[N[Z]],w,$=Object.fromEntries(L.map(X=>[X.name,X.type==="constant"?X.value:N[X.value]||""]));return _.needsUpdate&&v[_.content_id]?(w={...v[_.content_id]},p&&(w.name=N[W]),u&&(w.attributes=$)):w={id:_.content_id,locale:b,name:N[W],attributes:$},w});try{return r.bulkCreate(T,{updateOnDuplicate:["name","attributes"]})}catch(N){let _=`[ERROR] Ingesting search content items for ${b}`;throw console.error(_,N),new S(500,_)}});await Promise.all(E);}async function n(a,s,i){let{id:c,dimension_id:l,slug:p}=a,{report_id:u}=a.dimension,{idKey:d,labelKey:m,zValueKey:y}=a.config[s],{overrideNames:h,regenerateSlugs:R,keepOldMembers:A,overrideRelevance:P,overrideAttributes:I}=xt(a.settings),E=t.findAll({attributes:["slug",[fn$1("COUNT",col("variant.id")),"slugCount"]],include:{association:"variant",attributes:[],required:!1,right:!0,where:{dimension_id:l,slug:p,id:{[Op.not]:c}}},group:"search.slug"}).then(_=>Object.fromEntries(_.map(w=>{let $=w.getDataValue("slugCount");return [w.slug,Number.parseInt(`${$}`,10)]}))),b=t.findAll({where:{variant_id:c}}).then(_=>Object.fromEntries(_.map(w=>[w.id,w.toJSON()]))),[O,D]=await Promise.all([E,b]),F=Object.values(D).map(_=>_.slug),Z=[],W=null,L=null;if(y&&y!==""){for(let _ of i)if(typeof _[y]=="number"&&!isNaN(_[y])){let w=_[y];(W===null||w<W)&&(W=w),(L===null||w>L)&&(L=w);}}let z=[],H=[],v=[],T=!1;i.filter(_=>_[d]&&_[d]!==""&&_[m]&&_[m]!=="").forEach(_=>{let w=_[d],$=ar(_[m]);T=!1;let X=parseFloat(Math.random().toPrecision(5));if(y&&y!==""&&W&&L&&_[y]){let x;try{x=parseInt(_[y],10);}catch{x=0;}let Y=L!==null&&W!==null&&L!==W?(x-W)/(L-W):0;X=L===W?1:parseFloat(Y.toPrecision(5));}if(D[w]){if(h||R||P||I){let x=D[w];if((h||I)&&v.push(x.content_id),h&&R){let Y=Object.values(D).filter(M=>M.id!==w).map(M=>M.slug),U=O[$]||Y.includes[$]||Z.includes($);U&&console.log("Duplicate slug!",$,"replaced by",`${$}-${w}`);let V=U?`${$}-${w}`:$;x.slug!==V&&(x.slug=V,Z.push($),T=!0,console.log("UPDATE SLUG",w,$));}y&&y!==""&&P&&x.zvalue!==X&&(x.zvalue=X,T=!0,console.log("UPDATE ZVALUE",w,X)),T&&H.push(x);}}else {console.log("INSERT ID",w);let x=O[$]||F.includes[$]||Z.includes($);x&&console.log("Duplicate slug!",$,"replaced by",`${$}-${w}`);let Y=x?`${$}-${w}`:$;Z.push($),z.push({id:w,slug:Y,variant_id:c,dimension_id:l,report_id:u,zvalue:X});}});let N=[];if(!A){let _=i.map(w=>w[d]);N=Object.keys(D).filter(w=>!_.includes(w));}try{return (z.length>0||H.length>0)&&(await t.bulkCreate([...z,...H],{updateOnDuplicate:["slug","zvalue"]}),console.log("New members ingested:",z.length),console.log("New members updated:",H.length)),N.length>0&&(await t.destroy({where:{id:{[Op.in]:N}}}),console.log("Old members deleted:",N.length)),v}catch(_){throw console.error(`[ERROR] Ingesting search members for ${s}`,_),new Error(_)}}}function pn(e){let{search:t}=e;return r;async function r(o){let{all:n,locale:a,mode:s,variant:i,output:c}=o,l={content_id:[],...i&&i.length?{variant_id:i}:{}};if(s==="content_ids")l.content_id=o.content_ids;else if(s==="ids"){if(n)throw new S(400,"Search by ids doesn't support locale all. Pick one locale.");let m={id:o.ids,...i&&i.length?{variant_id:i}:{}},y=await t.findAll({attributes:["content_id"],where:m,include:[{association:"contentByLocale",where:{locale:a}}]});l.content_id=y.map(h=>h.content_id);}else if(s==="slugs"){let m=o.slugs.map(h=>t.findAll({attributes:["content_id"],where:{slug:h.memberSlug},include:{association:"variant",attributes:["id","name","slug"],required:!0,where:{slug:h.variantSlug}}})),y=await Promise.all(m).then(h=>h.reduce((R,A)=>R.concat(A),[]));l.content_id=y.map(h=>h.content_id);}else if(s==="related"){let m=()=>{if(o.variant_ids?.length)return {variant_id:o.variant_ids.map(R=>R)};if(o.dimension_ids?.length)return {dimension_id:o.dimension_ids.map(R=>R)};if(o.report_ids?.length)return {report_id:o.report_ids.map(R=>R)}},y=()=>o.include_ids?.length?{[Op.in]:o.include_ids.map(R=>R)}:!1,h=await t.findAll({attributes:["content_id"],where:{...m(),content_id:y()||{[Op.notIn]:o.current_ids},visible:!0},order:[Sequelize.fn("RANDOM")],limit:o.related||4});l.content_id=h.map(R=>R.content_id);}else if(s==="whole"){let m={...i&&i.length?{variant_id:i}:{}},y=await t.findAll({attributes:["content_id"],where:m});l.content_id=y.map(h=>h.content_id);}let p={locale:n?{[Op.ne]:null}:a},u=await t.findAll({where:l,include:[{association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name","ordering"]},{association:"variant",attributes:["id","name","slug"]},{association:"image",attributes:["id","author","url","license"],include:[{association:"contentByLocale",where:p}]},{association:"contentByLocale",where:p}]});if(!["related","whole"].includes(s)&&o[s]&&u.length!==o[s].length)throw new S(404,"One or more members were not found.");u.sort((m,y)=>l.content_id.indexOf(m.content_id)-l.content_id.indexOf(y.content_id));let d=u.map(m=>{let y,h={id:m.id,slug:m.slug,visible:m.visible,zvalue:m.zvalue,content_id:m.content_id,report_id:m.report_id,report_name:m.report.name,dimension_id:m.dimension_id,dimension_name:m.dimension.name,variant_id:m.variant_id,variant_name:m.variant.name,variant_slug:m.variant.slug};if(n){let R=m.contentByLocale;h.contentByLocale=R,h.image=m.image,h.image_id=m.image_id,y=h;}else {let R=m.getContent(a),A=m.image?.getContent(a),P=A&&{id:m.image.id,author:m.image.author,url:m.image.url,license:m.image.license,meta:A.meta};y={...h,locale:R.locale,name:R.name,attributes:R.attributes,keywords:R.keywords,image:P||null,image_id:m.image_id};}return c==="lite"&&(delete y.image,delete y.image_id),y});return {meta:o,results:d}}}function dn(e){let{search:t}=e;return r;async function r(o){let n=await t.findOne({where:{content_id:o.member},include:[{association:"image",attributes:[o.size],include:[{association:"contentByLocale"}]}]});return n&&n.image&&n.image[o.size]?n.image[o.size]:Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkkAQAAB8AG7jymN8AAAAASUVORK5CYII=","base64")}}function wi(e,t=!0){if(!e)return "";let r=wt(K(e.toLowerCase()));return (t?Ai(r,{replacement:" ",remove:/[*+~.()'"!:@-]/g,lower:!0,strict:!1,trim:!0}):r).replace(/\s\s+/g," ")}var nt=wi;var sr=[{charset:"latin",locales:["en","es","fr","de","it","pt","ro","nl","sv","da","fi","no","pl","cs","hu","sk","sl"]},{charset:"cjk",locales:["zh","ja","ko"]},{charset:"arabic",locales:["ar","fa","ur","he"]},{charset:"cyrilic",locales:["bg","ru","uk","sr","mk"]}],Ii=sr.reduce((e,t)=>e.concat(t.locales),[]),It=Ye(),{locales:Ci}=j(),Bi=Ci.filter(e=>Ii.includes(e)),qr=!1,Mi=async(e,t=!1)=>{if(t&&(It&&console.log("0\uFE0F\u20E3 CLEARING SEARCH INDEX"),global.flexsearch=void 0,qr=!1),global.flexsearch)return It&&console.log("\u{1F501} RE-UTILIZING SEARCH INDEX"),global.flexsearch;try{qr||(It&&console.log("1\uFE0F\u20E3 INITIALIZING SEARCH INDEX"),qr=!0,global.flexsearch=await Oi(e));}catch(r){throw new Error(`
|
|
56
56
|
Could not initialize FlexSearch engine.
|
|
57
57
|
Details:
|
|
58
58
|
${r.message}
|
|
59
|
-
`)}return global.flexsearch};async function Oi(e){let t=await e.search.findAll({include:[{association:"contentByLocale"}]}),r=Ci.map(async o=>{It&&console.log(`\u{1F3F3}\uFE0F INITIALIZING SEARCH ${o} LOCALE`);let n=sr.find(p=>p.locales.includes(o)),a=n?.charset||"latin",s=a==="latin"?"advanced":"default";n?console.log(` Charset for ${o}: ${a}`):It&&console.error(` Missing charset for ${o}, adding latin as default.`);let i=(await import(`flexsearch/dist/module/lang/${a}/${s}`)).default,c=new xi.Document({language:o,encode:i.encode,tokenize:"reverse",stemmer:{},matcher:{},filter:[],preset:"default",cache:100,resolution:9,context:!1,optimize:!0,worker:!1,document:{id:"content_id",store:!1,index:["id","name","clean","keywords","attributes"]}}),l=0;return t.forEach(p=>{let u=p.contentByLocale.find(d=>d.locale===o);if(u){let d=nt(u.name,a!=="arabic"),m=Array.isArray(u.keywords)?u.keywords.map(h=>nt(h,a!=="arabic")):null,y={id:p.id,content_id:p.content_id,name:u.name,keywords:m,attributes:u.attributes,clean:d};c.add(y),l++;}}),console.log(`\u{1F3F3}\uFE0F Indexed for ${o}: ${l} elements`),[o,c]});return Object.fromEntries(await Promise.all(r))}var De=Mi;var{localeDefault:mn}=j();function at(e){let{search:t,report:r}=e;return o;async function o(n){let a=await De(e),s=[],{query:i,locale:c,preferredLocale:l,limit:p,format:u,visible:d,variant:m,dimension:y,report:h,all:R,noImage:A,includes:P,sort:I,direction:E="ASC",offset:b=0}=n,D=sr.find(x=>x.locales.includes(c))?.charset||"latin";if(i&&i!==""&&a[c]){let x=nt(i,D!=="arabic");if(s=a[c].search({query:x,limit:9999999999}).reduce((U,V)=>U.concat(V.result),[]),s=Zt(s),l&&a[l]){let V=a[l].search(x).reduce((M,de)=>M.concat(de.result),[]);V=Zt(V),s=Zt([...s,...V]);}}let F={...d?{visible:d}:{},...A?{image_id:{[Op.eq]:null}}:{},...m.length?{variant_id:m}:{},...y.length?{dimension_id:y}:{},...h.length?{report_id:h}:{}},Z={locale:R?{[Op.ne]:null}:c},W=p&&!isNaN(p)?p:20,L=[["zvalue","DESC NULLS LAST"]];I&&I!=="name"&&L.unshift([I,E.toUpperCase()]),i&&i!==""&&(F.content_id=s);let z=[{association:"contentByLocale",where:Z}];P&&z.push({association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name"]},{association:"variant",attributes:["id","slug","name"]});let H={...F.visible?{visible:F.visible}:{},...F.noImage?{image_id:F.noImage}:{},...F.content_id?{content_id:F.content_id}:{}};if(!F.report_id&&!F.dimension_id&&!F.variant_id&&d){let Y=(await r.findAll({attributes:["id"],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!0)]}})).map(U=>U.id);Y.length>0&&(F.report_id={[Op.notIn]:Y},H.report_id=F.report_id);}let v=[],[T,N]=await Promise.all([t.findAll({limit:W,offset:b,where:F,include:z,order:L}),t.findAll({attributes:["variant_id",[fn$1("COUNT",col("variant_id")),"members_count"]],where:H,group:["variant_id"]})]),_=N.map(x=>x.toJSON());if(I==="name"){let x=E.toUpperCase()==="ASC"?1:-1;T.sort((Y,U)=>{let V=Y.getContent(mn),M=U.getContent(mn);return V&&M?V.name>M.name?1*x:-1*x:0});}let w=u==="nested"?$:X;return v=T.map(w),u!=="nested"&&v.forEach(x=>{let{name:Y,keywords:U,score:V=.1,zvalue:M}=x;if(Y){let de=nt(Y),Je=V,Yt=i.length/de.length,Po=de.split("").reduce((Ir,wo,xo)=>(i.slice(0,xo),i.charAt(xo)===wo&&(Ir+=wo),Ir),"").length;de===i||U&&U.includes(i)?Je=1e6:de.startsWith(i)?Je*=20*Yt:Po&&(Je*=Po*Yt),x.zvalue=Je*2+M;}}),{meta:{origin:"flexsearch",...Object.fromEntries(Object.entries(n).map(x=>[x[0],K(x[1])])),variantCount:_.reduce((x,Y)=>(x[Y.variant_id]=parseInt(Y.members_count,10),x),{})},results:v};function $(x){return x.toJSON()}function X(x){let Y=x.getContent(c);return {...x.toJSON(),locale:Y.locale,name:Y.name,attributes:Y.attributes,keywords:Y.keywords}}}}function fn(e){let{image:t,image_content:r,search:o,search_content:n}=e;return a;async function a(s){let{content_id:i,contentByLocale:c,image:l,image_id:p}=s,u={where:{content_id:i}},d=await o.findOne(u);if(await o.update(s,{where:{content_id:i}}),c){for(let y=0;y<c.length;y++){let h=c[y];await n.update({name:h.name,keywords:h.keywords},{where:{id:h.id,locale:h.locale}});}u={...u,...{include:[{association:"contentByLocale",separate:!0}]}};}if(l){if(l.id&&(await t.update({...l},{where:{id:l.id}}),l.contentByLocale))for(let m=0;m<l.contentByLocale.length;m++){let y=l.contentByLocale[m];await r.update({meta:y.meta},{where:{id:y.id,locale:y.locale}});}}else !p&&d.image_id&&(await e.search.findAll({where:{image_id:d.image_id}})).length===0&&await t.destroy({where:{id:d.image_id}});return o.findOne(u)}}function gn(e){return {ingestMembers:un(e),readMember:pn(e),searchMember:at(e),updateMember:fn(e),readMemberImage:dn(e)}}var Ue={include:[{association:"contentByLocale",separate:!0},{association:"inputs",include:[{association:"contentByLocale",separate:!0}]},{association:"consumers",include:[{association:"contentByLocale",separate:!0}]}]},Bt=e=>({include:[{association:"variants",separate:!0,attributes:{include:[[fn$1("COUNT",col("members.id")),"members_count"]]},include:[{model:e,as:"members",attributes:[]}],group:["variant.id"]}],order:[["ordering","ASC"]]}),Ct={include:[{association:"blocks",separate:!0,...Ue}]},cr=e=>({include:[{association:"dimensions",separate:!0,...Bt(e)},{association:"sections",separate:!0,...Ct}]});var ge=[{association:"image",attributes:{exclude:["splash"]},include:[{association:"contentByLocale"}]},{association:"contentByLocale"}];function yn(e){let{block:t,block_content:r,block_input:o}=e;return {createBlock:n,readBlock:s,updateBlock:i,deleteBlock:l,createBulkBlock:a,updateBulkBlock:c};async function n(p){let{locales:u,...d}=p;return (await t.create({...d,consumers:[],inputs:[],contentByLocale:u.map(y=>({locale:y}))},{include:Ue.include})).toJSON()}async function a(p){let u=p.map(m=>{let{locales:y,...h}=m;return {...h,consumers:[],inputs:[],contentByLocale:y.map(A=>({locale:A}))}});return (await t.bulkCreate(u,{include:Ue.include})).map(m=>m.toJSON())}async function s({id:p,include:u}={}){let d=p==null?[]:[].concat(p),m=await t.findAll({where:d.length>0?{id:d}:void 0,include:u?Ue.include:void 0});if(d.length===0||m.length===d.length)return m.map(R=>R.toJSON());let y=m.map(R=>R.id),h=d.filter(R=>!y.includes(R));throw new S(404,`Block(id=[${h}]) does not exist.`)}async function i(p){let{id:u,contentByLocale:d,consumers:m,inputs:y,inputAction:h,...R}=p,A=await t.findByPk(u,{include:Ue.include,rejectOnEmpty:!0});if(A.set(R),d){let P=Object.values(d);await r.bulkCreate(P,{updateOnDuplicate:["content"]});}return h&&(h.operation==="create"?await o.create(h.input):await o.destroy({where:h.input})),await A.save(),await A.reload(),A.toJSON()}async function c(p){let u=p.map(y=>{let{id:h,contentByLocale:R,consumers:A,inputs:P,inputAction:I,...E}=y;return {id:h,contentByLocale:R,inputAction:I,...E}}),d=await t.findAll({where:{id:{[Op.or]:u.map(y=>y.id)}},include:Ue.include}),m=[];for(let y of d){let h=u.filter(R=>R.id===y.id);for(let R=0;R<h.length;R++){let A=h[R],{id:P,contentByLocale:I,inputAction:E,...b}=A;if(E&&(E.operation==="create"?await o.create(E.input):await o.destroy({where:E.input})),I){let O=Object.values(I);await r.bulkCreate(O,{updateOnDuplicate:["content"]});}y.set(b),await y.save(),await y.reload(),m.push(y.toJSON());}}return m}async function l(p){let u=await t.findByPk(p,{rejectOnEmpty:!0});return await u.destroy(),{id:p,parentType:"section",parentId:u.section_id}}}function hn(e){let{dimension:t,search:r}=e;return {createDimension:o,readDimension:n,updateDimension:a,deleteDimension:s};async function o(i){return (await t.create({name:i.name,report_id:i.report_id,variants:[]},{include:Bt(r).include})).toJSON()}async function n({id:i,include:c}={}){let l=i==null?[]:[].concat(i),p=await t.findAll({where:l.length>0?{id:l}:void 0,include:c?Bt(r).include:void 0});if(l.length===0||p.length===l.length)return p.map(m=>m.toJSON());let u=p.map(m=>m.id),d=l.filter(m=>!u.includes(m));throw new S(404,`Dimension(id=[${d}]) does not exist.`)}async function a(i){let{id:c,variants:l,...p}=i,u=await t.findByPk(c,{include:Bt(r).include,rejectOnEmpty:!1});if(!u)throw new S(404,`Dimension(id=${c}) does not exist.`);return u.set(p),await u.save(),u.toJSON()}async function s(i){let c=await t.findByPk(i,{rejectOnEmpty:!1});return await c.destroy(),{id:i,parentType:"report",parentId:c.report_id}}}function Rn(e){let{formatter:t}=e;return {createFormatter:r,readFormatter:o,updateFormatter:n,deleteFormatter:a};async function r(s){return (await t.create(s)).toJSON()}async function o({id:s}={}){let i=s==null?[]:[].concat(s),c=await t.findAll({where:i.length>0?{id:i}:void 0});if(i.length===0||c.length===i.length)return c.map(u=>u.toJSON());let l=c.map(u=>u.id),p=i.filter(u=>!l.includes(u));throw new S(404,`Formatter(id=[${p}]) does not exist.`)}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:!0});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:!0})).destroy(),{id:s}}}var{locales:qi}=j();function bn(e){let{report:t,search:r}=e;return {createReport:o,readReport:n,updateReport:a,deleteReport:s};async function o(i){return (await t.create({name:i.name,sections:[],dimensions:[]},{include:cr(r).include})).toJSON()}async function n({id:i,include:c,locales:l=qi}={}){let u=(i==null?[]:[].concat(i)).reduce((h,R)=>(h.includes(R)||h.push(R),h),[]),d=await t.findAll({where:u.length>0?{id:u}:void 0,include:c?cr(r).include?.filter(h=>typeof c=="string"?h.association===c:c):void 0});if(u.length===0||d.length===u.length)return d.map(h=>{let R=h.toJSON();return {...R,sections:R.sections.map(A=>({...A,blocks:A.blocks.map(P=>({...P,contentByLocale:Object.keys(P.contentByLocale).reduce((I,E)=>({...I,...[...l,"logic"].includes(E)?{[E]:P.contentByLocale[E]}:{}}),{})}))}))}});let m=d.map(h=>h.id),y=u.filter(h=>!m.includes(h));throw new S(404,`Report(id=${y}) does not exist.`)}async function a(i){let{id:c,dimensions:l,sections:p,...u}=i,d=await t.findByPk(c,{include:cr(r).include,rejectOnEmpty:!1});if(!d)throw new S(404,`Report(id=${c}) does not exist.`);return d.set(u),await d.save(),await d.reload(),d.toJSON()}async function s(i){return await(await t.findByPk(i,{rejectOnEmpty:!1})).destroy(),{id:i}}}function Sn(e){let{section:t}=e;return {createSection:r,readSection:o,updateSection:n,deleteSection:a};async function r(s){return (await t.create({ordering:s.ordering,report_id:s.report_id,blocks:[]},{include:Ct.include})).toJSON()}async function o({id:s,include:i}={}){let c=s==null?[]:[].concat(s),l=await t.findAll({where:c.length>0?{id:c}:void 0,include:i?Ct.include:void 0});if(c.length===0||l.length===c.length)return l.map(d=>d.toJSON());let p=l.map(d=>d.id),u=c.filter(d=>!p.includes(d));throw new S(404,`Section(id=${u}) does not exist.`)}async function n(s){let{id:i,blocks:c,...l}=s,p=await t.findByPk(i,{include:Ct.include,rejectOnEmpty:!1});return p.set(l),await p.save(),await p.reload(),p.toJSON()}async function a(s){let i=await t.findByPk(s,{rejectOnEmpty:!0});return await i.destroy(),{id:s,parentType:"report",parentId:i.report_id}}}function Tn(e,t){let{variant:r,search:o}=e;return {createVariant:n,readVariant:a,updateVariant:s,deleteVariant:i,validateVariantSlug:c};async function n(l){let{dimension_id:p,name:u,slug:d}=l,m=await c({dimension:p,slug:d});return (await r.create({dimension_id:p,name:u,slug:m.valid?m.candidate:m.suggestion})).toJSON()}async function a({id:l}={}){let p=l==null?[]:[].concat(l),u=await r.findAll({where:p.length>0?{id:p}:void 0,attributes:{include:[[fn$1("COUNT",col("members.id")),"members_count"]]},include:[{model:o,attributes:[],as:"members"}],group:["variant.id"]});if(p.length===0||u.length===p.length)return u.map(y=>y.toJSON());let d=u.map(y=>y.id),m=p.filter(y=>!d.includes(y));throw new S(404,`Variant(id=${m}) does not exist.`)}async function s(l){let{id:p,...u}=l,d=await r.findByPk(p,{include:[{association:"dimension"}],rejectOnEmpty:!0});u.settings=xt(u.settings);let m=u.settings.doIngest;return u.settings.doIngest=!1,await d.update(u),m&&(await t.ingestMembers(d),await De(e,!0)),await d.reload(),d.toJSON()}async function i(l){let p=await r.findByPk(l,{rejectOnEmpty:!0});return await p.destroy(),De(e,!0),{id:l,parentType:"dimension",parentId:p.dimension_id}}async function c({dimension:l,slug:p}){let u=await r.findAll({attributes:["slug",[fn$1("COUNT",col("id")),"slugCount"]],where:{dimension_id:{[Op.ne]:l}},group:"slug"}).then(h=>Object.fromEntries(h.map(R=>{let A=R.getDataValue("slugCount");return [R.slug,Number.parseInt(`${A}`,10)]}))),d=p,m=1,y=!0;for(;u[d];)y=!1,d=`${p}-${m}`,m++;return {candidate:p,dimension_id:l,suggestion:d,valid:y}}}function _n(e){let t={...yn(e),...hn(e),...Rn(e),...gn(e),...bn(e),...Sn(e)},r={...t,...Tn(e,t)};return {createFormatter:k(r.createFormatter),deleteFormatter:k(r.deleteFormatter),readFormatter:k(r.readFormatter),updateFormatter:k(r.updateFormatter),createReport:k(r.createReport),deleteReport:k(r.deleteReport),readReport:k(r.readReport),updateReport:k(r.updateReport),createDimension:k(r.createDimension),deleteDimension:k(r.deleteDimension),readDimension:k(r.readDimension),updateDimension:k(r.updateDimension),createVariant:k(r.createVariant),readVariant:k(r.readVariant),updateVariant:k(r.updateVariant),deleteVariant:k(r.deleteVariant),validateVariantSlug:k(r.validateVariantSlug),createSection:k(r.createSection),readSection:k(r.readSection),updateSection:k(r.updateSection),deleteSection:k(r.deleteSection),createBlock:k(r.createBlock),deleteBlock:k(r.deleteBlock),readBlock:k(r.readBlock),updateBlock:k(r.updateBlock),createBulkBlock:k(r.createBulkBlock),updateBulkBlock:k(r.updateBulkBlock),readMember:k(r.readMember),searchMember:k(r.searchMember),updateMember:k(r.updateMember),readMemberImage:k(r.readMemberImage)}}var vn=e=>{throw console.error("/methods/helpers/uploadImage.ts:",e),new Error(e.message)},ji=Number(process.env.NEXT_PUBLIC_IMAGE_SPLASH_WIDTH)||1400,Hi=Number(process.env.NEXT_PUBLIC_IMAGE_THUMB_WIDTH)||400,Wi=async(e,t,r)=>{let o=[{type:"splash",res:ji},{type:"thumb",res:Hi}];for(let n of o){let a=await Ki(r).resize(n.res).toFormat("webp").webp({lossless:!0}).toBuffer().catch(vn);await e.image.update({[n.type]:a},{where:{id:t}}).catch(vn);}},Ee=Wi;var kn="|||";var Pn="SECTION_ALLOWED";var wn=["4","5","7","8","9","10"],Zi=wn.join(),{locales:Xi}=j(),Ae;if(process.env.FLICKR_API_KEY)try{Ae=new Qi(process.env.FLICKR_API_KEY);}catch(e){throw console.error("Flickr ERROR:",e),new Error(e.message)}async function xn(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Ae)throw console.log("Flickr is not initialized. Check the credentials"),new Error("Flickr is not initialized. Check the credentials");let o=r.prompt,a=(await Ae.photos.search({text:o,license:Zi,sort:"relevance",per_page:24,page:r.page,content_types:"0",orientation:"landscape"}).then(l=>l.body)).photos.photo,s=a.reduce((l,p)=>l.concat(Ae.photos.getSizes({photo_id:p.id})),[]),c=(await Promise.all(s).then(l=>l)).reduce((l,p,u)=>{let d=p.body.sizes.size.find(m=>m.label==="Small 320");return d&&l.push({id:a[u].id,source:d.source}),l},[]);return {meta:{prompt:K(r.prompt),page:K(`${r.page}`)},results:c}}catch(r){throw console.log(r),new Error("Error in search flickr provider")}}async function In(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:K(`${r}`)||"",id:K(`${o}`)||""},s=`https://flic.kr/p/${Yi.int_to_base58(o)}`;if(!Ae)throw new Error("Flickr API Key not configured");let i=await Ae.photos.getInfo({photo_id:o}).then(l=>l.body),c;if(i)if(wn.includes(i.photo.license)){let l=await e.search.findOne({where:{content_id:r}}),p=await e.image.findOne({where:{url:s}});if(l){if(p)await e.search.update({image_id:p.id},{where:{content_id:r}});else {let d=await Ae.photos.getSizes({photo_id:o}).then(E=>E.body),m=d.sizes.size.find(E=>parseInt(E.width,10)>=1600);if(m||(m=d.sizes.size.find(E=>parseInt(E.width,10)>=1e3)),m||(m=d.sizes.size.find(E=>parseInt(E.width,10)>=500)),!m||!m.source)throw new Error("Flickr Source Error, try another image.");let y=await fr.get(m.source,{responseType:"arraybuffer"}).then(E=>E.data),R=(await Ae.photos.licenses.getInfo().then(E=>E.body.licenses.license)).find(E=>E.id===parseInt(i.photo.license,10)),A={url:s,author:i.photo.owner.realname||i.photo.owner.username,license:R?`${R.name}: ${R.url}`:""},P=await e.image.create(A);await e.image_content.destroy({where:{id:P.id}});let I=Xi.map(E=>({id:P.id,locale:E,meta:i.photo.title._content}));await e.image_content.bulkCreate(I),await e.search.update({image_id:P.id},{where:{content_id:r}}),await Ee(e,P.id,y);}let u=await e.search.findOne({where:{content_id:r},include:ge});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Bad License");else throw new Error("Malformed URL");return {meta:{...n},results:c}}catch(r){throw console.log(r),new Error("Error in save flickr provider")}}function C(e,t,r,o){return {method:e,path:t,handler:r,roleRequired:o}}function Q(e){let t=Number.parseInt(`${e||""}`,10);if(Number.isNaN(t)||!Number.isFinite(t))throw new S(400,`Invalid numeric parameter: ${e}`);return t}function q(e){return e==null||e===""?[]:Array.isArray(e)?e:e.toString().split(",")}var{localeDefault:Te}=j();function Bn(e){let{readMember:t,searchMember:r,updateMember:o,readMemberImage:n}=e;return [C("GET","read/members",async a=>{let s=ec(a.query),i=s[s.mode]||[],c=s.mode==="whole";if(!c&&i.length===0)throw new S(400,`The request is missing the '${s.mode}' parameter.`);if(!c&&i.length>20&&!s.variant)throw new S(400,`You can look for up to 20 '${s.mode}' in a single request.`);return t(s)}),C("GET","search/members",a=>{let s=Mt(a.query);return r(s)}),C("POST","update/member",a=>{let{body:s}=a;return o(s)},[G.EDITOR]),C("GET","member/image",a=>{let s=q(a.query.size)[0];return n({member:Q(a.query.member),size:s&&s==="splash"?"splash":"thumb"})})]}function ec(e){let t=q(e.locale)[0]||Te||"en",r=t==="all"||lr(e.all),o=q(e.mode)[0],a=(q(e.output)[0]||"full")==="lite"?"lite":"full",s=parseInt(q(e.related)[0],10)||5,i=q(e.variant).map(Q);if(i.length===0&&(i=q(e["variant[]"]).map(Q)),o==="ids")return {all:r,mode:o,variant:i,output:a,locale:r?Te:K(t),ids:q(e.ids||e["ids[]"])};if(o==="content_ids")return {all:r,mode:o,variant:i,output:a,locale:r?Te:K(t),content_ids:q(e.content_ids||e["content_ids[]"]).map(Q)};if(o==="slugs")return {all:r,mode:o,variant:i,output:a,locale:r?Te:K(t),slugs:q(e.slugs||e["slugs[]"]).map(c=>{let[l,p]=c.split("/");return {variantSlug:l,memberSlug:p}})};if(o==="related")return {all:r,mode:o,locale:r?Te:K(t),related:s,current_ids:q(e.current_ids||e["current_ids[]"]).map(Q),include_ids:q(e.include_ids||e["include_ids[]"]).map(Q),report_ids:q(e.report_ids||e["report_ids[]"]).map(Q),dimension_ids:q(e.dimension_ids||e["dimension_ids[]"]).map(Q),variant_ids:q(e.variant_ids||e["variant_ids[]"]).map(Q),output:a};if(o==="whole")return {all:r,mode:o,variant:i,locale:r?Te:K(t),output:a};throw new S(400,`Invalid mode: '${o}'`)}function Mt(e){let t=q(e.locale)[0]||Te||"en",r=t==="all",o=q(e.format)[0],n=o?o==="nested":r,a=q(e.variant).map(Q);a.length===0&&(a=q(e["variant[]"]).map(Q));let s=q(e.dimension).map(Q);s.length===0&&(s=q(e["dimension[]"]).map(Q));let i=q(e.report).map(Q);return i.length===0&&(i=q(e["report[]"]).map(Q)),{query:q(e.query||e.q)[0]||"",locale:r?Te:t,preferredLocale:q(e.preferredLocale)[0],limit:q(e.limit).map(Q)[0]??5,format:n?"nested":"plain",includes:lr(e.includes,{default:!0}),visible:lr(e.visible,{default:!0}),noImage:lr(e.noImage,{default:!1}),variant:a,dimension:s,report:i,all:r,sort:q(e.sort)[0],direction:q(e.direction)[0],offset:Number(e.offset||0)}}async function Cn(e,t){let r=at(e),o=Mt({query:t.prompt,limit:"50",visible:"false"}),a=(await r(o)).results.filter(s=>s.image_id).map(s=>({id:s.image_id,source:`/api/cms/member/image?member=${s.content_id}&size=thumb`}));return {meta:{prompt:K(o.query)},results:a}}async function Mn(e,t){let{search:r}=e,{content_id:o,image_id:n}=t;await r.update({image_id:n},{where:{content_id:o}});let a=await r.findOne({where:{content_id:o},include:ge}).then(s=>s?{...s.toJSON(),image:{...s.image.toJSON(),thumb:!!s.image.thumb}}:null);return {meta:{id:n,content_id:o},results:a}}var{locales:oc}=j(),Ot;if(process.env.UNSPLASH_API_KEY)try{Ot=createApi({accessKey:process.env.UNSPLASH_API_KEY});}catch(e){throw console.error("Unsplash error:",e),new Error(e.message)}async function On(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Ot)throw new Error("Unsplash API Key not configured");let o=r.prompt,a=(await Ot.search.getPhotos({query:o,perPage:24,page:r.page,orientation:"landscape"}).then(s=>s.response.results)).map(s=>({id:s.id,source:s.urls.thumb}));return {meta:{prompt:K(r.prompt),page:K(`${r.page}`)},results:a}}catch(r){throw console.log(r),new Error("Error in search unsplash provider")}}async function Ln(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:K(`${r}`)||"",id:K(`${o}`)||""};if(!Ot)throw console.log("Unsplash is not initialized. Check the credentials"),new Error("Unsplash is not initialized. Check the credentials");let a=await Ot.photos.get({photoId:o}).then(i=>i.response),s;if(a){let i=await e.search.findOne({where:{content_id:r}}),c=a.links.html,l=await e.image.findOne({where:{url:c}});if(i){if(l)await e.search.update({image_id:l.id},{where:{content_id:r}});else {let u=await fr.get(a.urls.full,{responseType:"arraybuffer"}).then(h=>h.data),d={url:c,author:a.user.name||a.user.username,license:"Free Unsplash license: https://unsplash.com/license"},m=await e.image.create(d);await e.image_content.destroy({where:{id:m.id}});let y=oc.map(h=>({id:m.id,locale:h,meta:a.description||a.alt_description}));await e.image_content.bulkCreate(y),await e.search.update({image_id:m.id},{where:{content_id:r}}),await Ee(e,m.id,u);}let p=await e.search.findOne({where:{content_id:r},include:ge});p&&p.image&&(p.image.thumb=!!p.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.log(r),new Error("Error in save unsplash provider")}}var{locales:ac}=j();async function Nn(e,t){try{let{content_id:r,image_source:o,files:n}=t,a={content_id:K(`${r}`)||""};if(await e.search.findOne({where:{content_id:r}})&&n){let c=await nc.readFileSync(n.file.filepath),l={url:o,author:"",license:""},p=await e.image.create(l);await e.image_content.destroy({where:{id:p.id}});let u=ac.map(d=>({id:p.id,locale:d,meta:""}));await e.image_content.bulkCreate(u),await e.search.update({image_id:p.id},{where:{content_id:r}}),await Ee(e,p.id,c);}let i=await e.search.findOne({where:{content_id:r},include:ge});return i&&i.image&&(i.image.thumb=!!i.image.thumb),{meta:{...a},results:i}}catch(r){throw console.log(r),new Error("Error in save upload provider")}}var{locales:sc}=j();var Dn=async e=>{let t={"x-api-key":process.env.ADOBE_STOCK_API_KEY||"EMPTY_ADOBE_KEY","X-Product":"BespokeApp/0.1"};return e&&(t.Authorization=`Bearer ${e}`),t};var Lt;if(process.env.ADOBE_STOCK_API_KEY)try{Lt={search:async(e,t)=>await fr.get("https://stock.adobe.io/Rest/Media/1/Search/Files",{headers:await Dn(!1),params:{locale:"en_US","search_parameters[limit]":24,"search_parameters[offset]":t*24,"search_parameters[words]":e,"search_parameters[filters][content_type:photo]":"1","search_parameters[filters][content_type:image]":"1","search_parameters[filters][orientation]":"horizontal",result_columns:["id","stock_id","thumbnail_url","is_licensed"]}}).then(r=>r.data.files),get:async e=>await fr.get("https://stock.adobe.io/Rest/Media/1/Files",{headers:await Dn(!1),params:{locale:"en_US",ids:e,result_columns:["id","thumbnail_url","creator_name","title","thumbnail_1000_url","details_url","category"]}}).then(t=>t.data.files[0])};}catch{}async function Un(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Lt)throw new Error("Adobe API Key not configured");let n=(await Lt.search(r.prompt,r.page)).map(a=>({id:a.id,source:a.thumbnail_url}));return {meta:{prompt:K(r.prompt),page:K(`${r.page}`)},results:n}}catch(r){throw console.log(r),new Error("Error in search Adobe provider")}}async function Fn(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:K(`${r}`)||"",id:K(`${o}`)||""};if(!Lt)throw console.log("Adobe is not initialized. Check the credentials"),new Error("Adobe is not initialized. Check the credentials");let a=await Lt.get(o),s;if(a){let i=await e.search.findOne({where:{content_id:r}}),c=a.details_url,l=await e.image.findOne({where:{url:c}});if(i){if(l)await e.search.update({image_id:l.id},{where:{content_id:r}});else {let u=await fr.get(a.thumbnail_1000_url,{responseType:"arraybuffer"}).then(h=>h.data),d={url:c,author:a.creator_name,license:"ADOBE, TO-DO"},m=await e.image.create(d);await e.image_content.destroy({where:{id:m.id}});let y=sc.map(h=>({id:m.id,locale:h,meta:a.title||a.description}));await e.image_content.bulkCreate(y),await e.search.update({image_id:m.id},{where:{content_id:r}}),await Ee(e,m.id,u);}let p=await e.search.findOne({where:{content_id:r},include:ge});p&&p.image&&(p.image.thumb=!!p.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.log(r),new Error("Error in save adobe provider")}}var ic={local:Mn,flickr:In,unsplash:Ln,upload:Nn,adobe:Fn};function it(e,t){let r=ic[t];if(!r)throw new S(500,`Wrong provider dbImageSaveFactory.ts: ${t}`);return k(o=>r(e,o))}var cc={local:Cn,flickr:xn,unsplash:On,adobe:Un};function Nt(e,t){let r=cc[t];if(!r)throw new S(500,`Wrong provider dbImageSearchFactory.ts: ${t}`);return k(o=>r(e,o))}var gc=e=>(e.dimensions&&e.dimensions.forEach(t=>{t.variants&&t.variants.forEach(r=>{r.members_count&&(r.members_count=parseInt(r.members_count,10));});}),e);function pr(e){let{report:t,search:r}=e;return o;async function o(n){return {data:(await t.findAll({attributes:["id","name",[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"],[literal("COALESCE(NULLIF(settings ->> 'hide', '')::BOOL, false)"),"hide"]],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!1),literal("NOT (settings::jsonb ? 'hide')")]},order:[["ordering","ASC"]],include:[{attributes:["id","name","ordering"],association:"dimensions",separate:!0,order:[["ordering","ASC"]],include:[{attributes:["id","name","slug",[fn$1("COUNT",col("members.id")),"members_count"],[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"]],include:[{model:r,attributes:[],as:"members"}],association:"variants",separate:!0,group:["variant.id"],order:[["ordering","ASC"]]}]}]})).map(s=>({...gc(s.toJSON()),mode:s.dimensions.length===1?Se.UNILATERAL:Se.MULTILATERAL}))}}}function Vn(e){return async()=>(await De(e,!0),{error:!1})}var{locales:yc,localeDefault:hc}=j(),Rc=(e,t)=>{if(!e)return [];let r=[];return t.forEach(o=>{let n=e.filter(a=>a.metadata.report.id===o.id);if(n.length>0)if(o.mode===Se.UNILATERAL){let a=o.dimensions[0];a.variants.forEach(s=>{let i=n.filter(c=>c.metadata.dimension.id===a.id&&c.metadata.variant.id===s.id);i.length>0&&(r=r.concat(i.map(c=>({path:`/${s.slug}/${c.slug}`,name:c.name,confidence:c.confidence,report:{id:o.id,name:o.name,mode:o.mode},members:[c],id:`r-${o.id}-${[c].map(l=>`${l.id}`).join("-")}`}))));});}else o.mode;}),r.sort((o,n)=>o.confidence<n.confidence?1:-1)},bc=(e,t)=>{if(!e)return [];let r,o,n;return e.map(a=>(r={...t.find(s=>s.id===a.report_id)},o={...r.dimensions.find(s=>s.id===a.dimension_id)},n={...o.variants.find(s=>s.id===a.variant_id)},delete r.dimensions,delete o.variants,{name:a.name,confidence:a.zvalue,metadata:{id:a.id,slug:a.slug,report:r,dimension:o,variant:n},id:a.content_id,slug:a.slug}))};function zn(e){let t=at(e),r=pr(e);return o;async function o(n){let a=n.format||"results",s=yc.includes(n.locale)?n.locale:hc,i=await t({...n,format:"plain",locale:K(s),visible:!0}),c=i.results?i.results:[],p=(await r()).data,u=bc(c,p);return {meta:{...i.meta,format:a},results:Rc(u,p)}}}function $n(){return async e=>{let t=typeof e=="string"?{url:e}:e;try{let r=await fr.request(t);return {ok:!0,status:r.status,data:r.data}}catch(r){throw new S(r.response?.status||500,r.message)}}}function qn(e){return async t=>{try{let{variantPaths:r}=t,o=[];if(r)for(let n=0;n<r.length;n++){let a=r[n];(await e.search.findAll({attributes:["slug"],where:{variant_id:a.variantId}})).forEach(i=>{o.push(`/${a.prefix}/${a.variantSlug}/${i.slug}`);});}return {...t,paths:o,revalidated:0,samples:[]}}catch(r){throw new S(r.response?.status||500,r.message)}}}function Gn(){return async e=>{try{let{target:t}=e;return {target:t}}catch(t){throw new S(t.response?.status||500,t.message)}}}function Dt(e,t){let r=[],o=a=>Object.values(t).reduce((i,c)=>("inputs"in c&&c.inputs.includes(a)&&(i.push(c.id),i=i.concat(o(c.id))),i),[]);e.forEach(a=>{r=r.concat(o(a));});let n=[];return r.forEach(a=>{n.includes(a)||n.push(a);}),n}function Ac(e,t){return e.some(r=>t.includes(`role.${r}`))}function Kn(e){let{report:t}=e;return r;async function r(o){let n=await t.findByPk(o.report_id,{include:{association:"sections",separate:!0,where:{id:o.section_id},include:[{association:"blocks",separate:!0,include:[{association:"contentByLocale",separate:!0,where:{locale:{[Op.or]:[o.locale,"logic"]}}},{association:"inputs"},{association:"consumers"}]}]}}).then(s=>s&&s.sections&&Array.isArray(s.sections)?s.sections.reduce((i,c)=>{let l=c.blocks.map(p=>{let u=p.toJSON();return u.inputs=u.inputs.map(d=>d.id),u.consumers=u.consumers.map(d=>d.id),u});return i.concat(l)},[]):[]),a=n.filter(s=>s.settings&&s.settings.access&&Array.isArray(s.settings.access)&&Array.isArray(o.roles)&&(s.settings.access.includes("private")||Ac(o.roles,s.settings.access))).map(s=>s.id);return a=a.concat(Dt(a,n)),{params:{...o},data:n.filter(s=>a.includes(s.id))}}}var vc=Object.keys(Kr).filter(e=>e.indexOf("Icon")===0);async function jn(){return {meta:{provider:"tabler"},results:vc}}async function Hn(e){let t=Kr[e.name]?Kr[e.name]:()=>"";return renderToString(createElement(t))}var kc={tabler:jn};function Wn(e){let t=kc[e];if(!t)throw new S(500,`Wrong provider dbListIconsFactory.ts: ${e}`);return k(()=>t())}var Pc={tabler:Hn};function Jn(e){return k(t=>{let r=Pc[e];if(!r)throw new S(500,`Wrong provider dbReadIconFactory.ts: ${t.provider}`);return r({name:t.name,provider:e})})}function Ut(e,t,r){return Ne().then(o=>{Object.assign(r,ct(o));})}function ct(e,t){let r={},o=ve(t||{providers:[]});return t&&o.actions&&o.source==="custom"?(r.searchRole=k(o.actions.searchRole()),r.searchUser=k(o.actions.searchUser()),r.readUser=k(o.actions.readUser()),r.updateUser=k(o.actions.updateUser())):o.source==="auth0"&&(r.searchRole=k(Oo()),r.searchUser=k(Lo()),r.readUser=k(No()),r.updateUser=k(Do())),{..._n(e),searchReport:k(zn(e)),readMetadata:k(pr(e)),regenerateSearch:k(Vn(e)),imageFlickrSearch:Nt(e,"flickr"),imageLocalSearch:Nt(e,"local"),imageUnsplashSearch:Nt(e,"unsplash"),imageAdobeSearch:Nt(e,"adobe"),imageFlickrSave:it(e,"flickr"),imageLocalSave:it(e,"local"),imageUnsplashSave:it(e,"unsplash"),imageUploadSave:it(e,"upload"),imageAdobeSave:it(e,"adobe"),urlProxy:$n(),searchRole:r.searchRole,searchUser:r.searchUser,readUser:r.readUser,updateUser:r.updateUser,updateMyData:k(Uo()),revalidateReport:k(qn(e)),revalidateUrl:k(Gn()),readPrivateBlocks:k(Kn(e)),listTablerIcons:Wn("tabler"),readTablerIcon:Jn("tabler")}}async function jr(e){try{let t=new wc.IncomingForm,r=await new Promise((o,n)=>{t.parse(e,(a,s,i)=>{if(a){console.log("Error in formidable parse function inside internal parseBody.ts",a),n(a);return}o({fields:s,files:i});});});return {...r.fields,files:r.files}}catch(t){return {error:t}}}function Fe(e,t){let r=ae(e,"create",t),o=ae(e,"read",t),n=ae(e,"update",t),a=ae(e,"delete",t),s=ae(e,"updateBulk",t),i=ae(e,"createBulk",t);return [C("POST",`create/bulk/${t}`,c=>{let{body:l}=c,{files:p,...u}=l,d=Object.keys(u).map(m=>u[m]);return i(d)},[G.EDITOR]),C("POST",`create/${t}`,c=>{let{body:l}=c;return r(l)},[G.EDITOR]),C("GET",`read/${t}`,c=>{let l=c.query,p=q(l.id).map(Q);return o({id:p,include:lr(l.include)})}),C("POST",`update/${t}`,c=>{let{body:l}=c;return n(l)},[G.EDITOR]),C("POST",`update/bulk/${t}`,c=>{let{body:l}=c,{files:p,...u}=l,d=Object.keys(u).map(m=>u[m]);return s(d)},[G.EDITOR]),C("DELETE",`delete/${t}`,c=>{let l=Q(c.query.id);return a(l)},[G.EDITOR])]}function Yn(e){let{validateVariantSlug:t}=e;return [...Fe(e,"variant"),C("GET","validate/variant",r=>{let o=r.query,n=Q(o.dimension);return t({dimension:n,slug:ar(o.slug)})},[G.EDITOR])]}function lt(e,t){let r=`image${fe(t)}Save`,o=e[r];return C("POST",`images/save/${t}`,n=>{let a=n.body;if(!a.content_id)throw new S(400,"Missing 'content_id' parameter.");if(!a.image_id)throw new S(400,"Missing 'image_id' parameter.");return o(a)},[G.EDITOR])}function Ft(e,t){let r=`image${fe(t)}Search`,o=e[r];return C("GET",`images/search/${t}`,async n=>{let a=q(n.query.prompt)[0];if(!a)throw new S(400,"Empty 'prompt' param.");return o({prompt:a,page:Q(n.query.page)})},[G.EDITOR])}function Qn(e){let{readMetadata:t}=e;return C("GET","read/metadata",()=>t({}))}function Zn(e){let{regenerateSearch:t}=e;return C("POST","search/regenerate",()=>t(void 0),[G.EDITOR])}function Xn(e){let{searchReport:t}=e;return C("GET","search/reports",r=>{let o=Ic(r.query);return t(o)})}function Ic(e){return {...Mt(e),format:q(e.format)[0]}}function ea(e){let{urlProxy:t}=e;return C("GET","url/proxy",r=>{let{url:o,method:n="GET"}=r.query;if(!o)throw new S(400,"Missing URL parameter");return t({url:Array.isArray(o)?o.join(","):o,method:q(n)[0]==="POST"?"POST":"GET"})})}function ta(e){let{readMetadata:t,revalidateReport:r}=e;return C("GET","revalidate/report",async(o,n)=>{let{reportId:a,profilePrefix:s}=o.query;if(!a||!s)throw new S(400,"Missing URL parameter in revalidate factory: reportId or profilePrefix");try{let i=parseInt(`${a}`,10),c=`${s}`.split("/").filter(y=>y!=="").join("/"),l=[],p=await t({}).then(y=>y.ok?y.data.data.find(h=>h.id===i):[]);p&&p.mode===Se.UNILATERAL&&p.dimensions.forEach(y=>{y.variants.forEach(h=>{l.push({prefix:c,variantId:h.id,variantSlug:h.slug});});});let u=await r({profilePrefix:c,reportId:i,variantPaths:l}),d=[],m=0;return u.ok&&(m=u.data.paths.length,d=u.data.paths.slice(0,5),Promise.all(u.data.paths.map(y=>{let h;try{h=n.revalidate(y,{unstable_onlyGenerated:!0});}catch(R){console.log("error",y,R);}return h}))),{ok:!0,status:200,data:{reportId:a,revalidated:m,samples:d}}}catch(i){throw console.log(i),new S(500,"Error revalidating")}},[G.EDITOR])}function ra(){return C("GET","revalidate/url",async(e,t)=>{let{target:r}=e.query;if(r)try{return t.revalidate(r,{unstable_onlyGenerated:!0}),{ok:!0,status:200,data:{target:r}}}catch(o){throw console.log(o),new S(500,"Error revalidating")}else throw new S(400,"Missing target parameter in revalidate factory")},[G.ADMIN,G.EDITOR,G.WRITER])}var{localeDefault:Bc}=j();function oa(e){let{readPrivateBlocks:t}=e;return C("POST","read/blocks/private",(r,o,n)=>{let a={report_id:parseInt(r.body.report_id,10),locale:r.body.locale||Bc,roles:n&&n.user?n.user.bespoke_roles:[],section_id:r.body.section_id||[]};return t(a)},[])}function na(e){let{searchRole:t}=e;return C("GET","auth/search/roles",(r,o)=>t(""),[G.EDITOR,G.ADMIN])}function aa(e){let{searchUser:t}=e;return C("GET","auth/search/users",r=>t({query:r.query.query,role_id:r.query.role_id,page:r.query.page||0}),[G.ADMIN])}function sa(e){let{readUser:t}=e;return C("GET","auth/read/user",r=>t(r.query.user_id),[G.ADMIN])}function ia(e){let{updateUser:t,readUser:r}=e;return C("POST","auth/update/user",async(o,n,a)=>{let s=o.body,i=await t(s);return a&&a.user&&s.user_id===a.user.id&&(await r(a.user.id)).ok,i},[G.ADMIN])}function ca(e){let{updateUser:t,readUser:r}=e;return C("POST","auth/update/me",async(o,n,a)=>{let{report_id:s,user_metadata:i}=o.body;console.log("auth/update/me","session",a);let c={user_id:a.user.id,user_metadata:{}};try{let{user:l}=a;return a&&l&&s&&(l.bespoke_app_metadata&&l.bespoke_app_metadata.reports&&Array.isArray(l.bespoke_app_metadata.reports)?c.app_metadata={...l.bespoke_app_metadata}:c.app_metadata={reports:[]},c.app_metadata.reports.push({reportId:s})),i&&(c.user_metadata={...l.bespoke_app_metadata,...i}),await t(c),(await r(c.user_id)).ok,{ok:!0,status:200,data:{ok:!0,message:"User & session updated"}}}catch(l){return {ok:!1,status:500,error:l.message}}},[])}async function Cc(e){try{return "JVBERi0xLjcKJYGBgYEKCjYgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAxMTYKPj4Kc3RyZWFtCnicHYqxCsJAEAX79xVbC+Lmbm/3DoKFeEcKG2F/QCSKYgol+P0mMkwxMG8cHEwrnzt2w/j6jvPjetkalyyZLReKTH5DEPITuv/aUWKKiz6hTywiGliTZWNtFkyWitr0qEWrWmBbq2ndkz/hG1THGT/eextGCmVuZHN0cmVhbQplbmRvYmoKCjcgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA1Ci9GaXJzdCAyNgovTGVuZ3RoIDM2Mgo+PgpzdHJlYW0KeJzVUt9LwzAQfs9fcY/6IEnTH2llDLa1VZChbIKi+JC1YVRGIm0m87/3ru0cexCfpXwkd/cl+a73BSBAQhRBCCqFCOJQQgwqCGAyYfzx68MAf9Bb0zF+19QdvCJHwAreGF+4vfUQsOmUnbgL7fXObdlwCAIiHxkPrav3lWlhUhZlKYQSQiQRIhFC5rguEBlCYow1meIeoaIRmFOhEOEMa+WARA1nqN5z4/F8gStyE+LkAzdKh/jnXXqrGO6Qf+nJpowvXZ1rb+Aiv5ZCRiKTsQyjTKYvl/g7WqO9+7/N9fobZ3/t8GzONF4acmvIA/2U+cp0bt9WOHbilQ4rtLk1u0/jm0pfKZGlqFOlGXpsNAZ/vt+8m6qnUlgc/M3ak4YhQbmlqRs9dwd0n8APOwDshDw4s9Z5cmXvR+tRDUXJ6NEzySSI8fV+4/uQkgHjc92ZXupJJ4qwlasbuwX+1NiZ7Zpjgm78BkHDxfcKZW5kc3RyZWFtCmVuZG9iagoKOCAwIG9iago8PAovU2l6ZSA5Ci9Sb290IDIgMCBSCi9JbmZvIDMgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW5ndGggNDEKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOSBdCj4+CnN0cmVhbQp4nBXEwQ0AIAwDsUuKxJf9JUZippb4YaDbbEhKTpWWOCDezxcGYeEDtQplbmRzdHJlYW0KZW5kb2JqCgpzdGFydHhyZWYKNjY5CiUlRU9G"}catch(n){throw console.error("Error generating PDF:",n),n}}function la(){return C("POST","pdf",async(e,t)=>{let{slugs:r,path:o}=e.body;if(!r||!o)throw new S(400,"Missing path parameter in request.");{new URL(o,e.headers.origin);return {ok:!0,status:200,data:await Cc()}}})}function ua(e,t){let r=`list${fe(t)}Icons`,o=e[r];return C("GET",`list/icons/${t}`,async()=>o({}),[G.EDITOR])}function pa(e,t){let r=`read${fe(t)}Icon`,o=e[r];return C("GET",`read/icons/${t}/icon.svg`,async n=>o({provider:t,name:n.query.name}))}function da(){return C("GET","report",async(e,t)=>{let{report:r,prefix:o,locale:n}=e.query;if(!r)throw new S(400,"Missing report parameter.");if(!o)throw new S(400,"Missing report parameter.");if(!n)throw new S(400,"Missing report parameter.");try{let s=await(await fetch(`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${n}${o}${r}`)).text(),l=new Mc().parseFromString(s,"text/html").getElementById("__NEXT_DATA__")?.textContent,p=JSON.parse(l).props;return {ok:!0,status:200,data:{variables:p.pageProps.initialState.variables,status:p.pageProps.initialState.status}}}catch(a){throw console.error(a),new S(500,"Couldn't find page cache")}})}var Nc=Ye();function Hr(e,t){return `${e.toUpperCase()} ${t.toLowerCase()}`}function Dc(e,t){let r=ct(e,t);return Object.fromEntries([...Fe(r,"block"),...Fe(r,"dimension"),...Fe(r,"formatter"),...Fe(r,"report"),...Fe(r,"section"),...Yn(r),...Bn(r),Xn(r),Qn(r),Zn(r),lt(r,"flickr"),lt(r,"local"),lt(r,"unsplash"),lt(r,"upload"),lt(r,"adobe"),Ft(r,"flickr"),Ft(r,"local"),Ft(r,"unsplash"),Ft(r,"adobe"),ea(r),na(r),aa(r),sa(r),ia(r),ca(r),ta(r),ra(),oa(r),la(),ua(r,"tabler"),pa(r,"tabler"),da()].map(({handler:o,method:n,path:a,roleRequired:s})=>[Hr(n,a),{handler:o,roleRequired:s}]))}function Uc(e){let t=Ne().then(r=>Dc(r,e));return async function(o,n){await Oc(o,n,{methods:["GET","HEAD","PUT","PATCH","POST","DELETE"],origin:"*"});let{query:a,method:s}=o,{path:i,...c}=a;if(i&&s){let l=await t.then(p=>{let u=[].concat(i).join("/"),d=Hr(s,u);return p[d]});if(l){let p=await me(o,n,e);if(l.roleRequired){if(!p)return n.status(401).json({error:"Unauthorized. Must be logged in."});let u=p&&p.user&&p.user.bespoke_roles&&Array.isArray(p.user.bespoke_roles)?p.user.bespoke_roles:[];if(Array.isArray(l.roleRequired)&&l.roleRequired.length>0&&!Qt(u,l.roleRequired))return n.status(402).json({error:"Forbidden. Not enough roles."})}if(l.handler)return ["POST","DELETE"].includes(s)&&(o.body=await jr(o)),Promise.resolve(o).then(u=>l.handler(u,n,p||void 0)).then(async u=>{if(u&&"error"in u)throw new S(u.status,u.error);if(u.ok)if(u.data instanceof Buffer){let d=await Lc(u.data),m=Buffer.byteLength(u.data);n.writeHead(u.status,{"Content-Type":d?d.mime:"image/jpeg","Content-Length":m.toString()}).send(u.data);}else o.url&&o.url.indexOf("/icon.svg?name=")>0?(n.setHeader("Content-Type","image/svg+xml"),n.status(u.status).send(u.data)):n.status(u.status).json({data:u.data});}).catch(u=>{Nc&&console.trace("Backend Error",u),n.status(u.code).json({error:u.message});})}}else i||await t.then(console.log);return n.status(404).json({error:"No matching route",path:i,query:c})}}var Fc=e=>{let t=e;return async function(r,o){let n=await t({test:"pala"});return o.json(n)}},Vc=Fc;var Wt={};ds(Wt,{addBlockToState:()=>_o,cloneEntity:()=>ja,createEntity:()=>qa,deleteEntity:()=>Ka,deleteQueryParam:()=>nu,readEntity:()=>ne,readMember:()=>Ht,readMetadata:()=>su,readPrivateBlocks:()=>mu,readUser:()=>uu,recalculateVariables:()=>es,removeBlocksFromState:()=>xr,reportSearch:()=>tu,resetSectionState:()=>Za,revalidateReport:()=>gu,revalidateUrl:()=>fu,searchMember:()=>ou,searchRegenerate:()=>ru,searchRole:()=>cu,searchUser:()=>lu,setCurrentLocale:()=>Zl,setPreferredLocale:()=>Xl,setPreviews:()=>Ql,setQueryParam:()=>au,setSectionState:()=>Qa,setStatus:()=>Ya,updateEntity:()=>Ga,updateMyData:()=>du,updateUser:()=>pu,urlProxy:()=>iu,variantValidateSlug:()=>eu});function le(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,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 te(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>le(e,{...o,method:"GET",params:r?r(n):n})}function re(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>le(e,{...o,method:"POST",data:r?r(n):n})}function Ve(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>le(e,{...o,method:"DELETE",params:r?r(n):n})}function ut(e,t){return r=>le(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function Vt(e,t){return r=>le(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function ma(e,t){return ()=>le(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function fa(e,t){return r=>le(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var pt=e=>({id:e}),$c=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 zt(e){let t=fr.create({baseURL:e});return {createBulkBlock:re(t,"create/bulk/block"),createBlock:re(t,"create/block"),createDimension:re(t,"create/dimension"),createFormatter:re(t,"create/formatter"),createReport:re(t,"create/report"),createSection:re(t,"create/section"),createVariant:re(t,"create/variant"),deleteBlock:Ve(t,"delete/block",pt),deleteDimension:Ve(t,"delete/dimension",pt),deleteFormatter:Ve(t,"delete/formatter",pt),deleteReport:Ve(t,"delete/report",pt),deleteSection:Ve(t,"delete/section",pt),deleteVariant:Ve(t,"delete/variant",pt),readBlock:te(t,"read/block"),readDimension:te(t,"read/dimension"),readFormatter:te(t,"read/formatter"),readReport:te(t,"read/report"),readSection:te(t,"read/section"),readVariant:te(t,"read/variant"),updateBulkBlock:re(t,"update/bulk/block"),updateBlock:re(t,"update/block"),updateDimension:re(t,"update/dimension"),updateFormatter:re(t,"update/formatter"),updateReport:re(t,"update/report"),updateSection:re(t,"update/section"),updateVariant:re(t,"update/variant"),searchReport:te(t,"search/reports"),validateVariantSlug:te(t,"validate/variant"),readMember:te(t,"read/members",$c),readMemberImage:te(t,{url:"member/image",responseType:"blob"}),searchMember:te(t,"search/members"),updateMember:te(t,"update/members"),imageLocalSearch:Vt(t,"local"),imageLocalSave:ut(t,"local"),imageFlickrSearch:Vt(t,"flickr"),imageFlickrSave:ut(t,"flickr"),imageUnsplashSearch:Vt(t,"unsplash"),imageUnsplashSave:ut(t,"unsplash"),imageUploadSave:ut(t,"upload"),imageAdobeSearch:Vt(t,"adobe"),imageAdobeSave:ut(t,"adobe"),readMetadata:te(t,"read/metadata"),regenerateSearch:re(t,"search/regenerate"),urlProxy:te(t,"url/proxy"),searchRole:te(t,"auth/search/roles"),searchUser:te(t,"auth/search/users"),readUser:te(t,"auth/read/user"),updateUser:re(t,"auth/update/user"),updateMyData:re(t,"auth/update/me"),revalidateReport:te(t,"revalidate/report"),revalidateUrl:te(t,"revalidate/url"),readPrivateBlocks:re(t,"read/blocks/private"),listTablerIcons:ma(t,"tabler"),readTablerIcon:fa(t,"tabler")}}var{localeDefault:Kc}=j();function ce(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||Kc}}var Wc=lr(process.env.REPORTS_LOGGING),ze=Jc;function Jc(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=ce(a);try{if(t){let l=new Proxy(console,{get(u,d){return Yc(d,"log","debug","info","warn","error")?(...m)=>{i.push(`${d} ${Date.now()} - ${m.map(y=>format(y)).join(" ")}`),Wc&&u[d](...m);}:u[d]}}),p;return n?p=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,Ie,o,c,n):p=new Function(e,"console","libs","formatters","locale",r)(t,l,Ie,o,c),typeof p=="object"&&Object.keys(p).length>0&&Object.assign(s,p),{vars:s,error:null,log:i,output:p}}return {vars:s,error:"Invalid API Link",log:i}}catch(l){return {vars:s,error:l.message,log:i}}}function Yc(e,...t){return t.includes(e)}function Wr(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 dt=Qc;function Qc(e,t,r,o=!1){let{variables:n}=ce(r);if(!e)return e;let a=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(a,(i,c,l)=>{let p=d=>d;if(c){let d=c.replace(/^\w/g,m=>m.toLowerCase());d in t?p=t[d]:p=m=>`${c}${m}`;}let u=Array.isArray(n[l])?Wr(n[l]):n[l];if(u===void 0)return o?i:"N/A";try{return p(u,Ie,t)}catch(d){return console.error(`Error using formatter ${p.name}
|
|
60
|
-
`,`Error message: ${d.message}`),"N/A"}})}var Jr=(e,t,r)=>{let{variables:o}=r,n=s=>s.allowed==="never"?!1:!s.allowed||s.allowed==="always"||o[s.allowed],a={...e};return Object.keys(a).forEach(s=>{typeof a[s]=="string"?a[s]=dt(a[s],t,r):Array.isArray(a[s])?a[s]=a[s].filter(n).map(i=>typeof i=="object"?Jr(i,t,r):typeof i=="string"?dt(i,t,r):i):typeof a[s]=="object"&&a[s]!==null&&!(a[s]instanceof Date)&&(a[s]=Jr(a[s],t,r));}),a},dr=Jr;var ga=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var Yr=(e,t,r)=>{if(!r)return !1;if(e===
|
|
59
|
+
`)}return global.flexsearch};async function Oi(e){let t=await e.search.findAll({include:[{association:"contentByLocale"}]}),r=Bi.map(async o=>{It&&console.log(`\u{1F3F3}\uFE0F INITIALIZING SEARCH ${o} LOCALE`);let n=sr.find(p=>p.locales.includes(o)),a=n?.charset||"latin",s=a==="latin"?"advanced":"default";n?console.log(` Charset for ${o}: ${a}`):It&&console.error(` Missing charset for ${o}, adding latin as default.`);let i=(await import(`flexsearch/dist/module/lang/${a}/${s}`)).default,c=new xi.Document({language:o,encode:i.encode,tokenize:"reverse",stemmer:{},matcher:{},filter:[],preset:"default",cache:100,resolution:9,context:!1,optimize:!0,worker:!1,document:{id:"content_id",store:!1,index:["id","name","clean","keywords","attributes"]}}),l=0;return t.forEach(p=>{let u=p.contentByLocale.find(d=>d.locale===o);if(u){let d=nt(u.name,a!=="arabic"),m=Array.isArray(u.keywords)?u.keywords.map(h=>nt(h,a!=="arabic")):null,y={id:p.id,content_id:p.content_id,name:u.name,keywords:m,attributes:u.attributes,clean:d};c.add(y),l++;}}),console.log(`\u{1F3F3}\uFE0F Indexed for ${o}: ${l} elements`),[o,c]});return Object.fromEntries(await Promise.all(r))}var De=Mi;var{localeDefault:mn}=j();function at(e){let{search:t,report:r}=e;return o;async function o(n){let a=await De(e),s=[],{query:i,locale:c,preferredLocale:l,limit:p,format:u,visible:d,variant:m,dimension:y,report:h,all:R,noImage:A,includes:P,sort:I,direction:E="ASC",offset:b=0}=n,D=sr.find(x=>x.locales.includes(c))?.charset||"latin";if(i&&i!==""&&a[c]){let x=nt(i,D!=="arabic");if(s=a[c].search({query:x,limit:9999999999}).reduce((U,V)=>U.concat(V.result),[]),s=Zt(s),l&&a[l]){let V=a[l].search(x).reduce((M,de)=>M.concat(de.result),[]);V=Zt(V),s=Zt([...s,...V]);}}let F={...d?{visible:d}:{},...A?{image_id:{[Op.eq]:null}}:{},...m.length?{variant_id:m}:{},...y.length?{dimension_id:y}:{},...h.length?{report_id:h}:{}},Z={locale:R?{[Op.ne]:null}:c},W=p&&!isNaN(p)?p:20,L=[["zvalue","DESC NULLS LAST"]];I&&I!=="name"&&L.unshift([I,E.toUpperCase()]),i&&i!==""&&(F.content_id=s);let z=[{association:"contentByLocale",where:Z}];P&&z.push({association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name"]},{association:"variant",attributes:["id","slug","name"]});let H={...F.visible?{visible:F.visible}:{},...F.noImage?{image_id:F.noImage}:{},...F.content_id?{content_id:F.content_id}:{}};if(!F.report_id&&!F.dimension_id&&!F.variant_id&&d){let Y=(await r.findAll({attributes:["id"],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!0)]}})).map(U=>U.id);Y.length>0&&(F.report_id={[Op.notIn]:Y},H.report_id=F.report_id);}let v=[],[T,N]=await Promise.all([t.findAll({limit:W,offset:b,where:F,include:z,order:L}),t.findAll({attributes:["variant_id",[fn$1("COUNT",col("variant_id")),"members_count"]],where:H,group:["variant_id"]})]),_=N.map(x=>x.toJSON());if(I==="name"){let x=E.toUpperCase()==="ASC"?1:-1;T.sort((Y,U)=>{let V=Y.getContent(mn),M=U.getContent(mn);return V&&M?V.name>M.name?1*x:-1*x:0});}let w=u==="nested"?$:X;return v=T.map(w),u!=="nested"&&v.forEach(x=>{let{name:Y,keywords:U,score:V=.1,zvalue:M}=x;if(Y){let de=nt(Y),Je=V,Yt=i.length/de.length,Po=de.split("").reduce((Ir,wo,xo)=>(i.slice(0,xo),i.charAt(xo)===wo&&(Ir+=wo),Ir),"").length;de===i||U&&U.includes(i)?Je=1e6:de.startsWith(i)?Je*=20*Yt:Po&&(Je*=Po*Yt),x.zvalue=Je*2+M;}}),{meta:{origin:"flexsearch",...Object.fromEntries(Object.entries(n).map(x=>[x[0],K(x[1])])),variantCount:_.reduce((x,Y)=>(x[Y.variant_id]=parseInt(Y.members_count,10),x),{})},results:v};function $(x){return x.toJSON()}function X(x){let Y=x.getContent(c);return {...x.toJSON(),locale:Y.locale,name:Y.name,attributes:Y.attributes,keywords:Y.keywords}}}}function fn(e){let{image:t,image_content:r,search:o,search_content:n}=e;return a;async function a(s){let{content_id:i,contentByLocale:c,image:l,image_id:p}=s,u={where:{content_id:i}},d=await o.findOne(u);if(await o.update(s,{where:{content_id:i}}),c){for(let y=0;y<c.length;y++){let h=c[y];await n.update({name:h.name,keywords:h.keywords},{where:{id:h.id,locale:h.locale}});}u={...u,...{include:[{association:"contentByLocale",separate:!0}]}};}if(l){if(l.id&&(await t.update({...l},{where:{id:l.id}}),l.contentByLocale))for(let m=0;m<l.contentByLocale.length;m++){let y=l.contentByLocale[m];await r.update({meta:y.meta},{where:{id:y.id,locale:y.locale}});}}else !p&&d.image_id&&(await e.search.findAll({where:{image_id:d.image_id}})).length===0&&await t.destroy({where:{id:d.image_id}});return o.findOne(u)}}function gn(e){return {ingestMembers:un(e),readMember:pn(e),searchMember:at(e),updateMember:fn(e),readMemberImage:dn(e)}}var Ue={include:[{association:"contentByLocale",separate:!0},{association:"inputs",include:[{association:"contentByLocale",separate:!0}]},{association:"consumers",include:[{association:"contentByLocale",separate:!0}]}]},Ct=e=>({include:[{association:"variants",separate:!0,attributes:{include:[[fn$1("COUNT",col("members.id")),"members_count"]]},include:[{model:e,as:"members",attributes:[]}],group:["variant.id"]}],order:[["ordering","ASC"]]}),Bt={include:[{association:"blocks",separate:!0,...Ue}]},cr=e=>({include:[{association:"dimensions",separate:!0,...Ct(e)},{association:"sections",separate:!0,...Bt}]});var ge=[{association:"image",attributes:{exclude:["splash"]},include:[{association:"contentByLocale"}]},{association:"contentByLocale"}];function yn(e){let{block:t,block_content:r,block_input:o}=e;return {createBlock:n,readBlock:s,updateBlock:i,deleteBlock:l,createBulkBlock:a,updateBulkBlock:c};async function n(p){let{locales:u,...d}=p;return (await t.create({...d,consumers:[],inputs:[],contentByLocale:u.map(y=>({locale:y}))},{include:Ue.include})).toJSON()}async function a(p){let u=p.map(m=>{let{locales:y,...h}=m;return {...h,consumers:[],inputs:[],contentByLocale:y.map(A=>({locale:A}))}});return (await t.bulkCreate(u,{include:Ue.include})).map(m=>m.toJSON())}async function s({id:p,include:u}={}){let d=p==null?[]:[].concat(p),m=await t.findAll({where:d.length>0?{id:d}:void 0,include:u?Ue.include:void 0});if(d.length===0||m.length===d.length)return m.map(R=>R.toJSON());let y=m.map(R=>R.id),h=d.filter(R=>!y.includes(R));throw new S(404,`Block(id=[${h}]) does not exist.`)}async function i(p){let{id:u,contentByLocale:d,consumers:m,inputs:y,inputAction:h,...R}=p,A=await t.findByPk(u,{include:Ue.include,rejectOnEmpty:!0});if(A.set(R),d){let P=Object.values(d);await r.bulkCreate(P,{updateOnDuplicate:["content"]});}return h&&(h.operation==="create"?await o.create(h.input):await o.destroy({where:h.input})),await A.save(),await A.reload(),A.toJSON()}async function c(p){let u=p.map(y=>{let{id:h,contentByLocale:R,consumers:A,inputs:P,inputAction:I,...E}=y;return {id:h,contentByLocale:R,inputAction:I,...E}}),d=await t.findAll({where:{id:{[Op.or]:u.map(y=>y.id)}},include:Ue.include}),m=[];for(let y of d){let h=u.filter(R=>R.id===y.id);for(let R=0;R<h.length;R++){let A=h[R],{id:P,contentByLocale:I,inputAction:E,...b}=A;if(E&&(E.operation==="create"?await o.create(E.input):await o.destroy({where:E.input})),I){let O=Object.values(I);await r.bulkCreate(O,{updateOnDuplicate:["content"]});}y.set(b),await y.save(),await y.reload(),m.push(y.toJSON());}}return m}async function l(p){let u=await t.findByPk(p,{rejectOnEmpty:!0});return await u.destroy(),{id:p,parentType:"section",parentId:u.section_id}}}function hn(e){let{dimension:t,search:r}=e;return {createDimension:o,readDimension:n,updateDimension:a,deleteDimension:s};async function o(i){return (await t.create({name:i.name,report_id:i.report_id,variants:[]},{include:Ct(r).include})).toJSON()}async function n({id:i,include:c}={}){let l=i==null?[]:[].concat(i),p=await t.findAll({where:l.length>0?{id:l}:void 0,include:c?Ct(r).include:void 0});if(l.length===0||p.length===l.length)return p.map(m=>m.toJSON());let u=p.map(m=>m.id),d=l.filter(m=>!u.includes(m));throw new S(404,`Dimension(id=[${d}]) does not exist.`)}async function a(i){let{id:c,variants:l,...p}=i,u=await t.findByPk(c,{include:Ct(r).include,rejectOnEmpty:!1});if(!u)throw new S(404,`Dimension(id=${c}) does not exist.`);return u.set(p),await u.save(),u.toJSON()}async function s(i){let c=await t.findByPk(i,{rejectOnEmpty:!1});return await c.destroy(),{id:i,parentType:"report",parentId:c.report_id}}}function Rn(e){let{formatter:t}=e;return {createFormatter:r,readFormatter:o,updateFormatter:n,deleteFormatter:a};async function r(s){return (await t.create(s)).toJSON()}async function o({id:s}={}){let i=s==null?[]:[].concat(s),c=await t.findAll({where:i.length>0?{id:i}:void 0});if(i.length===0||c.length===i.length)return c.map(u=>u.toJSON());let l=c.map(u=>u.id),p=i.filter(u=>!l.includes(u));throw new S(404,`Formatter(id=[${p}]) does not exist.`)}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:!0});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:!0})).destroy(),{id:s}}}var{locales:qi}=j();function bn(e){let{report:t,search:r}=e;return {createReport:o,readReport:n,updateReport:a,deleteReport:s};async function o(i){return (await t.create({name:i.name,sections:[],dimensions:[]},{include:cr(r).include})).toJSON()}async function n({id:i,include:c,locales:l=qi}={}){let u=(i==null?[]:[].concat(i)).reduce((h,R)=>(h.includes(R)||h.push(R),h),[]),d=await t.findAll({where:u.length>0?{id:u}:void 0,include:c?cr(r).include?.filter(h=>typeof c=="string"?h.association===c:c):void 0});if(u.length===0||d.length===u.length)return d.map(h=>{let R=h.toJSON();return {...R,sections:R.sections.map(A=>({...A,blocks:A.blocks.map(P=>({...P,contentByLocale:Object.keys(P.contentByLocale).reduce((I,E)=>({...I,...[...l,"logic"].includes(E)?{[E]:P.contentByLocale[E]}:{}}),{})}))}))}});let m=d.map(h=>h.id),y=u.filter(h=>!m.includes(h));throw new S(404,`Report(id=${y}) does not exist.`)}async function a(i){let{id:c,dimensions:l,sections:p,...u}=i,d=await t.findByPk(c,{include:cr(r).include,rejectOnEmpty:!1});if(!d)throw new S(404,`Report(id=${c}) does not exist.`);return d.set(u),await d.save(),await d.reload(),d.toJSON()}async function s(i){return await(await t.findByPk(i,{rejectOnEmpty:!1})).destroy(),{id:i}}}function Sn(e){let{section:t}=e;return {createSection:r,readSection:o,updateSection:n,deleteSection:a};async function r(s){return (await t.create({ordering:s.ordering,report_id:s.report_id,blocks:[]},{include:Bt.include})).toJSON()}async function o({id:s,include:i}={}){let c=s==null?[]:[].concat(s),l=await t.findAll({where:c.length>0?{id:c}:void 0,include:i?Bt.include:void 0});if(c.length===0||l.length===c.length)return l.map(d=>d.toJSON());let p=l.map(d=>d.id),u=c.filter(d=>!p.includes(d));throw new S(404,`Section(id=${u}) does not exist.`)}async function n(s){let{id:i,blocks:c,...l}=s,p=await t.findByPk(i,{include:Bt.include,rejectOnEmpty:!1});return p.set(l),await p.save(),await p.reload(),p.toJSON()}async function a(s){let i=await t.findByPk(s,{rejectOnEmpty:!0});return await i.destroy(),{id:s,parentType:"report",parentId:i.report_id}}}function Tn(e,t){let{variant:r,search:o}=e;return {createVariant:n,readVariant:a,updateVariant:s,deleteVariant:i,validateVariantSlug:c};async function n(l){let{dimension_id:p,name:u,slug:d}=l,m=await c({dimension:p,slug:d});return (await r.create({dimension_id:p,name:u,slug:m.valid?m.candidate:m.suggestion})).toJSON()}async function a({id:l}={}){let p=l==null?[]:[].concat(l),u=await r.findAll({where:p.length>0?{id:p}:void 0,attributes:{include:[[fn$1("COUNT",col("members.id")),"members_count"]]},include:[{model:o,attributes:[],as:"members"}],group:["variant.id"]});if(p.length===0||u.length===p.length)return u.map(y=>y.toJSON());let d=u.map(y=>y.id),m=p.filter(y=>!d.includes(y));throw new S(404,`Variant(id=${m}) does not exist.`)}async function s(l){let{id:p,...u}=l,d=await r.findByPk(p,{include:[{association:"dimension"}],rejectOnEmpty:!0});u.settings=xt(u.settings);let m=u.settings.doIngest;return u.settings.doIngest=!1,await d.update(u),m&&(await t.ingestMembers(d),await De(e,!0)),await d.reload(),d.toJSON()}async function i(l){let p=await r.findByPk(l,{rejectOnEmpty:!0});return await p.destroy(),De(e,!0),{id:l,parentType:"dimension",parentId:p.dimension_id}}async function c({dimension:l,slug:p}){let u=await r.findAll({attributes:["slug",[fn$1("COUNT",col("id")),"slugCount"]],where:{dimension_id:{[Op.ne]:l}},group:"slug"}).then(h=>Object.fromEntries(h.map(R=>{let A=R.getDataValue("slugCount");return [R.slug,Number.parseInt(`${A}`,10)]}))),d=p,m=1,y=!0;for(;u[d];)y=!1,d=`${p}-${m}`,m++;return {candidate:p,dimension_id:l,suggestion:d,valid:y}}}function _n(e){let t={...yn(e),...hn(e),...Rn(e),...gn(e),...bn(e),...Sn(e)},r={...t,...Tn(e,t)};return {createFormatter:k(r.createFormatter),deleteFormatter:k(r.deleteFormatter),readFormatter:k(r.readFormatter),updateFormatter:k(r.updateFormatter),createReport:k(r.createReport),deleteReport:k(r.deleteReport),readReport:k(r.readReport),updateReport:k(r.updateReport),createDimension:k(r.createDimension),deleteDimension:k(r.deleteDimension),readDimension:k(r.readDimension),updateDimension:k(r.updateDimension),createVariant:k(r.createVariant),readVariant:k(r.readVariant),updateVariant:k(r.updateVariant),deleteVariant:k(r.deleteVariant),validateVariantSlug:k(r.validateVariantSlug),createSection:k(r.createSection),readSection:k(r.readSection),updateSection:k(r.updateSection),deleteSection:k(r.deleteSection),createBlock:k(r.createBlock),deleteBlock:k(r.deleteBlock),readBlock:k(r.readBlock),updateBlock:k(r.updateBlock),createBulkBlock:k(r.createBulkBlock),updateBulkBlock:k(r.updateBulkBlock),readMember:k(r.readMember),searchMember:k(r.searchMember),updateMember:k(r.updateMember),readMemberImage:k(r.readMemberImage)}}var vn=e=>{throw console.error("/methods/helpers/uploadImage.ts:",e),new Error(e.message)},ji=Number(process.env.NEXT_PUBLIC_IMAGE_SPLASH_WIDTH)||1400,Hi=Number(process.env.NEXT_PUBLIC_IMAGE_THUMB_WIDTH)||400,Wi=async(e,t,r)=>{let o=[{type:"splash",res:ji},{type:"thumb",res:Hi}];for(let n of o){let a=await Ki(r).resize(n.res).toFormat("webp").webp({lossless:!0}).toBuffer().catch(vn);await e.image.update({[n.type]:a},{where:{id:t}}).catch(vn);}},Ee=Wi;var kn="|||";var Pn="SECTION_ALLOWED";var wn=["4","5","7","8","9","10"],Zi=wn.join(),{locales:Xi}=j(),Ae;if(process.env.FLICKR_API_KEY)try{Ae=new Qi(process.env.FLICKR_API_KEY);}catch(e){throw console.error("Flickr ERROR:",e),new Error(e.message)}async function xn(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Ae)throw console.log("Flickr is not initialized. Check the credentials"),new Error("Flickr is not initialized. Check the credentials");let o=r.prompt,a=(await Ae.photos.search({text:o,license:Zi,sort:"relevance",per_page:24,page:r.page,content_types:"0",orientation:"landscape"}).then(l=>l.body)).photos.photo,s=a.reduce((l,p)=>l.concat(Ae.photos.getSizes({photo_id:p.id})),[]),c=(await Promise.all(s).then(l=>l)).reduce((l,p,u)=>{let d=p.body.sizes.size.find(m=>m.label==="Small 320");return d&&l.push({id:a[u].id,source:d.source}),l},[]);return {meta:{prompt:K(r.prompt),page:K(`${r.page}`)},results:c}}catch(r){throw console.log(r),new Error("Error in search flickr provider")}}async function In(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:K(`${r}`)||"",id:K(`${o}`)||""},s=`https://flic.kr/p/${Yi.int_to_base58(o)}`;if(!Ae)throw new Error("Flickr API Key not configured");let i=await Ae.photos.getInfo({photo_id:o}).then(l=>l.body),c;if(i)if(wn.includes(i.photo.license)){let l=await e.search.findOne({where:{content_id:r}}),p=await e.image.findOne({where:{url:s}});if(l){if(p)await e.search.update({image_id:p.id},{where:{content_id:r}});else {let d=await Ae.photos.getSizes({photo_id:o}).then(E=>E.body),m=d.sizes.size.find(E=>parseInt(E.width,10)>=1600);if(m||(m=d.sizes.size.find(E=>parseInt(E.width,10)>=1e3)),m||(m=d.sizes.size.find(E=>parseInt(E.width,10)>=500)),!m||!m.source)throw new Error("Flickr Source Error, try another image.");let y=await fr.get(m.source,{responseType:"arraybuffer"}).then(E=>E.data),R=(await Ae.photos.licenses.getInfo().then(E=>E.body.licenses.license)).find(E=>E.id===parseInt(i.photo.license,10)),A={url:s,author:i.photo.owner.realname||i.photo.owner.username,license:R?`${R.name}: ${R.url}`:""},P=await e.image.create(A);await e.image_content.destroy({where:{id:P.id}});let I=Xi.map(E=>({id:P.id,locale:E,meta:i.photo.title._content}));await e.image_content.bulkCreate(I),await e.search.update({image_id:P.id},{where:{content_id:r}}),await Ee(e,P.id,y);}let u=await e.search.findOne({where:{content_id:r},include:ge});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Bad License");else throw new Error("Malformed URL");return {meta:{...n},results:c}}catch(r){throw console.log(r),new Error("Error in save flickr provider")}}function B(e,t,r,o){return {method:e,path:t,handler:r,roleRequired:o}}function Q(e){let t=Number.parseInt(`${e||""}`,10);if(Number.isNaN(t)||!Number.isFinite(t))throw new S(400,`Invalid numeric parameter: ${e}`);return t}function q(e){return e==null||e===""?[]:Array.isArray(e)?e:e.toString().split(",")}var{localeDefault:Te}=j();function Cn(e){let{readMember:t,searchMember:r,updateMember:o,readMemberImage:n}=e;return [B("GET","read/members",async a=>{let s=ec(a.query),i=s[s.mode]||[],c=s.mode==="whole";if(!c&&i.length===0)throw new S(400,`The request is missing the '${s.mode}' parameter.`);if(!c&&i.length>20&&!s.variant)throw new S(400,`You can look for up to 20 '${s.mode}' in a single request.`);return t(s)}),B("GET","search/members",a=>{let s=Mt(a.query);return r(s)}),B("POST","update/member",a=>{let{body:s}=a;return o(s)},[G.EDITOR]),B("GET","member/image",a=>{let s=q(a.query.size)[0];return n({member:Q(a.query.member),size:s&&s==="splash"?"splash":"thumb"})})]}function ec(e){let t=q(e.locale)[0]||Te||"en",r=t==="all"||lr(e.all),o=q(e.mode)[0],a=(q(e.output)[0]||"full")==="lite"?"lite":"full",s=parseInt(q(e.related)[0],10)||5,i=q(e.variant).map(Q);if(i.length===0&&(i=q(e["variant[]"]).map(Q)),o==="ids")return {all:r,mode:o,variant:i,output:a,locale:r?Te:K(t),ids:q(e.ids||e["ids[]"])};if(o==="content_ids")return {all:r,mode:o,variant:i,output:a,locale:r?Te:K(t),content_ids:q(e.content_ids||e["content_ids[]"]).map(Q)};if(o==="slugs")return {all:r,mode:o,variant:i,output:a,locale:r?Te:K(t),slugs:q(e.slugs||e["slugs[]"]).map(c=>{let[l,p]=c.split("/");return {variantSlug:l,memberSlug:p}})};if(o==="related")return {all:r,mode:o,locale:r?Te:K(t),related:s,current_ids:q(e.current_ids||e["current_ids[]"]).map(Q),include_ids:q(e.include_ids||e["include_ids[]"]).map(Q),report_ids:q(e.report_ids||e["report_ids[]"]).map(Q),dimension_ids:q(e.dimension_ids||e["dimension_ids[]"]).map(Q),variant_ids:q(e.variant_ids||e["variant_ids[]"]).map(Q),output:a};if(o==="whole")return {all:r,mode:o,variant:i,locale:r?Te:K(t),output:a};throw new S(400,`Invalid mode: '${o}'`)}function Mt(e){let t=q(e.locale)[0]||Te||"en",r=t==="all",o=q(e.format)[0],n=o?o==="nested":r,a=q(e.variant).map(Q);a.length===0&&(a=q(e["variant[]"]).map(Q));let s=q(e.dimension).map(Q);s.length===0&&(s=q(e["dimension[]"]).map(Q));let i=q(e.report).map(Q);return i.length===0&&(i=q(e["report[]"]).map(Q)),{query:q(e.query||e.q)[0]||"",locale:r?Te:t,preferredLocale:q(e.preferredLocale)[0],limit:q(e.limit).map(Q)[0]??5,format:n?"nested":"plain",includes:lr(e.includes,{default:!0}),visible:lr(e.visible,{default:!0}),noImage:lr(e.noImage,{default:!1}),variant:a,dimension:s,report:i,all:r,sort:q(e.sort)[0],direction:q(e.direction)[0],offset:Number(e.offset||0)}}async function Bn(e,t){let r=at(e),o=Mt({query:t.prompt,limit:"50",visible:"false"}),a=(await r(o)).results.filter(s=>s.image_id).map(s=>({id:s.image_id,source:`/api/cms/member/image?member=${s.content_id}&size=thumb`}));return {meta:{prompt:K(o.query)},results:a}}async function Mn(e,t){let{search:r}=e,{content_id:o,image_id:n}=t;await r.update({image_id:n},{where:{content_id:o}});let a=await r.findOne({where:{content_id:o},include:ge}).then(s=>s?{...s.toJSON(),image:{...s.image.toJSON(),thumb:!!s.image.thumb}}:null);return {meta:{id:n,content_id:o},results:a}}var{locales:oc}=j(),Ot;if(process.env.UNSPLASH_API_KEY)try{Ot=createApi({accessKey:process.env.UNSPLASH_API_KEY});}catch(e){throw console.error("Unsplash error:",e),new Error(e.message)}async function On(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Ot)throw new Error("Unsplash API Key not configured");let o=r.prompt,a=(await Ot.search.getPhotos({query:o,perPage:24,page:r.page,orientation:"landscape"}).then(s=>s.response.results)).map(s=>({id:s.id,source:s.urls.thumb}));return {meta:{prompt:K(r.prompt),page:K(`${r.page}`)},results:a}}catch(r){throw console.log(r),new Error("Error in search unsplash provider")}}async function Ln(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:K(`${r}`)||"",id:K(`${o}`)||""};if(!Ot)throw console.log("Unsplash is not initialized. Check the credentials"),new Error("Unsplash is not initialized. Check the credentials");let a=await Ot.photos.get({photoId:o}).then(i=>i.response),s;if(a){let i=await e.search.findOne({where:{content_id:r}}),c=a.links.html,l=await e.image.findOne({where:{url:c}});if(i){if(l)await e.search.update({image_id:l.id},{where:{content_id:r}});else {let u=await fr.get(a.urls.full,{responseType:"arraybuffer"}).then(h=>h.data),d={url:c,author:a.user.name||a.user.username,license:"Free Unsplash license: https://unsplash.com/license"},m=await e.image.create(d);await e.image_content.destroy({where:{id:m.id}});let y=oc.map(h=>({id:m.id,locale:h,meta:a.description||a.alt_description}));await e.image_content.bulkCreate(y),await e.search.update({image_id:m.id},{where:{content_id:r}}),await Ee(e,m.id,u);}let p=await e.search.findOne({where:{content_id:r},include:ge});p&&p.image&&(p.image.thumb=!!p.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.log(r),new Error("Error in save unsplash provider")}}var{locales:ac}=j();async function Nn(e,t){try{let{content_id:r,image_source:o,files:n}=t,a={content_id:K(`${r}`)||""};if(await e.search.findOne({where:{content_id:r}})&&n){let c=await nc.readFileSync(n.file.filepath),l={url:o,author:"",license:""},p=await e.image.create(l);await e.image_content.destroy({where:{id:p.id}});let u=ac.map(d=>({id:p.id,locale:d,meta:""}));await e.image_content.bulkCreate(u),await e.search.update({image_id:p.id},{where:{content_id:r}}),await Ee(e,p.id,c);}let i=await e.search.findOne({where:{content_id:r},include:ge});return i&&i.image&&(i.image.thumb=!!i.image.thumb),{meta:{...a},results:i}}catch(r){throw console.log(r),new Error("Error in save upload provider")}}var{locales:sc}=j();var Dn=async e=>{let t={"x-api-key":process.env.ADOBE_STOCK_API_KEY||"EMPTY_ADOBE_KEY","X-Product":"BespokeApp/0.1"};return e&&(t.Authorization=`Bearer ${e}`),t};var Lt;if(process.env.ADOBE_STOCK_API_KEY)try{Lt={search:async(e,t)=>await fr.get("https://stock.adobe.io/Rest/Media/1/Search/Files",{headers:await Dn(!1),params:{locale:"en_US","search_parameters[limit]":24,"search_parameters[offset]":t*24,"search_parameters[words]":e,"search_parameters[filters][content_type:photo]":"1","search_parameters[filters][content_type:image]":"1","search_parameters[filters][orientation]":"horizontal",result_columns:["id","stock_id","thumbnail_url","is_licensed"]}}).then(r=>r.data.files),get:async e=>await fr.get("https://stock.adobe.io/Rest/Media/1/Files",{headers:await Dn(!1),params:{locale:"en_US",ids:e,result_columns:["id","thumbnail_url","creator_name","title","thumbnail_1000_url","details_url","category"]}}).then(t=>t.data.files[0])};}catch{}async function Un(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Lt)throw new Error("Adobe API Key not configured");let n=(await Lt.search(r.prompt,r.page)).map(a=>({id:a.id,source:a.thumbnail_url}));return {meta:{prompt:K(r.prompt),page:K(`${r.page}`)},results:n}}catch(r){throw console.log(r),new Error("Error in search Adobe provider")}}async function Fn(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:K(`${r}`)||"",id:K(`${o}`)||""};if(!Lt)throw console.log("Adobe is not initialized. Check the credentials"),new Error("Adobe is not initialized. Check the credentials");let a=await Lt.get(o),s;if(a){let i=await e.search.findOne({where:{content_id:r}}),c=a.details_url,l=await e.image.findOne({where:{url:c}});if(i){if(l)await e.search.update({image_id:l.id},{where:{content_id:r}});else {let u=await fr.get(a.thumbnail_1000_url,{responseType:"arraybuffer"}).then(h=>h.data),d={url:c,author:a.creator_name,license:"ADOBE, TO-DO"},m=await e.image.create(d);await e.image_content.destroy({where:{id:m.id}});let y=sc.map(h=>({id:m.id,locale:h,meta:a.title||a.description}));await e.image_content.bulkCreate(y),await e.search.update({image_id:m.id},{where:{content_id:r}}),await Ee(e,m.id,u);}let p=await e.search.findOne({where:{content_id:r},include:ge});p&&p.image&&(p.image.thumb=!!p.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.log(r),new Error("Error in save adobe provider")}}var ic={local:Mn,flickr:In,unsplash:Ln,upload:Nn,adobe:Fn};function it(e,t){let r=ic[t];if(!r)throw new S(500,`Wrong provider dbImageSaveFactory.ts: ${t}`);return k(o=>r(e,o))}var cc={local:Bn,flickr:xn,unsplash:On,adobe:Un};function Nt(e,t){let r=cc[t];if(!r)throw new S(500,`Wrong provider dbImageSearchFactory.ts: ${t}`);return k(o=>r(e,o))}var gc=e=>(e.dimensions&&e.dimensions.forEach(t=>{t.variants&&t.variants.forEach(r=>{r.members_count&&(r.members_count=parseInt(r.members_count,10));});}),e);function pr(e){let{report:t,search:r}=e;return o;async function o(n){return {data:(await t.findAll({attributes:["id","name",[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"],[literal("COALESCE(NULLIF(settings ->> 'hide', '')::BOOL, false)"),"hide"]],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!1),literal("NOT (settings::jsonb ? 'hide')")]},order:[["ordering","ASC"]],include:[{attributes:["id","name","ordering"],association:"dimensions",separate:!0,order:[["ordering","ASC"]],include:[{attributes:["id","name","slug",[fn$1("COUNT",col("members.id")),"members_count"],[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"]],include:[{model:r,attributes:[],as:"members"}],association:"variants",separate:!0,group:["variant.id"],order:[["ordering","ASC"]]}]}]})).map(s=>({...gc(s.toJSON()),mode:s.dimensions.length===1?Se.UNILATERAL:Se.MULTILATERAL}))}}}function Vn(e){return async()=>(await De(e,!0),{error:!1})}var{locales:yc,localeDefault:hc}=j(),Rc=(e,t)=>{if(!e)return [];let r=[];return t.forEach(o=>{let n=e.filter(a=>a.metadata.report.id===o.id);if(n.length>0)if(o.mode===Se.UNILATERAL){let a=o.dimensions[0];a.variants.forEach(s=>{let i=n.filter(c=>c.metadata.dimension.id===a.id&&c.metadata.variant.id===s.id);i.length>0&&(r=r.concat(i.map(c=>({path:`/${s.slug}/${c.slug}`,name:c.name,confidence:c.confidence,report:{id:o.id,name:o.name,mode:o.mode},members:[c],id:`r-${o.id}-${[c].map(l=>`${l.id}`).join("-")}`}))));});}else o.mode;}),r.sort((o,n)=>o.confidence<n.confidence?1:-1)},bc=(e,t)=>{if(!e)return [];let r,o,n;return e.map(a=>(r={...t.find(s=>s.id===a.report_id)},o={...r.dimensions.find(s=>s.id===a.dimension_id)},n={...o.variants.find(s=>s.id===a.variant_id)},delete r.dimensions,delete o.variants,{name:a.name,confidence:a.zvalue,metadata:{id:a.id,slug:a.slug,report:r,dimension:o,variant:n},id:a.content_id,slug:a.slug}))};function zn(e){let t=at(e),r=pr(e);return o;async function o(n){let a=n.format||"results",s=yc.includes(n.locale)?n.locale:hc,i=await t({...n,format:"plain",locale:K(s),visible:!0}),c=i.results?i.results:[],p=(await r()).data,u=bc(c,p);return {meta:{...i.meta,format:a},results:Rc(u,p)}}}function $n(){return async e=>{let t=typeof e=="string"?{url:e}:e;try{let r=await fr.request(t);return {ok:!0,status:r.status,data:r.data}}catch(r){throw new S(r.response?.status||500,r.message)}}}function qn(e){return async t=>{try{let{variantPaths:r}=t,o=[];if(r)for(let n=0;n<r.length;n++){let a=r[n];(await e.search.findAll({attributes:["slug"],where:{variant_id:a.variantId}})).forEach(i=>{o.push(`/${a.prefix}/${a.variantSlug}/${i.slug}`);});}return {...t,paths:o,revalidated:0,samples:[]}}catch(r){throw new S(r.response?.status||500,r.message)}}}function Gn(){return async e=>{try{let{target:t}=e;return {target:t}}catch(t){throw new S(t.response?.status||500,t.message)}}}function Dt(e,t){let r=[],o=a=>Object.values(t).reduce((i,c)=>("inputs"in c&&c.inputs.includes(a)&&(i.push(c.id),i=i.concat(o(c.id))),i),[]);e.forEach(a=>{r=r.concat(o(a));});let n=[];return r.forEach(a=>{n.includes(a)||n.push(a);}),n}function Ac(e,t){return e.some(r=>t.includes(`role.${r}`))}function Kn(e){let{report:t}=e;return r;async function r(o){let n=await t.findByPk(o.report_id,{include:{association:"sections",separate:!0,where:{id:o.section_id},include:[{association:"blocks",separate:!0,include:[{association:"contentByLocale",separate:!0,where:{locale:{[Op.or]:[o.locale,"logic"]}}},{association:"inputs"},{association:"consumers"}]}]}}).then(s=>s&&s.sections&&Array.isArray(s.sections)?s.sections.reduce((i,c)=>{let l=c.blocks.map(p=>{let u=p.toJSON();return u.inputs=u.inputs.map(d=>d.id),u.consumers=u.consumers.map(d=>d.id),u});return i.concat(l)},[]):[]),a=n.filter(s=>s.settings&&s.settings.access&&Array.isArray(s.settings.access)&&Array.isArray(o.roles)&&(s.settings.access.includes("private")||Ac(o.roles,s.settings.access))).map(s=>s.id);return a=a.concat(Dt(a,n)),{params:{...o},data:n.filter(s=>a.includes(s.id))}}}var vc=Object.keys(Kr).filter(e=>e.indexOf("Icon")===0);async function jn(){return {meta:{provider:"tabler"},results:vc}}async function Hn(e){let t=Kr[e.name]?Kr[e.name]:()=>"";return renderToString(createElement(t))}var kc={tabler:jn};function Wn(e){let t=kc[e];if(!t)throw new S(500,`Wrong provider dbListIconsFactory.ts: ${e}`);return k(()=>t())}var Pc={tabler:Hn};function Jn(e){return k(t=>{let r=Pc[e];if(!r)throw new S(500,`Wrong provider dbReadIconFactory.ts: ${t.provider}`);return r({name:t.name,provider:e})})}function Ut(e,t,r){return Ne().then(o=>{Object.assign(r,ct(o));})}function ct(e,t){let r={},o=ve(t||{providers:[]});return t&&o.actions&&o.source==="custom"?(r.searchRole=k(o.actions.searchRole()),r.searchUser=k(o.actions.searchUser()),r.readUser=k(o.actions.readUser()),r.updateUser=k(o.actions.updateUser())):o.source==="auth0"&&(r.searchRole=k(Oo()),r.searchUser=k(Lo()),r.readUser=k(No()),r.updateUser=k(Do())),{..._n(e),searchReport:k(zn(e)),readMetadata:k(pr(e)),regenerateSearch:k(Vn(e)),imageFlickrSearch:Nt(e,"flickr"),imageLocalSearch:Nt(e,"local"),imageUnsplashSearch:Nt(e,"unsplash"),imageAdobeSearch:Nt(e,"adobe"),imageFlickrSave:it(e,"flickr"),imageLocalSave:it(e,"local"),imageUnsplashSave:it(e,"unsplash"),imageUploadSave:it(e,"upload"),imageAdobeSave:it(e,"adobe"),urlProxy:$n(),searchRole:r.searchRole,searchUser:r.searchUser,readUser:r.readUser,updateUser:r.updateUser,updateMyData:k(Uo()),revalidateReport:k(qn(e)),revalidateUrl:k(Gn()),readPrivateBlocks:k(Kn(e)),listTablerIcons:Wn("tabler"),readTablerIcon:Jn("tabler")}}async function jr(e){try{let t=new wc.IncomingForm,r=await new Promise((o,n)=>{t.parse(e,(a,s,i)=>{if(a){console.log("Error in formidable parse function inside internal parseBody.ts",a),n(a);return}o({fields:s,files:i});});});return {...r.fields,files:r.files}}catch(t){return {error:t}}}function Fe(e,t){let r=ae(e,"create",t),o=ae(e,"read",t),n=ae(e,"update",t),a=ae(e,"delete",t),s=ae(e,"updateBulk",t),i=ae(e,"createBulk",t);return [B("POST",`create/bulk/${t}`,c=>{let{body:l}=c,{files:p,...u}=l,d=Object.keys(u).map(m=>u[m]);return i(d)},[G.EDITOR]),B("POST",`create/${t}`,c=>{let{body:l}=c;return r(l)},[G.EDITOR]),B("GET",`read/${t}`,c=>{let l=c.query,p=q(l.id).map(Q);return o({id:p,include:lr(l.include)})}),B("POST",`update/${t}`,c=>{let{body:l}=c;return n(l)},[G.EDITOR]),B("POST",`update/bulk/${t}`,c=>{let{body:l}=c,{files:p,...u}=l,d=Object.keys(u).map(m=>u[m]);return s(d)},[G.EDITOR]),B("DELETE",`delete/${t}`,c=>{let l=Q(c.query.id);return a(l)},[G.EDITOR])]}function Yn(e){let{validateVariantSlug:t}=e;return [...Fe(e,"variant"),B("GET","validate/variant",r=>{let o=r.query,n=Q(o.dimension);return t({dimension:n,slug:ar(o.slug)})},[G.EDITOR])]}function lt(e,t){let r=`image${fe(t)}Save`,o=e[r];return B("POST",`images/save/${t}`,n=>{let a=n.body;if(!a.content_id)throw new S(400,"Missing 'content_id' parameter.");if(!a.image_id)throw new S(400,"Missing 'image_id' parameter.");return o(a)},[G.EDITOR])}function Ft(e,t){let r=`image${fe(t)}Search`,o=e[r];return B("GET",`images/search/${t}`,async n=>{let a=q(n.query.prompt)[0];if(!a)throw new S(400,"Empty 'prompt' param.");return o({prompt:a,page:Q(n.query.page)})},[G.EDITOR])}function Qn(e){let{readMetadata:t}=e;return B("GET","read/metadata",()=>t({}))}function Zn(e){let{regenerateSearch:t}=e;return B("POST","search/regenerate",()=>t(void 0),[G.EDITOR])}function Xn(e){let{searchReport:t}=e;return B("GET","search/reports",r=>{let o=Ic(r.query);return t(o)})}function Ic(e){return {...Mt(e),format:q(e.format)[0]}}function ea(e){let{urlProxy:t}=e;return B("GET","url/proxy",r=>{let{url:o,method:n="GET"}=r.query;if(!o)throw new S(400,"Missing URL parameter");return t({url:Array.isArray(o)?o.join(","):o,method:q(n)[0]==="POST"?"POST":"GET"})})}function ta(e){let{readMetadata:t,revalidateReport:r}=e;return B("GET","revalidate/report",async(o,n)=>{let{reportId:a,profilePrefix:s}=o.query;if(!a||!s)throw new S(400,"Missing URL parameter in revalidate factory: reportId or profilePrefix");try{let i=parseInt(`${a}`,10),c=`${s}`.split("/").filter(y=>y!=="").join("/"),l=[],p=await t({}).then(y=>y.ok?y.data.data.find(h=>h.id===i):[]);p&&p.mode===Se.UNILATERAL&&p.dimensions.forEach(y=>{y.variants.forEach(h=>{l.push({prefix:c,variantId:h.id,variantSlug:h.slug});});});let u=await r({profilePrefix:c,reportId:i,variantPaths:l}),d=[],m=0;return u.ok&&(m=u.data.paths.length,d=u.data.paths.slice(0,5),Promise.all(u.data.paths.map(y=>{let h;try{h=n.revalidate(y,{unstable_onlyGenerated:!0});}catch(R){console.log("error",y,R);}return h}))),{ok:!0,status:200,data:{reportId:a,revalidated:m,samples:d}}}catch(i){throw console.log(i),new S(500,"Error revalidating")}},[G.EDITOR])}function ra(){return B("GET","revalidate/url",async(e,t)=>{let{target:r}=e.query;if(r)try{return t.revalidate(r,{unstable_onlyGenerated:!0}),{ok:!0,status:200,data:{target:r}}}catch(o){throw console.log(o),new S(500,"Error revalidating")}else throw new S(400,"Missing target parameter in revalidate factory")},[G.ADMIN,G.EDITOR,G.WRITER])}var{localeDefault:Cc}=j();function oa(e){let{readPrivateBlocks:t}=e;return B("POST","read/blocks/private",(r,o,n)=>{let a={report_id:parseInt(r.body.report_id,10),locale:r.body.locale||Cc,roles:n&&n.user?n.user.bespoke_roles:[],section_id:r.body.section_id||[]};return t(a)},[])}function na(e){let{searchRole:t}=e;return B("GET","auth/search/roles",(r,o)=>t(""),[G.EDITOR,G.ADMIN])}function aa(e){let{searchUser:t}=e;return B("GET","auth/search/users",r=>t({query:r.query.query,role_id:r.query.role_id,page:r.query.page||0}),[G.ADMIN])}function sa(e){let{readUser:t}=e;return B("GET","auth/read/user",r=>t(r.query.user_id),[G.ADMIN])}function ia(e){let{updateUser:t,readUser:r}=e;return B("POST","auth/update/user",async(o,n,a)=>{let s=o.body,i=await t(s);return a&&a.user&&s.user_id===a.user.id&&(await r(a.user.id)).ok,i},[G.ADMIN])}function ca(e){let{updateUser:t,readUser:r}=e;return B("POST","auth/update/me",async(o,n,a)=>{let{report_id:s,user_metadata:i}=o.body;console.log("auth/update/me","session",a);let c={user_id:a.user.id,user_metadata:{}};try{let{user:l}=a;return a&&l&&s&&(l.bespoke_app_metadata&&l.bespoke_app_metadata.reports&&Array.isArray(l.bespoke_app_metadata.reports)?c.app_metadata={...l.bespoke_app_metadata}:c.app_metadata={reports:[]},c.app_metadata.reports.push({reportId:s})),i&&(c.user_metadata={...l.bespoke_app_metadata,...i}),await t(c),(await r(c.user_id)).ok,{ok:!0,status:200,data:{ok:!0,message:"User & session updated"}}}catch(l){return {ok:!1,status:500,error:l.message}}},[])}async function Bc(e){try{return "JVBERi0xLjcKJYGBgYEKCjYgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAxMTYKPj4Kc3RyZWFtCnicHYqxCsJAEAX79xVbC+Lmbm/3DoKFeEcKG2F/QCSKYgol+P0mMkwxMG8cHEwrnzt2w/j6jvPjetkalyyZLReKTH5DEPITuv/aUWKKiz6hTywiGliTZWNtFkyWitr0qEWrWmBbq2ndkz/hG1THGT/eextGCmVuZHN0cmVhbQplbmRvYmoKCjcgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA1Ci9GaXJzdCAyNgovTGVuZ3RoIDM2Mgo+PgpzdHJlYW0KeJzVUt9LwzAQfs9fcY/6IEnTH2llDLa1VZChbIKi+JC1YVRGIm0m87/3ru0cexCfpXwkd/cl+a73BSBAQhRBCCqFCOJQQgwqCGAyYfzx68MAf9Bb0zF+19QdvCJHwAreGF+4vfUQsOmUnbgL7fXObdlwCAIiHxkPrav3lWlhUhZlKYQSQiQRIhFC5rguEBlCYow1meIeoaIRmFOhEOEMa+WARA1nqN5z4/F8gStyE+LkAzdKh/jnXXqrGO6Qf+nJpowvXZ1rb+Aiv5ZCRiKTsQyjTKYvl/g7WqO9+7/N9fobZ3/t8GzONF4acmvIA/2U+cp0bt9WOHbilQ4rtLk1u0/jm0pfKZGlqFOlGXpsNAZ/vt+8m6qnUlgc/M3ak4YhQbmlqRs9dwd0n8APOwDshDw4s9Z5cmXvR+tRDUXJ6NEzySSI8fV+4/uQkgHjc92ZXupJJ4qwlasbuwX+1NiZ7Zpjgm78BkHDxfcKZW5kc3RyZWFtCmVuZG9iagoKOCAwIG9iago8PAovU2l6ZSA5Ci9Sb290IDIgMCBSCi9JbmZvIDMgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW5ndGggNDEKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOSBdCj4+CnN0cmVhbQp4nBXEwQ0AIAwDsUuKxJf9JUZippb4YaDbbEhKTpWWOCDezxcGYeEDtQplbmRzdHJlYW0KZW5kb2JqCgpzdGFydHhyZWYKNjY5CiUlRU9G"}catch(n){throw console.error("Error generating PDF:",n),n}}function la(){return B("POST","pdf",async(e,t)=>{let{slugs:r,path:o}=e.body;if(!r||!o)throw new S(400,"Missing path parameter in request.");{new URL(o,e.headers.origin);return {ok:!0,status:200,data:await Bc()}}})}function ua(e,t){let r=`list${fe(t)}Icons`,o=e[r];return B("GET",`list/icons/${t}`,async()=>o({}),[G.EDITOR])}function pa(e,t){let r=`read${fe(t)}Icon`,o=e[r];return B("GET",`read/icons/${t}/icon.svg`,async n=>o({provider:t,name:n.query.name}))}function da(){return B("GET","report",async(e,t)=>{let{report:r,prefix:o,locale:n}=e.query;if(!r)throw new S(400,"Missing report parameter.");if(!o)throw new S(400,"Missing report parameter.");if(!n)throw new S(400,"Missing report parameter.");try{let s=await(await fetch(`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${n}${o}${r}`)).text(),l=new Mc().parseFromString(s,"text/html").getElementById("__NEXT_DATA__")?.textContent,p=JSON.parse(l).props;return {ok:!0,status:200,data:{variables:p.pageProps.initialState.variables,status:p.pageProps.initialState.status}}}catch(a){throw console.error(a),new S(500,"Couldn't find page cache")}})}var Nc=Ye();function Hr(e,t){return `${e.toUpperCase()} ${t.toLowerCase()}`}function Dc(e,t){let r=ct(e,t);return Object.fromEntries([...Fe(r,"block"),...Fe(r,"dimension"),...Fe(r,"formatter"),...Fe(r,"report"),...Fe(r,"section"),...Yn(r),...Cn(r),Xn(r),Qn(r),Zn(r),lt(r,"flickr"),lt(r,"local"),lt(r,"unsplash"),lt(r,"upload"),lt(r,"adobe"),Ft(r,"flickr"),Ft(r,"local"),Ft(r,"unsplash"),Ft(r,"adobe"),ea(r),na(r),aa(r),sa(r),ia(r),ca(r),ta(r),ra(),oa(r),la(),ua(r,"tabler"),pa(r,"tabler"),da()].map(({handler:o,method:n,path:a,roleRequired:s})=>[Hr(n,a),{handler:o,roleRequired:s}]))}function Uc(e){let t=Ne().then(r=>Dc(r,e));return async function(o,n){await Oc(o,n,{methods:["GET","HEAD","PUT","PATCH","POST","DELETE"],origin:"*"});let{query:a,method:s}=o,{path:i,...c}=a;if(i&&s){let l=await t.then(p=>{let u=[].concat(i).join("/"),d=Hr(s,u);return p[d]});if(l){let p=await me(o,n,e);if(l.roleRequired){if(!p)return n.status(401).json({error:"Unauthorized. Must be logged in."});let u=p&&p.user&&p.user.bespoke_roles&&Array.isArray(p.user.bespoke_roles)?p.user.bespoke_roles:[];if(Array.isArray(l.roleRequired)&&l.roleRequired.length>0&&!Qt(u,l.roleRequired))return n.status(402).json({error:"Forbidden. Not enough roles."})}if(l.handler)return ["POST","DELETE"].includes(s)&&(o.body=await jr(o)),Promise.resolve(o).then(u=>l.handler(u,n,p||void 0)).then(async u=>{if(u&&"error"in u)throw new S(u.status,u.error);if(u.ok)if(u.data instanceof Buffer){let d=await Lc(u.data),m=Buffer.byteLength(u.data);n.writeHead(u.status,{"Content-Type":d?d.mime:"image/jpeg","Content-Length":m.toString()}).send(u.data);}else o.url&&o.url.indexOf("/icon.svg?name=")>0?(n.setHeader("Content-Type","image/svg+xml"),n.status(u.status).send(u.data)):n.status(u.status).json({data:u.data});}).catch(u=>{Nc&&console.trace("Backend Error",u),n.status(u.code).json({error:u.message});})}}else i||await t.then(console.log);return n.status(404).json({error:"No matching route",path:i,query:c})}}var Fc=e=>{let t=e;return async function(r,o){let n=await t({test:"pala"});return o.json(n)}},Vc=Fc;var Wt={};ds(Wt,{addBlockToState:()=>_o,cloneEntity:()=>ja,createEntity:()=>qa,deleteEntity:()=>Ka,deleteQueryParam:()=>nu,readEntity:()=>ne,readMember:()=>Ht,readMetadata:()=>su,readPrivateBlocks:()=>mu,readUser:()=>uu,recalculateVariables:()=>es,removeBlocksFromState:()=>xr,reportSearch:()=>tu,resetSectionState:()=>Za,revalidateReport:()=>gu,revalidateUrl:()=>fu,searchMember:()=>ou,searchRegenerate:()=>ru,searchRole:()=>cu,searchUser:()=>lu,setCurrentLocale:()=>Zl,setPreferredLocale:()=>Xl,setPreviews:()=>Ql,setQueryParam:()=>au,setSectionState:()=>Qa,setStatus:()=>Ya,updateEntity:()=>Ga,updateMyData:()=>du,updateUser:()=>pu,urlProxy:()=>iu,variantValidateSlug:()=>eu});function le(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,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 te(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>le(e,{...o,method:"GET",params:r?r(n):n})}function re(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>le(e,{...o,method:"POST",data:r?r(n):n})}function Ve(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>le(e,{...o,method:"DELETE",params:r?r(n):n})}function ut(e,t){return r=>le(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function Vt(e,t){return r=>le(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function ma(e,t){return ()=>le(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function fa(e,t){return r=>le(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var pt=e=>({id:e}),$c=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 zt(e){let t=fr.create({baseURL:e});return {createBulkBlock:re(t,"create/bulk/block"),createBlock:re(t,"create/block"),createDimension:re(t,"create/dimension"),createFormatter:re(t,"create/formatter"),createReport:re(t,"create/report"),createSection:re(t,"create/section"),createVariant:re(t,"create/variant"),deleteBlock:Ve(t,"delete/block",pt),deleteDimension:Ve(t,"delete/dimension",pt),deleteFormatter:Ve(t,"delete/formatter",pt),deleteReport:Ve(t,"delete/report",pt),deleteSection:Ve(t,"delete/section",pt),deleteVariant:Ve(t,"delete/variant",pt),readBlock:te(t,"read/block"),readDimension:te(t,"read/dimension"),readFormatter:te(t,"read/formatter"),readReport:te(t,"read/report"),readSection:te(t,"read/section"),readVariant:te(t,"read/variant"),updateBulkBlock:re(t,"update/bulk/block"),updateBlock:re(t,"update/block"),updateDimension:re(t,"update/dimension"),updateFormatter:re(t,"update/formatter"),updateReport:re(t,"update/report"),updateSection:re(t,"update/section"),updateVariant:re(t,"update/variant"),searchReport:te(t,"search/reports"),validateVariantSlug:te(t,"validate/variant"),readMember:te(t,"read/members",$c),readMemberImage:te(t,{url:"member/image",responseType:"blob"}),searchMember:te(t,"search/members"),updateMember:te(t,"update/members"),imageLocalSearch:Vt(t,"local"),imageLocalSave:ut(t,"local"),imageFlickrSearch:Vt(t,"flickr"),imageFlickrSave:ut(t,"flickr"),imageUnsplashSearch:Vt(t,"unsplash"),imageUnsplashSave:ut(t,"unsplash"),imageUploadSave:ut(t,"upload"),imageAdobeSearch:Vt(t,"adobe"),imageAdobeSave:ut(t,"adobe"),readMetadata:te(t,"read/metadata"),regenerateSearch:re(t,"search/regenerate"),urlProxy:te(t,"url/proxy"),searchRole:te(t,"auth/search/roles"),searchUser:te(t,"auth/search/users"),readUser:te(t,"auth/read/user"),updateUser:re(t,"auth/update/user"),updateMyData:re(t,"auth/update/me"),revalidateReport:te(t,"revalidate/report"),revalidateUrl:te(t,"revalidate/url"),readPrivateBlocks:re(t,"read/blocks/private"),listTablerIcons:ma(t,"tabler"),readTablerIcon:fa(t,"tabler")}}var{localeDefault:Kc}=j();function ce(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||Kc}}var Wc=lr(process.env.REPORTS_LOGGING),ze=Jc;function Jc(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=ce(a);try{if(t){let l=new Proxy(console,{get(u,d){return Yc(d,"log","debug","info","warn","error")?(...m)=>{i.push(`${d} ${Date.now()} - ${m.map(y=>format(y)).join(" ")}`),Wc&&u[d](...m);}:u[d]}}),p;return n?p=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,Ie,o,c,n):p=new Function(e,"console","libs","formatters","locale",r)(t,l,Ie,o,c),typeof p=="object"&&Object.keys(p).length>0&&Object.assign(s,p),{vars:s,error:null,log:i,output:p}}return {vars:s,error:"Invalid API Link",log:i}}catch(l){return {vars:s,error:l.message,log:i}}}function Yc(e,...t){return t.includes(e)}function Wr(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 dt=Qc;function Qc(e,t,r,o=!1){let{variables:n}=ce(r);if(!e)return e;let a=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(a,(i,c,l)=>{let p=d=>d;if(c){let d=c.replace(/^\w/g,m=>m.toLowerCase());d in t?p=t[d]:p=m=>`${c}${m}`;}let u=Array.isArray(n[l])?Wr(n[l]):n[l];if(u===void 0)return o?i:"N/A";try{return p(u,Ie,t)}catch(d){return console.error(`Error using formatter ${p.name}
|
|
60
|
+
`,`Error message: ${d.message}`),"N/A"}})}var Jr=(e,t,r)=>{let{variables:o}=r,n=s=>s.allowed==="never"?!1:!s.allowed||s.allowed==="always"||o[s.allowed],a={...e};return Object.keys(a).forEach(s=>{typeof a[s]=="string"?a[s]=dt(a[s],t,r):Array.isArray(a[s])?a[s]=a[s].filter(n).map(i=>typeof i=="object"?Jr(i,t,r):typeof i=="string"?dt(i,t,r):i):typeof a[s]=="object"&&a[s]!==null&&!(a[s]instanceof Date)&&(a[s]=Jr(a[s],t,r));}),a},dr=Jr;var ga=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var Yr=(e,t,r)=>{if(!r)return !1;if(e===Be.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))};function Qr(e,t,r,o,n=!1){let{variables:a}=ce(o),s=dr({logic:t},r,o).logic,i=ze("variables",a,s,r,void 0,o),{vars:c,log:l,error:p}=i,u=c.type||Be.SINGLE,d=c.component||"Selector",m=c.hideLabel||"false",y=c.resetSectionVars||"false",h=c.name||"Unlabeled Selector",R=ga(c.options||[]),A=b=>u===Be.MULTI&&!Array.isArray(b)?[b]:b,P=c.defaultValue,I;if(P&&(P=A(P),Yr(u,P,R)&&(I=P)),!I){let b=R&&R[0]&&R[0].id||R[0]||"";I=A(b);}if(n&&typeof window<"u"){let b=`selector${e}id`,O=new URLSearchParams(window.location.search),F=Object.fromEntries(O)[b];F&&!Yr(u,F,R)&&F!==void 0&&(O.delete(b),window.history.replaceState(null,null,`?${O.toString()}`));}return {config:{name:h,type:u,options:R,defaultValue:I,component:d,hideLabel:m,resetSectionVars:y},log:l,error:p}}function Zr(e,t,r){if(!e)return !1;let o=Array.isArray(r)?r:r.split(",");return Array.isArray(o)&&o.every(n=>e.map(a=>`${a[`${t} ID`]}`).includes(n))}function Xr(e,t,r,o,n=!1){let{variables:a}=ce(o),s=dr({logic:t},r,o).logic,i=ze("variables",a,s,r,void 0,o),{vars:c,log:l,error:p}=i;if(n&&typeof window<"u"){let d=`multihierarchySelector${e}-value`,m=`multihierarchySelector${e}-type`,y=new URLSearchParams(window.location.search),h=Object.fromEntries(y),R=h[d],A=h[m];R&&R!==void 0&&A&&A!==void 0&&!Zr(c.data,A,R)&&(y.delete(d),y.delete(m),window.history.replaceState(null,null,`?${y.toString()}`));}return {config:c,log:l,error:p}}var Zc=(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===Be.MULTI){let l=s?s.split(","):r.defaultValue,p=r.options.filter(u=>l.includes(u.id));return {[`selector${e}id`]:l,[`selector${e}label`]:(p||[]).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}},ya=Zc;var Xc=(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,p=s||c,u=l?l.split(","):r.defaultValue||[],d=p||r.defaultValueType||"",m=r.data?.filter(y=>u.includes(`${y[`${d} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:u,[`multihierarchySelector${e}label`]:[...new Set((m||[]).map(y=>y[d]))],[`multihierarchySelector${e}type`]:d}},ha=Xc;var{localeDefault:Ra,locales:el}=j(),tl=Object.values(Dr),rl=(e,t=Ra)=>e&&tl.includes(e.type)?{locale:Ur,locales:[Ur]}:{locale:t,locales:el},ba=(e,t=Ra)=>{if(!e)return {};let{locale:r}=rl(e,t);return e.contentByLocale?.[r]?.content};function ol(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 Sa=ol;function eo(e){return e.type===C.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}var $e=lr(process.env.NEXT_PUBLIC_REPORTS_DEBUG),il=process.env.REPORTS_ORIGIN||"";Ea(fr,{retries:3,retryDelay:Ea.exponentialDelay,onRetry:(e,t,r)=>{console.log("Generator request failed. Retrying... Count: ",e),console.log("URL: ",r.url),console.log(t.message);}});fr.interceptors.request.use(e=>({...e,requestStart:Date.now()}));fr.interceptors.response.use(e=>({...e,requestDuration:new Date().getTime()-e.config.requestStart}),e=>Promise.reject(e));var cl=(e,t,r)=>{let o=dt(e,t,r);return o.startsWith("http")||(o=`${il}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:ll}=zt("/api/cms");function mr(e){return e.ok!==void 0}function to(e){this.message=e,this.name="ApiFetchException";}var Aa=process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0;async function ul(e,t,r="en",o){let n=Date.now(),a=e,s,c=new URL(e).searchParams;if(c.has("bespoke_slugs")){let u=new RegExp(`[?&]bespoke_slugs=${c.get("bespoke_slugs")}`,"g");a=a.replace(u,"");}let l=o?o.settings:{},p=!!(l&&l.useProxy&&l.useProxy==="true");if(typeof window=="object"&&p){let u=await ll({url:a,timeout:Aa});if(u.ok===!0)s=u.data;else throw new to(u?.error)}else try{let u=await fr({url:a,timeout:Aa});if(u.status===200)u.headers["content-type"]==="text/csv"?s=csvParse(u.data):s=u.data;else throw new to("No response")}catch(u){throw new to(u.message)}if(c.has("bespoke_slugs")){let u=c.get("bespoke_slugs");if(u){let d=u.split(",");if(d.length===3){let[m,y,h]=d,R=Tt(s,h);if(R&&Array.isArray(R)){let A=Array.from(new Set(R.map(E=>`${E[y]}`).filter(E=>!["","undefined"].includes(E)))),P=A.join("").length>2e3,I=await t({mode:P?"whole":"ids",ids:P?void 0:A,all:!1,locale:r,variant:[parseInt(m,10)],output:"lite",limit:A.length+1}).then(E=>{let b=[];return mr(E)?E.ok&&(b=E.data.results):b=E.results,b&&Array.isArray(b)?b:[]}).catch(E=>(console.error(`Error hydrating slugs for Variant: ${m}, Key: ${y}, Accessor: ${h}`),console.error(` Url ${e}`),o&&console.error(` From Section ${o.section_id} and Block ${o.id}`),console.error(E),[]));if(I){let E=Object.fromEntries(I.map(b=>[b.id,`/${b.variant_slug}/${b.slug}`]));R.map(b=>(b.bespoke_slug=E[b[y]]?E[b[y]]:null,b));}}}}}return {data:s,requestDuration:Date.now()-n}}function pl(e){this.name="BlockException",this.message=e;}async function Ta(e,t,r,o){let{locale:n,variables:a,query:s}=ce(r),i=ml(e,r,a,t),c=null,l=e.contentByLocale?.logic?.content?.api,p=null,u=null,d=null;if(!i)return {outputVariables:{},renderVariables:{},status:{allowed:!1,hiddenByCascade:e.id}};if(e.type===C.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:i,hiddenByCascade:e.id}};if(l){d=cl(l,t,r);let E=d.split(kn).filter(D=>D!==""),b=[];for(let D=0;D<E.length;D++){let F=E[D];new RegExp("^(?:[a-z+]+:)?//","i").test(d)||(F=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${F}`.replace(/([^:]\/)\/+/g,"$1")),b.push(ul(F,o,n,e).catch(W=>{throw new pl(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${a.report_name} (${a.report_id}) failed.
|
|
61
61
|
Error fetching ${F}.
|
|
62
62
|
Message: ${W.message}.
|
|
63
|
-
`)}));}let O=await Promise.all(b).catch(D=>D.message);if(typeof O=="string"&&O)return {outputVariables:{},renderVariables:{},status:{error:O}};c=O.length===1?O[0].data:O.map(D=>D.data),u=O.reduce((D,F)=>D+JSON.stringify(F.data).length/1024,0),p=Math.max(...O.map(D=>D.requestDuration));}if(e.type===B.SELECTOR){let{config:E,log:b,error:O}=Qr(e.id,e.contentByLocale[n].content.logic,t,r,!0);return {outputVariables:ya(e.id,s,E),renderVariables:E,status:{log:b,error:O,allowed:i}}}if(e.type===B.MULTIHIERARCHY_SELECTOR){let{config:E,log:b,error:O}=Xr(e.id,e.contentByLocale[n].content.logic,t,r,!0);return {outputVariables:ha(e.id,s,E),renderVariables:E,status:{log:b,error:O,allowed:i}}}if(e.type===B.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:i}};if(e.type===B.RELATED){let E=e.contentByLocale?.logic?.content?.simple?.compare||"variant",b=e.contentByLocale?.logic?.content?.simple?.limit||4,O=Object.keys(a).filter(T=>T.startsWith("report_id")).map(T=>a[T]),D=Object.keys(a).filter(T=>T.startsWith("dimension_id")).map(T=>a[T]),F=Object.keys(a).filter(T=>T.startsWith("variant_id")).map(T=>a[T]),Z=Object.keys(a).filter(T=>T.startsWith("id")).map(T=>a[T]);if(!Z.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:!1}};let W=await o({mode:"ids",locale:n,ids:Z,output:"lite",variant:F}).then(T=>{let N=[];return mr(T)?T.ok&&(N=T.data.results):N=T.results,N&&Array.isArray(N)?N:[]}).catch(T=>(console.log("Error getting related members",T),[]));if(D.length>1){let T=Object.keys(a).filter(U=>U.startsWith("variant_slug")).map(U=>a[U]),N=W.map((U,V)=>{let M={mode:"related",locale:n,related:b??4,current_ids:[U.content_id],output:"full",variant_ids:[U.variant_id]};return V===0&&(M.include_ids=[U.content_id]),M}),_=await Promise.all(N.map(U=>o(U))).then(U=>U.flatMap(V=>{let M=[];return mr(V)?V.ok&&(M=V.data.results):M=V.results,M&&Array.isArray(M)?M:[]})).catch(U=>(console.log("Error getting related members",U),[])),w=_.reduce((U,V)=>{let M=V.variant_slug;return U[M]||(U[M]=[]),U[M].push(V),U},{}),$=[],X=Object.keys(w),x=[{combination:[],index:0}];for(;x.length>0;){let U=x.pop();if(!U)continue;let{combination:V,index:M}=U;if(M===X.length){$.push(V);continue}let de=X[M],Je=w[de];for(let Yt of Je)x.push({combination:[...V,Yt],index:M+1});}return {outputVariables:{related_reports:$.map(U=>{let V=U.sort((M,de)=>T.indexOf(M.variant_slug)-T.indexOf(de.variant_slug));return {entities:V,link:"/"+V.map(M=>`${M.variant_slug}/${M.slug}`).join("/")}})},renderVariables:{},status:{log:[],allowed:_.length>0}}}let L=W.map(T=>T.content_id),z={mode:"related",locale:n,related:b??4,current_ids:L,output:"full"};E&&(E==="report"?z.report_ids=O:E==="dimension"?z.dimension_ids=D:z.variant_ids=F);let H=await o(z).then(T=>{let N=[];return mr(T)?T.ok&&(N=T.data.results):N=T.results,N&&Array.isArray(N)?N:[]}).catch(T=>(console.log("Error getting related members",T),[]));return {outputVariables:{related_reports:H.map(T=>({entities:[T],link:`/${T.variant_slug}/${T.slug}`}))},renderVariables:{},status:{log:[],allowed:H.length>0}}}let{logic:m}=ba(e,n),y=dt(m,t,r),h=ze("resp",c||{},y,t,a,r),{vars:R,error:A,log:P}=h;if(typeof R!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:P,duration:p,responseSize:u,resp:c,api:d,allowed:i}};let I=Object.keys(R).reduce((E,b)=>({...E,[`${e.type}${e.id}${b}`]:R[b]}),{});return {renderVariables:R,outputVariables:[B.GENERATOR,B.SECTION_FLAG].includes(e.type)?R:I,status:{log:P,error:A,duration:p,responseSize:u,resp:c,api:d,allowed:i}}}function dl(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].section_id===t[r].section_id||!n).forEach(l=>ro(l,t,o,!1,a,n,s));}})}var ro=(e,t,r=[],o=!0,n=!0,a=!0,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(p=>ro(p,t,r,o,!1,a,s));}),i&&i.consumers.length&&n&&dl(i,t,e,r,a,n,s),r},ml=(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 a=ce(t),{error:s,output:i}=ze("variables",r,e.settings.allowedLogic||"return false;",o,void 0,a);s||(n=!!i);}return n},gr=async(e,t,r,o,n,a={},s,i="section")=>{let c=i==="section",l=ce(n),p=l.variables,u={...a.variables??{}},d={...a.status??{}},m=new Set,y=[],h={};r?h={...h,[r]:e[r]}:t?h=(t??[]).reduce((L,{id:z})=>({...L,...Sa(z,e)}),{}):h=Object.values(e).filter(L=>eo(L)).reduce((L,z)=>({...L,[z.id]:z}),{});let R=Object.values(h).filter(L=>eo(L));if(R.length>0){$e&&console.log("%crunConsumers: calculating section flags","color:purple",R.map(v=>v.id).join(", "));let L=Object.fromEntries(await Promise.all(R.map(async v=>[v.id,await Ta(v,o,{...l,variables:p,locale:p.locale},s).then(T=>{let{outputVariables:N,status:_}=T;if(_.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${v.id}, Section ${v.section_id}) failed with message: ${_.error}. `);d[v.id]={allowed:!1,error:_.error},u[v.id]={};}return (v.consumers.length>0||[B.GENERATOR,B.SECTION_FLAG,B.RELATED].includes(v.type))&&_.allowed&&Object.keys(N).length>0?u[v.id]=N:u[v.id]={},i==="report"?(d[v.id]={allowed:_.allowed},[B.GENERATOR,B.SECTION_FLAG].includes(v.type)&&_.api&&(d[v.id].api=_.api)):d[v.id]=_,T})]))),H=Object.entries(L).filter(([v,T])=>!T.outputVariables[Pn]).map(([v])=>Number(v));m=new Set(H.map(v=>e[v].section_id)),Object.values(h).filter(v=>m.has(v.section_id)).forEach(v=>{y.push(v.id),delete h[v.id];}),$e&&console.log("%crunConsumers: removing sections","color:purple",m.keys());}let A=m.size>0?Object.fromEntries(Object.entries(e).filter(([L,z])=>m?.has(z.section_id)?(y.includes(z.id)||y.push(z.id),!1):!0)):e;if(y.length>0&&(A=Object.fromEntries(Object.entries(A).map(([L,z])=>{let H={...z,inputs:z.inputs.filter(v=>!y.includes(v)),consumers:z.consumers.filter(v=>!y.includes(v))};return [L,H]}))),!r&&!t)return {variables:{...a.variables??{},...u},status:{...a.status??{},...d}};i==="report"&&y.length>0&&y.forEach(L=>{delete u[L],delete d[L],delete e[L];}),$e&&console.log("%crunConsumers: running root blocks","color:purple",Object.keys(h));let P=Object.keys(h).reduce((L,z)=>{let H=new Date,v=ro(Number(z),A,[],!r,!0,c).map(_=>_.split("-")),N=(new Date().getTime()-H.getTime())/1e3;return $e&&console.log(`%cResolved dependencies for ${z} (${N.toFixed(2)}s)`,"color:blue"),[...L,...v]},[]),I=new Date,E=Object.keys(h).reduce((L,z)=>L.includes(z)?[...L]:[z,...L],nl(P)),O=(new Date().getTime()-I.getTime())/1e3;$e&&console.log(`%cResolved DAG (${O.toFixed(2)}s): `,"color:green",E);async function D(L,z){let H=new Map;for(let v of L){let T=z[v],_=Promise.all(T.inputs.filter(w=>L.includes(String(w))).map(w=>H.get(Number(w)))).then(async()=>{let w=T.inputs.reduce((V,M)=>({...V,...u[M]}),p),$=T.inputs.find(V=>(T.settings?.ignoreCascade?T.settings?.ignoreCascade:[]).includes(V)||!d[V]?!1:!d[V].allowed||d[V].hiddenByCascade);if($){d[v]={allowed:!1,hiddenByCascade:d[$].hiddenByCascade||$},u[v]={};return}let X=new Date,x=await Ta(T,o,{...l,variables:w,locale:w.locale},s).then(({outputVariables:V,status:M})=>{if(M.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${v}, Section ${T.section_id}) failed with message: ${M.error}. `);d[v]={allowed:!1,error:M.error},u[v]={};}(T.consumers.length>0||[B.GENERATOR,B.SECTION_FLAG,B.RELATED].includes(T.type))&&M.allowed&&Object.keys(V).length>0?u[v]=V:u[v]={},i==="report"?(d[v]={allowed:M.allowed},[B.GENERATOR,B.SECTION_FLAG].includes(T.type)&&M.api&&(d[v].api=M.api)):d[v]=M;}),U=(new Date().getTime()-X.getTime())/1e3;return $e&&console.log(`%cBlock ${T.id} resolved in ${U.toFixed(3)}s`,U>500?"color:red":"color:green"),x});H.set(Number(v),_);}await Promise.all(Array.from(H.values()));}let F=new Date;await D(E,A);let W=(new Date().getTime()-F.getTime())/1e3;return $e&&console.log(`%cResolved Variables (${W.toFixed(2)}s): `,"color:green"),{variables:{...a.variables??{},...u},status:{...a.status??{},...d}}};function fl(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 yr=fl;function yl(){let{publicRuntimeConfig:e}=gl(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((r,o)=>(r[`ENV_${o}`]=t[o]||"N/A",r),{})}}var hr=yl;function hl(e,t){return +(e<t)-+(e>t)}function Rr(e,t,r="ordering"){return hl(t[r],e[r])}var va=(e,t={},r="en",o={},n={})=>{let a={setVariables:o.onSetVariables?o.onSetVariables:c=>c,openModal:o.onOpenModal?o.onOpenModal:c=>c,formatters:t,libs:Ie,locale:r,...n};function s(c){return Function("globals",...c.vars,`with (globals) { ${c.logic} }`).bind(a,a)}function i(c){if(c.vars&&c.logic)return s(c);for(let l in c)Array.isArray(c[l])?c[l]=c[l].map(p=>isObject(p)?i(p):p):isObject(c[l])&&(c[l]=i(c[l]));return c}return i(e)};var{localeDefault:bl}=j();var $t=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});$t.define({consumers:[$t],inputs:[$t]});var ka=new schema.Entity("variant"),Pa=new schema.Entity("dimension",{variants:[ka]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),wa=new schema.Entity("section",{blocks:[$t]}),Sl=new schema.Entity("report",{dimensions:[Pa],sections:[wa]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(Rr):[]}}}),El=new schema.Entity("formatter"),Al={report:Sl,section:wa,block:$t,dimension:Pa,variant:ka,formatter:El};function br(e,t){let r=Al[e];if(!r)throw new Error(`Invalid entity type: ${e}`);let{entities:o}=normalize(t,[r]);return {report:mt(o,"report"),dimension:mt(o,"dimension"),section:mt(o,"section"),block:mt(o,"block"),variant:mt(o,"variant"),formatter:mt(o,"formatter")}}function mt(e,t){return e.hasOwnProperty(t)?e[t]:{}}var xa=(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}},oo=(e=[],t=bl)=>e.reduce((r,o)=>{let n=va({vars:["n"],logic:o.content.logic},{},t,{});return r[o.name]=n,r},{});var ue=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",Sr=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[ue];Sr.includes(ue)||Sr.push(ue);var vl={localeDefault:ue,locales:Sr,currentLocale:ue,preferredLocale:ue,showToolbar:!1,activeSection:null,previews:[],query:{},sectionState:{},activeEntity:{type:null,id:null},sidebarStatus:{tools:!0,settings:!1,reportEditor:!1},isCMS:!1},Er=createSlice({name:"status",initialState:vl,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]};}},extraReducers:{[HYDRATE]:(e,t)=>({...e,previews:t.payload.status.previews})}}),qe=Er.actions;var wl={attributes:{},variables:{},status:{}},Ar=createSlice({name:"variables",initialState:wl,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}})}}),Tr=Ar.actions;var Bl={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}}},_e=createSlice({name:"records",initialState:Bl,reducers:{set:(e,t)=>{let r=t.payload;return {entities:qt(e.entities,r.entities||{}),requests:qt(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=br(r.type,o),a=qt(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=_r(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=_r(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=br(r.type,r.data),n=qt(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=br(r.type,o),a,s,i;if(r.type==="block"&&!Array.isArray(r.data)){let l=e.entities.block[r.data.id].inputs,p=n.block[r.data.id].inputs;a=l.length!==p.length,a&&(i=l.length>p.length,s=i?l.filter(u=>!p.includes(u))[0]:p.filter(u=>!l.includes(u))[0]),Object.values(n.block).forEach(u=>{u.block_input&&delete n.block[u.id];});}let c=qt(e.entities,n);if(e.entities=c,r.type==="dimension"){let l=r.data;e.entities.report[l.report_id].dimensions=_r(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=_r(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(p=>p!==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`;Cl(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}}}}},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:{}},tree:r.tree}}}});function qt(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,{...e[r],...t[r]}]))}function _r(e,t){return e.map(n=>t[n]).sort(Rr).map(n=>n.id)}function Cl(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}function oe(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=Vl[e],a=n?typeof n=="function"?n.apply(null,r):n:"unknown error nr: "+e;throw Error("[Immer] "+a)}throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map(function(s){return "'"+s+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function gt(e){return !!e&&!!e[se]}function Ke(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)===zl}(e)||Array.isArray(e)||!!e[Da]||!!(!((t=e.constructor)===null||t===void 0)&&t[Da])||fo(e)||go(e))}function Kt(e,t,r){r===void 0&&(r=!1),ht(e)===0?(r?Object.keys:So)(e).forEach(function(o){r&&typeof o=="symbol"||t(o,e[o],e);}):e.forEach(function(o,n){return t(n,o,e)});}function ht(e){var t=e[se];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:fo(e)?2:go(e)?3:0}function co(e,t){return ht(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Ml(e,t){return ht(e)===2?e.get(t):e[t]}function Ua(e,t,r){var o=ht(e);o===2?e.set(t,r):o===3?e.add(r):e[t]=r;}function Ol(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function fo(e){return Ul&&e instanceof Map}function go(e){return Fl&&e instanceof Set}function Ge(e){return e.o||e.t}function yo(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=$l(e);delete t[se];for(var r=So(t),o=0;o<r.length;o++){var n=r[o],a=t[n];a.writable===!1&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[n]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[n]});}return Object.create(Object.getPrototypeOf(e),t)}function ho(e,t){return t===void 0&&(t=!1),Ro(e)||gt(e)||!Ke(e)||(ht(e)>1&&(e.set=e.add=e.clear=e.delete=Ll),Object.freeze(e),t&&Kt(e,function(r,o){return ho(o,!0)},!0)),e}function Ll(){oe(2);}function Ro(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function ye(e){var t=ql[e];return t||oe(18,e),t}function Ia(){return process.env.NODE_ENV==="production"||yt||oe(0),yt}function no(e,t){t&&(ye("Patches"),e.u=[],e.s=[],e.v=t);}function vr(e){lo(e),e.p.forEach(Nl),e.p=null;}function lo(e){e===yt&&(yt=e.l);}function Ba(e){return yt={p:[],l:yt,h:e,m:!0,_:0}}function Nl(e){var t=e[se];t.i===0||t.i===1?t.j():t.g=!0;}function ao(e,t){t._=t.p.length;var r=t.p[0],o=e!==void 0&&e!==r;return t.h.O||ye("ES5").S(t,e,o),o?(r[se].P&&(vr(t),oe(4)),Ke(e)&&(e=kr(t,e),t.l||Pr(t,e)),t.u&&ye("Patches").M(r[se].t,e,t.u,t.s)):e=kr(t,r,[]),vr(t),t.u&&t.v(t.u,t.s),e!==Fa?e:void 0}function kr(e,t,r){if(Ro(t))return t;var o=t[se];if(!o)return Kt(t,function(i,c){return Ca(e,o,t,i,c,r)},!0),t;if(o.A!==e)return t;if(!o.P)return Pr(e,o.t,!0),o.t;if(!o.I){o.I=!0,o.A._--;var n=o.i===4||o.i===5?o.o=yo(o.k):o.o,a=n,s=!1;o.i===3&&(a=new Set(n),n.clear(),s=!0),Kt(a,function(i,c){return Ca(e,o,n,i,c,r,s)}),Pr(e,n,!1),r&&e.u&&ye("Patches").N(o,r,e.u,e.s);}return o.o}function Ca(e,t,r,o,n,a,s){if(process.env.NODE_ENV!=="production"&&n===r&&oe(5),gt(n)){var i=kr(e,n,a&&t&&t.i!==3&&!co(t.R,o)?a.concat(o):void 0);if(Ua(r,o,i),!gt(i))return;e.m=!1;}else s&&r.add(n);if(Ke(n)&&!Ro(n)){if(!e.h.D&&e._<1)return;kr(e,n),t&&t.A.l||Pr(e,n);}}function Pr(e,t,r){r===void 0&&(r=!1),!e.l&&e.h.D&&e.m&&ho(t,r);}function so(e,t){var r=e[se];return (r?Ge(r):e)[t]}function Ma(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 uo(e){e.P||(e.P=!0,e.l&&uo(e.l));}function io(e){e.o||(e.o=yo(e.t));}function po(e,t,r){var o=fo(t)?ye("MapSet").F(t,r):go(t)?ye("MapSet").T(t,r):e.O?function(n,a){var s=Array.isArray(n),i={i:s?1:0,A:a?a.A:Ia(),P:!1,I:!1,R:{},l:a,t:n,k:null,o:null,j:null,C:!1},c=i,l=mo;s&&(c=[i],l=Gt);var p=Proxy.revocable(c,l),u=p.revoke,d=p.proxy;return i.k=d,i.j=u,d}(t,r):ye("ES5").J(t,r);return (r?r.A:Ia()).p.push(o),o}function Dl(e){return gt(e)||oe(22,e),function t(r){if(!Ke(r))return r;var o,n=r[se],a=ht(r);if(n){if(!n.P&&(n.i<4||!ye("ES5").K(n)))return n.t;n.I=!0,o=Oa(r,a),n.I=!1;}else o=Oa(r,a);return Kt(o,function(s,i){n&&Ml(n.t,s)===i||Ua(o,s,t(i));}),a===3?new Set(o):o}(e)}function Oa(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return yo(e)}var La,yt,bo=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",Ul=typeof Map<"u",Fl=typeof Set<"u",Na=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",Fa=bo?Symbol.for("immer-nothing"):((La={})["immer-nothing"]=!0,La),Da=bo?Symbol.for("immer-draftable"):"__$immer_draftable",se=bo?Symbol.for("immer-state"):"__$immer_state";var Vl={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"},zl=""+Object.prototype.constructor,So=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,$l=Object.getOwnPropertyDescriptors||function(e){var t={};return So(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r);}),t},ql={},mo={get:function(e,t){if(t===se)return e;var r=Ge(e);if(!co(r,t))return function(n,a,s){var i,c=Ma(a,s);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||!Ke(o)?o:o===so(e.t,t)?(io(e),e.o[t]=po(e.A.h,o,e)):o},has:function(e,t){return t in Ge(e)},ownKeys:function(e){return Reflect.ownKeys(Ge(e))},set:function(e,t,r){var o=Ma(Ge(e),t);if(o?.set)return o.set.call(e.k,r),!0;if(!e.P){var n=so(Ge(e),t),a=n?.[se];if(a&&a.t===r)return e.o[t]=r,e.R[t]=!1,!0;if(Ol(r,n)&&(r!==void 0||co(e.t,t)))return !0;io(e),uo(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 so(e.t,t)!==void 0||t in e.t?(e.R[t]=!1,io(e),uo(e)):delete e.R[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=Ge(e),o=Reflect.getOwnPropertyDescriptor(r,t);return o&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:o.enumerable,value:r[t]}},defineProperty:function(){oe(11);},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){oe(12);}},Gt={};Kt(mo,function(e,t){Gt[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)};}),Gt.deleteProperty=function(e,t){return process.env.NODE_ENV!=="production"&&isNaN(parseInt(t))&&oe(13),Gt.set.call(this,e,t,void 0)},Gt.set=function(e,t,r){return process.env.NODE_ENV!=="production"&&t!=="length"&&isNaN(parseInt(t))&&oe(14),mo.set.call(this,e[0],t,r,e[0])};var Gl=function(){function e(r){var o=this;this.O=Na,this.D=!0,this.produce=function(n,a,s){if(typeof n=="function"&&typeof a!="function"){var i=a;a=n;var c=o;return function(h){var R=this;h===void 0&&(h=i);for(var A=arguments.length,P=Array(A>1?A-1:0),I=1;I<A;I++)P[I-1]=arguments[I];return c.produce(h,function(E){var b;return (b=a).call.apply(b,[R,E].concat(P))})}}var l;if(typeof a!="function"&&oe(6),s!==void 0&&typeof s!="function"&&oe(7),Ke(n)){var p=Ba(o),u=po(o,n,void 0),d=!0;try{l=a(u),d=!1;}finally{d?vr(p):lo(p);}return typeof Promise<"u"&&l instanceof Promise?l.then(function(h){return no(p,s),ao(h,p)},function(h){throw vr(p),h}):(no(p,s),ao(l,p))}if(!n||typeof n!="object"){if((l=a(n))===void 0&&(l=n),l===Fa&&(l=void 0),o.D&&ho(l,!0),s){var m=[],y=[];ye("Patches").M(n,l,m,y),s(m,y);}return l}oe(21,n);},this.produceWithPatches=function(n,a){if(typeof n=="function")return function(l){for(var p=arguments.length,u=Array(p>1?p-1:0),d=1;d<p;d++)u[d-1]=arguments[d];return o.produceWithPatches(l,function(m){return n.apply(void 0,[m].concat(u))})};var s,i,c=o.produce(n,a,function(l,p){s=l,i=p;});return typeof Promise<"u"&&c instanceof Promise?c.then(function(l){return [l,s,i]}):[c,s,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){Ke(r)||oe(8),gt(r)&&(r=Dl(r));var o=Ba(this),n=po(this,r,void 0);return n[se].C=!0,lo(o),n},t.finishDraft=function(r,o){var n=r&&r[se];process.env.NODE_ENV!=="production"&&(n&&n.C||oe(9),n.I&&oe(10));var a=n.A;return no(a,o),ao(void 0,a)},t.setAutoFreeze=function(r){this.D=r;},t.setUseProxies=function(r){r&&!Na&&oe(20),this.O=r;},t.applyPatches=function(r,o){var n;for(n=o.length-1;n>=0;n--){var a=o[n];if(a.path.length===0&&a.op==="replace"){r=a.value;break}}n>-1&&(o=o.slice(n+1));var s=ye("Patches").$;return gt(r)?s(r,o):this.produce(r,function(i){return s(i,o)})},e}(),ie=new Gl,Kl=ie.produce;ie.produceWithPatches.bind(ie);ie.setAutoFreeze.bind(ie);ie.setUseProxies.bind(ie);ie.applyPatches.bind(ie);ie.createDraft.bind(ie);ie.finishDraft.bind(ie);var wr=Kl;var pe=_e.actions,qa=jt({block:je("block"),dimension:je("dimension"),formatter:je("formatter"),report:je("report"),section:je("section"),variant:je("variant")}),ne=jt({block:He("block"),dimension:He("dimension"),formatter:He("formatter"),report:He("report"),section:He("section"),variant:He("variant")}),Ga=jt({block:be("block"),dimension:be("dimension"),formatter:be("formatter"),report:be("report"),section:be("section"),variant:be("variant")}),Ka=jt({block:Rt("block"),dimension:Rt("dimension"),formatter:Rt("formatter"),report:Rt("report"),section:Rt("section"),variant:Rt("variant")}),ja=jt({block:za("block"),section:za("section")});function jt(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 We(e,t){return (r,o)=>{let a=o().records.requests[e][t],s=!a||a.status==="UNINITIALIZED"?"LOADING":"FETCHING";r(pe.setRequest({key:t,type:e,status:s}));}}function bt(e,t,r,o){return n=>{typeof window=="object"&¬ifications.show({autoClose:3e3,color:"red",id:t,message:o,title:"Error"}),n(pe.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function je(e){return t=>{let r=Ao(e,t);return (o,n,a)=>(o(We(e,r)),ae(a,"create",e)(t).then(i=>(i.ok===!0?o(pe.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(bt(e,r,i.status,i.error)),i)))}}function Wl(e){return t=>{let r=Ao(e,t[0]);return (o,n,a)=>(o(We(e,r)),ae(a,"createBulk",e)(t).then(i=>(i.ok===!0?o(pe.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(bt(e,r,i.status,i.error)),i)))}}function Va(e,t,r){return r.replace(new RegExp(e,"g"),t)}function Jl(e){return e.section_id!==void 0}function Yl(e){return e.report_id!==void 0}function za(e){return t=>{let{create:r}=t;return (o,n,a)=>je(e)(r)(o,n,a).then(async i=>{if(i.ok){let{data:c}=i,{id:l}=c,{update:p}=t,u=Ja(e,{id:l});if(o(We(e,`${u}`)),e==="block"&&Jl(r)){let d=wr(p,R=>{R.id=l;}),{contentByLocale:m}=d;m&&(d=wr(d,R=>{R.id=l,R.contentByLocale=Object.keys(m).reduce((A,P)=>{let I=m?m[P]:{};return A[P]={...I,id:l},A},{});}));let h=d.inputs?.map(R=>({type:R.type,id:R.id,inputAction:{operation:"create",input:{input_id:R.id,block_id:d.id}}}));return h&&h.length>0&&$a(e)([d,...h])(o,n,a).then(()=>He("section")({id:d.section_id,include:!0})(o,n,a).then(R=>(R.ok&&o(pe.setRequest({key:u,type:e,status:"SUCCESS",data:R.data})),R))),be(e)(d)(o,n,a).then(R=>(R.ok&&o(pe.setRequest({key:u,type:e,status:"SUCCESS",data:R.data})),R))}if(e==="section"&&Yl(r)){let{id:d}=c,m=wr(p,R=>{R.id=d;}),{blocks:y}=m,h=y?.map(R=>({type:R.type,blockcol:R.blockcol,blockrow:R.blockrow,section_id:d,locales:Object.keys(R.contentByLocale).map(A=>A)}));return h&&y&&await Wl("block")(h)(o,n,a).then(R=>{if(R.ok){let A=R.data,P=[],I=A.map((E,b)=>{let D={...E},F=D.id,Z=y[b];Z.contentByLocale&&(D.contentByLocale=Object.keys(Z.contentByLocale).reduce((_,w)=>{let $=Z.contentByLocale[w];return _[w]={...$,content:{...$.content},id:D.id},_},{}));let{settings:W}=Z,{contentByLocale:L,id:z}=D;D.settings=W;let H={id:z,contentByLocale:L,settings:W};return Z.inputs.map(_=>_.id).reduce((_,w)=>{let $=y.findIndex(X=>X.id===w);return [..._,$]},[]).map(_=>({...A[_],originalBlock:y[_]})).forEach(_=>{let{id:w,type:$,originalBlock:X}=_;if([B.SELECTOR,B.VIZ].includes($)){if(H.contentByLocale?.logic?.content?.api){let x=H.contentByLocale?.logic.content.api;H.contentByLocale.logic.content.api=Va(`(selector${X.id}id)`,`selector${w}id`,x);}if(H.contentByLocale?.logic?.content?.logic){let x=H.contentByLocale.logic.content.logic;H.contentByLocale.logic.content.logic=Va(`(selector${X.id}id)`,`selector${w}id`,x);}}P.push({id:w,inputAction:{operation:"create",input:{input_id:w,block_id:F}}});}),H});return $a("block")([...I,...P])(o,n,a)}}),be(e)(m)(o,n,a).then(R=>(R.ok&&o(pe.setRequest({key:u,type:e,status:"SUCCESS",data:R.data})),R))}return be(e)({...p,id:c.id})(o,n,a)}})}}function He(e){return t=>{let r=Ha(e,t);return (o,n,a)=>(o(We(e,r)),ae(a,"read",e)(t).then(i=>(i.ok===!0?o(pe.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(bt(e,r,i.status,i.error)),i)))}}function be(e){return t=>{let r=To(e,t);return (o,n,a)=>(o(We(e,r)),ae(a,"update",e)(t).then(i=>(i.ok===!0?o(pe.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(bt(e,r,i.status,i.error)),i)))}}function $a(e){return t=>{let r=To(e,t[0]);return (o,n,a)=>(o(We(e,r)),ae(a,"updateBulk",e)(t).then(i=>(i.ok===!0?o(pe.setUpdateRequest({key:r,operation:"updateBulk",status:"SUCCESS",type:e,data:i.data})):o(bt(e,r,i.status,i.error)),i)))}}function Rt(e){return t=>{let r=Wa(e,t);return (o,n,a)=>(o(We(e,r)),ae(a,"delete",e)(t).then(i=>{i.ok===!0?o(pe.setDeleteRequest({key:r,operation:"delete",status:"SUCCESS",type:e,data:i.data})):o(bt(e,r,i.status,i.error));}))}}function Ao(e,t){if(e==="variant"){let r=t;return `create(variant, [${r.dimension_id}, ${r.name}])`}return `create(${e}, [${Object.keys(t)}])`}function Ha(e,t={}){let r=t.id==null?null:`'${t.id}'`;return `read(${e}, ${r}, ${!!t.include})`}function To(e,t){let{id:r,...o}=t;return `update(${e}, ${r}, [${Object.keys(o)}])`}function Wa(e,t){return `delete(${e}, ${t})`}function Ja(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:Ya,setPreviews:Ql,setSectionState:Qa,resetSectionState:Za,setCurrentLocale:Zl,setPreferredLocale:Xl}=qe;function eu(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 tu(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 ru(){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 Ht(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 ou(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 Xa(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(Ya(i)),n.activeSection&&t(es(e,{query:s}));}function nu(e,t){return async(r,o)=>Xa(e,r,o,{query:{[t]:void 0}})}function au(e,t,r){return async(o,n)=>Xa(e,o,n,{query:{[t]:r}})}function es(e,t){return async(r,o)=>{let n=o(),{currentLocale:a}=n.status,s=n.records.entities.block,i=e.formatterFunctions[a],{parsedParams:c,statusPayload:l}=xa(n.status,t),{sid:p,bid:u,previews:d,query:m}=c;Object.keys(l).length&&r(qe.setStatus(l));let y={...yr(d),locale:a,...hr()},h={variables:y,query:m,locale:a},R=n.records.entities.section[p],A=async P=>r(Ht(P));try{let P=await gr(s,R&&[R],u,i,h,void 0,A),{variables:I,status:E}=P;r(Tr.setVariableChange({attributes:y,variables:I,status:E}));}catch(P){console.log("Error in runConsumers client side: recalculateVariables",P);}}}function su(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 iu(e){return async(t,r,o)=>{let n=await o.urlProxy({url:e});if("error"in n)throw new Error(n.error);return n.data}}function cu(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function lu(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 uu(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 pu({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 du(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 xr(e){let{removeBlocks:t}=_e.actions;return async r=>{await r(t(e));}}function _o(e){let{addBlocks:t}=_e.actions;return async r=>{await r(t(e));}}function mu(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 fu(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 gu(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}}var ts=e=>configureStore({reducer:{[_e.name]:_e.reducer,[Er.name]:Er.reducer,[Ar.name]:Ar.reducer},middleware(t){return t({thunk:{extraArgument:zt("/api/cms/")}})}}),Jt=createWrapper(ts);function Su(e){let t=process.cwd(),r=bu.resolve(t.endsWith("/example")?t.replace("/example",""):t,"package-lock.json"),o;try{let n=JSON.parse(nc.readFileSync(r,"utf-8"));o=n.dependencies&&n.dependencies[e]&&n.dependencies[e].version!=="file:packages/reports"?n.dependencies[e].version:"0.dev";}catch{o="0.vercel";}return o||"Version not found"}function Eu(e){let t=()=>Promise.resolve({}),{pathSegmentsKey:r="bespoke",preResolve:o=t,postResolve:n=t,authOptions:a={providers:[]}}=e||{};return Jt.getServerSideProps(s=>{let{dispatch:i}=s;return async c=>{let l=await me(c.req,c.res,a);if(!l)return {redirect:{destination:"/api/auth/signin?callbackUrl=/cms",permanent:!1}};let p=new Set([G.ADMIN,G.EDITOR,G.WRITER]);if(!(l?.user?.bespoke_roles||[]).some(A=>p.has(A)))return {redirect:{destination:"/",permanent:!1}};let d=c.query[r],[m]=Array.isArray(d)?d:[d];await i(Ut);let y=await Su("@datawheel/bespoke"),h=await o(s,c);if("redirect"in h)return {props:h};m==="reports"&&(rs(c.query[r])?await Promise.all([i(ne("formatter",{})),i(ne("report",{id:rs(c.query[r]),include:!0})),qe.setStatus({isCMS:!0})]):await Promise.all([i(ne("report",{include:"dimensions"})),qe.setStatus({isCMS:!0})])),m==="metadata"&&await i(ne("report",{include:"dimensions"})),m==="formatters"&&await i(ne("formatter",{}));let R=await n(s,c);return {props:{...h,...R,bespokeVersion:y,session:l}}}})}function rs(e){if(e==null||e==="")return;let[,t]=Array.isArray(e)?e:[e];return Number.parseInt(t)||void 0}var {locales:Tu}=j(),_u={pathSegment:"path",formatterFunctions:Tu.reduce((e,t)=>({...e,[t]:{}}),{}),profilePrefix:"path",siteProps:{}};createContext(_u);j();var cs=e=>e.records.entities.block;function At(e){return t=>Object.values(t.records.entities[e])}var ls=At("section"),us=At("formatter");function Fu(e){let{fallback:t=!0,limit:r=50}=e||{};return async o=>{let{defaultLocale:n=ue,locales:a=[]}=o,s=[];if(r>0){let i=a.find(p=>p===n),{searchMember:c}=await Ne().then(ct),l=await c({query:"",limit:r,format:"plain",locale:i||ue,noImage:!1,visible:!0,report:[],dimension:[],variant:[],includes:!0});l.ok===!0&&(s=l.data.results.map(p=>({locale:a.find(u=>u===p.locale),params:{bespoke:[p.variant.slug,p.slug]}})));}return {fallback:t,paths:s}}}function Vu(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return Jt.getStaticProps(r=>{let{dispatch:o}=r;return async n=>{await o(Ut);let a=new Date().toISOString(),{locale:s=ue,params:i={}}=n,c=Array.from(zu(i[t]));if(c.length===0)return await Promise.all([o(ne("formatter",{})),o(ne("report",{include:!0}))]),{props:{buildTime:a}};let l=await o(Ht({mode:"slugs",locale:s,slugs:c,output:"full"}));o(Wt.setPreviews(l.results)),await Promise.all([o(ne("formatter",{})),o(ne("report",{id:l.results.map(b=>b.report_id),include:!0,locales:[s]}))]);let p=r.getState(),u=us(p),d=oo(u,s),m=ls(p),y=cs(p),h={...y},R={},A=Object.values(y).reduce((b,O)=>("access"in O.settings&&!["public","guest"].some(D=>!O.settings.access||O.settings.access.includes(D))&&b.push(O.id),b),[]);A=A.concat(Dt(A,Object.values(h)));let P=A.filter(b=>h[b].settings[Wo.FALLBACK]);A.forEach(b=>{P.includes(b)&&(R[b]={...h[b],type:B.FALLBACK}),delete h[b];}),await o(xr(A)),await o(_o(R));let I={...yr(l.results),locale:s,...hr()},E=async b=>await o(Ht(b));return await gr({...h,...R},m,void 0,d,{locale:s,query:i,variables:I},void 0,E,"report").then(async b=>{let O=Object.keys(h).reduce((D,F)=>(b.variables[F]&&b.status[F]||D.push(F),D),[]);await o(xr(O)),await o(Tr.setVariableChange({...b,attributes:I}));}),{props:{buildTime:a}}}})}catch(r){console.log("ERROR SSR",r);}}function zu(e=[]){let t=[].concat(e),r=0;return {next(){return {value:{variantSlug:t[r++],memberSlug:t[r++]},done:r>t.length}},[Symbol.iterator](){return this}}}
|
|
63
|
+
`)}));}let O=await Promise.all(b).catch(D=>D.message);if(typeof O=="string"&&O)return {outputVariables:{},renderVariables:{},status:{error:O}};c=O.length===1?O[0].data:O.map(D=>D.data),u=O.reduce((D,F)=>D+JSON.stringify(F.data).length/1024,0),p=Math.max(...O.map(D=>D.requestDuration));}if(e.type===C.SELECTOR){let{config:E,log:b,error:O}=Qr(e.id,e.contentByLocale[n].content.logic,t,r,!0);return {outputVariables:ya(e.id,s,E),renderVariables:E,status:{log:b,error:O,allowed:i}}}if(e.type===C.MULTIHIERARCHY_SELECTOR){let{config:E,log:b,error:O}=Xr(e.id,e.contentByLocale[n].content.logic,t,r,!0);return {outputVariables:ha(e.id,s,E),renderVariables:E,status:{log:b,error:O,allowed:i}}}if(e.type===C.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:i}};if(e.type===C.RELATED){let E=e.contentByLocale?.logic?.content?.simple?.compare||"variant",b=e.contentByLocale?.logic?.content?.simple?.limit||4,O=Object.keys(a).filter(T=>T.startsWith("report_id")).map(T=>a[T]),D=Object.keys(a).filter(T=>T.startsWith("dimension_id")).map(T=>a[T]),F=Object.keys(a).filter(T=>T.startsWith("variant_id")).map(T=>a[T]),Z=Object.keys(a).filter(T=>T.startsWith("id")).map(T=>a[T]);if(!Z.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:!1}};let W=await o({mode:"ids",locale:n,ids:Z,output:"lite",variant:F}).then(T=>{let N=[];return mr(T)?T.ok&&(N=T.data.results):N=T.results,N&&Array.isArray(N)?N:[]}).catch(T=>(console.log("Error getting related members",T),[]));if(D.length>1){let T=Object.keys(a).filter(U=>U.startsWith("variant_slug")).map(U=>a[U]),N=W.map((U,V)=>{let M={mode:"related",locale:n,related:b??4,current_ids:[U.content_id],output:"full",variant_ids:[U.variant_id]};return V===0&&(M.include_ids=[U.content_id]),M}),_=await Promise.all(N.map(U=>o(U))).then(U=>U.flatMap(V=>{let M=[];return mr(V)?V.ok&&(M=V.data.results):M=V.results,M&&Array.isArray(M)?M:[]})).catch(U=>(console.log("Error getting related members",U),[])),w=_.reduce((U,V)=>{let M=V.variant_slug;return U[M]||(U[M]=[]),U[M].push(V),U},{}),$=[],X=Object.keys(w),x=[{combination:[],index:0}];for(;x.length>0;){let U=x.pop();if(!U)continue;let{combination:V,index:M}=U;if(M===X.length){$.push(V);continue}let de=X[M],Je=w[de];for(let Yt of Je)x.push({combination:[...V,Yt],index:M+1});}return {outputVariables:{related_reports:$.map(U=>{let V=U.sort((M,de)=>T.indexOf(M.variant_slug)-T.indexOf(de.variant_slug));return {entities:V,link:"/"+V.map(M=>`${M.variant_slug}/${M.slug}`).join("/")}})},renderVariables:{},status:{log:[],allowed:_.length>0}}}let L=W.map(T=>T.content_id),z={mode:"related",locale:n,related:b??4,current_ids:L,output:"full"};E&&(E==="report"?z.report_ids=O:E==="dimension"?z.dimension_ids=D:z.variant_ids=F);let H=await o(z).then(T=>{let N=[];return mr(T)?T.ok&&(N=T.data.results):N=T.results,N&&Array.isArray(N)?N:[]}).catch(T=>(console.log("Error getting related members",T),[]));return {outputVariables:{related_reports:H.map(T=>({entities:[T],link:`/${T.variant_slug}/${T.slug}`}))},renderVariables:{},status:{log:[],allowed:H.length>0}}}let{logic:m}=ba(e,n),y=dt(m,t,r),h=ze("resp",c||{},y,t,a,r),{vars:R,error:A,log:P}=h;if(typeof R!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:P,duration:p,responseSize:u,resp:c,api:d,allowed:i}};let I=Object.keys(R).reduce((E,b)=>({...E,[`${e.type}${e.id}${b}`]:R[b]}),{});return {renderVariables:R,outputVariables:[C.GENERATOR,C.SECTION_FLAG].includes(e.type)?R:I,status:{log:P,error:A,duration:p,responseSize:u,resp:c,api:d,allowed:i}}}function dl(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].section_id===t[r].section_id||!n).forEach(l=>ro(l,t,o,!1,a,n,s));}})}var ro=(e,t,r=[],o=!0,n=!0,a=!0,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(p=>ro(p,t,r,o,!1,a,s));}),i&&i.consumers.length&&n&&dl(i,t,e,r,a,n,s),r},ml=(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 a=ce(t),{error:s,output:i}=ze("variables",r,e.settings.allowedLogic||"return false;",o,void 0,a);s||(n=!!i);}return n},gr=async(e,t,r,o,n,a={},s,i="section")=>{let c=i==="section",l=ce(n),p=l.variables,u={...a.variables??{}},d={...a.status??{}},m=new Set,y=[],h={};r?h={...h,[r]:e[r]}:t?h=(t??[]).reduce((L,{id:z})=>({...L,...Sa(z,e)}),{}):h=Object.values(e).filter(L=>eo(L)).reduce((L,z)=>({...L,[z.id]:z}),{});let R=Object.values(h).filter(L=>eo(L));if(R.length>0){$e&&console.log("%crunConsumers: calculating section flags","color:purple",R.map(v=>v.id).join(", "));let L=Object.fromEntries(await Promise.all(R.map(async v=>[v.id,await Ta(v,o,{...l,variables:p,locale:p.locale},s).then(T=>{let{outputVariables:N,status:_}=T;if(_.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${v.id}, Section ${v.section_id}) failed with message: ${_.error}. `);d[v.id]={allowed:!1,error:_.error},u[v.id]={};}return (v.consumers.length>0||[C.GENERATOR,C.SECTION_FLAG,C.RELATED].includes(v.type))&&_.allowed&&Object.keys(N).length>0?u[v.id]=N:u[v.id]={},i==="report"?(d[v.id]={allowed:_.allowed},[C.GENERATOR,C.SECTION_FLAG].includes(v.type)&&_.api&&(d[v.id].api=_.api)):d[v.id]=_,T})]))),H=Object.entries(L).filter(([v,T])=>!T.outputVariables[Pn]).map(([v])=>Number(v));m=new Set(H.map(v=>e[v].section_id)),Object.values(h).filter(v=>m.has(v.section_id)).forEach(v=>{y.push(v.id),delete h[v.id];}),$e&&console.log("%crunConsumers: removing sections","color:purple",m.keys());}let A=m.size>0?Object.fromEntries(Object.entries(e).filter(([L,z])=>m?.has(z.section_id)?(y.includes(z.id)||y.push(z.id),!1):!0)):e;if(y.length>0&&(A=Object.fromEntries(Object.entries(A).map(([L,z])=>{let H={...z,inputs:z.inputs.filter(v=>!y.includes(v)),consumers:z.consumers.filter(v=>!y.includes(v))};return [L,H]}))),!r&&!t)return {variables:{...a.variables??{},...u},status:{...a.status??{},...d}};i==="report"&&y.length>0&&y.forEach(L=>{delete u[L],delete d[L],delete e[L];}),$e&&console.log("%crunConsumers: running root blocks","color:purple",Object.keys(h));let P=Object.keys(h).reduce((L,z)=>{let H=new Date,v=ro(Number(z),A,[],!r,!0,c).map(_=>_.split("-")),N=(new Date().getTime()-H.getTime())/1e3;return $e&&console.log(`%cResolved dependencies for ${z} (${N.toFixed(2)}s)`,"color:blue"),[...L,...v]},[]),I=new Date,E=Object.keys(h).reduce((L,z)=>L.includes(z)?[...L]:[z,...L],nl(P)),O=(new Date().getTime()-I.getTime())/1e3;$e&&console.log(`%cResolved DAG (${O.toFixed(2)}s): `,"color:green",E);async function D(L,z){let H=new Map;for(let v of L){let T=z[v],_=Promise.all(T.inputs.filter(w=>L.includes(String(w))).map(w=>H.get(Number(w)))).then(async()=>{let w=T.inputs.reduce((V,M)=>({...V,...u[M]}),p),$=T.inputs.find(V=>(T.settings?.ignoreCascade?T.settings?.ignoreCascade:[]).includes(V)||!d[V]?!1:!d[V].allowed||d[V].hiddenByCascade);if($){d[v]={allowed:!1,hiddenByCascade:d[$].hiddenByCascade||$},u[v]={};return}let X=new Date,x=await Ta(T,o,{...l,variables:w,locale:w.locale},s).then(({outputVariables:V,status:M})=>{if(M.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${v}, Section ${T.section_id}) failed with message: ${M.error}. `);d[v]={allowed:!1,error:M.error},u[v]={};}(T.consumers.length>0||[C.GENERATOR,C.SECTION_FLAG,C.RELATED].includes(T.type))&&M.allowed&&Object.keys(V).length>0?u[v]=V:u[v]={},i==="report"?(d[v]={allowed:M.allowed},[C.GENERATOR,C.SECTION_FLAG].includes(T.type)&&M.api&&(d[v].api=M.api)):d[v]=M;}),U=(new Date().getTime()-X.getTime())/1e3;return $e&&console.log(`%cBlock ${T.id} resolved in ${U.toFixed(3)}s`,U>500?"color:red":"color:green"),x});H.set(Number(v),_);}await Promise.all(Array.from(H.values()));}let F=new Date;await D(E,A);let W=(new Date().getTime()-F.getTime())/1e3;return $e&&console.log(`%cResolved Variables (${W.toFixed(2)}s): `,"color:green"),{variables:{...a.variables??{},...u},status:{...a.status??{},...d}}};function fl(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 yr=fl;function yl(){let{publicRuntimeConfig:e}=gl(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((r,o)=>(r[`ENV_${o}`]=t[o]||"N/A",r),{})}}var hr=yl;function hl(e,t){return +(e<t)-+(e>t)}function Rr(e,t,r="ordering"){return hl(t[r],e[r])}var va=(e,t={},r="en",o={},n={})=>{let a={setVariables:o.onSetVariables?o.onSetVariables:c=>c,openModal:o.onOpenModal?o.onOpenModal:c=>c,formatters:t,libs:Ie,locale:r,...n};function s(c){return Function("globals",...c.vars,`with (globals) { ${c.logic} }`).bind(a,a)}function i(c){if(c.vars&&c.logic)return s(c);for(let l in c)Array.isArray(c[l])?c[l]=c[l].map(p=>isObject(p)?i(p):p):isObject(c[l])&&(c[l]=i(c[l]));return c}return i(e)};var{localeDefault:bl}=j();var $t=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});$t.define({consumers:[$t],inputs:[$t]});var ka=new schema.Entity("variant"),Pa=new schema.Entity("dimension",{variants:[ka]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),wa=new schema.Entity("section",{blocks:[$t]}),Sl=new schema.Entity("report",{dimensions:[Pa],sections:[wa]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(Rr):[]}}}),El=new schema.Entity("formatter"),Al={report:Sl,section:wa,block:$t,dimension:Pa,variant:ka,formatter:El};function br(e,t){let r=Al[e];if(!r)throw new Error(`Invalid entity type: ${e}`);let{entities:o}=normalize(t,[r]);return {report:mt(o,"report"),dimension:mt(o,"dimension"),section:mt(o,"section"),block:mt(o,"block"),variant:mt(o,"variant"),formatter:mt(o,"formatter")}}function mt(e,t){return e.hasOwnProperty(t)?e[t]:{}}var xa=(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}},oo=(e=[],t=bl)=>e.reduce((r,o)=>{let n=va({vars:["n"],logic:o.content.logic},{},t,{});return r[o.name]=n,r},{});var ue=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",Sr=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[ue];Sr.includes(ue)||Sr.push(ue);var vl={localeDefault:ue,locales:Sr,currentLocale:ue,preferredLocale:ue,showToolbar:!1,activeSection:null,previews:[],query:{},sectionState:{},activeEntity:{type:null,id:null},sidebarStatus:{tools:!0,settings:!1,reportEditor:!1},isCMS:!1},Er=createSlice({name:"status",initialState:vl,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]};}},extraReducers:{[HYDRATE]:(e,t)=>({...e,previews:t.payload.status.previews})}}),qe=Er.actions;var wl={attributes:{},variables:{},status:{}},Ar=createSlice({name:"variables",initialState:wl,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}})}}),Tr=Ar.actions;var Cl={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}}},_e=createSlice({name:"records",initialState:Cl,reducers:{set:(e,t)=>{let r=t.payload;return {entities:qt(e.entities,r.entities||{}),requests:qt(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=br(r.type,o),a=qt(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=_r(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=_r(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=br(r.type,r.data),n=qt(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=br(r.type,o),a,s,i;if(r.type==="block"&&!Array.isArray(r.data)){let l=e.entities.block[r.data.id].inputs,p=n.block[r.data.id].inputs;a=l.length!==p.length,a&&(i=l.length>p.length,s=i?l.filter(u=>!p.includes(u))[0]:p.filter(u=>!l.includes(u))[0]),Object.values(n.block).forEach(u=>{u.block_input&&delete n.block[u.id];});}let c=qt(e.entities,n);if(e.entities=c,r.type==="dimension"){let l=r.data;e.entities.report[l.report_id].dimensions=_r(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=_r(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(p=>p!==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`;Bl(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}}}}},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:{}},tree:r.tree}}}});function qt(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,{...e[r],...t[r]}]))}function _r(e,t){return e.map(n=>t[n]).sort(Rr).map(n=>n.id)}function Bl(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}function oe(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=Vl[e],a=n?typeof n=="function"?n.apply(null,r):n:"unknown error nr: "+e;throw Error("[Immer] "+a)}throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map(function(s){return "'"+s+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function gt(e){return !!e&&!!e[se]}function Ke(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)===zl}(e)||Array.isArray(e)||!!e[Da]||!!(!((t=e.constructor)===null||t===void 0)&&t[Da])||fo(e)||go(e))}function Kt(e,t,r){r===void 0&&(r=!1),ht(e)===0?(r?Object.keys:So)(e).forEach(function(o){r&&typeof o=="symbol"||t(o,e[o],e);}):e.forEach(function(o,n){return t(n,o,e)});}function ht(e){var t=e[se];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:fo(e)?2:go(e)?3:0}function co(e,t){return ht(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Ml(e,t){return ht(e)===2?e.get(t):e[t]}function Ua(e,t,r){var o=ht(e);o===2?e.set(t,r):o===3?e.add(r):e[t]=r;}function Ol(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function fo(e){return Ul&&e instanceof Map}function go(e){return Fl&&e instanceof Set}function Ge(e){return e.o||e.t}function yo(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=$l(e);delete t[se];for(var r=So(t),o=0;o<r.length;o++){var n=r[o],a=t[n];a.writable===!1&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[n]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[n]});}return Object.create(Object.getPrototypeOf(e),t)}function ho(e,t){return t===void 0&&(t=!1),Ro(e)||gt(e)||!Ke(e)||(ht(e)>1&&(e.set=e.add=e.clear=e.delete=Ll),Object.freeze(e),t&&Kt(e,function(r,o){return ho(o,!0)},!0)),e}function Ll(){oe(2);}function Ro(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function ye(e){var t=ql[e];return t||oe(18,e),t}function Ia(){return process.env.NODE_ENV==="production"||yt||oe(0),yt}function no(e,t){t&&(ye("Patches"),e.u=[],e.s=[],e.v=t);}function vr(e){lo(e),e.p.forEach(Nl),e.p=null;}function lo(e){e===yt&&(yt=e.l);}function Ca(e){return yt={p:[],l:yt,h:e,m:!0,_:0}}function Nl(e){var t=e[se];t.i===0||t.i===1?t.j():t.g=!0;}function ao(e,t){t._=t.p.length;var r=t.p[0],o=e!==void 0&&e!==r;return t.h.O||ye("ES5").S(t,e,o),o?(r[se].P&&(vr(t),oe(4)),Ke(e)&&(e=kr(t,e),t.l||Pr(t,e)),t.u&&ye("Patches").M(r[se].t,e,t.u,t.s)):e=kr(t,r,[]),vr(t),t.u&&t.v(t.u,t.s),e!==Fa?e:void 0}function kr(e,t,r){if(Ro(t))return t;var o=t[se];if(!o)return Kt(t,function(i,c){return Ba(e,o,t,i,c,r)},!0),t;if(o.A!==e)return t;if(!o.P)return Pr(e,o.t,!0),o.t;if(!o.I){o.I=!0,o.A._--;var n=o.i===4||o.i===5?o.o=yo(o.k):o.o,a=n,s=!1;o.i===3&&(a=new Set(n),n.clear(),s=!0),Kt(a,function(i,c){return Ba(e,o,n,i,c,r,s)}),Pr(e,n,!1),r&&e.u&&ye("Patches").N(o,r,e.u,e.s);}return o.o}function Ba(e,t,r,o,n,a,s){if(process.env.NODE_ENV!=="production"&&n===r&&oe(5),gt(n)){var i=kr(e,n,a&&t&&t.i!==3&&!co(t.R,o)?a.concat(o):void 0);if(Ua(r,o,i),!gt(i))return;e.m=!1;}else s&&r.add(n);if(Ke(n)&&!Ro(n)){if(!e.h.D&&e._<1)return;kr(e,n),t&&t.A.l||Pr(e,n);}}function Pr(e,t,r){r===void 0&&(r=!1),!e.l&&e.h.D&&e.m&&ho(t,r);}function so(e,t){var r=e[se];return (r?Ge(r):e)[t]}function Ma(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 uo(e){e.P||(e.P=!0,e.l&&uo(e.l));}function io(e){e.o||(e.o=yo(e.t));}function po(e,t,r){var o=fo(t)?ye("MapSet").F(t,r):go(t)?ye("MapSet").T(t,r):e.O?function(n,a){var s=Array.isArray(n),i={i:s?1:0,A:a?a.A:Ia(),P:!1,I:!1,R:{},l:a,t:n,k:null,o:null,j:null,C:!1},c=i,l=mo;s&&(c=[i],l=Gt);var p=Proxy.revocable(c,l),u=p.revoke,d=p.proxy;return i.k=d,i.j=u,d}(t,r):ye("ES5").J(t,r);return (r?r.A:Ia()).p.push(o),o}function Dl(e){return gt(e)||oe(22,e),function t(r){if(!Ke(r))return r;var o,n=r[se],a=ht(r);if(n){if(!n.P&&(n.i<4||!ye("ES5").K(n)))return n.t;n.I=!0,o=Oa(r,a),n.I=!1;}else o=Oa(r,a);return Kt(o,function(s,i){n&&Ml(n.t,s)===i||Ua(o,s,t(i));}),a===3?new Set(o):o}(e)}function Oa(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return yo(e)}var La,yt,bo=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",Ul=typeof Map<"u",Fl=typeof Set<"u",Na=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",Fa=bo?Symbol.for("immer-nothing"):((La={})["immer-nothing"]=!0,La),Da=bo?Symbol.for("immer-draftable"):"__$immer_draftable",se=bo?Symbol.for("immer-state"):"__$immer_state";var Vl={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"},zl=""+Object.prototype.constructor,So=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,$l=Object.getOwnPropertyDescriptors||function(e){var t={};return So(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r);}),t},ql={},mo={get:function(e,t){if(t===se)return e;var r=Ge(e);if(!co(r,t))return function(n,a,s){var i,c=Ma(a,s);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||!Ke(o)?o:o===so(e.t,t)?(io(e),e.o[t]=po(e.A.h,o,e)):o},has:function(e,t){return t in Ge(e)},ownKeys:function(e){return Reflect.ownKeys(Ge(e))},set:function(e,t,r){var o=Ma(Ge(e),t);if(o?.set)return o.set.call(e.k,r),!0;if(!e.P){var n=so(Ge(e),t),a=n?.[se];if(a&&a.t===r)return e.o[t]=r,e.R[t]=!1,!0;if(Ol(r,n)&&(r!==void 0||co(e.t,t)))return !0;io(e),uo(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 so(e.t,t)!==void 0||t in e.t?(e.R[t]=!1,io(e),uo(e)):delete e.R[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=Ge(e),o=Reflect.getOwnPropertyDescriptor(r,t);return o&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:o.enumerable,value:r[t]}},defineProperty:function(){oe(11);},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){oe(12);}},Gt={};Kt(mo,function(e,t){Gt[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)};}),Gt.deleteProperty=function(e,t){return process.env.NODE_ENV!=="production"&&isNaN(parseInt(t))&&oe(13),Gt.set.call(this,e,t,void 0)},Gt.set=function(e,t,r){return process.env.NODE_ENV!=="production"&&t!=="length"&&isNaN(parseInt(t))&&oe(14),mo.set.call(this,e[0],t,r,e[0])};var Gl=function(){function e(r){var o=this;this.O=Na,this.D=!0,this.produce=function(n,a,s){if(typeof n=="function"&&typeof a!="function"){var i=a;a=n;var c=o;return function(h){var R=this;h===void 0&&(h=i);for(var A=arguments.length,P=Array(A>1?A-1:0),I=1;I<A;I++)P[I-1]=arguments[I];return c.produce(h,function(E){var b;return (b=a).call.apply(b,[R,E].concat(P))})}}var l;if(typeof a!="function"&&oe(6),s!==void 0&&typeof s!="function"&&oe(7),Ke(n)){var p=Ca(o),u=po(o,n,void 0),d=!0;try{l=a(u),d=!1;}finally{d?vr(p):lo(p);}return typeof Promise<"u"&&l instanceof Promise?l.then(function(h){return no(p,s),ao(h,p)},function(h){throw vr(p),h}):(no(p,s),ao(l,p))}if(!n||typeof n!="object"){if((l=a(n))===void 0&&(l=n),l===Fa&&(l=void 0),o.D&&ho(l,!0),s){var m=[],y=[];ye("Patches").M(n,l,m,y),s(m,y);}return l}oe(21,n);},this.produceWithPatches=function(n,a){if(typeof n=="function")return function(l){for(var p=arguments.length,u=Array(p>1?p-1:0),d=1;d<p;d++)u[d-1]=arguments[d];return o.produceWithPatches(l,function(m){return n.apply(void 0,[m].concat(u))})};var s,i,c=o.produce(n,a,function(l,p){s=l,i=p;});return typeof Promise<"u"&&c instanceof Promise?c.then(function(l){return [l,s,i]}):[c,s,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){Ke(r)||oe(8),gt(r)&&(r=Dl(r));var o=Ca(this),n=po(this,r,void 0);return n[se].C=!0,lo(o),n},t.finishDraft=function(r,o){var n=r&&r[se];process.env.NODE_ENV!=="production"&&(n&&n.C||oe(9),n.I&&oe(10));var a=n.A;return no(a,o),ao(void 0,a)},t.setAutoFreeze=function(r){this.D=r;},t.setUseProxies=function(r){r&&!Na&&oe(20),this.O=r;},t.applyPatches=function(r,o){var n;for(n=o.length-1;n>=0;n--){var a=o[n];if(a.path.length===0&&a.op==="replace"){r=a.value;break}}n>-1&&(o=o.slice(n+1));var s=ye("Patches").$;return gt(r)?s(r,o):this.produce(r,function(i){return s(i,o)})},e}(),ie=new Gl,Kl=ie.produce;ie.produceWithPatches.bind(ie);ie.setAutoFreeze.bind(ie);ie.setUseProxies.bind(ie);ie.applyPatches.bind(ie);ie.createDraft.bind(ie);ie.finishDraft.bind(ie);var wr=Kl;var pe=_e.actions,qa=jt({block:je("block"),dimension:je("dimension"),formatter:je("formatter"),report:je("report"),section:je("section"),variant:je("variant")}),ne=jt({block:He("block"),dimension:He("dimension"),formatter:He("formatter"),report:He("report"),section:He("section"),variant:He("variant")}),Ga=jt({block:be("block"),dimension:be("dimension"),formatter:be("formatter"),report:be("report"),section:be("section"),variant:be("variant")}),Ka=jt({block:Rt("block"),dimension:Rt("dimension"),formatter:Rt("formatter"),report:Rt("report"),section:Rt("section"),variant:Rt("variant")}),ja=jt({block:za("block"),section:za("section")});function jt(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 We(e,t){return (r,o)=>{let a=o().records.requests[e][t],s=!a||a.status==="UNINITIALIZED"?"LOADING":"FETCHING";r(pe.setRequest({key:t,type:e,status:s}));}}function bt(e,t,r,o){return n=>{typeof window=="object"&¬ifications.show({autoClose:3e3,color:"red",id:t,message:o,title:"Error"}),n(pe.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function je(e){return t=>{let r=Ao(e,t);return (o,n,a)=>(o(We(e,r)),ae(a,"create",e)(t).then(i=>(i.ok===!0?o(pe.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(bt(e,r,i.status,i.error)),i)))}}function Wl(e){return t=>{let r=Ao(e,t[0]);return (o,n,a)=>(o(We(e,r)),ae(a,"createBulk",e)(t).then(i=>(i.ok===!0?o(pe.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(bt(e,r,i.status,i.error)),i)))}}function Va(e,t,r){return r.replace(new RegExp(e,"g"),t)}function Jl(e){return e.section_id!==void 0}function Yl(e){return e.report_id!==void 0}function za(e){return t=>{let{create:r}=t;return (o,n,a)=>je(e)(r)(o,n,a).then(async i=>{if(i.ok){let{data:c}=i,{id:l}=c,{update:p}=t,u=Ja(e,{id:l});if(o(We(e,`${u}`)),e==="block"&&Jl(r)){let d=wr(p,R=>{R.id=l;}),{contentByLocale:m}=d;m&&(d=wr(d,R=>{R.id=l,R.contentByLocale=Object.keys(m).reduce((A,P)=>{let I=m?m[P]:{};return A[P]={...I,id:l},A},{});}));let h=d.inputs?.map(R=>({type:R.type,id:R.id,inputAction:{operation:"create",input:{input_id:R.id,block_id:d.id}}}));return h&&h.length>0&&$a(e)([d,...h])(o,n,a).then(()=>He("section")({id:d.section_id,include:!0})(o,n,a).then(R=>(R.ok&&o(pe.setRequest({key:u,type:e,status:"SUCCESS",data:R.data})),R))),be(e)(d)(o,n,a).then(R=>(R.ok&&o(pe.setRequest({key:u,type:e,status:"SUCCESS",data:R.data})),R))}if(e==="section"&&Yl(r)){let{id:d}=c,m=wr(p,R=>{R.id=d;}),{blocks:y}=m,h=y?.map(R=>({type:R.type,blockcol:R.blockcol,blockrow:R.blockrow,section_id:d,locales:Object.keys(R.contentByLocale).map(A=>A)}));return h&&y&&await Wl("block")(h)(o,n,a).then(R=>{if(R.ok){let A=R.data,P=[],I=A.map((E,b)=>{let D={...E},F=D.id,Z=y[b];Z.contentByLocale&&(D.contentByLocale=Object.keys(Z.contentByLocale).reduce((_,w)=>{let $=Z.contentByLocale[w];return _[w]={...$,content:{...$.content},id:D.id},_},{}));let{settings:W}=Z,{contentByLocale:L,id:z}=D;D.settings=W;let H={id:z,contentByLocale:L,settings:W};return Z.inputs.map(_=>_.id).reduce((_,w)=>{let $=y.findIndex(X=>X.id===w);return [..._,$]},[]).map(_=>({...A[_],originalBlock:y[_]})).forEach(_=>{let{id:w,type:$,originalBlock:X}=_;if([C.SELECTOR,C.VIZ].includes($)){if(H.contentByLocale?.logic?.content?.api){let x=H.contentByLocale?.logic.content.api;H.contentByLocale.logic.content.api=Va(`(selector${X.id}id)`,`selector${w}id`,x);}if(H.contentByLocale?.logic?.content?.logic){let x=H.contentByLocale.logic.content.logic;H.contentByLocale.logic.content.logic=Va(`(selector${X.id}id)`,`selector${w}id`,x);}}P.push({id:w,inputAction:{operation:"create",input:{input_id:w,block_id:F}}});}),H});return $a("block")([...I,...P])(o,n,a)}}),be(e)(m)(o,n,a).then(R=>(R.ok&&o(pe.setRequest({key:u,type:e,status:"SUCCESS",data:R.data})),R))}return be(e)({...p,id:c.id})(o,n,a)}})}}function He(e){return t=>{let r=Ha(e,t);return (o,n,a)=>(o(We(e,r)),ae(a,"read",e)(t).then(i=>(i.ok===!0?o(pe.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(bt(e,r,i.status,i.error)),i)))}}function be(e){return t=>{let r=To(e,t);return (o,n,a)=>(o(We(e,r)),ae(a,"update",e)(t).then(i=>(i.ok===!0?o(pe.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(bt(e,r,i.status,i.error)),i)))}}function $a(e){return t=>{let r=To(e,t[0]);return (o,n,a)=>(o(We(e,r)),ae(a,"updateBulk",e)(t).then(i=>(i.ok===!0?o(pe.setUpdateRequest({key:r,operation:"updateBulk",status:"SUCCESS",type:e,data:i.data})):o(bt(e,r,i.status,i.error)),i)))}}function Rt(e){return t=>{let r=Wa(e,t);return (o,n,a)=>(o(We(e,r)),ae(a,"delete",e)(t).then(i=>{i.ok===!0?o(pe.setDeleteRequest({key:r,operation:"delete",status:"SUCCESS",type:e,data:i.data})):o(bt(e,r,i.status,i.error));}))}}function Ao(e,t){if(e==="variant"){let r=t;return `create(variant, [${r.dimension_id}, ${r.name}])`}return `create(${e}, [${Object.keys(t)}])`}function Ha(e,t={}){let r=t.id==null?null:`'${t.id}'`;return `read(${e}, ${r}, ${!!t.include})`}function To(e,t){let{id:r,...o}=t;return `update(${e}, ${r}, [${Object.keys(o)}])`}function Wa(e,t){return `delete(${e}, ${t})`}function Ja(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:Ya,setPreviews:Ql,setSectionState:Qa,resetSectionState:Za,setCurrentLocale:Zl,setPreferredLocale:Xl}=qe;function eu(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 tu(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 ru(){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 Ht(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 ou(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 Xa(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(Ya(i)),n.activeSection&&t(es(e,{query:s}));}function nu(e,t){return async(r,o)=>Xa(e,r,o,{query:{[t]:void 0}})}function au(e,t,r){return async(o,n)=>Xa(e,o,n,{query:{[t]:r}})}function es(e,t){return async(r,o)=>{let n=o(),{currentLocale:a}=n.status,s=n.records.entities.block,i=e.formatterFunctions[a],{parsedParams:c,statusPayload:l}=xa(n.status,t),{sid:p,bid:u,previews:d,query:m}=c;Object.keys(l).length&&r(qe.setStatus(l));let y={...yr(d),locale:a,...hr()},h={variables:y,query:m,locale:a},R=n.records.entities.section[p],A=async P=>r(Ht(P));try{let P=await gr(s,R&&[R],u,i,h,void 0,A),{variables:I,status:E}=P;r(Tr.setVariableChange({attributes:y,variables:I,status:E}));}catch(P){console.log("Error in runConsumers client side: recalculateVariables",P);}}}function su(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 iu(e){return async(t,r,o)=>{let n=await o.urlProxy({url:e});if("error"in n)throw new Error(n.error);return n.data}}function cu(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function lu(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 uu(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 pu({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 du(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 xr(e){let{removeBlocks:t}=_e.actions;return async r=>{await r(t(e));}}function _o(e){let{addBlocks:t}=_e.actions;return async r=>{await r(t(e));}}function mu(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 fu(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 gu(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}}var ts=e=>configureStore({reducer:{[_e.name]:_e.reducer,[Er.name]:Er.reducer,[Ar.name]:Ar.reducer},middleware(t){return t({thunk:{extraArgument:zt("/api/cms/")}})}}),Jt=createWrapper(ts);function Su(e){let t=process.cwd(),r=bu.resolve(t.endsWith("/example")?t.replace("/example",""):t,"package-lock.json"),o;try{let n=JSON.parse(nc.readFileSync(r,"utf-8"));o=n.dependencies&&n.dependencies[e]&&n.dependencies[e].version!=="file:packages/reports"?n.dependencies[e].version:"0.dev";}catch{o="0.vercel";}return o||"Version not found"}function Eu(e){let t=()=>Promise.resolve({}),{pathSegmentsKey:r="bespoke",preResolve:o=t,postResolve:n=t,authOptions:a={providers:[]}}=e||{};return Jt.getServerSideProps(s=>{let{dispatch:i}=s;return async c=>{let l=await me(c.req,c.res,a);if(!l)return {redirect:{destination:"/api/auth/signin?callbackUrl=/cms",permanent:!1}};let p=new Set([G.ADMIN,G.EDITOR,G.WRITER]);if(!(l?.user?.bespoke_roles||[]).some(A=>p.has(A)))return {redirect:{destination:"/",permanent:!1}};let d=c.query[r],[m]=Array.isArray(d)?d:[d];await i(Ut);let y=await Su("@datawheel/bespoke"),h=await o(s,c);if("redirect"in h)return {props:h};m==="reports"&&(rs(c.query[r])?await Promise.all([i(ne("formatter",{})),i(ne("report",{id:rs(c.query[r]),include:!0})),qe.setStatus({isCMS:!0})]):await Promise.all([i(ne("report",{include:"dimensions"})),qe.setStatus({isCMS:!0})])),m==="metadata"&&await i(ne("report",{include:"dimensions"})),m==="formatters"&&await i(ne("formatter",{}));let R=await n(s,c);return {props:{...h,...R,bespokeVersion:y,session:l}}}})}function rs(e){if(e==null||e==="")return;let[,t]=Array.isArray(e)?e:[e];return Number.parseInt(t)||void 0}var {locales:Tu}=j(),_u={pathSegment:"path",formatterFunctions:Tu.reduce((e,t)=>({...e,[t]:{}}),{}),profilePrefix:"path",siteProps:{}};createContext(_u);j();var cs=e=>e.records.entities.block;function At(e){return t=>Object.values(t.records.entities[e])}var ls=At("section"),us=At("formatter");function Fu(e){let{fallback:t=!0,limit:r=50}=e||{};return async o=>{let{defaultLocale:n=ue,locales:a=[]}=o,s=[];if(r>0){let i=a.find(p=>p===n),{searchMember:c}=await Ne().then(ct),l=await c({query:"",limit:r,format:"plain",locale:i||ue,noImage:!1,visible:!0,report:[],dimension:[],variant:[],includes:!0});l.ok===!0&&(s=l.data.results.map(p=>({locale:a.find(u=>u===p.locale),params:{bespoke:[p.variant.slug,p.slug]}})));}return {fallback:t,paths:s}}}function Vu(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return Jt.getStaticProps(r=>{let{dispatch:o}=r;return async n=>{await o(Ut);let a=new Date().toISOString(),{locale:s=ue,params:i={}}=n,c=Array.from(zu(i[t]));if(c.length===0)return await Promise.all([o(ne("formatter",{})),o(ne("report",{include:!0}))]),{props:{buildTime:a}};let l=await o(Ht({mode:"slugs",locale:s,slugs:c,output:"full"}));o(Wt.setPreviews(l.results)),await Promise.all([o(ne("formatter",{})),o(ne("report",{id:l.results.map(b=>b.report_id),include:!0,locales:[s]}))]);let p=r.getState(),u=us(p),d=oo(u,s),m=ls(p),y=cs(p),h={...y},R={},A=Object.values(y).reduce((b,O)=>("access"in O.settings&&!["public","guest"].some(D=>!O.settings.access||O.settings.access.includes(D))&&b.push(O.id),b),[]);A=A.concat(Dt(A,Object.values(h)));let P=A.filter(b=>h[b].settings[Wo.FALLBACK]);A.forEach(b=>{P.includes(b)&&(R[b]={...h[b],type:C.FALLBACK,original_type:h[b].type}),delete h[b];}),await o(xr(A)),await o(_o(R));let I={...yr(l.results),locale:s,...hr()},E=async b=>await o(Ht(b));return await gr({...h,...R},m,void 0,d,{locale:s,query:i,variables:I},void 0,E,"report").then(async b=>{let O=Object.keys(h).reduce((D,F)=>(b.variables[F]&&b.status[F]||D.push(F),D),[]);await o(xr(O)),await o(Tr.setVariableChange({...b,attributes:I}));}),{props:{buildTime:a}}}})}catch(r){console.log("ERROR SSR",r);}}function zu(e=[]){let t=[].concat(e),r=0;return {next(){return {value:{variantSlug:t[r++],memberSlug:t[r++]},done:r>t.length}},[Symbol.iterator](){return this}}}
|
|
64
64
|
|
|
65
65
|
export { Uc as BespokeEndpointNextJsHandlerFactory, me as BespokeGetSession, hs as BespokeHandleAuth, Eu as BespokeManagerServerSideProps, Fu as BespokeRendererStaticPaths, Vu as BespokeRendererStaticProps, ws as BespokeSearchUsersByMetadata, Es as BespokeUpdateCurrentUserAppMetadata, _s as BespokeUpdateCurrentUserMetadata, ks as BespokeWithApiRoleAuthRequired, Vc as ReportCrosswalkHandler, ct as dbApiFactory, Hr as endpointKey, Ne as getDB, Ut as useDatabaseApi };
|