@datawheel/bespoke 0.9.3 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cms.js +1 -1
- package/dist/explore.js +1 -1
- package/dist/report.js +1 -1
- package/dist/server.js +2 -2
- package/package.json +1 -1
package/dist/cms.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import'path';import'url';import*as MP from'd3-array';import*as BP from'd3-collection';import {nest}from'd3-collection';import*as DP from'd3-format';import {format as format$1}from'd3-format';import*as _P from'd3-time-format';import {formatAbbreviate}from'd3plus-format';import {date}from'd3plus-axis';import {merge,closest,assign,isObject}from'd3plus-common';import {titleCase,strip}from'd3plus-text';import jP from'jsonwebtoken';import {schema,normalize}from'normalizr';import Pu from'axios';import Kl from'yn';import {format}from'pretty-format';import vO from'next/config';import iS from'axios-retry';import TO from'toposort';import {csvParse,csvFormat}from'd3-dsv';import {getSession,signOut,useSession}from'next-auth/react';import {createSlice,configureStore}from'@reduxjs/toolkit';import {HYDRATE,createWrapper}from'next-redux-wrapper';import {notifications,Notifications}from'@mantine/notifications';import*as In from'react';import In__default,{forwardRef,useState,useEffect,useImperativeHandle,createContext,useCallback,useRef,useMemo,useContext,memo,createElement,Fragment as Fragment$2}from'react';import {useSelector,useDispatch}from'react-redux';import {Group,Stack,Text,ThemeIcon,useMantineTheme,List,UnstyledButton,Center,createStyles,Image,Checkbox,Input,Select,NumberInput,Accordion,TextInput,Badge,rem,ScrollArea,Tooltip,Divider,MultiSelect,Button,Switch,Radio,Title,Flex,packSx,Box,Anchor,Skeleton,SegmentedControl,ActionIcon,Popover,px,Modal,CloseButton,Menu,CopyButton,Loader,Notification,Textarea,Col,Grid,Tabs,Overlay,Collapse,Alert,Breadcrumbs,Code,MediaQuery,Card,MantineProvider,Navbar,Avatar,AppShell,HoverCard,Paper,Autocomplete,Space,Container,LoadingOverlay,Pagination,Drawer,FileInput,SimpleGrid,Header,clsx}from'@mantine/core';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useRouter}from'next/router';import {saveAs}from'file-saver';import {useListState,useSetState,randomId,useClickOutside,useDisclosure,getHotkeyHandler,useFullscreen,useDebouncedValue,useMediaQuery,useUncontrolled,useHotkeys,useMergedRef}from'@mantine/hooks';import SB from'slugify';import {Prism}from'@mantine/prism';import {IconCirclePlus,IconCircleCheck,IconLogout,IconBraces,IconGripVertical,IconDice,IconBoxMultiple,IconEyeOff,IconFlag,IconChevronDown,IconBallpen,IconDatabase,IconMathFunction,IconNetwork,IconUsers,IconLanguage,IconListTree,IconTable,IconPhoto,IconSelector,IconAlignLeft,IconChartBar,IconPercentage,IconApi,IconHeading,IconLanguageOff,IconPhotoFilled,IconFileUpload,IconInfoCircle,IconLogin,IconWorld,IconLock,IconPencil,IconCopy,IconChevronLeft,IconChevronRight,IconPlus,IconSearch,IconRefresh,IconCheck,IconTrash,IconDeviceFloppy,IconCircleX,IconPalette,IconSettings,IconCode,IconBold,IconItalic,IconUnderline,IconArrowBackUp,IconArrowForwardUp,IconAlignCenter,IconAlignRight,IconAlignJustified,IconGlobe,IconLinkOff,IconX,IconGitMerge,IconAlertTriangle,IconHelp,IconMinimize,IconMaximize,IconAlertCircle,IconCloudNetwork,IconClockHour2,IconAugmentedReality,IconChevronUp,IconCodePlus,IconCircleKey,IconServer,IconPlayerPlay,IconCircleCheckFilled,IconFileAnalytics,IconCircleDashed,IconHome,IconQuestionMark,IconGripHorizontal,IconListCheck,IconPolaroid,IconCircleMinus,IconVariable,IconArrowRightCircle,IconSlash,IconHelpCircle,IconCamera,IconShare,IconUpload,IconFileCode,IconWorldUpload,IconSettingsFilled,IconArrowLeft,IconArrowRight,IconIndentIncrease,IconCodeDots,IconBinaryTree,IconLink,IconSparkles,IconClipboardCheck,IconClipboardCopy,IconExternalLink,IconTemplate,IconDownload,IconFileTypeXls,IconFileTypeJs,IconFileTypeCsv}from'@tabler/icons-react';import AT,{Element as Element$1,domToReact,Text as Text$1}from'html-react-parser';import {dataConcat,dataLoad}from'd3plus-viz';import {MantineReactTable}from'mantine-react-table';import I1 from'jszip';import*as EV from'd3plus-react';import IV from'next/dynamic';import {select}from'd3-selection';import {saveElement}from'd3plus-export';import {FacebookShareButton,FacebookIcon,TwitterShareButton,TwitterIcon,TelegramShareButton,TelegramIcon,WhatsappShareButton,WhatsappIcon,LinkedinShareButton,LinkedinIcon,RedditShareButton,RedditIcon,EmailShareButton,EmailIcon}from'react-share';import'xlsx';import J8 from'next/head';import TP from'next/link';import {DragDropContext,Droppable,Draggable}from'@hello-pangea/dnd';import U_,{useMonaco}from'@monaco-editor/react';import {EditorProvider,ReactRenderer,useCurrentEditor,BubbleMenu}from'@tiptap/react';import P5 from'@tiptap/extension-underline';import O5 from'@tiptap/starter-kit';import L5 from'@tiptap/extension-mention';import M5 from'@tiptap/extension-hard-break';import {Plugin,PluginKey,Selection,TextSelection,NodeSelection}from'@tiptap/pm/state';import'@tiptap/pm/view';import'@tiptap/pm/keymap';import {Fragment as Fragment$1,Slice,Schema,DOMParser}from'@tiptap/pm/model';import {canSplit,joinPoint,liftTarget,canJoin,ReplaceStep,ReplaceAroundStep}from'@tiptap/pm/transform';import {selectTextblockStart,selectTextblockEnd,selectParentNode,selectNodeForward,selectNodeBackward,newlineInCode,liftEmptyBlock,joinUp,joinTextblockForward,joinTextblockBackward,joinForward,joinDown,joinBackward,exitCode,deleteSelection,createParagraphNear,wrapIn,setBlockType,lift}from'@tiptap/pm/commands';import {wrapInList,sinkListItem,liftListItem}from'@tiptap/pm/schema-list';import B5 from'@tiptap/extension-text-align';import D5 from'@tiptap/extension-placeholder';import K5 from'@tiptap/extension-typography';import*as yr from'd3';import*as jd from'd3-dag';import {useForm}from'@mantine/form';var yP=Object.defineProperty;var N=(e,t)=>()=>(e&&(t=e(e=0)),t);var bm=(e,t)=>{for(var o in t)yP(e,o,{get:t[o],enumerable:true});};var p=N(()=>{});var IP,We,Vo=N(()=>{p();IP=()=>{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}},We=IP;});function Fr(e){if(!e)throw Error("Assertion Error")}function wl(e,t){return +(e<t)-+(e>t)}function uo(e,t,o="ordering"){return wl(t[o],e[o])}function kl(e){if(e===""||e.charCodeAt(e.length-1)==32)return false;for(let t=0;t<e.length;t++){let o=e.charCodeAt(t);if(o<32||o>126)return false}return true}function mv(e){Fr(e.length!==0);for(let o=e.length-1;o>=0;o--){let r=e.charCodeAt(o);if(r>33){let n=e.substr(0,o)+String.fromCharCode(r-1);return Fr(kl(n)),n}}let t=e.substr(0,e.length-1)+" ~";return Fr(kl(t)),t}function El(e){Fr(e.length!==0);for(let o=e.length-1;o>=0;o--){let r=e.charCodeAt(o);if(r<126){let n=e.substr(0,o)+String.fromCharCode(r+1);return Fr(kl(n)),n}}let t=e+"!";return Fr(kl(t)),t}function fv(e,t){return Math.trunc((e+t)/2)}function gv(e,t){Fr(e<t);let o=false,r="",n=Math.max(e.length,t.length);for(let i=0;i<n;i++){let a=i<e.length?e.charCodeAt(i):32,l=i<t.length&&!o?t.charCodeAt(i):126;if(a===l)r+=String.fromCharCode(a);else if(l-a>1){r+=String.fromCharCode(fv(a,l)),o=false;break}else r+=String.fromCharCode(a),o=true;}return o&&(r+=String.fromCharCode(fv(32,126))),Fr(e<r),Fr(r<t),Fr(kl(r)),r}function hn(e,t,o,r=false,n=true,i="ordering"){if(r)return o===0?e[t[0]]?mv(e[t[0]][i]):"!":o===t.length?El(e[t[o-1]][i]):gv(e[t[o-1]][i],e[t[o]][i]);if(o===0)return mv(e[t[o]][i]);if(o===t.length-1)return El(e[t[o]][i]);let a=n?o:o-1,l=n?o+1:o;return gv(e[t[a]][i],e[t[l]][i])}function Va(e,t=false){let o=e.reduce((r,n)=>wl(n,r)<0?n:r,"!");return t?El(o):o}var $o=N(()=>{p();});function xm(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 hv(e,t,o){let r=0,n=1,i=1,a=1,l=0,s=0,u;for(;Math.abs((i-s)/i)>1e-5;)s=i,u=-(t+l)*(t+o+l)*e/(t+2*l)/(t+2*l+1),r=i+u*r,n=a+u*n,l+=1,u=l*(o-l)*e/(t+2*l-1)/(t+2*l),i=r+u*i,a=n+u*a,r/=a,n/=a,i/=a,a=1;return i/t}function AP(e,t,o){let r,n;if(e<0)n=0;else if(e>=t)n=1;else {e=Math.floor(e);let i=o,a=e+1,l=t-e,s=a+l,u=Math.exp(xm(s)-xm(l)-xm(a)+a*Math.log(i)+l*Math.log(1-i));i<(a+1)/(s+2)?r=u*hv(i,a,l):r=1-u*hv(1-i,l,a),n=1-r;}return Math.round(n*1e5)/1e5}function PP(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function Rl(e,t,o,r){let n=t/(1-t),i=0,a=1,l=0,s=0;for(;i<=e;)s+=a,i>=o&i<=r&&(l+=a),s>1e30&&(l/=1e30,s/=1e30,a/=1e30),i+=1,a=a*n*(e+1-i)/i;return l/s}function OP(e,t,o){let r=e/t,i=(100-o*100)/2,a,l;if(e===0)a=0;else {let s=r/2,u=0,c=r,d=i/100;for(;c-u>1e-5;)Rl(t,s,e,e)*.5+Rl(t,s,e+1,t)>d?(c=s,s=(u+s)/2):(u=s,s=(c+s)/2);a=s;}if(e===t)l=0;else {let s=(1+r)/2,u=r,c=1,d=i/100;for(;c-u>1e-5;)Rl(t,s,e,e)*.5+Rl(t,s,0,e-1)<d?(c=s,s=(u+s)/2):(u=s,s=(c+s)/2);l=s;}return {lci:a,uci:l}}function LP(e,t){let o=e,r=t,n=o,i=r,a=95,l=.5,s=.5,c=(100-a)/2/100,d=n;for(;s>1e-5;)s/=2,gu((1+d)*l/(1-l),d+1,1e10)+.5*gu((1+d)*l/(1-l),d,d)>c?l-=s:l+=s;let m=(1+d)*l/(1-l)/i;for(l=.5,s=.5,c=(100-a)/2/100;s>1e-5;)s/=2,gu((1+d)*l/(1-l),0,d-1)+.5*gu((1+d)*l/(1-l),d,d)<c?l-=s:l+=s;let g=(1+d)*l/(1-l)/i;return {lci:m,uci:g}}function gu(e,t,o){let r=1,n=0,i=0,a=0;for(;a<e||r>n*1e-10;)n+=r,a>=t&a<=o&&(i+=r),n>1e30&&(i/=1e30,n/=1e30,r/=1e30),a+=1,r=r*e/a;return i/n}var bv,yv=N(()=>{p();bv={binomialCdf:AP,binP:Rl,computeMidP:OP,criticalValue:PP,smr:LP};});function le(e){let t=e.logicFactory(qn);return HP[e.name]={description:e.description,inputType:e.inputType,logic:WP(t),testValue:e.testValue,type:e.type||"formatter"},t}function WP(e){let t=e.toString().trim();if(t.startsWith("function"))return t.replace(/^function(?:\s\w+)?\([^)]\)/,"").trim().replace(/^{([\s\S]+)\}$/,"$1");let o=t.replace(/^.+?=>/,"").trim();return o.startsWith("{")?o.replace(/^{([\s\S]+)\}$/,"$1"):`return ${o}`}var qn,HP,Te=N(()=>{p();yv();qn={d3:{...MP,...BP,...DP,..._P},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:bv},HP={};});var vv,Sv=N(()=>{p();vv={jwt:jP};});var $a,bu,Ua=N(()=>{p();Te();Sv();$a=(e,t={},o="en",r={},n={})=>{let i={setVariables:r.onSetVariables?r.onSetVariables:s=>s,openModal:r.onOpenModal?r.onOpenModal:s=>s,formatters:t,libs:qn,locale:o,...n};function a(s){return Function("globals",...s.vars,`with (globals) { ${s.logic} }`).bind(i,i)}function l(s){if(s.vars&&s.logic)return a(s);for(let u in s)Array.isArray(s[u])?s[u]=s[u].map(c=>isObject(c)?l(c):c):isObject(s[u])&&(s[u]=l(s[u]));return s}return l(e)},bu=(e,t={})=>{let o={libs:vv,...t};function r(i){return Function("globals",...i.vars,`with (globals) { ${i.logic} }`).bind(o,o)}function n(i){if(i.vars&&i.logic)return r(i);for(let a in i)Array.isArray(i[a])?i[a]=i[a].map(l=>isObject(l)?n(l):l):isObject(i[a])&&(i[a]=n(i[a]));return i}return n(e)};});function yu(e,t){let o=QP[e];if(!o)throw new Error(`Invalid entity type: ${e}`);let{entities:r}=normalize(t,[o]);return {report:Bi(r,"report"),dimension:Bi(r,"dimension"),section:Bi(r,"section"),block:Bi(r,"block"),variant:Bi(r,"variant"),formatter:Bi(r,"formatter"),datasource:Bi(r,"datasource")}}function Bi(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:{}}var qP,Il,xv,Tv,Cv,YP,XP,JP,QP,kv,Yn,Xn=N(()=>{p();$o();Ua();Vo();(({localeDefault:qP}=We())),Il=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});Il.define({consumers:[Il],inputs:[Il]});xv=new schema.Entity("variant"),Tv=new schema.Entity("dimension",{variants:[xv]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),Cv=new schema.Entity("section",{blocks:[Il]}),YP=new schema.Entity("report",{dimensions:[Tv],sections:[Cv]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(uo):[]}}}),XP=new schema.Entity("formatter"),JP=new schema.Entity("datasource"),QP={report:YP,section:Cv,block:Il,dimension:Tv,variant:xv,formatter:XP,datasource:JP};kv=(e,t=void 0)=>{let{sid:o,bid:r,previews:n=[],query:i={}}=t||{},a,l,s={};return o?(a=o,s.activeSection=a):a=e.activeSection,n.length>0?(l=n,s.previews=l.filter(Boolean)):l=e.previews,{parsedParams:{sid:a,bid:r,previews:l,query:i},statusPayload:s}},Yn=(e=[],t=qP)=>e.reduce((o,r)=>{let n=$a({vars:["n"],logic:r.content.logic},{},t,{});return o[r.name]=n,o},{});});function xr(e,t){return e.request(t).then(o=>{let{status:r,data:n}=o;return "error"in n?{ok:false,status:r,error:n.error}:{ok:true,status:r,wrapper:n.wrapper,data:n.data}},o=>{if("isAxiosError"in o){let{status:r,data:n}=o.response||{status:500};return {ok:false,status:r,error:n?.error??o.message}}return {ok:false,status:500,error:o.message}})}function Je(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>xr(e,{...r,method:"GET",params:o?o(n):n})}function nt(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>xr(e,{...r,method:"POST",data:n})}function Jn(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>xr(e,{...r,method:"DELETE",params:o?o(n):n})}var Ga=N(()=>{p();});function _i(e,t){return o=>xr(e,{method:"POST",url:`images/save/${t}`,params:{prompt:o.prompt,provider:t}})}var Ev=N(()=>{p();Ga();});function Ha(e,t){return o=>xr(e,{method:"GET",url:`images/search/${t}`,params:{prompt:o.prompt,page:o.page,provider:t}})}var wv=N(()=>{p();Ga();});function Rv(e,t){return ()=>xr(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}var Iv=N(()=>{p();Ga();});function Av(e,t){return o=>xr(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:o.name}})}var Pv=N(()=>{p();Ga();});function Al(e){let t=Pu.create({baseURL:e});return {createBulkBlock:nt(t,"create/bulk/block"),createBlock:nt(t,"create/block"),createDimension:nt(t,"create/dimension"),createFormatter:nt(t,"create/formatter"),createReport:nt(t,"create/report"),createSection:nt(t,"create/section"),createVariant:nt(t,"create/variant"),createDatasource:nt(t,"create/datasource"),deleteBlock:Jn(t,"delete/block",Ni),deleteDimension:Jn(t,"delete/dimension",Ni),deleteFormatter:Jn(t,"delete/formatter",Ni),deleteReport:Jn(t,"delete/report",Ni),deleteSection:Jn(t,"delete/section",Ni),deleteVariant:Jn(t,"delete/variant",Ni),deleteDatasource:Jn(t,"delete/datasource",Ni),readBlock:Je(t,"read/block"),readDimension:Je(t,"read/dimension"),readFormatter:Je(t,"read/formatter"),readReport:Je(t,"read/report"),readSection:Je(t,"read/section"),readVariant:Je(t,"read/variant"),readDatasource:Je(t,"read/datasource"),updateBulkBlock:nt(t,"update/bulk/block"),updateBlock:nt(t,"update/block"),updateDimension:nt(t,"update/dimension"),updateFormatter:nt(t,"update/formatter"),updateReport:nt(t,"update/report"),updateSection:nt(t,"update/section"),updateVariant:nt(t,"update/variant"),updateDatasource:nt(t,"update/datasource"),searchReport:Je(t,"search/reports"),validateVariantSlug:Je(t,"validate/variant"),readMember:Je(t,"read/members",eO),readMemberImage:Je(t,{url:"member/image",responseType:"blob"}),searchMember:Je(t,"search/members"),updateMember:Je(t,"update/members"),imageLocalSearch:Ha(t,"local"),imageLocalSave:_i(t,"local"),imageFlickrSearch:Ha(t,"flickr"),imageFlickrSave:_i(t,"flickr"),imageUnsplashSearch:Ha(t,"unsplash"),imageUnsplashSave:_i(t,"unsplash"),imageUploadSave:_i(t,"upload"),imageAdobeSearch:Ha(t,"adobe"),imageAdobeSave:_i(t,"adobe"),imagePixabaySearch:Ha(t,"pixabay"),imagePixabaySave:_i(t,"pixabay"),readMetadata:Je(t,"read/metadata"),regenerateSearch:nt(t,"search/regenerate"),urlProxy:Je(t,"url/proxy"),searchRole:Je(t,"auth/search/roles"),searchUser:Je(t,"auth/search/users"),readUser:Je(t,"auth/read/user"),updateUser:nt(t,"auth/update/user"),updateMyData:nt(t,"auth/update/me"),revalidateReport:Je(t,"revalidate/report"),revalidateUrl:Je(t,"revalidate/url"),readPrivateBlocks:nt(t,"read/blocks/private"),listTablerIcons:Rv(t,"tabler"),readTablerIcon:Av(t,"tabler"),readEnvSecrets:Je(t,"read/secrets")}}var Ni,eO,Ov=N(()=>{p();Ev();wv();Ga();Iv();Pv();Ni=e=>({id:e}),eO=e=>{if(e.mode==="slugs"){let t=e.slugs.map(o=>[o.variantSlug,o.memberSlug].join("/")).join(",");return {...e,slugs:t}}return ["related","whole"].includes(e.mode)?{...e}:{...e,[e.mode]:e[e.mode].join(",")}};});var Tm=N(()=>{p();Ov();});var zi,Lv,vu=N(()=>{p();zi="report",Lv="Report";});var Pl,Bv,km=N(()=>{p();vu();Pl="section",Bv="Section";});function tr(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||tO}}var tO,Su,Nv,Qn=N(()=>{p();km();Vo();(({localeDefault:tO}=We())),Su="block",Nv="Block";});var bn,Uv,Vv,yt,Tu,$v,Em,oO,rO,nO,iO,wm,Rm,E,Re,Ye,or,Dt,xu,Wa,yn,Cu,he=N(()=>{p();bn={REPORT:"report",SECTION:"section",BLOCK:"block",INPUT:"block_input",FORMATTER:"formatter",DATASOURCE:"datasource",DIMENSION:"report_dimension",VARIANT:"report_dimension_variant",SEARCH:"search"},[bn.BLOCK,bn.SEARCH],Uv={report:"Report",section:"Section",block:"Block",block_input:"Input",formatter:"Formatter",datasource:"Data Source",dimension:"Dimension",variant:"Variant",search:"Search"},{[bn.SECTION]:"report_id",[bn.DIMENSION]:"report_id",[bn.VARIANT]:"dimension_id",[bn.BLOCK]:"section_id",[bn.INPUT]:"block_id"},Vv={REPORT:"report",STORY:"story"},yt={SINGLE:"single",MULTI:"multi"},Tu={SEGMENTED_CONTROL:"segmented control",SELECTOR:"selector"},$v={TITLE:"title",SUBTITLE:"subtitle",LABEL:"label"},{[Vv.REPORT]:Object.values($v),[Vv.STORY]:Object.values($v)},Em={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},oO={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},rO={DISABLED:"disabled"},nO={FALLBACK:"fallback"},{...Em},{POSITION:"position",ICON:"icon",...Em},iO={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"},wm={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},Rm="logic",E={...iO,...wm},[E.GENERATOR,E.SECTION_FLAG,E.SELECTOR,E.VIZ,E.IMAGE,E.TABLE,E.MULTIHIERARCHY_SELECTOR],Re={ALT:"alt",AUTHOR:"author",DESC:"desc",FOOTNOTE:"footnote",BIO:"bio",IMAGE:"image",LABEL:"label",LOGIC:"logic",MULTIHIERARCHY_SELECTOR:"multihierarchySelector",MULTIHIERARCHY_SELECTOR_ALL_LABEL:"multihierarchySelectorAllLabel",MULTIHIERARCHY_SELECTOR_NAME:"multihierarchySelectorName",MULTIHIERARCHY_SELECTOR_PLACEHOLDER:"multihierarchySelectorPlaceholder",SIMPLE:"simple",SIMPLE_ENABLED:"simpleEnabled",PARAGRAPH:"paragraph",SELECTOR_DEFAULT:"selectorDefault",SELECTOR_DYNAMIC:"selectorDynamic",SELECTOR_NAME:"selectorName",SELECTOR_TYPE:"selectorType",SRC:"src",SLUG:"slug",SUBTITLE:"subtitle",TABLE:"table",TITLE:"title",SHORT_TITLE:"shortTitle",TOOLTIP:"tooltip",TWITTER:"twitter",URL:"url",VALUE:"value"},[Re.LOGIC,Re.SIMPLE,Re.SIMPLE_ENABLED],Ye={ENABLE_ALL:{bubbleMenu:true,toolbarOptions:{history:true,alignment:false,format:true}},DISABLE_ALL:{bubbleMenu:false,toolbarOptions:{history:false,alignment:false,format:false}},ENABLE_FORMAT:{bubbleMenu:true,toolbarOptions:{history:true,alignment:false,format:true}}},or={[E.IMAGE]:[{field:Re.TITLE,editorConfig:Ye.ENABLE_ALL},{field:Re.SRC,editorConfig:Ye.DISABLE_ALL},{field:Re.ALT,editorConfig:Ye.DISABLE_ALL},{field:Re.DESC,editorConfig:Ye.ENABLE_ALL}],[E.PARAGRAPH]:[{field:E.PARAGRAPH,editorConfig:Ye.ENABLE_ALL},{field:Re.TOOLTIP,editorConfig:Ye.ENABLE_FORMAT}],[E.SELECTOR]:[{field:Re.SELECTOR_DEFAULT},{field:Re.SELECTOR_DYNAMIC},{field:Re.SELECTOR_NAME,editorConfig:Ye.ENABLE_FORMAT},{field:Re.SELECTOR_TYPE}],[E.STAT]:[{field:Re.TITLE,editorConfig:Ye.ENABLE_FORMAT},{field:Re.SUBTITLE,editorConfig:Ye.ENABLE_FORMAT},{field:Re.VALUE,editorConfig:Ye.ENABLE_FORMAT},{field:Re.TOOLTIP,editorConfig:Ye.ENABLE_FORMAT}],[E.SUBTITLE]:[{field:Re.SUBTITLE,editorConfig:Ye.ENABLE_FORMAT},{field:Re.TOOLTIP,editorConfig:Ye.ENABLE_FORMAT}],[E.TITLE]:[{field:Re.TITLE,editorConfig:Ye.ENABLE_FORMAT},{field:Re.SLUG,editorConfig:Ye.DISABLE_ALL},{field:Re.TOOLTIP,editorConfig:Ye.ENABLE_FORMAT}],[E.BUTTON]:[{field:Re.LABEL,editorConfig:Ye.ENABLE_FORMAT},{field:Re.URL,editorConfig:Ye.ENABLE_FORMAT}],[E.GENERATOR]:[],[E.SECTION_FLAG]:[],[E.VIZ]:[],[E.TABLE]:[],[E.MULTIHIERARCHY_SELECTOR]:[{field:Re.MULTIHIERARCHY_SELECTOR_NAME,editorConfig:Ye.ENABLE_FORMAT},{field:Re.MULTIHIERARCHY_SELECTOR_PLACEHOLDER,editorConfig:Ye.DISABLE_ALL},{field:Re.MULTIHIERARCHY_SELECTOR_ALL_LABEL,editorConfig:Ye.DISABLE_ALL}],[E.NAV]:[{field:Re.TITLE,editorConfig:Ye.ENABLE_FORMAT},{field:Re.SHORT_TITLE,editorConfig:Ye.ENABLE_FORMAT}]},Dt={NAME:"name",DESCRIPTION:"description",...Em,...oO,...nO,...rO},xu={FORMATTER:"formatter",FUNCTION:"function"},Wa={[xu.FORMATTER]:"Formatter",[xu.FUNCTION]:"Function"},yn={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"},Cu={[yn.STRING]:"String",[yn.NUMBER]:"Number",[yn.OBJECT]:"Object/Array",[yn.DATE]:"Date"};});function uO(e,t,o,r,n=void 0,i){let a={},l=[],{locale:s}=tr(i);try{if(t){let u=new Proxy(console,{get(d,m){return pO(m,"log","debug","info","warn","error")?(...f)=>{l.push(`${m} ${Date.now()} - ${f.map(g=>format(g)).join(" ")}`),cO&&d[m](...f);}:d[m]}}),c;return n?c=new Function(e,"console","libs","formatters","locale","variables",o)(t,u,qn,r,s,n):c=new Function(e,"console","libs","formatters","locale",o)(t,u,qn,r,s),typeof c=="object"&&Object.keys(c).length>0&&Object.assign(a,c),{vars:a,error:null,log:l,output:c}}return {vars:a,error:"Invalid API Link",log:l}}catch(u){return {vars:a,error:u.message,log:l}}}function pO(e,...t){return t.includes(e)}var cO,Vr,ja=N(()=>{p();Qn();Te();cO=Kl(process.env.REPORTS_LOGGING),Vr=uO;});function Im(e){return e.reduce((t,o,r)=>(r?r===e.length-1&&r===1?t+=` and ${o}`:r===e.length-1?t+=`, and ${o}`:t+=`, ${o}`:t+=o,t),"")}var Gv=N(()=>{p();});function dO(e,t,o,r=false){let{variables:n}=tr(o);if(!e)return e;let i=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(i,(l,s,u)=>{let c=m=>m;if(s){let m=s.replace(/^\w/g,f=>f.toLowerCase());m in t?c=t[m]:c=f=>`${s}${f}`;}let d=Array.isArray(n[u])?Im(n[u]):n[u];if(d===void 0)return r?l:"N/A";try{return c(d,qn,t)}catch(m){return console.error(`Error using formatter ${c.name}
|
|
1
|
+
import'path';import'url';import*as MP from'd3-array';import*as BP from'd3-collection';import {nest}from'd3-collection';import*as DP from'd3-format';import {format as format$1}from'd3-format';import*as _P from'd3-time-format';import {formatAbbreviate}from'd3plus-format';import {date}from'd3plus-axis';import {isObject,merge,closest,assign}from'd3plus-common';import {titleCase,strip}from'd3plus-text';import jP from'jsonwebtoken';import {schema,normalize}from'normalizr';import Pu from'axios';import Kl from'yn';import {format}from'pretty-format';import vO from'next/config';import iS from'axios-retry';import TO from'toposort';import {csvParse,csvFormat}from'd3-dsv';import {getSession,signOut,useSession}from'next-auth/react';import {createSlice,configureStore}from'@reduxjs/toolkit';import {HYDRATE,createWrapper}from'next-redux-wrapper';import {notifications,Notifications}from'@mantine/notifications';import*as In from'react';import In__default,{forwardRef,useState,useEffect,useImperativeHandle,createContext,useCallback,useRef,useMemo,useContext,Fragment as Fragment$2,memo,createElement}from'react';import {useDispatch,useSelector}from'react-redux';import {Group,Stack,Text,ThemeIcon,useMantineTheme,List,UnstyledButton,Center,createStyles,Image,Checkbox,Input,Select,NumberInput,Accordion,TextInput,Badge,rem,ScrollArea,Tooltip,Divider,MultiSelect,Button,Switch,Radio,Title,Box,Anchor,Skeleton,SegmentedControl,Flex,ActionIcon,Popover,px,Modal,CopyButton,Loader,Textarea,Col,Grid,Tabs,Overlay,Collapse,Alert,Breadcrumbs,Menu,Code,packSx,MantineProvider,Navbar,Avatar,AppShell,HoverCard,Paper,Card,Space,Container,LoadingOverlay,Pagination,CloseButton,Drawer,Notification,FileInput,SimpleGrid,Header,Autocomplete,MediaQuery,clsx}from'@mantine/core';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useRouter}from'next/router';import {saveAs}from'file-saver';import {useListState,useSetState,randomId,useClickOutside,useDisclosure,useFullscreen,useDebouncedValue,getHotkeyHandler,useUncontrolled,useHotkeys,useMergedRef,useMediaQuery}from'@mantine/hooks';import SB from'slugify';import {Prism}from'@mantine/prism';import {IconCirclePlus,IconCircleCheck,IconLogout,IconBraces,IconGripVertical,IconDice,IconBoxMultiple,IconEyeOff,IconFlag,IconChevronDown,IconBallpen,IconDatabase,IconMathFunction,IconNetwork,IconUsers,IconLanguage,IconLanguageOff,IconPhotoFilled,IconFileUpload,IconInfoCircle,IconLogin,IconWorld,IconLock,IconPencil,IconCopy,IconCheck,IconPlus,IconTrash,IconDeviceFloppy,IconCircleX,IconPalette,IconSettings,IconChevronRight,IconCode,IconBold,IconItalic,IconUnderline,IconArrowBackUp,IconArrowForwardUp,IconAlignLeft,IconAlignCenter,IconAlignRight,IconAlignJustified,IconGlobe,IconLinkOff,IconX,IconGitMerge,IconAlertTriangle,IconHelp,IconMinimize,IconMaximize,IconAlertCircle,IconCloudNetwork,IconClockHour2,IconApi,IconAugmentedReality,IconListTree,IconTable,IconPhoto,IconSelector,IconChartBar,IconPercentage,IconHeading,IconCodePlus,IconServer,IconPlayerPlay,IconCircleCheckFilled,IconFileAnalytics,IconCircleDashed,IconHome,IconChevronLeft,IconSearch,IconRefresh,IconQuestionMark,IconGripHorizontal,IconListCheck,IconPolaroid,IconCircleMinus,IconVariable,IconArrowRightCircle,IconSlash,IconHelpCircle,IconCamera,IconShare,IconUpload,IconFileCode,IconWorldUpload,IconSettingsFilled,IconArrowLeft,IconArrowRight,IconIndentIncrease,IconCodeDots,IconBinaryTree,IconLink,IconSparkles,IconClipboardCheck,IconClipboardCopy,IconExternalLink,IconTemplate,IconDownload,IconFileTypeXls,IconFileTypeJs,IconFileTypeCsv,IconChevronUp,IconCircleKey}from'@tabler/icons-react';import AT,{Element as Element$1,domToReact,Text as Text$1}from'html-react-parser';import {dataConcat,dataLoad}from'd3plus-viz';import {MantineReactTable}from'mantine-react-table';import I1 from'jszip';import*as EV from'd3plus-react';import IV from'next/dynamic';import {select}from'd3-selection';import {saveElement}from'd3plus-export';import {FacebookShareButton,FacebookIcon,TwitterShareButton,TwitterIcon,TelegramShareButton,TelegramIcon,WhatsappShareButton,WhatsappIcon,LinkedinShareButton,LinkedinIcon,RedditShareButton,RedditIcon,EmailShareButton,EmailIcon}from'react-share';import'xlsx';import J8 from'next/head';import TP from'next/link';import {DragDropContext,Droppable,Draggable}from'@hello-pangea/dnd';import U_,{useMonaco}from'@monaco-editor/react';import {EditorProvider,useCurrentEditor,BubbleMenu,ReactRenderer}from'@tiptap/react';import P5 from'@tiptap/extension-underline';import O5 from'@tiptap/starter-kit';import L5 from'@tiptap/extension-mention';import M5 from'@tiptap/extension-hard-break';import {Plugin,PluginKey,Selection,TextSelection,NodeSelection}from'@tiptap/pm/state';import'@tiptap/pm/view';import'@tiptap/pm/keymap';import {Fragment as Fragment$1,Slice,Schema,DOMParser}from'@tiptap/pm/model';import {canSplit,joinPoint,liftTarget,canJoin,ReplaceStep,ReplaceAroundStep}from'@tiptap/pm/transform';import {wrapIn,setBlockType,selectTextblockStart,selectTextblockEnd,selectParentNode,selectNodeForward,selectNodeBackward,newlineInCode,liftEmptyBlock,lift,joinUp,joinTextblockForward,joinTextblockBackward,joinForward,joinDown,joinBackward,exitCode,deleteSelection,createParagraphNear}from'@tiptap/pm/commands';import {wrapInList,sinkListItem,liftListItem}from'@tiptap/pm/schema-list';import B5 from'@tiptap/extension-text-align';import D5 from'@tiptap/extension-placeholder';import K5 from'@tiptap/extension-typography';import*as yr from'd3';import*as jd from'd3-dag';import {useForm}from'@mantine/form';var yP=Object.defineProperty;var N=(e,t)=>()=>(e&&(t=e(e=0)),t);var bm=(e,t)=>{for(var o in t)yP(e,o,{get:t[o],enumerable:true});};var p=N(()=>{});var IP,We,Vo=N(()=>{p();IP=()=>{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}},We=IP;});function Fr(e){if(!e)throw Error("Assertion Error")}function wl(e,t){return +(e<t)-+(e>t)}function uo(e,t,o="ordering"){return wl(t[o],e[o])}function kl(e){if(e===""||e.charCodeAt(e.length-1)==32)return false;for(let t=0;t<e.length;t++){let o=e.charCodeAt(t);if(o<32||o>126)return false}return true}function mv(e){Fr(e.length!==0);for(let o=e.length-1;o>=0;o--){let r=e.charCodeAt(o);if(r>33){let n=e.substr(0,o)+String.fromCharCode(r-1);return Fr(kl(n)),n}}let t=e.substr(0,e.length-1)+" ~";return Fr(kl(t)),t}function El(e){Fr(e.length!==0);for(let o=e.length-1;o>=0;o--){let r=e.charCodeAt(o);if(r<126){let n=e.substr(0,o)+String.fromCharCode(r+1);return Fr(kl(n)),n}}let t=e+"!";return Fr(kl(t)),t}function fv(e,t){return Math.trunc((e+t)/2)}function gv(e,t){Fr(e<t);let o=false,r="",n=Math.max(e.length,t.length);for(let i=0;i<n;i++){let a=i<e.length?e.charCodeAt(i):32,l=i<t.length&&!o?t.charCodeAt(i):126;if(a===l)r+=String.fromCharCode(a);else if(l-a>1){r+=String.fromCharCode(fv(a,l)),o=false;break}else r+=String.fromCharCode(a),o=true;}return o&&(r+=String.fromCharCode(fv(32,126))),Fr(e<r),Fr(r<t),Fr(kl(r)),r}function hn(e,t,o,r=false,n=true,i="ordering"){if(r)return o===0?e[t[0]]?mv(e[t[0]][i]):"!":o===t.length?El(e[t[o-1]][i]):gv(e[t[o-1]][i],e[t[o]][i]);if(o===0)return mv(e[t[o]][i]);if(o===t.length-1)return El(e[t[o]][i]);let a=n?o:o-1,l=n?o+1:o;return gv(e[t[a]][i],e[t[l]][i])}function Va(e,t=false){let o=e.reduce((r,n)=>wl(n,r)<0?n:r,"!");return t?El(o):o}var $o=N(()=>{p();});function xm(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 hv(e,t,o){let r=0,n=1,i=1,a=1,l=0,s=0,u;for(;Math.abs((i-s)/i)>1e-5;)s=i,u=-(t+l)*(t+o+l)*e/(t+2*l)/(t+2*l+1),r=i+u*r,n=a+u*n,l+=1,u=l*(o-l)*e/(t+2*l-1)/(t+2*l),i=r+u*i,a=n+u*a,r/=a,n/=a,i/=a,a=1;return i/t}function AP(e,t,o){let r,n;if(e<0)n=0;else if(e>=t)n=1;else {e=Math.floor(e);let i=o,a=e+1,l=t-e,s=a+l,u=Math.exp(xm(s)-xm(l)-xm(a)+a*Math.log(i)+l*Math.log(1-i));i<(a+1)/(s+2)?r=u*hv(i,a,l):r=1-u*hv(1-i,l,a),n=1-r;}return Math.round(n*1e5)/1e5}function PP(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function Rl(e,t,o,r){let n=t/(1-t),i=0,a=1,l=0,s=0;for(;i<=e;)s+=a,i>=o&i<=r&&(l+=a),s>1e30&&(l/=1e30,s/=1e30,a/=1e30),i+=1,a=a*n*(e+1-i)/i;return l/s}function OP(e,t,o){let r=e/t,i=(100-o*100)/2,a,l;if(e===0)a=0;else {let s=r/2,u=0,c=r,d=i/100;for(;c-u>1e-5;)Rl(t,s,e,e)*.5+Rl(t,s,e+1,t)>d?(c=s,s=(u+s)/2):(u=s,s=(c+s)/2);a=s;}if(e===t)l=0;else {let s=(1+r)/2,u=r,c=1,d=i/100;for(;c-u>1e-5;)Rl(t,s,e,e)*.5+Rl(t,s,0,e-1)<d?(c=s,s=(u+s)/2):(u=s,s=(c+s)/2);l=s;}return {lci:a,uci:l}}function LP(e,t){let o=e,r=t,n=o,i=r,a=95,l=.5,s=.5,c=(100-a)/2/100,d=n;for(;s>1e-5;)s/=2,gu((1+d)*l/(1-l),d+1,1e10)+.5*gu((1+d)*l/(1-l),d,d)>c?l-=s:l+=s;let m=(1+d)*l/(1-l)/i;for(l=.5,s=.5,c=(100-a)/2/100;s>1e-5;)s/=2,gu((1+d)*l/(1-l),0,d-1)+.5*gu((1+d)*l/(1-l),d,d)<c?l-=s:l+=s;let g=(1+d)*l/(1-l)/i;return {lci:m,uci:g}}function gu(e,t,o){let r=1,n=0,i=0,a=0;for(;a<e||r>n*1e-10;)n+=r,a>=t&a<=o&&(i+=r),n>1e30&&(i/=1e30,n/=1e30,r/=1e30),a+=1,r=r*e/a;return i/n}var bv,yv=N(()=>{p();bv={binomialCdf:AP,binP:Rl,computeMidP:OP,criticalValue:PP,smr:LP};});function le(e){let t=e.logicFactory(qn);return HP[e.name]={description:e.description,inputType:e.inputType,logic:WP(t),testValue:e.testValue,type:e.type||"formatter"},t}function WP(e){let t=e.toString().trim();if(t.startsWith("function"))return t.replace(/^function(?:\s\w+)?\([^)]\)/,"").trim().replace(/^{([\s\S]+)\}$/,"$1");let o=t.replace(/^.+?=>/,"").trim();return o.startsWith("{")?o.replace(/^{([\s\S]+)\}$/,"$1"):`return ${o}`}var qn,HP,Te=N(()=>{p();yv();qn={d3:{...MP,...BP,...DP,..._P},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:bv},HP={};});var vv,Sv=N(()=>{p();vv={jwt:jP};});var $a,bu,Ua=N(()=>{p();Te();Sv();$a=(e,t={},o="en",r={},n={})=>{let i={setVariables:r.onSetVariables?r.onSetVariables:s=>s,openModal:r.onOpenModal?r.onOpenModal:s=>s,formatters:t,libs:qn,locale:o,...n};function a(s){return Function("globals",...s.vars,`with (globals) { ${s.logic} }`).bind(i,i)}function l(s){if(s.vars&&s.logic)return a(s);for(let u in s)Array.isArray(s[u])?s[u]=s[u].map(c=>isObject(c)?l(c):c):isObject(s[u])&&(s[u]=l(s[u]));return s}return l(e)},bu=(e,t={})=>{let o={libs:vv,...t};function r(i){return Function("globals",...i.vars,`with (globals) { ${i.logic} }`).bind(o,o)}function n(i){if(i.vars&&i.logic)return r(i);for(let a in i)Array.isArray(i[a])?i[a]=i[a].map(l=>isObject(l)?n(l):l):isObject(i[a])&&(i[a]=n(i[a]));return i}return n(e)};});function yu(e,t){let o=QP[e];if(!o)throw new Error(`Invalid entity type: ${e}`);let{entities:r}=normalize(t,[o]);return {report:Bi(r,"report"),dimension:Bi(r,"dimension"),section:Bi(r,"section"),block:Bi(r,"block"),variant:Bi(r,"variant"),formatter:Bi(r,"formatter"),datasource:Bi(r,"datasource")}}function Bi(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:{}}var qP,Il,xv,Tv,Cv,YP,XP,JP,QP,kv,Yn,Xn=N(()=>{p();$o();Ua();Vo();(({localeDefault:qP}=We())),Il=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});Il.define({consumers:[Il],inputs:[Il]});xv=new schema.Entity("variant"),Tv=new schema.Entity("dimension",{variants:[xv]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),Cv=new schema.Entity("section",{blocks:[Il]}),YP=new schema.Entity("report",{dimensions:[Tv],sections:[Cv]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(uo):[]}}}),XP=new schema.Entity("formatter"),JP=new schema.Entity("datasource"),QP={report:YP,section:Cv,block:Il,dimension:Tv,variant:xv,formatter:XP,datasource:JP};kv=(e,t=void 0)=>{let{sid:o,bid:r,previews:n=[],query:i={}}=t||{},a,l,s={};return o?(a=o,s.activeSection=a):a=e.activeSection,n.length>0?(l=n,s.previews=l.filter(Boolean)):l=e.previews,{parsedParams:{sid:a,bid:r,previews:l,query:i},statusPayload:s}},Yn=(e=[],t=qP)=>e.reduce((o,r)=>{let n=$a({vars:["n"],logic:r.content.logic},{},t,{});return o[r.name]=n,o},{});});function xr(e,t){return e.request(t).then(o=>{let{status:r,data:n}=o;return "error"in n?{ok:false,status:r,error:n.error}:{ok:true,status:r,wrapper:n.wrapper,data:n.data}},o=>{if("isAxiosError"in o){let{status:r,data:n}=o.response||{status:500};return {ok:false,status:r,error:n?.error??o.message}}return {ok:false,status:500,error:o.message}})}function Je(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>xr(e,{...r,method:"GET",params:o?o(n):n})}function nt(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>xr(e,{...r,method:"POST",data:n})}function Jn(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>xr(e,{...r,method:"DELETE",params:o?o(n):n})}var Ga=N(()=>{p();});function _i(e,t){return o=>xr(e,{method:"POST",url:`images/save/${t}`,params:{prompt:o.prompt,provider:t}})}var Ev=N(()=>{p();Ga();});function Ha(e,t){return o=>xr(e,{method:"GET",url:`images/search/${t}`,params:{prompt:o.prompt,page:o.page,provider:t}})}var wv=N(()=>{p();Ga();});function Rv(e,t){return ()=>xr(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}var Iv=N(()=>{p();Ga();});function Av(e,t){return o=>xr(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:o.name}})}var Pv=N(()=>{p();Ga();});function Al(e){let t=Pu.create({baseURL:e});return {createBulkBlock:nt(t,"create/bulk/block"),createBlock:nt(t,"create/block"),createDimension:nt(t,"create/dimension"),createFormatter:nt(t,"create/formatter"),createReport:nt(t,"create/report"),createSection:nt(t,"create/section"),createVariant:nt(t,"create/variant"),createDatasource:nt(t,"create/datasource"),deleteBlock:Jn(t,"delete/block",Ni),deleteDimension:Jn(t,"delete/dimension",Ni),deleteFormatter:Jn(t,"delete/formatter",Ni),deleteReport:Jn(t,"delete/report",Ni),deleteSection:Jn(t,"delete/section",Ni),deleteVariant:Jn(t,"delete/variant",Ni),deleteDatasource:Jn(t,"delete/datasource",Ni),readBlock:Je(t,"read/block"),readDimension:Je(t,"read/dimension"),readFormatter:Je(t,"read/formatter"),readReport:Je(t,"read/report"),readSection:Je(t,"read/section"),readVariant:Je(t,"read/variant"),readDatasource:Je(t,"read/datasource"),updateBulkBlock:nt(t,"update/bulk/block"),updateBlock:nt(t,"update/block"),updateDimension:nt(t,"update/dimension"),updateFormatter:nt(t,"update/formatter"),updateReport:nt(t,"update/report"),updateSection:nt(t,"update/section"),updateVariant:nt(t,"update/variant"),updateDatasource:nt(t,"update/datasource"),searchReport:Je(t,"search/reports"),validateVariantSlug:Je(t,"validate/variant"),readMember:Je(t,"read/members",eO),readMemberImage:Je(t,{url:"member/image",responseType:"blob"}),searchMember:Je(t,"search/members"),updateMember:Je(t,"update/members"),imageLocalSearch:Ha(t,"local"),imageLocalSave:_i(t,"local"),imageFlickrSearch:Ha(t,"flickr"),imageFlickrSave:_i(t,"flickr"),imageUnsplashSearch:Ha(t,"unsplash"),imageUnsplashSave:_i(t,"unsplash"),imageUploadSave:_i(t,"upload"),imageAdobeSearch:Ha(t,"adobe"),imageAdobeSave:_i(t,"adobe"),imagePixabaySearch:Ha(t,"pixabay"),imagePixabaySave:_i(t,"pixabay"),readMetadata:Je(t,"read/metadata"),regenerateSearch:nt(t,"search/regenerate"),urlProxy:Je(t,"url/proxy"),searchRole:Je(t,"auth/search/roles"),searchUser:Je(t,"auth/search/users"),readUser:Je(t,"auth/read/user"),updateUser:nt(t,"auth/update/user"),updateMyData:nt(t,"auth/update/me"),revalidateReport:Je(t,"revalidate/report"),revalidateUrl:Je(t,"revalidate/url"),readPrivateBlocks:nt(t,"read/blocks/private"),listTablerIcons:Rv(t,"tabler"),readTablerIcon:Av(t,"tabler"),readEnvSecrets:Je(t,"read/secrets")}}var Ni,eO,Ov=N(()=>{p();Ev();wv();Ga();Iv();Pv();Ni=e=>({id:e}),eO=e=>{if(e.mode==="slugs"){let t=e.slugs.map(o=>[o.variantSlug,o.memberSlug].join("/")).join(",");return {...e,slugs:t}}return ["related","whole"].includes(e.mode)?{...e}:{...e,[e.mode]:e[e.mode].join(",")}};});var Tm=N(()=>{p();Ov();});var zi,Lv,vu=N(()=>{p();zi="report",Lv="Report";});var Pl,Bv,km=N(()=>{p();vu();Pl="section",Bv="Section";});function tr(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||tO}}var tO,Su,Nv,Qn=N(()=>{p();km();Vo();(({localeDefault:tO}=We())),Su="block",Nv="Block";});var bn,Uv,Vv,yt,Tu,$v,Em,oO,rO,nO,iO,wm,Rm,E,Re,Ye,or,Dt,xu,Wa,yn,Cu,he=N(()=>{p();bn={REPORT:"report",SECTION:"section",BLOCK:"block",INPUT:"block_input",FORMATTER:"formatter",DATASOURCE:"datasource",DIMENSION:"report_dimension",VARIANT:"report_dimension_variant",SEARCH:"search"},[bn.BLOCK,bn.SEARCH],Uv={report:"Report",section:"Section",block:"Block",block_input:"Input",formatter:"Formatter",datasource:"Data Source",dimension:"Dimension",variant:"Variant",search:"Search"},{[bn.SECTION]:"report_id",[bn.DIMENSION]:"report_id",[bn.VARIANT]:"dimension_id",[bn.BLOCK]:"section_id",[bn.INPUT]:"block_id"},Vv={REPORT:"report",STORY:"story"},yt={SINGLE:"single",MULTI:"multi"},Tu={SEGMENTED_CONTROL:"segmented control",SELECTOR:"selector"},$v={TITLE:"title",SUBTITLE:"subtitle",LABEL:"label"},{[Vv.REPORT]:Object.values($v),[Vv.STORY]:Object.values($v)},Em={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},oO={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},rO={DISABLED:"disabled"},nO={FALLBACK:"fallback"},{...Em},{POSITION:"position",ICON:"icon",...Em},iO={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"},wm={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},Rm="logic",E={...iO,...wm},[E.GENERATOR,E.SECTION_FLAG,E.SELECTOR,E.VIZ,E.IMAGE,E.TABLE,E.MULTIHIERARCHY_SELECTOR],Re={ALT:"alt",AUTHOR:"author",DESC:"desc",FOOTNOTE:"footnote",BIO:"bio",IMAGE:"image",LABEL:"label",LOGIC:"logic",MULTIHIERARCHY_SELECTOR:"multihierarchySelector",MULTIHIERARCHY_SELECTOR_ALL_LABEL:"multihierarchySelectorAllLabel",MULTIHIERARCHY_SELECTOR_NAME:"multihierarchySelectorName",MULTIHIERARCHY_SELECTOR_PLACEHOLDER:"multihierarchySelectorPlaceholder",SIMPLE:"simple",SIMPLE_ENABLED:"simpleEnabled",PARAGRAPH:"paragraph",SELECTOR_DEFAULT:"selectorDefault",SELECTOR_DYNAMIC:"selectorDynamic",SELECTOR_NAME:"selectorName",SELECTOR_TYPE:"selectorType",SRC:"src",SLUG:"slug",SUBTITLE:"subtitle",TABLE:"table",TITLE:"title",SHORT_TITLE:"shortTitle",TOOLTIP:"tooltip",TWITTER:"twitter",URL:"url",VALUE:"value"},[Re.LOGIC,Re.SIMPLE,Re.SIMPLE_ENABLED],Ye={ENABLE_ALL:{bubbleMenu:true,toolbarOptions:{history:true,alignment:false,format:true}},DISABLE_ALL:{bubbleMenu:false,toolbarOptions:{history:false,alignment:false,format:false}},ENABLE_FORMAT:{bubbleMenu:true,toolbarOptions:{history:true,alignment:false,format:true}}},or={[E.IMAGE]:[{field:Re.TITLE,editorConfig:Ye.ENABLE_ALL},{field:Re.SRC,editorConfig:Ye.DISABLE_ALL},{field:Re.ALT,editorConfig:Ye.DISABLE_ALL},{field:Re.DESC,editorConfig:Ye.ENABLE_ALL}],[E.PARAGRAPH]:[{field:E.PARAGRAPH,editorConfig:Ye.ENABLE_ALL},{field:Re.TOOLTIP,editorConfig:Ye.ENABLE_FORMAT}],[E.SELECTOR]:[{field:Re.SELECTOR_DEFAULT},{field:Re.SELECTOR_DYNAMIC},{field:Re.SELECTOR_NAME,editorConfig:Ye.ENABLE_FORMAT},{field:Re.SELECTOR_TYPE}],[E.STAT]:[{field:Re.TITLE,editorConfig:Ye.ENABLE_FORMAT},{field:Re.SUBTITLE,editorConfig:Ye.ENABLE_FORMAT},{field:Re.VALUE,editorConfig:Ye.ENABLE_FORMAT},{field:Re.TOOLTIP,editorConfig:Ye.ENABLE_FORMAT}],[E.SUBTITLE]:[{field:Re.SUBTITLE,editorConfig:Ye.ENABLE_FORMAT},{field:Re.TOOLTIP,editorConfig:Ye.ENABLE_FORMAT}],[E.TITLE]:[{field:Re.TITLE,editorConfig:Ye.ENABLE_FORMAT},{field:Re.SLUG,editorConfig:Ye.DISABLE_ALL},{field:Re.TOOLTIP,editorConfig:Ye.ENABLE_FORMAT}],[E.BUTTON]:[{field:Re.LABEL,editorConfig:Ye.ENABLE_FORMAT},{field:Re.URL,editorConfig:Ye.ENABLE_FORMAT}],[E.GENERATOR]:[],[E.SECTION_FLAG]:[],[E.VIZ]:[],[E.TABLE]:[],[E.MULTIHIERARCHY_SELECTOR]:[{field:Re.MULTIHIERARCHY_SELECTOR_NAME,editorConfig:Ye.ENABLE_FORMAT},{field:Re.MULTIHIERARCHY_SELECTOR_PLACEHOLDER,editorConfig:Ye.DISABLE_ALL},{field:Re.MULTIHIERARCHY_SELECTOR_ALL_LABEL,editorConfig:Ye.DISABLE_ALL}],[E.NAV]:[{field:Re.TITLE,editorConfig:Ye.ENABLE_FORMAT},{field:Re.SHORT_TITLE,editorConfig:Ye.ENABLE_FORMAT}]},Dt={NAME:"name",DESCRIPTION:"description",...Em,...oO,...nO,...rO},xu={FORMATTER:"formatter",FUNCTION:"function"},Wa={[xu.FORMATTER]:"Formatter",[xu.FUNCTION]:"Function"},yn={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"},Cu={[yn.STRING]:"String",[yn.NUMBER]:"Number",[yn.OBJECT]:"Object/Array",[yn.DATE]:"Date"};});function uO(e,t,o,r,n=void 0,i){let a={},l=[],{locale:s}=tr(i);try{if(t){let u=new Proxy(console,{get(d,m){return pO(m,"log","debug","info","warn","error")?(...f)=>{l.push(`${m} ${Date.now()} - ${f.map(g=>format(g)).join(" ")}`),cO&&d[m](...f);}:d[m]}}),c;return n?c=new Function(e,"console","libs","formatters","locale","variables",o)(t,u,qn,r,s,n):c=new Function(e,"console","libs","formatters","locale",o)(t,u,qn,r,s),typeof c=="object"&&Object.keys(c).length>0&&Object.assign(a,c),{vars:a,error:null,log:l,output:c}}return {vars:a,error:"Invalid API Link",log:l}}catch(u){return {vars:a,error:u.message,log:l}}}function pO(e,...t){return t.includes(e)}var cO,Vr,ja=N(()=>{p();Qn();Te();cO=Kl(process.env.REPORTS_LOGGING),Vr=uO;});function Im(e){return e.reduce((t,o,r)=>(r?r===e.length-1&&r===1?t+=` and ${o}`:r===e.length-1?t+=`, and ${o}`:t+=`, ${o}`:t+=o,t),"")}var Gv=N(()=>{p();});function dO(e,t,o,r=false){let{variables:n}=tr(o);if(!e)return e;let i=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(i,(l,s,u)=>{let c=m=>m;if(s){let m=s.replace(/^\w/g,f=>f.toLowerCase());m in t?c=t[m]:c=f=>`${s}${f}`;}let d=Array.isArray(n[u])?Im(n[u]):n[u];if(d===void 0)return r?l:"N/A";try{return c(d,qn,t)}catch(m){return console.error(`Error using formatter ${c.name}
|
|
2
2
|
`,`Error message: ${m.message}`),"N/A"}})}var Qe,$r=N(()=>{p();Qn();Gv();Te();Qe=dO;});var Am,Tr,Fi=N(()=>{p();$r();Am=(e,t,o)=>{let{variables:r}=o,n=a=>a.allowed==="never"?false:!a.allowed||a.allowed==="always"||r[a.allowed],i={...e};return Object.keys(i).forEach(a=>{typeof i[a]=="string"?i[a]=Qe(i[a],t,o):Array.isArray(i[a])?i[a]=i[a].filter(n).map(l=>typeof l=="object"?Am(l,t,o):typeof l=="string"?Qe(l,t,o):l):typeof i[a]=="object"&&i[a]!==null&&!(i[a]instanceof Date)&&(i[a]=Am(i[a],t,o));}),i},Tr=Am;});var Hv,Wv=N(()=>{p();Hv=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];});var mO,Vi,ku=N(()=>{p();he();mO=(e,t,o)=>{if(!o)return false;if(e===yt.SINGLE)return o.find(n=>n.id===t);let r=Array.isArray(t)?t:t.split(",");return Array.isArray(r)&&r.every(n=>o.map(i=>i.id).includes(n))},Vi=mO;});function Eu(e,t,o,r,n=false){let{variables:i}=tr(r),a=Tr({logic:t},o,r).logic,l=Vr("variables",i,a,o,void 0,r),{vars:s,log:u,error:c}=l,d=s.type||yt.SINGLE,m=s.component||"Selector",f=s.hideLabel||"false",g=s.resetSectionVars||"false",h=s.name||"Unlabeled Selector",y=Hv(s.options||[]),v=w=>d===yt.MULTI&&!Array.isArray(w)?[w]:w,S=s.defaultValue,C;if(S&&(S=v(S),Vi(d,S,y)&&(C=S)),!C){let w=y&&y[0]&&y[0].id||y[0]||"";C=v(w);}if(n&&typeof window<"u"){let w=`selector${e}id`,k=new URLSearchParams(window.location.search),B=Object.fromEntries(k)[w];B&&!Vi(d,B,y)&&B!==void 0&&(k.delete(w),window.history.replaceState(null,null,`?${k.toString()}`));}return {config:{name:h,type:d,options:y,defaultValue:C,component:m,hideLabel:f,resetSectionVars:g},log:u,error:c}}var Pm=N(()=>{p();Qn();he();ja();Fi();Wv();ku();});function Om(e,t,o){if(!e)return false;let r=Array.isArray(o)?o:o.split(",");return Array.isArray(r)&&r.every(n=>e.map(i=>`${i[`${t} ID`]}`).includes(n))}var jv=N(()=>{p();});function wu(e,t,o,r,n=false){let{variables:i}=tr(r),a=Tr({logic:t},o,r).logic,l=Vr("variables",i,a,o,void 0,r),{vars:s,log:u,error:c}=l;if(n&&typeof window<"u"){let m=`multihierarchySelector${e}-value`,f=`multihierarchySelector${e}-type`,g=new URLSearchParams(window.location.search),h=Object.fromEntries(g),y=h[m],v=h[f];y&&y!==void 0&&v&&v!==void 0&&!Om(s.data,v,y)&&(g.delete(m),g.delete(f),window.history.replaceState(null,null,`?${g.toString()}`));}return {config:s,log:u,error:c}}var Lm=N(()=>{p();jv();Qn();ja();Fi();});var fO,Kv,qv=N(()=>{p();he();fO=(e,t,o)=>{let r=`selector${e}id`,n=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(r),i=new URLSearchParams(t).get(r),a=n||i;if(o.type===yt.MULTI){let u=a?a.split(","):o.defaultValue,c=o.options.filter(d=>u.includes(d.id));return {[`selector${e}id`]:u,[`selector${e}label`]:(c||[]).map(d=>d.label)}}let l=a&&o.options.find(u=>u.id===a)?a:o.defaultValue,s=o.options.find(u=>u.id===l);return {[`selector${e}id`]:l,[`selector${e}label`]:s&&s.label||void 0}},Kv=fO;});var gO,Yv,Xv=N(()=>{p();gO=(e,t,o)=>{let r=`multihierarchySelector${e}-value`,n=`multihierarchySelector${e}-type`,i=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(r),a=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(n),l=new URLSearchParams(t).get(r),s=new URLSearchParams(t).get(n),u=i||l,c=a||s,d=u?u.split(","):o.defaultValue||[],m=c||o.defaultValueType||"",f=o.data?.filter(g=>d.includes(`${g[`${m} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:d,[`multihierarchySelector${e}label`]:[...new Set((f||[]).map(g=>g[m]))],[`multihierarchySelector${e}type`]:m}},Yv=gO;});var Jv,hO,bO,Cr,Co,Uo=N(()=>{p();he();Vo();(({localeDefault:Jv,locales:hO}=We())),bO=Object.values(wm),Cr=(e,t=Jv)=>e&&bO.includes(e.type)?{locale:Rm,locales:[Rm]}:{locale:t,locales:hO},Co=(e,t=Jv)=>{if(!e)return {};let{locale:o}=Cr(e,t);return e.contentByLocale?.[o]?.content};});function yO(e,t){let o=Object.values(t),r=o.filter(n=>n.shared&&n.section_id!==e).map(n=>n.id);return Object.fromEntries(o.filter(n=>n.section_id===e&&(n.inputs.length===0||n.inputs.some(i=>r.includes(i)))).map(n=>[n.id,n]))}var Qv,Zv=N(()=>{p();Qv=yO;});var eS,Ru,Mm=N(()=>{p();eS=e=>{let t=[];if(Array.isArray(e))return [];let o=(r,n="")=>{!r||typeof r!="object"||Object.keys(r).forEach(i=>{if(Array.isArray(r[i]))t.push(`${n?`${n}.`:""}${i}`);else if(typeof r[i]=="object")o(r[i],`${n?`${n}.`:""}${i}`);else return});};return o(e),t},Ru=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((o,r)=>o[r],e):e;});var ko,tS,oS,kr=N(()=>{p();ko="SECTION_ALLOWED",tS=`// const {anotherVariable} = variables; (From context and inputs)
|
|
3
3
|
// const {toUpper} = formatters; (Ad-hoc formatters)
|
|
4
4
|
// const currentLocale = locale;
|
package/dist/explore.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import'path';import'url';import*as _t from'react';import _t__default,{createContext,forwardRef,useState,useMemo,useRef,useEffect,useCallback,createElement,useContext,memo,Fragment as Fragment$1}from'react';import {getHotkeyHandler,useMediaQuery,useDebouncedValue,useDisclosure,useClickOutside}from'@mantine/hooks';import {useRouter}from'next/router';import tn from'axios';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {Stack,Text,Badge,Group,Flex,packSx,Box,useMantineTheme,MediaQuery,Input,Popover,rem,CloseButton,Button,Divider,ActionIcon,ScrollArea,Grid,Center,MultiSelect,SegmentedControl,Select,Image,Card,ThemeIcon,Notification,Tooltip,List,Menu,Anchor,Loader,Switch,Title,Collapse,UnstyledButton,Modal,Autocomplete,Container,TextInput,LoadingOverlay,Alert,Accordion,HoverCard,Pagination}from'@mantine/core';import*as Um from'd3-format';import {format}from'd3-format';import {IconSelector,IconChevronLeft,IconChevronRight,IconX,IconPlus,IconRefresh,IconListTree,IconTable,IconPhoto,IconAlignLeft,IconChartBar,IconPercentage,IconFlag,IconApi,IconHeading,IconInfoCircle,IconSearch,IconChevronUp,IconChevronDown,IconCircleKey,IconTrash,IconCodePlus}from'@tabler/icons-react';import*as zm from'd3-array';import*as $m from'd3-collection';import {nest}from'd3-collection';import*as Gm from'd3-time-format';import {formatAbbreviate}from'd3plus-format';import {date}from'd3plus-axis';import {merge,closest,assign,isObject}from'd3plus-common';import {titleCase,strip}from'd3plus-text';import Jm from'yn';import {format as format$1}from'pretty-format';import mf from'jsonwebtoken';import ff from'next/config';import sl from'axios-retry';import bf from'toposort';import {csvParse}from'd3-dsv';import {getSession}from'next-auth/react';import {schema,normalize}from'normalizr';import {createSlice,configureStore}from'@reduxjs/toolkit';import {HYDRATE,createWrapper}from'next-redux-wrapper';import {notifications}from'@mantine/notifications';import {useDispatch,useSelector}from'react-redux';import'file-saver';import {dataConcat}from'd3plus-viz';import {MantineReactTable}from'mantine-react-table';import'slugify';import'jszip';import su,{Element,domToReact,Text as Text$1}from'html-react-parser';import*as Ny from'd3plus-react';import Vy from'next/dynamic';import {Prism}from'@mantine/prism';import'd3-selection';import'd3plus-export';import'react-share';import'xlsx';var gm=Object.defineProperty;var h=(e,t)=>()=>(e&&(t=e(e=0)),t);var Xn=(e,t)=>{for(var o in t)gm(e,o,{get:t[o],enumerable:true});};var l=h(()=>{});function xm({children:e,pageSize:t=10,sort:o=void 0}){let r={profile:void 0,variant:void 0},[n,s]=useState([]),[a,i]=useState(false),[c,u]=useState(false),[p,m]=useState({}),[d,f]=useState({}),[g,x]=useState(1),[S,A]=useState(r),[C,E]=useState(""),[B]=useDebouncedValue(C,750),[F,q]=useState([]),[k,_]=useState(Qn),[T,L]=useState(false),{locale:R}=useRouter(),O=async()=>{try{u(!0),tn.get("/api/cms/read/metadata").then(H=>{if(H&&H.data&&H.data.data&&H.data.data.data){let J=H.data.data.data.reduce((te,$)=>($.dimensions&&$.dimensions.forEach(z=>{z.variants&&z.variants.forEach(W=>{te[W.id]=W.members_count||0;});}),te),{});s(H.data.data.data),m(J),f(J);}u(!1),L(!0);}).catch(H=>{console.error(H);});}catch(H){console.error("Error fetching metadata:",H),s([]),u(false),m({}),f({});}},j=H=>{m(H||d);},D=useCallback(async(H,J,te)=>{!T&&n.length===0&&await O(),A({profile:H,variant:J}),te!==""&&E(te);},[]);useEffect(()=>{let H=false;return T&&(i(true),x(1),U(H,0)),()=>{H=false;}},[B,S,T]),useEffect(()=>{if(T){i(true);let H=(g-1)*t;U(false,H);}},[g]);let U=async(H,J)=>{let te=S.profile&&!Number.isNaN(S.profile)?[S.profile]:[],$=S.variant?typeof S.variant=="string"&&S.variant.includes(",")?S.variant.split(",").map(W=>parseInt(W,10)):[parseInt(S.variant,10)]:[],z={query:B,format:"profiles",locale:R,limit:t,offset:J,visible:true,includes:true,noImage:false,variant:$,dimension:[],report:te,all:false,origin:"typesense"};o&&(z.sort=o),tn.get("/api/cms/search/reports",{params:z}).then(W=>{if(W&&W.data&&W.data.data&&W.data.data.results&&!H){let ae=W.data.data.results;q(ae),m(!C||C===""?false:W.data.data.meta.variantCount);}i(false);}).catch(W=>{console.error(W),i(false);});},Q=p||d,M={id:void 0,name:k.filters_all||"ALL"},P=H=>{let J=H.reduce(($,z)=>$.reduce((W,ae)=>W.concat(z.map(ye=>[].concat(ae,ye))),[])).map($=>{let z;return Array.isArray($)?z={id:$.map(W=>W.id).join(","),name:$.map(W=>W.name).join(" / "),members_count:$.reduce((W,ae)=>W*(Q[ae.id]||1),1),ordering:$.reduce((W,ae)=>W+ae.ordering,0)}:($.members_count=Q[$.id]||0,z={...$,members_count:Q[$.id]||0}),z}),te=J.reduce(($,z)=>$+(z.members_count||0),0);return [{...M,members_count:te},...J]},G=n.length>1,V=useMemo(()=>{let H=[];if(!c&&n.length>0&&Q){let J=n.filter(te=>te.dimensions.length>0).map(te=>{let $=false,z=P(te.dimensions.map(W=>W.variants));return z&&z.length>2&&($=true),{id:te.id,name:te.dimensions.map(W=>W.name).join(" / "),variants:z,members_count:z.filter(W=>W.id).reduce((W,ae)=>W+(ae.members_count||0),0),show:$}});H=[{...M,members_count:J.reduce((te,$)=>te+($.members_count||0),0)},...J];}return H},[c,Q,n,M]),ke=useMemo(()=>{let H;return V&&(S.profile?S.profile&&(H=V.find(J=>J.id===S.profile),H&&S.variant&&H.variants&&(H=H.variants.find(J=>J.id===S.variant))):H=V.find(J=>!J.id)),H?H.members_count:t},[S,V]),pe={metadata:n,loadingMetadata:c,setLoadingMetadata:u,loadingItems:a,setLoadingItems:i,resultCount:p,totalCount:d,setResultCount:j,activePage:g,setActivePage:x,pageSize:t,filters:S,setFilters:A,doQuery:U,query:C,setQuery:E,debouncedQuery:B,results:F,currentPageTotal:ke,selectorStructure:V,translations:k,setTranslations:H=>_({...Qn,...H}),showSelectors:G,initExplore:D};return jsx(gi.Provider,{value:pe,children:e})}var Qn,gi,Rt,Oo=h(()=>{l();Qn={try_another:"Try another search or filter.",search:"Search",filters_all:"All",no_results:"No Results",load_more:"Load more",select_report:"Select Report",select_variant:"Select Variant",count_format:".2s",report:{},dimension:{},variant:{}},gi=createContext({metadata:[],loadingItems:false,setLoadingItems:()=>null,loadingMetadata:false,setLoadingMetadata:()=>null,resultCount:{},totalCount:{},setResultCount:()=>null,activePage:1,setActivePage:()=>null,pageSize:10,results:[],filters:{},doQuery:()=>null,setFilters:()=>null,query:"",setQuery:()=>null,debouncedQuery:"",currentPageTotal:10,selectorStructure:[],translations:Qn,setTranslations:()=>null,showSelectors:true}),Rt=()=>useContext(gi);});function Em({translations:e}){let{loadingItems:t,setFilters:o,selectorStructure:r,filters:n,showSelectors:s}=Rt(),a=g=>{let x=g===null||Number.isNaN(g)?void 0:parseInt(g,10);x!==n.profile?o({profile:x,variant:void 0}):x&&o({profile:void 0,variant:void 0});},i=g=>{let x=g===null?void 0:typeof g=="string"&&g.includes(",")?g:parseInt(g,10);x!==n.variant?o({...n,variant:x}):x&&o({...n,variant:void 0});},c=g=>g<1e3?g:format(e.count_format)(g).replace(/\.0+([a-zA-Z]*)$/,"$1"),u=r.length===2?r[1].id:n.profile,p=u?r.find(g=>g.id===u):void 0,m=p&&p.variants&&n.variant?p.variants.find(g=>g.id===n.variant):void 0,d=useMemo(()=>r.map(g=>({value:String(g.id||""),label:(e?.dimensionIcon?.[g.name]?`${e?.dimensionIcon?.[g.name]} `:"")+(e?.dimension[g.name]||g.name)+(!t&&(!p||g.id===p?.id)?` (${c(g.members_count)})`:"")})),[e,p,r]),f=useMemo(()=>p?.variants?.map(g=>({value:String(g.id||""),label:(e?.variantIcon?.[g.name]?`${e?.variantIcon?.[g.name]} `:"")+(e?.variant[g.name]||g.name)+(!t&&(!m||g.id===m?.id)?` (${c(g.members_count)})`:"")}))??[],[e,m,r]);return jsx(Fragment,{children:s&&jsxs(Fragment,{children:[jsx(MediaQuery,{largerThan:1e3,styles:{display:"none"},children:jsxs(Group,{className:"bespoke-explore-reports-select-container",position:"center",mb:"md",children:[jsx(Select,{className:"bespoke-explore-reports-select",data:d,value:String(p?.id||""),onChange:g=>a(g),label:e.select_report||"Select Report",placeholder:e.select_report||"Select Report",clearable:typeof p?.id<"u",style:{width:"450px"}}),p?.variants&&p.variants.length>2&&jsx(Select,{className:"bespoke-explore-variant-select",data:f,value:String(m?.id||""),onChange:g=>i(g),label:e.select_variant||"Select Variant",placeholder:e.select_variant||"Select Variant",clearable:typeof m?.id<"u",style:{width:"450px"}})]})}),jsx(MediaQuery,{smallerThan:1e3,styles:{display:"none"},children:jsxs("div",{children:[jsx(Group,{position:"center",className:"bespoke-explore-reports-selector",mb:"md",children:r.map(g=>jsxs(Button,{"data-selected":g.id===p?.id?"true":"false","data-report-name":g.name,variant:g.id===p?.id?"outline":"subtle",onClick:()=>a(g.id),rightIcon:g.id&&g.id===p?.id?jsx(IconX,{size:"1rem"}):void 0,leftIcon:e?.dimensionIcon?.[g.name]??void 0,children:[jsx(Text,{span:true,className:"bespoke-explore-reports-name",dangerouslySetInnerHTML:{__html:e?.dimension[g.name]??g.name}}),!t&&(!p||g.id===p?.id)&&jsx(Text,{span:true,size:"xs",ml:"0.2rem",className:"bespoke-explore-reports-count",children:`(${c(g.members_count)})`})]},`p-${g.id}`))}),p&&p.variants&&p.variants.length>2&&jsx(Group,{position:"center",style:{minHeight:"36px"},className:"bespoke-explore-variant-selector",mb:"md",children:p.variants.map(g=>jsxs(Button,{"data-selected":g.id===m?.id?"true":"false","data-variant-name":g.name,variant:g.id===m?.id?"outline":"subtle",onClick:()=>i(g.id),rightIcon:g.id&&g.id===m?.id?jsx(IconX,{size:"1rem"}):void 0,leftIcon:e?.variantIcon?.[g.name]?jsx(Text,{span:true,dangerouslySetInnerHTML:{__html:e.variantIcon[g.name]}}):void 0,children:[jsx(Text,{span:true,className:"bespoke-explore-variant-name",dangerouslySetInnerHTML:{__html:e?.variant[g.name]??g.name}}),!t&&(!m||g.id===m?.id)&&jsx(Text,{span:true,size:"xs",ml:"0.2rem",className:"bespoke-explore-variant-count",children:`(${c(g.members_count)})`})]},`v-${g.id}`))})]})})]})})}var Ti,Ri=h(()=>{l();Oo();Ti=Em;});function ot(e,t){return e.request(t).then(o=>{let{status:r,data:n}=o;return "error"in n?{ok:false,status:r,error:n.error}:{ok:true,status:r,wrapper:n.wrapper,data:n.data}},o=>{if("isAxiosError"in o){let{status:r,data:n}=o.response||{status:500};return {ok:false,status:r,error:n?.error??o.message}}return {ok:false,status:500,error:o.message}})}function he(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>ot(e,{...r,method:"GET",params:o?o(n):n})}function ve(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>ot(e,{...r,method:"POST",data:n})}function Bt(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>ot(e,{...r,method:"DELETE",params:o?o(n):n})}var _o=h(()=>{l();});function Qt(e,t){return o=>ot(e,{method:"POST",url:`images/save/${t}`,params:{prompt:o.prompt,provider:t}})}var Ei=h(()=>{l();_o();});function Bo(e,t){return o=>ot(e,{method:"GET",url:`images/search/${t}`,params:{prompt:o.prompt,page:o.page,provider:t}})}var ki=h(()=>{l();_o();});function Ci(e,t){return ()=>ot(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}var wi=h(()=>{l();_o();});function Pi(e,t){return o=>ot(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:o.name}})}var Ai=h(()=>{l();_o();});function ur(e){let t=tn.create({baseURL:e});return {createBulkBlock:ve(t,"create/bulk/block"),createBlock:ve(t,"create/block"),createDimension:ve(t,"create/dimension"),createFormatter:ve(t,"create/formatter"),createReport:ve(t,"create/report"),createSection:ve(t,"create/section"),createVariant:ve(t,"create/variant"),createDatasource:ve(t,"create/datasource"),deleteBlock:Bt(t,"delete/block",Zt),deleteDimension:Bt(t,"delete/dimension",Zt),deleteFormatter:Bt(t,"delete/formatter",Zt),deleteReport:Bt(t,"delete/report",Zt),deleteSection:Bt(t,"delete/section",Zt),deleteVariant:Bt(t,"delete/variant",Zt),deleteDatasource:Bt(t,"delete/datasource",Zt),readBlock:he(t,"read/block"),readDimension:he(t,"read/dimension"),readFormatter:he(t,"read/formatter"),readReport:he(t,"read/report"),readSection:he(t,"read/section"),readVariant:he(t,"read/variant"),readDatasource:he(t,"read/datasource"),updateBulkBlock:ve(t,"update/bulk/block"),updateBlock:ve(t,"update/block"),updateDimension:ve(t,"update/dimension"),updateFormatter:ve(t,"update/formatter"),updateReport:ve(t,"update/report"),updateSection:ve(t,"update/section"),updateVariant:ve(t,"update/variant"),updateDatasource:ve(t,"update/datasource"),searchReport:he(t,"search/reports"),validateVariantSlug:he(t,"validate/variant"),readMember:he(t,"read/members",Cm),readMemberImage:he(t,{url:"member/image",responseType:"blob"}),searchMember:he(t,"search/members"),updateMember:he(t,"update/members"),imageLocalSearch:Bo(t,"local"),imageLocalSave:Qt(t,"local"),imageFlickrSearch:Bo(t,"flickr"),imageFlickrSave:Qt(t,"flickr"),imageUnsplashSearch:Bo(t,"unsplash"),imageUnsplashSave:Qt(t,"unsplash"),imageUploadSave:Qt(t,"upload"),imageAdobeSearch:Bo(t,"adobe"),imageAdobeSave:Qt(t,"adobe"),imagePixabaySearch:Bo(t,"pixabay"),imagePixabaySave:Qt(t,"pixabay"),readMetadata:he(t,"read/metadata"),regenerateSearch:ve(t,"search/regenerate"),urlProxy:he(t,"url/proxy"),searchRole:he(t,"auth/search/roles"),searchUser:he(t,"auth/search/users"),readUser:he(t,"auth/read/user"),updateUser:ve(t,"auth/update/user"),updateMyData:ve(t,"auth/update/me"),revalidateReport:he(t,"revalidate/report"),revalidateUrl:he(t,"revalidate/url"),readPrivateBlocks:ve(t,"read/blocks/private"),listTablerIcons:Ci(t,"tabler"),readTablerIcon:Pi(t,"tabler"),readEnvSecrets:he(t,"read/secrets")}}var Zt,Cm,Ii=h(()=>{l();Ei();ki();_o();wi();Ai();Zt=e=>({id:e}),Cm=e=>{if(e.mode==="slugs"){let t=e.slugs.map(o=>[o.variantSlug,o.memberSlug].join("/")).join(",");return {...e,slugs:t}}return ["related","whole"].includes(e.mode)?{...e}:{...e,[e.mode]:e[e.mode].join(",")}};});var Jn=h(()=>{l();Ii();});var Li=h(()=>{l();});var Oi=h(()=>{l();Li();});var Am,Te,rt=h(()=>{l();Am=()=>{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}},Te=Am;});function Ye(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||Im}}var Im,Mo=h(()=>{l();Oi();rt();({localeDefault:Im}=Te());});var Jt,_i,Re,Wr,Bi,es,Lm,Om,_m,Bm,ts,os,v,ce,fe,eo,Mi,Hr,ue=h(()=>{l();Jt={REPORT:"report",SECTION:"section",BLOCK:"block",INPUT:"block_input",FORMATTER:"formatter",DATASOURCE:"datasource",DIMENSION:"report_dimension",VARIANT:"report_dimension_variant",SEARCH:"search"},[Jt.BLOCK,Jt.SEARCH],{[Jt.SECTION]:"report_id",[Jt.DIMENSION]:"report_id",[Jt.VARIANT]:"dimension_id",[Jt.BLOCK]:"section_id",[Jt.INPUT]:"block_id"},_i={REPORT:"report",STORY:"story"},Re={SINGLE:"single",MULTI:"multi"},Wr={SEGMENTED_CONTROL:"segmented control",SELECTOR:"selector"},Bi={TITLE:"title",SUBTITLE:"subtitle",LABEL:"label"},{[_i.REPORT]:Object.values(Bi),[_i.STORY]:Object.values(Bi)},es={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Lm={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Om={DISABLED:"disabled"},_m={FALLBACK:"fallback"},{...es},{POSITION:"position",ICON:"icon",...es},Bm={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"},ts={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},os="logic",v={...Bm,...ts},[v.GENERATOR,v.SECTION_FLAG,v.SELECTOR,v.VIZ,v.IMAGE,v.TABLE,v.MULTIHIERARCHY_SELECTOR],ce={ALT:"alt",AUTHOR:"author",DESC:"desc",FOOTNOTE:"footnote",BIO:"bio",IMAGE:"image",LABEL:"label",LOGIC:"logic",MULTIHIERARCHY_SELECTOR:"multihierarchySelector",MULTIHIERARCHY_SELECTOR_ALL_LABEL:"multihierarchySelectorAllLabel",MULTIHIERARCHY_SELECTOR_NAME:"multihierarchySelectorName",MULTIHIERARCHY_SELECTOR_PLACEHOLDER:"multihierarchySelectorPlaceholder",SIMPLE:"simple",SIMPLE_ENABLED:"simpleEnabled",PARAGRAPH:"paragraph",SELECTOR_DEFAULT:"selectorDefault",SELECTOR_DYNAMIC:"selectorDynamic",SELECTOR_NAME:"selectorName",SELECTOR_TYPE:"selectorType",SRC:"src",SLUG:"slug",SUBTITLE:"subtitle",TABLE:"table",TITLE:"title",SHORT_TITLE:"shortTitle",TOOLTIP:"tooltip",TWITTER:"twitter",URL:"url",VALUE:"value"},[ce.LOGIC,ce.SIMPLE,ce.SIMPLE_ENABLED],fe={ENABLE_ALL:{bubbleMenu:true,toolbarOptions:{history:true,alignment:false,format:true}},DISABLE_ALL:{bubbleMenu:false,toolbarOptions:{history:false,alignment:false,format:false}},ENABLE_FORMAT:{bubbleMenu:true,toolbarOptions:{history:true,alignment:false,format:true}}},{[v.IMAGE]:[{field:ce.TITLE,editorConfig:fe.ENABLE_ALL},{field:ce.SRC,editorConfig:fe.DISABLE_ALL},{field:ce.ALT,editorConfig:fe.DISABLE_ALL},{field:ce.DESC,editorConfig:fe.ENABLE_ALL}],[v.PARAGRAPH]:[{field:v.PARAGRAPH,editorConfig:fe.ENABLE_ALL},{field:ce.TOOLTIP,editorConfig:fe.ENABLE_FORMAT}],[v.SELECTOR]:[{field:ce.SELECTOR_DEFAULT},{field:ce.SELECTOR_DYNAMIC},{field:ce.SELECTOR_NAME,editorConfig:fe.ENABLE_FORMAT},{field:ce.SELECTOR_TYPE}],[v.STAT]:[{field:ce.TITLE,editorConfig:fe.ENABLE_FORMAT},{field:ce.SUBTITLE,editorConfig:fe.ENABLE_FORMAT},{field:ce.VALUE,editorConfig:fe.ENABLE_FORMAT},{field:ce.TOOLTIP,editorConfig:fe.ENABLE_FORMAT}],[v.SUBTITLE]:[{field:ce.SUBTITLE,editorConfig:fe.ENABLE_FORMAT},{field:ce.TOOLTIP,editorConfig:fe.ENABLE_FORMAT}],[v.TITLE]:[{field:ce.TITLE,editorConfig:fe.ENABLE_FORMAT},{field:ce.SLUG,editorConfig:fe.DISABLE_ALL},{field:ce.TOOLTIP,editorConfig:fe.ENABLE_FORMAT}],[v.BUTTON]:[{field:ce.LABEL,editorConfig:fe.ENABLE_FORMAT},{field:ce.URL,editorConfig:fe.ENABLE_FORMAT}],[v.GENERATOR]:[],[v.SECTION_FLAG]:[],[v.VIZ]:[],[v.TABLE]:[],[v.MULTIHIERARCHY_SELECTOR]:[{field:ce.MULTIHIERARCHY_SELECTOR_NAME,editorConfig:fe.ENABLE_FORMAT},{field:ce.MULTIHIERARCHY_SELECTOR_PLACEHOLDER,editorConfig:fe.DISABLE_ALL},{field:ce.MULTIHIERARCHY_SELECTOR_ALL_LABEL,editorConfig:fe.DISABLE_ALL}],[v.NAV]:[{field:ce.TITLE,editorConfig:fe.ENABLE_FORMAT},{field:ce.SHORT_TITLE,editorConfig:fe.ENABLE_FORMAT}]},eo={NAME:"name",DESCRIPTION:"description",...es,...Lm,..._m,...Om},Mi={FORMATTER:"formatter",FUNCTION:"function"},{[Mi.FORMATTER]:"Formatter",[Mi.FUNCTION]:"Function"},Hr={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"},{[Hr.STRING]:"String",[Hr.NUMBER]:"Number",[Hr.OBJECT]:"Object/Array",[Hr.DATE]:"Date"};});function rs(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 Ni(e,t,o){let r=0,n=1,s=1,a=1,i=0,c=0,u;for(;Math.abs((s-c)/s)>1e-5;)c=s,u=-(t+i)*(t+o+i)*e/(t+2*i)/(t+2*i+1),r=s+u*r,n=a+u*n,i+=1,u=i*(o-i)*e/(t+2*i-1)/(t+2*i),s=r+u*s,a=n+u*a,r/=a,n/=a,s/=a,a=1;return s/t}function Nm(e,t,o){let r,n;if(e<0)n=0;else if(e>=t)n=1;else {e=Math.floor(e);let s=o,a=e+1,i=t-e,c=a+i,u=Math.exp(rs(c)-rs(i)-rs(a)+a*Math.log(s)+i*Math.log(1-s));s<(a+1)/(c+2)?r=u*Ni(s,a,i):r=1-u*Ni(1-s,i,a),n=1-r;}return Math.round(n*1e5)/1e5}function Dm(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function pr(e,t,o,r){let n=t/(1-t),s=0,a=1,i=0,c=0;for(;s<=e;)c+=a,s>=o&s<=r&&(i+=a),c>1e30&&(i/=1e30,c/=1e30,a/=1e30),s+=1,a=a*n*(e+1-s)/s;return i/c}function Fm(e,t,o){let r=e/t,s=(100-o*100)/2,a,i;if(e===0)a=0;else {let c=r/2,u=0,p=r,m=s/100;for(;p-u>1e-5;)pr(t,c,e,e)*.5+pr(t,c,e+1,t)>m?(p=c,c=(u+c)/2):(u=c,c=(p+c)/2);a=c;}if(e===t)i=0;else {let c=(1+r)/2,u=r,p=1,m=s/100;for(;p-u>1e-5;)pr(t,c,e,e)*.5+pr(t,c,0,e-1)<m?(p=c,c=(u+c)/2):(u=c,c=(p+c)/2);i=c;}return {lci:a,uci:i}}function Vm(e,t){let o=e,r=t,n=o,s=r,a=95,i=.5,c=.5,p=(100-a)/2/100,m=n;for(;c>1e-5;)c/=2,qr((1+m)*i/(1-i),m+1,1e10)+.5*qr((1+m)*i/(1-i),m,m)>p?i-=c:i+=c;let d=(1+m)*i/(1-i)/s;for(i=.5,c=.5,p=(100-a)/2/100;c>1e-5;)c/=2,qr((1+m)*i/(1-i),0,m-1)+.5*qr((1+m)*i/(1-i),m,m)<p?i-=c:i+=c;let g=(1+m)*i/(1-i)/s;return {lci:d,uci:g}}function qr(e,t,o){let r=1,n=0,s=0,a=0;for(;a<e||r>n*1e-10;)n+=r,a>=t&a<=o&&(s+=r),n>1e30&&(s/=1e30,n/=1e30,r/=1e30),a+=1,r=r*e/a;return s/n}var Di,Fi=h(()=>{l();Di={binomialCdf:Nm,binP:pr,computeMidP:Fm,criticalValue:Dm,smr:Vm};});function N(e){let t=e.logicFactory(Mt);return Qm[e.name]={description:e.description,inputType:e.inputType,logic:Zm(t),testValue:e.testValue,type:e.type||"formatter"},t}function Zm(e){let t=e.toString().trim();if(t.startsWith("function"))return t.replace(/^function(?:\s\w+)?\([^)]\)/,"").trim().replace(/^{([\s\S]+)\}$/,"$1");let o=t.replace(/^.+?=>/,"").trim();return o.startsWith("{")?o.replace(/^{([\s\S]+)\}$/,"$1"):`return ${o}`}var Mt,Qm,ee=h(()=>{l();Fi();Mt={d3:{...zm,...$m,...Um,...Gm},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:Di},Qm={};});function of(e,t,o,r,n=void 0,s){let a={},i=[],{locale:c}=Ye(s);try{if(t){let u=new Proxy(console,{get(m,d){return rf(d,"log","debug","info","warn","error")?(...f)=>{i.push(`${d} ${Date.now()} - ${f.map(g=>format$1(g)).join(" ")}`),tf&&m[d](...f);}:m[d]}}),p;return n?p=new Function(e,"console","libs","formatters","locale","variables",o)(t,u,Mt,r,c,n):p=new Function(e,"console","libs","formatters","locale",o)(t,u,Mt,r,c),typeof p=="object"&&Object.keys(p).length>0&&Object.assign(a,p),{vars:a,error:null,log:i,output:p}}return {vars:a,error:"Invalid API Link",log:i}}catch(u){return {vars:a,error:u.message,log:i}}}function rf(e,...t){return t.includes(e)}var tf,Nt,dr=h(()=>{l();Mo();ee();tf=Jm(process.env.REPORTS_LOGGING),Nt=of;});function ns(e){return e.reduce((t,o,r)=>(r?r===e.length-1&&r===1?t+=` and ${o}`:r===e.length-1?t+=`, and ${o}`:t+=`, ${o}`:t+=o,t),"")}var Vi=h(()=>{l();});function nf(e,t,o,r=false){let{variables:n}=Ye(o);if(!e)return e;let s=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(s,(i,c,u)=>{let p=d=>d;if(c){let d=c.replace(/^\w/g,f=>f.toLowerCase());d in t?p=t[d]:p=f=>`${c}${f}`;}let m=Array.isArray(n[u])?ns(n[u]):n[u];if(m===void 0)return r?i:"N/A";try{return p(m,Mt,t)}catch(d){return console.error(`Error using formatter ${p.name}
|
|
1
|
+
import'path';import'url';import*as _t from'react';import _t__default,{useState,useCallback,useEffect,useMemo,createContext,useContext,forwardRef,useRef,createElement,memo,Fragment as Fragment$1}from'react';import {useDebouncedValue,useClickOutside,getHotkeyHandler,useMediaQuery,useDisclosure}from'@mantine/hooks';import {useRouter}from'next/router';import tn from'axios';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {ActionIcon,Group,Tooltip,Modal,Stack,Text,Badge,Autocomplete,Loader,Container,TextInput,LoadingOverlay,Alert,Flex,packSx,Box,useMantineTheme,MediaQuery,Input,Popover,rem,CloseButton,Button,Divider,ScrollArea,Grid,Center,MultiSelect,SegmentedControl,Select,Image,Card,ThemeIcon,Notification,List,Menu,Anchor,Switch,Title,Collapse,UnstyledButton,Pagination,Accordion,HoverCard}from'@mantine/core';import*as Um from'd3-format';import {format as format$1}from'd3-format';import {IconSearch,IconX,IconTrash,IconSelector,IconChevronLeft,IconChevronRight,IconPlus,IconRefresh,IconListTree,IconTable,IconPhoto,IconAlignLeft,IconChartBar,IconPercentage,IconFlag,IconApi,IconHeading,IconInfoCircle,IconChevronUp,IconChevronDown,IconCircleKey,IconCodePlus}from'@tabler/icons-react';import*as zm from'd3-array';import*as $m from'd3-collection';import {nest}from'd3-collection';import*as Gm from'd3-time-format';import {formatAbbreviate}from'd3plus-format';import {date}from'd3plus-axis';import {isObject,merge,closest,assign}from'd3plus-common';import {titleCase,strip}from'd3plus-text';import Jm from'yn';import {format}from'pretty-format';import mf from'jsonwebtoken';import ff from'next/config';import sl from'axios-retry';import bf from'toposort';import {csvParse}from'd3-dsv';import {getSession}from'next-auth/react';import {schema,normalize}from'normalizr';import {createSlice,configureStore}from'@reduxjs/toolkit';import {HYDRATE,createWrapper}from'next-redux-wrapper';import {notifications}from'@mantine/notifications';import {useDispatch,useSelector}from'react-redux';import'file-saver';import {dataConcat}from'd3plus-viz';import {MantineReactTable}from'mantine-react-table';import'slugify';import'jszip';import su,{Element,domToReact,Text as Text$1}from'html-react-parser';import*as Ny from'd3plus-react';import Vy from'next/dynamic';import {Prism}from'@mantine/prism';import'd3-selection';import'd3plus-export';import'react-share';import'xlsx';var gm=Object.defineProperty;var h=(e,t)=>()=>(e&&(t=e(e=0)),t);var Xn=(e,t)=>{for(var o in t)gm(e,o,{get:t[o],enumerable:true});};var l=h(()=>{});function xm({children:e,pageSize:t=10,sort:o=void 0}){let r={profile:void 0,variant:void 0},[n,s]=useState([]),[a,i]=useState(false),[c,u]=useState(false),[p,m]=useState({}),[d,f]=useState({}),[g,x]=useState(1),[S,A]=useState(r),[C,E]=useState(""),[B]=useDebouncedValue(C,750),[F,q]=useState([]),[k,_]=useState(Qn),[T,L]=useState(false),{locale:R}=useRouter(),O=async()=>{try{u(!0),tn.get("/api/cms/read/metadata").then(H=>{if(H&&H.data&&H.data.data&&H.data.data.data){let J=H.data.data.data.reduce((te,$)=>($.dimensions&&$.dimensions.forEach(z=>{z.variants&&z.variants.forEach(W=>{te[W.id]=W.members_count||0;});}),te),{});s(H.data.data.data),m(J),f(J);}u(!1),L(!0);}).catch(H=>{console.error(H);});}catch(H){console.error("Error fetching metadata:",H),s([]),u(false),m({}),f({});}},j=H=>{m(H||d);},D=useCallback(async(H,J,te)=>{!T&&n.length===0&&await O(),A({profile:H,variant:J}),te!==""&&E(te);},[]);useEffect(()=>{let H=false;return T&&(i(true),x(1),U(H,0)),()=>{H=false;}},[B,S,T]),useEffect(()=>{if(T){i(true);let H=(g-1)*t;U(false,H);}},[g]);let U=async(H,J)=>{let te=S.profile&&!Number.isNaN(S.profile)?[S.profile]:[],$=S.variant?typeof S.variant=="string"&&S.variant.includes(",")?S.variant.split(",").map(W=>parseInt(W,10)):[parseInt(S.variant,10)]:[],z={query:B,format:"profiles",locale:R,limit:t,offset:J,visible:true,includes:true,noImage:false,variant:$,dimension:[],report:te,all:false,origin:"typesense"};o&&(z.sort=o),tn.get("/api/cms/search/reports",{params:z}).then(W=>{if(W&&W.data&&W.data.data&&W.data.data.results&&!H){let ae=W.data.data.results;q(ae),m(!C||C===""?false:W.data.data.meta.variantCount);}i(false);}).catch(W=>{console.error(W),i(false);});},Q=p||d,M={id:void 0,name:k.filters_all||"ALL"},P=H=>{let J=H.reduce(($,z)=>$.reduce((W,ae)=>W.concat(z.map(ye=>[].concat(ae,ye))),[])).map($=>{let z;return Array.isArray($)?z={id:$.map(W=>W.id).join(","),name:$.map(W=>W.name).join(" / "),members_count:$.reduce((W,ae)=>W*(Q[ae.id]||1),1),ordering:$.reduce((W,ae)=>W+ae.ordering,0)}:($.members_count=Q[$.id]||0,z={...$,members_count:Q[$.id]||0}),z}),te=J.reduce(($,z)=>$+(z.members_count||0),0);return [{...M,members_count:te},...J]},G=n.length>1,V=useMemo(()=>{let H=[];if(!c&&n.length>0&&Q){let J=n.filter(te=>te.dimensions.length>0).map(te=>{let $=false,z=P(te.dimensions.map(W=>W.variants));return z&&z.length>2&&($=true),{id:te.id,name:te.dimensions.map(W=>W.name).join(" / "),variants:z,members_count:z.filter(W=>W.id).reduce((W,ae)=>W+(ae.members_count||0),0),show:$}});H=[{...M,members_count:J.reduce((te,$)=>te+($.members_count||0),0)},...J];}return H},[c,Q,n,M]),ke=useMemo(()=>{let H;return V&&(S.profile?S.profile&&(H=V.find(J=>J.id===S.profile),H&&S.variant&&H.variants&&(H=H.variants.find(J=>J.id===S.variant))):H=V.find(J=>!J.id)),H?H.members_count:t},[S,V]),pe={metadata:n,loadingMetadata:c,setLoadingMetadata:u,loadingItems:a,setLoadingItems:i,resultCount:p,totalCount:d,setResultCount:j,activePage:g,setActivePage:x,pageSize:t,filters:S,setFilters:A,doQuery:U,query:C,setQuery:E,debouncedQuery:B,results:F,currentPageTotal:ke,selectorStructure:V,translations:k,setTranslations:H=>_({...Qn,...H}),showSelectors:G,initExplore:D};return jsx(gi.Provider,{value:pe,children:e})}var Qn,gi,Rt,Oo=h(()=>{l();Qn={try_another:"Try another search or filter.",search:"Search",filters_all:"All",no_results:"No Results",load_more:"Load more",select_report:"Select Report",select_variant:"Select Variant",count_format:".2s",report:{},dimension:{},variant:{}},gi=createContext({metadata:[],loadingItems:false,setLoadingItems:()=>null,loadingMetadata:false,setLoadingMetadata:()=>null,resultCount:{},totalCount:{},setResultCount:()=>null,activePage:1,setActivePage:()=>null,pageSize:10,results:[],filters:{},doQuery:()=>null,setFilters:()=>null,query:"",setQuery:()=>null,debouncedQuery:"",currentPageTotal:10,selectorStructure:[],translations:Qn,setTranslations:()=>null,showSelectors:true}),Rt=()=>useContext(gi);});function Em({translations:e}){let{loadingItems:t,setFilters:o,selectorStructure:r,filters:n,showSelectors:s}=Rt(),a=g=>{let x=g===null||Number.isNaN(g)?void 0:parseInt(g,10);x!==n.profile?o({profile:x,variant:void 0}):x&&o({profile:void 0,variant:void 0});},i=g=>{let x=g===null?void 0:typeof g=="string"&&g.includes(",")?g:parseInt(g,10);x!==n.variant?o({...n,variant:x}):x&&o({...n,variant:void 0});},c=g=>g<1e3?g:format$1(e.count_format)(g).replace(/\.0+([a-zA-Z]*)$/,"$1"),u=r.length===2?r[1].id:n.profile,p=u?r.find(g=>g.id===u):void 0,m=p&&p.variants&&n.variant?p.variants.find(g=>g.id===n.variant):void 0,d=useMemo(()=>r.map(g=>({value:String(g.id||""),label:(e?.dimensionIcon?.[g.name]?`${e?.dimensionIcon?.[g.name]} `:"")+(e?.dimension[g.name]||g.name)+(!t&&(!p||g.id===p?.id)?` (${c(g.members_count)})`:"")})),[e,p,r]),f=useMemo(()=>p?.variants?.map(g=>({value:String(g.id||""),label:(e?.variantIcon?.[g.name]?`${e?.variantIcon?.[g.name]} `:"")+(e?.variant[g.name]||g.name)+(!t&&(!m||g.id===m?.id)?` (${c(g.members_count)})`:"")}))??[],[e,m,r]);return jsx(Fragment,{children:s&&jsxs(Fragment,{children:[jsx(MediaQuery,{largerThan:1e3,styles:{display:"none"},children:jsxs(Group,{className:"bespoke-explore-reports-select-container",position:"center",mb:"md",children:[jsx(Select,{className:"bespoke-explore-reports-select",data:d,value:String(p?.id||""),onChange:g=>a(g),label:e.select_report||"Select Report",placeholder:e.select_report||"Select Report",clearable:typeof p?.id<"u",style:{width:"450px"}}),p?.variants&&p.variants.length>2&&jsx(Select,{className:"bespoke-explore-variant-select",data:f,value:String(m?.id||""),onChange:g=>i(g),label:e.select_variant||"Select Variant",placeholder:e.select_variant||"Select Variant",clearable:typeof m?.id<"u",style:{width:"450px"}})]})}),jsx(MediaQuery,{smallerThan:1e3,styles:{display:"none"},children:jsxs("div",{children:[jsx(Group,{position:"center",className:"bespoke-explore-reports-selector",mb:"md",children:r.map(g=>jsxs(Button,{"data-selected":g.id===p?.id?"true":"false","data-report-name":g.name,variant:g.id===p?.id?"outline":"subtle",onClick:()=>a(g.id),rightIcon:g.id&&g.id===p?.id?jsx(IconX,{size:"1rem"}):void 0,leftIcon:e?.dimensionIcon?.[g.name]??void 0,children:[jsx(Text,{span:true,className:"bespoke-explore-reports-name",dangerouslySetInnerHTML:{__html:e?.dimension[g.name]??g.name}}),!t&&(!p||g.id===p?.id)&&jsx(Text,{span:true,size:"xs",ml:"0.2rem",className:"bespoke-explore-reports-count",children:`(${c(g.members_count)})`})]},`p-${g.id}`))}),p&&p.variants&&p.variants.length>2&&jsx(Group,{position:"center",style:{minHeight:"36px"},className:"bespoke-explore-variant-selector",mb:"md",children:p.variants.map(g=>jsxs(Button,{"data-selected":g.id===m?.id?"true":"false","data-variant-name":g.name,variant:g.id===m?.id?"outline":"subtle",onClick:()=>i(g.id),rightIcon:g.id&&g.id===m?.id?jsx(IconX,{size:"1rem"}):void 0,leftIcon:e?.variantIcon?.[g.name]?jsx(Text,{span:true,dangerouslySetInnerHTML:{__html:e.variantIcon[g.name]}}):void 0,children:[jsx(Text,{span:true,className:"bespoke-explore-variant-name",dangerouslySetInnerHTML:{__html:e?.variant[g.name]??g.name}}),!t&&(!m||g.id===m?.id)&&jsx(Text,{span:true,size:"xs",ml:"0.2rem",className:"bespoke-explore-variant-count",children:`(${c(g.members_count)})`})]},`v-${g.id}`))})]})})]})})}var Ti,Ri=h(()=>{l();Oo();Ti=Em;});function ot(e,t){return e.request(t).then(o=>{let{status:r,data:n}=o;return "error"in n?{ok:false,status:r,error:n.error}:{ok:true,status:r,wrapper:n.wrapper,data:n.data}},o=>{if("isAxiosError"in o){let{status:r,data:n}=o.response||{status:500};return {ok:false,status:r,error:n?.error??o.message}}return {ok:false,status:500,error:o.message}})}function he(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>ot(e,{...r,method:"GET",params:o?o(n):n})}function ve(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>ot(e,{...r,method:"POST",data:n})}function Bt(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>ot(e,{...r,method:"DELETE",params:o?o(n):n})}var _o=h(()=>{l();});function Qt(e,t){return o=>ot(e,{method:"POST",url:`images/save/${t}`,params:{prompt:o.prompt,provider:t}})}var Ei=h(()=>{l();_o();});function Bo(e,t){return o=>ot(e,{method:"GET",url:`images/search/${t}`,params:{prompt:o.prompt,page:o.page,provider:t}})}var ki=h(()=>{l();_o();});function Ci(e,t){return ()=>ot(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}var wi=h(()=>{l();_o();});function Pi(e,t){return o=>ot(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:o.name}})}var Ai=h(()=>{l();_o();});function ur(e){let t=tn.create({baseURL:e});return {createBulkBlock:ve(t,"create/bulk/block"),createBlock:ve(t,"create/block"),createDimension:ve(t,"create/dimension"),createFormatter:ve(t,"create/formatter"),createReport:ve(t,"create/report"),createSection:ve(t,"create/section"),createVariant:ve(t,"create/variant"),createDatasource:ve(t,"create/datasource"),deleteBlock:Bt(t,"delete/block",Zt),deleteDimension:Bt(t,"delete/dimension",Zt),deleteFormatter:Bt(t,"delete/formatter",Zt),deleteReport:Bt(t,"delete/report",Zt),deleteSection:Bt(t,"delete/section",Zt),deleteVariant:Bt(t,"delete/variant",Zt),deleteDatasource:Bt(t,"delete/datasource",Zt),readBlock:he(t,"read/block"),readDimension:he(t,"read/dimension"),readFormatter:he(t,"read/formatter"),readReport:he(t,"read/report"),readSection:he(t,"read/section"),readVariant:he(t,"read/variant"),readDatasource:he(t,"read/datasource"),updateBulkBlock:ve(t,"update/bulk/block"),updateBlock:ve(t,"update/block"),updateDimension:ve(t,"update/dimension"),updateFormatter:ve(t,"update/formatter"),updateReport:ve(t,"update/report"),updateSection:ve(t,"update/section"),updateVariant:ve(t,"update/variant"),updateDatasource:ve(t,"update/datasource"),searchReport:he(t,"search/reports"),validateVariantSlug:he(t,"validate/variant"),readMember:he(t,"read/members",Cm),readMemberImage:he(t,{url:"member/image",responseType:"blob"}),searchMember:he(t,"search/members"),updateMember:he(t,"update/members"),imageLocalSearch:Bo(t,"local"),imageLocalSave:Qt(t,"local"),imageFlickrSearch:Bo(t,"flickr"),imageFlickrSave:Qt(t,"flickr"),imageUnsplashSearch:Bo(t,"unsplash"),imageUnsplashSave:Qt(t,"unsplash"),imageUploadSave:Qt(t,"upload"),imageAdobeSearch:Bo(t,"adobe"),imageAdobeSave:Qt(t,"adobe"),imagePixabaySearch:Bo(t,"pixabay"),imagePixabaySave:Qt(t,"pixabay"),readMetadata:he(t,"read/metadata"),regenerateSearch:ve(t,"search/regenerate"),urlProxy:he(t,"url/proxy"),searchRole:he(t,"auth/search/roles"),searchUser:he(t,"auth/search/users"),readUser:he(t,"auth/read/user"),updateUser:ve(t,"auth/update/user"),updateMyData:ve(t,"auth/update/me"),revalidateReport:he(t,"revalidate/report"),revalidateUrl:he(t,"revalidate/url"),readPrivateBlocks:ve(t,"read/blocks/private"),listTablerIcons:Ci(t,"tabler"),readTablerIcon:Pi(t,"tabler"),readEnvSecrets:he(t,"read/secrets")}}var Zt,Cm,Ii=h(()=>{l();Ei();ki();_o();wi();Ai();Zt=e=>({id:e}),Cm=e=>{if(e.mode==="slugs"){let t=e.slugs.map(o=>[o.variantSlug,o.memberSlug].join("/")).join(",");return {...e,slugs:t}}return ["related","whole"].includes(e.mode)?{...e}:{...e,[e.mode]:e[e.mode].join(",")}};});var Jn=h(()=>{l();Ii();});var Li=h(()=>{l();});var Oi=h(()=>{l();Li();});var Am,Te,rt=h(()=>{l();Am=()=>{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}},Te=Am;});function Ye(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||Im}}var Im,Mo=h(()=>{l();Oi();rt();({localeDefault:Im}=Te());});var Jt,_i,Re,Wr,Bi,es,Lm,Om,_m,Bm,ts,os,v,ce,fe,eo,Mi,Hr,ue=h(()=>{l();Jt={REPORT:"report",SECTION:"section",BLOCK:"block",INPUT:"block_input",FORMATTER:"formatter",DATASOURCE:"datasource",DIMENSION:"report_dimension",VARIANT:"report_dimension_variant",SEARCH:"search"},[Jt.BLOCK,Jt.SEARCH],{[Jt.SECTION]:"report_id",[Jt.DIMENSION]:"report_id",[Jt.VARIANT]:"dimension_id",[Jt.BLOCK]:"section_id",[Jt.INPUT]:"block_id"},_i={REPORT:"report",STORY:"story"},Re={SINGLE:"single",MULTI:"multi"},Wr={SEGMENTED_CONTROL:"segmented control",SELECTOR:"selector"},Bi={TITLE:"title",SUBTITLE:"subtitle",LABEL:"label"},{[_i.REPORT]:Object.values(Bi),[_i.STORY]:Object.values(Bi)},es={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Lm={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Om={DISABLED:"disabled"},_m={FALLBACK:"fallback"},{...es},{POSITION:"position",ICON:"icon",...es},Bm={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"},ts={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},os="logic",v={...Bm,...ts},[v.GENERATOR,v.SECTION_FLAG,v.SELECTOR,v.VIZ,v.IMAGE,v.TABLE,v.MULTIHIERARCHY_SELECTOR],ce={ALT:"alt",AUTHOR:"author",DESC:"desc",FOOTNOTE:"footnote",BIO:"bio",IMAGE:"image",LABEL:"label",LOGIC:"logic",MULTIHIERARCHY_SELECTOR:"multihierarchySelector",MULTIHIERARCHY_SELECTOR_ALL_LABEL:"multihierarchySelectorAllLabel",MULTIHIERARCHY_SELECTOR_NAME:"multihierarchySelectorName",MULTIHIERARCHY_SELECTOR_PLACEHOLDER:"multihierarchySelectorPlaceholder",SIMPLE:"simple",SIMPLE_ENABLED:"simpleEnabled",PARAGRAPH:"paragraph",SELECTOR_DEFAULT:"selectorDefault",SELECTOR_DYNAMIC:"selectorDynamic",SELECTOR_NAME:"selectorName",SELECTOR_TYPE:"selectorType",SRC:"src",SLUG:"slug",SUBTITLE:"subtitle",TABLE:"table",TITLE:"title",SHORT_TITLE:"shortTitle",TOOLTIP:"tooltip",TWITTER:"twitter",URL:"url",VALUE:"value"},[ce.LOGIC,ce.SIMPLE,ce.SIMPLE_ENABLED],fe={ENABLE_ALL:{bubbleMenu:true,toolbarOptions:{history:true,alignment:false,format:true}},DISABLE_ALL:{bubbleMenu:false,toolbarOptions:{history:false,alignment:false,format:false}},ENABLE_FORMAT:{bubbleMenu:true,toolbarOptions:{history:true,alignment:false,format:true}}},{[v.IMAGE]:[{field:ce.TITLE,editorConfig:fe.ENABLE_ALL},{field:ce.SRC,editorConfig:fe.DISABLE_ALL},{field:ce.ALT,editorConfig:fe.DISABLE_ALL},{field:ce.DESC,editorConfig:fe.ENABLE_ALL}],[v.PARAGRAPH]:[{field:v.PARAGRAPH,editorConfig:fe.ENABLE_ALL},{field:ce.TOOLTIP,editorConfig:fe.ENABLE_FORMAT}],[v.SELECTOR]:[{field:ce.SELECTOR_DEFAULT},{field:ce.SELECTOR_DYNAMIC},{field:ce.SELECTOR_NAME,editorConfig:fe.ENABLE_FORMAT},{field:ce.SELECTOR_TYPE}],[v.STAT]:[{field:ce.TITLE,editorConfig:fe.ENABLE_FORMAT},{field:ce.SUBTITLE,editorConfig:fe.ENABLE_FORMAT},{field:ce.VALUE,editorConfig:fe.ENABLE_FORMAT},{field:ce.TOOLTIP,editorConfig:fe.ENABLE_FORMAT}],[v.SUBTITLE]:[{field:ce.SUBTITLE,editorConfig:fe.ENABLE_FORMAT},{field:ce.TOOLTIP,editorConfig:fe.ENABLE_FORMAT}],[v.TITLE]:[{field:ce.TITLE,editorConfig:fe.ENABLE_FORMAT},{field:ce.SLUG,editorConfig:fe.DISABLE_ALL},{field:ce.TOOLTIP,editorConfig:fe.ENABLE_FORMAT}],[v.BUTTON]:[{field:ce.LABEL,editorConfig:fe.ENABLE_FORMAT},{field:ce.URL,editorConfig:fe.ENABLE_FORMAT}],[v.GENERATOR]:[],[v.SECTION_FLAG]:[],[v.VIZ]:[],[v.TABLE]:[],[v.MULTIHIERARCHY_SELECTOR]:[{field:ce.MULTIHIERARCHY_SELECTOR_NAME,editorConfig:fe.ENABLE_FORMAT},{field:ce.MULTIHIERARCHY_SELECTOR_PLACEHOLDER,editorConfig:fe.DISABLE_ALL},{field:ce.MULTIHIERARCHY_SELECTOR_ALL_LABEL,editorConfig:fe.DISABLE_ALL}],[v.NAV]:[{field:ce.TITLE,editorConfig:fe.ENABLE_FORMAT},{field:ce.SHORT_TITLE,editorConfig:fe.ENABLE_FORMAT}]},eo={NAME:"name",DESCRIPTION:"description",...es,...Lm,..._m,...Om},Mi={FORMATTER:"formatter",FUNCTION:"function"},{[Mi.FORMATTER]:"Formatter",[Mi.FUNCTION]:"Function"},Hr={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"},{[Hr.STRING]:"String",[Hr.NUMBER]:"Number",[Hr.OBJECT]:"Object/Array",[Hr.DATE]:"Date"};});function rs(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 Ni(e,t,o){let r=0,n=1,s=1,a=1,i=0,c=0,u;for(;Math.abs((s-c)/s)>1e-5;)c=s,u=-(t+i)*(t+o+i)*e/(t+2*i)/(t+2*i+1),r=s+u*r,n=a+u*n,i+=1,u=i*(o-i)*e/(t+2*i-1)/(t+2*i),s=r+u*s,a=n+u*a,r/=a,n/=a,s/=a,a=1;return s/t}function Nm(e,t,o){let r,n;if(e<0)n=0;else if(e>=t)n=1;else {e=Math.floor(e);let s=o,a=e+1,i=t-e,c=a+i,u=Math.exp(rs(c)-rs(i)-rs(a)+a*Math.log(s)+i*Math.log(1-s));s<(a+1)/(c+2)?r=u*Ni(s,a,i):r=1-u*Ni(1-s,i,a),n=1-r;}return Math.round(n*1e5)/1e5}function Dm(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function pr(e,t,o,r){let n=t/(1-t),s=0,a=1,i=0,c=0;for(;s<=e;)c+=a,s>=o&s<=r&&(i+=a),c>1e30&&(i/=1e30,c/=1e30,a/=1e30),s+=1,a=a*n*(e+1-s)/s;return i/c}function Fm(e,t,o){let r=e/t,s=(100-o*100)/2,a,i;if(e===0)a=0;else {let c=r/2,u=0,p=r,m=s/100;for(;p-u>1e-5;)pr(t,c,e,e)*.5+pr(t,c,e+1,t)>m?(p=c,c=(u+c)/2):(u=c,c=(p+c)/2);a=c;}if(e===t)i=0;else {let c=(1+r)/2,u=r,p=1,m=s/100;for(;p-u>1e-5;)pr(t,c,e,e)*.5+pr(t,c,0,e-1)<m?(p=c,c=(u+c)/2):(u=c,c=(p+c)/2);i=c;}return {lci:a,uci:i}}function Vm(e,t){let o=e,r=t,n=o,s=r,a=95,i=.5,c=.5,p=(100-a)/2/100,m=n;for(;c>1e-5;)c/=2,qr((1+m)*i/(1-i),m+1,1e10)+.5*qr((1+m)*i/(1-i),m,m)>p?i-=c:i+=c;let d=(1+m)*i/(1-i)/s;for(i=.5,c=.5,p=(100-a)/2/100;c>1e-5;)c/=2,qr((1+m)*i/(1-i),0,m-1)+.5*qr((1+m)*i/(1-i),m,m)<p?i-=c:i+=c;let g=(1+m)*i/(1-i)/s;return {lci:d,uci:g}}function qr(e,t,o){let r=1,n=0,s=0,a=0;for(;a<e||r>n*1e-10;)n+=r,a>=t&a<=o&&(s+=r),n>1e30&&(s/=1e30,n/=1e30,r/=1e30),a+=1,r=r*e/a;return s/n}var Di,Fi=h(()=>{l();Di={binomialCdf:Nm,binP:pr,computeMidP:Fm,criticalValue:Dm,smr:Vm};});function N(e){let t=e.logicFactory(Mt);return Qm[e.name]={description:e.description,inputType:e.inputType,logic:Zm(t),testValue:e.testValue,type:e.type||"formatter"},t}function Zm(e){let t=e.toString().trim();if(t.startsWith("function"))return t.replace(/^function(?:\s\w+)?\([^)]\)/,"").trim().replace(/^{([\s\S]+)\}$/,"$1");let o=t.replace(/^.+?=>/,"").trim();return o.startsWith("{")?o.replace(/^{([\s\S]+)\}$/,"$1"):`return ${o}`}var Mt,Qm,ee=h(()=>{l();Fi();Mt={d3:{...zm,...$m,...Um,...Gm},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:Di},Qm={};});function of(e,t,o,r,n=void 0,s){let a={},i=[],{locale:c}=Ye(s);try{if(t){let u=new Proxy(console,{get(m,d){return rf(d,"log","debug","info","warn","error")?(...f)=>{i.push(`${d} ${Date.now()} - ${f.map(g=>format(g)).join(" ")}`),tf&&m[d](...f);}:m[d]}}),p;return n?p=new Function(e,"console","libs","formatters","locale","variables",o)(t,u,Mt,r,c,n):p=new Function(e,"console","libs","formatters","locale",o)(t,u,Mt,r,c),typeof p=="object"&&Object.keys(p).length>0&&Object.assign(a,p),{vars:a,error:null,log:i,output:p}}return {vars:a,error:"Invalid API Link",log:i}}catch(u){return {vars:a,error:u.message,log:i}}}function rf(e,...t){return t.includes(e)}var tf,Nt,dr=h(()=>{l();Mo();ee();tf=Jm(process.env.REPORTS_LOGGING),Nt=of;});function ns(e){return e.reduce((t,o,r)=>(r?r===e.length-1&&r===1?t+=` and ${o}`:r===e.length-1?t+=`, and ${o}`:t+=`, ${o}`:t+=o,t),"")}var Vi=h(()=>{l();});function nf(e,t,o,r=false){let{variables:n}=Ye(o);if(!e)return e;let s=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(s,(i,c,u)=>{let p=d=>d;if(c){let d=c.replace(/^\w/g,f=>f.toLowerCase());d in t?p=t[d]:p=f=>`${c}${f}`;}let m=Array.isArray(n[u])?ns(n[u]):n[u];if(m===void 0)return r?i:"N/A";try{return p(m,Mt,t)}catch(d){return console.error(`Error using formatter ${p.name}
|
|
2
2
|
`,`Error message: ${d.message}`),"N/A"}})}var lt,No=h(()=>{l();Mo();Vi();ee();lt=nf;});var ss,ct,to=h(()=>{l();No();ss=(e,t,o)=>{let{variables:r}=o,n=a=>a.allowed==="never"?false:!a.allowed||a.allowed==="always"||r[a.allowed],s={...e};return Object.keys(s).forEach(a=>{typeof s[a]=="string"?s[a]=lt(s[a],t,o):Array.isArray(s[a])?s[a]=s[a].filter(n).map(i=>typeof i=="object"?ss(i,t,o):typeof i=="string"?lt(i,t,o):i):typeof s[a]=="object"&&s[a]!==null&&!(s[a]instanceof Date)&&(s[a]=ss(s[a],t,o));}),s},ct=ss;});var zi,$i=h(()=>{l();zi=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];});var sf,oo,jr=h(()=>{l();ue();sf=(e,t,o)=>{if(!o)return false;if(e===Re.SINGLE)return o.find(n=>n.id===t);let r=Array.isArray(t)?t:t.split(",");return Array.isArray(r)&&r.every(n=>o.map(s=>s.id).includes(n))},oo=sf;});function Kr(e,t,o,r,n=false){let{variables:s}=Ye(r),a=ct({logic:t},o,r).logic,i=Nt("variables",s,a,o,void 0,r),{vars:c,log:u,error:p}=i,m=c.type||Re.SINGLE,d=c.component||"Selector",f=c.hideLabel||"false",g=c.resetSectionVars||"false",x=c.name||"Unlabeled Selector",S=zi(c.options||[]),A=F=>m===Re.MULTI&&!Array.isArray(F)?[F]:F,C=c.defaultValue,E;if(C&&(C=A(C),oo(m,C,S)&&(E=C)),!E){let F=S&&S[0]&&S[0].id||S[0]||"";E=A(F);}if(n&&typeof window<"u"){let F=`selector${e}id`,q=new URLSearchParams(window.location.search),_=Object.fromEntries(q)[F];_&&!oo(m,_,S)&&_!==void 0&&(q.delete(F),window.history.replaceState(null,null,`?${q.toString()}`));}return {config:{name:x,type:m,options:S,defaultValue:E,component:d,hideLabel:f,resetSectionVars:g},log:u,error:p}}var as=h(()=>{l();Mo();ue();dr();to();$i();jr();});function is(e,t,o){if(!e)return false;let r=Array.isArray(o)?o:o.split(",");return Array.isArray(r)&&r.every(n=>e.map(s=>`${s[`${t} ID`]}`).includes(n))}var Ui=h(()=>{l();});function Yr(e,t,o,r,n=false){let{variables:s}=Ye(r),a=ct({logic:t},o,r).logic,i=Nt("variables",s,a,o,void 0,r),{vars:c,log:u,error:p}=i;if(n&&typeof window<"u"){let d=`multihierarchySelector${e}-value`,f=`multihierarchySelector${e}-type`,g=new URLSearchParams(window.location.search),x=Object.fromEntries(g),S=x[d],A=x[f];S&&S!==void 0&&A&&A!==void 0&&!is(c.data,A,S)&&(g.delete(d),g.delete(f),window.history.replaceState(null,null,`?${g.toString()}`));}return {config:c,log:u,error:p}}var ls=h(()=>{l();Ui();Mo();dr();to();});var af,Gi,Hi=h(()=>{l();ue();af=(e,t,o)=>{let r=`selector${e}id`,n=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(r),s=new URLSearchParams(t).get(r),a=n||s;if(o.type===Re.MULTI){let u=a?a.split(","):o.defaultValue,p=o.options.filter(m=>u.includes(m.id));return {[`selector${e}id`]:u,[`selector${e}label`]:(p||[]).map(m=>m.label)}}let i=a&&o.options.find(u=>u.id===a)?a:o.defaultValue,c=o.options.find(u=>u.id===i);return {[`selector${e}id`]:i,[`selector${e}label`]:c&&c.label||void 0}},Gi=af;});var lf,Wi,qi=h(()=>{l();lf=(e,t,o)=>{let r=`multihierarchySelector${e}-value`,n=`multihierarchySelector${e}-type`,s=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(r),a=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(n),i=new URLSearchParams(t).get(r),c=new URLSearchParams(t).get(n),u=s||i,p=a||c,m=u?u.split(","):o.defaultValue||[],d=p||o.defaultValueType||"",f=o.data?.filter(g=>m.includes(`${g[`${d} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:m,[`multihierarchySelector${e}label`]:[...new Set((f||[]).map(g=>g[d]))],[`multihierarchySelector${e}type`]:d}},Wi=lf;});var ji,cf,uf,pf,Et,ro=h(()=>{l();ue();rt();(({localeDefault:ji,locales:cf}=Te())),uf=Object.values(ts),pf=(e,t=ji)=>e&&uf.includes(e.type)?{locale:os,locales:[os]}:{locale:t,locales:cf},Et=(e,t=ji)=>{if(!e)return {};let{locale:o}=pf(e,t);return e.contentByLocale?.[o]?.content};});function df(e,t){let o=Object.values(t),r=o.filter(n=>n.shared&&n.section_id!==e).map(n=>n.id);return Object.fromEntries(o.filter(n=>n.section_id===e&&(n.inputs.length===0||n.inputs.some(s=>r.includes(s)))).map(n=>[n.id,n]))}var Ki,Yi=h(()=>{l();Ki=df;});var Xi,Qi=h(()=>{l();Xi=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((o,r)=>o[r],e):e;});var Zi,cs=h(()=>{l();Zi="SECTION_ALLOWED";});function us(e){return e.type===v.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}var Ji=h(()=>{l();ue();});var el,tl=h(()=>{l();el={jwt:mf};});var Qr,ol,Zr=h(()=>{l();ee();tl();Qr=(e,t={},o="en",r={},n={})=>{let s={setVariables:r.onSetVariables?r.onSetVariables:c=>c,openModal:r.onOpenModal?r.onOpenModal:c=>c,formatters:t,libs:Mt,locale:o,...n};function a(c){return Function("globals",...c.vars,`with (globals) { ${c.logic} }`).bind(s,s)}function i(c){if(c.vars&&c.logic)return a(c);for(let u in c)Array.isArray(c[u])?c[u]=c[u].map(p=>isObject(p)?i(p):p):isObject(c[u])&&(c[u]=i(c[u]));return c}return i(e)},ol=(e,t={})=>{let o={libs:el,...t};function r(s){return Function("globals",...s.vars,`with (globals) { ${s.logic} }`).bind(o,o)}function n(s){if(s.vars&&s.logic)return r(s);for(let a in s)Array.isArray(s[a])?s[a]=s[a].map(i=>isObject(i)?n(i):i):isObject(s[a])&&(s[a]=n(s[a]));return s}return n(e)};});function gf(){let{publicRuntimeConfig:e}=ff(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((o,r)=>(o[`ENV_${r}`]=t[r]||"N/A",o),{})}}var no,mr=h(()=>{l();no=gf;});function hf(){return typeof process>"u"?{}:Object.entries(process.env).filter(([e])=>e.startsWith("BESPOKE_SECRET_")).reduce((e,[t,o])=>({...e,[t.replace("BESPOKE_SECRET_","ENV_SECRET_")]:o}),{})}var rl,nl=h(()=>{l();rl=hf;});function en(e){return e.ok!==void 0}function Jr(e){this.message=e,this.name="ApiFetchException";}async function ul(e,t,o="en",r,n){let s=Date.now(),a=e,i,c=no(),u=rl(),p={envs:{...c,...u}},m=new URL(e),d=new URLSearchParams(m.searchParams.toString());d.has("bespoke_slugs")&&(m.searchParams.delete("bespoke_slugs"),a=m.toString());let f={datasource:void 0};r.find(C=>{if(!C.content?.pattern)return false;try{let E=new RegExp(C.content.pattern,"gm");return E.test(a)?(f.datasource=C,!0):E.test(a)}catch{return false}});let g=n?n.settings:{},x=!!(g&&g.useProxy&&g.useProxy==="true"),S=f.datasource&&typeof f.datasource.content.useProxy=="boolean"?f.datasource.content.useProxy:false,A=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/api/cms/url/proxy?url=${encodeURIComponent(a)}`;if(typeof window=="object"&&(x||S)){let C=await Ef({url:a,timeout:al});if(C.ok===true)i=C.data;else throw new Jr(C?.error)}else try{let E={url:a,timeout:al};if(f.datasource){let F=p;if(typeof window<"u")try{let _=await getSession();if(_){let T={user:_.user,status:"authenticated",isLoading:!1,update:async()=>_};F={...p,session:T};}}catch(_){console.warn("Could not retrieve user session:",_);}let k=await ol({vars:["url","libs","session"],logic:f.datasource.content.logic},F)(a);if(k.axiosConfig)E=k.axiosConfig;else throw new Jr(`AxiosConfig is missing in Data Source ${f.datasource.name} (ID: ${f.datasource.id}).`)}let B=await tn(E);if(B.status===200)B.headers["content-type"]==="text/csv"?i=csvParse(B.data):i=B.data;else throw new Jr("No response for: "+a)}catch(C){throw new Jr(C.message)}if(d.has("bespoke_slugs")){let C=d.get("bespoke_slugs");if(C){let E=C.split(",");if(E.length===3){let[B,F,q]=E,k=Xi(i,q);if(k&&Array.isArray(k)){let _=Array.from(new Set(k.map(T=>`${T[F]}`).filter(T=>!["","undefined"].includes(T))));if(_.length>0){let T=_.join("").length>2e3,L=await t({mode:T?"whole":"ids",ids:T?void 0:_,all:false,locale:o,variant:[parseInt(B,10)],output:"lite",limit:_.length+1,allowNulls:true}).then(R=>{let O=[];return en(R)?R.ok&&(O=R.data.results):O=R.results,O&&Array.isArray(O)?O:[]}).catch(R=>(console.error(`Error hydrating slugs for Variant: ${B}, Key: ${F}, Accessor: ${q}`),console.error(` Url ${e}`),n&&console.error(` From Section ${n.section_id} and Block ${n.id}`),console.error(R),[]));if(L){let R=Object.fromEntries(L.map(O=>[O.id,`/${O.variant_slug}/${O.slug}`]));k.map(O=>(O.bespoke_slug=R[O[F]]?R[O[F]]:null,O));}}}}}}return {data:i,requestDuration:Date.now()-s,finalUrl:S||x?A:a,apiDataSource:f.datasource?f.datasource:false}}function kf(e){this.name="BlockException",this.message=e;}async function il(e,t,o,r,n){let{locale:s,variables:a,query:i}=Ye(o),c=Cf(e,o,a,t),u=null,p=e.contentByLocale?.logic?.content?.api,m=null,d=null,f=null,g=null,x=null;if(!c)return {outputVariables:{},renderVariables:{},status:{allowed:false,hiddenByCascade:e.id}};if(e.type===v.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:c,hiddenByCascade:e.id}};if(p){f=Rf(p,t,o);let k=f.split("|||").filter(L=>L!==""),_=[];for(let L=0;L<k.length;L++){let R=k[L];new RegExp("^(?:[a-z+]+:)?//","i").test(f)||(R=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${R}`.replace(/([^:]\/)\/+/g,"$1")),_.push(ul(R,r,s,n,e).catch(j=>{throw new kf(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${a.report_name} (${a.report_id}) failed.
|
|
3
3
|
Error fetching ${R}.
|
|
4
4
|
Message: ${j.message}.
|
package/dist/report.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import'path';import'url';import*as nh from'd3-array';import*as sh from'd3-collection';import {nest}from'd3-collection';import*as ah from'd3-format';import {format as format$1}from'd3-format';import*as ih from'd3-time-format';import {formatAbbreviate}from'd3plus-format';import {date}from'd3plus-axis';import {merge,closest,assign,isObject}from'd3plus-common';import {titleCase,strip}from'd3plus-text';import bh from'jsonwebtoken';import {schema,normalize}from'normalizr';import jn from'axios';import Bh from'yn';import {format}from'pretty-format';import jh from'next/config';import Ac from'axios-retry';import Xh from'toposort';import {csvParse,csvFormat}from'd3-dsv';import {getSession,useSession}from'next-auth/react';import {configureStore,createSlice}from'@reduxjs/toolkit';import {createWrapper,HYDRATE}from'next-redux-wrapper';import {notifications}from'@mantine/notifications';import*as ao from'react';import ao__default,{createContext,forwardRef,useState,useMemo,useRef,useEffect,useCallback,createElement,useContext,memo,Fragment as Fragment$1}from'react';import {useDispatch,useSelector}from'react-redux';import {Flex,packSx,Stack,Text,Badge,Group,Box,useMantineTheme,MediaQuery,Input,Popover,rem,CloseButton,Button,Divider,ActionIcon,ScrollArea,Grid,Center,MultiSelect,SegmentedControl,Select,Image,Card,ThemeIcon,Notification,Tooltip,List,Menu,Anchor,Loader,Switch,Title,Collapse,UnstyledButton,MantineProvider,LoadingOverlay,Modal,Autocomplete,Container,TextInput,Alert,Accordion,HoverCard,Affix,Checkbox,Pagination,clsx,Tabs,CopyButton,SimpleGrid,Paper}from'@mantine/core';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import xu,{Element,domToReact,Text as Text$1}from'html-react-parser';import {IconSelector,IconChevronLeft,IconChevronRight,IconX,IconPlus,IconRefresh,IconListTree,IconTable,IconPhoto,IconAlignLeft,IconChartBar,IconPercentage,IconFlag,IconApi,IconHeading,IconInfoCircle,IconSearch,IconChevronUp,IconChevronDown,IconCircleKey,IconTrash,IconCodePlus,IconFileTypePdf,IconFileTypeXls,IconDownload,IconCamera,IconShare,IconDatabase,IconAlertCircle,IconLink,IconSparkles,IconClipboardCheck,IconClipboardCopy,IconExternalLink,IconTemplate,IconPolaroid,IconCode,IconArrowLeft,IconArrowRight,IconFileTypeJs,IconFileTypeCsv}from'@tabler/icons-react';import Hp,{useRouter}from'next/router';import {saveAs}from'file-saver';import {dataConcat,dataLoad}from'd3plus-viz';import {MantineReactTable}from'mantine-react-table';import cS from'slugify';import gS from'jszip';import {getHotkeyHandler,useMediaQuery,useDisclosure,useDebouncedValue,useClickOutside}from'@mantine/hooks';import*as xR from'd3plus-react';import ER from'next/dynamic';import {Prism}from'@mantine/prism';import {select}from'd3-selection';import {saveElement}from'd3plus-export';import {FacebookShareButton,FacebookIcon,TwitterShareButton,TwitterIcon,TelegramShareButton,TelegramIcon,WhatsappShareButton,WhatsappIcon,LinkedinShareButton,LinkedinIcon,RedditShareButton,RedditIcon,EmailShareButton,EmailIcon}from'react-share';import*as Hr from'xlsx';var Zg=Object.defineProperty;var x=(e,t)=>()=>(e&&(t=e(e=0)),t);var oa=(e,t)=>{for(var o in t)Zg(e,o,{get:t[o],enumerable:true});};var c=x(()=>{});var Jg,Ie,St=x(()=>{c();Jg=()=>{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}},Ie=Jg;});function ra(e,t){return +(e<t)-+(e>t)}function Qe(e,t,o="ordering"){return ra(t[o],e[o])}var Bo=x(()=>{c();});function na(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 Hl(e,t,o){let r=0,n=1,s=1,a=1,i=0,l=0,u;for(;Math.abs((s-l)/s)>1e-5;)l=s,u=-(t+i)*(t+o+i)*e/(t+2*i)/(t+2*i+1),r=s+u*r,n=a+u*n,i+=1,u=i*(o-i)*e/(t+2*i-1)/(t+2*i),s=r+u*s,a=n+u*a,r/=a,n/=a,s/=a,a=1;return s/t}function eh(e,t,o){let r,n;if(e<0)n=0;else if(e>=t)n=1;else {e=Math.floor(e);let s=o,a=e+1,i=t-e,l=a+i,u=Math.exp(na(l)-na(i)-na(a)+a*Math.log(s)+i*Math.log(1-s));s<(a+1)/(l+2)?r=u*Hl(s,a,i):r=1-u*Hl(1-s,i,a),n=1-r;}return Math.round(n*1e5)/1e5}function th(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function jr(e,t,o,r){let n=t/(1-t),s=0,a=1,i=0,l=0;for(;s<=e;)l+=a,s>=o&s<=r&&(i+=a),l>1e30&&(i/=1e30,l/=1e30,a/=1e30),s+=1,a=a*n*(e+1-s)/s;return i/l}function oh(e,t,o){let r=e/t,s=(100-o*100)/2,a,i;if(e===0)a=0;else {let l=r/2,u=0,p=r,d=s/100;for(;p-u>1e-5;)jr(t,l,e,e)*.5+jr(t,l,e+1,t)>d?(p=l,l=(u+l)/2):(u=l,l=(p+l)/2);a=l;}if(e===t)i=0;else {let l=(1+r)/2,u=r,p=1,d=s/100;for(;p-u>1e-5;)jr(t,l,e,e)*.5+jr(t,l,0,e-1)<d?(p=l,l=(u+l)/2):(u=l,l=(p+l)/2);i=l;}return {lci:a,uci:i}}function rh(e,t){let o=e,r=t,n=o,s=r,a=95,i=.5,l=.5,p=(100-a)/2/100,d=n;for(;l>1e-5;)l/=2,Dn((1+d)*i/(1-i),d+1,1e10)+.5*Dn((1+d)*i/(1-i),d,d)>p?i-=l:i+=l;let m=(1+d)*i/(1-i)/s;for(i=.5,l=.5,p=(100-a)/2/100;l>1e-5;)l/=2,Dn((1+d)*i/(1-i),0,d-1)+.5*Dn((1+d)*i/(1-i),d,d)<p?i-=l:i+=l;let f=(1+d)*i/(1-i)/s;return {lci:m,uci:f}}function Dn(e,t,o){let r=1,n=0,s=0,a=0;for(;a<e||r>n*1e-10;)n+=r,a>=t&a<=o&&(s+=r),n>1e30&&(s/=1e30,n/=1e30,r/=1e30),a+=1,r=r*e/a;return s/n}var Wl,ql=x(()=>{c();Wl={binomialCdf:eh,binP:jr,computeMidP:oh,criticalValue:th,smr:rh};});function Q(e){let t=e.logicFactory(lo);return gh[e.name]={description:e.description,inputType:e.inputType,logic:hh(t),testValue:e.testValue,type:e.type||"formatter"},t}function hh(e){let t=e.toString().trim();if(t.startsWith("function"))return t.replace(/^function(?:\s\w+)?\([^)]\)/,"").trim().replace(/^{([\s\S]+)\}$/,"$1");let o=t.replace(/^.+?=>/,"").trim();return o.startsWith("{")?o.replace(/^{([\s\S]+)\}$/,"$1"):`return ${o}`}var lo,gh,ie=x(()=>{c();ql();lo={d3:{...nh,...sh,...ah,...ih},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:Wl},gh={};});var jl,Kl=x(()=>{c();jl={jwt:bh};});var Vn,Yl,zn=x(()=>{c();ie();Kl();Vn=(e,t={},o="en",r={},n={})=>{let s={setVariables:r.onSetVariables?r.onSetVariables:l=>l,openModal:r.onOpenModal?r.onOpenModal:l=>l,formatters:t,libs:lo,locale:o,...n};function a(l){return Function("globals",...l.vars,`with (globals) { ${l.logic} }`).bind(s,s)}function i(l){if(l.vars&&l.logic)return a(l);for(let u in l)Array.isArray(l[u])?l[u]=l[u].map(p=>isObject(p)?i(p):p):isObject(l[u])&&(l[u]=i(l[u]));return l}return i(e)},Yl=(e,t={})=>{let o={libs:jl,...t};function r(s){return Function("globals",...s.vars,`with (globals) { ${s.logic} }`).bind(o,o)}function n(s){if(s.vars&&s.logic)return r(s);for(let a in s)Array.isArray(s[a])?s[a]=s[a].map(i=>isObject(i)?n(i):i):isObject(s[a])&&(s[a]=n(s[a]));return s}return n(e)};});function $n(e,t){let o=Rh[e];if(!o)throw new Error(`Invalid entity type: ${e}`);let{entities:r}=normalize(t,[o]);return {report:Mo(r,"report"),dimension:Mo(r,"dimension"),section:Mo(r,"section"),block:Mo(r,"block"),variant:Mo(r,"variant"),formatter:Mo(r,"formatter"),datasource:Mo(r,"datasource")}}function Mo(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:{}}var vh,Kr,Xl,Ql,Zl,Sh,xh,Th,Rh,Jl,Ot,co=x(()=>{c();Bo();zn();St();(({localeDefault:vh}=Ie())),Kr=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});Kr.define({consumers:[Kr],inputs:[Kr]});Xl=new schema.Entity("variant"),Ql=new schema.Entity("dimension",{variants:[Xl]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),Zl=new schema.Entity("section",{blocks:[Kr]}),Sh=new schema.Entity("report",{dimensions:[Ql],sections:[Zl]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(Qe):[]}}}),xh=new schema.Entity("formatter"),Th=new schema.Entity("datasource"),Rh={report:Sh,section:Zl,block:Kr,dimension:Ql,variant:Xl,formatter:xh,datasource:Th};Jl=(e,t=void 0)=>{let{sid:o,bid:r,previews:n=[],query:s={}}=t||{},a,i,l={};return o?(a=o,l.activeSection=a):a=e.activeSection,n.length>0?(i=n,l.previews=i.filter(Boolean)):i=e.previews,{parsedParams:{sid:a,bid:r,previews:i,query:s},statusPayload:l}},Ot=(e=[],t=vh)=>e.reduce((o,r)=>{let n=Vn({vars:["n"],logic:r.content.logic},{},t,{});return o[r.name]=n,o},{});});function xt(e,t){return e.request(t).then(o=>{let{status:r,data:n}=o;return "error"in n?{ok:false,status:r,error:n.error}:{ok:true,status:r,wrapper:n.wrapper,data:n.data}},o=>{if("isAxiosError"in o){let{status:r,data:n}=o.response||{status:500};return {ok:false,status:r,error:n?.error??o.message}}return {ok:false,status:500,error:o.message}})}function ke(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>xt(e,{...r,method:"GET",params:o?o(n):n})}function Pe(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>xt(e,{...r,method:"POST",data:n})}function uo(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>xt(e,{...r,method:"DELETE",params:o?o(n):n})}var hr=x(()=>{c();});function Do(e,t){return o=>xt(e,{method:"POST",url:`images/save/${t}`,params:{prompt:o.prompt,provider:t}})}var ec=x(()=>{c();hr();});function br(e,t){return o=>xt(e,{method:"GET",url:`images/search/${t}`,params:{prompt:o.prompt,page:o.page,provider:t}})}var tc=x(()=>{c();hr();});function oc(e,t){return ()=>xt(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}var rc=x(()=>{c();hr();});function nc(e,t){return o=>xt(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:o.name}})}var sc=x(()=>{c();hr();});function Yr(e){let t=jn.create({baseURL:e});return {createBulkBlock:Pe(t,"create/bulk/block"),createBlock:Pe(t,"create/block"),createDimension:Pe(t,"create/dimension"),createFormatter:Pe(t,"create/formatter"),createReport:Pe(t,"create/report"),createSection:Pe(t,"create/section"),createVariant:Pe(t,"create/variant"),createDatasource:Pe(t,"create/datasource"),deleteBlock:uo(t,"delete/block",Fo),deleteDimension:uo(t,"delete/dimension",Fo),deleteFormatter:uo(t,"delete/formatter",Fo),deleteReport:uo(t,"delete/report",Fo),deleteSection:uo(t,"delete/section",Fo),deleteVariant:uo(t,"delete/variant",Fo),deleteDatasource:uo(t,"delete/datasource",Fo),readBlock:ke(t,"read/block"),readDimension:ke(t,"read/dimension"),readFormatter:ke(t,"read/formatter"),readReport:ke(t,"read/report"),readSection:ke(t,"read/section"),readVariant:ke(t,"read/variant"),readDatasource:ke(t,"read/datasource"),updateBulkBlock:Pe(t,"update/bulk/block"),updateBlock:Pe(t,"update/block"),updateDimension:Pe(t,"update/dimension"),updateFormatter:Pe(t,"update/formatter"),updateReport:Pe(t,"update/report"),updateSection:Pe(t,"update/section"),updateVariant:Pe(t,"update/variant"),updateDatasource:Pe(t,"update/datasource"),searchReport:ke(t,"search/reports"),validateVariantSlug:ke(t,"validate/variant"),readMember:ke(t,"read/members",kh),readMemberImage:ke(t,{url:"member/image",responseType:"blob"}),searchMember:ke(t,"search/members"),updateMember:ke(t,"update/members"),imageLocalSearch:br(t,"local"),imageLocalSave:Do(t,"local"),imageFlickrSearch:br(t,"flickr"),imageFlickrSave:Do(t,"flickr"),imageUnsplashSearch:br(t,"unsplash"),imageUnsplashSave:Do(t,"unsplash"),imageUploadSave:Do(t,"upload"),imageAdobeSearch:br(t,"adobe"),imageAdobeSave:Do(t,"adobe"),imagePixabaySearch:br(t,"pixabay"),imagePixabaySave:Do(t,"pixabay"),readMetadata:ke(t,"read/metadata"),regenerateSearch:Pe(t,"search/regenerate"),urlProxy:ke(t,"url/proxy"),searchRole:ke(t,"auth/search/roles"),searchUser:ke(t,"auth/search/users"),readUser:ke(t,"auth/read/user"),updateUser:Pe(t,"auth/update/user"),updateMyData:Pe(t,"auth/update/me"),revalidateReport:ke(t,"revalidate/report"),revalidateUrl:ke(t,"revalidate/url"),readPrivateBlocks:Pe(t,"read/blocks/private"),listTablerIcons:oc(t,"tabler"),readTablerIcon:nc(t,"tabler"),readEnvSecrets:ke(t,"read/secrets")}}var Fo,kh,ac=x(()=>{c();ec();tc();hr();rc();sc();Fo=e=>({id:e}),kh=e=>{if(e.mode==="slugs"){let t=e.slugs.map(o=>[o.variantSlug,o.memberSlug].join("/")).join(",");return {...e,slugs:t}}return ["related","whole"].includes(e.mode)?{...e}:{...e,[e.mode]:e[e.mode].join(",")}};});var sa=x(()=>{c();ac();});var ic=x(()=>{c();});var lc=x(()=>{c();ic();});function gt(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||wh}}var wh,yr=x(()=>{c();lc();St();({localeDefault:wh}=Ie());});var Vo,cc,Le,Gn,uc,aa,Ah,Ih,Lh,Oh,ia,la,y,ge,Re,Qt,pc,Un,he=x(()=>{c();Vo={REPORT:"report",SECTION:"section",BLOCK:"block",INPUT:"block_input",FORMATTER:"formatter",DATASOURCE:"datasource",DIMENSION:"report_dimension",VARIANT:"report_dimension_variant",SEARCH:"search"},[Vo.BLOCK,Vo.SEARCH],{[Vo.SECTION]:"report_id",[Vo.DIMENSION]:"report_id",[Vo.VARIANT]:"dimension_id",[Vo.BLOCK]:"section_id",[Vo.INPUT]:"block_id"},cc={REPORT:"report",STORY:"story"},Le={SINGLE:"single",MULTI:"multi"},Gn={SEGMENTED_CONTROL:"segmented control",SELECTOR:"selector"},uc={TITLE:"title",SUBTITLE:"subtitle",LABEL:"label"},{[cc.REPORT]:Object.values(uc),[cc.STORY]:Object.values(uc)},aa={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Ah={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Ih={DISABLED:"disabled"},Lh={FALLBACK:"fallback"},{...aa},{POSITION:"position",ICON:"icon",...aa},Oh={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"},ia={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},la="logic",y={...Oh,...ia},[y.GENERATOR,y.SECTION_FLAG,y.SELECTOR,y.VIZ,y.IMAGE,y.TABLE,y.MULTIHIERARCHY_SELECTOR],ge={ALT:"alt",AUTHOR:"author",DESC:"desc",FOOTNOTE:"footnote",BIO:"bio",IMAGE:"image",LABEL:"label",LOGIC:"logic",MULTIHIERARCHY_SELECTOR:"multihierarchySelector",MULTIHIERARCHY_SELECTOR_ALL_LABEL:"multihierarchySelectorAllLabel",MULTIHIERARCHY_SELECTOR_NAME:"multihierarchySelectorName",MULTIHIERARCHY_SELECTOR_PLACEHOLDER:"multihierarchySelectorPlaceholder",SIMPLE:"simple",SIMPLE_ENABLED:"simpleEnabled",PARAGRAPH:"paragraph",SELECTOR_DEFAULT:"selectorDefault",SELECTOR_DYNAMIC:"selectorDynamic",SELECTOR_NAME:"selectorName",SELECTOR_TYPE:"selectorType",SRC:"src",SLUG:"slug",SUBTITLE:"subtitle",TABLE:"table",TITLE:"title",SHORT_TITLE:"shortTitle",TOOLTIP:"tooltip",TWITTER:"twitter",URL:"url",VALUE:"value"},[ge.LOGIC,ge.SIMPLE,ge.SIMPLE_ENABLED],Re={ENABLE_ALL:{bubbleMenu:true,toolbarOptions:{history:true,alignment:false,format:true}},DISABLE_ALL:{bubbleMenu:false,toolbarOptions:{history:false,alignment:false,format:false}},ENABLE_FORMAT:{bubbleMenu:true,toolbarOptions:{history:true,alignment:false,format:true}}},{[y.IMAGE]:[{field:ge.TITLE,editorConfig:Re.ENABLE_ALL},{field:ge.SRC,editorConfig:Re.DISABLE_ALL},{field:ge.ALT,editorConfig:Re.DISABLE_ALL},{field:ge.DESC,editorConfig:Re.ENABLE_ALL}],[y.PARAGRAPH]:[{field:y.PARAGRAPH,editorConfig:Re.ENABLE_ALL},{field:ge.TOOLTIP,editorConfig:Re.ENABLE_FORMAT}],[y.SELECTOR]:[{field:ge.SELECTOR_DEFAULT},{field:ge.SELECTOR_DYNAMIC},{field:ge.SELECTOR_NAME,editorConfig:Re.ENABLE_FORMAT},{field:ge.SELECTOR_TYPE}],[y.STAT]:[{field:ge.TITLE,editorConfig:Re.ENABLE_FORMAT},{field:ge.SUBTITLE,editorConfig:Re.ENABLE_FORMAT},{field:ge.VALUE,editorConfig:Re.ENABLE_FORMAT},{field:ge.TOOLTIP,editorConfig:Re.ENABLE_FORMAT}],[y.SUBTITLE]:[{field:ge.SUBTITLE,editorConfig:Re.ENABLE_FORMAT},{field:ge.TOOLTIP,editorConfig:Re.ENABLE_FORMAT}],[y.TITLE]:[{field:ge.TITLE,editorConfig:Re.ENABLE_FORMAT},{field:ge.SLUG,editorConfig:Re.DISABLE_ALL},{field:ge.TOOLTIP,editorConfig:Re.ENABLE_FORMAT}],[y.BUTTON]:[{field:ge.LABEL,editorConfig:Re.ENABLE_FORMAT},{field:ge.URL,editorConfig:Re.ENABLE_FORMAT}],[y.GENERATOR]:[],[y.SECTION_FLAG]:[],[y.VIZ]:[],[y.TABLE]:[],[y.MULTIHIERARCHY_SELECTOR]:[{field:ge.MULTIHIERARCHY_SELECTOR_NAME,editorConfig:Re.ENABLE_FORMAT},{field:ge.MULTIHIERARCHY_SELECTOR_PLACEHOLDER,editorConfig:Re.DISABLE_ALL},{field:ge.MULTIHIERARCHY_SELECTOR_ALL_LABEL,editorConfig:Re.DISABLE_ALL}],[y.NAV]:[{field:ge.TITLE,editorConfig:Re.ENABLE_FORMAT},{field:ge.SHORT_TITLE,editorConfig:Re.ENABLE_FORMAT}]},Qt={NAME:"name",DESCRIPTION:"description",...aa,...Ah,...Lh,...Ih},pc={FORMATTER:"formatter",FUNCTION:"function"},{[pc.FORMATTER]:"Formatter",[pc.FUNCTION]:"Function"},Un={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"},{[Un.STRING]:"String",[Un.NUMBER]:"Number",[Un.OBJECT]:"Object/Array",[Un.DATE]:"Date"};});function Dh(e,t,o,r,n=void 0,s){let a={},i=[],{locale:l}=gt(s);try{if(t){let u=new Proxy(console,{get(d,m){return Fh(m,"log","debug","info","warn","error")?(...g)=>{i.push(`${m} ${Date.now()} - ${g.map(f=>format(f)).join(" ")}`),Nh&&d[m](...g);}:d[m]}}),p;return n?p=new Function(e,"console","libs","formatters","locale","variables",o)(t,u,lo,r,l,n):p=new Function(e,"console","libs","formatters","locale",o)(t,u,lo,r,l),typeof p=="object"&&Object.keys(p).length>0&&Object.assign(a,p),{vars:a,error:null,log:i,output:p}}return {vars:a,error:"Invalid API Link",log:i}}catch(u){return {vars:a,error:u.message,log:i}}}function Fh(e,...t){return t.includes(e)}var Nh,_t,Xr=x(()=>{c();yr();ie();Nh=Bh(process.env.REPORTS_LOGGING),_t=Dh;});function ca(e){return e.reduce((t,o,r)=>(r?r===e.length-1&&r===1?t+=` and ${o}`:r===e.length-1?t+=`, and ${o}`:t+=`, ${o}`:t+=o,t),"")}var dc=x(()=>{c();});function Vh(e,t,o,r=false){let{variables:n}=gt(o);if(!e)return e;let s=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(s,(i,l,u)=>{let p=m=>m;if(l){let m=l.replace(/^\w/g,g=>g.toLowerCase());m in t?p=t[m]:p=g=>`${l}${g}`;}let d=Array.isArray(n[u])?ca(n[u]):n[u];if(d===void 0)return r?i:"N/A";try{return p(d,lo,t)}catch(m){return console.error(`Error using formatter ${p.name}
|
|
1
|
+
import'path';import'url';import*as nh from'd3-array';import*as sh from'd3-collection';import {nest}from'd3-collection';import*as ah from'd3-format';import {format as format$1}from'd3-format';import*as ih from'd3-time-format';import {formatAbbreviate}from'd3plus-format';import {date}from'd3plus-axis';import {merge,closest,assign,isObject}from'd3plus-common';import {titleCase,strip}from'd3plus-text';import bh from'jsonwebtoken';import {schema,normalize}from'normalizr';import jn from'axios';import Bh from'yn';import {format}from'pretty-format';import jh from'next/config';import Ac from'axios-retry';import Xh from'toposort';import {csvParse,csvFormat}from'd3-dsv';import {getSession,useSession}from'next-auth/react';import {configureStore,createSlice}from'@reduxjs/toolkit';import {createWrapper,HYDRATE}from'next-redux-wrapper';import {notifications}from'@mantine/notifications';import*as ao from'react';import ao__default,{createContext,useMemo,useContext,useCallback,useState,useEffect,forwardRef,useRef,createElement,memo,Fragment as Fragment$1}from'react';import {useDispatch,useSelector}from'react-redux';import {MantineProvider,LoadingOverlay,Flex,packSx,Stack,Text,Badge,Group,Box,useMantineTheme,MediaQuery,Input,Popover,rem,CloseButton,Button,Divider,ActionIcon,ScrollArea,Grid,Center,MultiSelect,SegmentedControl,Select,Image,Card,ThemeIcon,Notification,Tooltip,List,Menu,Anchor,Loader,Switch,Title,Collapse,UnstyledButton,Modal,Autocomplete,Container,Affix,Checkbox,TextInput,Alert,Accordion,HoverCard,clsx,Tabs,CopyButton,SimpleGrid,Paper,Pagination}from'@mantine/core';import {jsx,Fragment,jsxs}from'react/jsx-runtime';import xu,{Element,domToReact,Text as Text$1}from'html-react-parser';import {IconSelector,IconChevronLeft,IconChevronRight,IconX,IconPlus,IconRefresh,IconListTree,IconTable,IconPhoto,IconAlignLeft,IconChartBar,IconPercentage,IconFlag,IconApi,IconHeading,IconInfoCircle,IconSearch,IconChevronUp,IconChevronDown,IconCircleKey,IconFileTypePdf,IconFileTypeXls,IconDownload,IconTrash,IconCodePlus,IconCamera,IconShare,IconDatabase,IconAlertCircle,IconLink,IconSparkles,IconClipboardCheck,IconClipboardCopy,IconExternalLink,IconTemplate,IconPolaroid,IconCode,IconArrowLeft,IconArrowRight,IconFileTypeJs,IconFileTypeCsv}from'@tabler/icons-react';import Hp,{useRouter}from'next/router';import {saveAs}from'file-saver';import {dataConcat,dataLoad}from'd3plus-viz';import {MantineReactTable}from'mantine-react-table';import cS from'slugify';import gS from'jszip';import {useDebouncedValue,getHotkeyHandler,useMediaQuery,useDisclosure,useClickOutside}from'@mantine/hooks';import*as xR from'd3plus-react';import ER from'next/dynamic';import {Prism}from'@mantine/prism';import {select}from'd3-selection';import {saveElement}from'd3plus-export';import {FacebookShareButton,FacebookIcon,TwitterShareButton,TwitterIcon,TelegramShareButton,TelegramIcon,WhatsappShareButton,WhatsappIcon,LinkedinShareButton,LinkedinIcon,RedditShareButton,RedditIcon,EmailShareButton,EmailIcon}from'react-share';import*as Hr from'xlsx';var Zg=Object.defineProperty;var x=(e,t)=>()=>(e&&(t=e(e=0)),t);var oa=(e,t)=>{for(var o in t)Zg(e,o,{get:t[o],enumerable:true});};var c=x(()=>{});var Jg,Ie,St=x(()=>{c();Jg=()=>{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}},Ie=Jg;});function ra(e,t){return +(e<t)-+(e>t)}function Qe(e,t,o="ordering"){return ra(t[o],e[o])}var Bo=x(()=>{c();});function na(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 Hl(e,t,o){let r=0,n=1,s=1,a=1,i=0,l=0,u;for(;Math.abs((s-l)/s)>1e-5;)l=s,u=-(t+i)*(t+o+i)*e/(t+2*i)/(t+2*i+1),r=s+u*r,n=a+u*n,i+=1,u=i*(o-i)*e/(t+2*i-1)/(t+2*i),s=r+u*s,a=n+u*a,r/=a,n/=a,s/=a,a=1;return s/t}function eh(e,t,o){let r,n;if(e<0)n=0;else if(e>=t)n=1;else {e=Math.floor(e);let s=o,a=e+1,i=t-e,l=a+i,u=Math.exp(na(l)-na(i)-na(a)+a*Math.log(s)+i*Math.log(1-s));s<(a+1)/(l+2)?r=u*Hl(s,a,i):r=1-u*Hl(1-s,i,a),n=1-r;}return Math.round(n*1e5)/1e5}function th(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function jr(e,t,o,r){let n=t/(1-t),s=0,a=1,i=0,l=0;for(;s<=e;)l+=a,s>=o&s<=r&&(i+=a),l>1e30&&(i/=1e30,l/=1e30,a/=1e30),s+=1,a=a*n*(e+1-s)/s;return i/l}function oh(e,t,o){let r=e/t,s=(100-o*100)/2,a,i;if(e===0)a=0;else {let l=r/2,u=0,p=r,d=s/100;for(;p-u>1e-5;)jr(t,l,e,e)*.5+jr(t,l,e+1,t)>d?(p=l,l=(u+l)/2):(u=l,l=(p+l)/2);a=l;}if(e===t)i=0;else {let l=(1+r)/2,u=r,p=1,d=s/100;for(;p-u>1e-5;)jr(t,l,e,e)*.5+jr(t,l,0,e-1)<d?(p=l,l=(u+l)/2):(u=l,l=(p+l)/2);i=l;}return {lci:a,uci:i}}function rh(e,t){let o=e,r=t,n=o,s=r,a=95,i=.5,l=.5,p=(100-a)/2/100,d=n;for(;l>1e-5;)l/=2,Dn((1+d)*i/(1-i),d+1,1e10)+.5*Dn((1+d)*i/(1-i),d,d)>p?i-=l:i+=l;let m=(1+d)*i/(1-i)/s;for(i=.5,l=.5,p=(100-a)/2/100;l>1e-5;)l/=2,Dn((1+d)*i/(1-i),0,d-1)+.5*Dn((1+d)*i/(1-i),d,d)<p?i-=l:i+=l;let f=(1+d)*i/(1-i)/s;return {lci:m,uci:f}}function Dn(e,t,o){let r=1,n=0,s=0,a=0;for(;a<e||r>n*1e-10;)n+=r,a>=t&a<=o&&(s+=r),n>1e30&&(s/=1e30,n/=1e30,r/=1e30),a+=1,r=r*e/a;return s/n}var Wl,ql=x(()=>{c();Wl={binomialCdf:eh,binP:jr,computeMidP:oh,criticalValue:th,smr:rh};});function Q(e){let t=e.logicFactory(lo);return gh[e.name]={description:e.description,inputType:e.inputType,logic:hh(t),testValue:e.testValue,type:e.type||"formatter"},t}function hh(e){let t=e.toString().trim();if(t.startsWith("function"))return t.replace(/^function(?:\s\w+)?\([^)]\)/,"").trim().replace(/^{([\s\S]+)\}$/,"$1");let o=t.replace(/^.+?=>/,"").trim();return o.startsWith("{")?o.replace(/^{([\s\S]+)\}$/,"$1"):`return ${o}`}var lo,gh,ie=x(()=>{c();ql();lo={d3:{...nh,...sh,...ah,...ih},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:Wl},gh={};});var jl,Kl=x(()=>{c();jl={jwt:bh};});var Vn,Yl,zn=x(()=>{c();ie();Kl();Vn=(e,t={},o="en",r={},n={})=>{let s={setVariables:r.onSetVariables?r.onSetVariables:l=>l,openModal:r.onOpenModal?r.onOpenModal:l=>l,formatters:t,libs:lo,locale:o,...n};function a(l){return Function("globals",...l.vars,`with (globals) { ${l.logic} }`).bind(s,s)}function i(l){if(l.vars&&l.logic)return a(l);for(let u in l)Array.isArray(l[u])?l[u]=l[u].map(p=>isObject(p)?i(p):p):isObject(l[u])&&(l[u]=i(l[u]));return l}return i(e)},Yl=(e,t={})=>{let o={libs:jl,...t};function r(s){return Function("globals",...s.vars,`with (globals) { ${s.logic} }`).bind(o,o)}function n(s){if(s.vars&&s.logic)return r(s);for(let a in s)Array.isArray(s[a])?s[a]=s[a].map(i=>isObject(i)?n(i):i):isObject(s[a])&&(s[a]=n(s[a]));return s}return n(e)};});function $n(e,t){let o=Rh[e];if(!o)throw new Error(`Invalid entity type: ${e}`);let{entities:r}=normalize(t,[o]);return {report:Mo(r,"report"),dimension:Mo(r,"dimension"),section:Mo(r,"section"),block:Mo(r,"block"),variant:Mo(r,"variant"),formatter:Mo(r,"formatter"),datasource:Mo(r,"datasource")}}function Mo(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:{}}var vh,Kr,Xl,Ql,Zl,Sh,xh,Th,Rh,Jl,Ot,co=x(()=>{c();Bo();zn();St();(({localeDefault:vh}=Ie())),Kr=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});Kr.define({consumers:[Kr],inputs:[Kr]});Xl=new schema.Entity("variant"),Ql=new schema.Entity("dimension",{variants:[Xl]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),Zl=new schema.Entity("section",{blocks:[Kr]}),Sh=new schema.Entity("report",{dimensions:[Ql],sections:[Zl]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(Qe):[]}}}),xh=new schema.Entity("formatter"),Th=new schema.Entity("datasource"),Rh={report:Sh,section:Zl,block:Kr,dimension:Ql,variant:Xl,formatter:xh,datasource:Th};Jl=(e,t=void 0)=>{let{sid:o,bid:r,previews:n=[],query:s={}}=t||{},a,i,l={};return o?(a=o,l.activeSection=a):a=e.activeSection,n.length>0?(i=n,l.previews=i.filter(Boolean)):i=e.previews,{parsedParams:{sid:a,bid:r,previews:i,query:s},statusPayload:l}},Ot=(e=[],t=vh)=>e.reduce((o,r)=>{let n=Vn({vars:["n"],logic:r.content.logic},{},t,{});return o[r.name]=n,o},{});});function xt(e,t){return e.request(t).then(o=>{let{status:r,data:n}=o;return "error"in n?{ok:false,status:r,error:n.error}:{ok:true,status:r,wrapper:n.wrapper,data:n.data}},o=>{if("isAxiosError"in o){let{status:r,data:n}=o.response||{status:500};return {ok:false,status:r,error:n?.error??o.message}}return {ok:false,status:500,error:o.message}})}function ke(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>xt(e,{...r,method:"GET",params:o?o(n):n})}function Pe(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>xt(e,{...r,method:"POST",data:n})}function uo(e,t,o){let r=typeof t=="string"?{url:t}:t;return n=>xt(e,{...r,method:"DELETE",params:o?o(n):n})}var hr=x(()=>{c();});function Do(e,t){return o=>xt(e,{method:"POST",url:`images/save/${t}`,params:{prompt:o.prompt,provider:t}})}var ec=x(()=>{c();hr();});function br(e,t){return o=>xt(e,{method:"GET",url:`images/search/${t}`,params:{prompt:o.prompt,page:o.page,provider:t}})}var tc=x(()=>{c();hr();});function oc(e,t){return ()=>xt(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}var rc=x(()=>{c();hr();});function nc(e,t){return o=>xt(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:o.name}})}var sc=x(()=>{c();hr();});function Yr(e){let t=jn.create({baseURL:e});return {createBulkBlock:Pe(t,"create/bulk/block"),createBlock:Pe(t,"create/block"),createDimension:Pe(t,"create/dimension"),createFormatter:Pe(t,"create/formatter"),createReport:Pe(t,"create/report"),createSection:Pe(t,"create/section"),createVariant:Pe(t,"create/variant"),createDatasource:Pe(t,"create/datasource"),deleteBlock:uo(t,"delete/block",Fo),deleteDimension:uo(t,"delete/dimension",Fo),deleteFormatter:uo(t,"delete/formatter",Fo),deleteReport:uo(t,"delete/report",Fo),deleteSection:uo(t,"delete/section",Fo),deleteVariant:uo(t,"delete/variant",Fo),deleteDatasource:uo(t,"delete/datasource",Fo),readBlock:ke(t,"read/block"),readDimension:ke(t,"read/dimension"),readFormatter:ke(t,"read/formatter"),readReport:ke(t,"read/report"),readSection:ke(t,"read/section"),readVariant:ke(t,"read/variant"),readDatasource:ke(t,"read/datasource"),updateBulkBlock:Pe(t,"update/bulk/block"),updateBlock:Pe(t,"update/block"),updateDimension:Pe(t,"update/dimension"),updateFormatter:Pe(t,"update/formatter"),updateReport:Pe(t,"update/report"),updateSection:Pe(t,"update/section"),updateVariant:Pe(t,"update/variant"),updateDatasource:Pe(t,"update/datasource"),searchReport:ke(t,"search/reports"),validateVariantSlug:ke(t,"validate/variant"),readMember:ke(t,"read/members",kh),readMemberImage:ke(t,{url:"member/image",responseType:"blob"}),searchMember:ke(t,"search/members"),updateMember:ke(t,"update/members"),imageLocalSearch:br(t,"local"),imageLocalSave:Do(t,"local"),imageFlickrSearch:br(t,"flickr"),imageFlickrSave:Do(t,"flickr"),imageUnsplashSearch:br(t,"unsplash"),imageUnsplashSave:Do(t,"unsplash"),imageUploadSave:Do(t,"upload"),imageAdobeSearch:br(t,"adobe"),imageAdobeSave:Do(t,"adobe"),imagePixabaySearch:br(t,"pixabay"),imagePixabaySave:Do(t,"pixabay"),readMetadata:ke(t,"read/metadata"),regenerateSearch:Pe(t,"search/regenerate"),urlProxy:ke(t,"url/proxy"),searchRole:ke(t,"auth/search/roles"),searchUser:ke(t,"auth/search/users"),readUser:ke(t,"auth/read/user"),updateUser:Pe(t,"auth/update/user"),updateMyData:Pe(t,"auth/update/me"),revalidateReport:ke(t,"revalidate/report"),revalidateUrl:ke(t,"revalidate/url"),readPrivateBlocks:Pe(t,"read/blocks/private"),listTablerIcons:oc(t,"tabler"),readTablerIcon:nc(t,"tabler"),readEnvSecrets:ke(t,"read/secrets")}}var Fo,kh,ac=x(()=>{c();ec();tc();hr();rc();sc();Fo=e=>({id:e}),kh=e=>{if(e.mode==="slugs"){let t=e.slugs.map(o=>[o.variantSlug,o.memberSlug].join("/")).join(",");return {...e,slugs:t}}return ["related","whole"].includes(e.mode)?{...e}:{...e,[e.mode]:e[e.mode].join(",")}};});var sa=x(()=>{c();ac();});var ic=x(()=>{c();});var lc=x(()=>{c();ic();});function gt(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||wh}}var wh,yr=x(()=>{c();lc();St();({localeDefault:wh}=Ie());});var Vo,cc,Le,Gn,uc,aa,Ah,Ih,Lh,Oh,ia,la,y,ge,Re,Qt,pc,Un,he=x(()=>{c();Vo={REPORT:"report",SECTION:"section",BLOCK:"block",INPUT:"block_input",FORMATTER:"formatter",DATASOURCE:"datasource",DIMENSION:"report_dimension",VARIANT:"report_dimension_variant",SEARCH:"search"},[Vo.BLOCK,Vo.SEARCH],{[Vo.SECTION]:"report_id",[Vo.DIMENSION]:"report_id",[Vo.VARIANT]:"dimension_id",[Vo.BLOCK]:"section_id",[Vo.INPUT]:"block_id"},cc={REPORT:"report",STORY:"story"},Le={SINGLE:"single",MULTI:"multi"},Gn={SEGMENTED_CONTROL:"segmented control",SELECTOR:"selector"},uc={TITLE:"title",SUBTITLE:"subtitle",LABEL:"label"},{[cc.REPORT]:Object.values(uc),[cc.STORY]:Object.values(uc)},aa={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Ah={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Ih={DISABLED:"disabled"},Lh={FALLBACK:"fallback"},{...aa},{POSITION:"position",ICON:"icon",...aa},Oh={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"},ia={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},la="logic",y={...Oh,...ia},[y.GENERATOR,y.SECTION_FLAG,y.SELECTOR,y.VIZ,y.IMAGE,y.TABLE,y.MULTIHIERARCHY_SELECTOR],ge={ALT:"alt",AUTHOR:"author",DESC:"desc",FOOTNOTE:"footnote",BIO:"bio",IMAGE:"image",LABEL:"label",LOGIC:"logic",MULTIHIERARCHY_SELECTOR:"multihierarchySelector",MULTIHIERARCHY_SELECTOR_ALL_LABEL:"multihierarchySelectorAllLabel",MULTIHIERARCHY_SELECTOR_NAME:"multihierarchySelectorName",MULTIHIERARCHY_SELECTOR_PLACEHOLDER:"multihierarchySelectorPlaceholder",SIMPLE:"simple",SIMPLE_ENABLED:"simpleEnabled",PARAGRAPH:"paragraph",SELECTOR_DEFAULT:"selectorDefault",SELECTOR_DYNAMIC:"selectorDynamic",SELECTOR_NAME:"selectorName",SELECTOR_TYPE:"selectorType",SRC:"src",SLUG:"slug",SUBTITLE:"subtitle",TABLE:"table",TITLE:"title",SHORT_TITLE:"shortTitle",TOOLTIP:"tooltip",TWITTER:"twitter",URL:"url",VALUE:"value"},[ge.LOGIC,ge.SIMPLE,ge.SIMPLE_ENABLED],Re={ENABLE_ALL:{bubbleMenu:true,toolbarOptions:{history:true,alignment:false,format:true}},DISABLE_ALL:{bubbleMenu:false,toolbarOptions:{history:false,alignment:false,format:false}},ENABLE_FORMAT:{bubbleMenu:true,toolbarOptions:{history:true,alignment:false,format:true}}},{[y.IMAGE]:[{field:ge.TITLE,editorConfig:Re.ENABLE_ALL},{field:ge.SRC,editorConfig:Re.DISABLE_ALL},{field:ge.ALT,editorConfig:Re.DISABLE_ALL},{field:ge.DESC,editorConfig:Re.ENABLE_ALL}],[y.PARAGRAPH]:[{field:y.PARAGRAPH,editorConfig:Re.ENABLE_ALL},{field:ge.TOOLTIP,editorConfig:Re.ENABLE_FORMAT}],[y.SELECTOR]:[{field:ge.SELECTOR_DEFAULT},{field:ge.SELECTOR_DYNAMIC},{field:ge.SELECTOR_NAME,editorConfig:Re.ENABLE_FORMAT},{field:ge.SELECTOR_TYPE}],[y.STAT]:[{field:ge.TITLE,editorConfig:Re.ENABLE_FORMAT},{field:ge.SUBTITLE,editorConfig:Re.ENABLE_FORMAT},{field:ge.VALUE,editorConfig:Re.ENABLE_FORMAT},{field:ge.TOOLTIP,editorConfig:Re.ENABLE_FORMAT}],[y.SUBTITLE]:[{field:ge.SUBTITLE,editorConfig:Re.ENABLE_FORMAT},{field:ge.TOOLTIP,editorConfig:Re.ENABLE_FORMAT}],[y.TITLE]:[{field:ge.TITLE,editorConfig:Re.ENABLE_FORMAT},{field:ge.SLUG,editorConfig:Re.DISABLE_ALL},{field:ge.TOOLTIP,editorConfig:Re.ENABLE_FORMAT}],[y.BUTTON]:[{field:ge.LABEL,editorConfig:Re.ENABLE_FORMAT},{field:ge.URL,editorConfig:Re.ENABLE_FORMAT}],[y.GENERATOR]:[],[y.SECTION_FLAG]:[],[y.VIZ]:[],[y.TABLE]:[],[y.MULTIHIERARCHY_SELECTOR]:[{field:ge.MULTIHIERARCHY_SELECTOR_NAME,editorConfig:Re.ENABLE_FORMAT},{field:ge.MULTIHIERARCHY_SELECTOR_PLACEHOLDER,editorConfig:Re.DISABLE_ALL},{field:ge.MULTIHIERARCHY_SELECTOR_ALL_LABEL,editorConfig:Re.DISABLE_ALL}],[y.NAV]:[{field:ge.TITLE,editorConfig:Re.ENABLE_FORMAT},{field:ge.SHORT_TITLE,editorConfig:Re.ENABLE_FORMAT}]},Qt={NAME:"name",DESCRIPTION:"description",...aa,...Ah,...Lh,...Ih},pc={FORMATTER:"formatter",FUNCTION:"function"},{[pc.FORMATTER]:"Formatter",[pc.FUNCTION]:"Function"},Un={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"},{[Un.STRING]:"String",[Un.NUMBER]:"Number",[Un.OBJECT]:"Object/Array",[Un.DATE]:"Date"};});function Dh(e,t,o,r,n=void 0,s){let a={},i=[],{locale:l}=gt(s);try{if(t){let u=new Proxy(console,{get(d,m){return Fh(m,"log","debug","info","warn","error")?(...g)=>{i.push(`${m} ${Date.now()} - ${g.map(f=>format(f)).join(" ")}`),Nh&&d[m](...g);}:d[m]}}),p;return n?p=new Function(e,"console","libs","formatters","locale","variables",o)(t,u,lo,r,l,n):p=new Function(e,"console","libs","formatters","locale",o)(t,u,lo,r,l),typeof p=="object"&&Object.keys(p).length>0&&Object.assign(a,p),{vars:a,error:null,log:i,output:p}}return {vars:a,error:"Invalid API Link",log:i}}catch(u){return {vars:a,error:u.message,log:i}}}function Fh(e,...t){return t.includes(e)}var Nh,_t,Xr=x(()=>{c();yr();ie();Nh=Bh(process.env.REPORTS_LOGGING),_t=Dh;});function ca(e){return e.reduce((t,o,r)=>(r?r===e.length-1&&r===1?t+=` and ${o}`:r===e.length-1?t+=`, and ${o}`:t+=`, ${o}`:t+=o,t),"")}var dc=x(()=>{c();});function Vh(e,t,o,r=false){let{variables:n}=gt(o);if(!e)return e;let s=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(s,(i,l,u)=>{let p=m=>m;if(l){let m=l.replace(/^\w/g,g=>g.toLowerCase());m in t?p=t[m]:p=g=>`${l}${g}`;}let d=Array.isArray(n[u])?ca(n[u]):n[u];if(d===void 0)return r?i:"N/A";try{return p(d,lo,t)}catch(m){return console.error(`Error using formatter ${p.name}
|
|
2
2
|
`,`Error message: ${m.message}`),"N/A"}})}var it,vr=x(()=>{c();yr();dc();ie();it=Vh;});var ua,ht,zo=x(()=>{c();vr();ua=(e,t,o)=>{let{variables:r}=o,n=a=>a.allowed==="never"?false:!a.allowed||a.allowed==="always"||r[a.allowed],s={...e};return Object.keys(s).forEach(a=>{typeof s[a]=="string"?s[a]=it(s[a],t,o):Array.isArray(s[a])?s[a]=s[a].filter(n).map(i=>typeof i=="object"?ua(i,t,o):typeof i=="string"?it(i,t,o):i):typeof s[a]=="object"&&s[a]!==null&&!(s[a]instanceof Date)&&(s[a]=ua(s[a],t,o));}),s},ht=ua;});var mc,fc=x(()=>{c();mc=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];});var zh,$o,Hn=x(()=>{c();he();zh=(e,t,o)=>{if(!o)return false;if(e===Le.SINGLE)return o.find(n=>n.id===t);let r=Array.isArray(t)?t:t.split(",");return Array.isArray(r)&&r.every(n=>o.map(s=>s.id).includes(n))},$o=zh;});function Sr(e,t,o,r,n=false){let{variables:s}=gt(r),a=ht({logic:t},o,r).logic,i=_t("variables",s,a,o,void 0,r),{vars:l,log:u,error:p}=i,d=l.type||Le.SINGLE,m=l.component||"Selector",g=l.hideLabel||"false",f=l.resetSectionVars||"false",h=l.name||"Unlabeled Selector",b=mc(l.options||[]),v=M=>d===Le.MULTI&&!Array.isArray(M)?[M]:M,k=l.defaultValue,S;if(k&&(k=v(k),$o(d,k,b)&&(S=k)),!S){let M=b&&b[0]&&b[0].id||b[0]||"";S=v(M);}if(n&&typeof window<"u"){let M=`selector${e}id`,D=new URLSearchParams(window.location.search),L=Object.fromEntries(D)[M];L&&!$o(d,L,b)&&L!==void 0&&(D.delete(M),window.history.replaceState(null,null,`?${D.toString()}`));}return {config:{name:h,type:d,options:b,defaultValue:S,component:m,hideLabel:g,resetSectionVars:f},log:u,error:p}}var pa=x(()=>{c();yr();he();Xr();zo();fc();Hn();});function da(e,t,o){if(!e)return false;let r=Array.isArray(o)?o:o.split(",");return Array.isArray(r)&&r.every(n=>e.map(s=>`${s[`${t} ID`]}`).includes(n))}var gc=x(()=>{c();});function xr(e,t,o,r,n=false){let{variables:s}=gt(r),a=ht({logic:t},o,r).logic,i=_t("variables",s,a,o,void 0,r),{vars:l,log:u,error:p}=i;if(n&&typeof window<"u"){let m=`multihierarchySelector${e}-value`,g=`multihierarchySelector${e}-type`,f=new URLSearchParams(window.location.search),h=Object.fromEntries(f),b=h[m],v=h[g];b&&b!==void 0&&v&&v!==void 0&&!da(l.data,v,b)&&(f.delete(m),f.delete(g),window.history.replaceState(null,null,`?${f.toString()}`));}return {config:l,log:u,error:p}}var ma=x(()=>{c();gc();yr();Xr();zo();});var $h,hc,bc=x(()=>{c();he();$h=(e,t,o)=>{let r=`selector${e}id`,n=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(r),s=new URLSearchParams(t).get(r),a=n||s;if(o.type===Le.MULTI){let u=a?a.split(","):o.defaultValue,p=o.options.filter(d=>u.includes(d.id));return {[`selector${e}id`]:u,[`selector${e}label`]:(p||[]).map(d=>d.label)}}let i=a&&o.options.find(u=>u.id===a)?a:o.defaultValue,l=o.options.find(u=>u.id===i);return {[`selector${e}id`]:i,[`selector${e}label`]:l&&l.label||void 0}},hc=$h;});var Uh,yc,vc=x(()=>{c();Uh=(e,t,o)=>{let r=`multihierarchySelector${e}-value`,n=`multihierarchySelector${e}-type`,s=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(r),a=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(n),i=new URLSearchParams(t).get(r),l=new URLSearchParams(t).get(n),u=s||i,p=a||l,d=u?u.split(","):o.defaultValue||[],m=p||o.defaultValueType||"",g=o.data?.filter(f=>d.includes(`${f[`${m} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:d,[`multihierarchySelector${e}label`]:[...new Set((g||[]).map(f=>f[m]))],[`multihierarchySelector${e}type`]:m}},yc=Uh;});var Sc,Gh,Hh,Wh,He,Uo=x(()=>{c();he();St();(({localeDefault:Sc,locales:Gh}=Ie())),Hh=Object.values(ia),Wh=(e,t=Sc)=>e&&Hh.includes(e.type)?{locale:la,locales:[la]}:{locale:t,locales:Gh},He=(e,t=Sc)=>{if(!e)return {};let{locale:o}=Wh(e,t);return e.contentByLocale?.[o]?.content};});function qh(e,t){let o=Object.values(t),r=o.filter(n=>n.shared&&n.section_id!==e).map(n=>n.id);return Object.fromEntries(o.filter(n=>n.section_id===e&&(n.inputs.length===0||n.inputs.some(s=>r.includes(s)))).map(n=>[n.id,n]))}var xc,Tc=x(()=>{c();xc=qh;});var Rc,Ec=x(()=>{c();Rc=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((o,r)=>o[r],e):e;});var kc,fa=x(()=>{c();kc="SECTION_ALLOWED";});function ga(e){return e.type===y.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}var Cc=x(()=>{c();he();});function Kh(){let{publicRuntimeConfig:e}=jh(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((o,r)=>(o[`ENV_${r}`]=t[r]||"N/A",o),{})}}var po,Qr=x(()=>{c();po=Kh;});function Yh(){return typeof process>"u"?{}:Object.entries(process.env).filter(([e])=>e.startsWith("BESPOKE_SECRET_")).reduce((e,[t,o])=>({...e,[t.replace("BESPOKE_SECRET_","ENV_SECRET_")]:o}),{})}var Pc,wc=x(()=>{c();Pc=Yh;});function qn(e){return e.ok!==void 0}function Wn(e){this.message=e,this.name="ApiFetchException";}async function ba(e,t,o="en",r,n){let s=Date.now(),a=e,i,l=po(),u=Pc(),p={envs:{...l,...u}},d=new URL(e),m=new URLSearchParams(d.searchParams.toString());m.has("bespoke_slugs")&&(d.searchParams.delete("bespoke_slugs"),a=d.toString());let g={datasource:void 0};r.find(k=>{if(!k.content?.pattern)return false;try{let S=new RegExp(k.content.pattern,"gm");return S.test(a)?(g.datasource=k,!0):S.test(a)}catch{return false}});let f=n?n.settings:{},h=!!(f&&f.useProxy&&f.useProxy==="true"),b=g.datasource&&typeof g.datasource.content.useProxy=="boolean"?g.datasource.content.useProxy:false,v=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/api/cms/url/proxy?url=${encodeURIComponent(a)}`;if(typeof window=="object"&&(h||b)){let k=await rb({url:a,timeout:Ic});if(k.ok===true)i=k.data;else throw new Wn(k?.error)}else try{let S={url:a,timeout:Ic};if(g.datasource){let M=p;if(typeof window<"u")try{let L=await getSession();if(L){let E={user:L.user,status:"authenticated",isLoading:!1,update:async()=>L};M={...p,session:E};}}catch(L){console.warn("Could not retrieve user session:",L);}let P=await Yl({vars:["url","libs","session"],logic:g.datasource.content.logic},M)(a);if(P.axiosConfig)S=P.axiosConfig;else throw new Wn(`AxiosConfig is missing in Data Source ${g.datasource.name} (ID: ${g.datasource.id}).`)}let w=await jn(S);if(w.status===200)w.headers["content-type"]==="text/csv"?i=csvParse(w.data):i=w.data;else throw new Wn("No response for: "+a)}catch(k){throw new Wn(k.message)}if(m.has("bespoke_slugs")){let k=m.get("bespoke_slugs");if(k){let S=k.split(",");if(S.length===3){let[w,M,D]=S,P=Rc(i,D);if(P&&Array.isArray(P)){let L=Array.from(new Set(P.map(E=>`${E[M]}`).filter(E=>!["","undefined"].includes(E))));if(L.length>0){let E=L.join("").length>2e3,B=await t({mode:E?"whole":"ids",ids:E?void 0:L,all:false,locale:o,variant:[parseInt(w,10)],output:"lite",limit:L.length+1,allowNulls:true}).then(A=>{let O=[];return qn(A)?A.ok&&(O=A.data.results):O=A.results,O&&Array.isArray(O)?O:[]}).catch(A=>(console.error(`Error hydrating slugs for Variant: ${w}, Key: ${M}, Accessor: ${D}`),console.error(` Url ${e}`),n&&console.error(` From Section ${n.section_id} and Block ${n.id}`),console.error(A),[]));if(B){let A=Object.fromEntries(B.map(O=>[O.id,`/${O.variant_slug}/${O.slug}`]));P.map(O=>(O.bespoke_slug=A[O[M]]?A[O[M]]:null,O));}}}}}}return {data:i,requestDuration:Date.now()-s,finalUrl:b||h?v:a,apiDataSource:g.datasource?g.datasource:false}}function nb(e){this.name="BlockException",this.message=e;}async function Lc(e,t,o,r,n){let{locale:s,variables:a,query:i}=gt(o),l=sb(e,o,a,t),u=null,p=e.contentByLocale?.logic?.content?.api,d=null,m=null,g=null,f=null,h=null;if(!l)return {outputVariables:{},renderVariables:{},status:{allowed:false,hiddenByCascade:e.id}};if(e.type===y.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:l,hiddenByCascade:e.id}};if(p){g=ob(p,t,o);let P=g.split("|||").filter(B=>B!==""),L=[];for(let B=0;B<P.length;B++){let A=P[B];new RegExp("^(?:[a-z+]+:)?//","i").test(g)||(A=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${A}`.replace(/([^:]\/)\/+/g,"$1")),L.push(ba(A,r,s,n,e).catch($=>{throw new nb(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${a.report_name} (${a.report_id}) failed.
|
|
3
3
|
Error fetching ${A}.
|
|
4
4
|
Message: ${$.message}.
|
package/dist/server.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import ti,{getServerSession}from'next-auth';import Qs from'next-auth/providers/auth0';import je from'auth0';import*as sc from'pg';import {Sequelize,Error as Error$1,DataTypes,literal,Op,where,cast,json,fn,col,Model}from'sequelize';import rr from'yn';import*as vi from'd3-array';import*as _i from'd3-collection';import*as wi from'd3-format';import*as Pi from'd3-time-format';import {formatAbbreviate}from'd3plus-format';import {date}from'd3plus-axis';import {merge,closest,assign,isObject}from'd3plus-common';import {titleCase,strip}from'd3plus-text';import uc from'slugify';import Fr from'axios';import dc from'jsonwebtoken';import mc from'next/config';import xc from'flexsearch';import Xc from'base58';import el from'flickr-sdk';import Jc from'sharp';import {createApi}from'unsplash-js';import il from'fs';import {createContext,createElement}from'react';import {renderToString}from'react-dom/server';import*as vo from'@tabler/icons-react';import Gl from'nextjs-cors';import Kl from'image-type';import Cl from'formidable';import Dl from'dom-parser';import kp from'path';import ss from'axios-retry';import {format}from'pretty-format';import du from'toposort';import {csvParse}from'd3-dsv';import {getSession}from'next-auth/react';import {schema,normalize}from'normalizr';import {createSlice,configureStore}from'@reduxjs/toolkit';import {HYDRATE,createWrapper}from'next-redux-wrapper';import {notifications}from'@mantine/notifications';import'react-redux';import'react/jsx-runtime';import'@mantine/core';var Js=Object.defineProperty;var Ys=(e,t)=>{for(var r in t)Js(e,r,{get:t[r],enumerable:true});};var Xs={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 Ke(e){let t=e;if(t&&!t.source)if(!t.providers||t.providers.length===0){let r=Qs({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}){if(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")try{let i=new je.ManagementClient(Xs),c=await i.users.get({id:o.sub});o.bespoke_user_metadata=c.user_metadata||{},o.bespoke_app_metadata=c.app_metadata||{};let l=await i.users.getRoles({id:o.sub});o.bespoke_roles=l.map(u=>u.name),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});}catch(i){console.error("Error refreshing user data from Auth0:",i),o.bespoke_user_metadata={...o.bespoke_user_metadata,...s?.user_metadata||{}},o.bespoke_app_metadata={...o.bespoke_app_metadata,...s?.app_metadata||{}};}return 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 ye(e,t,r={providers:[]}){let o=Ke(r),n=await getServerSession(e,t,o);return n&&(n.source=o.source||""),n}var ri=(e={providers:[]})=>{let t=Ke(e);return ti(t)},oi=ri;var E=class extends Error{constructor(t,r){super(r),this.code=t;}toJSON(){return nn(this)}static is(t){return Object.prototype.hasOwnProperty.call(t,"code")&&typeof t.code=="number"}};function ni(e){return {ok:true,status:200,wrapper:true,data:e}}function nn(e){return {ok:false,status:E.is(e)?e.code:500,error:e.message}}function I(e){return t=>e(t).then(ni,nn)}function pe(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${Te(r)}`;return e[n]}let o=`${t}${Te(r)}`;return e[o]}function Te(e){return e[0].toUpperCase()+e.slice(1)}var G={ADMIN:"Admin",EDITOR:"Editor",WRITER:"Writer"},an={APP:"App",USER:"User"},sn=e=>{let t=Object.values(G);return e?e.map(r=>({...r,type:t.includes(r.name)?an.APP:an.USER})):[]};var He={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 cn(){return async()=>{try{let t=await new je.ManagementClient(He).roles.getAll({include_totals:!0,per_page:100});return {roles:sn(t.roles)}}catch(e){throw console.error("AuthZeroError",e),new E(e.response?.status||500,e.message)}}}function ln(){return async e=>{try{let t;if(e){let r={include_totals:!0,per_page:10,page:e.page||0},o=new je.ManagementClient(He);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 E(t.response?.status||500,t.message)}}}function un(){return async e=>{try{if(e){let t=new je.ManagementClient(He),r=await Promise.all([t.users.get({id:e}),t.users.getRoles({id:e})]);return {...r[0],roles:r[1]}}else throw new E(404,"User ID required")}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function pn(){return async e=>{try{if(e.user_id){if(e.app_metadata&&await oo(e.user_id,e.app_metadata),e.user_metadata&&await no(e.user_id,e.user_metadata),e.roles){let t=new je.ManagementClient(He),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 E(404,"user_id is required")}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function dn(){return async e=>{try{return "NOT USED SERVICE"}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}async function oo(e,t){return await new je.ManagementClient(He).users.updateAppMetadata({id:e},t)}async function no(e,t){return await new je.ManagementClient(He).users.updateUserMetadata({id:e},t)}async function mn(e,t){try{let r=new je.ManagementClient(He),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 ai=(e,t,r,o)=>new Promise((n,a)=>{(async()=>{try{let i=await ye(e,t,r);if(!i||!i.user)throw new Error("not_authenticated");{let{user:c,source:l}=i,p={...i.user.bespoke_app_metadata||{},...o};l==="custom"&&r.actions?.updateUser?await r.actions.updateUser()({user_id:c.id,app_metadata:p}):await oo(c.id,p),n({error:"",description:`App metadata updated for user ${i.user.email}`});}}catch(i){a({error:i.message,description:"The user does not have an active session or is not authenticated"});}})();}),si=ai;var ii=(e,t,r,o)=>new Promise((n,a)=>{(async()=>{try{let i=await ye(e,t,r);if(!i||!i.user)throw new Error("not_authenticated");{let{user:c,source:l}=i,p={...c.bespoke_user_metadata||{},...o};l==="custom"&&r.actions?.updateUser?await r.actions.updateUser()({user_id:c.id,user_metadata:p}):await no(c.id,p),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"});}})();}),ci=ii;var jt=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;function yr(e,t){return e.some(r=>t.includes(r))}function hr(e){return e.filter((t,r,o)=>o.indexOf(t)===r)}var li=(e,t,r)=>async function(o,n){let a=await ye(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&&!yr(s,t)){n.status(402).json({error:"unauthorize",description:"The user requires some specific roles"});return}await e(o,n);},ui=li;var pi=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{if(t&&r&&t!==""&&r!==""){let s;e.actions?.searchUser?s=await e.actions.searchUser()({[t]:r}):s=await mn(t,r),o(s);}else n({error:"empty_params",description:"key or value params are empty"});}catch(s){n({error:s.message,description:"Error "});}})();}),di=pi;var Ce=(e=process.env)=>rr(e.REPORTS_LOGGING);var Je=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:true}),{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 gi(e){return Je.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},settings:{type:DataTypes.JSON,defaultValue:{}},type:{type:DataTypes.STRING,defaultValue:"paragraph"},shared:{type:DataTypes.BOOLEAN,defaultValue:false},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:true,timestamps:false}),t=>(Je.hasMany(t.block_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),Je.belongsToMany(t.block,{through:"block_input",foreignKey:"block_id",otherKey:"input_id",as:"inputs"}),Je.belongsToMany(t.block,{through:"block_input",foreignKey:"input_id",otherKey:"block_id",as:"consumers"}),Je)}var gn=gi;var Rr=class extends Model{};function hi(e){return Rr.init({id:{type:DataTypes.INTEGER,primaryKey:true,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:true},content:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"block_content",tableName:"bespoke_reports_block_content",freezeTableName:true,timestamps:false}),()=>Rr}var yn=hi;var br=class extends Model{};function bi(e){return br.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},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:true,timestamps:false}),()=>br}var hn=bi;function io(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 Rn(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 Si(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(io(c)-io(i)-io(s)+s*Math.log(a)+i*Math.log(1-a));a<(s+1)/(c+2)?o=l*Rn(a,s,i):o=1-l*Rn(1-a,i,s),n=1-o;}return Math.round(n*1e5)/1e5}function Ei(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function Ht(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 Ai(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,u=o,p=a/100;for(;u-l>1e-5;)Ht(t,c,e,e)*.5+Ht(t,c,e+1,t)>p?(u=c,c=(l+c)/2):(l=c,c=(u+c)/2);s=c;}if(e===t)i=0;else {let c=(1+o)/2,l=o,u=1,p=a/100;for(;u-l>1e-5;)Ht(t,c,e,e)*.5+Ht(t,c,0,e-1)<p?(u=c,c=(l+c)/2):(l=c,c=(u+c)/2);i=c;}return {lci:s,uci:i}}function Ti(e,t){let r=e,o=t,n=r,a=o,s=95,i=.5,c=.5,u=(100-s)/2/100,p=n;for(;c>1e-5;)c/=2,Sr((1+p)*i/(1-i),p+1,1e10)+.5*Sr((1+p)*i/(1-i),p,p)>u?i-=c:i+=c;let d=(1+p)*i/(1-i)/a;for(i=.5,c=.5,u=(100-s)/2/100;c>1e-5;)c/=2,Sr((1+p)*i/(1-i),0,p-1)+.5*Sr((1+p)*i/(1-i),p,p)<u?i-=c:i+=c;let m=(1+p)*i/(1-i)/a;return {lci:d,uci:m}}function Sr(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 bn={binomialCdf:Si,binP:Ht,computeMidP:Ai,criticalValue:Ei,smr:Ti};var Ye={d3:{...vi,..._i,...wi,...Pi},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:bn},Sn={};var Be={UNILATERAL:"uni",MULTILATERAL:"multi"},Ze={SINGLE:"single",MULTI:"multi"};var co={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Mi={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Ni={DISABLED:"disabled"},Di={FALLBACK:"fallback"};var Ui={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"},lo={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},uo="logic",M={...Ui,...lo},Le={NAME:"name",DESCRIPTION:"description",...co,...Mi,...Di,...Ni};var Er={FORMATTER:"formatter"},vt={STRING:"string"};var _t=class extends Model{};function $i(e){return _t.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},name:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{description:"",testValue:"Foo",type:Er.FORMATTER,inputType:vt.STRING,logic:"return n;"}}},{sequelize:e,modelName:"formatter",tableName:"bespoke_reports_formatter",freezeTableName:true,timestamps:false,hooks:{async afterSync(t){let r=await _t.findAll();if(t.force||r.length===0){let o=Object.entries(Sn).map(([n,a])=>({name:n,content:a}));await _t.bulkCreate(o);}}}}),()=>_t}var Tn=$i;var Wt=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 qi(e){return Wt.init({id:{autoIncrement:true,primaryKey:true,type:DataTypes.INTEGER},url:{type:DataTypes.TEXT,unique:true},author:DataTypes.TEXT,license:DataTypes.TEXT,splash:DataTypes.BLOB,thumb:DataTypes.BLOB},{sequelize:e,modelName:"image",tableName:"bespoke_reports_image",freezeTableName:true}),t=>(Wt.hasMany(t.image_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),Wt)}var vn=qi;var Ar=class extends Model{};function Ki(e){return Ar.init({id:{type:DataTypes.INTEGER,primaryKey:true,onDelete:"cascade",references:{model:"bespoke_reports_image",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:true},meta:DataTypes.TEXT},{sequelize:e,modelName:"image_content",tableName:"bespoke_reports_image_content",freezeTableName:true,timestamps:false}),()=>Ar}var _n=Ki;var Pt=class extends Model{toJSON(){let t=this.get({plain:true}),{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 Hi(e){return Pt.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},name:{type:DataTypes.STRING,allowNull:false,defaultValue:""},visible:{type:DataTypes.BOOLEAN,defaultValue:true},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:true,timestamps:false}),t=>(Pt.hasMany(t.dimension,{foreignKey:"report_id",sourceKey:"id",as:"dimensions"}),Pt.hasMany(t.section,{foreignKey:"report_id",sourceKey:"id",as:"sections"}),Pt)}var wn=Hi;var xt=class extends Model{toJSON(){let t=this.get({plain:true}),{variants:r=[]}=this;return {...t,variants:r.map(o=>o.toJSON())}}};function Ji(e){return xt.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},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:true}},{sequelize:e,modelName:"dimension",tableName:"bespoke_reports_report_dimension",freezeTableName:true,timestamps:false}),t=>(xt.hasMany(t.variant,{foreignKey:"dimension_id",sourceKey:"id",as:"variants",constraints:false}),xt.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:false}),xt)}var Pn=Ji;var It=class extends Model{get report(){return this.dimension?.report}toJSON(){return this.get({plain:true})}};function Qi(e){return It.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},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:true}},{sequelize:e,modelName:"variant",tableName:"bespoke_reports_report_dimension_variant",freezeTableName:true,timestamps:false}),t=>(It.hasMany(t.search,{foreignKey:"variant_id",sourceKey:"id",as:"members",constraints:false}),It.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:false}),It)}var kn=Qi;var ke=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 Xi(e){return ke.init({id:{primaryKey:true,type:DataTypes.TEXT},zvalue:DataTypes.DOUBLE,slug:DataTypes.TEXT,image_id:{type:DataTypes.INTEGER,references:{model:"bespoke_reports_image",key:"id"}},content_id:{autoIncrement:true,type:DataTypes.INTEGER,unique:true},variant_id:{primaryKey:true,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension_variant",key:"id"}},dimension_id:{primaryKey:true,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},report_id:{primaryKey:true,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},visible:{type:DataTypes.BOOLEAN,defaultValue:true}},{sequelize:e,modelName:"search",tableName:"bespoke_reports_search",freezeTableName:true,timestamps:false}),t=>(ke.belongsTo(t.variant,{foreignKey:"variant_id",targetKey:"id",as:"variant",constraints:false}),ke.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:false}),ke.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:false}),ke.belongsTo(t.image,{foreignKey:"image_id",targetKey:"id",as:"image",constraints:false}),ke.hasMany(t.search_content,{foreignKey:"id",sourceKey:"content_id",as:"contentByLocale"}),ke)}var xn=Xi;var Tr=class extends Model{};function tc(e){return Tr.init({id:{type:DataTypes.INTEGER,primaryKey:true,onDelete:"cascade",references:{model:"bespoke_reports_search",key:"content_id"}},locale:{type:DataTypes.STRING,primaryKey:true},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:true,timestamps:false}),()=>Tr}var In=tc;var Yt=class extends Model{toJSON(){let t=this.get({plain:true}),{blocks:r=[]}=this;return {...t,blocks:r.map(o=>o.toJSON())}}};function oc(e){return Yt.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},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:true,timestamps:false}),t=>(Yt.hasMany(t.block,{foreignKey:"section_id",sourceKey:"id",as:"blocks"}),Yt)}var Cn=oc;var _r=class extends Model{};function ac(e){return _r.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},name:{type:DataTypes.STRING,defaultValue:""},description:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{pattern:"",logic:`return {
|
|
1
|
+
import ti,{getServerSession}from'next-auth';import Qs from'next-auth/providers/auth0';import je from'auth0';import*as sc from'pg';import {Sequelize,Error as Error$1,DataTypes,Op,literal,where,cast,json,fn,col,Model}from'sequelize';import rr from'yn';import*as vi from'd3-array';import*as _i from'd3-collection';import*as wi from'd3-format';import*as Pi from'd3-time-format';import {formatAbbreviate}from'd3plus-format';import {date}from'd3plus-axis';import {merge,closest,assign,isObject}from'd3plus-common';import {titleCase,strip}from'd3plus-text';import uc from'slugify';import Fr from'axios';import dc from'jsonwebtoken';import mc from'next/config';import xc from'flexsearch';import Xc from'base58';import el from'flickr-sdk';import Jc from'sharp';import {createApi}from'unsplash-js';import il from'fs';import {createContext,createElement}from'react';import {renderToString}from'react-dom/server';import*as vo from'@tabler/icons-react';import Gl from'nextjs-cors';import Kl from'image-type';import Cl from'formidable';import Dl from'dom-parser';import kp from'path';import ss from'axios-retry';import {format}from'pretty-format';import du from'toposort';import {csvParse}from'd3-dsv';import {getSession}from'next-auth/react';import {schema,normalize}from'normalizr';import {createSlice,configureStore}from'@reduxjs/toolkit';import {HYDRATE,createWrapper}from'next-redux-wrapper';import {notifications}from'@mantine/notifications';import'react-redux';import'react/jsx-runtime';import'@mantine/core';var Js=Object.defineProperty;var Ys=(e,t)=>{for(var r in t)Js(e,r,{get:t[r],enumerable:true});};var Xs={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 Ke(e){let t=e;if(t&&!t.source)if(!t.providers||t.providers.length===0){let r=Qs({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}){if(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")try{let i=new je.ManagementClient(Xs),c=await i.users.get({id:o.sub});o.bespoke_user_metadata=c.user_metadata||{},o.bespoke_app_metadata=c.app_metadata||{};let l=await i.users.getRoles({id:o.sub});o.bespoke_roles=l.map(u=>u.name),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});}catch(i){console.error("Error refreshing user data from Auth0:",i),o.bespoke_user_metadata={...o.bespoke_user_metadata,...s?.user_metadata||{}},o.bespoke_app_metadata={...o.bespoke_app_metadata,...s?.app_metadata||{}};}return 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 ye(e,t,r={providers:[]}){let o=Ke(r),n=await getServerSession(e,t,o);return n&&(n.source=o.source||""),n}var ri=(e={providers:[]})=>{let t=Ke(e);return ti(t)},oi=ri;var E=class extends Error{constructor(t,r){super(r),this.code=t;}toJSON(){return nn(this)}static is(t){return Object.prototype.hasOwnProperty.call(t,"code")&&typeof t.code=="number"}};function ni(e){return {ok:true,status:200,wrapper:true,data:e}}function nn(e){return {ok:false,status:E.is(e)?e.code:500,error:e.message}}function I(e){return t=>e(t).then(ni,nn)}function pe(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${Te(r)}`;return e[n]}let o=`${t}${Te(r)}`;return e[o]}function Te(e){return e[0].toUpperCase()+e.slice(1)}var G={ADMIN:"Admin",EDITOR:"Editor",WRITER:"Writer"},an={APP:"App",USER:"User"},sn=e=>{let t=Object.values(G);return e?e.map(r=>({...r,type:t.includes(r.name)?an.APP:an.USER})):[]};var He={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 cn(){return async()=>{try{let t=await new je.ManagementClient(He).roles.getAll({include_totals:!0,per_page:100});return {roles:sn(t.roles)}}catch(e){throw console.error("AuthZeroError",e),new E(e.response?.status||500,e.message)}}}function ln(){return async e=>{try{let t;if(e){let r={include_totals:!0,per_page:10,page:e.page||0},o=new je.ManagementClient(He);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 E(t.response?.status||500,t.message)}}}function un(){return async e=>{try{if(e){let t=new je.ManagementClient(He),r=await Promise.all([t.users.get({id:e}),t.users.getRoles({id:e})]);return {...r[0],roles:r[1]}}else throw new E(404,"User ID required")}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function pn(){return async e=>{try{if(e.user_id){if(e.app_metadata&&await oo(e.user_id,e.app_metadata),e.user_metadata&&await no(e.user_id,e.user_metadata),e.roles){let t=new je.ManagementClient(He),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 E(404,"user_id is required")}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function dn(){return async e=>{try{return "NOT USED SERVICE"}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}async function oo(e,t){return await new je.ManagementClient(He).users.updateAppMetadata({id:e},t)}async function no(e,t){return await new je.ManagementClient(He).users.updateUserMetadata({id:e},t)}async function mn(e,t){try{let r=new je.ManagementClient(He),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 ai=(e,t,r,o)=>new Promise((n,a)=>{(async()=>{try{let i=await ye(e,t,r);if(!i||!i.user)throw new Error("not_authenticated");{let{user:c,source:l}=i,p={...i.user.bespoke_app_metadata||{},...o};l==="custom"&&r.actions?.updateUser?await r.actions.updateUser()({user_id:c.id,app_metadata:p}):await oo(c.id,p),n({error:"",description:`App metadata updated for user ${i.user.email}`});}}catch(i){a({error:i.message,description:"The user does not have an active session or is not authenticated"});}})();}),si=ai;var ii=(e,t,r,o)=>new Promise((n,a)=>{(async()=>{try{let i=await ye(e,t,r);if(!i||!i.user)throw new Error("not_authenticated");{let{user:c,source:l}=i,p={...c.bespoke_user_metadata||{},...o};l==="custom"&&r.actions?.updateUser?await r.actions.updateUser()({user_id:c.id,user_metadata:p}):await no(c.id,p),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"});}})();}),ci=ii;var jt=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;function yr(e,t){return e.some(r=>t.includes(r))}function hr(e){return e.filter((t,r,o)=>o.indexOf(t)===r)}var li=(e,t,r)=>async function(o,n){let a=await ye(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&&!yr(s,t)){n.status(402).json({error:"unauthorize",description:"The user requires some specific roles"});return}await e(o,n);},ui=li;var pi=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{if(t&&r&&t!==""&&r!==""){let s;e.actions?.searchUser?s=await e.actions.searchUser()({[t]:r}):s=await mn(t,r),o(s);}else n({error:"empty_params",description:"key or value params are empty"});}catch(s){n({error:s.message,description:"Error "});}})();}),di=pi;var Ce=(e=process.env)=>rr(e.REPORTS_LOGGING);var Je=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:true}),{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 gi(e){return Je.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},settings:{type:DataTypes.JSON,defaultValue:{}},type:{type:DataTypes.STRING,defaultValue:"paragraph"},shared:{type:DataTypes.BOOLEAN,defaultValue:false},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:true,timestamps:false}),t=>(Je.hasMany(t.block_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),Je.belongsToMany(t.block,{through:"block_input",foreignKey:"block_id",otherKey:"input_id",as:"inputs"}),Je.belongsToMany(t.block,{through:"block_input",foreignKey:"input_id",otherKey:"block_id",as:"consumers"}),Je)}var gn=gi;var Rr=class extends Model{};function hi(e){return Rr.init({id:{type:DataTypes.INTEGER,primaryKey:true,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:true},content:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"block_content",tableName:"bespoke_reports_block_content",freezeTableName:true,timestamps:false}),()=>Rr}var yn=hi;var br=class extends Model{};function bi(e){return br.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},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:true,timestamps:false}),()=>br}var hn=bi;function io(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 Rn(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 Si(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(io(c)-io(i)-io(s)+s*Math.log(a)+i*Math.log(1-a));a<(s+1)/(c+2)?o=l*Rn(a,s,i):o=1-l*Rn(1-a,i,s),n=1-o;}return Math.round(n*1e5)/1e5}function Ei(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function Ht(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 Ai(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,u=o,p=a/100;for(;u-l>1e-5;)Ht(t,c,e,e)*.5+Ht(t,c,e+1,t)>p?(u=c,c=(l+c)/2):(l=c,c=(u+c)/2);s=c;}if(e===t)i=0;else {let c=(1+o)/2,l=o,u=1,p=a/100;for(;u-l>1e-5;)Ht(t,c,e,e)*.5+Ht(t,c,0,e-1)<p?(u=c,c=(l+c)/2):(l=c,c=(u+c)/2);i=c;}return {lci:s,uci:i}}function Ti(e,t){let r=e,o=t,n=r,a=o,s=95,i=.5,c=.5,u=(100-s)/2/100,p=n;for(;c>1e-5;)c/=2,Sr((1+p)*i/(1-i),p+1,1e10)+.5*Sr((1+p)*i/(1-i),p,p)>u?i-=c:i+=c;let d=(1+p)*i/(1-i)/a;for(i=.5,c=.5,u=(100-s)/2/100;c>1e-5;)c/=2,Sr((1+p)*i/(1-i),0,p-1)+.5*Sr((1+p)*i/(1-i),p,p)<u?i-=c:i+=c;let m=(1+p)*i/(1-i)/a;return {lci:d,uci:m}}function Sr(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 bn={binomialCdf:Si,binP:Ht,computeMidP:Ai,criticalValue:Ei,smr:Ti};var Ye={d3:{...vi,..._i,...wi,...Pi},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:bn},Sn={};var Be={UNILATERAL:"uni",MULTILATERAL:"multi"},Ze={SINGLE:"single",MULTI:"multi"};var co={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Mi={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Ni={DISABLED:"disabled"},Di={FALLBACK:"fallback"};var Ui={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"},lo={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},uo="logic",M={...Ui,...lo},Le={NAME:"name",DESCRIPTION:"description",...co,...Mi,...Di,...Ni};var Er={FORMATTER:"formatter"},vt={STRING:"string"};var _t=class extends Model{};function $i(e){return _t.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},name:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{description:"",testValue:"Foo",type:Er.FORMATTER,inputType:vt.STRING,logic:"return n;"}}},{sequelize:e,modelName:"formatter",tableName:"bespoke_reports_formatter",freezeTableName:true,timestamps:false,hooks:{async afterSync(t){let r=await _t.findAll();if(t.force||r.length===0){let o=Object.entries(Sn).map(([n,a])=>({name:n,content:a}));await _t.bulkCreate(o);}}}}),()=>_t}var Tn=$i;var Wt=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 qi(e){return Wt.init({id:{autoIncrement:true,primaryKey:true,type:DataTypes.INTEGER},url:{type:DataTypes.TEXT,unique:true},author:DataTypes.TEXT,license:DataTypes.TEXT,splash:DataTypes.BLOB,thumb:DataTypes.BLOB},{sequelize:e,modelName:"image",tableName:"bespoke_reports_image",freezeTableName:true}),t=>(Wt.hasMany(t.image_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),Wt)}var vn=qi;var Ar=class extends Model{};function Ki(e){return Ar.init({id:{type:DataTypes.INTEGER,primaryKey:true,onDelete:"cascade",references:{model:"bespoke_reports_image",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:true},meta:DataTypes.TEXT},{sequelize:e,modelName:"image_content",tableName:"bespoke_reports_image_content",freezeTableName:true,timestamps:false}),()=>Ar}var _n=Ki;var Pt=class extends Model{toJSON(){let t=this.get({plain:true}),{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 Hi(e){return Pt.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},name:{type:DataTypes.STRING,allowNull:false,defaultValue:""},visible:{type:DataTypes.BOOLEAN,defaultValue:true},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:true,timestamps:false}),t=>(Pt.hasMany(t.dimension,{foreignKey:"report_id",sourceKey:"id",as:"dimensions"}),Pt.hasMany(t.section,{foreignKey:"report_id",sourceKey:"id",as:"sections"}),Pt)}var wn=Hi;var xt=class extends Model{toJSON(){let t=this.get({plain:true}),{variants:r=[]}=this;return {...t,variants:r.map(o=>o.toJSON())}}};function Ji(e){return xt.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},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:true}},{sequelize:e,modelName:"dimension",tableName:"bespoke_reports_report_dimension",freezeTableName:true,timestamps:false}),t=>(xt.hasMany(t.variant,{foreignKey:"dimension_id",sourceKey:"id",as:"variants",constraints:false}),xt.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:false}),xt)}var Pn=Ji;var It=class extends Model{get report(){return this.dimension?.report}toJSON(){return this.get({plain:true})}};function Qi(e){return It.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},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:true}},{sequelize:e,modelName:"variant",tableName:"bespoke_reports_report_dimension_variant",freezeTableName:true,timestamps:false}),t=>(It.hasMany(t.search,{foreignKey:"variant_id",sourceKey:"id",as:"members",constraints:false}),It.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:false}),It)}var kn=Qi;var ke=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 Xi(e){return ke.init({id:{primaryKey:true,type:DataTypes.TEXT},zvalue:DataTypes.DOUBLE,slug:DataTypes.TEXT,image_id:{type:DataTypes.INTEGER,references:{model:"bespoke_reports_image",key:"id"}},content_id:{autoIncrement:true,type:DataTypes.INTEGER,unique:true},variant_id:{primaryKey:true,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension_variant",key:"id"}},dimension_id:{primaryKey:true,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},report_id:{primaryKey:true,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},visible:{type:DataTypes.BOOLEAN,defaultValue:true}},{sequelize:e,modelName:"search",tableName:"bespoke_reports_search",freezeTableName:true,timestamps:false}),t=>(ke.belongsTo(t.variant,{foreignKey:"variant_id",targetKey:"id",as:"variant",constraints:false}),ke.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:false}),ke.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:false}),ke.belongsTo(t.image,{foreignKey:"image_id",targetKey:"id",as:"image",constraints:false}),ke.hasMany(t.search_content,{foreignKey:"id",sourceKey:"content_id",as:"contentByLocale"}),ke)}var xn=Xi;var Tr=class extends Model{};function tc(e){return Tr.init({id:{type:DataTypes.INTEGER,primaryKey:true,onDelete:"cascade",references:{model:"bespoke_reports_search",key:"content_id"}},locale:{type:DataTypes.STRING,primaryKey:true},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:true,timestamps:false}),()=>Tr}var In=tc;var Yt=class extends Model{toJSON(){let t=this.get({plain:true}),{blocks:r=[]}=this;return {...t,blocks:r.map(o=>o.toJSON())}}};function oc(e){return Yt.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},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:true,timestamps:false}),t=>(Yt.hasMany(t.block,{foreignKey:"section_id",sourceKey:"id",as:"blocks"}),Yt)}var Cn=oc;var _r=class extends Model{};function ac(e){return _r.init({id:{type:DataTypes.INTEGER,primaryKey:true,autoIncrement:true},name:{type:DataTypes.STRING,defaultValue:""},description:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{pattern:"",logic:`return {
|
|
2
2
|
axiosConfig: {
|
|
3
3
|
method: 'get',
|
|
4
4
|
url: url,
|
|
@@ -22,7 +22,7 @@ Error initializing sequelize connection:
|
|
|
22
22
|
Could not initialize Typesense engine.
|
|
23
23
|
Details:
|
|
24
24
|
${t.message}
|
|
25
|
-
`)}return global.typesense};async function Dc(){try{if(Lt){let e=await Fr.get(new URL(Lt).origin);if(e?.data["typesense-health"]===!0)return Oe&&console.info(`${Lt} health check is OK. Version: ${e.data.Version}`),!0}else console.error("No envar set TYPESENSE_URL");return !1}catch(e){return console.error("Health check failed:",e.message),false}}async function Uc(){if(Oe&&console.info(`\u{1F3F3}\uFE0F INITIALIZING TYPESENSE SEARCH AGAINST ${Lt}`),!await Dc())throw new Error("TYPESENSE_URL service is not healthy.");let t=Mc.map(r=>(Oe&&console.info(`\u{1F3F3}\uFE0F INITIALIZING SEARCH ${r} LOCALE`),[r,{search:async(n={query:"*",limit:12,offset:0})=>{let a={locale:r,query:n.query,limit:n.limit,offset:n.offset};return n.report&&Array.isArray(n.report)&&n.report.length>0&&(a["report[]"]=n.report.join(",")),n.variant&&Array.isArray(n.variant)&&n.variant.length>0&&(a["variant[]"]=n.variant.join(",")),Oe&&console.info("Typesense URL:",Lt,a),Fr.get(Lt,{params:a}).then(i=>(Oe&&(console.info("Typesense URL:",i.request.res.responseUrl),console.info("Typesense Results",i.data.data.results.length)),i.data.data)).catch(i=>(console.error("Typesense Call Error:",i),[]))}}]));return Object.fromEntries(await Promise.all(t))}var qn=Nc;var{localeDefault:Eo}=j();function Ot(e){let{search:t,report:r}=e;return o;async function o(n){let a=n.origin||"flexsearch",s=process.env.REPORTS_EXTERNAL_SEARCH&&a==="typesense",{query:i,locale:c,preferredLocale:l,limit:u,format:p,visible:d,variant:f,dimension:m,report:R,all:g,noImage:b,includes:k,sort:v,direction:F="ASC",offset:_=0}=n,B=Xt.find(C=>C.locales.includes(c))?.charset||"latin",D=u&&!isNaN(u)?u:20,w=ot(i,B!=="arabic");function L(C){return C.toJSON()}function U(C){let q=C.getContent(c);return {...C.toJSON(),locale:q.locale,name:q.name,attributes:q.attributes,keywords:q.keywords}}if(s){let C=await qn(),q=C[c]||C[Eo],O={query:w===""?"*":w,limit:D,variant:f,report:R,offset:_};return await q.search(O)}else {let C=[],q=await nt(e);if(i&&i!==""&&q[c]){let J=ot(i,B!=="arabic"),ie={query:J,limit:D},V=await q[c].search(ie);if(s?C=V.data.results.map(Q=>parseInt(Q.content_id,10)):C=V.reduce((Q,W)=>Q.concat(W.result),[]),C=hr(C),l&&q[l]){let W=q[l].search(J).reduce((ue,se)=>ue.concat(se.result),[]);W=hr(W),C=hr([...C,...W]);}}let O={...d?{visible:d}:{},...b?{image_id:{[Op.eq]:null}}:{},...f.length?{variant_id:f}:{},...m.length?{dimension_id:m}:{},...R.length?{report_id:R}:{}},P={locale:g?{[Op.ne]:null}:c},H=[];i&&i!==""&&C.length&&v!=="report"?H.push([literal(`array_position(array[${C.join(",")}], "content_id")`),"ASC"]):(v==="report"&&H.push([literal(`COALESCE(NULLIF("report"."settings"->>'order', '')::INTEGER, 999999)`),"ASC"],[literal(`COALESCE(NULLIF("variant"."settings"->>'order', '')::INTEGER, 999999)`),"ASC"]),H.push(["zvalue","DESC NULLS LAST"])),v&&v!=="name"&&v!=="report"&&H.unshift([v,F.toUpperCase()]),i&&i!==""&&(O.content_id=C);let A=[{association:"contentByLocale",where:P}];(k||v==="report")&&A.push({association:"report",attributes:["id","name","settings"]},{association:"dimension",attributes:["id","name","settings"]},{association:"variant",attributes:["id","slug","name","settings"]});let S={...O.visible?{visible:O.visible}:{},...O.noImage?{image_id:O.noImage}:{},...O.content_id?{content_id:O.content_id}:{}};if(!O.report_id&&!O.dimension_id&&!O.variant_id&&d){let ie=(await r.findAll({attributes:["id"],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),true)]}})).map(V=>V.id);ie.length>0&&(O.report_id={[Op.notIn]:ie},S.report_id=O.report_id);}let T=[],[x,ne]=await Promise.all([t.findAll({limit:D,offset:_,where:O,include:A,order:H,subQuery:false}),t.findAll({attributes:["variant_id",[fn("COUNT",col("variant_id")),"members_count"]],where:S,group:["variant_id"]})]),ae=ne.map(J=>J.toJSON());if(v==="name"){let J=F.toUpperCase()==="ASC"?1:-1;x.sort((ie,V)=>{let Q=ie.getContent(Eo),W=V.getContent(Eo);return Q&&W?Q.name>W.name?1*J:-1*J:0});}let Z=p==="nested"?L:U;return T=x.map(Z),p!=="nested"&&T.forEach(J=>{let{name:ie,keywords:V,score:Q=.1,zvalue:W}=J;if(ie){let ue=ot(ie),se=Q,le=i.length/ue.length,tn=ue.split("").reduce((ro,rn,on)=>(i.slice(0,on),i.charAt(on)===rn&&(ro+=rn),ro),"").length;ue===i||V&&V.includes(i)?se=1e6:ue.startsWith(i)?se*=20*le:tn&&(se*=tn*le),J.zvalue=se*2+W;}}),{meta:{origin:"flexsearch",...Object.fromEntries(Object.entries(n).map(J=>[J[0],$(J[1])])),variantCount:ae.reduce((J,ie)=>(J[ie.variant_id]=parseInt(ie.members_count,10),J),{})},results:T}}}}function Gn(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:u}=s,p={where:{content_id:i}},d=await o.findOne(p);if(await o.update(s,{where:{content_id:i}}),c){for(let m=0;m<c.length;m++){let R=c[m];await n.update({name:R.name,keywords:R.keywords},{where:{id:R.id,locale:R.locale}});}p={...p,...{include:[{association:"contentByLocale",separate:true}]}};}if(l){if(l.id&&(await t.update({...l},{where:{id:l.id}}),l.contentByLocale))for(let f=0;f<l.contentByLocale.length;f++){let m=l.contentByLocale[f];await r.update({meta:m.meta},{where:{id:m.id,locale:m.locale}});}}else !u&&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(p)}}function Kn(e){return {ingestMembers:Fn(e),readMember:Vn(e),searchMember:Ot(e),updateMember:Gn(e),readMemberImage:$n(e)}}var at={include:[{association:"contentByLocale",separate:true},{association:"inputs",include:[{association:"contentByLocale",separate:true}]},{association:"consumers",include:[{association:"contentByLocale",separate:true}]}]},er=e=>({include:[{association:"variants",separate:true,attributes:{include:[[fn("COUNT",col("members.id")),"members_count"]]},include:[{model:e,as:"members",attributes:[]}],group:["variant.id"]}],order:[["ordering","ASC"]]}),tr={include:[{association:"blocks",separate:true,...at}]},Br=e=>({include:[{association:"dimensions",separate:true,...er(e)},{association:"sections",separate:true,...tr}]});var Re=[{association:"image",attributes:{exclude:["splash"]},include:[{association:"contentByLocale"}]},{association:"contentByLocale"}];function jn(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(u){let{locales:p,...d}=u;return (await t.create({...d,consumers:[],inputs:[],contentByLocale:p.map(m=>({locale:m}))},{include:at.include})).toJSON()}async function a(u){let p=u.map(f=>{let{locales:m,...R}=f;return {...R,consumers:[],inputs:[],contentByLocale:m.map(b=>({locale:b}))}});return (await t.bulkCreate(p,{include:at.include})).map(f=>f.toJSON())}async function s({id:u,include:p}={}){let d=u==null?[]:[].concat(u),f=await t.findAll({where:d.length>0?{id:d}:void 0,include:p?at.include:void 0});if(d.length===0||f.length===d.length)return f.map(g=>g.toJSON());let m=f.map(g=>g.id),R=d.filter(g=>!m.includes(g));throw new E(404,`Block(id=[${R}]) does not exist.`)}async function i(u){let{id:p,contentByLocale:d,consumers:f,inputs:m,inputAction:R,...g}=u,b=await t.findByPk(p,{include:at.include,rejectOnEmpty:true});if(b.set(g),d){let k=Object.values(d);await r.bulkCreate(k,{updateOnDuplicate:["content"]});}return R&&(R.operation==="create"?await o.create(R.input):await o.destroy({where:R.input})),await b.save(),await b.reload(),b.toJSON()}async function c(u){let p=u.map(m=>{let{id:R,contentByLocale:g,consumers:b,inputs:k,inputAction:v,...F}=m;return {id:R,contentByLocale:g,inputAction:v,...F}}),d=await t.findAll({where:{id:{[Op.or]:p.map(m=>m.id)}},include:at.include}),f=[];for(let m of d){let R=p.filter(g=>g.id===m.id);for(let g=0;g<R.length;g++){let b=R[g],{id:k,contentByLocale:v,inputAction:F,..._}=b;if(F&&(F.operation==="create"?await o.create(F.input):await o.destroy({where:F.input})),v){let z=Object.values(v);await r.bulkCreate(z,{updateOnDuplicate:["content"]});}m.set(_),await m.save(),await m.reload(),f.push(m.toJSON());}}return f}async function l(u){let p=await t.findByPk(u,{rejectOnEmpty:true});return await p.destroy(),{id:u,parentType:"section",parentId:p.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,ordering:i.ordering||0,variants:[]},{include:er(r).include})).toJSON()}async function n({id:i,include:c}={}){let l=i==null?[]:[].concat(i),u=await t.findAll({where:l.length>0?{id:l}:void 0,include:c?er(r).include:void 0});if(l.length===0||u.length===l.length)return u.map(f=>f.toJSON());let p=u.map(f=>f.id),d=l.filter(f=>!p.includes(f));throw new E(404,`Dimension(id=[${d}]) does not exist.`)}async function a(i){let{id:c,variants:l,...u}=i,p=await t.findByPk(c,{include:er(r).include,rejectOnEmpty:false});if(!p)throw new E(404,`Dimension(id=${c}) does not exist.`);return p.set(u),await p.save(),p.toJSON()}async function s(i){let c=await t.findByPk(i,{rejectOnEmpty:false});return await c.destroy(),{id:i,parentType:"report",parentId:c.report_id}}}function Wn(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(p=>p.toJSON());let l=c.map(p=>p.id),u=i.filter(p=>!l.includes(p));throw new E(404,`Formatter(id=[${u}]) does not exist.`)}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:true});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:true})).destroy(),{id:s}}}function Yn(e){let{datasource:t}=e;return {createDatasource:r,readDatasource:o,updateDatasource:n,deleteDatasource:a};async function r(s){return (await t.create(s)).toJSON()}async function o({id:s,include:i}={}){try{let c=s==null?[]:[].concat(s),l=i===!0,u=await t.findAll({attributes:l?["id","name","description","content"]:["id","name","description",[literal("content - 'logic' - 'testUrl' - 'access'"),"content"]],where:c.length>0?{id:c}:void 0,order:[literal("(content->>'order')::integer ASC NULLS LAST")]});if(c.length===0||u.length===c.length)return u.map(f=>f.toJSON());let p=u.map(f=>f.id),d=c.filter(f=>!p.includes(f));throw new E(404,`Datasource(id=[${d}]) does not exist.`)}catch(c){throw new E(500,c)}}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:true});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:true})).destroy(),{id:s}}}var{locales:Hc}=j();function Qn(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:Br(r).include})).toJSON()}async function n({id:i,include:c,locales:l=Hc}={}){let p=(i==null?[]:[].concat(i)).reduce((R,g)=>(R.includes(g)||R.push(g),R),[]),d=await t.findAll({where:p.length>0?{id:p}:void 0,include:c?Br(r).include?.filter(R=>typeof c=="string"?R.association===c:c):void 0});if(p.length===0||d.length===p.length)return d.map(R=>{let g=R.toJSON();return {...g,sections:g.sections.map(b=>({...b,blocks:b.blocks.map(k=>({...k,contentByLocale:Object.keys(k.contentByLocale).reduce((v,F)=>({...v,...[...l,"logic"].includes(F)?{[F]:k.contentByLocale[F]}:{}}),{})}))}))}});let f=d.map(R=>R.id),m=p.filter(R=>!f.includes(R));throw new E(404,`Report(id=${m}) does not exist.`)}async function a(i){let{id:c,dimensions:l,sections:u,...p}=i,d=await t.findByPk(c,{include:Br(r).include,rejectOnEmpty:false});if(!d)throw new E(404,`Report(id=${c}) does not exist.`);return d.set(p),await d.save(),await d.reload(),d.toJSON()}async function s(i){return await(await t.findByPk(i,{rejectOnEmpty:false})).destroy(),{id:i}}}function Zn(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:tr.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?tr.include:void 0});if(c.length===0||l.length===c.length)return l.map(d=>d.toJSON());let u=l.map(d=>d.id),p=c.filter(d=>!u.includes(d));throw new E(404,`Section(id=${p}) does not exist.`)}async function n(s){let{id:i,blocks:c,...l}=s,u=await t.findByPk(i,{include:tr.include,rejectOnEmpty:false});return u.set(l),await u.save(),await u.reload(),u.toJSON()}async function a(s){let i=await t.findByPk(s,{rejectOnEmpty:true});return await i.destroy(),{id:s,parentType:"report",parentId:i.report_id}}}function ta(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:u,name:p,slug:d}=l,f=await c({dimension:u,slug:d});return (await r.create({dimension_id:u,name:p,slug:f.valid?f.candidate:f.suggestion})).toJSON()}async function a({id:l}={}){let u=l==null?[]:[].concat(l),p=await r.findAll({where:u.length>0?{id:u}:void 0,attributes:{include:[[fn("COUNT",col("members.id")),"members_count"]]},include:[{model:o,attributes:[],as:"members"}],group:["variant.id"]});if(u.length===0||p.length===u.length)return p.map(m=>m.toJSON());let d=p.map(m=>m.id),f=u.filter(m=>!d.includes(m));throw new E(404,`Variant(id=${f}) does not exist.`)}async function s(l){let{id:u,...p}=l,d=await r.findByPk(u,{include:[{association:"dimension"}],rejectOnEmpty:true});p.settings=Zt(p.settings);let f=p.settings.doIngest;return p.settings.doIngest=false,await d.update(p),f&&(await t.ingestMembers(d),await nt(e,true)),await d.reload(),d.toJSON()}async function i(l){let u=await r.findByPk(l,{rejectOnEmpty:true});return await u.destroy(),nt(e,true),{id:l,parentType:"dimension",parentId:u.dimension_id}}async function c({dimension:l,slug:u}){let p=await r.findAll({attributes:["slug",[fn("COUNT",col("id")),"slugCount"]],where:{dimension_id:{[Op.ne]:l}},group:"slug"}).then(R=>Object.fromEntries(R.map(g=>{let b=g.getDataValue("slugCount");return [g.slug,Number.parseInt(`${b}`,10)]}))),d=u,f=1,m=true;for(;p[d];)m=false,d=`${u}-${f}`,f++;return {candidate:u,dimension_id:l,suggestion:d,valid:m}}}function ra(e){let t={...jn(e),...Hn(e),...Wn(e),...Yn(e),...Kn(e),...Qn(e),...Zn(e)},r={...t,...ta(e,t)};return {createFormatter:I(r.createFormatter),deleteFormatter:I(r.deleteFormatter),readFormatter:I(r.readFormatter),updateFormatter:I(r.updateFormatter),createReport:I(r.createReport),deleteReport:I(r.deleteReport),readReport:I(r.readReport),updateReport:I(r.updateReport),createDimension:I(r.createDimension),deleteDimension:I(r.deleteDimension),readDimension:I(r.readDimension),updateDimension:I(r.updateDimension),createVariant:I(r.createVariant),readVariant:I(r.readVariant),updateVariant:I(r.updateVariant),deleteVariant:I(r.deleteVariant),validateVariantSlug:I(r.validateVariantSlug),createSection:I(r.createSection),readSection:I(r.readSection),updateSection:I(r.updateSection),deleteSection:I(r.deleteSection),createBlock:I(r.createBlock),deleteBlock:I(r.deleteBlock),readBlock:I(r.readBlock),updateBlock:I(r.updateBlock),createBulkBlock:I(r.createBulkBlock),updateBulkBlock:I(r.updateBulkBlock),readMember:I(r.readMember),searchMember:I(r.searchMember),updateMember:I(r.updateMember),readMemberImage:I(r.readMemberImage),createDatasource:I(r.createDatasource),deleteDatasource:I(r.deleteDatasource),readDatasource:I(r.readDatasource),updateDatasource:I(r.updateDatasource)}}var oa=e=>{throw console.error("/methods/helpers/uploadImage.ts:",e),new Error(e.message)},Yc=Number(process.env.NEXT_PUBLIC_IMAGE_SPLASH_WIDTH)||1400,Qc=Number(process.env.NEXT_PUBLIC_IMAGE_THUMB_WIDTH)||400,Zc=async(e,t,r)=>{let o=[{type:"splash",res:Yc},{type:"thumb",res:Qc}];for(let n of o){let a=await Jc(r).resize(n.res).toFormat("webp").webp({lossless:true}).toBuffer().catch(oa);await e.image.update({[n.type]:a},{where:{id:t}}).catch(oa);}},ve=Zc;var na="SECTION_ALLOWED";var aa=["4","5","7","8","9","10"],tl=aa.join(),{locales:rl}=j(),Me;if(process.env.FLICKR_API_KEY)try{Me=new el(process.env.FLICKR_API_KEY);}catch(e){throw console.error("Flickr ERROR:",e),new Error(e.message)}async function sa(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Me)throw console.warn("Flickr is not initialized. Check the credentials"),new Error("Flickr is not initialized. Check the credentials");let o=r.prompt,a=(await Me.photos.search({text:o,license:tl,sort:"relevance",per_page:24,page:r.page,content_types:"0",orientation:"landscape"}).then(l=>l.body)).photos.photo,s=a.reduce((l,u)=>l.concat(Me.photos.getSizes({photo_id:u.id})),[]),c=(await Promise.all(s).then(l=>l)).reduce((l,u,p)=>{let d=u.body.sizes.size.find(f=>f.label==="Small 320");return d&&l.push({id:a[p].id,source:d.source}),l},[]);return {meta:{prompt:$(r.prompt),page:$(`${r.page}`)},results:c}}catch(r){throw console.error(r),new Error("Error in search flickr provider")}}async function ia(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:$(`${r}`)||"",id:$(`${o}`)||""},s=`https://flic.kr/p/${Xc.int_to_base58(o)}`;if(!Me)throw new Error("Flickr API Key not configured");let i=await Me.photos.getInfo({photo_id:o}).then(l=>l.body),c;if(i)if(aa.includes(i.photo.license)){let l=await e.search.findOne({where:{content_id:r}}),u=await e.image.findOne({where:{url:s}});if(l){if(u)await e.search.update({image_id:u.id},{where:{content_id:r}});else {let d=await Me.photos.getSizes({photo_id:o}).then(_=>_.body),f=d.sizes.size.find(_=>parseInt(_.width,10)>=1600);if(f||(f=d.sizes.size.find(_=>parseInt(_.width,10)>=1e3)),f||(f=d.sizes.size.find(_=>parseInt(_.width,10)>=500)),!f||!f.source)throw new Error("Flickr Source Error, try another image.");let m=await fetch(f.source);if(!m.ok)throw new Error("Flickr Error retrieving image, try another image.");let R=await m.arrayBuffer(),b=(await Me.photos.licenses.getInfo().then(_=>_.body.licenses.license)).find(_=>_.id===parseInt(i.photo.license,10)),k={url:s,author:i.photo.owner.realname||i.photo.owner.username,license:b?`${b.name}: ${b.url}`:""},v=await e.image.create(k);await e.image_content.destroy({where:{id:v.id}});let F=rl.map(_=>({id:v.id,locale:_,meta:i.photo.title._content}));await e.image_content.bulkCreate(F),await e.search.update({image_id:v.id},{where:{content_id:r}}),await ve(e,v.id,R);}let p=await e.search.findOne({where:{content_id:r},include:Re});p&&p.image&&(p.image.thumb=!!p.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.error(r),new Error("Error in save flickr provider")}}function N(e,t,r,o){return {method:e,path:t,handler:r,roleRequired:o}}function ee(e){let t=Number.parseInt(`${e||""}`,10);if(Number.isNaN(t)||!Number.isFinite(t))throw new E(400,`Invalid numeric parameter: ${e}`);return t}function K(e){return e==null||e===""?[]:Array.isArray(e)?e:e.toString().split(",")}var{localeDefault:De}=j();function ca(e){let{readMember:t,searchMember:r,updateMember:o,readMemberImage:n}=e;return [N("GET","read/members",async a=>{let s=ol(a.query),i=s[s.mode]||[],c=s.mode==="whole";if(!c&&i.length===0)throw new E(400,`The request is missing the '${s.mode}' parameter.`);if(!c&&i.length>20&&!s.variant)throw new E(400,`You can look for up to 20 '${s.mode}' in a single request.`);return t(s)}),N("GET","search/members",a=>{let s=or(a.query);return r(s)}),N("POST","update/member",a=>{let{body:s}=a;return o(s)},[G.EDITOR]),N("GET","member/image",a=>{let s=K(a.query.size)[0];return n({member:ee(a.query.member),size:s&&s==="splash"?"splash":"thumb"})})]}function ol(e){let t=K(e.locale)[0]||De,r=t==="all"||rr(e.all),o=K(e.mode)[0],a=(K(e.output)[0]||"full")==="lite"?"lite":"full",s=parseInt(K(e.related)[0],10)||5,i=rr(e.allowNulls,{default:false}),c=K(e.variant).map(ee);if(c.length===0&&(c=K(e["variant[]"]).map(ee)),o==="ids")return {all:r,mode:o,variant:c,output:a,locale:r?De:$(t),ids:K(e.ids||e["ids[]"]),allowNulls:i};if(o==="content_ids")return {all:r,mode:o,variant:c,output:a,locale:r?De:$(t),content_ids:K(e.content_ids||e["content_ids[]"]).map(ee),allowNulls:false};if(o==="slugs")return {all:r,mode:o,variant:c,output:a,locale:r?De:$(t),slugs:K(e.slugs||e["slugs[]"]).map(l=>{let[u,p]=l.split("/");return {variantSlug:u,memberSlug:p}}),allowNulls:false};if(o==="related")return {all:r,mode:o,locale:r?De:$(t),related:s,current_ids:K(e.current_ids||e["current_ids[]"]).map(ee),include_ids:K(e.include_ids||e["include_ids[]"]).map(ee),report_ids:K(e.report_ids||e["report_ids[]"]).map(ee),dimension_ids:K(e.dimension_ids||e["dimension_ids[]"]).map(ee),variant_ids:K(e.variant_ids||e["variant_ids[]"]).map(ee),output:a,allowNulls:false};if(o==="whole")return {all:r,mode:o,variant:c,locale:r?De:$(t),output:a,allowNulls:i};throw new E(400,`Invalid mode: '${o}'`)}function or(e){let t=K(e.locale)[0]||De||"en",r=t==="all",o=K(e.format)[0],n=o?o==="nested":r,a=K(e.variant).map(ee);a.length===0&&(a=K(e["variant[]"]).map(ee));let s=K(e.dimension).map(ee);s.length===0&&(s=K(e["dimension[]"]).map(ee));let i=K(e.report).map(ee);i.length===0&&(i=K(e["report[]"]).map(ee));let c=e.origin==="typesense"?"typesense":"flexsearch";return {query:K(e.query||e.q)[0]||"",locale:r?De:t,preferredLocale:K(e.preferredLocale)[0],limit:K(e.limit).map(ee)[0]??5,format:n?"nested":"plain",includes:rr(e.includes,{default:true}),visible:rr(e.visible,{default:true}),noImage:rr(e.noImage,{default:false}),variant:a,dimension:s,report:i,all:r,sort:K(e.sort)[0],direction:K(e.direction)[0],offset:Number(e.offset||0),origin:c}}async function la(e,t){let r=Ot(e),o=or({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:$(o.query)},results:a}}async function ua(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:Re}).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:sl}=j(),nr;if(process.env.UNSPLASH_API_KEY)try{nr=createApi({accessKey:process.env.UNSPLASH_API_KEY});}catch(e){throw console.error("Unsplash error:",e),new Error(e.message)}async function pa(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!nr)throw new Error("Unsplash API Key not configured");let o=r.prompt,a=(await nr.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:$(r.prompt),page:$(`${r.page}`)},results:a}}catch(r){throw console.error(r),new Error("Error in search unsplash provider")}}async function da(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:$(`${r}`)||"",id:$(`${o}`)||""};if(!nr)throw console.warn("Unsplash is not initialized. Check the credentials"),new Error("Unsplash is not initialized. Check the credentials");let a=await nr.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 p=await Fr.get(a.urls.full,{responseType:"arraybuffer"}).then(R=>R.data),d={url:c,author:a.user.name||a.user.username,license:"Free Unsplash license: https://unsplash.com/license"},f=await e.image.create(d);await e.image_content.destroy({where:{id:f.id}});let m=sl.map(R=>({id:f.id,locale:R,meta:a.description||a.alt_description}));await e.image_content.bulkCreate(m),await e.search.update({image_id:f.id},{where:{content_id:r}}),await ve(e,f.id,p);}let u=await e.search.findOne({where:{content_id:r},include:Re});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.error(r),new Error("Error in save unsplash provider")}}var{locales:cl}=j();async function ma(e,t){try{let{content_id:r,image_source:o,files:n}=t,a={content_id:$(`${r}`)||""};if(await e.search.findOne({where:{content_id:r}})&&n){let c=await il.readFileSync(n.file.filepath),l={url:o,author:"",license:""},u=await e.image.create(l);await e.image_content.destroy({where:{id:u.id}});let p=cl.map(d=>({id:u.id,locale:d,meta:""}));await e.image_content.bulkCreate(p),await e.search.update({image_id:u.id},{where:{content_id:r}}),await ve(e,u.id,c);}let i=await e.search.findOne({where:{content_id:r},include:Re});return i&&i.image&&(i.image.thumb=!!i.image.thumb),{meta:{...a},results:i}}catch(r){throw console.error(r),new Error("Error in save upload provider")}}var{locales:ll}=j();var fa=async e=>{let t={"x-api-key":process.env.ADOBE_STOCK_API_KEY||"EMPTY_ADOBE_KEY","X-Product":"BespokeApp/0.1"};return t};var ar;if(process.env.ADOBE_STOCK_API_KEY)try{ar={search:async(e,t)=>await Fr.get("https://stock.adobe.io/Rest/Media/1/Search/Files",{headers:await fa(!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 fa(!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 ga(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!ar)throw new Error("Adobe API Key not configured");let n=(await ar.search(r.prompt,r.page)).map(a=>({id:a.id,source:a.thumbnail_url}));return {meta:{prompt:$(r.prompt),page:$(`${r.page}`)},results:n}}catch(r){throw console.error(r),new Error("Error in search Adobe provider")}}async function ya(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:$(`${r}`)||"",id:$(`${o}`)||""};if(!ar)throw console.warn("Adobe is not initialized. Check the credentials"),new Error("Adobe is not initialized. Check the credentials");let a=await ar.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 p=await Fr.get(a.thumbnail_1000_url,{responseType:"arraybuffer"}).then(R=>R.data),d={url:c,author:a.creator_name,license:"ADOBE, TO-DO"},f=await e.image.create(d);await e.image_content.destroy({where:{id:f.id}});let m=ll.map(R=>({id:f.id,locale:R,meta:a.title||a.description}));await e.image_content.bulkCreate(m),await e.search.update({image_id:f.id},{where:{content_id:r}}),await ve(e,f.id,p);}let u=await e.search.findOne({where:{content_id:r},include:Re});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.error(r),new Error("Error in save adobe provider")}}var{locales:ul}=j(),Lr=process.env.PIXABAY_API_KEY,ha="https://pixabay.com/api/";async function Ra(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Lr)throw new Error("Pixabay API Key not configured");let o=encodeURIComponent(r.prompt),n=`${ha}?key=${Lr}&q=${o}&per_page=${24}&page=${r.page}&image_type=photo&orientation=horizontal&safesearch=true`,i=(await Fr.get(n)).data.hits?.map(c=>({id:c.id,source:c.previewURL||c.webformatURL}))||[];return {meta:{prompt:$(r.prompt),page:$(`${r.page}`)},results:i}}catch(r){throw console.error(r),new Error("Error in search pixabay provider")}}async function ba(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:$(`${r}`)||"",id:$(`${o}`)||""};if(!Lr)throw console.warn("Pixabay is not initialized. Check the credentials"),new Error("Pixabay is not initialized. Check the credentials");let a=`${ha}?key=${Lr}&id=${o}`,i=(await Fr.get(a)).data,c;if(i.hits&&i.hits.length>0){let l=i.hits[0],u=await e.search.findOne({where:{content_id:r}}),p=l.pageURL,d=await e.image.findOne({where:{url:p}});if(u){if(d)await e.search.update({image_id:d.id},{where:{content_id:r}});else {let m=l.largeImageURL||l.webformatURL||l.imageURL;if(!m)throw new Error("Pixabay image URL not available");let R=await Fr.get(m,{responseType:"arraybuffer"}).then(v=>v.data),g={url:p,author:l.user||`Pixabay User ${l.user_id}`,license:"Free Pixabay License: https://pixabay.com/service/license/"},b=await e.image.create(g);await e.image_content.destroy({where:{id:b.id}});let k=ul.map(v=>({id:b.id,locale:v,meta:l.tags||l.description||""}));await e.image_content.bulkCreate(k),await e.search.update({image_id:b.id},{where:{content_id:r}}),await ve(e,b.id,R);}let f=await e.search.findOne({where:{content_id:r},include:Re});f&&f.image&&(f.image.thumb=!!f.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Image not found in Pixabay");return {meta:{...n},results:c}}catch(r){throw console.error(r),new Error("Error in save pixabay provider")}}var pl={local:ua,flickr:ia,unsplash:da,upload:ma,adobe:ya,pixabay:ba};function st(e,t){let r=pl[t];if(!r)throw new E(500,`Wrong provider dbImageSaveFactory.ts: ${t}`);return I(o=>r(e,o))}var dl={local:la,flickr:sa,unsplash:pa,adobe:ga,pixabay:Ra};function Mt(e,t){let r=dl[t];if(!r)throw new E(500,`Wrong provider dbImageSearchFactory.ts: ${t}`);return I(o=>r(e,o))}var bl=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 Mr(e){let{report:t,search:r}=e;return o;async function o(n){let a=n?.report_id?Number(n.report_id):void 0,s=!(typeof n?.count<"u"&&(n.count==="false"||n.count===false)),i={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"),false),literal("NOT (settings::jsonb ? 'hide')")]},order:[["ordering","ASC"]],include:[{attributes:["id","name","ordering"],association:"dimensions",separate:true,order:[["ordering","ASC"]],include:[{attributes:["id","name","slug",[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"]],association:"variants",separate:true,group:["variant.id"],order:[["ordering","ASC"]]}]}]};return a&&(i.where={...i.where,id:a}),s&&i.include&&i.include[0]&&(i.include[0].include[0].attributes.push([fn("COUNT",col("members.id")),"members_count"]),i.include[0].include[0].include=[{model:r,attributes:[],as:"members",where:{visible:true}}]),{data:(await t.findAll(i)).map(l=>({...bl(l.toJSON()),mode:l.dimensions.length===1?Be.UNILATERAL:Be.MULTILATERAL}))}}}function Sa(e){return async()=>(await nt(e,true),{error:false})}var{locales:Sl,localeDefault:El}=j(),Al=(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===Be.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},Tl=(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 Ea(e){let t=Ot(e),r=Mr(e);return o;async function o(n){let a=n.format||"results",s=Sl.includes(n.locale)?n.locale:El,i=n.origin||"flexsearch",c=process.env.REPORTS_EXTERNAL_SEARCH&&i==="typesense",l=await t({...n,format:"plain",locale:$(s),visible:true});if(c)return l;{let u=l.results?l.results:[],d=(await r()).data,f=Tl(u,d);return {meta:{...l.meta,origin:"flexsearch",format:a},results:Al(f,d)}}}}function Aa(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 E(r.response?.status||500,r.message)}}}function Ta(){return async e=>{try{let{target:t}=e;return {target:t}}catch(t){throw new E(t.response?.status||500,t.message)}}}function Se(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 _l(e,t){return e.some(r=>t.includes(`role.${r}`))}function va(e){let{report:t}=e;return r;async function r(o){let n=await t.findByPk(o.report_id,{include:{association:"sections",separate:true,where:{id:o.section_id},include:[{association:"blocks",separate:true,include:[{association:"contentByLocale",separate:true,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(u=>{let p=u.toJSON();return p.inputs=p.inputs.map(d=>d.id),p.consumers=p.consumers.map(d=>d.id),p});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")||_l(o.roles,s.settings.access))).map(s=>s.id);return a=a.concat(Se(a,n)),{params:{...o},data:n.filter(s=>a.includes(s.id))}}}var kl=Object.keys(vo).filter(e=>e.indexOf("Icon")===0);async function _a(){return {meta:{provider:"tabler"},results:kl}}async function wa(e){let t=vo[e.name]?vo[e.name]:()=>"";return renderToString(createElement(t))}var xl={tabler:_a};function Pa(e){let t=xl[e];if(!t)throw new E(500,`Wrong provider dbListIconsFactory.ts: ${e}`);return I(()=>t())}var Il={tabler:wa};function ka(e){return I(t=>{let r=Il[e];if(!r)throw new E(500,`Wrong provider dbReadIconFactory.ts: ${t.provider}`);return r({name:t.name,provider:e})})}function xa(){return e;async function e(){return {secrets:Ct()}}}function it(e,t,r){return rt().then(o=>{Object.assign(r,Nt(o));})}function Nt(e,t){let r={},o=Ke(t||{providers:[]});return t&&o.actions&&o.source==="custom"?(r.searchRole=I(o.actions.searchRole()),r.searchUser=I(o.actions.searchUser()),r.readUser=I(o.actions.readUser()),r.updateUser=I(o.actions.updateUser())):o.source==="auth0"&&(r.searchRole=I(cn()),r.searchUser=I(ln()),r.readUser=I(un()),r.updateUser=I(pn())),{...ra(e),searchReport:I(Ea(e)),readMetadata:I(Mr(e)),regenerateSearch:I(Sa(e)),imageFlickrSearch:Mt(e,"flickr"),imageLocalSearch:Mt(e,"local"),imageUnsplashSearch:Mt(e,"unsplash"),imageAdobeSearch:Mt(e,"adobe"),imagePixabaySearch:Mt(e,"pixabay"),imageFlickrSave:st(e,"flickr"),imageLocalSave:st(e,"local"),imageUnsplashSave:st(e,"unsplash"),imageUploadSave:st(e,"upload"),imageAdobeSave:st(e,"adobe"),imagePixabaySave:st(e,"pixabay"),urlProxy:xr(e),searchRole:r.searchRole,searchUser:r.searchUser,readUser:r.readUser,updateUser:r.updateUser,updateMyData:I(dn()),revalidateReport:I(Aa(e)),revalidateUrl:I(Ta()),readPrivateBlocks:I(va(e)),listTablerIcons:Pa("tabler"),readTablerIcon:ka("tabler"),readEnvSecrets:I(xa())}}async function _o(e){try{let t=new Cl.IncomingForm,r=await new Promise((o,n)=>{t.parse(e,(a,s,i)=>{if(a){console.error("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 Ue(e,t){let r=pe(e,"create",t),o=pe(e,"read",t),n=pe(e,"update",t),a=pe(e,"delete",t),s=pe(e,"updateBulk",t),i=pe(e,"createBulk",t);return [N("POST",`create/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(f=>p[f]);return i(d)},[G.EDITOR]),N("POST",`create/${t}`,c=>{let{body:l}=c;return r(l)},[G.EDITOR]),N("GET",`read/${t}`,c=>{let l=c.query,u=K(l.id).map(ee);return o({id:u,include:rr(l.include)})}),N("POST",`update/${t}`,c=>{let{body:l}=c;return n(l)},[G.EDITOR]),N("POST",`update/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(f=>p[f]);return s(d)},[G.EDITOR]),N("DELETE",`delete/${t}`,c=>{let l=ee(c.query.id);return a(l)},[G.EDITOR])]}function Ia(e){let{validateVariantSlug:t}=e;return [...Ue(e,"variant"),N("GET","validate/variant",r=>{let o=r.query,n=ee(o.dimension);return t({dimension:n,slug:wr(o.slug)})},[G.EDITOR])]}function Ca(e){return Ue(e,"datasource").map(r=>({...r,roleRequired:[G.EDITOR]}))}function ct(e,t){let r=`image${Te(t)}Save`,o=e[r];return N("POST",`images/save/${t}`,n=>{let a=n.body;if(!a.content_id)throw new E(400,"Missing 'content_id' parameter.");if(!a.image_id)throw new E(400,"Missing 'image_id' parameter.");return o(a)},[G.EDITOR])}function Dt(e,t){let r=`image${Te(t)}Search`,o=e[r];return N("GET",`images/search/${t}`,async n=>{let a=K(n.query.prompt)[0];if(!a)throw new E(400,"Empty 'prompt' param.");return o({prompt:a,page:ee(n.query.page)})},[G.EDITOR])}function Ba(e){let{readMetadata:t}=e;return N("GET","read/metadata",r=>t(r.query))}function La(e){let{regenerateSearch:t}=e;return N("POST","search/regenerate",()=>t(void 0),[G.EDITOR])}function Oa(e){let{searchReport:t}=e;return N("GET","search/reports",r=>{let o=Ll(r.query);return t(o)})}function Ll(e){return {...or(e),format:K(e.format)[0]}}function Ma(e){let{urlProxy:t}=e;return N("GET","url/proxy",(r,o,n)=>{let{url:a,method:s="GET",wrapper:i="true"}=r.query;if(!a)throw new E(400,"Missing URL parameter");let c=[];return n&&n.user&&n.user.bespoke_roles&&(c=n.user.bespoke_roles),t({url:Array.isArray(a)?a.join(","):a,method:K(s)[0]==="POST"?"POST":"GET",user_roles:c,wrapper:i!=="false",session:n})})}function Na(e){let{readMetadata:t,revalidateReport:r}=e;return N("GET","revalidate/report",async(o,n)=>{let{reportId:a,profilePrefix:s}=o.query;if(!a||!s)throw new E(400,"Missing URL parameter in revalidate factory: reportId or profilePrefix");try{let i=parseInt(`${a}`,10),c=`${s}`.split("/").filter(m=>m!=="").join("/"),l=[],u=await t({}).then(m=>m.ok?m.data.data.find(R=>R.id===i):[]);u&&u.mode===Be.UNILATERAL&&u.dimensions.forEach(m=>{m.variants.forEach(R=>{l.push({prefix:c,variantId:R.id,variantSlug:R.slug});});});let p=await r({profilePrefix:c,reportId:i,variantPaths:l}),d=[],f=0;return p.ok&&(f=p.data.paths.length,d=p.data.paths.slice(0,5),Promise.all(p.data.paths.map(m=>{let R;try{R=n.revalidate(m,{unstable_onlyGenerated:!0});}catch(g){console.error("error",m,g);}return R}))),{ok:!0,status:200,data:{reportId:a,revalidated:f,samples:d}}}catch(i){throw console.error(i),new E(500,"Error revalidating")}},[G.EDITOR])}function Da(){return N("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.error(o),new E(500,"Error revalidating")}else throw new E(400,"Missing target parameter in revalidate factory")},[G.ADMIN,G.EDITOR,G.WRITER])}function lt(e=process.env){let t=e.BESPOKE_JWT_SECRET;return t||(console.warn("WARNING: Using default BESPOKE_JWT_SECRET. This is insecure and not recommended for production environments."),"BESPOKE_JWT_SECRET")}var{localeDefault:Ml}=j(),Ua=lt();function Fa(e){let{readPrivateBlocks:t}=e;return N("POST","read/blocks/private",(r,o,n)=>{let{userToken:a}=r.body,s=null;if(a&&Ua)try{let l=dc.verify(a,Ua);s=typeof l=="object"&&l!==null&&"roles"in l?l.roles:[];}catch(l){console.error("Failed to verify user token:",l);}if(!s&&(!n||!n.user))throw new E(401,"Unauthorized. Must be logged in or provide a valid token.");let i=a&&s?s:n&&n.user?n.user.bespoke_roles:[],c={report_id:parseInt(r.body.report_id,10),locale:r.body.locale||Ml,roles:i,section_id:r.body.section_id||[]};return t(c)})}function Va(e){let{readEnvSecrets:t}=e;return N("GET","read/secrets",()=>t({}),[G.EDITOR])}function $a(e){let{searchRole:t}=e;return N("GET","auth/search/roles",(r,o)=>t(""),[G.EDITOR,G.ADMIN])}function za(e){let{searchUser:t}=e;return N("GET","auth/search/users",r=>t({query:r.query.query,role_id:r.query.role_id,page:r.query.page||0}),[G.ADMIN])}function qa(e){let{readUser:t}=e;return N("GET","auth/read/user",r=>t(r.query.user_id),[G.ADMIN])}function Ga(e){let{updateUser:t}=e;return N("POST","auth/update/user",async r=>{let o=r.body;return await t(o)},[G.ADMIN])}function Ka(e){let{updateUser:t,readUser:r}=e;return N("POST","auth/update/me",async(o,n,a)=>{let{report_id:s,user_metadata:i}=o.body,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),{ok:!0,status:200,wrapper:!0,data:{ok:!0,message:"User & session updated"}}}catch(l){return {ok:false,status:500,error:l.message}}},[])}async function Nl(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(t){throw console.error("Error generating PDF:",t),t}}function ja(){return N("POST","pdf",async(e,t)=>{let{slugs:r,path:o}=e.body;if(!r||!o)throw new E(400,"Missing path parameter in request.");{new URL(o,e.headers.origin);return {ok:true,status:200,data:await Nl()}}})}function Ha(e,t){let r=`list${Te(t)}Icons`,o=e[r];return N("GET",`list/icons/${t}`,async()=>o({}),[G.EDITOR])}function Wa(e,t){let r=`read${Te(t)}Icon`,o=e[r];return N("GET",`read/icons/${t}/icon.svg`,async n=>o({provider:t,name:n.query.name}))}function Ja(){return N("GET","report",async(e,t)=>{let{report:r,prefix:o,locale:n}=e.query;if(!r)throw new E(400,"Missing report parameter.");if(!o)throw new E(400,"Missing report parameter.");if(!n)throw new E(400,"Missing report parameter.");try{let s=await(await fetch(`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${n}${o}${r}`)).text(),l=new Dl().parseFromString(s,"text/html").getElementById("__NEXT_DATA__")?.textContent,u=JSON.parse(l).props;return {ok:!0,status:200,data:{variables:u.pageProps.initialState.variables,status:u.pageProps.initialState.status}}}catch(a){throw console.error(a),new E(500,"Couldn't find page cache")}})}var Fl=lt();function Vl(e){let t={email:e.user.email,name:e.user.name,roles:e.user.bespoke_roles||[]};return dc.sign(t,Fl,{expiresIn:"1min"})}function Ya(){return N("POST","users/generate-token",async(e,t,r)=>{if(!r||!r.user)throw new E(401,"Unauthorized. Must be logged in to generate a token.");try{return {ok:!0,status:200,wrapper:!1,data:{token:Vl(r)}}}catch(o){throw console.error("Error generating token:",o),new E(500,"Internal Server Error")}})}var zl=lt(),ql=e=>!!dc.verify(e,zl);function Qa(){return N("POST","users/validate-token",async(e,t)=>{let{token:r}=e.body;try{return ql(r)?{ok:!0,status:200,wrapper:!1,data:{success:!0}}:{ok:!1,status:401,error:"Invalid token"}}catch{return {ok:false,status:401,error:"Invalid token"}}})}var jl=Ce();function wo(e,t){return `${e.toUpperCase()} ${t.toLowerCase()}`}function Hl(e,t){let r=Nt(e,t);return Object.fromEntries([...Ue(r,"block"),...Ue(r,"dimension"),...Ue(r,"formatter"),...Ue(r,"report"),...Ue(r,"section"),...Ca(r),...Ia(r),...ca(r),Oa(r),Ba(r),La(r),ct(r,"flickr"),ct(r,"local"),ct(r,"unsplash"),ct(r,"upload"),ct(r,"adobe"),ct(r,"pixabay"),Dt(r,"flickr"),Dt(r,"local"),Dt(r,"unsplash"),Dt(r,"adobe"),Dt(r,"pixabay"),Ma(r),$a(r),za(r),qa(r),Ga(r),Ka(r),Na(r),Da(),Fa(r),ja(),Ha(r,"tabler"),Wa(r,"tabler"),Ja(),Va(r),Ya(),Qa()].map(({handler:o,method:n,path:a,roleRequired:s})=>[wo(n,a),{handler:o,roleRequired:s}]))}function Wl(e){let t=rt().then(r=>Hl(r,e));return async function(o,n){await Gl(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(u=>{let p=[].concat(i).join("/"),d=wo(s,p);return u[d]});if(l){let u=await ye(o,n,e);if(l.roleRequired){if(!u)return n.status(401).json({error:"Unauthorized. Must be logged in."});let p=u&&u.user&&u.user.bespoke_roles&&Array.isArray(u.user.bespoke_roles)?u.user.bespoke_roles:[];if(Array.isArray(l.roleRequired)&&l.roleRequired.length>0&&!yr(p,l.roleRequired))return n.status(402).json({error:"Forbidden. Not enough roles."})}if(l.handler)return ["POST","DELETE"].includes(s)&&(o.body=await _o(o)),Promise.resolve(o).then(p=>l.handler(p,n,u||void 0)).then(async p=>{if(p&&"error"in p)throw new E(p.status,p.error);if(p.ok)if(p.data instanceof Buffer){let d=await Kl(p.data),f=Buffer.byteLength(p.data);n.writeHead(p.status,{"Content-Type":d?d.mime:"image/jpeg","Content-Length":f.toString()}).send(p.data);}else o.url&&o.url.indexOf("/icon.svg?name=")>0?(n.setHeader("Content-Type","image/svg+xml"),n.status(p.status).send(p.data)):n.status(p.status).json(p.wrapper?{data:p.data}:p.data);}).catch(p=>{jl&&console.error("Backend Error",p),n.status(p.code).json({error:p.message});})}}else i||await t.then(console.info);return n.status(404).json({error:"No matching route",path:i,query:c})}}var Jl=e=>{let t=e;return async function(r,o){let n=await t({test:"pala"});return o.json(n)}},Yl=Jl;var St={};Ys(St,{addBlockToState:()=>fr,addRunConsumersRunning:()=>Ds,cloneEntity:()=>Is,createEntity:()=>Ps,deleteEntity:()=>xs,deleteQueryParam:()=>mp,readEntity:()=>oe,readEnvSecrets:()=>vp,readMember:()=>qe,readMetadata:()=>mr,readPrivateBlocks:()=>Ep,readUser:()=>Rp,recalculateVariables:()=>Vs,removeBlocksFromState:()=>Ge,removeDataSourceLogic:()=>gr,removeRunConsumersRunning:()=>Us,reportSearch:()=>up,resetSectionState:()=>Ns,revalidateReport:()=>Tp,revalidateUrl:()=>Ap,searchMember:()=>dp,searchRegenerate:()=>pp,searchRole:()=>yp,searchUser:()=>hp,setCurrentLocale:()=>ip,setPreferredLocale:()=>cp,setPreviews:()=>sp,setQueryParam:()=>fp,setSectionState:()=>Ms,setStatus:()=>Os,updateEntity:()=>ks,updateMyData:()=>Sp,updateUser:()=>bp,urlProxy:()=>gp,variantValidateSlug:()=>lp});function Ee(e,t){return e.request(t).then(r=>{let{status:o,data:n}=r;return "error"in n?{ok:false,status:o,error:n.error}:{ok:true,status:o,wrapper:n.wrapper,data:n.data}},r=>{if("isAxiosError"in r){let{status:o,data:n}=r.response||{status:500};return {ok:false,status:o,error:n?.error??r.message}}return {ok:false,status:500,error:r.message}})}function te(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>Ee(e,{...o,method:"GET",params:r?r(n):n})}function re(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>Ee(e,{...o,method:"POST",data:n})}function Fe(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>Ee(e,{...o,method:"DELETE",params:r?r(n):n})}function ut(e,t){return r=>Ee(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function Ut(e,t){return r=>Ee(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function Za(e,t){return ()=>Ee(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function Xa(e,t){return r=>Ee(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var pt=e=>({id:e}),Zl=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 sr(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"),createDatasource:re(t,"create/datasource"),deleteBlock:Fe(t,"delete/block",pt),deleteDimension:Fe(t,"delete/dimension",pt),deleteFormatter:Fe(t,"delete/formatter",pt),deleteReport:Fe(t,"delete/report",pt),deleteSection:Fe(t,"delete/section",pt),deleteVariant:Fe(t,"delete/variant",pt),deleteDatasource:Fe(t,"delete/datasource",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"),readDatasource:te(t,"read/datasource"),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"),updateDatasource:re(t,"update/datasource"),searchReport:te(t,"search/reports"),validateVariantSlug:te(t,"validate/variant"),readMember:te(t,"read/members",Zl),readMemberImage:te(t,{url:"member/image",responseType:"blob"}),searchMember:te(t,"search/members"),updateMember:te(t,"update/members"),imageLocalSearch:Ut(t,"local"),imageLocalSave:ut(t,"local"),imageFlickrSearch:Ut(t,"flickr"),imageFlickrSave:ut(t,"flickr"),imageUnsplashSearch:Ut(t,"unsplash"),imageUnsplashSave:ut(t,"unsplash"),imageUploadSave:ut(t,"upload"),imageAdobeSearch:Ut(t,"adobe"),imageAdobeSave:ut(t,"adobe"),imagePixabaySearch:Ut(t,"pixabay"),imagePixabaySave:ut(t,"pixabay"),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:Za(t,"tabler"),readTablerIcon:Xa(t,"tabler"),readEnvSecrets:te(t,"read/secrets")}}var tu=rr(process.env.REPORTS_LOGGING),dt=ru;function ru(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=he(a);try{if(t){let l=new Proxy(console,{get(p,d){return ou(d,"log","debug","info","warn","error")?(...f)=>{i.push(`${d} ${Date.now()} - ${f.map(m=>format(m)).join(" ")}`),tu&&p[d](...f);}:p[d]}}),u;return n?u=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,Ye,o,c,n):u=new Function(e,"console","libs","formatters","locale",r)(t,l,Ye,o,c),typeof u=="object"&&Object.keys(u).length>0&&Object.assign(s,u),{vars:s,error:null,log:i,output:u}}return {vars:s,error:"Invalid API Link",log:i}}catch(l){return {vars:s,error:l.message,log:i}}}function ou(e,...t){return t.includes(e)}var Po=(e,t,r)=>{let{variables:o}=r,n=s=>s.allowed==="never"?false:!s.allowed||s.allowed==="always"||o[s.allowed],a={...e};return Object.keys(a).forEach(s=>{typeof a[s]=="string"?a[s]=be(a[s],t,r):Array.isArray(a[s])?a[s]=a[s].filter(n).map(i=>typeof i=="object"?Po(i,t,r):typeof i=="string"?be(i,t,r):i):typeof a[s]=="object"&&a[s]!==null&&!(a[s]instanceof Date)&&(a[s]=Po(a[s],t,r));}),a},Nr=Po;var es=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var nu=(e,t,r)=>{if(!r)return false;if(e===Ze.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))},ko=nu;function xo(e,t,r,o,n=false){let{variables:a}=he(o),s=Nr({logic:t},r,o).logic,i=dt("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i,p=c.type||Ze.SINGLE,d=c.component||"Selector",f=c.hideLabel||"false",m=c.resetSectionVars||"false",R=c.name||"Unlabeled Selector",g=es(c.options||[]),b=_=>p===Ze.MULTI&&!Array.isArray(_)?[_]:_,k=c.defaultValue,v;if(k&&(k=b(k),ko(p,k,g)&&(v=k)),!v){let _=g&&g[0]&&g[0].id||g[0]||"";v=b(_);}if(n&&typeof window<"u"){let _=`selector${e}id`,z=new URLSearchParams(window.location.search),D=Object.fromEntries(z)[_];D&&!ko(p,D,g)&&D!==void 0&&(z.delete(_),window.history.replaceState(null,null,`?${z.toString()}`));}return {config:{name:R,type:p,options:g,defaultValue:v,component:d,hideLabel:f,resetSectionVars:m},log:l,error:u}}function Io(e,t,r){if(!e)return false;let o=Array.isArray(r)?r:r.split(",");return Array.isArray(o)&&o.every(n=>e.map(a=>`${a[`${t} ID`]}`).includes(n))}function Co(e,t,r,o,n=false){let{variables:a}=he(o),s=Nr({logic:t},r,o).logic,i=dt("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i;if(n&&typeof window<"u"){let d=`multihierarchySelector${e}-value`,f=`multihierarchySelector${e}-type`,m=new URLSearchParams(window.location.search),R=Object.fromEntries(m),g=R[d],b=R[f];g&&g!==void 0&&b&&b!==void 0&&!Io(c.data,b,g)&&(m.delete(d),m.delete(f),window.history.replaceState(null,null,`?${m.toString()}`));}return {config:c,log:l,error:u}}var au=(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===Ze.MULTI){let l=s?s.split(","):r.defaultValue,u=r.options.filter(p=>l.includes(p.id));return {[`selector${e}id`]:l,[`selector${e}label`]:(u||[]).map(p=>p.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}},ts=au;var su=(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,u=s||c,p=l?l.split(","):r.defaultValue||[],d=u||r.defaultValueType||"",f=r.data?.filter(m=>p.includes(`${m[`${d} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:p,[`multihierarchySelector${e}label`]:[...new Set((f||[]).map(m=>m[d]))],[`multihierarchySelector${e}type`]:d}},rs=su;var{localeDefault:os,locales:iu}=j(),cu=Object.values(lo),lu=(e,t=os)=>e&&cu.includes(e.type)?{locale:uo,locales:[uo]}:{locale:t,locales:iu},ns=(e,t=os)=>{if(!e)return {};let{locale:r}=lu(e,t);return e.contentByLocale?.[r]?.content};function uu(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 as=uu;function Bo(e){return e.type===M.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}var Ve=rr(process.env.NEXT_PUBLIC_REPORTS_DEBUG),yu=process.env.REPORTS_ORIGIN||"",hu=process.env.NEXT_PUBLIC_REPORTS_AXIOS_RETRIES,ls=5;try{ls=parseInt(`${hu||5}`,10);}catch(e){console.error("Error setting axios retries NEXT_PUBLIC_REPORTS_AXIOS_RETRIES defaults to 5",e);}ss(Fr,{retries:ls,retryDelay:ss.exponentialDelay,onRetry:(e,t,r)=>{console.error("Generator request failed. Retrying... Count: ",e),console.error("URL: ",r.url),console.error(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 Ru=(e,t,r)=>{let o=be(e,t,r);return o.startsWith("http")||(o=`${yu}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:bu}=sr("/api/cms");function Ur(e){return e.ok!==void 0}function Dr(e){this.message=e,this.name="ApiFetchException";}var is=process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0;async function Su(e,t,r="en",o,n){let a=Date.now(),s=e,i,c=de(),l=Ct(),u={envs:{...c,...l}},p=new URL(e),d=new URLSearchParams(p.searchParams.toString());d.has("bespoke_slugs")&&(p.searchParams.delete("bespoke_slugs"),s=p.toString());let f={datasource:void 0};o.find(k=>{if(!k.content?.pattern)return false;try{let v=new RegExp(k.content.pattern,"gm");return v.test(s)?(f.datasource=k,!0):v.test(s)}catch{return false}});let m=n?n.settings:{},R=!!(m&&m.useProxy&&m.useProxy==="true"),g=f.datasource&&typeof f.datasource.content.useProxy=="boolean"?f.datasource.content.useProxy:false,b=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/api/cms/url/proxy?url=${encodeURIComponent(s)}`;if(typeof window=="object"&&(R||g)){let k=await bu({url:s,timeout:is});if(k.ok===true)i=k.data;else throw new Dr(k?.error)}else try{let v={url:s,timeout:is};if(f.datasource){let _=u;if(typeof window<"u")try{let D=await getSession();if(D){let w={user:D.user,status:"authenticated",isLoading:!1,update:async()=>D};_={...u,session:w};}}catch(D){console.warn("Could not retrieve user session:",D);}let B=await kr({vars:["url","libs","session"],logic:f.datasource.content.logic},_)(s);if(B.axiosConfig)v=B.axiosConfig;else throw new Dr(`AxiosConfig is missing in Data Source ${f.datasource.name} (ID: ${f.datasource.id}).`)}let F=await Fr(v);if(F.status===200)F.headers["content-type"]==="text/csv"?i=csvParse(F.data):i=F.data;else throw new Dr("No response for: "+s)}catch(k){throw new Dr(k.message)}if(d.has("bespoke_slugs")){let k=d.get("bespoke_slugs");if(k){let v=k.split(",");if(v.length===3){let[F,_,z]=v,B=jt(i,z);if(B&&Array.isArray(B)){let D=Array.from(new Set(B.map(w=>`${w[_]}`).filter(w=>!["","undefined"].includes(w))));if(D.length>0){let w=D.join("").length>2e3,L=await t({mode:w?"whole":"ids",ids:w?void 0:D,all:false,locale:r,variant:[parseInt(F,10)],output:"lite",limit:D.length+1,allowNulls:true}).then(U=>{let C=[];return Ur(U)?U.ok&&(C=U.data.results):C=U.results,C&&Array.isArray(C)?C:[]}).catch(U=>(console.error(`Error hydrating slugs for Variant: ${F}, Key: ${_}, Accessor: ${z}`),console.error(` Url ${e}`),n&&console.error(` From Section ${n.section_id} and Block ${n.id}`),console.error(U),[]));if(L){let U=Object.fromEntries(L.map(C=>[C.id,`/${C.variant_slug}/${C.slug}`]));B.map(C=>(C.bespoke_slug=U[C[_]]?U[C[_]]:null,C));}}}}}}return {data:i,requestDuration:Date.now()-a,finalUrl:g||R?b:s,apiDataSource:f.datasource?f.datasource:false}}function Eu(e){this.name="BlockException",this.message=e;}async function cs(e,t,r,o,n){let{locale:a,variables:s,query:i}=he(r),c=Tu(e,r,s,t),l=null,u=e.contentByLocale?.logic?.content?.api,p=null,d=null,f=null,m=null,R=null;if(!c)return {outputVariables:{},renderVariables:{},status:{allowed:false,hiddenByCascade:e.id}};if(e.type===M.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:c,hiddenByCascade:e.id}};if(u){f=Ru(u,t,r);let B=f.split("|||").filter(L=>L!==""),D=[];for(let L=0;L<B.length;L++){let U=B[L];new RegExp("^(?:[a-z+]+:)?//","i").test(f)||(U=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${U}`.replace(/([^:]\/)\/+/g,"$1")),D.push(Su(U,o,a,n,e).catch(q=>{throw new Eu(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${s.report_name} (${s.report_id}) failed.
|
|
25
|
+
`)}return global.typesense};async function Dc(){try{if(Lt){let e=await Fr.get(new URL(Lt).origin);if(e?.data["typesense-health"]===!0)return Oe&&console.info(`${Lt} health check is OK. Version: ${e.data.Version}`),!0}else console.error("No envar set TYPESENSE_URL");return !1}catch(e){return console.error("Health check failed:",e.message),false}}async function Uc(){if(Oe&&console.info(`\u{1F3F3}\uFE0F INITIALIZING TYPESENSE SEARCH AGAINST ${Lt}`),!await Dc())throw new Error("TYPESENSE_URL service is not healthy.");let t=Mc.map(r=>(Oe&&console.info(`\u{1F3F3}\uFE0F INITIALIZING SEARCH ${r} LOCALE`),[r,{search:async(n={query:"*",limit:12,offset:0})=>{let a={locale:r,query:n.query,limit:n.limit,offset:n.offset};return n.report&&Array.isArray(n.report)&&n.report.length>0&&(a["report[]"]=n.report.join(",")),n.variant&&Array.isArray(n.variant)&&n.variant.length>0&&(a["variant[]"]=n.variant.join(",")),Oe&&console.info("Typesense URL:",Lt,a),Fr.get(Lt,{params:a}).then(i=>(Oe&&(console.info("Typesense URL:",i.request.res.responseUrl),console.info("Typesense Results",i.data.data.results.length)),i.data.data)).catch(i=>(console.error("Typesense Call Error:",i),[]))}}]));return Object.fromEntries(await Promise.all(t))}var qn=Nc;var{localeDefault:Eo}=j();function Ot(e){let{search:t,report:r}=e;return o;async function o(n){let a=n.origin||"flexsearch",s=process.env.REPORTS_EXTERNAL_SEARCH&&a==="typesense",{query:i,locale:c,preferredLocale:l,limit:u,format:p,visible:d,variant:f,dimension:m,report:R,all:g,noImage:b,includes:k,sort:v,direction:F="ASC",offset:_=0}=n,B=Xt.find(C=>C.locales.includes(c))?.charset||"latin",D=u&&!isNaN(u)?u:20,w=ot(i,B!=="arabic");function L(C){return C.toJSON()}function U(C){let q=C.getContent(c);return {...C.toJSON(),locale:q.locale,name:q.name,attributes:q.attributes,keywords:q.keywords}}if(s){let C=await qn(),q=C[c]||C[Eo],O={query:w===""?"*":w,limit:D,variant:f,report:R,offset:_};return await q.search(O)}else {let C=[],q=await nt(e);if(i&&i!==""&&q[c]){let J=ot(i,B!=="arabic"),ie={query:J,limit:D},V=await q[c].search(ie);if(s?C=V.data.results.map(Q=>parseInt(Q.content_id,10)):C=V.reduce((Q,W)=>Q.concat(W.result),[]),C=hr(C),l&&q[l]){let W=q[l].search(J).reduce((ue,se)=>ue.concat(se.result),[]);W=hr(W),C=hr([...C,...W]);}}let O={...d?{visible:d}:{},...b?{image_id:{[Op.eq]:null}}:{},...f.length?{variant_id:f}:{},...m.length?{dimension_id:m}:{},...R.length?{report_id:R}:{}},P={locale:g?{[Op.ne]:null}:c},H=[];i&&i!==""&&C.length&&v!=="report"?H.push([literal(`array_position(array[${C.join(",")}], "content_id")`),"ASC"]):(v==="report"&&H.push([literal(`COALESCE(NULLIF("report"."settings"->>'order', '')::INTEGER, 999999)`),"ASC"],[literal(`COALESCE(NULLIF("variant"."settings"->>'order', '')::INTEGER, 999999)`),"ASC"]),H.push(["zvalue","DESC NULLS LAST"])),v&&v!=="name"&&v!=="report"&&H.unshift([v,F.toUpperCase()]),i&&i!==""&&(O.content_id=C);let A=[{association:"contentByLocale",where:P,separate:true}];(k||v==="report")&&A.push({association:"report",attributes:["id","name","settings"]},{association:"dimension",attributes:["id","name","settings"]},{association:"variant",attributes:["id","slug","name","settings"]});let S={...O.visible?{visible:O.visible}:{},...O.noImage?{image_id:O.noImage}:{},...O.content_id?{content_id:O.content_id}:{}};if(!O.report_id&&!O.dimension_id&&!O.variant_id&&d){let ie=(await r.findAll({attributes:["id"],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),true)]}})).map(V=>V.id);ie.length>0&&(O.report_id={[Op.notIn]:ie},S.report_id=O.report_id);}let T=[],[x,ne]=await Promise.all([t.findAll({limit:D,offset:_,where:O,include:A,order:H,subQuery:false}),t.findAll({attributes:["variant_id",[fn("COUNT",col("variant_id")),"members_count"]],where:S,group:["variant_id"]})]),ae=ne.map(J=>J.toJSON());if(v==="name"){let J=F.toUpperCase()==="ASC"?1:-1;x.sort((ie,V)=>{let Q=ie.getContent(Eo),W=V.getContent(Eo);return Q&&W?Q.name>W.name?1*J:-1*J:0});}let Z=p==="nested"?L:U;return T=x.map(Z),p!=="nested"&&T.forEach(J=>{let{name:ie,keywords:V,score:Q=.1,zvalue:W}=J;if(ie){let ue=ot(ie),se=Q,le=i.length/ue.length,tn=ue.split("").reduce((ro,rn,on)=>(i.slice(0,on),i.charAt(on)===rn&&(ro+=rn),ro),"").length;ue===i||V&&V.includes(i)?se=1e6:ue.startsWith(i)?se*=20*le:tn&&(se*=tn*le),J.zvalue=se*2+W;}}),{meta:{origin:"flexsearch",...Object.fromEntries(Object.entries(n).map(J=>[J[0],$(J[1])])),variantCount:ae.reduce((J,ie)=>(J[ie.variant_id]=parseInt(ie.members_count,10),J),{})},results:T}}}}function Gn(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:u}=s,p={where:{content_id:i}},d=await o.findOne(p);if(await o.update(s,{where:{content_id:i}}),c){for(let m=0;m<c.length;m++){let R=c[m];await n.update({name:R.name,keywords:R.keywords},{where:{id:R.id,locale:R.locale}});}p={...p,...{include:[{association:"contentByLocale",separate:true}]}};}if(l){if(l.id&&(await t.update({...l},{where:{id:l.id}}),l.contentByLocale))for(let f=0;f<l.contentByLocale.length;f++){let m=l.contentByLocale[f];await r.update({meta:m.meta},{where:{id:m.id,locale:m.locale}});}}else !u&&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(p)}}function Kn(e){return {ingestMembers:Fn(e),readMember:Vn(e),searchMember:Ot(e),updateMember:Gn(e),readMemberImage:$n(e)}}var at={include:[{association:"contentByLocale",separate:true},{association:"inputs",include:[{association:"contentByLocale",separate:true}]},{association:"consumers",include:[{association:"contentByLocale",separate:true}]}]},er=e=>({include:[{association:"variants",separate:true,attributes:{include:[[fn("COUNT",col("members.id")),"members_count"]]},include:[{model:e,as:"members",attributes:[]}],group:["variant.id"]}],order:[["ordering","ASC"]]}),tr={include:[{association:"blocks",separate:true,...at}]},Br=e=>({include:[{association:"dimensions",separate:true,...er(e)},{association:"sections",separate:true,...tr}]});var Re=[{association:"image",attributes:{exclude:["splash"]},include:[{association:"contentByLocale"}]},{association:"contentByLocale"}];function jn(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(u){let{locales:p,...d}=u;return (await t.create({...d,consumers:[],inputs:[],contentByLocale:p.map(m=>({locale:m}))},{include:at.include})).toJSON()}async function a(u){let p=u.map(f=>{let{locales:m,...R}=f;return {...R,consumers:[],inputs:[],contentByLocale:m.map(b=>({locale:b}))}});return (await t.bulkCreate(p,{include:at.include})).map(f=>f.toJSON())}async function s({id:u,include:p}={}){let d=u==null?[]:[].concat(u),f=await t.findAll({where:d.length>0?{id:d}:void 0,include:p?at.include:void 0});if(d.length===0||f.length===d.length)return f.map(g=>g.toJSON());let m=f.map(g=>g.id),R=d.filter(g=>!m.includes(g));throw new E(404,`Block(id=[${R}]) does not exist.`)}async function i(u){let{id:p,contentByLocale:d,consumers:f,inputs:m,inputAction:R,...g}=u,b=await t.findByPk(p,{include:at.include,rejectOnEmpty:true});if(b.set(g),d){let k=Object.values(d);await r.bulkCreate(k,{updateOnDuplicate:["content"]});}return R&&(R.operation==="create"?await o.create(R.input):await o.destroy({where:R.input})),await b.save(),await b.reload(),b.toJSON()}async function c(u){let p=u.map(m=>{let{id:R,contentByLocale:g,consumers:b,inputs:k,inputAction:v,...F}=m;return {id:R,contentByLocale:g,inputAction:v,...F}}),d=await t.findAll({where:{id:{[Op.or]:p.map(m=>m.id)}},include:at.include}),f=[];for(let m of d){let R=p.filter(g=>g.id===m.id);for(let g=0;g<R.length;g++){let b=R[g],{id:k,contentByLocale:v,inputAction:F,..._}=b;if(F&&(F.operation==="create"?await o.create(F.input):await o.destroy({where:F.input})),v){let z=Object.values(v);await r.bulkCreate(z,{updateOnDuplicate:["content"]});}m.set(_),await m.save(),await m.reload(),f.push(m.toJSON());}}return f}async function l(u){let p=await t.findByPk(u,{rejectOnEmpty:true});return await p.destroy(),{id:u,parentType:"section",parentId:p.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,ordering:i.ordering||0,variants:[]},{include:er(r).include})).toJSON()}async function n({id:i,include:c}={}){let l=i==null?[]:[].concat(i),u=await t.findAll({where:l.length>0?{id:l}:void 0,include:c?er(r).include:void 0});if(l.length===0||u.length===l.length)return u.map(f=>f.toJSON());let p=u.map(f=>f.id),d=l.filter(f=>!p.includes(f));throw new E(404,`Dimension(id=[${d}]) does not exist.`)}async function a(i){let{id:c,variants:l,...u}=i,p=await t.findByPk(c,{include:er(r).include,rejectOnEmpty:false});if(!p)throw new E(404,`Dimension(id=${c}) does not exist.`);return p.set(u),await p.save(),p.toJSON()}async function s(i){let c=await t.findByPk(i,{rejectOnEmpty:false});return await c.destroy(),{id:i,parentType:"report",parentId:c.report_id}}}function Wn(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(p=>p.toJSON());let l=c.map(p=>p.id),u=i.filter(p=>!l.includes(p));throw new E(404,`Formatter(id=[${u}]) does not exist.`)}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:true});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:true})).destroy(),{id:s}}}function Yn(e){let{datasource:t}=e;return {createDatasource:r,readDatasource:o,updateDatasource:n,deleteDatasource:a};async function r(s){return (await t.create(s)).toJSON()}async function o({id:s,include:i}={}){try{let c=s==null?[]:[].concat(s),l=i===!0,u=await t.findAll({attributes:l?["id","name","description","content"]:["id","name","description",[literal("content - 'logic' - 'testUrl' - 'access'"),"content"]],where:c.length>0?{id:c}:void 0,order:[literal("(content->>'order')::integer ASC NULLS LAST")]});if(c.length===0||u.length===c.length)return u.map(f=>f.toJSON());let p=u.map(f=>f.id),d=c.filter(f=>!p.includes(f));throw new E(404,`Datasource(id=[${d}]) does not exist.`)}catch(c){throw new E(500,c)}}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:true});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:true})).destroy(),{id:s}}}var{locales:Hc}=j();function Qn(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:Br(r).include})).toJSON()}async function n({id:i,include:c,locales:l=Hc}={}){let p=(i==null?[]:[].concat(i)).reduce((R,g)=>(R.includes(g)||R.push(g),R),[]),d=await t.findAll({where:p.length>0?{id:p}:void 0,include:c?Br(r).include?.filter(R=>typeof c=="string"?R.association===c:c):void 0});if(p.length===0||d.length===p.length)return d.map(R=>{let g=R.toJSON();return {...g,sections:g.sections.map(b=>({...b,blocks:b.blocks.map(k=>({...k,contentByLocale:Object.keys(k.contentByLocale).reduce((v,F)=>({...v,...[...l,"logic"].includes(F)?{[F]:k.contentByLocale[F]}:{}}),{})}))}))}});let f=d.map(R=>R.id),m=p.filter(R=>!f.includes(R));throw new E(404,`Report(id=${m}) does not exist.`)}async function a(i){let{id:c,dimensions:l,sections:u,...p}=i,d=await t.findByPk(c,{include:Br(r).include,rejectOnEmpty:false});if(!d)throw new E(404,`Report(id=${c}) does not exist.`);return d.set(p),await d.save(),await d.reload(),d.toJSON()}async function s(i){return await(await t.findByPk(i,{rejectOnEmpty:false})).destroy(),{id:i}}}function Zn(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:tr.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?tr.include:void 0});if(c.length===0||l.length===c.length)return l.map(d=>d.toJSON());let u=l.map(d=>d.id),p=c.filter(d=>!u.includes(d));throw new E(404,`Section(id=${p}) does not exist.`)}async function n(s){let{id:i,blocks:c,...l}=s,u=await t.findByPk(i,{include:tr.include,rejectOnEmpty:false});return u.set(l),await u.save(),await u.reload(),u.toJSON()}async function a(s){let i=await t.findByPk(s,{rejectOnEmpty:true});return await i.destroy(),{id:s,parentType:"report",parentId:i.report_id}}}function ta(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:u,name:p,slug:d}=l,f=await c({dimension:u,slug:d});return (await r.create({dimension_id:u,name:p,slug:f.valid?f.candidate:f.suggestion})).toJSON()}async function a({id:l}={}){let u=l==null?[]:[].concat(l),p=await r.findAll({where:u.length>0?{id:u}:void 0,attributes:{include:[[fn("COUNT",col("members.id")),"members_count"]]},include:[{model:o,attributes:[],as:"members"}],group:["variant.id"]});if(u.length===0||p.length===u.length)return p.map(m=>m.toJSON());let d=p.map(m=>m.id),f=u.filter(m=>!d.includes(m));throw new E(404,`Variant(id=${f}) does not exist.`)}async function s(l){let{id:u,...p}=l,d=await r.findByPk(u,{include:[{association:"dimension"}],rejectOnEmpty:true});p.settings=Zt(p.settings);let f=p.settings.doIngest;return p.settings.doIngest=false,await d.update(p),f&&(await t.ingestMembers(d),await nt(e,true)),await d.reload(),d.toJSON()}async function i(l){let u=await r.findByPk(l,{rejectOnEmpty:true});return await u.destroy(),nt(e,true),{id:l,parentType:"dimension",parentId:u.dimension_id}}async function c({dimension:l,slug:u}){let p=await r.findAll({attributes:["slug",[fn("COUNT",col("id")),"slugCount"]],where:{dimension_id:{[Op.ne]:l}},group:"slug"}).then(R=>Object.fromEntries(R.map(g=>{let b=g.getDataValue("slugCount");return [g.slug,Number.parseInt(`${b}`,10)]}))),d=u,f=1,m=true;for(;p[d];)m=false,d=`${u}-${f}`,f++;return {candidate:u,dimension_id:l,suggestion:d,valid:m}}}function ra(e){let t={...jn(e),...Hn(e),...Wn(e),...Yn(e),...Kn(e),...Qn(e),...Zn(e)},r={...t,...ta(e,t)};return {createFormatter:I(r.createFormatter),deleteFormatter:I(r.deleteFormatter),readFormatter:I(r.readFormatter),updateFormatter:I(r.updateFormatter),createReport:I(r.createReport),deleteReport:I(r.deleteReport),readReport:I(r.readReport),updateReport:I(r.updateReport),createDimension:I(r.createDimension),deleteDimension:I(r.deleteDimension),readDimension:I(r.readDimension),updateDimension:I(r.updateDimension),createVariant:I(r.createVariant),readVariant:I(r.readVariant),updateVariant:I(r.updateVariant),deleteVariant:I(r.deleteVariant),validateVariantSlug:I(r.validateVariantSlug),createSection:I(r.createSection),readSection:I(r.readSection),updateSection:I(r.updateSection),deleteSection:I(r.deleteSection),createBlock:I(r.createBlock),deleteBlock:I(r.deleteBlock),readBlock:I(r.readBlock),updateBlock:I(r.updateBlock),createBulkBlock:I(r.createBulkBlock),updateBulkBlock:I(r.updateBulkBlock),readMember:I(r.readMember),searchMember:I(r.searchMember),updateMember:I(r.updateMember),readMemberImage:I(r.readMemberImage),createDatasource:I(r.createDatasource),deleteDatasource:I(r.deleteDatasource),readDatasource:I(r.readDatasource),updateDatasource:I(r.updateDatasource)}}var oa=e=>{throw console.error("/methods/helpers/uploadImage.ts:",e),new Error(e.message)},Yc=Number(process.env.NEXT_PUBLIC_IMAGE_SPLASH_WIDTH)||1400,Qc=Number(process.env.NEXT_PUBLIC_IMAGE_THUMB_WIDTH)||400,Zc=async(e,t,r)=>{let o=[{type:"splash",res:Yc},{type:"thumb",res:Qc}];for(let n of o){let a=await Jc(r).resize(n.res).toFormat("webp").webp({lossless:true}).toBuffer().catch(oa);await e.image.update({[n.type]:a},{where:{id:t}}).catch(oa);}},ve=Zc;var na="SECTION_ALLOWED";var aa=["4","5","7","8","9","10"],tl=aa.join(),{locales:rl}=j(),Me;if(process.env.FLICKR_API_KEY)try{Me=new el(process.env.FLICKR_API_KEY);}catch(e){throw console.error("Flickr ERROR:",e),new Error(e.message)}async function sa(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Me)throw console.warn("Flickr is not initialized. Check the credentials"),new Error("Flickr is not initialized. Check the credentials");let o=r.prompt,a=(await Me.photos.search({text:o,license:tl,sort:"relevance",per_page:24,page:r.page,content_types:"0",orientation:"landscape"}).then(l=>l.body)).photos.photo,s=a.reduce((l,u)=>l.concat(Me.photos.getSizes({photo_id:u.id})),[]),c=(await Promise.all(s).then(l=>l)).reduce((l,u,p)=>{let d=u.body.sizes.size.find(f=>f.label==="Small 320");return d&&l.push({id:a[p].id,source:d.source}),l},[]);return {meta:{prompt:$(r.prompt),page:$(`${r.page}`)},results:c}}catch(r){throw console.error(r),new Error("Error in search flickr provider")}}async function ia(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:$(`${r}`)||"",id:$(`${o}`)||""},s=`https://flic.kr/p/${Xc.int_to_base58(o)}`;if(!Me)throw new Error("Flickr API Key not configured");let i=await Me.photos.getInfo({photo_id:o}).then(l=>l.body),c;if(i)if(aa.includes(i.photo.license)){let l=await e.search.findOne({where:{content_id:r}}),u=await e.image.findOne({where:{url:s}});if(l){if(u)await e.search.update({image_id:u.id},{where:{content_id:r}});else {let d=await Me.photos.getSizes({photo_id:o}).then(_=>_.body),f=d.sizes.size.find(_=>parseInt(_.width,10)>=1600);if(f||(f=d.sizes.size.find(_=>parseInt(_.width,10)>=1e3)),f||(f=d.sizes.size.find(_=>parseInt(_.width,10)>=500)),!f||!f.source)throw new Error("Flickr Source Error, try another image.");let m=await fetch(f.source);if(!m.ok)throw new Error("Flickr Error retrieving image, try another image.");let R=await m.arrayBuffer(),b=(await Me.photos.licenses.getInfo().then(_=>_.body.licenses.license)).find(_=>_.id===parseInt(i.photo.license,10)),k={url:s,author:i.photo.owner.realname||i.photo.owner.username,license:b?`${b.name}: ${b.url}`:""},v=await e.image.create(k);await e.image_content.destroy({where:{id:v.id}});let F=rl.map(_=>({id:v.id,locale:_,meta:i.photo.title._content}));await e.image_content.bulkCreate(F),await e.search.update({image_id:v.id},{where:{content_id:r}}),await ve(e,v.id,R);}let p=await e.search.findOne({where:{content_id:r},include:Re});p&&p.image&&(p.image.thumb=!!p.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.error(r),new Error("Error in save flickr provider")}}function N(e,t,r,o){return {method:e,path:t,handler:r,roleRequired:o}}function ee(e){let t=Number.parseInt(`${e||""}`,10);if(Number.isNaN(t)||!Number.isFinite(t))throw new E(400,`Invalid numeric parameter: ${e}`);return t}function K(e){return e==null||e===""?[]:Array.isArray(e)?e:e.toString().split(",")}var{localeDefault:De}=j();function ca(e){let{readMember:t,searchMember:r,updateMember:o,readMemberImage:n}=e;return [N("GET","read/members",async a=>{let s=ol(a.query),i=s[s.mode]||[],c=s.mode==="whole";if(!c&&i.length===0)throw new E(400,`The request is missing the '${s.mode}' parameter.`);if(!c&&i.length>20&&!s.variant)throw new E(400,`You can look for up to 20 '${s.mode}' in a single request.`);return t(s)}),N("GET","search/members",a=>{let s=or(a.query);return r(s)}),N("POST","update/member",a=>{let{body:s}=a;return o(s)},[G.EDITOR]),N("GET","member/image",a=>{let s=K(a.query.size)[0];return n({member:ee(a.query.member),size:s&&s==="splash"?"splash":"thumb"})})]}function ol(e){let t=K(e.locale)[0]||De,r=t==="all"||rr(e.all),o=K(e.mode)[0],a=(K(e.output)[0]||"full")==="lite"?"lite":"full",s=parseInt(K(e.related)[0],10)||5,i=rr(e.allowNulls,{default:false}),c=K(e.variant).map(ee);if(c.length===0&&(c=K(e["variant[]"]).map(ee)),o==="ids")return {all:r,mode:o,variant:c,output:a,locale:r?De:$(t),ids:K(e.ids||e["ids[]"]),allowNulls:i};if(o==="content_ids")return {all:r,mode:o,variant:c,output:a,locale:r?De:$(t),content_ids:K(e.content_ids||e["content_ids[]"]).map(ee),allowNulls:false};if(o==="slugs")return {all:r,mode:o,variant:c,output:a,locale:r?De:$(t),slugs:K(e.slugs||e["slugs[]"]).map(l=>{let[u,p]=l.split("/");return {variantSlug:u,memberSlug:p}}),allowNulls:false};if(o==="related")return {all:r,mode:o,locale:r?De:$(t),related:s,current_ids:K(e.current_ids||e["current_ids[]"]).map(ee),include_ids:K(e.include_ids||e["include_ids[]"]).map(ee),report_ids:K(e.report_ids||e["report_ids[]"]).map(ee),dimension_ids:K(e.dimension_ids||e["dimension_ids[]"]).map(ee),variant_ids:K(e.variant_ids||e["variant_ids[]"]).map(ee),output:a,allowNulls:false};if(o==="whole")return {all:r,mode:o,variant:c,locale:r?De:$(t),output:a,allowNulls:i};throw new E(400,`Invalid mode: '${o}'`)}function or(e){let t=K(e.locale)[0]||De||"en",r=t==="all",o=K(e.format)[0],n=o?o==="nested":r,a=K(e.variant).map(ee);a.length===0&&(a=K(e["variant[]"]).map(ee));let s=K(e.dimension).map(ee);s.length===0&&(s=K(e["dimension[]"]).map(ee));let i=K(e.report).map(ee);i.length===0&&(i=K(e["report[]"]).map(ee));let c=e.origin==="typesense"?"typesense":"flexsearch";return {query:K(e.query||e.q)[0]||"",locale:r?De:t,preferredLocale:K(e.preferredLocale)[0],limit:K(e.limit).map(ee)[0]??5,format:n?"nested":"plain",includes:rr(e.includes,{default:true}),visible:rr(e.visible,{default:true}),noImage:rr(e.noImage,{default:false}),variant:a,dimension:s,report:i,all:r,sort:K(e.sort)[0],direction:K(e.direction)[0],offset:Number(e.offset||0),origin:c}}async function la(e,t){let r=Ot(e),o=or({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:$(o.query)},results:a}}async function ua(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:Re}).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:sl}=j(),nr;if(process.env.UNSPLASH_API_KEY)try{nr=createApi({accessKey:process.env.UNSPLASH_API_KEY});}catch(e){throw console.error("Unsplash error:",e),new Error(e.message)}async function pa(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!nr)throw new Error("Unsplash API Key not configured");let o=r.prompt,a=(await nr.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:$(r.prompt),page:$(`${r.page}`)},results:a}}catch(r){throw console.error(r),new Error("Error in search unsplash provider")}}async function da(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:$(`${r}`)||"",id:$(`${o}`)||""};if(!nr)throw console.warn("Unsplash is not initialized. Check the credentials"),new Error("Unsplash is not initialized. Check the credentials");let a=await nr.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 p=await Fr.get(a.urls.full,{responseType:"arraybuffer"}).then(R=>R.data),d={url:c,author:a.user.name||a.user.username,license:"Free Unsplash license: https://unsplash.com/license"},f=await e.image.create(d);await e.image_content.destroy({where:{id:f.id}});let m=sl.map(R=>({id:f.id,locale:R,meta:a.description||a.alt_description}));await e.image_content.bulkCreate(m),await e.search.update({image_id:f.id},{where:{content_id:r}}),await ve(e,f.id,p);}let u=await e.search.findOne({where:{content_id:r},include:Re});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.error(r),new Error("Error in save unsplash provider")}}var{locales:cl}=j();async function ma(e,t){try{let{content_id:r,image_source:o,files:n}=t,a={content_id:$(`${r}`)||""};if(await e.search.findOne({where:{content_id:r}})&&n){let c=await il.readFileSync(n.file.filepath),l={url:o,author:"",license:""},u=await e.image.create(l);await e.image_content.destroy({where:{id:u.id}});let p=cl.map(d=>({id:u.id,locale:d,meta:""}));await e.image_content.bulkCreate(p),await e.search.update({image_id:u.id},{where:{content_id:r}}),await ve(e,u.id,c);}let i=await e.search.findOne({where:{content_id:r},include:Re});return i&&i.image&&(i.image.thumb=!!i.image.thumb),{meta:{...a},results:i}}catch(r){throw console.error(r),new Error("Error in save upload provider")}}var{locales:ll}=j();var fa=async e=>{let t={"x-api-key":process.env.ADOBE_STOCK_API_KEY||"EMPTY_ADOBE_KEY","X-Product":"BespokeApp/0.1"};return t};var ar;if(process.env.ADOBE_STOCK_API_KEY)try{ar={search:async(e,t)=>await Fr.get("https://stock.adobe.io/Rest/Media/1/Search/Files",{headers:await fa(!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 fa(!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 ga(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!ar)throw new Error("Adobe API Key not configured");let n=(await ar.search(r.prompt,r.page)).map(a=>({id:a.id,source:a.thumbnail_url}));return {meta:{prompt:$(r.prompt),page:$(`${r.page}`)},results:n}}catch(r){throw console.error(r),new Error("Error in search Adobe provider")}}async function ya(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:$(`${r}`)||"",id:$(`${o}`)||""};if(!ar)throw console.warn("Adobe is not initialized. Check the credentials"),new Error("Adobe is not initialized. Check the credentials");let a=await ar.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 p=await Fr.get(a.thumbnail_1000_url,{responseType:"arraybuffer"}).then(R=>R.data),d={url:c,author:a.creator_name,license:"ADOBE, TO-DO"},f=await e.image.create(d);await e.image_content.destroy({where:{id:f.id}});let m=ll.map(R=>({id:f.id,locale:R,meta:a.title||a.description}));await e.image_content.bulkCreate(m),await e.search.update({image_id:f.id},{where:{content_id:r}}),await ve(e,f.id,p);}let u=await e.search.findOne({where:{content_id:r},include:Re});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.error(r),new Error("Error in save adobe provider")}}var{locales:ul}=j(),Lr=process.env.PIXABAY_API_KEY,ha="https://pixabay.com/api/";async function Ra(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Lr)throw new Error("Pixabay API Key not configured");let o=encodeURIComponent(r.prompt),n=`${ha}?key=${Lr}&q=${o}&per_page=${24}&page=${r.page}&image_type=photo&orientation=horizontal&safesearch=true`,i=(await Fr.get(n)).data.hits?.map(c=>({id:c.id,source:c.previewURL||c.webformatURL}))||[];return {meta:{prompt:$(r.prompt),page:$(`${r.page}`)},results:i}}catch(r){throw console.error(r),new Error("Error in search pixabay provider")}}async function ba(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:$(`${r}`)||"",id:$(`${o}`)||""};if(!Lr)throw console.warn("Pixabay is not initialized. Check the credentials"),new Error("Pixabay is not initialized. Check the credentials");let a=`${ha}?key=${Lr}&id=${o}`,i=(await Fr.get(a)).data,c;if(i.hits&&i.hits.length>0){let l=i.hits[0],u=await e.search.findOne({where:{content_id:r}}),p=l.pageURL,d=await e.image.findOne({where:{url:p}});if(u){if(d)await e.search.update({image_id:d.id},{where:{content_id:r}});else {let m=l.largeImageURL||l.webformatURL||l.imageURL;if(!m)throw new Error("Pixabay image URL not available");let R=await Fr.get(m,{responseType:"arraybuffer"}).then(v=>v.data),g={url:p,author:l.user||`Pixabay User ${l.user_id}`,license:"Free Pixabay License: https://pixabay.com/service/license/"},b=await e.image.create(g);await e.image_content.destroy({where:{id:b.id}});let k=ul.map(v=>({id:b.id,locale:v,meta:l.tags||l.description||""}));await e.image_content.bulkCreate(k),await e.search.update({image_id:b.id},{where:{content_id:r}}),await ve(e,b.id,R);}let f=await e.search.findOne({where:{content_id:r},include:Re});f&&f.image&&(f.image.thumb=!!f.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Image not found in Pixabay");return {meta:{...n},results:c}}catch(r){throw console.error(r),new Error("Error in save pixabay provider")}}var pl={local:ua,flickr:ia,unsplash:da,upload:ma,adobe:ya,pixabay:ba};function st(e,t){let r=pl[t];if(!r)throw new E(500,`Wrong provider dbImageSaveFactory.ts: ${t}`);return I(o=>r(e,o))}var dl={local:la,flickr:sa,unsplash:pa,adobe:ga,pixabay:Ra};function Mt(e,t){let r=dl[t];if(!r)throw new E(500,`Wrong provider dbImageSearchFactory.ts: ${t}`);return I(o=>r(e,o))}var bl=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 Mr(e){let{report:t,search:r}=e;return o;async function o(n){let a=n?.report_id?Number(n.report_id):void 0,s=!(typeof n?.count<"u"&&(n.count==="false"||n.count===false)),i={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"),false),literal("NOT (settings::jsonb ? 'hide')")]},order:[["ordering","ASC"]],include:[{attributes:["id","name","ordering"],association:"dimensions",separate:true,order:[["ordering","ASC"]],include:[{attributes:["id","name","slug",[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"]],association:"variants",separate:true,group:["variant.id"],order:[["ordering","ASC"]]}]}]};return a&&(i.where={...i.where,id:a}),s&&i.include&&i.include[0]&&(i.include[0].include[0].attributes.push([fn("COUNT",col("members.id")),"members_count"]),i.include[0].include[0].include=[{model:r,attributes:[],as:"members",where:{visible:true}}]),{data:(await t.findAll(i)).map(l=>({...bl(l.toJSON()),mode:l.dimensions.length===1?Be.UNILATERAL:Be.MULTILATERAL}))}}}function Sa(e){return async()=>(await nt(e,true),{error:false})}var{locales:Sl,localeDefault:El}=j(),Al=(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===Be.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},Tl=(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 Ea(e){let t=Ot(e),r=Mr(e);return o;async function o(n){let a=n.format||"results",s=Sl.includes(n.locale)?n.locale:El,i=n.origin||"flexsearch",c=process.env.REPORTS_EXTERNAL_SEARCH&&i==="typesense",l=await t({...n,format:"plain",locale:$(s),visible:true});if(c)return l;{let u=l.results?l.results:[],d=(await r()).data,f=Tl(u,d);return {meta:{...l.meta,origin:"flexsearch",format:a},results:Al(f,d)}}}}function Aa(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 E(r.response?.status||500,r.message)}}}function Ta(){return async e=>{try{let{target:t}=e;return {target:t}}catch(t){throw new E(t.response?.status||500,t.message)}}}function Se(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 _l(e,t){return e.some(r=>t.includes(`role.${r}`))}function va(e){let{report:t}=e;return r;async function r(o){let n=await t.findByPk(o.report_id,{include:{association:"sections",separate:true,where:{id:o.section_id},include:[{association:"blocks",separate:true,include:[{association:"contentByLocale",separate:true,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(u=>{let p=u.toJSON();return p.inputs=p.inputs.map(d=>d.id),p.consumers=p.consumers.map(d=>d.id),p});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")||_l(o.roles,s.settings.access))).map(s=>s.id);return a=a.concat(Se(a,n)),{params:{...o},data:n.filter(s=>a.includes(s.id))}}}var kl=Object.keys(vo).filter(e=>e.indexOf("Icon")===0);async function _a(){return {meta:{provider:"tabler"},results:kl}}async function wa(e){let t=vo[e.name]?vo[e.name]:()=>"";return renderToString(createElement(t))}var xl={tabler:_a};function Pa(e){let t=xl[e];if(!t)throw new E(500,`Wrong provider dbListIconsFactory.ts: ${e}`);return I(()=>t())}var Il={tabler:wa};function ka(e){return I(t=>{let r=Il[e];if(!r)throw new E(500,`Wrong provider dbReadIconFactory.ts: ${t.provider}`);return r({name:t.name,provider:e})})}function xa(){return e;async function e(){return {secrets:Ct()}}}function it(e,t,r){return rt().then(o=>{Object.assign(r,Nt(o));})}function Nt(e,t){let r={},o=Ke(t||{providers:[]});return t&&o.actions&&o.source==="custom"?(r.searchRole=I(o.actions.searchRole()),r.searchUser=I(o.actions.searchUser()),r.readUser=I(o.actions.readUser()),r.updateUser=I(o.actions.updateUser())):o.source==="auth0"&&(r.searchRole=I(cn()),r.searchUser=I(ln()),r.readUser=I(un()),r.updateUser=I(pn())),{...ra(e),searchReport:I(Ea(e)),readMetadata:I(Mr(e)),regenerateSearch:I(Sa(e)),imageFlickrSearch:Mt(e,"flickr"),imageLocalSearch:Mt(e,"local"),imageUnsplashSearch:Mt(e,"unsplash"),imageAdobeSearch:Mt(e,"adobe"),imagePixabaySearch:Mt(e,"pixabay"),imageFlickrSave:st(e,"flickr"),imageLocalSave:st(e,"local"),imageUnsplashSave:st(e,"unsplash"),imageUploadSave:st(e,"upload"),imageAdobeSave:st(e,"adobe"),imagePixabaySave:st(e,"pixabay"),urlProxy:xr(e),searchRole:r.searchRole,searchUser:r.searchUser,readUser:r.readUser,updateUser:r.updateUser,updateMyData:I(dn()),revalidateReport:I(Aa(e)),revalidateUrl:I(Ta()),readPrivateBlocks:I(va(e)),listTablerIcons:Pa("tabler"),readTablerIcon:ka("tabler"),readEnvSecrets:I(xa())}}async function _o(e){try{let t=new Cl.IncomingForm,r=await new Promise((o,n)=>{t.parse(e,(a,s,i)=>{if(a){console.error("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 Ue(e,t){let r=pe(e,"create",t),o=pe(e,"read",t),n=pe(e,"update",t),a=pe(e,"delete",t),s=pe(e,"updateBulk",t),i=pe(e,"createBulk",t);return [N("POST",`create/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(f=>p[f]);return i(d)},[G.EDITOR]),N("POST",`create/${t}`,c=>{let{body:l}=c;return r(l)},[G.EDITOR]),N("GET",`read/${t}`,c=>{let l=c.query,u=K(l.id).map(ee);return o({id:u,include:rr(l.include)})}),N("POST",`update/${t}`,c=>{let{body:l}=c;return n(l)},[G.EDITOR]),N("POST",`update/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(f=>p[f]);return s(d)},[G.EDITOR]),N("DELETE",`delete/${t}`,c=>{let l=ee(c.query.id);return a(l)},[G.EDITOR])]}function Ia(e){let{validateVariantSlug:t}=e;return [...Ue(e,"variant"),N("GET","validate/variant",r=>{let o=r.query,n=ee(o.dimension);return t({dimension:n,slug:wr(o.slug)})},[G.EDITOR])]}function Ca(e){return Ue(e,"datasource").map(r=>({...r,roleRequired:[G.EDITOR]}))}function ct(e,t){let r=`image${Te(t)}Save`,o=e[r];return N("POST",`images/save/${t}`,n=>{let a=n.body;if(!a.content_id)throw new E(400,"Missing 'content_id' parameter.");if(!a.image_id)throw new E(400,"Missing 'image_id' parameter.");return o(a)},[G.EDITOR])}function Dt(e,t){let r=`image${Te(t)}Search`,o=e[r];return N("GET",`images/search/${t}`,async n=>{let a=K(n.query.prompt)[0];if(!a)throw new E(400,"Empty 'prompt' param.");return o({prompt:a,page:ee(n.query.page)})},[G.EDITOR])}function Ba(e){let{readMetadata:t}=e;return N("GET","read/metadata",r=>t(r.query))}function La(e){let{regenerateSearch:t}=e;return N("POST","search/regenerate",()=>t(void 0),[G.EDITOR])}function Oa(e){let{searchReport:t}=e;return N("GET","search/reports",r=>{let o=Ll(r.query);return t(o)})}function Ll(e){return {...or(e),format:K(e.format)[0]}}function Ma(e){let{urlProxy:t}=e;return N("GET","url/proxy",(r,o,n)=>{let{url:a,method:s="GET",wrapper:i="true"}=r.query;if(!a)throw new E(400,"Missing URL parameter");let c=[];return n&&n.user&&n.user.bespoke_roles&&(c=n.user.bespoke_roles),t({url:Array.isArray(a)?a.join(","):a,method:K(s)[0]==="POST"?"POST":"GET",user_roles:c,wrapper:i!=="false",session:n})})}function Na(e){let{readMetadata:t,revalidateReport:r}=e;return N("GET","revalidate/report",async(o,n)=>{let{reportId:a,profilePrefix:s}=o.query;if(!a||!s)throw new E(400,"Missing URL parameter in revalidate factory: reportId or profilePrefix");try{let i=parseInt(`${a}`,10),c=`${s}`.split("/").filter(m=>m!=="").join("/"),l=[],u=await t({}).then(m=>m.ok?m.data.data.find(R=>R.id===i):[]);u&&u.mode===Be.UNILATERAL&&u.dimensions.forEach(m=>{m.variants.forEach(R=>{l.push({prefix:c,variantId:R.id,variantSlug:R.slug});});});let p=await r({profilePrefix:c,reportId:i,variantPaths:l}),d=[],f=0;return p.ok&&(f=p.data.paths.length,d=p.data.paths.slice(0,5),Promise.all(p.data.paths.map(m=>{let R;try{R=n.revalidate(m,{unstable_onlyGenerated:!0});}catch(g){console.error("error",m,g);}return R}))),{ok:!0,status:200,data:{reportId:a,revalidated:f,samples:d}}}catch(i){throw console.error(i),new E(500,"Error revalidating")}},[G.EDITOR])}function Da(){return N("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.error(o),new E(500,"Error revalidating")}else throw new E(400,"Missing target parameter in revalidate factory")},[G.ADMIN,G.EDITOR,G.WRITER])}function lt(e=process.env){let t=e.BESPOKE_JWT_SECRET;return t||(console.warn("WARNING: Using default BESPOKE_JWT_SECRET. This is insecure and not recommended for production environments."),"BESPOKE_JWT_SECRET")}var{localeDefault:Ml}=j(),Ua=lt();function Fa(e){let{readPrivateBlocks:t}=e;return N("POST","read/blocks/private",(r,o,n)=>{let{userToken:a}=r.body,s=null;if(a&&Ua)try{let l=dc.verify(a,Ua);s=typeof l=="object"&&l!==null&&"roles"in l?l.roles:[];}catch(l){console.error("Failed to verify user token:",l);}if(!s&&(!n||!n.user))throw new E(401,"Unauthorized. Must be logged in or provide a valid token.");let i=a&&s?s:n&&n.user?n.user.bespoke_roles:[],c={report_id:parseInt(r.body.report_id,10),locale:r.body.locale||Ml,roles:i,section_id:r.body.section_id||[]};return t(c)})}function Va(e){let{readEnvSecrets:t}=e;return N("GET","read/secrets",()=>t({}),[G.EDITOR])}function $a(e){let{searchRole:t}=e;return N("GET","auth/search/roles",(r,o)=>t(""),[G.EDITOR,G.ADMIN])}function za(e){let{searchUser:t}=e;return N("GET","auth/search/users",r=>t({query:r.query.query,role_id:r.query.role_id,page:r.query.page||0}),[G.ADMIN])}function qa(e){let{readUser:t}=e;return N("GET","auth/read/user",r=>t(r.query.user_id),[G.ADMIN])}function Ga(e){let{updateUser:t}=e;return N("POST","auth/update/user",async r=>{let o=r.body;return await t(o)},[G.ADMIN])}function Ka(e){let{updateUser:t,readUser:r}=e;return N("POST","auth/update/me",async(o,n,a)=>{let{report_id:s,user_metadata:i}=o.body,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),{ok:!0,status:200,wrapper:!0,data:{ok:!0,message:"User & session updated"}}}catch(l){return {ok:false,status:500,error:l.message}}},[])}async function Nl(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(t){throw console.error("Error generating PDF:",t),t}}function ja(){return N("POST","pdf",async(e,t)=>{let{slugs:r,path:o}=e.body;if(!r||!o)throw new E(400,"Missing path parameter in request.");{new URL(o,e.headers.origin);return {ok:true,status:200,data:await Nl()}}})}function Ha(e,t){let r=`list${Te(t)}Icons`,o=e[r];return N("GET",`list/icons/${t}`,async()=>o({}),[G.EDITOR])}function Wa(e,t){let r=`read${Te(t)}Icon`,o=e[r];return N("GET",`read/icons/${t}/icon.svg`,async n=>o({provider:t,name:n.query.name}))}function Ja(){return N("GET","report",async(e,t)=>{let{report:r,prefix:o,locale:n}=e.query;if(!r)throw new E(400,"Missing report parameter.");if(!o)throw new E(400,"Missing report parameter.");if(!n)throw new E(400,"Missing report parameter.");try{let s=await(await fetch(`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${n}${o}${r}`)).text(),l=new Dl().parseFromString(s,"text/html").getElementById("__NEXT_DATA__")?.textContent,u=JSON.parse(l).props;return {ok:!0,status:200,data:{variables:u.pageProps.initialState.variables,status:u.pageProps.initialState.status}}}catch(a){throw console.error(a),new E(500,"Couldn't find page cache")}})}var Fl=lt();function Vl(e){let t={email:e.user.email,name:e.user.name,roles:e.user.bespoke_roles||[]};return dc.sign(t,Fl,{expiresIn:"1min"})}function Ya(){return N("POST","users/generate-token",async(e,t,r)=>{if(!r||!r.user)throw new E(401,"Unauthorized. Must be logged in to generate a token.");try{return {ok:!0,status:200,wrapper:!1,data:{token:Vl(r)}}}catch(o){throw console.error("Error generating token:",o),new E(500,"Internal Server Error")}})}var zl=lt(),ql=e=>!!dc.verify(e,zl);function Qa(){return N("POST","users/validate-token",async(e,t)=>{let{token:r}=e.body;try{return ql(r)?{ok:!0,status:200,wrapper:!1,data:{success:!0}}:{ok:!1,status:401,error:"Invalid token"}}catch{return {ok:false,status:401,error:"Invalid token"}}})}var jl=Ce();function wo(e,t){return `${e.toUpperCase()} ${t.toLowerCase()}`}function Hl(e,t){let r=Nt(e,t);return Object.fromEntries([...Ue(r,"block"),...Ue(r,"dimension"),...Ue(r,"formatter"),...Ue(r,"report"),...Ue(r,"section"),...Ca(r),...Ia(r),...ca(r),Oa(r),Ba(r),La(r),ct(r,"flickr"),ct(r,"local"),ct(r,"unsplash"),ct(r,"upload"),ct(r,"adobe"),ct(r,"pixabay"),Dt(r,"flickr"),Dt(r,"local"),Dt(r,"unsplash"),Dt(r,"adobe"),Dt(r,"pixabay"),Ma(r),$a(r),za(r),qa(r),Ga(r),Ka(r),Na(r),Da(),Fa(r),ja(),Ha(r,"tabler"),Wa(r,"tabler"),Ja(),Va(r),Ya(),Qa()].map(({handler:o,method:n,path:a,roleRequired:s})=>[wo(n,a),{handler:o,roleRequired:s}]))}function Wl(e){let t=rt().then(r=>Hl(r,e));return async function(o,n){await Gl(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(u=>{let p=[].concat(i).join("/"),d=wo(s,p);return u[d]});if(l){let u=await ye(o,n,e);if(l.roleRequired){if(!u)return n.status(401).json({error:"Unauthorized. Must be logged in."});let p=u&&u.user&&u.user.bespoke_roles&&Array.isArray(u.user.bespoke_roles)?u.user.bespoke_roles:[];if(Array.isArray(l.roleRequired)&&l.roleRequired.length>0&&!yr(p,l.roleRequired))return n.status(402).json({error:"Forbidden. Not enough roles."})}if(l.handler)return ["POST","DELETE"].includes(s)&&(o.body=await _o(o)),Promise.resolve(o).then(p=>l.handler(p,n,u||void 0)).then(async p=>{if(p&&"error"in p)throw new E(p.status,p.error);if(p.ok)if(p.data instanceof Buffer){let d=await Kl(p.data),f=Buffer.byteLength(p.data);n.writeHead(p.status,{"Content-Type":d?d.mime:"image/jpeg","Content-Length":f.toString()}).send(p.data);}else o.url&&o.url.indexOf("/icon.svg?name=")>0?(n.setHeader("Content-Type","image/svg+xml"),n.status(p.status).send(p.data)):n.status(p.status).json(p.wrapper?{data:p.data}:p.data);}).catch(p=>{jl&&console.error("Backend Error",p),n.status(p.code).json({error:p.message});})}}else i||await t.then(console.info);return n.status(404).json({error:"No matching route",path:i,query:c})}}var Jl=e=>{let t=e;return async function(r,o){let n=await t({test:"pala"});return o.json(n)}},Yl=Jl;var St={};Ys(St,{addBlockToState:()=>fr,addRunConsumersRunning:()=>Ds,cloneEntity:()=>Is,createEntity:()=>Ps,deleteEntity:()=>xs,deleteQueryParam:()=>mp,readEntity:()=>oe,readEnvSecrets:()=>vp,readMember:()=>qe,readMetadata:()=>mr,readPrivateBlocks:()=>Ep,readUser:()=>Rp,recalculateVariables:()=>Vs,removeBlocksFromState:()=>Ge,removeDataSourceLogic:()=>gr,removeRunConsumersRunning:()=>Us,reportSearch:()=>up,resetSectionState:()=>Ns,revalidateReport:()=>Tp,revalidateUrl:()=>Ap,searchMember:()=>dp,searchRegenerate:()=>pp,searchRole:()=>yp,searchUser:()=>hp,setCurrentLocale:()=>ip,setPreferredLocale:()=>cp,setPreviews:()=>sp,setQueryParam:()=>fp,setSectionState:()=>Ms,setStatus:()=>Os,updateEntity:()=>ks,updateMyData:()=>Sp,updateUser:()=>bp,urlProxy:()=>gp,variantValidateSlug:()=>lp});function Ee(e,t){return e.request(t).then(r=>{let{status:o,data:n}=r;return "error"in n?{ok:false,status:o,error:n.error}:{ok:true,status:o,wrapper:n.wrapper,data:n.data}},r=>{if("isAxiosError"in r){let{status:o,data:n}=r.response||{status:500};return {ok:false,status:o,error:n?.error??r.message}}return {ok:false,status:500,error:r.message}})}function te(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>Ee(e,{...o,method:"GET",params:r?r(n):n})}function re(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>Ee(e,{...o,method:"POST",data:n})}function Fe(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>Ee(e,{...o,method:"DELETE",params:r?r(n):n})}function ut(e,t){return r=>Ee(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function Ut(e,t){return r=>Ee(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function Za(e,t){return ()=>Ee(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function Xa(e,t){return r=>Ee(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var pt=e=>({id:e}),Zl=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 sr(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"),createDatasource:re(t,"create/datasource"),deleteBlock:Fe(t,"delete/block",pt),deleteDimension:Fe(t,"delete/dimension",pt),deleteFormatter:Fe(t,"delete/formatter",pt),deleteReport:Fe(t,"delete/report",pt),deleteSection:Fe(t,"delete/section",pt),deleteVariant:Fe(t,"delete/variant",pt),deleteDatasource:Fe(t,"delete/datasource",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"),readDatasource:te(t,"read/datasource"),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"),updateDatasource:re(t,"update/datasource"),searchReport:te(t,"search/reports"),validateVariantSlug:te(t,"validate/variant"),readMember:te(t,"read/members",Zl),readMemberImage:te(t,{url:"member/image",responseType:"blob"}),searchMember:te(t,"search/members"),updateMember:te(t,"update/members"),imageLocalSearch:Ut(t,"local"),imageLocalSave:ut(t,"local"),imageFlickrSearch:Ut(t,"flickr"),imageFlickrSave:ut(t,"flickr"),imageUnsplashSearch:Ut(t,"unsplash"),imageUnsplashSave:ut(t,"unsplash"),imageUploadSave:ut(t,"upload"),imageAdobeSearch:Ut(t,"adobe"),imageAdobeSave:ut(t,"adobe"),imagePixabaySearch:Ut(t,"pixabay"),imagePixabaySave:ut(t,"pixabay"),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:Za(t,"tabler"),readTablerIcon:Xa(t,"tabler"),readEnvSecrets:te(t,"read/secrets")}}var tu=rr(process.env.REPORTS_LOGGING),dt=ru;function ru(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=he(a);try{if(t){let l=new Proxy(console,{get(p,d){return ou(d,"log","debug","info","warn","error")?(...f)=>{i.push(`${d} ${Date.now()} - ${f.map(m=>format(m)).join(" ")}`),tu&&p[d](...f);}:p[d]}}),u;return n?u=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,Ye,o,c,n):u=new Function(e,"console","libs","formatters","locale",r)(t,l,Ye,o,c),typeof u=="object"&&Object.keys(u).length>0&&Object.assign(s,u),{vars:s,error:null,log:i,output:u}}return {vars:s,error:"Invalid API Link",log:i}}catch(l){return {vars:s,error:l.message,log:i}}}function ou(e,...t){return t.includes(e)}var Po=(e,t,r)=>{let{variables:o}=r,n=s=>s.allowed==="never"?false:!s.allowed||s.allowed==="always"||o[s.allowed],a={...e};return Object.keys(a).forEach(s=>{typeof a[s]=="string"?a[s]=be(a[s],t,r):Array.isArray(a[s])?a[s]=a[s].filter(n).map(i=>typeof i=="object"?Po(i,t,r):typeof i=="string"?be(i,t,r):i):typeof a[s]=="object"&&a[s]!==null&&!(a[s]instanceof Date)&&(a[s]=Po(a[s],t,r));}),a},Nr=Po;var es=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var nu=(e,t,r)=>{if(!r)return false;if(e===Ze.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))},ko=nu;function xo(e,t,r,o,n=false){let{variables:a}=he(o),s=Nr({logic:t},r,o).logic,i=dt("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i,p=c.type||Ze.SINGLE,d=c.component||"Selector",f=c.hideLabel||"false",m=c.resetSectionVars||"false",R=c.name||"Unlabeled Selector",g=es(c.options||[]),b=_=>p===Ze.MULTI&&!Array.isArray(_)?[_]:_,k=c.defaultValue,v;if(k&&(k=b(k),ko(p,k,g)&&(v=k)),!v){let _=g&&g[0]&&g[0].id||g[0]||"";v=b(_);}if(n&&typeof window<"u"){let _=`selector${e}id`,z=new URLSearchParams(window.location.search),D=Object.fromEntries(z)[_];D&&!ko(p,D,g)&&D!==void 0&&(z.delete(_),window.history.replaceState(null,null,`?${z.toString()}`));}return {config:{name:R,type:p,options:g,defaultValue:v,component:d,hideLabel:f,resetSectionVars:m},log:l,error:u}}function Io(e,t,r){if(!e)return false;let o=Array.isArray(r)?r:r.split(",");return Array.isArray(o)&&o.every(n=>e.map(a=>`${a[`${t} ID`]}`).includes(n))}function Co(e,t,r,o,n=false){let{variables:a}=he(o),s=Nr({logic:t},r,o).logic,i=dt("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i;if(n&&typeof window<"u"){let d=`multihierarchySelector${e}-value`,f=`multihierarchySelector${e}-type`,m=new URLSearchParams(window.location.search),R=Object.fromEntries(m),g=R[d],b=R[f];g&&g!==void 0&&b&&b!==void 0&&!Io(c.data,b,g)&&(m.delete(d),m.delete(f),window.history.replaceState(null,null,`?${m.toString()}`));}return {config:c,log:l,error:u}}var au=(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===Ze.MULTI){let l=s?s.split(","):r.defaultValue,u=r.options.filter(p=>l.includes(p.id));return {[`selector${e}id`]:l,[`selector${e}label`]:(u||[]).map(p=>p.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}},ts=au;var su=(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,u=s||c,p=l?l.split(","):r.defaultValue||[],d=u||r.defaultValueType||"",f=r.data?.filter(m=>p.includes(`${m[`${d} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:p,[`multihierarchySelector${e}label`]:[...new Set((f||[]).map(m=>m[d]))],[`multihierarchySelector${e}type`]:d}},rs=su;var{localeDefault:os,locales:iu}=j(),cu=Object.values(lo),lu=(e,t=os)=>e&&cu.includes(e.type)?{locale:uo,locales:[uo]}:{locale:t,locales:iu},ns=(e,t=os)=>{if(!e)return {};let{locale:r}=lu(e,t);return e.contentByLocale?.[r]?.content};function uu(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 as=uu;function Bo(e){return e.type===M.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}var Ve=rr(process.env.NEXT_PUBLIC_REPORTS_DEBUG),yu=process.env.REPORTS_ORIGIN||"",hu=process.env.NEXT_PUBLIC_REPORTS_AXIOS_RETRIES,ls=5;try{ls=parseInt(`${hu||5}`,10);}catch(e){console.error("Error setting axios retries NEXT_PUBLIC_REPORTS_AXIOS_RETRIES defaults to 5",e);}ss(Fr,{retries:ls,retryDelay:ss.exponentialDelay,onRetry:(e,t,r)=>{console.error("Generator request failed. Retrying... Count: ",e),console.error("URL: ",r.url),console.error(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 Ru=(e,t,r)=>{let o=be(e,t,r);return o.startsWith("http")||(o=`${yu}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:bu}=sr("/api/cms");function Ur(e){return e.ok!==void 0}function Dr(e){this.message=e,this.name="ApiFetchException";}var is=process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0;async function Su(e,t,r="en",o,n){let a=Date.now(),s=e,i,c=de(),l=Ct(),u={envs:{...c,...l}},p=new URL(e),d=new URLSearchParams(p.searchParams.toString());d.has("bespoke_slugs")&&(p.searchParams.delete("bespoke_slugs"),s=p.toString());let f={datasource:void 0};o.find(k=>{if(!k.content?.pattern)return false;try{let v=new RegExp(k.content.pattern,"gm");return v.test(s)?(f.datasource=k,!0):v.test(s)}catch{return false}});let m=n?n.settings:{},R=!!(m&&m.useProxy&&m.useProxy==="true"),g=f.datasource&&typeof f.datasource.content.useProxy=="boolean"?f.datasource.content.useProxy:false,b=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/api/cms/url/proxy?url=${encodeURIComponent(s)}`;if(typeof window=="object"&&(R||g)){let k=await bu({url:s,timeout:is});if(k.ok===true)i=k.data;else throw new Dr(k?.error)}else try{let v={url:s,timeout:is};if(f.datasource){let _=u;if(typeof window<"u")try{let D=await getSession();if(D){let w={user:D.user,status:"authenticated",isLoading:!1,update:async()=>D};_={...u,session:w};}}catch(D){console.warn("Could not retrieve user session:",D);}let B=await kr({vars:["url","libs","session"],logic:f.datasource.content.logic},_)(s);if(B.axiosConfig)v=B.axiosConfig;else throw new Dr(`AxiosConfig is missing in Data Source ${f.datasource.name} (ID: ${f.datasource.id}).`)}let F=await Fr(v);if(F.status===200)F.headers["content-type"]==="text/csv"?i=csvParse(F.data):i=F.data;else throw new Dr("No response for: "+s)}catch(k){throw new Dr(k.message)}if(d.has("bespoke_slugs")){let k=d.get("bespoke_slugs");if(k){let v=k.split(",");if(v.length===3){let[F,_,z]=v,B=jt(i,z);if(B&&Array.isArray(B)){let D=Array.from(new Set(B.map(w=>`${w[_]}`).filter(w=>!["","undefined"].includes(w))));if(D.length>0){let w=D.join("").length>2e3,L=await t({mode:w?"whole":"ids",ids:w?void 0:D,all:false,locale:r,variant:[parseInt(F,10)],output:"lite",limit:D.length+1,allowNulls:true}).then(U=>{let C=[];return Ur(U)?U.ok&&(C=U.data.results):C=U.results,C&&Array.isArray(C)?C:[]}).catch(U=>(console.error(`Error hydrating slugs for Variant: ${F}, Key: ${_}, Accessor: ${z}`),console.error(` Url ${e}`),n&&console.error(` From Section ${n.section_id} and Block ${n.id}`),console.error(U),[]));if(L){let U=Object.fromEntries(L.map(C=>[C.id,`/${C.variant_slug}/${C.slug}`]));B.map(C=>(C.bespoke_slug=U[C[_]]?U[C[_]]:null,C));}}}}}}return {data:i,requestDuration:Date.now()-a,finalUrl:g||R?b:s,apiDataSource:f.datasource?f.datasource:false}}function Eu(e){this.name="BlockException",this.message=e;}async function cs(e,t,r,o,n){let{locale:a,variables:s,query:i}=he(r),c=Tu(e,r,s,t),l=null,u=e.contentByLocale?.logic?.content?.api,p=null,d=null,f=null,m=null,R=null;if(!c)return {outputVariables:{},renderVariables:{},status:{allowed:false,hiddenByCascade:e.id}};if(e.type===M.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:c,hiddenByCascade:e.id}};if(u){f=Ru(u,t,r);let B=f.split("|||").filter(L=>L!==""),D=[];for(let L=0;L<B.length;L++){let U=B[L];new RegExp("^(?:[a-z+]+:)?//","i").test(f)||(U=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${U}`.replace(/([^:]\/)\/+/g,"$1")),D.push(Su(U,o,a,n,e).catch(q=>{throw new Eu(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${s.report_name} (${s.report_id}) failed.
|
|
26
26
|
Error fetching ${U}.
|
|
27
27
|
Message: ${q.message}.
|
|
28
28
|
`)}));}let w=await Promise.all(D).catch(L=>L.message);if(typeof w=="string"&&w)return {outputVariables:{},renderVariables:{},status:{error:w}};l=w.length===1?w[0].data:w.map(L=>L.data),d=w.reduce((L,U)=>L+JSON.stringify(U.data).length/1024,0),p=Math.max(...w.map(L=>L.requestDuration)),m=w.map(L=>L.apiDataSource?`${L.apiDataSource.name} (${L.apiDataSource.id})`:null),R=w.map(L=>L.finalUrl);}if(e.type===M.SELECTOR){let{config:B,log:D,error:w}=xo(e.id,e.contentByLocale[a].content.logic,t,r,true);return {outputVariables:ts(e.id,i,B),renderVariables:B,status:{log:D,error:w,allowed:c}}}if(e.type===M.MULTIHIERARCHY_SELECTOR){let{config:B,log:D,error:w}=Co(e.id,e.contentByLocale[a].content.logic,t,r,true);return {outputVariables:rs(e.id,i,B),renderVariables:B,status:{log:D,error:w,allowed:c}}}if(e.type===M.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:c}};if(e.type===M.RELATED){let B=e.contentByLocale?.logic?.content?.simple?.compare||"variant",D=e.contentByLocale?.logic?.content?.simple?.limit||4,w=Object.keys(s).filter(S=>S.startsWith("report_id")).map(S=>s[S]),L=Object.keys(s).filter(S=>S.startsWith("dimension_id")).map(S=>s[S]),U=Object.keys(s).filter(S=>S.startsWith("variant_id")).map(S=>s[S]),C=Object.keys(s).filter(S=>S.startsWith("id")).map(S=>s[S]);if(!C.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:false}};let q=await Promise.all(C.map((S,T)=>o({mode:"ids",locale:a,ids:[S],output:"lite",variant:[U[T]]}))).then(S=>S.flatMap(T=>{let x=[];return Ur(T)?T.ok&&(x=T.data.results):x=T.results,x&&Array.isArray(x)?x:[]})).catch(S=>(console.error("Error getting related members",S),[]));if(L.length>1){let S=Object.keys(s).filter(V=>V.startsWith("variant_slug")).map(V=>s[V]),T=q.map((V,Q)=>{let W={mode:"related",locale:a,related:D??4,current_ids:[V.content_id],output:"full",variant_ids:[V.variant_id]};return Q===0&&(W.include_ids=[V.content_id]),W}),x=await Promise.all(T.map(V=>o(V))).then(V=>V.flatMap(Q=>{let W=[];return Ur(Q)?Q.ok&&(W=Q.data.results):W=Q.results,W&&Array.isArray(W)?W:[]})).catch(V=>(console.error("Error getting related members",V),[])),ne=x.reduce((V,Q)=>{let W=Q.variant_slug;return V[W]||(V[W]=[]),V[W].push(Q),V},{}),ae=[],Z=Object.keys(ne),J=[{combination:[],index:0}];for(;J.length>0;){let V=J.pop();if(!V)continue;let{combination:Q,index:W}=V;if(W===Z.length){ae.push(Q);continue}let ue=Z[W],se=ne[ue];for(let le of se)J.push({combination:[...Q,le],index:W+1});}return {outputVariables:{related_reports:ae.map(V=>{let Q=V.sort((W,ue)=>S.indexOf(W.variant_slug)-S.indexOf(ue.variant_slug));return {entities:Q,link:"/"+Q.map(W=>`${W.variant_slug}/${W.slug}`).join("/")}})},renderVariables:{},status:{log:[],allowed:x.length>0}}}let O=q.map(S=>S.content_id),P={mode:"related",locale:a,related:D??4,current_ids:O,output:"full"};B&&(B==="report"?P.report_ids=w:B==="dimension"?P.dimension_ids=L:P.variant_ids=U);let H=await o(P).then(S=>{let T=[];return Ur(S)?S.ok&&(T=S.data.results):T=S.results,T&&Array.isArray(T)?T:[]}).catch(S=>(console.error("Error getting related members",S),[]));return {outputVariables:{related_reports:H.map(S=>({entities:[S],link:`/${S.variant_slug}/${S.slug}`}))},renderVariables:{},status:{log:[],allowed:H.length>0}}}let{logic:g}=ns(e,a),b=be(g,t,r),k=dt("resp",l||{},b,t,s,r),{vars:v,error:F,log:_}=k;if(typeof v!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:_,duration:p,responseSize:d,resp:l,api:f,allowed:c,apiFinalUrls:R,apiDataSources:m}};let z=Object.keys(v).reduce((B,D)=>({...B,[`${e.type}${e.id}${D}`]:v[D]}),{});return {renderVariables:v,outputVariables:[M.GENERATOR,M.SECTION_FLAG].includes(e.type)?v:z,status:{log:_,error:F,duration:p,responseSize:d,resp:l,api:f,allowed:c,apiFinalUrls:R,apiDataSources:m}}}function Au(e,t,r,o,n,a,s){return e.consumers.forEach(i=>{if(t[i]){let c=`${r}-${i}`;!o.includes(c)&&(t[i].section_id===t[r].section_id||!n)&&o.push(c),e.consumers.filter(l=>t[l]&&t[l].section_id===t[r].section_id||!n).forEach(l=>Lo(l,t,o,false,a,n,s));}})}var Lo=(e,t,r=[],o=true,n=true,a=true,s=[])=>{if(s.includes(e))return [];s.push(e);let i=t[e];return i&&i.inputs.length&&o&&i.inputs.forEach(c=>{let l=`${c}-${e}`;r.includes(l)||r.push(l),i.inputs.forEach(u=>Lo(u,t,r,o,false,a,s));}),i&&i.consumers.length&&n&&Au(i,t,e,r,a,n,s),r},Tu=(e,t,r,o)=>{let n=true;if(e&&"allowed"in e.settings&&e.settings.allowed!=="always")if(e.settings.allowed==="never")n=false;else {let a=he(t),{error:s,output:i}=dt("variables",r,e.settings.allowedLogic||"return false;",o,void 0,a);s||(n=!!i);}return n},Ft=async(e,t,r,o,n,a={},s,i="section",c)=>{let l=i==="section",u=he(n),p=u.variables,d={...a.variables??{}},f={...a.status??{}},m=new Set,R=[],g={};r?g={...g,[r]:e[r]}:t?g=(t??[]).reduce((O,{id:P})=>({...O,...as(P,e)}),{}):g=Object.values(e).filter(O=>Bo(O)).reduce((O,P)=>({...O,[P.id]:P}),{});let b=Object.values(g).filter(O=>Bo(O));if(b.length>0){Ve&&console.info("%crunConsumers: calculating section flags","color:purple",b.map(A=>A.id).join(", "));let O=Object.fromEntries(await Promise.all(b.map(async A=>[A.id,await cs(A,o,{...u,variables:p,locale:p.locale},s,c).then(S=>{let{outputVariables:T,status:x}=S;if(x.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${A.id}, Section ${A.section_id}) failed with message: ${x.error}. `);f[A.id]={allowed:false,error:x.error},d[A.id]={};}return (A.consumers.length>0||[M.GENERATOR,M.SECTION_FLAG,M.RELATED].includes(A.type))&&x.allowed&&Object.keys(T).length>0?d[A.id]=T:d[A.id]={},i==="report"?(f[A.id]={allowed:x.allowed},[M.GENERATOR,M.SECTION_FLAG].includes(A.type)&&x.api&&(f[A.id].api=x.api)):f[A.id]=x,S})]))),H=Object.entries(O).filter(([,A])=>!A.outputVariables[na]).map(([A])=>Number(A));m=new Set(H.map(A=>e[A].section_id)),Object.values(g).filter(A=>m.has(A.section_id)).forEach(A=>{R.push(A.id),delete g[A.id];}),Ve&&console.info("%crunConsumers: removing sections","color:purple",m.keys());}let k=m.size>0?Object.fromEntries(Object.entries(e).filter(([,O])=>m?.has(O.section_id)?(R.includes(O.id)||R.push(O.id),false):true)):e;if(R.length>0&&(k=Object.fromEntries(Object.entries(k).map(([O,P])=>{let H={...P,inputs:P.inputs.filter(A=>!R.includes(A)),consumers:P.consumers.filter(A=>!R.includes(A))};return [O,H]}))),!r&&!t)return {variables:{...a.variables??{},...d},status:{...a.status??{},...f}};i==="report"&&R.length>0&&R.forEach(O=>{delete d[O],delete f[O],delete e[O];}),Ve&&console.info("%crunConsumers: running root blocks","color:purple",Object.keys(g));let v=Object.keys(g).reduce((O,P)=>{let H=new Date,A=Lo(Number(P),k,[],!r,true,l).map(x=>x.split("-")),T=(new Date().getTime()-H.getTime())/1e3;return Ve&&console.info(`%cResolved dependencies for ${P} (${T.toFixed(2)}s)`,"color:blue"),[...O,...A]},[]),F=new Date,_=Object.keys(g).reduce((O,P)=>O.includes(P)?[...O]:[P,...O],du(v)),B=(new Date().getTime()-F.getTime())/1e3;Ve&&console.info(`%cResolved DAG (${B.toFixed(2)}s): `,"color:green",_);let D=process.env.NEXT_PUBLIC_REPORTS_MAX_CONCURRENT_QUERIES_PER_REPORT,w=parseInt(`${D||0}`,10);async function L(O,P){let H=new Map,A=[],S=async()=>A.length;for(let T of O){if(w!==0){let Z=await S();for(;Z>=w;)Ve&&console.info("Too many pending promises, waiting...",Z,A),await new Promise(J=>setTimeout(J,500)),Z=await S();}let x=P[T],ae=Promise.all(x.inputs.filter(Z=>O.includes(String(Z))).map(Z=>H.get(Number(Z)))).then(async()=>{let Z=x.inputs.reduce((se,le)=>({...se,...d[le]}),p),J=x.inputs.find(se=>(x.settings?.ignoreCascade?x.settings?.ignoreCascade:[]).includes(se)||!f[se]?false:!f[se].allowed||f[se].hiddenByCascade);if(J){f[T]={allowed:false,hiddenByCascade:f[J].hiddenByCascade||J},d[T]={},A.splice(A.indexOf(Number(T)),1);return}let ie=new Date,V;typeof window<"u"&&[M.SELECTOR,M.MULTIHIERARCHY_SELECTOR].includes(x.type)&&x.settings[Le.DISABLED]?V=new Promise(se=>{se({outputVariables:d[T],status:f[T]});}):V=cs(x,o,{...u,variables:Z,locale:Z.locale},s,c);let Q=await V.then(({outputVariables:se,status:le})=>{if(le.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${T}, Section ${x.section_id}) failed with message: ${le.error}.`);f[T]={allowed:false,error:le.error},d[T]={};}(x.consumers.length>0||[M.GENERATOR,M.SECTION_FLAG,M.RELATED].includes(x.type))&&le.allowed&&Object.keys(se).length>0?d[T]=se:d[T]={},i==="report"?(f[T]={allowed:le.allowed},[M.GENERATOR,M.SECTION_FLAG].includes(x.type)&&le.api&&(f[T].api=le.api)):f[T]=le;}),ue=(new Date().getTime()-ie.getTime())/1e3;return Ve&&console.info(`%cBlock ${x.id} resolved in ${ue.toFixed(3)}s`,ue>500?"color:red":"color:green"),f[T].duration=f[T].duration?f[T].duration:ue,A.splice(A.indexOf(Number(T)),1),Q}).catch(Z=>{throw A.splice(A.indexOf(Number(T)),1),Z});A.push(Number(T)),H.set(Number(T),ae);}await Promise.all(Array.from(H.values()));}let U=new Date;await L(_,k);let q=(new Date().getTime()-U.getTime())/1e3;return Ve&&console.info(`%cResolved Variables (${q.toFixed(2)}s), ${_.length} blocks`,"color:green"),{variables:{...a.variables??{},...d},status:{...a.status??{},...f}}};function vu(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 Vt=vu;function _u(e,t){return +(e<t)-+(e>t)}function Vr(e,t,r="ordering"){return _u(t[r],e[r])}var{localeDefault:Pu}=j();var ir=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});ir.define({consumers:[ir],inputs:[ir]});var us=new schema.Entity("variant"),ps=new schema.Entity("dimension",{variants:[us]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),ds=new schema.Entity("section",{blocks:[ir]}),ku=new schema.Entity("report",{dimensions:[ps],sections:[ds]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(Vr):[]}}}),xu=new schema.Entity("formatter"),Iu=new schema.Entity("datasource"),Cu={report:ku,section:ds,block:ir,dimension:ps,variant:us,formatter:xu,datasource:Iu};function $r(e,t){let r=Cu[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"),datasource:mt(o,"datasource")}}function mt(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:{}}var ms=(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}},cr=(e=[],t=Pu)=>e.reduce((r,o)=>{let n=Nn({vars:["n"],logic:o.content.logic},{},t,{});return r[o.name]=n,r},{});var me=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",zr=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[me];zr.includes(me)||zr.push(me);var Ou={localeDefault:me,locales:zr,currentLocale:me,preferredLocale:me,showToolbar:false,activeSection:null,previews:[],query:{},sectionState:{},activeEntity:{type:null,id:null},sidebarStatus:{tools:true,settings:false,reportEditor:false},isCMS:false,isRunConsumersRunning:[]},qr=createSlice({name:"status",initialState:Ou,reducers:{setStatus:(e,t)=>{Object.assign(e,t.payload);},setPreviews(e,t){e.previews=t.payload;},setCurrentLocale(e,t){e.currentLocale=t.payload;},setPreferredLocale(e,t){e.preferredLocale=t.payload;},setSectionState(e,t){e.sectionState={...e.sectionState,...t.payload};},resetSectionState(e,t){e.sectionState={...e.sectionState,[t.payload]:{}};},setActiveEntity(e,t){e.activeEntity=t.payload;},openSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:true};},closeSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:false};},toggleSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!e.sidebarStatus[t.payload]};},addRunConsumersRunning(e,t){e.isRunConsumersRunning=e.isRunConsumersRunning.concat(t.payload);},removeRunConsumersRunning(e,t){e.isRunConsumersRunning=e.isRunConsumersRunning.filter(r=>!t.payload.includes(r));}},extraReducers:{[HYDRATE]:(e,t)=>({...e,previews:t.payload.status.previews})}}),xe=qr.actions;var Du={attributes:{},variables:{},status:{}},Gr=createSlice({name:"variables",initialState:Du,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}})}}),$t=Gr.actions;var Vu={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}}},Ie=createSlice({name:"records",initialState:Vu,reducers:{set:(e,t)=>{let r=t.payload;return {entities:lr(e.entities,r.entities||{}),requests:lr(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=$r(r.type,o),a=lr(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=Kr(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=Kr(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=$r(r.type,r.data),n=lr(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=$r(r.type,o),a,s,i;if(r.type==="block"&&!Array.isArray(r.data)){let l=e.entities.block[r.data.id].inputs,u=n.block[r.data.id].inputs;a=l.length!==u.length,a&&(i=l.length>u.length,s=i?l.filter(p=>!u.includes(p))[0]:u.filter(p=>!l.includes(p))[0]),Object.values(n.block).forEach(p=>{p.block_input&&delete n.block[p.id];});}let c=lr(e.entities,n);if(e.entities=c,r.type==="dimension"){let l=r.data;e.entities.report[l.report_id].dimensions=Kr(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=Kr(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(u=>u!==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`;$u(e.entities[a][n][s],o);}}},removeBlocks:(e,t)=>{let r=t.payload,o={...e.entities.block};return r.forEach(n=>{delete o[n];}),{...e,entities:{...e.entities,block:o}}},addBlocks:(e,t)=>{let r=t.payload;return {...e,entities:{...e.entities,block:{...e.entities.block,...r}}}},removeDataSourceLogic:e=>{let t={...e.entities.datasource};Object.keys(t).forEach(r=>{e.entities.datasource[r].content.useProxy&&(delete e.entities.datasource[r].content.logic,delete e.entities.datasource[r].content.testUrl,delete e.entities.datasource[r].content.access);});}},extraReducers:{[HYDRATE]:(e,t)=>{let r=t.payload.records,o=r.entities;return {entities:o,reports:Object.values(o.report).map(n=>n.id),requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},tree:r.tree}}}});function lr(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,{...e[r],...t[r]}]))}function Kr(e,t){return e.map(n=>t[n]).sort((n,a)=>typeof n.ordering=="string"&&typeof a.ordering=="string"?Vr(n,a):typeof n.ordering=="number"&&typeof a.ordering=="number"?n.ordering-a.ordering:String(n.ordering).localeCompare(String(a.ordering))).map(n=>n.id)}function $u(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}function ce(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=Ju[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 zt(e){return !!e&&!!e[fe]}function yt(e){var t;return !!e&&((function(r){if(!r||typeof r!="object")return false;var o=Object.getPrototypeOf(r);if(o===null)return true;var n=Object.hasOwnProperty.call(o,"constructor")&&o.constructor;return n===Object||typeof n=="function"&&Function.toString.call(n)===Yu})(e)||Array.isArray(e)||!!e[Es]||!!(!((t=e.constructor)===null||t===void 0)&&t[Es])||qo(e)||Go(e))}function pr(e,t,r){r===void 0&&(r=false),Gt(e)===0?(r?Object.keys:Jo)(e).forEach((function(o){r&&typeof o=="symbol"||t(o,e[o],e);})):e.forEach((function(o,n){return t(n,o,e)}));}function Gt(e){var t=e[fe];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:qo(e)?2:Go(e)?3:0}function Uo(e,t){return Gt(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function zu(e,t){return Gt(e)===2?e.get(t):e[t]}function As(e,t,r){var o=Gt(e);o===2?e.set(t,r):o===3?e.add(r):e[t]=r;}function qu(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function qo(e){return Hu&&e instanceof Map}function Go(e){return Wu&&e instanceof Set}function gt(e){return e.o||e.t}function Ko(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Qu(e);delete t[fe];for(var r=Jo(t),o=0;o<r.length;o++){var n=r[o],a=t[n];a.writable===false&&(a.writable=true,a.configurable=true),(a.get||a.set)&&(t[n]={configurable:true,writable:true,enumerable:a.enumerable,value:e[n]});}return Object.create(Object.getPrototypeOf(e),t)}function jo(e,t){return t===void 0&&(t=false),Ho(e)||zt(e)||!yt(e)||(Gt(e)>1&&(e.set=e.add=e.clear=e.delete=Gu),Object.freeze(e),t&&pr(e,(function(r,o){return jo(o,true)}),true)),e}function Gu(){ce(2);}function Ho(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function _e(e){var t=Zu[e];return t||ce(18,e),t}function fs(){return process.env.NODE_ENV==="production"||qt||ce(0),qt}function Oo(e,t){t&&(_e("Patches"),e.u=[],e.s=[],e.v=t);}function jr(e){Fo(e),e.p.forEach(Ku),e.p=null;}function Fo(e){e===qt&&(qt=e.l);}function gs(e){return qt={p:[],l:qt,h:e,m:true,_:0}}function Ku(e){var t=e[fe];t.i===0||t.i===1?t.j():t.g=true;}function Mo(e,t){t._=t.p.length;var r=t.p[0],o=e!==void 0&&e!==r;return t.h.O||_e("ES5").S(t,e,o),o?(r[fe].P&&(jr(t),ce(4)),yt(e)&&(e=Hr(t,e),t.l||Wr(t,e)),t.u&&_e("Patches").M(r[fe].t,e,t.u,t.s)):e=Hr(t,r,[]),jr(t),t.u&&t.v(t.u,t.s),e!==Ts?e:void 0}function Hr(e,t,r){if(Ho(t))return t;var o=t[fe];if(!o)return pr(t,(function(i,c){return ys(e,o,t,i,c,r)}),true),t;if(o.A!==e)return t;if(!o.P)return Wr(e,o.t,true),o.t;if(!o.I){o.I=true,o.A._--;var n=o.i===4||o.i===5?o.o=Ko(o.k):o.o,a=n,s=false;o.i===3&&(a=new Set(n),n.clear(),s=true),pr(a,(function(i,c){return ys(e,o,n,i,c,r,s)})),Wr(e,n,false),r&&e.u&&_e("Patches").N(o,r,e.u,e.s);}return o.o}function ys(e,t,r,o,n,a,s){if(process.env.NODE_ENV!=="production"&&n===r&&ce(5),zt(n)){var i=Hr(e,n,a&&t&&t.i!==3&&!Uo(t.R,o)?a.concat(o):void 0);if(As(r,o,i),!zt(i))return;e.m=false;}else s&&r.add(n);if(yt(n)&&!Ho(n)){if(!e.h.D&&e._<1)return;Hr(e,n),t&&t.A.l||Wr(e,n);}}function Wr(e,t,r){r===void 0&&(r=false),!e.l&&e.h.D&&e.m&&jo(t,r);}function No(e,t){var r=e[fe];return (r?gt(r):e)[t]}function hs(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 Vo(e){e.P||(e.P=true,e.l&&Vo(e.l));}function Do(e){e.o||(e.o=Ko(e.t));}function $o(e,t,r){var o=qo(t)?_e("MapSet").F(t,r):Go(t)?_e("MapSet").T(t,r):e.O?(function(n,a){var s=Array.isArray(n),i={i:s?1:0,A:a?a.A:fs(),P:false,I:false,R:{},l:a,t:n,k:null,o:null,j:null,C:false},c=i,l=zo;s&&(c=[i],l=ur);var u=Proxy.revocable(c,l),p=u.revoke,d=u.proxy;return i.k=d,i.j=p,d})(t,r):_e("ES5").J(t,r);return (r?r.A:fs()).p.push(o),o}function ju(e){return zt(e)||ce(22,e),(function t(r){if(!yt(r))return r;var o,n=r[fe],a=Gt(r);if(n){if(!n.P&&(n.i<4||!_e("ES5").K(n)))return n.t;n.I=true,o=Rs(r,a),n.I=false;}else o=Rs(r,a);return pr(o,(function(s,i){n&&zu(n.t,s)===i||As(o,s,t(i));})),a===3?new Set(o):o})(e)}function Rs(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return Ko(e)}var bs,qt,Wo=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",Hu=typeof Map<"u",Wu=typeof Set<"u",Ss=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",Ts=Wo?Symbol.for("immer-nothing"):((bs={})["immer-nothing"]=true,bs),Es=Wo?Symbol.for("immer-draftable"):"__$immer_draftable",fe=Wo?Symbol.for("immer-state"):"__$immer_state";var Ju={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"},Yu=""+Object.prototype.constructor,Jo=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Qu=Object.getOwnPropertyDescriptors||function(e){var t={};return Jo(e).forEach((function(r){t[r]=Object.getOwnPropertyDescriptor(e,r);})),t},Zu={},zo={get:function(e,t){if(t===fe)return e;var r=gt(e);if(!Uo(r,t))return (function(n,a,s){var i,c=hs(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||!yt(o)?o:o===No(e.t,t)?(Do(e),e.o[t]=$o(e.A.h,o,e)):o},has:function(e,t){return t in gt(e)},ownKeys:function(e){return Reflect.ownKeys(gt(e))},set:function(e,t,r){var o=hs(gt(e),t);if(o?.set)return o.set.call(e.k,r),true;if(!e.P){var n=No(gt(e),t),a=n?.[fe];if(a&&a.t===r)return e.o[t]=r,e.R[t]=false,true;if(qu(r,n)&&(r!==void 0||Uo(e.t,t)))return true;Do(e),Vo(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]=true),true},deleteProperty:function(e,t){return No(e.t,t)!==void 0||t in e.t?(e.R[t]=false,Do(e),Vo(e)):delete e.R[t],e.o&&delete e.o[t],true},getOwnPropertyDescriptor:function(e,t){var r=gt(e),o=Reflect.getOwnPropertyDescriptor(r,t);return o&&{writable:true,configurable:e.i!==1||t!=="length",enumerable:o.enumerable,value:r[t]}},defineProperty:function(){ce(11);},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){ce(12);}},ur={};pr(zo,(function(e,t){ur[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)};})),ur.deleteProperty=function(e,t){return process.env.NODE_ENV!=="production"&&isNaN(parseInt(t))&&ce(13),ur.set.call(this,e,t,void 0)},ur.set=function(e,t,r){return process.env.NODE_ENV!=="production"&&t!=="length"&&isNaN(parseInt(t))&&ce(14),zo.set.call(this,e[0],t,r,e[0])};var Xu=(function(){function e(r){var o=this;this.O=Ss,this.D=true,this.produce=function(n,a,s){if(typeof n=="function"&&typeof a!="function"){var i=a;a=n;var c=o;return function(R){var g=this;R===void 0&&(R=i);for(var b=arguments.length,k=Array(b>1?b-1:0),v=1;v<b;v++)k[v-1]=arguments[v];return c.produce(R,(function(F){var _;return (_=a).call.apply(_,[g,F].concat(k))}))}}var l;if(typeof a!="function"&&ce(6),s!==void 0&&typeof s!="function"&&ce(7),yt(n)){var u=gs(o),p=$o(o,n,void 0),d=true;try{l=a(p),d=!1;}finally{d?jr(u):Fo(u);}return typeof Promise<"u"&&l instanceof Promise?l.then((function(R){return Oo(u,s),Mo(R,u)}),(function(R){throw jr(u),R})):(Oo(u,s),Mo(l,u))}if(!n||typeof n!="object"){if((l=a(n))===void 0&&(l=n),l===Ts&&(l=void 0),o.D&&jo(l,true),s){var f=[],m=[];_e("Patches").M(n,l,f,m),s(f,m);}return l}ce(21,n);},this.produceWithPatches=function(n,a){if(typeof n=="function")return function(l){for(var u=arguments.length,p=Array(u>1?u-1:0),d=1;d<u;d++)p[d-1]=arguments[d];return o.produceWithPatches(l,(function(f){return n.apply(void 0,[f].concat(p))}))};var s,i,c=o.produce(n,a,(function(l,u){s=l,i=u;}));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){yt(r)||ce(8),zt(r)&&(r=ju(r));var o=gs(this),n=$o(this,r,void 0);return n[fe].C=true,Fo(o),n},t.finishDraft=function(r,o){var n=r&&r[fe];process.env.NODE_ENV!=="production"&&(n&&n.C||ce(9),n.I&&ce(10));var a=n.A;return Oo(a,o),Mo(void 0,a)},t.setAutoFreeze=function(r){this.D=r;},t.setUseProxies=function(r){r&&!Ss&&ce(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=_e("Patches").$;return zt(r)?s(r,o):this.produce(r,(function(i){return s(i,o)}))},e})(),ge=new Xu,ep=ge.produce;ge.produceWithPatches.bind(ge);ge.setAutoFreeze.bind(ge);ge.setUseProxies.bind(ge);ge.applyPatches.bind(ge);ge.createDraft.bind(ge);ge.finishDraft.bind(ge);var Jr=ep;var Ae=Ie.actions,Ps=dr({block:$e("block"),dimension:$e("dimension"),formatter:$e("formatter"),report:$e("report"),section:$e("section"),variant:$e("variant"),datasource:$e("datasource")}),oe=dr({block:ze("block"),dimension:ze("dimension"),formatter:ze("formatter"),report:ze("report"),section:ze("section"),variant:ze("variant"),datasource:ze("datasource")}),ks=dr({block:we("block"),dimension:we("dimension"),formatter:we("formatter"),report:we("report"),section:we("section"),variant:we("variant"),datasource:we("datasource")}),xs=dr({block:ht("block"),dimension:ht("dimension"),formatter:ht("formatter"),report:ht("report"),section:ht("section"),variant:ht("variant"),datasource:ht("datasource")}),Is=dr({block:_s("block"),section:_s("section")});function dr(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 bt(e,t){return (r,o)=>{let a=o().records.requests[e][t],s=!a||a.status==="UNINITIALIZED"?"LOADING":"FETCHING";r(Ae.setRequest({key:t,type:e,status:s}));}}function Rt(e,t,r,o){return n=>{typeof window=="object"&¬ifications.show({autoClose:3e3,color:"red",id:t,message:o,title:"Error"}),n(Ae.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function $e(e){return t=>{let r=Qo(e,t);return (o,n,a)=>(o(bt(e,r)),pe(a,"create",e)(t).then(i=>(i.ok===true?o(Ae.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(Rt(e,r,i.status,i.error)),i)))}}function op(e){return t=>{let r=Qo(e,t[0]);return (o,n,a)=>(o(bt(e,r)),pe(a,"createBulk",e)(t).then(i=>(i.ok===true?o(Ae.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(Rt(e,r,i.status,i.error)),i)))}}function vs(e,t,r){return r.replace(new RegExp(e,"g"),t)}function np(e){return e.section_id!==void 0}function ap(e){return e.report_id!==void 0}function _s(e){return t=>{let{create:r}=t;return (o,n,a)=>$e(e)(r)(o,n,a).then(async i=>{if(i.ok){let{data:c}=i,{id:l}=c,{update:u}=t,p=Ls(e,{id:l});if(o(bt(e,`${p}`)),e==="block"&&np(r)){let d=Jr(u,g=>{g.id=l;}),{contentByLocale:f}=d;f&&(d=Jr(d,g=>{g.id=l,g.contentByLocale=Object.keys(f).reduce((b,k)=>{let v=f?f[k]:{};return b[k]={...v,id:l},b},{});}));let R=d.inputs?.map(g=>({type:g.type,id:g.id,inputAction:{operation:"create",input:{input_id:g.id,block_id:d.id}}}));return R&&R.length>0&&ws(e)([d,...R])(o,n,a).then(()=>ze("section")({id:d.section_id,include:true})(o,n,a).then(g=>(g.ok&&o(Ae.setRequest({key:p,type:e,status:"SUCCESS",data:g.data})),g))),we(e)(d)(o,n,a).then(g=>(g.ok&&o(Ae.setRequest({key:p,type:e,status:"SUCCESS",data:g.data})),g))}if(e==="section"&&ap(r)){let{id:d}=c,f=Jr(u,g=>{g.id=d;}),{blocks:m}=f,R=m?.map(g=>({type:g.type,blockcol:g.blockcol,blockrow:g.blockrow,section_id:d,locales:Object.keys(g.contentByLocale).map(b=>b)}));return R&&m&&await op("block")(R)(o,n,a).then(g=>{if(g.ok){let b=g.data,k=[],v=b.map((F,_)=>{let B={...F},D=B.id,w=m[_];w.contentByLocale&&(B.contentByLocale=Object.keys(w.contentByLocale).reduce((A,S)=>{let T=w.contentByLocale[S];return A[S]={...T,content:{...T.content},id:B.id},A},{}));let{settings:L}=w,{contentByLocale:U,id:C}=B;B.settings=L;let q={id:C,contentByLocale:U,settings:L};return w.inputs.map(A=>A.id).reduce((A,S)=>{let T=m.findIndex(x=>x.id===S);return [...A,T]},[]).map(A=>({...b[A],originalBlock:m[A]})).forEach(A=>{let{id:S,type:T,originalBlock:x}=A;if([M.SELECTOR,M.VIZ].includes(T)){if(q.contentByLocale?.logic?.content?.api){let ne=q.contentByLocale?.logic.content.api;q.contentByLocale.logic.content.api=vs(`(selector${x.id}id)`,`selector${S}id`,ne);}if(q.contentByLocale?.logic?.content?.logic){let ne=q.contentByLocale.logic.content.logic;q.contentByLocale.logic.content.logic=vs(`(selector${x.id}id)`,`selector${S}id`,ne);}}k.push({id:S,inputAction:{operation:"create",input:{input_id:S,block_id:D}}});}),q});return ws("block")([...v,...k])(o,n,a)}}),we(e)(f)(o,n,a).then(g=>(g.ok&&o(Ae.setRequest({key:p,type:e,status:"SUCCESS",data:g.data})),g))}return we(e)({...u,id:c.id})(o,n,a)}})}}function ze(e){return t=>{let r=Cs(e,t);return (o,n,a)=>{o(bt(e,r));let s=pe(a,"read",e);if(typeof s!="function"){let i=`Failed to get valid RPC method for entity "${e}"`;return o(Rt(e,r,500,i)),Promise.reject(new Error(i))}return s(t).then(i=>(i.ok===true?o(Ae.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(Rt(e,r,i.status,i.error)),i))}}}function we(e){return t=>{let r=Zo(e,t);return (o,n,a)=>(o(bt(e,r)),pe(a,"update",e)(t).then(i=>(i.ok===true?o(Ae.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(Rt(e,r,i.status,i.error)),i)))}}function ws(e){return t=>{let r=Zo(e,t[0]);return (o,n,a)=>(o(bt(e,r)),pe(a,"updateBulk",e)(t).then(i=>(i.ok===true?o(Ae.setUpdateRequest({key:r,operation:"updateBulk",status:"SUCCESS",type:e,data:i.data})):o(Rt(e,r,i.status,i.error)),i)))}}function ht(e){return t=>{let r=Bs(e,t);return (o,n,a)=>(o(bt(e,r)),pe(a,"delete",e)(t).then(i=>{i.ok===true?o(Ae.setDeleteRequest({key:r,operation:"delete",status:"SUCCESS",type:e,data:i.data})):o(Rt(e,r,i.status,i.error));}))}}function Qo(e,t){if(e==="variant"){let r=t;return `create(variant, [${r.dimension_id}, ${r.name}])`}return `create(${e}, [${Object.keys(t)}])`}function Cs(e,t={}){let r=t.id==null?null:`'${t.id}'`;return `read(${e}, ${r}, ${!!t.include})`}function Zo(e,t){let{id:r,...o}=t;return `update(${e}, ${r}, [${Object.keys(o)}])`}function Bs(e,t){return `delete(${e}, ${t})`}function Ls(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:Os,setPreviews:sp,setSectionState:Ms,resetSectionState:Ns,setCurrentLocale:ip,setPreferredLocale:cp,addRunConsumersRunning:Ds,removeRunConsumersRunning:Us}=xe;function lp(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 up(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 pp(){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 qe(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 dp(e){return async(t,r,o)=>{let n=await o.searchMember(e);if(n.ok===true)return n.data;throw new Error(n.error)}}async function Fs(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(Os(i)),n.activeSection&&t(Vs(e,{query:s}));}function mp(e,t){return async(r,o)=>Fs(e,r,o,{query:{[t]:void 0}})}function fp(e,t,r){return async(o,n)=>Fs(e,o,n,{query:{[t]:r}})}function Vs(e,t){return async(r,o)=>{let n=o(),{currentLocale:a}=n.status,s=n.records.entities.block,i=e.formatterFunctions[a],c=e.datasourceFunctions,{parsedParams:l,statusPayload:u}=ms(n.status,t),{sid:p,bid:d,previews:f,query:m}=l;Object.keys(u).length&&r(xe.setStatus(u));let R={...Vt(f),locale:a,...de()},g={variables:R,query:m,locale:a};r(xe.addRunConsumersRunning([p]));let b=n.records.entities.section[p],k=async v=>r(qe(v));try{let v=await Ft(s,b&&[b],d,i,g,void 0,k,"section",c),{variables:F,status:_}=v;r($t.setVariableChange({attributes:R,variables:F,status:_})),r(xe.removeRunConsumersRunning([p]));}catch(v){console.error("Error in runConsumers client side: recalculateVariables",v);}}}function mr(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 gp(e){return async(t,r,o)=>{let n=await o.urlProxy(e);if("error"in n)throw new Error(n.error);return n.data}}function yp(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function hp(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 Rp(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 bp({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 Sp(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 Ge(e){let{removeBlocks:t}=Ie.actions;return async r=>{await r(t(e));}}function fr(e){let{addBlocks:t}=Ie.actions;return async r=>{await r(t(e));}}function Ep(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 Ap(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 Tp(e){return async(t,r,o)=>{let n=await o.revalidateReport({reportId:e.reportId,profilePrefix:e.profilePrefix});if("error"in n)throw new Error(n.error);return n.data}}function vp(){return async(e,t,r)=>{let o=await r.readEnvSecrets({});if("error"in o)throw new Error(o.error);return o.data}}function gr(){let{removeDataSourceLogic:e}=Ie.actions;return async t=>{await t(e());}}var $s=()=>configureStore({reducer:{[Ie.name]:Ie.reducer,[qr.name]:qr.reducer,[Gr.name]:Gr.reducer},middleware(e){return e({thunk:{extraArgument:sr("/api/cms/")}})}}),Et=createWrapper($s);function xp(e){let t=process.cwd(),r=kp.resolve(t.endsWith("/example")?t.replace("/example",""):t,"package-lock.json"),o;try{let n=JSON.parse(il.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 Ip(e){let t=()=>Promise.resolve({}),{pathSegmentsKey:r="bespoke",preResolve:o=t,postResolve:n=t,authOptions:a={providers:[]}}=e||{};return Et.getServerSideProps(s=>{let{dispatch:i}=s;return async c=>{let l=await ye(c.req,c.res,a);if(!l)return {redirect:{destination:"/api/auth/signin?callbackUrl=/cms",permanent:false}};let u=new Set([G.ADMIN,G.EDITOR,G.WRITER]);if(!(l?.user?.bespoke_roles||[]).some(b=>u.has(b)))return {redirect:{destination:"/",permanent:false}};let d=c.query[r],[f]=Array.isArray(d)?d:[d];await i(it);let m=await xp("@datawheel/bespoke"),R=await o(s,c);if("redirect"in R)return {props:R};f==="reports"&&(zs(c.query[r])?await Promise.all([i(oe("formatter",{})),i(oe("datasource",{include:true})),i(oe("report",{id:zs(c.query[r]),include:true})),xe.setStatus({isCMS:true})]):await Promise.all([i(oe("report",{include:"dimensions"})),xe.setStatus({isCMS:true})])),f==="metadata"&&await i(oe("report",{include:"dimensions"})),f==="formatters"&&await i(oe("formatter",{})),f==="datasources"&&await i(oe("datasource",{include:true}));let g=await n(s,c);return {props:{...R,...g,bespokeVersion:m,session:l}}}})}function zs(e){if(e==null||e==="")return;let[,t]=Array.isArray(e)?e:[e];return Number.parseInt(t)||void 0}var {locales:Bp}=j(),Lp={pathSegment:"path",formatterFunctions:Bp.reduce((e,t)=>({...e,[t]:{}}),{}),datasourceFunctions:[],profilePrefix:"path",previewPrefix:null,siteProps:{}};createContext(Lp);j();var Qr=e=>e.records.entities.block;function Kt(e){return t=>Object.values(t.records.entities[e])}var Zr=Kt("section"),Xr=Kt("formatter"),Jp=de();function eo(e){return Object.values(e.records.entities.datasource||[]).sort((t,r)=>t.content.order>r.content.order?1:-1).map(t=>{let r={...Jp};return {...t,content:{...t.content,pattern:be(t.content.pattern,{},{variables:r})}}})}var Yp=async(e,t,r,o,n)=>{if(e.length===0)throw new Error("No slugs provided");let a=await t(r({mode:"slugs",locale:n,slugs:e,output:"full"})),s=a.results[0].report_id;if(a.results.length>1){if(a.results.every(m=>m.report_id===s)===false)throw new Error("Members belong to different reports");let l=a.results.map(m=>m.dimension_id),u=new Set(l);if(l.length!==u.size)throw new Error("Members belong to same dimensions");let p=a.results.sort((m,R)=>m.dimension_ordering>R.dimension_ordering?1:-1).reduce((m,R,g)=>(m[R.variant_slug]=g,m),{}),d=e.reduce((m,R,g)=>(m[R.variantSlug]=g,m),{});if(!(Object.keys(p).length===Object.keys(d).length&&Object.keys(p).every(m=>Object.prototype.hasOwnProperty.call(d,m)&&p[m]===d[m])))throw new Error("Variant slugs do not match the expected dimension order")}let c=(await t(o({report_id:s,count:false}))).data.find(l=>l.id===s);if(!c||a.results.length!==c.dimensions.length)throw new Error(`Missing members for report ID ${s}`);return a},to=Yp;function Qp(e){let{fallback:t=true,limit:r=50}=e||{};return async o=>{let{defaultLocale:n=me,locales:a=[]}=o,s=[];if(r>0){let i=a.find(u=>u===n),{searchMember:c}=await rt().then(Nt),l=await c({query:"",limit:r,format:"plain",locale:i||me,noImage:false,visible:true,report:[],dimension:[],variant:[],includes:true});l.ok===true&&(s=l.data.results.map(u=>({locale:a.find(p=>p===u.locale),params:{bespoke:[u.variant.slug,u.slug]}})));}return {fallback:t,paths:s}}}function Zp(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return Et.getStaticProps(r=>{let{dispatch:o}=r;return async n=>{await o(it);let a=new Date().toISOString(),{locale:s=me,params:i={}}=n,c=Array.from(en(i[t])),l;try{l=await to(c,o,qe,mr,s);}catch(w){return console.error("[Bespoke slug validation Failed]: Return 404:",w.message,`[${s}] -> /${c.map(L=>`${L.variantSlug}/${L.memberSlug}`).join("/")}`),{notFound:!0}}o(St.setPreviews(l.results)),await Promise.all([o(oe("formatter",{})),o(oe("datasource",{include:!0})),o(oe("report",{id:l.results.map(w=>w.report_id),include:!0,locales:[s]}))]);let u=r.getState(),p=Xr(u),d=eo(u),f=cr(p,s),m=Zr(u),R=Qr(u),g={...R},b={},k=Object.values(R).reduce((w,L)=>("access"in L.settings&&!["public","guest"].some(U=>!L.settings.access||L.settings.access.includes(U))&&w.push(L.id),w),[]),v=k.filter(w=>g[w].settings[Le.FALLBACK]),F=Array.from(new Set([...v,...Se(v,Object.values(g))])),_=k.filter(w=>[M.SELECTOR,M.MULTIHIERARCHY_SELECTOR].includes(g[w].type)),z=Array.from(new Set([..._,...Se(_,Object.values(g))]));k=Array.from(new Set([...k,...F,...z,...Se(k,Object.values(g))])),k.forEach(w=>{v.includes(w)?(b[w]={...g[w],type:M.FALLBACK,original_type:g[w].type},delete g[w]):_.includes(w)&&(b[w]={...g[w],settings:{...g[w].settings,[Le.DISABLED]:!0}},delete g[w]),z.includes(w)||delete g[w];}),await o(Ge(k.filter(w=>!z.includes(w)))),await o(fr(b));let B={...Vt(l.results),locale:s,...de()},D=async w=>await o(qe(w));return await Ft({...g,...b},m,void 0,f,{locale:s,query:i,variables:B},void 0,D,"report",d).then(async w=>{let L=Object.keys({...g,...b}).reduce((U,C)=>(w.variables[C]&&w.status[C]||U.push(C),U),[]);await o(Ge(L)),await o($t.setVariableChange({...w,attributes:B})),await o(gr());}),{props:{buildTime:a}}}})}catch(r){console.error("ERROR SSR",r);}}function en(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}}}function Xp(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return Et.getServerSideProps(r=>{let{dispatch:o}=r;return async n=>{let{section:a,block:s}=n.query,i=Object.fromEntries(Object.entries(n.query).filter(([P])=>P.match(/selector\d+id/)));if(!a&&!s)return {notFound:!0};let c=Number(a);await o(it);let l=new Date().toISOString(),{locale:u=me,params:p={},req:d}=n,f=Array.from(en(p[t])),m;try{m=await to(f,o,qe,mr,u);}catch(P){return console.error("[Bespoke slug validation Failed]: Return 404:",P.message,`/${u}/${d.url}`),{notFound:!0}}o(St.setPreviews(m.results)),await Promise.all([o(oe("formatter",{})),o(oe("datasource",{include:!0})),o(oe("report",{id:m.results.map(P=>P.report_id),include:!0,locales:[u]}))]);let R=r.getState(),g=Xr(R),b=eo(R),k=cr(g,u),v=Zr(R).filter(P=>P.id===c),F=Qr(R),_={...F},z={},B=Object.values(F).reduce((P,H)=>("access"in H.settings&&!["public","guest"].some(A=>!H.settings.access||H.settings.access.includes(A))&&P.push(H.id),P),[]),D=B.filter(P=>_[P].settings[Le.FALLBACK]),w=Array.from(new Set([...D,...Se(D,Object.values(_))])),L=B.filter(P=>[M.SELECTOR,M.MULTIHIERARCHY_SELECTOR].includes(_[P].type)),U=Array.from(new Set([...L,...Se(L,Object.values(_))]));B=Array.from(new Set([...B,...w,...U,...Se(B,Object.values(_))])),B.forEach(P=>{D.includes(P)?(z[P]={..._[P],type:M.FALLBACK,original_type:_[P].type},delete _[P]):L.includes(P)&&(z[P]={..._[P],settings:{..._[P].settings,[Le.DISABLED]:!0}},delete _[P]),U.includes(P)||delete _[P];}),await o(Ge(B.filter(P=>!U.includes(P)))),await o(fr(z));let C={...Vt(m.results),locale:u,...de()},q=async P=>await o(qe(P));await Ft({..._,...z},v,void 0,k,{locale:u,query:{...p,...i},variables:C},void 0,q,"section",b).then(async P=>{let H=Object.keys({..._,...z}).reduce((A,S)=>(P.variables[S]&&P.status[S]||A.push(S),A),[]);await Promise.all([o(Ge(H)),o($t.setVariableChange({...P,attributes:C})),o(gr())]);});let O=Object.keys({..._,...z}).filter(P=>a&&s?P!==s:_[P]&&_[P].section_id!==c);return await o(Ge(O)),{props:{buildTime:l}}}})}catch(r){return console.error("ERROR SSR",r),async()=>({notFound:true})}}
|