@datawheel/bespoke 0.7.4 → 0.7.5

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/server.js CHANGED
@@ -1,37 +1,37 @@
1
1
  import { initAuth0 } from '@auth0/nextjs-auth0';
2
- import fs from 'auth0';
3
- import * as fi from 'pg';
2
+ import hs from 'auth0';
3
+ import * as hi from 'pg';
4
4
  import { Sequelize, Error as Error$1, Op, fn as fn$1, col, literal, where, cast, json, DataTypes, Model } from 'sequelize';
5
- import sr from 'yn';
6
- import * as Os from 'd3-array';
7
- import * as Ns from 'd3-collection';
8
- import * as Ds from 'd3-format';
9
- import * as Us from 'd3-time-format';
5
+ import ir from 'yn';
6
+ import * as Us from 'd3-array';
7
+ import * as Fs from 'd3-collection';
8
+ import * as Vs from 'd3-format';
9
+ import * as zs from 'd3-time-format';
10
10
  import { formatAbbreviate } from 'd3plus-format';
11
11
  import { date } from 'd3plus-axis';
12
12
  import { assign, closest, merge, isObject } from 'd3plus-common';
13
13
  import { strip, titleCase } from 'd3plus-text';
14
- import ur from 'axios';
15
- import hi from 'slugify';
16
- import vi from 'flexsearch';
17
- import Ki from 'base58';
18
- import ji from 'flickr-sdk';
19
- import Vi from 'sharp';
14
+ import pr from 'axios';
15
+ import Si from 'slugify';
16
+ import Pi from 'flexsearch';
17
+ import Wi from 'base58';
18
+ import Ji from 'flickr-sdk';
19
+ import qi from 'sharp';
20
20
  import { createApi } from 'unsplash-js';
21
- import Xi from 'fs';
21
+ import rc from 'fs';
22
22
  import { createContext, createElement } from 'react';
23
23
  import { renderToString } from 'react-dom/server';
24
- import * as Fr from '@tabler/icons-react';
25
- import wc from 'nextjs-cors';
26
- import xc from 'image-type';
27
- import Ac from 'formidable';
28
- import Pc from 'dom-parser';
29
- import fu from 'path';
30
- import ha from 'axios-retry';
24
+ import * as Vr from '@tabler/icons-react';
25
+ import Cc from 'nextjs-cors';
26
+ import Bc from 'image-type';
27
+ import _c from 'formidable';
28
+ import xc from 'dom-parser';
29
+ import yu from 'path';
30
+ import ba from 'axios-retry';
31
31
  import { format } from 'pretty-format';
32
- import Zc from 'toposort';
32
+ import tl from 'toposort';
33
33
  import { csvParse } from 'd3-dsv';
34
- import ul from 'next/config';
34
+ import dl from 'next/config';
35
35
  import { schema, normalize } from 'normalizr';
36
36
  import { createSlice, configureStore } from '@reduxjs/toolkit';
37
37
  import { HYDRATE, createWrapper } from 'next-redux-wrapper';
@@ -40,24 +40,24 @@ import 'react-redux';
40
40
  import 'react/jsx-runtime';
41
41
  import '@mantine/core';
42
42
 
43
- var ss=Object.defineProperty;var is=(e,t)=>{for(var r in t)ss(e,r,{get:t[r],enumerable:!0});};var Q=initAuth0({secret:process.env.AUTH0_SECRET,issuerBaseURL:process.env.AUTH0_ISSUER_BASE_URL,baseURL:process.env.REPORTS_BASE_URL||process.env.AUTH0_BASE_URL,clientID:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET});var ls=Q.getSession;var us=async(e,t,r)=>r,ps=async(e,t,r)=>await Q.handleProfile(e,t,{afterRefetch:us,refetch:r}),ds=Q.handleAuth({profile:async(e,t)=>{try{await ps(e,t,!1);}catch(r){console.error(r);}}});var R=class extends Error{constructor(r,o){super(o);this.code=r;}toJSON(){return ko(this)}static is(r){return Object.prototype.hasOwnProperty.call(r,"code")&&typeof r.code=="number"}};function ms(e){return {ok:!0,status:200,data:e}}function ko(e){return {ok:!1,status:R.is(e)?e.code:500,error:e.message}}function _(e){return t=>e(t).then(ms,ko)}function oe(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${fe(r)}`;return e[n]}let o=`${t}${fe(r)}`;return e[o]}function fe(e){return e[0].toUpperCase()+e.slice(1)}var V={ADMIN:"Admin",EDITOR:"Editor",WRITER:"Writer"},Po={APP:"App",USER:"User"},wo=e=>{let t=Object.values(V);return e?e.map(r=>({...r,type:t.includes(r.name)?Po.APP:Po.USER})):[]};var gs={domain:new URL(process.env.AUTH0_ISSUER_BASE_URL||"").host,clientId:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET},ce=new fs.ManagementClient(gs);function xo(){return async()=>{try{let e=await ce.roles.getAll({include_totals:!0,per_page:100});return {roles:wo(e.roles)}}catch(e){throw console.error("AuthZeroError",e),new R(e.response?.status||500,e.message)}}}function Io(){return async e=>{try{let t;if(e){let r={include_totals:!0,per_page:10,page:e.page||0};if(e.role_id&&e.role_id!==""){let o={...r,id:e.role_id};t=await ce.roles.getUsers(o);}else {let o={...r,q:e.query};t=await ce.users.getAll(o);}}return t}catch(t){throw console.error("AuthZeroError",t),new R(t.response?.status||500,t.message)}}}function Co(){return async e=>{try{if(e){let t=await Promise.all([ce.users.get({id:e}),ce.users.getRoles({id:e})]);return {...t[0],roles:t[1]}}else throw new R(404,"User ID required")}catch(t){throw console.error("AuthZeroError",t),new R(t.response?.status||500,t.message)}}}function Bo(){return async e=>{try{if(e.user_id){if(e.app_metadata&&await kr(e.user_id,e.app_metadata),e.user_metadata&&await Pr(e.user_id,e.user_metadata),e.roles){let r=(await ce.users.getRoles({id:e.user_id})).map(s=>s.id),o=e.roles.map(s=>s.id),n=o.filter(s=>!r.includes(s)),a=r.filter(s=>!o.includes(s));n.length>0&&await ce.users.assignRoles({id:e.user_id},{roles:n}),a.length>0&&await ce.users.removeRoles({id:e.user_id},{roles:a});}return {status:"success",message:"User updated!"}}else throw new R(404,"user_id is required")}catch(t){throw console.error("AuthZeroError",t),new R(t.response?.status||500,t.message)}}}function Mo(){return async e=>{try{return "NOT USED SERVICE"}catch(t){throw console.error("AuthZeroError",t),new R(t.response?.status||500,t.message)}}}async function kr(e,t){return await ce.users.updateAppMetadata({id:e},t)}async function Pr(e,t){return await ce.users.updateUserMetadata({id:e},t)}async function Lo(e,t){try{let r=await ce.getUsers({search_engine:"v3",q:`user_metadata.${e}:"${t}"`});for(let o=0;o<r.length;o++){let n=r[o];n.bespoke_user_metadata=n.user_metadata||{},delete n.user_metadata,n.bespoke_roles=(await ce.users.getRoles({id:n.user_id})).map(a=>a.name);}return r}catch(r){console.error(r);}}var ys=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{let s=await Q.getSession(e,t);if(!s||!s.user)throw new Error("not_authenticated");{let{user:i}=s,l={...s.user.bespoke_app_metadata||{},...r};await kr(s.user.sub,l),await Q.updateSession(e,t,{...s,user:{...i,bespoke_app_metadata:l}}),o({error:"",description:`App metadata updated for user ${s.user.email}`});}}catch(s){n({error:s.message,description:"The user does not have an active session or is not authenticated"});}})();}),hs=ys;var bs=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{let s=await Q.getSession(e,t);if(!s||!s.user)throw new Error("not_authenticated");{let{user:i}=s,l={...s.user.bespoke_user_metadata||{},...r};await Pr(s.user.sub,l),await Q.updateSession(e,t,{...s,user:{...i,bespoke_user_metadata:l}}),o({error:"",description:`App metadata updated for user ${s.user.email}`});}}catch(s){n({error:s.message,description:"The user does not have an active session or is not authenticated"});}})();}),Rs=bs;var Rt=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;function Wt(e,t){return e.some(r=>t.includes(r))}function Jt(e){return e.filter((t,r,o)=>o.indexOf(t)===r)}var Ss=(e,t)=>async function(r,o){let n=await Q.getSession(r,o);if(!n||!n.user){o.status(401).json({error:"not_authenticated",description:"The user does not have an active session or is not authenticated"});return}let a=n.user.bespoke_roles;if(t.length>0&&!Wt(a,t)){o.status(402).json({error:"unauthorize",description:"The user requires some specific roles"});return}await e(r,o);},Es=Ss;var As=(e,t)=>new Promise((r,o)=>{(async()=>{try{if(e&&t&&e!==""&&t!==""){let a=await Lo(e,t);r(a);}else o({error:"empty_params",description:"key or value params are empty"});}catch(a){o({error:a.message,description:"Error "});}})();}),Ts=As;var je=(e=process.env)=>sr(e.REPORTS_LOGGING);var ke=class extends Model{getContent(t){let r=this.contentByLocale.find(o=>o.locale===t);if(!r)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return r}toJSON(){let t=this.get({plain:!0}),{inputs:r=[],consumers:o=[],contentByLocale:n=[]}=this;return {...t,inputs:r.map(a=>a.toJSON()),consumers:o.map(a=>a.toJSON()),contentByLocale:Object.fromEntries(n.map(a=>[a.locale,a.toJSON()]))}}};function ks(e){return ke.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},settings:{type:DataTypes.JSON,defaultValue:{}},type:{type:DataTypes.STRING,defaultValue:"paragraph"},shared:{type:DataTypes.BOOLEAN,defaultValue:!1},blockrow:DataTypes.STRING,blockcol:DataTypes.STRING,section_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_section",key:"id"}}},{sequelize:e,modelName:"block",tableName:"bespoke_reports_block",freezeTableName:!0,timestamps:!1}),t=>(ke.hasMany(t.block_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),ke.belongsToMany(t.block,{through:"block_input",foreignKey:"block_id",otherKey:"input_id",as:"inputs"}),ke.belongsToMany(t.block,{through:"block_input",foreignKey:"input_id",otherKey:"block_id",as:"consumers"}),ke)}var Oo=ks;var Yt=class extends Model{};function ws(e){return Yt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:!0},content:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"block_content",tableName:"bespoke_reports_block_content",freezeTableName:!0,timestamps:!1}),()=>Yt}var No=ws;var Qt=class extends Model{};function Is(e){return Qt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},block_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},input_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}}},{sequelize:e,modelName:"block_input",tableName:"bespoke_reports_block_input",freezeTableName:!0,timestamps:!1}),()=>Qt}var Do=Is;function Ir(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 Uo(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 Cs(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(Ir(c)-Ir(i)-Ir(s)+s*Math.log(a)+i*Math.log(1-a));a<(s+1)/(c+2)?o=l*Uo(a,s,i):o=1-l*Uo(1-a,i,s),n=1-o;}return Math.round(n*1e5)/1e5}function Bs(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function St(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 Ms(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;)St(t,c,e,e)*.5+St(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;)St(t,c,e,e)*.5+St(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 Ls(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,Zt((1+p)*i/(1-i),p+1,1e10)+.5*Zt((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,Zt((1+p)*i/(1-i),0,p-1)+.5*Zt((1+p)*i/(1-i),p,p)<u?i-=c:i+=c;let y=(1+p)*i/(1-i)/a;return {lci:d,uci:y}}function Zt(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 Fo={binomialCdf:Cs,binP:St,computeMidP:Ms,criticalValue:Bs,smr:Ls};var Pe={d3:{...Os,...Ns,...Ds,...Us},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:Fo},Vo={};var Se={UNILATERAL:"uni",MULTILATERAL:"multi"},xe={SINGLE:"single",MULTI:"multi"};var Cr={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},js={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Hs={FALLBACK:"fallback"};var Ws={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"},Br={GENERATOR:"generator",RELATED:"related",VIZ:"visualization"},Mr="logic",z={...Ws,...Br},qo={NAME:"name",DESCRIPTION:"description",...Cr,...js,...Hs};var Xt={FORMATTER:"formatter",FUNCTION:"function"},He={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"};var We=class extends Model{};function Qs(e){return We.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{description:"",testValue:"Foo",type:Xt.FORMATTER,inputType:He.STRING,logic:"return n;"}}},{sequelize:e,modelName:"formatter",tableName:"bespoke_reports_formatter",freezeTableName:!0,timestamps:!1,hooks:{async afterSync(t){let r=await We.findAll();if(t.force||r.length===0){let o=Object.entries(Vo).map(([n,a])=>({name:n,content:a}));await We.bulkCreate(o);}}}}),()=>We}var Go=Qs;var Et=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 Xs(e){return Et.init({id:{autoIncrement:!0,primaryKey:!0,type:DataTypes.INTEGER},url:{type:DataTypes.TEXT,unique:!0},author:DataTypes.TEXT,license:DataTypes.TEXT,splash:DataTypes.BLOB,thumb:DataTypes.BLOB},{sequelize:e,modelName:"image",tableName:"bespoke_reports_image",freezeTableName:!0}),t=>(Et.hasMany(t.image_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),Et)}var Ko=Xs;var er=class extends Model{};function ti(e){return er.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_image",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:!0},meta:DataTypes.TEXT},{sequelize:e,modelName:"image_content",tableName:"bespoke_reports_image_content",freezeTableName:!0,timestamps:!1}),()=>er}var jo=ti;var Ye=class extends Model{toJSON(){let t=this.get({plain:!0}),{dimensions:r=[],sections:o=[]}=this;return {...t,settings:t.settings,date:new Date(this.date||Date.now()).toISOString(),dimensions:r.map(n=>n.toJSON()),sections:o.map(n=>n.toJSON())}}};function oi(e){return Ye.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,allowNull:!1,defaultValue:""},visible:{type:DataTypes.BOOLEAN,defaultValue:!0},date:{type:DataTypes.DATE,defaultValue:DataTypes.NOW},type:{type:DataTypes.STRING,defaultValue:"report",validate:{isIn:[["report","story"]]}},settings:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"report",tableName:"bespoke_reports_report",freezeTableName:!0,timestamps:!1}),t=>(Ye.hasMany(t.dimension,{foreignKey:"report_id",sourceKey:"id",as:"dimensions"}),Ye.hasMany(t.section,{foreignKey:"report_id",sourceKey:"id",as:"sections"}),Ye)}var Ho=oi;var Ze=class extends Model{toJSON(){let t=this.get({plain:!0}),{variants:r=[]}=this;return {...t,variants:r.map(o=>o.toJSON())}}};function ai(e){return Ze.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},report_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},ordering:{type:DataTypes.INTEGER,defaultValue:0},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"dimension",tableName:"bespoke_reports_report_dimension",freezeTableName:!0,timestamps:!1}),t=>(Ze.hasMany(t.variant,{foreignKey:"dimension_id",sourceKey:"id",as:"variants",constraints:!1}),Ze.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),Ze)}var Wo=ai;var Xe=class extends Model{get report(){return this.dimension?.report}toJSON(){return this.get({plain:!0})}};function ii(e){return Xe.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},dimension_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},slug:{type:DataTypes.STRING,defaultValue:""},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},config:{type:DataTypes.JSONB,defaultValue:{}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"variant",tableName:"bespoke_reports_report_dimension_variant",freezeTableName:!0,timestamps:!1}),t=>(Xe.hasMany(t.search,{foreignKey:"variant_id",sourceKey:"id",as:"members",constraints:!1}),Xe.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),Xe)}var Jo=ii;var be=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 li(e){return be.init({id:{primaryKey:!0,type:DataTypes.TEXT},zvalue:DataTypes.DOUBLE,slug:DataTypes.TEXT,image_id:{type:DataTypes.INTEGER,references:{model:"bespoke_reports_image",key:"id"}},content_id:{autoIncrement:!0,type:DataTypes.INTEGER,unique:!0},variant_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension_variant",key:"id"}},dimension_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},report_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"search",tableName:"bespoke_reports_search",freezeTableName:!0,timestamps:!1}),t=>(be.belongsTo(t.variant,{foreignKey:"variant_id",targetKey:"id",as:"variant",constraints:!1}),be.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),be.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),be.belongsTo(t.image,{foreignKey:"image_id",targetKey:"id",as:"image",constraints:!1}),be.hasMany(t.search_content,{foreignKey:"id",sourceKey:"content_id",as:"contentByLocale"}),be)}var Yo=li;var tr=class extends Model{};function pi(e){return tr.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_search",key:"content_id"}},locale:{type:DataTypes.STRING,primaryKey:!0},name:DataTypes.TEXT,annotations:{type:DataTypes.JSONB,defaultValue:{}},attributes:{type:DataTypes.JSONB,defaultValue:{}},keywords:DataTypes.ARRAY(DataTypes.TEXT)},{sequelize:e,modelName:"search_content",tableName:"bespoke_reports_search_content",freezeTableName:!0,timestamps:!1}),()=>tr}var Qo=pi;var Tt=class extends Model{toJSON(){let t=this.get({plain:!0}),{blocks:r=[]}=this;return {...t,blocks:r.map(o=>o.toJSON())}}};function mi(e){return Tt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},settings:{type:DataTypes.JSON,defaultValue:{}},heading:{type:DataTypes.INTEGER,defaultValue:1},ordering:DataTypes.STRING,report_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}}},{sequelize:e,modelName:"section",tableName:"bespoke_reports_section",freezeTableName:!0,timestamps:!1}),t=>(Tt.hasMany(t.block,{foreignKey:"section_id",sourceKey:"id",as:"blocks"}),Tt)}var Zo=mi;var Xo={block:Oo,block_content:No,block_input:Do,formatter:Go,image:Ko,image_content:jo,report:Ho,dimension:Wo,variant:Jo,search:Yo,search_content:Qo,section:Zo};var en=je(),tn=process.env.REPORTS_DB_CONNECTION||"";if(!tn)throw new Error(`
43
+ var ls=Object.defineProperty;var us=(e,t)=>{for(var r in t)ls(e,r,{get:t[r],enumerable:!0});};var X=initAuth0({secret:process.env.AUTH0_SECRET,issuerBaseURL:process.env.AUTH0_ISSUER_BASE_URL,baseURL:process.env.REPORTS_BASE_URL||process.env.AUTH0_BASE_URL,clientID:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET});var ds=X.getSession;var ms=async(e,t,r)=>r,fs=async(e,t,r)=>await X.handleProfile(e,t,{afterRefetch:ms,refetch:r}),gs=X.handleAuth({profile:async(e,t)=>{try{await fs(e,t,!1);}catch(r){console.error(r);}}});var S=class extends Error{constructor(r,o){super(o);this.code=r;}toJSON(){return wo(this)}static is(r){return Object.prototype.hasOwnProperty.call(r,"code")&&typeof r.code=="number"}};function ys(e){return {ok:!0,status:200,data:e}}function wo(e){return {ok:!1,status:S.is(e)?e.code:500,error:e.message}}function k(e){return t=>e(t).then(ys,wo)}function se(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${fe(r)}`;return e[n]}let o=`${t}${fe(r)}`;return e[o]}function fe(e){return e[0].toUpperCase()+e.slice(1)}var G={ADMIN:"Admin",EDITOR:"Editor",WRITER:"Writer"},Io={APP:"App",USER:"User"},xo=e=>{let t=Object.values(G);return e?e.map(r=>({...r,type:t.includes(r.name)?Io.APP:Io.USER})):[]};var Rs={domain:new URL(process.env.AUTH0_ISSUER_BASE_URL||"").host,clientId:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET},le=new hs.ManagementClient(Rs);function Co(){return async()=>{try{let e=await le.roles.getAll({include_totals:!0,per_page:100});return {roles:xo(e.roles)}}catch(e){throw console.error("AuthZeroError",e),new S(e.response?.status||500,e.message)}}}function Bo(){return async e=>{try{let t;if(e){let r={include_totals:!0,per_page:10,page:e.page||0};if(e.role_id&&e.role_id!==""){let o={...r,id:e.role_id};t=await le.roles.getUsers(o);}else {let o={...r,q:e.query};t=await le.users.getAll(o);}}return t}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}function Lo(){return async e=>{try{if(e){let t=await Promise.all([le.users.get({id:e}),le.users.getRoles({id:e})]);return {...t[0],roles:t[1]}}else throw new S(404,"User ID required")}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}function Mo(){return async e=>{try{if(e.user_id){if(e.app_metadata&&await Pr(e.user_id,e.app_metadata),e.user_metadata&&await wr(e.user_id,e.user_metadata),e.roles){let r=(await le.users.getRoles({id:e.user_id})).map(s=>s.id),o=e.roles.map(s=>s.id),n=o.filter(s=>!r.includes(s)),a=r.filter(s=>!o.includes(s));n.length>0&&await le.users.assignRoles({id:e.user_id},{roles:n}),a.length>0&&await le.users.removeRoles({id:e.user_id},{roles:a});}return {status:"success",message:"User updated!"}}else throw new S(404,"user_id is required")}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}function Oo(){return async e=>{try{return "NOT USED SERVICE"}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}async function Pr(e,t){return await le.users.updateAppMetadata({id:e},t)}async function wr(e,t){return await le.users.updateUserMetadata({id:e},t)}async function No(e,t){try{let r=await le.getUsers({search_engine:"v3",q:`user_metadata.${e}:"${t}"`});for(let o=0;o<r.length;o++){let n=r[o];n.bespoke_user_metadata=n.user_metadata||{},delete n.user_metadata,n.bespoke_roles=(await le.users.getRoles({id:n.user_id})).map(a=>a.name);}return r}catch(r){console.error(r);}}var bs=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{let s=await X.getSession(e,t);if(!s||!s.user)throw new Error("not_authenticated");{let{user:i}=s,l={...s.user.bespoke_app_metadata||{},...r};await Pr(s.user.sub,l),await X.updateSession(e,t,{...s,user:{...i,bespoke_app_metadata:l}}),o({error:"",description:`App metadata updated for user ${s.user.email}`});}}catch(s){n({error:s.message,description:"The user does not have an active session or is not authenticated"});}})();}),Ss=bs;var Es=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{let s=await X.getSession(e,t);if(!s||!s.user)throw new Error("not_authenticated");{let{user:i}=s,l={...s.user.bespoke_user_metadata||{},...r};await wr(s.user.sub,l),await X.updateSession(e,t,{...s,user:{...i,bespoke_user_metadata:l}}),o({error:"",description:`App metadata updated for user ${s.user.email}`});}}catch(s){n({error:s.message,description:"The user does not have an active session or is not authenticated"});}})();}),As=Es;var St=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;function Wt(e,t){return e.some(r=>t.includes(r))}function Jt(e){return e.filter((t,r,o)=>o.indexOf(t)===r)}var Ts=(e,t)=>async function(r,o){let n=await X.getSession(r,o);if(!n||!n.user){o.status(401).json({error:"not_authenticated",description:"The user does not have an active session or is not authenticated"});return}let a=n.user.bespoke_roles;if(t.length>0&&!Wt(a,t)){o.status(402).json({error:"unauthorize",description:"The user requires some specific roles"});return}await e(r,o);},vs=Ts;var _s=(e,t)=>new Promise((r,o)=>{(async()=>{try{if(e&&t&&e!==""&&t!==""){let a=await No(e,t);r(a);}else o({error:"empty_params",description:"key or value params are empty"});}catch(a){o({error:a.message,description:"Error "});}})();}),ks=_s;var He=(e=process.env)=>ir(e.REPORTS_LOGGING);var ke=class extends Model{getContent(t){let r=this.contentByLocale.find(o=>o.locale===t);if(!r)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return r}toJSON(){let t=this.get({plain:!0}),{inputs:r=[],consumers:o=[],contentByLocale:n=[]}=this;return {...t,inputs:r.map(a=>a.toJSON()),consumers:o.map(a=>a.toJSON()),contentByLocale:Object.fromEntries(n.map(a=>[a.locale,a.toJSON()]))}}};function Is(e){return ke.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},settings:{type:DataTypes.JSON,defaultValue:{}},type:{type:DataTypes.STRING,defaultValue:"paragraph"},shared:{type:DataTypes.BOOLEAN,defaultValue:!1},blockrow:DataTypes.STRING,blockcol:DataTypes.STRING,section_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_section",key:"id"}}},{sequelize:e,modelName:"block",tableName:"bespoke_reports_block",freezeTableName:!0,timestamps:!1}),t=>(ke.hasMany(t.block_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),ke.belongsToMany(t.block,{through:"block_input",foreignKey:"block_id",otherKey:"input_id",as:"inputs"}),ke.belongsToMany(t.block,{through:"block_input",foreignKey:"input_id",otherKey:"block_id",as:"consumers"}),ke)}var Do=Is;var Yt=class extends Model{};function Cs(e){return Yt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:!0},content:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"block_content",tableName:"bespoke_reports_block_content",freezeTableName:!0,timestamps:!1}),()=>Yt}var Uo=Cs;var Qt=class extends Model{};function Ls(e){return Qt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},block_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},input_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}}},{sequelize:e,modelName:"block_input",tableName:"bespoke_reports_block_input",freezeTableName:!0,timestamps:!1}),()=>Qt}var Fo=Ls;function Cr(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 Vo(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 Ms(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(Cr(c)-Cr(i)-Cr(s)+s*Math.log(a)+i*Math.log(1-a));a<(s+1)/(c+2)?o=l*Vo(a,s,i):o=1-l*Vo(1-a,i,s),n=1-o;}return Math.round(n*1e5)/1e5}function Os(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function Et(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 Ns(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;)Et(t,c,e,e)*.5+Et(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;)Et(t,c,e,e)*.5+Et(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 Ds(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,Zt((1+p)*i/(1-i),p+1,1e10)+.5*Zt((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,Zt((1+p)*i/(1-i),0,p-1)+.5*Zt((1+p)*i/(1-i),p,p)<u?i-=c:i+=c;let y=(1+p)*i/(1-i)/a;return {lci:d,uci:y}}function Zt(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 zo={binomialCdf:Ms,binP:Et,computeMidP:Ns,criticalValue:Os,smr:Ds};var Pe={d3:{...Us,...Fs,...Vs,...zs},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:zo},$o={};var Se={UNILATERAL:"uni",MULTILATERAL:"multi"},Ie={SINGLE:"single",MULTI:"multi"};var Br={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Js={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Ys={FALLBACK:"fallback"};var Qs={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"},Lr={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},Mr="logic",C={...Qs,...Lr},Ko={NAME:"name",DESCRIPTION:"description",...Br,...Js,...Ys};var Xt={FORMATTER:"formatter",FUNCTION:"function"},We={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"};var Je=class extends Model{};function ei(e){return Je.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{description:"",testValue:"Foo",type:Xt.FORMATTER,inputType:We.STRING,logic:"return n;"}}},{sequelize:e,modelName:"formatter",tableName:"bespoke_reports_formatter",freezeTableName:!0,timestamps:!1,hooks:{async afterSync(t){let r=await Je.findAll();if(t.force||r.length===0){let o=Object.entries($o).map(([n,a])=>({name:n,content:a}));await Je.bulkCreate(o);}}}}),()=>Je}var jo=ei;var At=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 ri(e){return At.init({id:{autoIncrement:!0,primaryKey:!0,type:DataTypes.INTEGER},url:{type:DataTypes.TEXT,unique:!0},author:DataTypes.TEXT,license:DataTypes.TEXT,splash:DataTypes.BLOB,thumb:DataTypes.BLOB},{sequelize:e,modelName:"image",tableName:"bespoke_reports_image",freezeTableName:!0}),t=>(At.hasMany(t.image_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),At)}var Ho=ri;var er=class extends Model{};function ni(e){return er.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_image",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:!0},meta:DataTypes.TEXT},{sequelize:e,modelName:"image_content",tableName:"bespoke_reports_image_content",freezeTableName:!0,timestamps:!1}),()=>er}var Wo=ni;var Qe=class extends Model{toJSON(){let t=this.get({plain:!0}),{dimensions:r=[],sections:o=[]}=this;return {...t,settings:t.settings,date:new Date(this.date||Date.now()).toISOString(),dimensions:r.map(n=>n.toJSON()),sections:o.map(n=>n.toJSON())}}};function si(e){return Qe.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,allowNull:!1,defaultValue:""},visible:{type:DataTypes.BOOLEAN,defaultValue:!0},date:{type:DataTypes.DATE,defaultValue:DataTypes.NOW},type:{type:DataTypes.STRING,defaultValue:"report",validate:{isIn:[["report","story"]]}},settings:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"report",tableName:"bespoke_reports_report",freezeTableName:!0,timestamps:!1}),t=>(Qe.hasMany(t.dimension,{foreignKey:"report_id",sourceKey:"id",as:"dimensions"}),Qe.hasMany(t.section,{foreignKey:"report_id",sourceKey:"id",as:"sections"}),Qe)}var Jo=si;var Xe=class extends Model{toJSON(){let t=this.get({plain:!0}),{variants:r=[]}=this;return {...t,variants:r.map(o=>o.toJSON())}}};function ci(e){return Xe.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},report_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},ordering:{type:DataTypes.INTEGER,defaultValue:0},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"dimension",tableName:"bespoke_reports_report_dimension",freezeTableName:!0,timestamps:!1}),t=>(Xe.hasMany(t.variant,{foreignKey:"dimension_id",sourceKey:"id",as:"variants",constraints:!1}),Xe.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),Xe)}var Yo=ci;var et=class extends Model{get report(){return this.dimension?.report}toJSON(){return this.get({plain:!0})}};function ui(e){return et.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},dimension_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},slug:{type:DataTypes.STRING,defaultValue:""},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},config:{type:DataTypes.JSONB,defaultValue:{}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"variant",tableName:"bespoke_reports_report_dimension_variant",freezeTableName:!0,timestamps:!1}),t=>(et.hasMany(t.search,{foreignKey:"variant_id",sourceKey:"id",as:"members",constraints:!1}),et.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),et)}var Qo=ui;var Re=class extends Model{getContent(t){let{contentByLocale:r}=this;if(!r)throw new Error("This SearchModel entity didn't include its SearchContentModel association.");let o=r.find(n=>n.locale===t);if(!o)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return o}};function di(e){return Re.init({id:{primaryKey:!0,type:DataTypes.TEXT},zvalue:DataTypes.DOUBLE,slug:DataTypes.TEXT,image_id:{type:DataTypes.INTEGER,references:{model:"bespoke_reports_image",key:"id"}},content_id:{autoIncrement:!0,type:DataTypes.INTEGER,unique:!0},variant_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension_variant",key:"id"}},dimension_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},report_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"search",tableName:"bespoke_reports_search",freezeTableName:!0,timestamps:!1}),t=>(Re.belongsTo(t.variant,{foreignKey:"variant_id",targetKey:"id",as:"variant",constraints:!1}),Re.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),Re.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),Re.belongsTo(t.image,{foreignKey:"image_id",targetKey:"id",as:"image",constraints:!1}),Re.hasMany(t.search_content,{foreignKey:"id",sourceKey:"content_id",as:"contentByLocale"}),Re)}var Zo=di;var tr=class extends Model{};function fi(e){return tr.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_search",key:"content_id"}},locale:{type:DataTypes.STRING,primaryKey:!0},name:DataTypes.TEXT,annotations:{type:DataTypes.JSONB,defaultValue:{}},attributes:{type:DataTypes.JSONB,defaultValue:{}},keywords:DataTypes.ARRAY(DataTypes.TEXT)},{sequelize:e,modelName:"search_content",tableName:"bespoke_reports_search_content",freezeTableName:!0,timestamps:!1}),()=>tr}var Xo=fi;var vt=class extends Model{toJSON(){let t=this.get({plain:!0}),{blocks:r=[]}=this;return {...t,blocks:r.map(o=>o.toJSON())}}};function yi(e){return vt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},settings:{type:DataTypes.JSON,defaultValue:{}},heading:{type:DataTypes.INTEGER,defaultValue:1},ordering:DataTypes.STRING,report_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}}},{sequelize:e,modelName:"section",tableName:"bespoke_reports_section",freezeTableName:!0,timestamps:!1}),t=>(vt.hasMany(t.block,{foreignKey:"section_id",sourceKey:"id",as:"blocks"}),vt)}var en=yi;var tn={block:Do,block_content:Uo,block_input:Fo,formatter:jo,image:Ho,image_content:Wo,report:Jo,dimension:Yo,variant:Qo,search:Zo,search_content:Xo,section:en};var rn=He(),on=process.env.REPORTS_DB_CONNECTION||"";if(!on)throw new Error(`
44
44
  Env var 'REPORTS_DB_CONNECTION' is not present.
45
45
  This is required to connect to a database to save the Reports CMS changes.
46
- `);var Me=()=>{if(global.sequelize)en&&console.log("\u267B\uFE0F RE-UTILIZING DB CONNECTION");else {en&&console.log("\u{1F511} INITIALIZING DB CONNECTION");let e;try{e=new Sequelize(tn,{logging:!1,dialectModule:fi,pool:{max:10,min:1,acquire:5*1e3,idle:10*1e3,evict:1*1e3}});}catch(t){throw new Error(`
46
+ `);var Le=()=>{if(global.sequelize)rn&&console.log("\u267B\uFE0F RE-UTILIZING DB CONNECTION");else {rn&&console.log("\u{1F511} INITIALIZING DB CONNECTION");let e;try{e=new Sequelize(on,{logging:!1,dialectModule:hi,pool:{max:10,min:1,acquire:5*1e3,idle:10*1e3,evict:1*1e3}});}catch(t){throw new Error(`
47
47
  Could not connect to the database using the given connection string.
48
48
  Please check that the connection string 'REPORTS_DB_CONNECTION' is correct.
49
49
  Details:
50
50
  ${t.message}
51
- `)}Object.values(Xo).map(t=>t(e)).map(t=>t({...e.models,sequelize:e})),global.sequelize=e.sync().catch(t=>{t instanceof Error$1&&console.error("=".repeat(40),`
51
+ `)}Object.values(tn).map(t=>t(e)).map(t=>t({...e.models,sequelize:e})),global.sequelize=e.sync().catch(t=>{t instanceof Error$1&&console.error("=".repeat(40),`
52
52
  Error initializing sequelize connection:
53
- `,t.stack||t.message),global.sequelize=void 0;}).then(()=>({...e.models,sequelize:e}));}return global.sequelize};var U=()=>{let e=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",t=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[e];return t.includes(e)||t.push(e),{localeDefault:e,locales:t}};function D(e){let t={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'","&#x60;":"`","&nbsp;":""},r=`(?:${Object.keys(t).join("|")})`,o=RegExp(r),n=RegExp(r,"g"),a=String(e).replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();return o.test(a)?a.replace(n,s=>t[s]):a}function vt(e){return typeof e=="string"?String(e).replace(/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});/ig," "):e}function bi(e){return e?hi(vt(D(e)),{replacement:"-",remove:/[*+~.()'"!:@]/g,lower:!0,strict:!0,trim:!0}):""}var rr=bi;var _t=e=>({overrideNames:e&&typeof e.overrideNames<"u"?e.overrideNames:!1,overrideRelevance:e&&typeof e.overrideRelevance<"u"?e.overrideRelevance:!1,regenerateSlugs:e&&typeof e.regenerateSlugs<"u"?e.regenerateSlugs:!1,keepOldMembers:e&&typeof e.keepOldMembers<"u"?e.keepOldMembers:!0,doIngest:e&&typeof e.doIngest<"u"?e.doIngest:!1,overrideAttributes:e&&typeof e.overrideAttributes<"u"?e.overrideAttributes:!1,order:e&&typeof e.order<"u"?e.order:0});var{localeDefault:Nr}=U();function nn(e){let{search:t,search_content:r}=e;return o;async function o(a){let{id:s,config:i={},settings:c={}}=a,l=i[Nr]?Nr:Object.keys(i)[0],{overrideNames:u,overrideAttributes:p}=_t(c),{accessor:d,path:m,idKey:y,labelKey:h}=i[Nr];if(!m||!y||!h)return;let b=await ur.get(m).catch(E=>({data:[],error:E})),A=Rt(b.data,d),T=[];try{console.log(`Ingesting default items for variant ${a.name} for ${l}`),T=await n(a,l,A);}catch(E){let M=`[ERROR] Ingesting default member items for ${l}`;throw console.error(M,E),new R(500,M)}let x=await t.findAll({where:{variant_id:s}}).then(E=>Object.fromEntries(E.map(M=>[M.id,{content_id:M.content_id,needsUpdate:T.includes(M.content_id)}]))),S=Object.entries(i).map(async([E,M])=>{let{path:w,accessor:B,idKey:$,labelKey:L,attributes:F=[]}=M;if(!w||!$||!L)return;let X=await ur.get(w).catch(j=>({data:[],error:j})),H=Rt(X.data,B),P=await r.findAll({where:{id:T,locale:E}}).then(j=>Object.fromEntries(j.map(k=>[k.id,k.toJSON()]))),q=H.filter(j=>j[$]&&j[$]!==""&&j[L]&&j[L]!=="").map(j=>{let k=x[j[$]],I,N=Object.fromEntries(F.map(G=>[G.name,G.type==="constant"?G.value:j[G.value]||""]));return k.needsUpdate&&P[k.content_id]?(I={...P[k.content_id]},u&&(I.name=j[L]),p&&(I.attributes=N)):I={id:k.content_id,locale:E,name:j[L],attributes:N},I});try{return r.bulkCreate(q,{updateOnDuplicate:["name","attributes"]})}catch(j){let k=`[ERROR] Ingesting search content items for ${E}`;throw console.error(k,j),new R(500,k)}});await Promise.all(S);}async function n(a,s,i){let{id:c,dimension_id:l,slug:u}=a,{report_id:p}=a.dimension,{idKey:d,labelKey:m,zValueKey:y}=a.config[s],{overrideNames:h,regenerateSlugs:b,keepOldMembers:A,overrideRelevance:T,overrideAttributes:x}=_t(a.settings),S=t.findAll({attributes:["slug",[fn$1("COUNT",col("variant.id")),"slugCount"]],include:{association:"variant",attributes:[],required:!1,right:!0,where:{dimension_id:l,slug:u,id:{[Op.not]:c}}},group:"search.slug"}).then(k=>Object.fromEntries(k.map(I=>{let N=I.getDataValue("slugCount");return [I.slug,Number.parseInt(`${N}`,10)]}))),E=t.findAll({where:{variant_id:c}}).then(k=>Object.fromEntries(k.map(I=>[I.id,I.toJSON()]))),[M,w]=await Promise.all([S,E]),B=Object.values(w).map(k=>k.slug),$=[],L=null,F=null;if(y&&y!==""){for(let k of i)if(typeof k[y]=="number"&&!isNaN(k[y])){let I=k[y];(L===null||I<L)&&(L=I),(F===null||I>F)&&(F=I);}}let X=[],H=[],P=[],q=!1;i.filter(k=>k[d]&&k[d]!==""&&k[m]&&k[m]!=="").forEach(k=>{let I=k[d],N=rr(k[m]);q=!1;let G=parseFloat(Math.random().toPrecision(5));if(y&&y!==""&&L&&F&&k[y]){let v;try{v=parseInt(k[y],10);}catch{v=0;}let W=F!==null&&L!==null&&F!==L?(v-L)/(F-L):0;G=F===L?1:parseFloat(W.toPrecision(5));}if(w[I]){if(h||b||T||x){let v=w[I];if((h||x)&&P.push(v.content_id),h&&b){let W=Object.values(w).filter(me=>me.id!==I).map(me=>me.slug),ne=M[N]||W.includes[N]||$.includes(N);ne&&console.log("Duplicate slug!",N,"replaced by",`${N}-${I}`);let ae=ne?`${N}-${I}`:N;v.slug!==ae&&(v.slug=ae,$.push(N),q=!0,console.log("UPDATE SLUG",I,N));}y&&y!==""&&T&&v.zvalue!==G&&(v.zvalue=G,q=!0,console.log("UPDATE ZVALUE",I,G)),q&&H.push(v);}}else {console.log("INSERT ID",I);let v=M[N]||B.includes[N]||$.includes(N);v&&console.log("Duplicate slug!",N,"replaced by",`${N}-${I}`);let W=v?`${N}-${I}`:N;$.push(N),X.push({id:I,slug:W,variant_id:c,dimension_id:l,report_id:p,zvalue:G});}});let j=[];if(!A){let k=i.map(I=>I[d]);j=Object.keys(w).filter(I=>!k.includes(I));}try{return (X.length>0||H.length>0)&&(await t.bulkCreate([...X,...H],{updateOnDuplicate:["slug","zvalue"]}),console.log("New members ingested:",X.length),console.log("New members updated:",H.length)),j.length>0&&(await t.destroy({where:{id:{[Op.in]:j}}}),console.log("Old members deleted:",j.length)),P}catch(k){throw console.error(`[ERROR] Ingesting search members for ${s}`,k),new Error(k)}}}function sn(e){let{search:t}=e;return r;async function r(o){let{all:n,locale:a,mode:s,variant:i,output:c}=o,l={content_id:[],...i&&i.length?{variant_id:i}:{}};if(s==="content_ids")l.content_id=o.content_ids;else if(s==="ids"){if(n)throw new R(400,"Search by ids doesn't support locale all. Pick one locale.");let m=await t.findAll({attributes:["content_id"],where:{id:o.ids,...i&&i.length?{variant_id:i}:{}},include:[{association:"contentByLocale",where:{locale:a}}]});l.content_id=m.map(y=>y.content_id);}else if(s==="slugs"){let m=o.slugs.map(h=>t.findAll({attributes:["content_id"],where:{slug:h.memberSlug},include:{association:"variant",attributes:["id","name","slug"],required:!0,where:{slug:h.variantSlug}}})),y=await Promise.all(m).then(h=>h.reduce((b,A)=>b.concat(A),[]));l.content_id=y.map(h=>h.content_id);}else if(s==="related"){let m=()=>{if(o.variant_ids?.length)return {variant_id:o.variant_ids.map(h=>h)};if(o.dimension_ids?.length)return {dimension_id:o.dimension_ids.map(h=>h)};if(o.report_ids?.length)return {report_id:o.report_ids.map(h=>h)}},y=await t.findAll({attributes:["content_id"],where:{...m(),content_id:{[Op.notIn]:o.current_ids},visible:!0},order:[Sequelize.fn("RANDOM")],limit:o.related||4});l.content_id=y.map(h=>h.content_id);}else if(s==="whole"){let m={...i&&i.length?{variant_id:i}:{}},y=await t.findAll({attributes:["content_id"],where:m});l.content_id=y.map(h=>h.content_id);}let u={locale:n?{[Op.ne]:null}:a},p=await t.findAll({where:l,include:[{association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name","ordering"]},{association:"variant",attributes:["id","name","slug"]},{association:"image",attributes:["id","author","url","license"],include:[{association:"contentByLocale",where:u}]},{association:"contentByLocale",where:u}]});if(!["related","whole"].includes(s)&&o[s]&&p.length!==o[s].length)throw new R(404,"One or more members were not found.");p.sort((m,y)=>l.content_id.indexOf(m.content_id)-l.content_id.indexOf(y.content_id));let d=p.map(m=>{let y,h={id:m.id,slug:m.slug,visible:m.visible,zvalue:m.zvalue,content_id:m.content_id,report_id:m.report_id,report_name:m.report.name,dimension_id:m.dimension_id,dimension_name:m.dimension.name,variant_id:m.variant_id,variant_name:m.variant.name,variant_slug:m.variant.slug};if(n){let b=m.contentByLocale;h.contentByLocale=b,h.image=m.image,h.image_id=m.image_id,y=h;}else {let b=m.getContent(a),A=m.image?.getContent(a),T=A&&{id:m.image.id,author:m.image.author,url:m.image.url,license:m.image.license,meta:A.meta};y={...h,locale:b.locale,name:b.name,attributes:b.attributes,keywords:b.keywords,image:T||null,image_id:m.image_id};}return c==="lite"&&(delete y.image,delete y.image_id),y});return {meta:o,results:d}}}function cn(e){let{search:t}=e;return r;async function r(o){let n=await t.findOne({where:{content_id:o.member},include:[{association:"image",attributes:[o.size],include:[{association:"contentByLocale"}]}]});return n&&n.image&&n.image[o.size]?n.image[o.size]:Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkkAQAAB8AG7jymN8AAAAASUVORK5CYII=","base64")}}function Ti(e,t=!0){if(!e)return "";let r=vt(D(e.toLowerCase()));return (t?hi(r,{replacement:" ",remove:/[*+~.()'"!:@-]/g,lower:!0,strict:!1,trim:!0}):r).replace(/\s\s+/g," ")}var et=Ti;var or=[{charset:"latin",locales:["en","es","fr","de","it","pt","ro","nl","sv","da","fi","no","pl","cs","hu","sk","sl"]},{charset:"cjk",locales:["zh","ja","ko"]},{charset:"arabic",locales:["ar","fa","ur","he"]},{charset:"cyrilic",locales:["bg","ru","uk","sr","mk"]}],_i=or.reduce((e,t)=>e.concat(t.locales),[]),kt=je(),{locales:ki}=U(),Pi=ki.filter(e=>_i.includes(e)),Dr=!1,wi=async(e,t=!1)=>{if(t&&(kt&&console.log("0\uFE0F\u20E3 CLEARING SEARCH INDEX"),global.flexsearch=void 0,Dr=!1),global.flexsearch)return kt&&console.log("\u{1F501} RE-UTILIZING SEARCH INDEX"),global.flexsearch;try{Dr||(kt&&console.log("1\uFE0F\u20E3 INITIALIZING SEARCH INDEX"),Dr=!0,global.flexsearch=await xi(e));}catch(r){throw new Error(`
53
+ `,t.stack||t.message),global.sequelize=void 0;}).then(()=>({...e.models,sequelize:e}));}return global.sequelize};var z=()=>{let e=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",t=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[e];return t.includes(e)||t.push(e),{localeDefault:e,locales:t}};function V(e){let t={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'","&#x60;":"`","&nbsp;":""},r=`(?:${Object.keys(t).join("|")})`,o=RegExp(r),n=RegExp(r,"g"),a=String(e).replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();return o.test(a)?a.replace(n,s=>t[s]):a}function _t(e){return typeof e=="string"?String(e).replace(/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});/ig," "):e}function Ei(e){return e?Si(_t(V(e)),{replacement:"-",remove:/[*+~.()'"!:@]/g,lower:!0,strict:!0,trim:!0}):""}var rr=Ei;var kt=e=>({overrideNames:e&&typeof e.overrideNames<"u"?e.overrideNames:!1,overrideRelevance:e&&typeof e.overrideRelevance<"u"?e.overrideRelevance:!1,regenerateSlugs:e&&typeof e.regenerateSlugs<"u"?e.regenerateSlugs:!1,keepOldMembers:e&&typeof e.keepOldMembers<"u"?e.keepOldMembers:!0,doIngest:e&&typeof e.doIngest<"u"?e.doIngest:!1,overrideAttributes:e&&typeof e.overrideAttributes<"u"?e.overrideAttributes:!1,order:e&&typeof e.order<"u"?e.order:0});var{localeDefault:Dr}=z();function sn(e){let{search:t,search_content:r}=e;return o;async function o(a){let{id:s,config:i={},settings:c={}}=a,l=i[Dr]?Dr:Object.keys(i)[0],{overrideNames:u,overrideAttributes:p}=kt(c),{accessor:d,path:m,idKey:y,labelKey:h}=i[Dr];if(!m||!y||!h)return;let R=await pr.get(m).catch(A=>({data:[],error:A})),T=St(R.data,d),_=[];try{console.log(`Ingesting default items for variant ${a.name} for ${l}`),_=await n(a,l,T);}catch(A){let B=`[ERROR] Ingesting default member items for ${l}`;throw console.error(B,A),new S(500,B)}let w=await t.findAll({where:{variant_id:s}}).then(A=>Object.fromEntries(A.map(B=>[B.id,{content_id:B.content_id,needsUpdate:_.includes(B.content_id)}]))),E=Object.entries(i).map(async([A,B])=>{let{path:O,accessor:F,idKey:W,labelKey:j,attributes:M=[]}=B;if(!O||!W||!j)return;let N=await pr.get(O).catch(q=>({data:[],error:q})),$=St(N.data,F),b=await r.findAll({where:{id:_,locale:A}}).then(q=>Object.fromEntries(q.map(v=>[v.id,v.toJSON()]))),L=$.filter(q=>q[W]&&q[W]!==""&&q[j]&&q[j]!=="").map(q=>{let v=w[q[W]],P,U=Object.fromEntries(M.map(te=>[te.name,te.type==="constant"?te.value:q[te.value]||""]));return v.needsUpdate&&b[v.content_id]?(P={...b[v.content_id]},u&&(P.name=q[j]),p&&(P.attributes=U)):P={id:v.content_id,locale:A,name:q[j],attributes:U},P});try{return r.bulkCreate(L,{updateOnDuplicate:["name","attributes"]})}catch(q){let v=`[ERROR] Ingesting search content items for ${A}`;throw console.error(v,q),new S(500,v)}});await Promise.all(E);}async function n(a,s,i){let{id:c,dimension_id:l,slug:u}=a,{report_id:p}=a.dimension,{idKey:d,labelKey:m,zValueKey:y}=a.config[s],{overrideNames:h,regenerateSlugs:R,keepOldMembers:T,overrideRelevance:_,overrideAttributes:w}=kt(a.settings),E=t.findAll({attributes:["slug",[fn$1("COUNT",col("variant.id")),"slugCount"]],include:{association:"variant",attributes:[],required:!1,right:!0,where:{dimension_id:l,slug:u,id:{[Op.not]:c}}},group:"search.slug"}).then(v=>Object.fromEntries(v.map(P=>{let U=P.getDataValue("slugCount");return [P.slug,Number.parseInt(`${U}`,10)]}))),A=t.findAll({where:{variant_id:c}}).then(v=>Object.fromEntries(v.map(P=>[P.id,P.toJSON()]))),[B,O]=await Promise.all([E,A]),F=Object.values(O).map(v=>v.slug),W=[],j=null,M=null;if(y&&y!==""){for(let v of i)if(typeof v[y]=="number"&&!isNaN(v[y])){let P=v[y];(j===null||P<j)&&(j=P),(M===null||P>M)&&(M=P);}}let N=[],$=[],b=[],L=!1;i.filter(v=>v[d]&&v[d]!==""&&v[m]&&v[m]!=="").forEach(v=>{let P=v[d],U=rr(v[m]);L=!1;let te=parseFloat(Math.random().toPrecision(5));if(y&&y!==""&&j&&M&&v[y]){let x;try{x=parseInt(v[y],10);}catch{x=0;}let H=M!==null&&j!==null&&M!==j?(x-j)/(M-j):0;te=M===j?1:parseFloat(H.toPrecision(5));}if(O[P]){if(h||R||_||w){let x=O[P];if((h||w)&&b.push(x.content_id),h&&R){let H=Object.values(O).filter(Y=>Y.id!==P).map(Y=>Y.slug),ne=B[U]||H.includes[U]||W.includes(U);ne&&console.log("Duplicate slug!",U,"replaced by",`${U}-${P}`);let J=ne?`${U}-${P}`:U;x.slug!==J&&(x.slug=J,W.push(U),L=!0,console.log("UPDATE SLUG",P,U));}y&&y!==""&&_&&x.zvalue!==te&&(x.zvalue=te,L=!0,console.log("UPDATE ZVALUE",P,te)),L&&$.push(x);}}else {console.log("INSERT ID",P);let x=B[U]||F.includes[U]||W.includes(U);x&&console.log("Duplicate slug!",U,"replaced by",`${U}-${P}`);let H=x?`${U}-${P}`:U;W.push(U),N.push({id:P,slug:H,variant_id:c,dimension_id:l,report_id:p,zvalue:te});}});let q=[];if(!T){let v=i.map(P=>P[d]);q=Object.keys(O).filter(P=>!v.includes(P));}try{return (N.length>0||$.length>0)&&(await t.bulkCreate([...N,...$],{updateOnDuplicate:["slug","zvalue"]}),console.log("New members ingested:",N.length),console.log("New members updated:",$.length)),q.length>0&&(await t.destroy({where:{id:{[Op.in]:q}}}),console.log("Old members deleted:",q.length)),b}catch(v){throw console.error(`[ERROR] Ingesting search members for ${s}`,v),new Error(v)}}}function ln(e){let{search:t}=e;return r;async function r(o){let{all:n,locale:a,mode:s,variant:i,output:c}=o,l={content_id:[],...i&&i.length?{variant_id:i}:{}};if(s==="content_ids")l.content_id=o.content_ids;else if(s==="ids"){if(n)throw new S(400,"Search by ids doesn't support locale all. Pick one locale.");let m=await t.findAll({attributes:["content_id"],where:{id:o.ids,...i&&i.length?{variant_id:i}:{}},include:[{association:"contentByLocale",where:{locale:a}}]});l.content_id=m.map(y=>y.content_id);}else if(s==="slugs"){let m=o.slugs.map(h=>t.findAll({attributes:["content_id"],where:{slug:h.memberSlug},include:{association:"variant",attributes:["id","name","slug"],required:!0,where:{slug:h.variantSlug}}})),y=await Promise.all(m).then(h=>h.reduce((R,T)=>R.concat(T),[]));l.content_id=y.map(h=>h.content_id);}else if(s==="related"){let m=()=>{if(o.variant_ids?.length)return {variant_id:o.variant_ids.map(h=>h)};if(o.dimension_ids?.length)return {dimension_id:o.dimension_ids.map(h=>h)};if(o.report_ids?.length)return {report_id:o.report_ids.map(h=>h)}},y=await t.findAll({attributes:["content_id"],where:{...m(),content_id:{[Op.notIn]:o.current_ids},visible:!0},order:[Sequelize.fn("RANDOM")],limit:o.related||4});l.content_id=y.map(h=>h.content_id);}else if(s==="whole"){let m={...i&&i.length?{variant_id:i}:{}},y=await t.findAll({attributes:["content_id"],where:m});l.content_id=y.map(h=>h.content_id);}let u={locale:n?{[Op.ne]:null}:a},p=await t.findAll({where:l,include:[{association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name","ordering"]},{association:"variant",attributes:["id","name","slug"]},{association:"image",attributes:["id","author","url","license"],include:[{association:"contentByLocale",where:u}]},{association:"contentByLocale",where:u}]});if(!["related","whole"].includes(s)&&o[s]&&p.length!==o[s].length)throw new S(404,"One or more members were not found.");p.sort((m,y)=>l.content_id.indexOf(m.content_id)-l.content_id.indexOf(y.content_id));let d=p.map(m=>{let y,h={id:m.id,slug:m.slug,visible:m.visible,zvalue:m.zvalue,content_id:m.content_id,report_id:m.report_id,report_name:m.report.name,dimension_id:m.dimension_id,dimension_name:m.dimension.name,variant_id:m.variant_id,variant_name:m.variant.name,variant_slug:m.variant.slug};if(n){let R=m.contentByLocale;h.contentByLocale=R,h.image=m.image,h.image_id=m.image_id,y=h;}else {let R=m.getContent(a),T=m.image?.getContent(a),_=T&&{id:m.image.id,author:m.image.author,url:m.image.url,license:m.image.license,meta:T.meta};y={...h,locale:R.locale,name:R.name,attributes:R.attributes,keywords:R.keywords,image:_||null,image_id:m.image_id};}return c==="lite"&&(delete y.image,delete y.image_id),y});return {meta:o,results:d}}}function un(e){let{search:t}=e;return r;async function r(o){let n=await t.findOne({where:{content_id:o.member},include:[{association:"image",attributes:[o.size],include:[{association:"contentByLocale"}]}]});return n&&n.image&&n.image[o.size]?n.image[o.size]:Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkkAQAAB8AG7jymN8AAAAASUVORK5CYII=","base64")}}function ki(e,t=!0){if(!e)return "";let r=_t(V(e.toLowerCase()));return (t?Si(r,{replacement:" ",remove:/[*+~.()'"!:@-]/g,lower:!0,strict:!1,trim:!0}):r).replace(/\s\s+/g," ")}var tt=ki;var or=[{charset:"latin",locales:["en","es","fr","de","it","pt","ro","nl","sv","da","fi","no","pl","cs","hu","sk","sl"]},{charset:"cjk",locales:["zh","ja","ko"]},{charset:"arabic",locales:["ar","fa","ur","he"]},{charset:"cyrilic",locales:["bg","ru","uk","sr","mk"]}],wi=or.reduce((e,t)=>e.concat(t.locales),[]),Pt=He(),{locales:Ii}=z(),xi=Ii.filter(e=>wi.includes(e)),Ur=!1,Ci=async(e,t=!1)=>{if(t&&(Pt&&console.log("0\uFE0F\u20E3 CLEARING SEARCH INDEX"),global.flexsearch=void 0,Ur=!1),global.flexsearch)return Pt&&console.log("\u{1F501} RE-UTILIZING SEARCH INDEX"),global.flexsearch;try{Ur||(Pt&&console.log("1\uFE0F\u20E3 INITIALIZING SEARCH INDEX"),Ur=!0,global.flexsearch=await Bi(e));}catch(r){throw new Error(`
54
54
  Could not initialize FlexSearch engine.
55
55
  Details:
56
56
  ${r.message}
57
- `)}return global.flexsearch};async function xi(e){let t=await e.search.findAll({include:[{association:"contentByLocale"}]}),r=Pi.map(async o=>{kt&&console.log(`\u{1F3F3}\uFE0F INITIALIZING SEARCH ${o} LOCALE`);let n=or.find(u=>u.locales.includes(o)),a=n?.charset||"latin",s=a==="latin"?"advanced":"default";n?console.log(` Charset for ${o}: ${a}`):kt&&console.error(` Missing charset for ${o}, adding latin as default.`);let i=(await import(`flexsearch/dist/module/lang/${a}/${s}`)).default,c=new vi.Document({language:o,encode:i.encode,tokenize:"reverse",stemmer:{},matcher:{},filter:[],preset:"default",cache:100,resolution:9,context:!1,optimize:!0,worker:!1,document:{id:"content_id",store:!1,index:["id","name","clean","keywords","attributes"]}}),l=0;return t.forEach(u=>{let p=u.contentByLocale.find(d=>d.locale===o);if(p){let d=et(p.name,a!=="arabic"),m=Array.isArray(p.keywords)?p.keywords.map(h=>et(h,a!=="arabic")):null,y={id:u.id,content_id:u.content_id,name:p.name,keywords:m,attributes:p.attributes,clean:d};c.add(y),l++;}}),console.log(`\u{1F3F3}\uFE0F Indexed for ${o}: ${l} elements`),[o,c]});return Object.fromEntries(await Promise.all(r))}var Le=wi;var{localeDefault:ln}=U();function tt(e){let{search:t,report:r}=e;return o;async function o(n){let a=await Le(e),s=[],{query:i,locale:c,preferredLocale:l,limit:u,format:p,visible:d,variant:m,dimension:y,report:h,all:b,noImage:A,includes:T,sort:x,direction:S="ASC",offset:E=0}=n,w=or.find(v=>v.locales.includes(c))?.charset||"latin";if(i&&i!==""&&a[c]){let v=et(i,w!=="arabic");if(s=a[c].search({query:v,limit:9999999999}).reduce((ne,ae)=>ne.concat(ae.result),[]),s=Jt(s),l&&a[l]){let ae=a[l].search(v).reduce((me,Ke)=>me.concat(Ke.result),[]);ae=Jt(ae),s=Jt([...s,...ae]);}}let B={...d?{visible:d}:{},...A?{image_id:{[Op.eq]:null}}:{},...m.length?{variant_id:m}:{},...y.length?{dimension_id:y}:{},...h.length?{report_id:h}:{}},$={locale:b?{[Op.ne]:null}:c},L=u&&!isNaN(u)?u:20,F=[["zvalue","DESC NULLS LAST"]];x&&x!=="name"&&F.unshift([x,S.toUpperCase()]),i&&i!==""&&(B.content_id=s);let X=[{association:"contentByLocale",where:$}];T&&X.push({association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name"]},{association:"variant",attributes:["id","slug","name"]});let H={...B.visible?{visible:B.visible}:{},...B.noImage?{image_id:B.noImage}:{},...B.content_id?{content_id:B.content_id}:{}};if(!B.report_id&&!B.dimension_id&&!B.variant_id&&d){let W=(await r.findAll({attributes:["id"],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!0)]}})).map(ne=>ne.id);W.length>0&&(B.report_id={[Op.notIn]:W},H.report_id=B.report_id);}let P=[],[q,j]=await Promise.all([t.findAll({limit:L,offset:E,where:B,include:X,order:F}),t.findAll({attributes:["variant_id",[fn$1("COUNT",col("variant_id")),"members_count"]],where:H,group:["variant_id"]})]),k=j.map(v=>v.toJSON());if(x==="name"){let v=S.toUpperCase()==="ASC"?1:-1;q.sort((W,ne)=>{let ae=W.getContent(ln),me=ne.getContent(ln);return ae&&me?ae.name>me.name?1*v:-1*v:0});}let I=p==="nested"?N:G;return P=q.map(I),p!=="nested"&&P.forEach(v=>{let{name:W,keywords:ne,score:ae=.1,zvalue:me}=v;if(W){let Ke=et(W),Ht=ae,Ao=i.length/Ke.length,To=Ke.split("").reduce((_r,vo,_o)=>(i.slice(0,_o),i.charAt(_o)===vo&&(_r+=vo),_r),"").length;Ke===i||ne&&ne.includes(i)?Ht=1e6:Ke.startsWith(i)?Ht*=20*Ao:To&&(Ht*=To*Ao),v.zvalue=Ht*2+me;}}),{meta:{origin:"flexsearch",...Object.fromEntries(Object.entries(n).map(v=>[v[0],D(v[1])])),variantCount:k.reduce((v,W)=>(v[W.variant_id]=parseInt(W.members_count,10),v),{})},results:P};function N(v){return v.toJSON()}function G(v){let W=v.getContent(c);return {...v.toJSON(),locale:W.locale,name:W.name,attributes:W.attributes,keywords:W.keywords}}}}function un(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 y=0;y<c.length;y++){let h=c[y];await n.update({name:h.name,keywords:h.keywords},{where:{id:h.id,locale:h.locale}});}p={...p,...{include:[{association:"contentByLocale",separate:!0}]}};}if(l){if(l.id&&(await t.update({...l},{where:{id:l.id}}),l.contentByLocale))for(let m=0;m<l.contentByLocale.length;m++){let y=l.contentByLocale[m];await r.update({meta:y.meta},{where:{id:y.id,locale:y.locale}});}}else !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 pn(e){return {ingestMembers:nn(e),readMember:sn(e),searchMember:tt(e),updateMember:un(e),readMemberImage:cn(e)}}var Oe={include:[{association:"contentByLocale",separate:!0},{association:"inputs",include:[{association:"contentByLocale",separate:!0}]},{association:"consumers",include:[{association:"contentByLocale",separate:!0}]}]},Pt=e=>({include:[{association:"variants",separate:!0,attributes:{include:[[fn$1("COUNT",col("members.id")),"members_count"]]},include:[{model:e,as:"members",attributes:[]}],group:["variant.id"]}],order:[["ordering","ASC"]]}),wt={include:[{association:"blocks",separate:!0,...Oe}]},ar=e=>({include:[{association:"dimensions",separate:!0,...Pt(e)},{association:"sections",separate:!0,...wt}]});var ge=[{association:"image",attributes:{exclude:["splash"]},include:[{association:"contentByLocale"}]},{association:"contentByLocale"}];function dn(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(y=>({locale:y}))},{include:Oe.include})).toJSON()}async function a(u){let p=u.map(m=>{let{locales:y,...h}=m;return {...h,consumers:[],inputs:[],contentByLocale:y.map(A=>({locale:A}))}});return (await t.bulkCreate(p,{include:Oe.include})).map(m=>m.toJSON())}async function s({id:u,include:p}={}){let d=u==null?[]:[].concat(u),m=await t.findAll({where:d.length>0?{id:d}:void 0,include:p?Oe.include:void 0});if(d.length===0||m.length===d.length)return m.map(b=>b.toJSON());let y=m.map(b=>b.id),h=d.filter(b=>!y.includes(b));throw new R(404,`Block(id=[${h}]) does not exist.`)}async function i(u){let{id:p,contentByLocale:d,consumers:m,inputs:y,inputAction:h,...b}=u,A=await t.findByPk(p,{include:Oe.include,rejectOnEmpty:!0});if(A.set(b),d){let T=Object.values(d);await r.bulkCreate(T,{updateOnDuplicate:["content"]});}return h&&(h.operation==="create"?await o.create(h.input):await o.destroy({where:h.input})),await A.save(),await A.reload(),A.toJSON()}async function c(u){let p=u.map(y=>{let{id:h,contentByLocale:b,consumers:A,inputs:T,inputAction:x,...S}=y;return {id:h,contentByLocale:b,inputAction:x,...S}}),d=await t.findAll({where:{id:{[Op.or]:p.map(y=>y.id)}},include:Oe.include}),m=[];for(let y of d){let h=p.filter(b=>b.id===y.id);for(let b=0;b<h.length;b++){let A=h[b],{id:T,contentByLocale:x,inputAction:S,...E}=A;if(S&&(S.operation==="create"?await o.create(S.input):await o.destroy({where:S.input})),x){let M=Object.values(x);await r.bulkCreate(M,{updateOnDuplicate:["content"]});}y.set(E),await y.save(),await y.reload(),m.push(y.toJSON());}}return m}async function l(u){let p=await t.findByPk(u,{rejectOnEmpty:!0});return await p.destroy(),{id:u,parentType:"section",parentId:p.section_id}}}function mn(e){let{dimension:t,search:r}=e;return {createDimension:o,readDimension:n,updateDimension:a,deleteDimension:s};async function o(i){return (await t.create({name:i.name,report_id:i.report_id,variants:[]},{include:Pt(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?Pt(r).include:void 0});if(l.length===0||u.length===l.length)return u.map(m=>m.toJSON());let p=u.map(m=>m.id),d=l.filter(m=>!p.includes(m));throw new R(404,`Dimension(id=[${d}]) does not exist.`)}async function a(i){let{id:c,variants:l,...u}=i,p=await t.findByPk(c,{include:Pt(r).include,rejectOnEmpty:!1});if(!p)throw new R(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:!1});return await c.destroy(),{id:i,parentType:"report",parentId:c.report_id}}}function fn(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 R(404,`Formatter(id=[${u}]) does not exist.`)}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:!0});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:!0})).destroy(),{id:s}}}var{locales:Ui}=U();function gn(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:ar(r).include})).toJSON()}async function n({id:i,include:c,locales:l=Ui}={}){let p=(i==null?[]:[].concat(i)).reduce((h,b)=>(h.includes(b)||h.push(b),h),[]),d=await t.findAll({where:p.length>0?{id:p}:void 0,include:c?ar(r).include?.filter(h=>typeof c=="string"?h.association===c:c):void 0});if(p.length===0||d.length===p.length)return d.map(h=>{let b=h.toJSON();return {...b,sections:b.sections.map(A=>({...A,blocks:A.blocks.map(T=>({...T,contentByLocale:Object.keys(T.contentByLocale).reduce((x,S)=>({...x,...[...l,"logic"].includes(S)?{[S]:T.contentByLocale[S]}:{}}),{})}))}))}});let m=d.map(h=>h.id),y=p.filter(h=>!m.includes(h));throw new R(404,`Report(id=${y}) does not exist.`)}async function a(i){let{id:c,dimensions:l,sections:u,...p}=i,d=await t.findByPk(c,{include:ar(r).include,rejectOnEmpty:!1});if(!d)throw new R(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:!1})).destroy(),{id:i}}}function yn(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:wt.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?wt.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 R(404,`Section(id=${p}) does not exist.`)}async function n(s){let{id:i,blocks:c,...l}=s,u=await t.findByPk(i,{include:wt.include,rejectOnEmpty:!1});return u.set(l),await u.save(),await u.reload(),u.toJSON()}async function a(s){let i=await t.findByPk(s,{rejectOnEmpty:!0});return await i.destroy(),{id:s,parentType:"report",parentId:i.report_id}}}function Rn(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,m=await c({dimension:u,slug:d});return (await r.create({dimension_id:u,name:p,slug:m.valid?m.candidate:m.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$1("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(y=>y.toJSON());let d=p.map(y=>y.id),m=u.filter(y=>!d.includes(y));throw new R(404,`Variant(id=${m}) does not exist.`)}async function s(l){let{id:u,...p}=l,d=await r.findByPk(u,{include:[{association:"dimension"}],rejectOnEmpty:!0});p.settings=_t(p.settings);let m=p.settings.doIngest;return p.settings.doIngest=!1,await d.update(p),m&&(await t.ingestMembers(d),await Le(e,!0)),await d.reload(),d.toJSON()}async function i(l){let u=await r.findByPk(l,{rejectOnEmpty:!0});return await u.destroy(),Le(e,!0),{id:l,parentType:"dimension",parentId:u.dimension_id}}async function c({dimension:l,slug:u}){let p=await r.findAll({attributes:["slug",[fn$1("COUNT",col("id")),"slugCount"]],where:{dimension_id:{[Op.ne]:l}},group:"slug"}).then(h=>Object.fromEntries(h.map(b=>{let A=b.getDataValue("slugCount");return [b.slug,Number.parseInt(`${A}`,10)]}))),d=u,m=1,y=!0;for(;p[d];)y=!1,d=`${u}-${m}`,m++;return {candidate:u,dimension_id:l,suggestion:d,valid:y}}}function Sn(e){let t={...dn(e),...mn(e),...fn(e),...pn(e),...gn(e),...yn(e)},r={...t,...Rn(e,t)};return {createFormatter:_(r.createFormatter),deleteFormatter:_(r.deleteFormatter),readFormatter:_(r.readFormatter),updateFormatter:_(r.updateFormatter),createReport:_(r.createReport),deleteReport:_(r.deleteReport),readReport:_(r.readReport),updateReport:_(r.updateReport),createDimension:_(r.createDimension),deleteDimension:_(r.deleteDimension),readDimension:_(r.readDimension),updateDimension:_(r.updateDimension),createVariant:_(r.createVariant),readVariant:_(r.readVariant),updateVariant:_(r.updateVariant),deleteVariant:_(r.deleteVariant),validateVariantSlug:_(r.validateVariantSlug),createSection:_(r.createSection),readSection:_(r.readSection),updateSection:_(r.updateSection),deleteSection:_(r.deleteSection),createBlock:_(r.createBlock),deleteBlock:_(r.deleteBlock),readBlock:_(r.readBlock),updateBlock:_(r.updateBlock),createBulkBlock:_(r.createBulkBlock),updateBulkBlock:_(r.updateBulkBlock),readMember:_(r.readMember),searchMember:_(r.searchMember),updateMember:_(r.updateMember),readMemberImage:_(r.readMemberImage)}}var En=e=>{throw console.error("/methods/helpers/uploadImage.ts:",e),new Error(e.message)},zi=Number(process.env.NEXT_PUBLIC_IMAGE_SPLASH_WIDTH)||1400,$i=Number(process.env.NEXT_PUBLIC_IMAGE_THUMB_WIDTH)||400,qi=async(e,t,r)=>{let o=[{type:"splash",res:zi},{type:"thumb",res:$i}];for(let n of o){let a=await Vi(r).resize(n.res).toFormat("webp").webp({lossless:!0}).toBuffer().catch(En);await e.image.update({[n.type]:a},{where:{id:t}}).catch(En);}},Ee=qi;var An="|||";var Tn=["4","5","7","8","9","10"],Hi=Tn.join(),{locales:Wi}=U(),Ae;if(process.env.FLICKR_API_KEY)try{Ae=new ji(process.env.FLICKR_API_KEY);}catch(e){throw console.error("Flickr ERROR:",e),new Error(e.message)}async function vn(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Ae)throw console.log("Flickr is not initialized. Check the credentials"),new Error("Flickr is not initialized. Check the credentials");let o=r.prompt,a=(await Ae.photos.search({text:o,license:Hi,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(Ae.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(m=>m.label==="Small 320");return d&&l.push({id:a[p].id,source:d.source}),l},[]);return {meta:{prompt:D(r.prompt),page:D(`${r.page}`)},results:c}}catch(r){throw console.log(r),new Error("Error in search flickr provider")}}async function _n(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:D(`${r}`)||"",id:D(`${o}`)||""},s=`https://flic.kr/p/${Ki.int_to_base58(o)}`;if(!Ae)throw new Error("Flickr API Key not configured");let i=await Ae.photos.getInfo({photo_id:o}).then(l=>l.body),c;if(i)if(Tn.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 Ae.photos.getSizes({photo_id:o}).then(S=>S.body),m=d.sizes.size.find(S=>parseInt(S.width,10)>=1600);if(m||(m=d.sizes.size.find(S=>parseInt(S.width,10)>=1e3)),m||(m=d.sizes.size.find(S=>parseInt(S.width,10)>=500)),!m||!m.source)throw new Error("Flickr Source Error, try another image.");let y=await ur.get(m.source,{responseType:"arraybuffer"}).then(S=>S.data),b=(await Ae.photos.licenses.getInfo().then(S=>S.body.licenses.license)).find(S=>S.id===parseInt(i.photo.license,10)),A={url:s,author:i.photo.owner.realname||i.photo.owner.username,license:b?`${b.name}: ${b.url}`:""},T=await e.image.create(A);await e.image_content.destroy({where:{id:T.id}});let x=Wi.map(S=>({id:T.id,locale:S,meta:i.photo.title._content}));await e.image_content.bulkCreate(x),await e.search.update({image_id:T.id},{where:{content_id:r}}),await Ee(e,T.id,y);}let p=await e.search.findOne({where:{content_id:r},include:ge});p&&p.image&&(p.image.thumb=!!p.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Bad License");else throw new Error("Malformed URL");return {meta:{...n},results:c}}catch(r){throw console.log(r),new Error("Error in save flickr provider")}}function C(e,t,r,o){return {method:e,path:t,handler:r,roleRequired:o}}function J(e){let t=Number.parseInt(`${e||""}`,10);if(Number.isNaN(t)||!Number.isFinite(t))throw new R(400,`Invalid numeric parameter: ${e}`);return t}function O(e){return e==null||e===""?[]:Array.isArray(e)?e:e.toString().split(",")}var{localeDefault:Te}=U();function kn(e){let{readMember:t,searchMember:r,updateMember:o,readMemberImage:n}=e;return [C("GET","read/members",async a=>{let s=Ji(a.query),i=s[s.mode]||[],c=s.mode==="whole";if(!c&&i.length===0)throw new R(400,`The request is missing the '${s.mode}' parameter.`);if(!c&&i.length>20&&!s.variant)throw new R(400,`You can look for up to 20 '${s.mode}' in a single request.`);return t(s)}),C("GET","search/members",a=>{let s=xt(a.query);return r(s)}),C("POST","update/member",a=>{let{body:s}=a;return o(s)},[V.EDITOR]),C("GET","member/image",a=>{let s=O(a.query.size)[0];return n({member:J(a.query.member),size:s&&s==="splash"?"splash":"thumb"})})]}function Ji(e){let t=O(e.locale)[0]||Te||"en",r=t==="all"||sr(e.all),o=O(e.mode)[0],a=(O(e.output)[0]||"full")==="lite"?"lite":"full",s=parseInt(O(e.related)[0],10)||5,i=O(e.variant).map(J);if(i.length===0&&(i=O(e["variant[]"]).map(J)),o==="ids")return {all:r,mode:o,variant:i,output:a,locale:r?Te:D(t),ids:O(e.ids||e["ids[]"])};if(o==="content_ids")return {all:r,mode:o,variant:i,output:a,locale:r?Te:D(t),content_ids:O(e.content_ids||e["content_ids[]"]).map(J)};if(o==="slugs")return {all:r,mode:o,variant:i,output:a,locale:r?Te:D(t),slugs:O(e.slugs||e["slugs[]"]).map(c=>{let[l,u]=c.split("/");return {variantSlug:l,memberSlug:u}})};if(o==="related")return {all:r,mode:o,locale:r?Te:D(t),related:s,current_ids:O(e.current_ids||e["current_ids[]"]).map(J),report_ids:O(e.report_ids||e["report_ids[]"]).map(J),dimension_ids:O(e.dimension_ids||e["dimension_ids[]"]).map(J),variant_ids:O(e.variant_ids||e["variant_ids[]"]).map(J),output:a};if(o==="whole")return {all:r,mode:o,variant:i,locale:r?Te:D(t),output:a};throw new R(400,`Invalid mode: '${o}'`)}function xt(e){let t=O(e.locale)[0]||Te||"en",r=t==="all",o=O(e.format)[0],n=o?o==="nested":r,a=O(e.variant).map(J);a.length===0&&(a=O(e["variant[]"]).map(J));let s=O(e.dimension).map(J);s.length===0&&(s=O(e["dimension[]"]).map(J));let i=O(e.report).map(J);return i.length===0&&(i=O(e["report[]"]).map(J)),{query:O(e.query||e.q)[0]||"",locale:r?Te:t,preferredLocale:O(e.preferredLocale)[0],limit:O(e.limit).map(J)[0]??5,format:n?"nested":"plain",includes:sr(e.includes,{default:!0}),visible:sr(e.visible,{default:!0}),noImage:sr(e.noImage,{default:!1}),variant:a,dimension:s,report:i,all:r,sort:O(e.sort)[0],direction:O(e.direction)[0],offset:Number(e.offset||0)}}async function Pn(e,t){let r=tt(e),o=xt({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:D(o.query)},results:a}}async function wn(e,t){let{search:r}=e,{content_id:o,image_id:n}=t;await r.update({image_id:n},{where:{content_id:o}});let a=await r.findOne({where:{content_id:o},include:ge}).then(s=>s?{...s.toJSON(),image:{...s.image.toJSON(),thumb:!!s.image.thumb}}:null);return {meta:{id:n,content_id:o},results:a}}var{locales:Zi}=U(),It;if(process.env.UNSPLASH_API_KEY)try{It=createApi({accessKey:process.env.UNSPLASH_API_KEY});}catch(e){throw console.error("Unsplash error:",e),new Error(e.message)}async function xn(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!It)throw new Error("Unsplash API Key not configured");let o=r.prompt,a=(await It.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:D(r.prompt),page:D(`${r.page}`)},results:a}}catch(r){throw console.log(r),new Error("Error in search unsplash provider")}}async function In(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:D(`${r}`)||"",id:D(`${o}`)||""};if(!It)throw console.log("Unsplash is not initialized. Check the credentials"),new Error("Unsplash is not initialized. Check the credentials");let a=await It.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 ur.get(a.urls.full,{responseType:"arraybuffer"}).then(h=>h.data),d={url:c,author:a.user.name||a.user.username,license:"Free Unsplash license: https://unsplash.com/license"},m=await e.image.create(d);await e.image_content.destroy({where:{id:m.id}});let y=Zi.map(h=>({id:m.id,locale:h,meta:a.description||a.alt_description}));await e.image_content.bulkCreate(y),await e.search.update({image_id:m.id},{where:{content_id:r}}),await Ee(e,m.id,p);}let u=await e.search.findOne({where:{content_id:r},include:ge});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.log(r),new Error("Error in save unsplash provider")}}var{locales:ec}=U();async function Cn(e,t){try{let{content_id:r,image_source:o,files:n}=t,a={content_id:D(`${r}`)||""};if(await e.search.findOne({where:{content_id:r}})&&n){let c=await Xi.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=ec.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 Ee(e,u.id,c);}let i=await e.search.findOne({where:{content_id:r},include:ge});return i&&i.image&&(i.image.thumb=!!i.image.thumb),{meta:{...a},results:i}}catch(r){throw console.log(r),new Error("Error in save upload provider")}}var{locales:tc}=U();var Bn=async e=>{let t={"x-api-key":process.env.ADOBE_STOCK_API_KEY||"EMPTY_ADOBE_KEY","X-Product":"BespokeApp/0.1"};return e&&(t.Authorization=`Bearer ${e}`),t};var Ct;if(process.env.ADOBE_STOCK_API_KEY)try{Ct={search:async(e,t)=>await ur.get("https://stock.adobe.io/Rest/Media/1/Search/Files",{headers:await Bn(!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 ur.get("https://stock.adobe.io/Rest/Media/1/Files",{headers:await Bn(!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 Mn(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Ct)throw new Error("Adobe API Key not configured");let n=(await Ct.search(r.prompt,r.page)).map(a=>({id:a.id,source:a.thumbnail_url}));return {meta:{prompt:D(r.prompt),page:D(`${r.page}`)},results:n}}catch(r){throw console.log(r),new Error("Error in search Adobe provider")}}async function Ln(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:D(`${r}`)||"",id:D(`${o}`)||""};if(!Ct)throw console.log("Adobe is not initialized. Check the credentials"),new Error("Adobe is not initialized. Check the credentials");let a=await Ct.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 ur.get(a.thumbnail_1000_url,{responseType:"arraybuffer"}).then(h=>h.data),d={url:c,author:a.creator_name,license:"ADOBE, TO-DO"},m=await e.image.create(d);await e.image_content.destroy({where:{id:m.id}});let y=tc.map(h=>({id:m.id,locale:h,meta:a.title||a.description}));await e.image_content.bulkCreate(y),await e.search.update({image_id:m.id},{where:{content_id:r}}),await Ee(e,m.id,p);}let u=await e.search.findOne({where:{content_id:r},include:ge});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.log(r),new Error("Error in save adobe provider")}}var rc={local:wn,flickr:_n,unsplash:In,upload:Cn,adobe:Ln};function ot(e,t){let r=rc[t];if(!r)throw new R(500,`Wrong provider dbImageSaveFactory.ts: ${t}`);return _(o=>r(e,o))}var oc={local:Pn,flickr:vn,unsplash:xn,adobe:Mn};function Bt(e,t){let r=oc[t];if(!r)throw new R(500,`Wrong provider dbImageSearchFactory.ts: ${t}`);return _(o=>r(e,o))}var uc=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 cr(e){let{report:t,search:r}=e;return o;async function o(n){return {data:(await t.findAll({attributes:["id","name",[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"],[literal("COALESCE(NULLIF(settings ->> 'hide', '')::BOOL, false)"),"hide"]],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!1),literal("NOT (settings::jsonb ? 'hide')")]},order:[["ordering","ASC"]],include:[{attributes:["id","name","ordering"],association:"dimensions",separate:!0,order:[["ordering","ASC"]],include:[{attributes:["id","name","slug",[fn$1("COUNT",col("members.id")),"members_count"],[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"]],include:[{model:r,attributes:[],as:"members"}],association:"variants",separate:!0,group:["variant.id"],order:[["ordering","ASC"]]}]}]})).map(s=>({...uc(s.toJSON()),mode:s.dimensions.length===1?Se.UNILATERAL:Se.MULTILATERAL}))}}}function On(e){return async()=>(await Le(e,!0),{error:!1})}var{locales:pc,localeDefault:dc}=U(),mc=(e,t)=>{if(!e)return [];let r=[];return t.forEach(o=>{let n=e.filter(a=>a.metadata.report.id===o.id);if(n.length>0)if(o.mode===Se.UNILATERAL){let a=o.dimensions[0];a.variants.forEach(s=>{let i=n.filter(c=>c.metadata.dimension.id===a.id&&c.metadata.variant.id===s.id);i.length>0&&(r=r.concat(i.map(c=>({path:`/${s.slug}/${c.slug}`,name:c.name,confidence:c.confidence,report:{id:o.id,name:o.name,mode:o.mode},members:[c],id:`r-${o.id}-${[c].map(l=>`${l.id}`).join("-")}`}))));});}else o.mode;}),r.sort((o,n)=>o.confidence<n.confidence?1:-1)},fc=(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 Nn(e){let t=tt(e),r=cr(e);return o;async function o(n){let a=n.format||"results",s=pc.includes(n.locale)?n.locale:dc,i=await t({...n,format:"plain",locale:D(s),visible:!0}),c=i.results?i.results:[],u=(await r()).data,p=fc(c,u);return {meta:{...i.meta,format:a},results:mc(p,u)}}}function Dn(){return async e=>{let t=typeof e=="string"?{url:e}:e;try{let r=await ur.request(t);return {ok:!0,status:r.status,data:r.data}}catch(r){throw new R(r.response?.status||500,r.message)}}}function Un(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 R(r.response?.status||500,r.message)}}}function Fn(){return async e=>{try{let{target:t}=e;return {target:t}}catch(t){throw new R(t.response?.status||500,t.message)}}}function Mt(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 yc(e,t){return e.some(r=>t.includes(`role.${r}`))}function Vn(e){let{report:t}=e;return r;async function r(o){let n=await t.findByPk(o.report_id,{include:{association:"sections",separate:!0,include:[{association:"blocks",separate:!0,include:[{association:"contentByLocale",separate:!0,where:{locale:o.locale}},{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")||yc(o.roles,s.settings.access))).map(s=>s.id);return a=a.concat(Mt(a,n)),{params:{...o},data:n.filter(s=>a.includes(s.id))}}}var Rc=Object.keys(Fr).filter(e=>e.indexOf("Icon")===0);async function zn(){return {meta:{provider:"tabler"},results:Rc}}async function $n(e){let t=Fr[e.name]?Fr[e.name]:()=>"";return renderToString(createElement(t))}var Sc={tabler:zn};function qn(e){let t=Sc[e];if(!t)throw new R(500,`Wrong provider dbListIconsFactory.ts: ${e}`);return _(()=>t())}var Ec={tabler:$n};function Gn(e){return _(t=>{let r=Ec[e];if(!r)throw new R(500,`Wrong provider dbReadIconFactory.ts: ${t.provider}`);return r({name:t.name,provider:e})})}function Lt(e,t,r){return Me().then(o=>{Object.assign(r,nt(o));})}function nt(e){return {...Sn(e),searchReport:_(Nn(e)),readMetadata:_(cr(e)),regenerateSearch:_(On(e)),imageFlickrSearch:Bt(e,"flickr"),imageLocalSearch:Bt(e,"local"),imageUnsplashSearch:Bt(e,"unsplash"),imageAdobeSearch:Bt(e,"adobe"),imageFlickrSave:ot(e,"flickr"),imageLocalSave:ot(e,"local"),imageUnsplashSave:ot(e,"unsplash"),imageUploadSave:ot(e,"upload"),imageAdobeSave:ot(e,"adobe"),urlProxy:Dn(),searchRole:_(xo()),searchUser:_(Io()),readUser:_(Co()),updateUser:_(Bo()),updateMyData:_(Mo()),revalidateReport:_(Un(e)),revalidateUrl:_(Fn()),readPrivateBlocks:_(Vn(e)),listTablerIcons:qn("tabler"),readTablerIcon:Gn("tabler")}}async function Vr(e){try{let t=new Ac.IncomingForm,r=await new Promise((o,n)=>{t.parse(e,(a,s,i)=>{if(a){console.log("Error in formidable parse function inside internal parseBody.ts",a),n(a);return}o({fields:s,files:i});});});return {...r.fields,files:r.files}}catch(t){return {error:t}}}function Ne(e,t){let r=oe(e,"create",t),o=oe(e,"read",t),n=oe(e,"update",t),a=oe(e,"delete",t),s=oe(e,"updateBulk",t),i=oe(e,"createBulk",t);return [C("POST",`create/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(m=>p[m]);return i(d)},[V.EDITOR]),C("POST",`create/${t}`,c=>{let{body:l}=c;return r(l)},[V.EDITOR]),C("GET",`read/${t}`,c=>{let l=c.query,u=O(l.id).map(J);return o({id:u,include:sr(l.include)})}),C("POST",`update/${t}`,c=>{let{body:l}=c;return n(l)},[V.EDITOR]),C("POST",`update/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(m=>p[m]);return s(d)},[V.EDITOR]),C("DELETE",`delete/${t}`,c=>{let l=J(c.query.id);return a(l)},[V.EDITOR])]}function Kn(e){let{validateVariantSlug:t}=e;return [...Ne(e,"variant"),C("GET","validate/variant",r=>{let o=r.query,n=J(o.dimension);return t({dimension:n,slug:rr(o.slug)})},[V.EDITOR])]}function at(e,t){let r=`image${fe(t)}Save`,o=e[r];return C("POST",`images/save/${t}`,n=>{let a=n.body;if(!a.content_id)throw new R(400,"Missing 'content_id' parameter.");if(!a.image_id)throw new R(400,"Missing 'image_id' parameter.");return o(a)},[V.EDITOR])}function Ot(e,t){let r=`image${fe(t)}Search`,o=e[r];return C("GET",`images/search/${t}`,async n=>{let a=O(n.query.prompt)[0];if(!a)throw new R(400,"Empty 'prompt' param.");return o({prompt:a,page:J(n.query.page)})},[V.EDITOR])}function jn(e){let{readMetadata:t}=e;return C("GET","read/metadata",()=>t({}))}function Hn(e){let{regenerateSearch:t}=e;return C("POST","search/regenerate",()=>t(void 0),[V.EDITOR])}function Wn(e){let{searchReport:t}=e;return C("GET","search/reports",r=>{let o=vc(r.query);return t(o)})}function vc(e){return {...xt(e),format:O(e.format)[0]}}function Jn(e){let{urlProxy:t}=e;return C("GET","url/proxy",r=>{let{url:o,method:n="GET"}=r.query;if(!o)throw new R(400,"Missing URL parameter");return t({url:Array.isArray(o)?o.join(","):o,method:O(n)[0]==="POST"?"POST":"GET"})})}function Yn(e){let{readMetadata:t,revalidateReport:r}=e;return C("GET","revalidate/report",async(o,n)=>{let{reportId:a,profilePrefix:s}=o.query;if(!a||!s)throw new R(400,"Missing URL parameter in revalidate factory: reportId or profilePrefix");try{let i=parseInt(`${a}`,10),c=`${s}`.split("/").filter(y=>y!=="").join("/"),l=[],u=await t({}).then(y=>y.ok?y.data.data.find(h=>h.id===i):[]);u&&u.mode===Se.UNILATERAL&&u.dimensions.forEach(y=>{y.variants.forEach(h=>{l.push({prefix:c,variantId:h.id,variantSlug:h.slug});});});let p=await r({profilePrefix:c,reportId:i,variantPaths:l}),d=[],m=0;return p.ok&&(m=p.data.paths.length,d=p.data.paths.slice(0,5),Promise.all(p.data.paths.map(y=>{let h;try{h=n.revalidate(y,{unstable_onlyGenerated:!0});}catch(b){console.log("error",y,b);}return h}))),{ok:!0,status:200,data:{reportId:a,revalidated:m,samples:d}}}catch(i){throw console.log(i),new R(500,"Error revalidating")}},[V.EDITOR])}function Qn(){return C("GET","revalidate/url",async(e,t)=>{let{target:r}=e.query;if(r)try{return t.revalidate(r,{unstable_onlyGenerated:!0}),{ok:!0,status:200,data:{target:r}}}catch(o){throw console.log(o),new R(500,"Error revalidating")}else throw new R(400,"Missing target parameter in revalidate factory")},[V.ADMIN,V.EDITOR,V.WRITER])}var{localeDefault:_c}=U();function Zn(e){let{readPrivateBlocks:t}=e;return C("POST","read/blocks/private",(r,o,n)=>{let a={report_id:parseInt(r.body.report_id,10),locale:r.body.locale||_c,roles:n&&n.user?n.user.bespoke_roles:[]};return t(a)},[])}function Xn(e){let{searchRole:t}=e;return C("GET","auth/search/roles",()=>t(""),[V.EDITOR])}function ea(e){let{searchUser:t}=e;return C("GET","auth/search/users",r=>t({query:r.query.query,role_id:r.query.role_id,page:r.query.page||0}),[V.ADMIN])}function ta(e){let{readUser:t}=e;return C("GET","auth/read/user",r=>t(r.query.user_id),[V.ADMIN])}function ra(e){let{updateUser:t,readUser:r}=e;return C("POST","auth/update/user",async(o,n,a)=>{let s=o.body,i=await t(s);if(a&&a.user&&s.user_id===a.user.sub){let c=await r(a.user.sub);c.ok&&await Q.updateSession(o,n,{...a,user:{...a.user,bespoke_app_metadata:c.data.app_metadata,bespoke_user_metadata:c.data.user_metadata,bespoke_roles:c.data.roles.map(l=>l.name)}});}return i},[V.ADMIN])}function oa(e){let{updateUser:t,readUser:r}=e;return C("POST","auth/update/me",async(o,n,a)=>{let{report_id:s,user_metadata:i}=o.body,c={user_id:a.user.sub,user_metadata:{}};try{let{user:l}=a;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);let u=await r(c.user_id);return u.ok&&await Q.updateSession(o,n,{...a,user:{...l,bespoke_app_metadata:u.data.app_metadata,bespoke_user_metadata:u.data.user_metadata}}),{ok:!0,status:200,data:{ok:!0,message:"User & session updated"}}}catch(l){return {ok:!1,status:500,error:l.message}}},[])}async function kc(e){try{return "JVBERi0xLjcKJYGBgYEKCjYgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAxMTYKPj4Kc3RyZWFtCnicHYqxCsJAEAX79xVbC+Lmbm/3DoKFeEcKG2F/QCSKYgol+P0mMkwxMG8cHEwrnzt2w/j6jvPjetkalyyZLReKTH5DEPITuv/aUWKKiz6hTywiGliTZWNtFkyWitr0qEWrWmBbq2ndkz/hG1THGT/eextGCmVuZHN0cmVhbQplbmRvYmoKCjcgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA1Ci9GaXJzdCAyNgovTGVuZ3RoIDM2Mgo+PgpzdHJlYW0KeJzVUt9LwzAQfs9fcY/6IEnTH2llDLa1VZChbIKi+JC1YVRGIm0m87/3ru0cexCfpXwkd/cl+a73BSBAQhRBCCqFCOJQQgwqCGAyYfzx68MAf9Bb0zF+19QdvCJHwAreGF+4vfUQsOmUnbgL7fXObdlwCAIiHxkPrav3lWlhUhZlKYQSQiQRIhFC5rguEBlCYow1meIeoaIRmFOhEOEMa+WARA1nqN5z4/F8gStyE+LkAzdKh/jnXXqrGO6Qf+nJpowvXZ1rb+Aiv5ZCRiKTsQyjTKYvl/g7WqO9+7/N9fobZ3/t8GzONF4acmvIA/2U+cp0bt9WOHbilQ4rtLk1u0/jm0pfKZGlqFOlGXpsNAZ/vt+8m6qnUlgc/M3ak4YhQbmlqRs9dwd0n8APOwDshDw4s9Z5cmXvR+tRDUXJ6NEzySSI8fV+4/uQkgHjc92ZXupJJ4qwlasbuwX+1NiZ7Zpjgm78BkHDxfcKZW5kc3RyZWFtCmVuZG9iagoKOCAwIG9iago8PAovU2l6ZSA5Ci9Sb290IDIgMCBSCi9JbmZvIDMgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW5ndGggNDEKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOSBdCj4+CnN0cmVhbQp4nBXEwQ0AIAwDsUuKxJf9JUZippb4YaDbbEhKTpWWOCDezxcGYeEDtQplbmRzdHJlYW0KZW5kb2JqCgpzdGFydHhyZWYKNjY5CiUlRU9G"}catch(n){throw console.error("Error generating PDF:",n),n}}function na(){return C("POST","pdf",async(e,t)=>{let{slugs:r,path:o}=e.body;if(!r||!o)throw new R(400,"Missing path parameter in request.");{new URL(o,e.headers.origin);return {ok:!0,status:200,data:await kc()}}})}function aa(e,t){let r=`list${fe(t)}Icons`,o=e[r];return C("GET",`list/icons/${t}`,async()=>o({}),[V.EDITOR])}function sa(e,t){let r=`read${fe(t)}Icon`,o=e[r];return C("GET",`read/icons/${t}/icon.svg`,async n=>o({provider:t,name:n.query.name}))}function ia(){return C("GET","report",async(e,t)=>{let{report:r,prefix:o,locale:n}=e.query;if(!r)throw new R(400,"Missing report parameter.");if(!o)throw new R(400,"Missing report parameter.");if(!n)throw new R(400,"Missing report parameter.");try{let s=await(await fetch(`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${n}${o}${r}`)).text(),l=new Pc().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 R(500,"Couldn't find page cache")}})}var Ic=je();function zr(e,t){return `${e.toUpperCase()} ${t.toLowerCase()}`}function Cc(e){let t=nt(e);return Object.fromEntries([...Ne(t,"block"),...Ne(t,"dimension"),...Ne(t,"formatter"),...Ne(t,"report"),...Ne(t,"section"),...Kn(t),...kn(t),Wn(t),jn(t),Hn(t),at(t,"flickr"),at(t,"local"),at(t,"unsplash"),at(t,"upload"),at(t,"adobe"),Ot(t,"flickr"),Ot(t,"local"),Ot(t,"unsplash"),Ot(t,"adobe"),Jn(t),Xn(t),ea(t),ta(t),ra(t),oa(t),Yn(t),Qn(),Zn(t),na(),aa(t,"tabler"),sa(t,"tabler"),ia()].map(({handler:r,method:o,path:n,roleRequired:a})=>[zr(o,n),{handler:r,roleRequired:a}]))}var ca=Me().then(Cc);async function Bc(e,t){await wc(e,t,{methods:["GET","HEAD","PUT","PATCH","POST","DELETE"],origin:"*"});let{query:r,method:o}=e,{path:n,...a}=r;if(n&&o){let s=await ca.then(i=>{let c=[].concat(n).join("/"),l=zr(o,c);return i[l]});if(s){let i=await Q.getSession(e,t);if(s.roleRequired){if(!i)return t.status(401).json({error:"Unauthorized. Must be logged in."});let c=i&&i.user&&i.user.bespoke_roles&&Array.isArray(i.user.bespoke_roles)?i.user.bespoke_roles:[];if(Array.isArray(s.roleRequired)&&s.roleRequired.length>0&&!Wt(c,s.roleRequired))return t.status(402).json({error:"Forbidden. Not enough roles."})}if(s.handler)return ["POST","DELETE"].includes(o)&&(e.body=await Vr(e)),Promise.resolve(e).then(c=>s.handler(c,t,i||void 0)).then(async c=>{if(c&&"error"in c)throw new R(c.status,c.error);if(c.ok)if(c.data instanceof Buffer){let l=await xc(c.data),u=Buffer.byteLength(c.data);t.writeHead(c.status,{"Content-Type":l?l.mime:"image/jpeg","Content-Length":u.toString()}).send(c.data);}else e.url&&e.url.indexOf("/icon.svg?name=")>0?(t.setHeader("Content-Type","image/svg+xml"),t.status(c.status).send(c.data)):t.status(c.status).json({data:c.data});}).catch(c=>{Ic&&console.trace("Backend Error",c),t.status(c.code).json({error:c.message});})}}else n||await ca.then(console.log);return t.status(404).json({error:"No matching route",path:n,query:a})}var Mc=e=>{let t=e;return async function(r,o){let n=await t({test:"pala"});return o.json(n)}},Lc=Mc;var Kt={};is(Kt,{addBlockToState:()=>Ro,cloneEntity:()=>za,createEntity:()=>Ua,deleteEntity:()=>Va,deleteQueryParam:()=>Xl,readEntity:()=>re,readMember:()=>Gt,readMetadata:()=>tu,readPrivateBlocks:()=>cu,readUser:()=>au,recalculateVariables:()=>Ja,removeBlocksFromState:()=>bo,reportSearch:()=>Yl,resetSectionState:()=>Ha,revalidateReport:()=>uu,revalidateUrl:()=>lu,searchMember:()=>Zl,searchRegenerate:()=>Ql,searchRole:()=>ou,searchUser:()=>nu,setCurrentLocale:()=>Hl,setPreferredLocale:()=>Wl,setPreviews:()=>jl,setQueryParam:()=>eu,setSectionState:()=>ja,setStatus:()=>Ka,updateEntity:()=>Fa,updateMyData:()=>iu,updateUser:()=>su,urlProxy:()=>ru,variantValidateSlug:()=>Jl});function ue(e,t){return e.request(t).then(r=>{let{status:o,data:n}=r;return "error"in n?{ok:!1,status:o,error:n.error}:{ok:!0,status:o,data:n.data}},r=>{if("isAxiosError"in r){let{status:o,data:n}=r.response||{status:500};return {ok:!1,status:o,error:n?.error??r.message}}return {ok:!1,status:500,error:r.message}})}function Z(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>ue(e,{...o,method:"GET",params:r?r(n):n})}function ee(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>ue(e,{...o,method:"POST",data:r?r(n):n})}function De(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>ue(e,{...o,method:"DELETE",params:r?r(n):n})}function st(e,t){return r=>ue(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function Nt(e,t){return r=>ue(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function la(e,t){return ()=>ue(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function ua(e,t){return r=>ue(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var it=e=>({id:e}),Nc=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 Dt(e){let t=ur.create({baseURL:e});return {createBulkBlock:ee(t,"create/bulk/block"),createBlock:ee(t,"create/block"),createDimension:ee(t,"create/dimension"),createFormatter:ee(t,"create/formatter"),createReport:ee(t,"create/report"),createSection:ee(t,"create/section"),createVariant:ee(t,"create/variant"),deleteBlock:De(t,"delete/block",it),deleteDimension:De(t,"delete/dimension",it),deleteFormatter:De(t,"delete/formatter",it),deleteReport:De(t,"delete/report",it),deleteSection:De(t,"delete/section",it),deleteVariant:De(t,"delete/variant",it),readBlock:Z(t,"read/block"),readDimension:Z(t,"read/dimension"),readFormatter:Z(t,"read/formatter"),readReport:Z(t,"read/report"),readSection:Z(t,"read/section"),readVariant:Z(t,"read/variant"),updateBulkBlock:ee(t,"update/bulk/block"),updateBlock:ee(t,"update/block"),updateDimension:ee(t,"update/dimension"),updateFormatter:ee(t,"update/formatter"),updateReport:ee(t,"update/report"),updateSection:ee(t,"update/section"),updateVariant:ee(t,"update/variant"),searchReport:Z(t,"search/reports"),validateVariantSlug:Z(t,"validate/variant"),readMember:Z(t,"read/members",Nc),readMemberImage:Z(t,{url:"member/image",responseType:"blob"}),searchMember:Z(t,"search/members"),updateMember:Z(t,"update/members"),imageLocalSearch:Nt(t,"local"),imageLocalSave:st(t,"local"),imageFlickrSearch:Nt(t,"flickr"),imageFlickrSave:st(t,"flickr"),imageUnsplashSearch:Nt(t,"unsplash"),imageUnsplashSave:st(t,"unsplash"),imageUploadSave:st(t,"upload"),imageAdobeSearch:Nt(t,"adobe"),imageAdobeSave:st(t,"adobe"),readMetadata:Z(t,"read/metadata"),regenerateSearch:ee(t,"search/regenerate"),urlProxy:Z(t,"url/proxy"),searchRole:Z(t,"auth/search/roles"),searchUser:Z(t,"auth/search/users"),readUser:Z(t,"auth/read/user"),updateUser:ee(t,"auth/update/user"),updateMyData:ee(t,"auth/update/me"),revalidateReport:Z(t,"revalidate/report"),revalidateUrl:Z(t,"revalidate/url"),readPrivateBlocks:ee(t,"read/blocks/private"),listTablerIcons:la(t,"tabler"),readTablerIcon:ua(t,"tabler")}}var{localeDefault:Fc}=U();function le(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||Fc}}var $c=sr(process.env.REPORTS_LOGGING),Ue=qc;function qc(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=le(a);try{if(t){let l=new Proxy(console,{get(p,d){return Gc(d,"log","debug","info","warn","error")?(...m)=>{i.push(`${d} ${Date.now()} - ${m.map(y=>format(y)).join(" ")}`),$c&&p[d](...m);}:p[d]}}),u;return n?u=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,Pe,o,c,n):u=new Function(e,"console","libs","formatters","locale",r)(t,l,Pe,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 Gc(e,...t){return t.includes(e)}function $r(e){return e.reduce((t,r,o)=>(o?o===e.length-1&&o===1?t+=` and ${r}`:o===e.length-1?t+=`, and ${r}`:t+=`, ${r}`:t+=r,t),"")}var ct=Kc;function Kc(e,t,r,o=!1){let{variables:n}=le(r);if(!e)return e;let a=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(a,(i,c,l)=>{let u=d=>d;if(c){let d=c.replace(/^\w/g,m=>m.toLowerCase());d in t?u=t[d]:u=m=>`${c}${m}`;}let p=Array.isArray(n[l])?$r(n[l]):n[l];if(p===void 0)return o?i:"N/A";try{return u(p,Pe,t)}catch(d){return console.error(`Error using formatter ${u.name}
58
- `,`Error message: ${d.message}`),"N/A"}})}var qr=(e,t,r)=>{let{variables:o}=r,n=s=>s.allowed==="never"?!1:!s.allowed||s.allowed==="always"||o[s.allowed],a={...e};return Object.keys(a).forEach(s=>{typeof a[s]=="string"?a[s]=ct(a[s],t,r):Array.isArray(a[s])?a[s]=a[s].filter(n).map(i=>typeof i=="object"?qr(i,t,r):typeof i=="string"?ct(i,t,r):i):typeof a[s]=="object"&&a[s]!==null&&!(a[s]instanceof Date)&&(a[s]=qr(a[s],t,r));}),a},lr=qr;var pa=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var Gr=(e,t,r)=>{if(!r)return !1;if(e===xe.SINGLE)return r.find(n=>n.id===t);let o=Array.isArray(t)?t:t.split(",");return Array.isArray(o)&&o.every(n=>r.map(a=>a.id).includes(n))};function Kr(e,t,r,o,n=!1){let{variables:a}=le(o),s=lr({logic:t},r,o).logic,i=Ue("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i,p=c.type||xe.SINGLE,d=c.component||"Selector",m=c.hideLabel||"false",y=c.resetSectionVars||"false",h=c.name||"Unlabeled Selector",b=pa(c.options||[]),A=E=>p===xe.MULTI&&!Array.isArray(E)?[E]:E,T=c.defaultValue,x;if(T&&(T=A(T),Gr(p,T,b)&&(x=T)),!x){let E=b&&b[0]&&b[0].id||b[0]||"";x=A(E);}if(n&&typeof window<"u"){let E=`selector${e}id`,M=new URLSearchParams(window.location.search),B=Object.fromEntries(M)[E];B&&!Gr(p,B,b)&&B!==void 0&&(M.delete(E),window.history.replaceState(null,null,`?${M.toString()}`));}return {config:{name:h,type:p,options:b,defaultValue:x,component:d,hideLabel:m,resetSectionVars:y},log:l,error:u}}function jr(e,t,r){if(!e)return !1;let o=Array.isArray(r)?r:r.split(",");return Array.isArray(o)&&o.every(n=>e.map(a=>`${a[`${t} ID`]}`).includes(n))}function Hr(e,t,r,o,n=!1){let{variables:a}=le(o),s=lr({logic:t},r,o).logic,i=Ue("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i;if(n&&typeof window<"u"){let d=`multihierarchySelector${e}-value`,m=`multihierarchySelector${e}-type`,y=new URLSearchParams(window.location.search),h=Object.fromEntries(y),b=h[d],A=h[m];b&&b!==void 0&&A&&A!==void 0&&!jr(c.data,A,b)&&(y.delete(d),y.delete(m),window.history.replaceState(null,null,`?${y.toString()}`));}return {config:c,log:l,error:u}}var jc=(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===xe.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}},da=jc;var Hc=(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||"",m=r.data?.filter(y=>p.includes(`${y[`${d} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:p,[`multihierarchySelector${e}label`]:[...new Set((m||[]).map(y=>y[d]))],[`multihierarchySelector${e}type`]:d}},ma=Hc;var{localeDefault:fa,locales:Wc}=U(),Jc=Object.values(Br),Yc=(e,t=fa)=>e&&Jc.includes(e.type)?{locale:Mr,locales:[Mr]}:{locale:t,locales:Wc},ga=(e,t=fa)=>{if(!e)return {};let{locale:r}=Yc(e,t);return e.contentByLocale?.[r]?.content};function Qc(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 ya=Qc;var Ut=sr(process.env.NEXT_PUBLIC_REPORTS_DEBUG),tl=process.env.REPORTS_ORIGIN||"";ha(ur,{retries:3,retryDelay:ha.exponentialDelay,onRetry:(e,t,r)=>{console.log("Generator request failed. Retrying... Count: ",e),console.log("URL: ",r.url),console.log(t.message);}});ur.interceptors.request.use(e=>({...e,requestStart:Date.now()}));ur.interceptors.response.use(e=>({...e,requestDuration:new Date().getTime()-e.config.requestStart}),e=>Promise.reject(e));var rl=(e,t,r)=>{let o=ct(e,t,r);return o.startsWith("http")||(o=`${tl}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:ol}=Dt("/api/cms");function Jr(e){return e.ok!==void 0}function Wr(e){this.message=e,this.name="ApiFetchException";}var ba=process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0;async function nl(e,t,r="en",o){let n=Date.now(),a=e,s,c=new URL(e).searchParams;if(c.has("bespoke_slugs")){let p=new RegExp(`[?&]bespoke_slugs=${c.get("bespoke_slugs")}`,"g");a=a.replace(p,"");}let l=o?o.settings:{},u=!!(l&&l.useProxy&&l.useProxy==="true");if(typeof window=="object"&&u){let p=await ol({url:a,timeout:ba});if(p.ok===!0)s=p.data;else throw new Wr(p?.error)}else try{let p=await ur({url:a,timeout:ba});if(p.status===200)p.headers["content-type"]==="text/csv"?s=csvParse(p.data):s=p.data;else throw new Wr("No response")}catch(p){throw new Wr(p.message)}if(c.has("bespoke_slugs")){let p=c.get("bespoke_slugs");if(p){let d=p.split(",");if(d.length===3){let[m,y,h]=d,b=Rt(s,h);if(b&&Array.isArray(b)){let A=Array.from(new Set(b.map(S=>`${S[y]}`).filter(S=>!["","undefined"].includes(S)))),T=A.join("").length>2e3,x=await t({mode:T?"whole":"ids",ids:T?void 0:A,all:!1,locale:r,variant:[parseInt(m,10)],output:"lite",limit:A.length+1}).then(S=>{let E=[];return Jr(S)?S.ok&&(E=S.data.results):E=S.results,E&&Array.isArray(E)?E:[]}).catch(S=>(console.error(`Error hydrating slugs for Variant: ${m}, Key: ${y}, Accessor: ${h}`),console.error(` Url ${e}`),o&&console.error(` From Section ${o.section_id} and Block ${o.id}`),console.error(S),[]));if(x){let S=Object.fromEntries(x.map(E=>[E.id,`/${E.variant_slug}/${E.slug}`]));b.map(E=>(E.bespoke_slug=S[E[y]]?S[E[y]]:null,E));}}}}}return {data:s,requestDuration:Date.now()-n}}function al(e){this.name="BlockException",this.message=e;}async function sl(e,t,r,o){let{locale:n,variables:a,query:s}=le(r),i=cl(e,r,a,t),c=null,l=e.contentByLocale?.logic?.content?.api,u=null,p=null,d=null;if(!i)return {outputVariables:{},renderVariables:{},status:{allowed:!1,hiddenByCascade:e.id}};if(e.type===z.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:i,hiddenByCascade:e.id}};if(l){d=rl(l,t,r);let S=d.split(An).filter(w=>w!==""),E=[];for(let w=0;w<S.length;w++){let B=S[w];new RegExp("^(?:[a-z+]+:)?//","i").test(d)||(B=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${B}`.replace(/([^:]\/)\/+/g,"$1")),E.push(nl(B,o,n,e).catch(L=>{throw new al(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${a.report_name} (${a.report_id}) failed.
59
- Error fetching ${B}.
60
- Message: ${L.message}.
61
- `)}));}let M=await Promise.all(E).catch(w=>w.message);if(typeof M=="string"&&M)return {outputVariables:{},renderVariables:{},status:{error:M}};c=M.length===1?M[0].data:M.map(w=>w.data),p=M.reduce((w,B)=>w+JSON.stringify(B.data).length/1024,0),u=Math.max(...M.map(w=>w.requestDuration));}if(e.type===z.SELECTOR){let{config:S,log:E,error:M}=Kr(e.id,e.contentByLocale[n].content.logic,t,r,!0);return {outputVariables:da(e.id,s,S),renderVariables:S,status:{log:E,error:M,allowed:i}}}if(e.type===z.MULTIHIERARCHY_SELECTOR){let{config:S,log:E,error:M}=Hr(e.id,e.contentByLocale[n].content.logic,t,r,!0);return {outputVariables:ma(e.id,s,S),renderVariables:S,status:{log:E,error:M,allowed:i}}}if(e.type===z.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:i}};if(e.type===z.RELATED){let S=e.contentByLocale?.logic?.content?.simple?.compare||"variant",E=e.contentByLocale?.logic?.content?.simple?.limit||4,M=Object.keys(a).filter(P=>P.startsWith("report_id")).map(P=>a[P]),w=Object.keys(a).filter(P=>P.startsWith("dimension_id")).map(P=>a[P]),B=Object.keys(a).filter(P=>P.startsWith("variant_id")).map(P=>a[P]),$=Object.keys(a).filter(P=>P.startsWith("id")).map(P=>a[P]);if(!$.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:!1}};let F=(await o({mode:"ids",locale:n,ids:$,output:"lite"}).then(P=>{let q=[];return Jr(P)?P.ok&&(q=P.data.results):q=P.results,q&&Array.isArray(q)?q:[]}).catch(P=>(console.log("Error getting related members",P),[]))).map(P=>P.content_id),X={mode:"related",locale:n,related:E??4,current_ids:F,output:"full"};S&&(S==="report"?X.report_ids=M:S==="dimension"?X.dimension_ids=w:X.variant_ids=B);let H=await o(X).then(P=>{let q=[];return Jr(P)?P.ok&&(q=P.data.results):q=P.results,q&&Array.isArray(q)?q:[]}).catch(P=>(console.log("Error getting related members",P),[]));return {outputVariables:{related_reports:H},renderVariables:{},status:{log:[],allowed:H.length>0}}}let{logic:m}=ga(e,n),y=ct(m,t,r),h=Ue("resp",c||{},y,t,a,r),{vars:b,error:A,log:T}=h;if(typeof b!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:T,duration:u,responseSize:p,resp:c,api:d,allowed:i}};let x=Object.keys(b).reduce((S,E)=>({...S,[`${e.type}${e.id}${E}`]:b[E]}),{});return {renderVariables:b,outputVariables:e.type===z.GENERATOR?b:x,status:{log:T,error:A,duration:u,responseSize:p,resp:c,api:d,allowed:i}}}function il(e,t,r,o,n,a,s){return e.consumers.forEach(i=>{if(t[i]){let c=`${r}-${i}`;!o.includes(c)&&(t[i].section_id===t[r].section_id||!n)&&o.push(c),e.consumers.filter(l=>t[l].section_id===t[r].section_id||!n).forEach(l=>Yr(l,t,o,!1,a,n,s));}})}var Yr=(e,t,r=[],o=!0,n=!0,a=!0,s=[])=>{if(s.includes(e))return [];s.push(e);let i=t[e];return i.inputs.length&&o&&i.inputs.forEach(c=>{let l=`${c}-${e}`;r.includes(l)||r.push(l),i.inputs.forEach(u=>Yr(u,t,r,o,!1,a,s));}),i.consumers.length&&n&&il(i,t,e,r,a,n,s),r},cl=(e,t,r,o)=>{let n=!0;if(e&&"allowed"in e.settings&&e.settings.allowed!=="always")if(e.settings.allowed==="never")n=!1;else {let a=le(t),{error:s,output:i}=Ue("variables",r,e.settings.allowedLogic||"return false;",o,void 0,a);s||(n=!!i);}return n},pr=async(e,t,r,o,n,a={},s,i="section")=>{if(!r&&!t)return {...a};let c={...a.variables??{}},l={...a.status??{}},u=le(n),p=u.variables,d=r?{[r]:e[r]}:(t??[]).reduce((w,{id:B})=>({...w,...ya(B,e)}),{});Ut&&console.log("%crunConsumers: running root blocks","color:purple",Object.keys(d));let m=i==="section",y=Object.keys(d).reduce((w,B)=>{let $=new Date,L=Yr(Number(B),e,[],!r,!0,m).map(H=>H.split("-")),X=(new Date().getTime()-$.getTime())/1e3;return Ut&&console.log(`%cResolved dependencies for ${B} (${X.toFixed(2)}s)`,"color:blue"),[...w,...L]},[]),h=new Date,b=Object.keys(d).reduce((w,B)=>w.includes(B)?[...w]:[B,...w],Zc(y)),T=(new Date().getTime()-h.getTime())/1e3;Ut&&console.log(`%cResolved DAG (${T.toFixed(2)}s): `,"color:green",b);async function x(w,B){let $=new Map;for(let L of w){let F=B[L],H=Promise.all(F.inputs.filter(P=>w.includes(String(P))).map(P=>$.get(Number(P)))).then(async()=>{let P=F.inputs.reduce((G,v)=>({...G,...c[v]}),p),q=F.inputs.find(G=>(F.settings?.ignoreCascade?F.settings?.ignoreCascade:[]).includes(G)?!1:!l[G].allowed||l[G].hiddenByCascade);if(q){l[L]={allowed:!1,hiddenByCascade:l[q].hiddenByCascade||q},c[L]={};return}let j=new Date,k=await sl(F,o,{...u,variables:P,locale:P.locale},s).then(({outputVariables:G,status:v})=>{if(v.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${L}, Section ${F.section_id}) failed with message: ${v.error}. `);l[L]={allowed:!1,error:v.error},c[L]={};}(F.consumers.length>0||[z.GENERATOR,z.RELATED].includes(F.type))&&v.allowed&&Object.keys(G).length>0?c[L]=G:c[L]={},i==="report"?(l[L]={allowed:v.allowed},F.type===z.GENERATOR&&v.api&&(l[L].api=v.api)):l[L]=v;}),N=(new Date().getTime()-j.getTime())/1e3;return Ut&&console.log(`%cBlock ${F.id} resolved in ${N.toFixed(3)}s`,N>500?"color:red":"color:green"),k});$.set(Number(L),H);}await Promise.all(Array.from($.values()));}let S=new Date;await x(b,e);let M=(new Date().getTime()-S.getTime())/1e3;return Ut&&console.log(`%cResolved Variables (${M.toFixed(2)}s): `,"color:green"),{variables:{...a.variables??{},...c},status:{...a.status??{},...l}}};function ll(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 dr=ll;function pl(){let{publicRuntimeConfig:e}=ul(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((r,o)=>(r[`ENV_${o}`]=t[o]||"N/A",r),{})}}var mr=pl;function dl(e,t){return +(e<t)-+(e>t)}function fr(e,t,r="ordering"){return dl(t[r],e[r])}var Sa=(e,t={},r="en",o={},n={})=>{let a={setVariables:o.onSetVariables?o.onSetVariables:c=>c,openModal:o.onOpenModal?o.onOpenModal:c=>c,formatters:t,libs:Pe,locale:r,...n};function s(c){return Function("globals",...c.vars,`with (globals) { ${c.logic} }`).bind(a,a)}function i(c){if(c.vars&&c.logic)return s(c);for(let l in c)Array.isArray(c[l])?c[l]=c[l].map(u=>isObject(u)?i(u):u):isObject(c[l])&&(c[l]=i(c[l]));return c}return i(e)};var{localeDefault:fl}=U();var Ft=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});Ft.define({consumers:[Ft],inputs:[Ft]});var Ea=new schema.Entity("variant"),Aa=new schema.Entity("dimension",{variants:[Ea]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),Ta=new schema.Entity("section",{blocks:[Ft]}),gl=new schema.Entity("report",{dimensions:[Aa],sections:[Ta]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(fr):[]}}}),yl=new schema.Entity("formatter"),hl={report:gl,section:Ta,block:Ft,dimension:Aa,variant:Ea,formatter:yl};function gr(e,t){let r=hl[e];if(!r)throw new Error(`Invalid entity type: ${e}`);let{entities:o}=normalize(t,[r]);return {report:lt(o,"report"),dimension:lt(o,"dimension"),section:lt(o,"section"),block:lt(o,"block"),variant:lt(o,"variant"),formatter:lt(o,"formatter")}}function lt(e,t){return e.hasOwnProperty(t)?e[t]:{}}var va=(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}},Qr=(e=[],t=fl)=>e.reduce((r,o)=>{let n=Sa({vars:["n"],logic:o.content.logic},{},t,{});return r[o.name]=n,r},{});var pe=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",yr=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[pe];yr.includes(pe)||yr.push(pe);var Sl={localeDefault:pe,locales:yr,currentLocale:pe,preferredLocale:pe,showToolbar:!1,activeSection:null,previews:[],query:{},sectionState:{},activeEntity:{type:null,id:null},sidebarStatus:{tools:!0,settings:!1,reportEditor:!1},isCMS:!1},hr=createSlice({name:"status",initialState:Sl,reducers:{setStatus:(e,t)=>{Object.assign(e,t.payload);},setPreviews(e,t){e.previews=t.payload;},setCurrentLocale(e,t){e.currentLocale=t.payload;},setPreferredLocale(e,t){e.preferredLocale=t.payload;},setSectionState(e,t){e.sectionState={...e.sectionState,...t.payload};},resetSectionState(e,t){e.sectionState={...e.sectionState,[t.payload]:{}};},setActiveEntity(e,t){e.activeEntity=t.payload;},openSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!0};},closeSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!1};},toggleSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!e.sidebarStatus[t.payload]};}},extraReducers:{[HYDRATE]:(e,t)=>({...e,previews:t.payload.status.previews})}}),Fe=hr.actions;var Tl={attributes:{},variables:{},status:{}},br=createSlice({name:"variables",initialState:Tl,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}})}}),Rr=br.actions;var kl={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}}},ve=createSlice({name:"records",initialState:kl,reducers:{set:(e,t)=>{let r=t.payload;return {entities:Vt(e.entities,r.entities||{}),requests:Vt(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=gr(r.type,o),a=Vt(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=Sr(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=Sr(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=gr(r.type,r.data),n=Vt(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=gr(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=Vt(e.entities,n);if(e.entities=c,r.type==="dimension"){let l=r.data;e.entities.report[l.report_id].dimensions=Sr(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=Sr(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`;Pl(e.entities[a][n][s],o);}}},removeBlocks:(e,t)=>{let r=t.payload,o={...e.entities.block};return r.forEach(n=>{delete o[n];}),{...e,entities:{...e.entities,block:o}}},addBlocks:(e,t)=>{let r=t.payload;return {...e,entities:{...e.entities,block:{...e.entities.block,...r}}}}},extraReducers:{[HYDRATE]:(e,t)=>{let r=t.payload.records,o=r.entities;return {entities:o,reports:Object.values(o.report).map(n=>n.id),requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}},tree:r.tree}}}});function Vt(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,{...e[r],...t[r]}]))}function Sr(e,t){return e.map(n=>t[n]).sort(fr).map(n=>n.id)}function Pl(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}function te(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=Ol[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 pt(e){return !!e&&!!e[se]}function ze(e){var t;return !!e&&(function(r){if(!r||typeof r!="object")return !1;var o=Object.getPrototypeOf(r);if(o===null)return !0;var n=Object.hasOwnProperty.call(o,"constructor")&&o.constructor;return n===Object||typeof n=="function"&&Function.toString.call(n)===Nl}(e)||Array.isArray(e)||!!e[Ba]||!!(!((t=e.constructor)===null||t===void 0)&&t[Ba])||io(e)||co(e))}function $t(e,t,r){r===void 0&&(r=!1),mt(e)===0?(r?Object.keys:fo)(e).forEach(function(o){r&&typeof o=="symbol"||t(o,e[o],e);}):e.forEach(function(o,n){return t(n,o,e)});}function mt(e){var t=e[se];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:io(e)?2:co(e)?3:0}function ro(e,t){return mt(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function wl(e,t){return mt(e)===2?e.get(t):e[t]}function Ma(e,t,r){var o=mt(e);o===2?e.set(t,r):o===3?e.add(r):e[t]=r;}function xl(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function io(e){return Ml&&e instanceof Map}function co(e){return Ll&&e instanceof Set}function Ve(e){return e.o||e.t}function lo(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Dl(e);delete t[se];for(var r=fo(t),o=0;o<r.length;o++){var n=r[o],a=t[n];a.writable===!1&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[n]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[n]});}return Object.create(Object.getPrototypeOf(e),t)}function uo(e,t){return t===void 0&&(t=!1),po(e)||pt(e)||!ze(e)||(mt(e)>1&&(e.set=e.add=e.clear=e.delete=Il),Object.freeze(e),t&&$t(e,function(r,o){return uo(o,!0)},!0)),e}function Il(){te(2);}function po(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function ye(e){var t=Ul[e];return t||te(18,e),t}function _a(){return process.env.NODE_ENV==="production"||dt||te(0),dt}function Zr(e,t){t&&(ye("Patches"),e.u=[],e.s=[],e.v=t);}function Er(e){oo(e),e.p.forEach(Cl),e.p=null;}function oo(e){e===dt&&(dt=e.l);}function ka(e){return dt={p:[],l:dt,h:e,m:!0,_:0}}function Cl(e){var t=e[se];t.i===0||t.i===1?t.j():t.g=!0;}function Xr(e,t){t._=t.p.length;var r=t.p[0],o=e!==void 0&&e!==r;return t.h.O||ye("ES5").S(t,e,o),o?(r[se].P&&(Er(t),te(4)),ze(e)&&(e=Ar(t,e),t.l||Tr(t,e)),t.u&&ye("Patches").M(r[se].t,e,t.u,t.s)):e=Ar(t,r,[]),Er(t),t.u&&t.v(t.u,t.s),e!==La?e:void 0}function Ar(e,t,r){if(po(t))return t;var o=t[se];if(!o)return $t(t,function(i,c){return Pa(e,o,t,i,c,r)},!0),t;if(o.A!==e)return t;if(!o.P)return Tr(e,o.t,!0),o.t;if(!o.I){o.I=!0,o.A._--;var n=o.i===4||o.i===5?o.o=lo(o.k):o.o,a=n,s=!1;o.i===3&&(a=new Set(n),n.clear(),s=!0),$t(a,function(i,c){return Pa(e,o,n,i,c,r,s)}),Tr(e,n,!1),r&&e.u&&ye("Patches").N(o,r,e.u,e.s);}return o.o}function Pa(e,t,r,o,n,a,s){if(process.env.NODE_ENV!=="production"&&n===r&&te(5),pt(n)){var i=Ar(e,n,a&&t&&t.i!==3&&!ro(t.R,o)?a.concat(o):void 0);if(Ma(r,o,i),!pt(i))return;e.m=!1;}else s&&r.add(n);if(ze(n)&&!po(n)){if(!e.h.D&&e._<1)return;Ar(e,n),t&&t.A.l||Tr(e,n);}}function Tr(e,t,r){r===void 0&&(r=!1),!e.l&&e.h.D&&e.m&&uo(t,r);}function eo(e,t){var r=e[se];return (r?Ve(r):e)[t]}function wa(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 no(e){e.P||(e.P=!0,e.l&&no(e.l));}function to(e){e.o||(e.o=lo(e.t));}function ao(e,t,r){var o=io(t)?ye("MapSet").F(t,r):co(t)?ye("MapSet").T(t,r):e.O?function(n,a){var s=Array.isArray(n),i={i:s?1:0,A:a?a.A:_a(),P:!1,I:!1,R:{},l:a,t:n,k:null,o:null,j:null,C:!1},c=i,l=so;s&&(c=[i],l=zt);var u=Proxy.revocable(c,l),p=u.revoke,d=u.proxy;return i.k=d,i.j=p,d}(t,r):ye("ES5").J(t,r);return (r?r.A:_a()).p.push(o),o}function Bl(e){return pt(e)||te(22,e),function t(r){if(!ze(r))return r;var o,n=r[se],a=mt(r);if(n){if(!n.P&&(n.i<4||!ye("ES5").K(n)))return n.t;n.I=!0,o=xa(r,a),n.I=!1;}else o=xa(r,a);return $t(o,function(s,i){n&&wl(n.t,s)===i||Ma(o,s,t(i));}),a===3?new Set(o):o}(e)}function xa(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return lo(e)}var Ia,dt,mo=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",Ml=typeof Map<"u",Ll=typeof Set<"u",Ca=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",La=mo?Symbol.for("immer-nothing"):((Ia={})["immer-nothing"]=!0,Ia),Ba=mo?Symbol.for("immer-draftable"):"__$immer_draftable",se=mo?Symbol.for("immer-state"):"__$immer_state";var Ol={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"},Nl=""+Object.prototype.constructor,fo=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Dl=Object.getOwnPropertyDescriptors||function(e){var t={};return fo(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r);}),t},Ul={},so={get:function(e,t){if(t===se)return e;var r=Ve(e);if(!ro(r,t))return function(n,a,s){var i,c=wa(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||!ze(o)?o:o===eo(e.t,t)?(to(e),e.o[t]=ao(e.A.h,o,e)):o},has:function(e,t){return t in Ve(e)},ownKeys:function(e){return Reflect.ownKeys(Ve(e))},set:function(e,t,r){var o=wa(Ve(e),t);if(o?.set)return o.set.call(e.k,r),!0;if(!e.P){var n=eo(Ve(e),t),a=n?.[se];if(a&&a.t===r)return e.o[t]=r,e.R[t]=!1,!0;if(xl(r,n)&&(r!==void 0||ro(e.t,t)))return !0;to(e),no(e);}return e.o[t]===r&&(r!==void 0||t in e.o)||Number.isNaN(r)&&Number.isNaN(e.o[t])||(e.o[t]=r,e.R[t]=!0),!0},deleteProperty:function(e,t){return eo(e.t,t)!==void 0||t in e.t?(e.R[t]=!1,to(e),no(e)):delete e.R[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=Ve(e),o=Reflect.getOwnPropertyDescriptor(r,t);return o&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:o.enumerable,value:r[t]}},defineProperty:function(){te(11);},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){te(12);}},zt={};$t(so,function(e,t){zt[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)};}),zt.deleteProperty=function(e,t){return process.env.NODE_ENV!=="production"&&isNaN(parseInt(t))&&te(13),zt.set.call(this,e,t,void 0)},zt.set=function(e,t,r){return process.env.NODE_ENV!=="production"&&t!=="length"&&isNaN(parseInt(t))&&te(14),so.set.call(this,e[0],t,r,e[0])};var Fl=function(){function e(r){var o=this;this.O=Ca,this.D=!0,this.produce=function(n,a,s){if(typeof n=="function"&&typeof a!="function"){var i=a;a=n;var c=o;return function(h){var b=this;h===void 0&&(h=i);for(var A=arguments.length,T=Array(A>1?A-1:0),x=1;x<A;x++)T[x-1]=arguments[x];return c.produce(h,function(S){var E;return (E=a).call.apply(E,[b,S].concat(T))})}}var l;if(typeof a!="function"&&te(6),s!==void 0&&typeof s!="function"&&te(7),ze(n)){var u=ka(o),p=ao(o,n,void 0),d=!0;try{l=a(p),d=!1;}finally{d?Er(u):oo(u);}return typeof Promise<"u"&&l instanceof Promise?l.then(function(h){return Zr(u,s),Xr(h,u)},function(h){throw Er(u),h}):(Zr(u,s),Xr(l,u))}if(!n||typeof n!="object"){if((l=a(n))===void 0&&(l=n),l===La&&(l=void 0),o.D&&uo(l,!0),s){var m=[],y=[];ye("Patches").M(n,l,m,y),s(m,y);}return l}te(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(m){return n.apply(void 0,[m].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){ze(r)||te(8),pt(r)&&(r=Bl(r));var o=ka(this),n=ao(this,r,void 0);return n[se].C=!0,oo(o),n},t.finishDraft=function(r,o){var n=r&&r[se];process.env.NODE_ENV!=="production"&&(n&&n.C||te(9),n.I&&te(10));var a=n.A;return Zr(a,o),Xr(void 0,a)},t.setAutoFreeze=function(r){this.D=r;},t.setUseProxies=function(r){r&&!Ca&&te(20),this.O=r;},t.applyPatches=function(r,o){var n;for(n=o.length-1;n>=0;n--){var a=o[n];if(a.path.length===0&&a.op==="replace"){r=a.value;break}}n>-1&&(o=o.slice(n+1));var s=ye("Patches").$;return pt(r)?s(r,o):this.produce(r,function(i){return s(i,o)})},e}(),ie=new Fl,Vl=ie.produce;ie.produceWithPatches.bind(ie);ie.setAutoFreeze.bind(ie);ie.setUseProxies.bind(ie);ie.applyPatches.bind(ie);ie.createDraft.bind(ie);ie.finishDraft.bind(ie);var vr=Vl;var de=ve.actions,Ua=qt({block:$e("block"),dimension:$e("dimension"),formatter:$e("formatter"),report:$e("report"),section:$e("section"),variant:$e("variant")}),re=qt({block:qe("block"),dimension:qe("dimension"),formatter:qe("formatter"),report:qe("report"),section:qe("section"),variant:qe("variant")}),Fa=qt({block:Re("block"),dimension:Re("dimension"),formatter:Re("formatter"),report:Re("report"),section:Re("section"),variant:Re("variant")}),Va=qt({block:ft("block"),dimension:ft("dimension"),formatter:ft("formatter"),report:ft("report"),section:ft("section"),variant:ft("variant")}),za=qt({block:Na("block"),section:Na("section")});function qt(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 Ge(e,t){return (r,o)=>{let a=o().records.requests[e][t],s=!a||a.status==="UNINITIALIZED"?"LOADING":"FETCHING";r(de.setRequest({key:t,type:e,status:s}));}}function gt(e,t,r,o){return n=>{typeof window=="object"&&notifications.show({autoClose:3e3,color:"red",id:t,message:o,title:"Error"}),n(de.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function $e(e){return t=>{let r=yo(e,t);return (o,n,a)=>(o(Ge(e,r)),oe(a,"create",e)(t).then(i=>(i.ok===!0?o(de.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(gt(e,r,i.status,i.error)),i)))}}function ql(e){return t=>{let r=yo(e,t[0]);return (o,n,a)=>(o(Ge(e,r)),oe(a,"createBulk",e)(t).then(i=>(i.ok===!0?o(de.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(gt(e,r,i.status,i.error)),i)))}}function Oa(e,t,r){return r.replace(new RegExp(e,"g"),t)}function Gl(e){return e.section_id!==void 0}function Kl(e){return e.report_id!==void 0}function Na(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=Ga(e,{id:l});if(o(Ge(e,`${p}`)),e==="block"&&Gl(r)){let d=vr(u,b=>{b.id=l;}),{contentByLocale:m}=d;m&&(d=vr(d,b=>{b.id=l,b.contentByLocale=Object.keys(m).reduce((A,T)=>{let x=m?m[T]:{};return A[T]={...x,id:l},A},{});}));let h=d.inputs?.map(b=>({type:b.type,id:b.id,inputAction:{operation:"create",input:{input_id:b.id,block_id:d.id}}}));return h&&h.length>0&&Da(e)([d,...h])(o,n,a).then(()=>qe("section")({id:d.section_id,include:!0})(o,n,a).then(b=>(b.ok&&o(de.setRequest({key:p,type:e,status:"SUCCESS",data:b.data})),b))),Re(e)(d)(o,n,a).then(b=>(b.ok&&o(de.setRequest({key:p,type:e,status:"SUCCESS",data:b.data})),b))}if(e==="section"&&Kl(r)){let{id:d}=c,m=vr(u,b=>{b.id=d;}),{blocks:y}=m,h=y?.map(b=>({type:b.type,blockcol:b.blockcol,blockrow:b.blockrow,section_id:d,locales:Object.keys(b.contentByLocale).map(A=>A)}));return h&&y&&await ql("block")(h)(o,n,a).then(b=>{if(b.ok){let A=b.data,T=[],x=A.map((S,E)=>{let w={...S},B=w.id,$=y[E];$.contentByLocale&&(w.contentByLocale=Object.keys($.contentByLocale).reduce((k,I)=>{let N=$.contentByLocale[I];return k[I]={...N,content:{...N.content},id:w.id},k},{}));let{settings:L}=$,{contentByLocale:F,id:X}=w;w.settings=L;let H={id:X,contentByLocale:F,settings:L};return $.inputs.map(k=>k.id).reduce((k,I)=>{let N=y.findIndex(G=>G.id===I);return [...k,N]},[]).map(k=>({...A[k],originalBlock:y[k]})).forEach(k=>{let{id:I,type:N,originalBlock:G}=k;if(["selector","visualization"].includes(N)){if(H.contentByLocale?.logic?.content?.api){let v=H.contentByLocale?.logic.content.api;H.contentByLocale.logic.content.api=Oa(`(selector${G.id}id)`,`selector${I}id`,v);}if(H.contentByLocale?.logic?.content?.logic){let v=H.contentByLocale.logic.content.logic;H.contentByLocale.logic.content.logic=Oa(`(selector${G.id}id)`,`selector${I}id`,v);}}T.push({id:I,inputAction:{operation:"create",input:{input_id:I,block_id:B}}});}),H});return Da("block")([...x,...T])(o,n,a)}}),Re(e)(m)(o,n,a).then(b=>(b.ok&&o(de.setRequest({key:p,type:e,status:"SUCCESS",data:b.data})),b))}return Re(e)({...u,id:c.id})(o,n,a)}})}}function qe(e){return t=>{let r=$a(e,t);return (o,n,a)=>(o(Ge(e,r)),oe(a,"read",e)(t).then(i=>(i.ok===!0?o(de.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(gt(e,r,i.status,i.error)),i)))}}function Re(e){return t=>{let r=ho(e,t);return (o,n,a)=>(o(Ge(e,r)),oe(a,"update",e)(t).then(i=>(i.ok===!0?o(de.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(gt(e,r,i.status,i.error)),i)))}}function Da(e){return t=>{let r=ho(e,t[0]);return (o,n,a)=>(o(Ge(e,r)),oe(a,"updateBulk",e)(t).then(i=>(i.ok===!0?o(de.setUpdateRequest({key:r,operation:"updateBulk",status:"SUCCESS",type:e,data:i.data})):o(gt(e,r,i.status,i.error)),i)))}}function ft(e){return t=>{let r=qa(e,t);return (o,n,a)=>(o(Ge(e,r)),oe(a,"delete",e)(t).then(i=>{i.ok===!0?o(de.setDeleteRequest({key:r,operation:"delete",status:"SUCCESS",type:e,data:i.data})):o(gt(e,r,i.status,i.error));}))}}function yo(e,t){if(e==="variant"){let r=t;return `create(variant, [${r.dimension_id}, ${r.name}])`}return `create(${e}, [${Object.keys(t)}])`}function $a(e,t={}){let r=t.id==null?null:`'${t.id}'`;return `read(${e}, ${r}, ${!!t.include})`}function ho(e,t){let{id:r,...o}=t;return `update(${e}, ${r}, [${Object.keys(o)}])`}function qa(e,t){return `delete(${e}, ${t})`}function Ga(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:Ka,setPreviews:jl,setSectionState:ja,resetSectionState:Ha,setCurrentLocale:Hl,setPreferredLocale:Wl}=Fe;function Jl(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 Yl(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 Ql(){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 Gt(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 Zl(e){return async(t,r,o)=>{let n=await o.searchMember(e);if(n.ok===!0)return n.data;throw new Error(n.error)}}async function Wa(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(Ka(i)),n.activeSection&&t(Ja(e,{query:s}));}function Xl(e,t){return async(r,o)=>Wa(e,r,o,{query:{[t]:void 0}})}function eu(e,t,r){return async(o,n)=>Wa(e,o,n,{query:{[t]:r}})}function Ja(e,t){return async(r,o)=>{let n=o(),{currentLocale:a}=n.status,s=n.records.entities.block,i=e.formatterFunctions[a],{parsedParams:c,statusPayload:l}=va(n.status,t),{sid:u,bid:p,previews:d,query:m}=c;Object.keys(l).length&&r(Fe.setStatus(l));let y={...dr(d),locale:a,...mr()},h={variables:y,query:m,locale:a},b=n.records.entities.section[u],A=async T=>r(Gt(T));try{let T=await pr(s,b&&[b],p,i,h,void 0,A),{variables:x,status:S}=T;r(Rr.setVariableChange({attributes:y,variables:x,status:S}));}catch(T){console.log("Error in runConsumers client side: recalculateVariables",T);}}}function tu(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 ru(e){return async(t,r,o)=>{let n=await o.urlProxy({url:e});if("error"in n)throw new Error(n.error);return n.data}}function ou(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function nu(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 au(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 su({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 iu(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 bo(e){let{removeBlocks:t}=ve.actions;return async r=>{await r(t(e));}}function Ro(e){let{addBlocks:t}=ve.actions;return async r=>{await r(t(e));}}function cu(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 lu(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 uu(e){return async(t,r,o)=>{let n=await o.revalidateReport({reportId:e.reportId,profilePrefix:e.profilePrefix});if("error"in n)throw new Error(n.error);return n.data}}var Ya=e=>configureStore({reducer:{[ve.name]:ve.reducer,[hr.name]:hr.reducer,[br.name]:br.reducer},middleware(t){return t({thunk:{extraArgument:Dt("/api/cms/")}})}}),jt=createWrapper(Ya);function gu(e){let t=process.cwd(),r=fu.resolve(t.endsWith("/example")?t.replace("/example",""):t,"package-lock.json"),o;try{let n=JSON.parse(Xi.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 yu(e){let t=()=>Promise.resolve({}),{pathSegmentsKey:r="bespoke",preResolve:o=t,postResolve:n=t}=e||{};return Q.withPageAuthRequired({getServerSideProps:jt.getServerSideProps(a=>{let{dispatch:s}=a;return async i=>{let c=i.query[r],[l]=Array.isArray(c)?c:[c];await s(Lt);let u=await gu("@datawheel/bespoke"),p=await o(a,i);if("redirect"in p)return {props:p};l==="reports"&&(Qa(i.query[r])?await Promise.all([s(re("formatter",{})),s(re("report",{id:Qa(i.query[r]),include:!0})),Fe.setStatus({isCMS:!0})]):await Promise.all([s(re("report",{include:"dimensions"})),Fe.setStatus({isCMS:!0})])),l==="metadata"&&await s(re("report",{include:"dimensions"})),l==="formatters"&&await s(re("formatter",{}));let d=await n(a,i);return {props:{...p,...d,bespokeVersion:u}}}})})}function Qa(e){if(e==null||e==="")return;let[,t]=Array.isArray(e)?e:[e];return Number.parseInt(t)||void 0}var {locales:bu}=U(),Ru={pathSegment:"path",formatterFunctions:bu.reduce((e,t)=>({...e,[t]:{}}),{}),profilePrefix:"path",siteProps:{}};createContext(Ru);U();var os=e=>e.records.entities.block;function bt(e){return t=>Object.values(t.records.entities[e])}var ns=bt("section"),as=bt("formatter");function Lu(e){let{fallback:t=!0,limit:r=50}=e||{};return async o=>{let{defaultLocale:n=pe,locales:a=[]}=o,s=[];if(r>0){let i=a.find(u=>u===n),{searchMember:c}=await Me().then(nt),l=await c({query:"",limit:r,format:"plain",locale:i||pe,noImage:!1,visible:!0,report:[],dimension:[],variant:[],includes:!0});l.ok===!0&&(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 Ou(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return jt.getStaticProps(r=>{let{dispatch:o}=r;return async n=>{await o(Lt);let a=new Date().toISOString(),{locale:s=pe,params:i={}}=n,c=Array.from(Nu(i[t]));if(c.length===0)return await Promise.all([o(re("formatter",{})),o(re("report",{include:!0}))]),{props:{buildTime:a}};let l=await o(Gt({mode:"slugs",locale:s,slugs:c,output:"full"}));o(Kt.setPreviews(l.results)),await Promise.all([o(re("formatter",{})),o(re("report",{id:l.results.map(E=>E.report_id),include:!0,locales:[s]}))]);let u=r.getState(),p=as(u),d=Qr(p,s),m=ns(u),y=os(u),h={...y},b={},A=Object.values(y).reduce((E,M)=>("access"in M.settings&&!["public","guest"].some(w=>!M.settings.access||M.settings.access.includes(w))&&E.push(M.id),E),[]);A=A.concat(Mt(A,Object.values(h)));let T=A.filter(E=>h[E].settings[qo.FALLBACK]);A.forEach(E=>{T.includes(E)&&(b[E]={...h[E],type:"fallback"}),delete h[E];}),await o(bo(A)),await o(Ro(b));let x={...dr(l.results),locale:s,...mr()},S=async E=>await o(Gt(E));return await pr({...h,...b},m,void 0,d,{locale:s,query:i,variables:x},void 0,S,"report").then(E=>{o(Rr.setVariableChange({...E,attributes:x}));}),{props:{buildTime:a}}}})}catch(r){console.log("ERROR SSR",r);}}function Nu(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}}}
57
+ `)}return global.flexsearch};async function Bi(e){let t=await e.search.findAll({include:[{association:"contentByLocale"}]}),r=xi.map(async o=>{Pt&&console.log(`\u{1F3F3}\uFE0F INITIALIZING SEARCH ${o} LOCALE`);let n=or.find(u=>u.locales.includes(o)),a=n?.charset||"latin",s=a==="latin"?"advanced":"default";n?console.log(` Charset for ${o}: ${a}`):Pt&&console.error(` Missing charset for ${o}, adding latin as default.`);let i=(await import(`flexsearch/dist/module/lang/${a}/${s}`)).default,c=new Pi.Document({language:o,encode:i.encode,tokenize:"reverse",stemmer:{},matcher:{},filter:[],preset:"default",cache:100,resolution:9,context:!1,optimize:!0,worker:!1,document:{id:"content_id",store:!1,index:["id","name","clean","keywords","attributes"]}}),l=0;return t.forEach(u=>{let p=u.contentByLocale.find(d=>d.locale===o);if(p){let d=tt(p.name,a!=="arabic"),m=Array.isArray(p.keywords)?p.keywords.map(h=>tt(h,a!=="arabic")):null,y={id:u.id,content_id:u.content_id,name:p.name,keywords:m,attributes:p.attributes,clean:d};c.add(y),l++;}}),console.log(`\u{1F3F3}\uFE0F Indexed for ${o}: ${l} elements`),[o,c]});return Object.fromEntries(await Promise.all(r))}var Me=Ci;var{localeDefault:pn}=z();function rt(e){let{search:t,report:r}=e;return o;async function o(n){let a=await Me(e),s=[],{query:i,locale:c,preferredLocale:l,limit:u,format:p,visible:d,variant:m,dimension:y,report:h,all:R,noImage:T,includes:_,sort:w,direction:E="ASC",offset:A=0}=n,O=or.find(x=>x.locales.includes(c))?.charset||"latin";if(i&&i!==""&&a[c]){let x=tt(i,O!=="arabic");if(s=a[c].search({query:x,limit:9999999999}).reduce((ne,J)=>ne.concat(J.result),[]),s=Jt(s),l&&a[l]){let J=a[l].search(x).reduce((Y,je)=>Y.concat(je.result),[]);J=Jt(J),s=Jt([...s,...J]);}}let F={...d?{visible:d}:{},...T?{image_id:{[Op.eq]:null}}:{},...m.length?{variant_id:m}:{},...y.length?{dimension_id:y}:{},...h.length?{report_id:h}:{}},W={locale:R?{[Op.ne]:null}:c},j=u&&!isNaN(u)?u:20,M=[["zvalue","DESC NULLS LAST"]];w&&w!=="name"&&M.unshift([w,E.toUpperCase()]),i&&i!==""&&(F.content_id=s);let N=[{association:"contentByLocale",where:W}];_&&N.push({association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name"]},{association:"variant",attributes:["id","slug","name"]});let $={...F.visible?{visible:F.visible}:{},...F.noImage?{image_id:F.noImage}:{},...F.content_id?{content_id:F.content_id}:{}};if(!F.report_id&&!F.dimension_id&&!F.variant_id&&d){let H=(await r.findAll({attributes:["id"],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!0)]}})).map(ne=>ne.id);H.length>0&&(F.report_id={[Op.notIn]:H},$.report_id=F.report_id);}let b=[],[L,q]=await Promise.all([t.findAll({limit:j,offset:A,where:F,include:N,order:M}),t.findAll({attributes:["variant_id",[fn$1("COUNT",col("variant_id")),"members_count"]],where:$,group:["variant_id"]})]),v=q.map(x=>x.toJSON());if(w==="name"){let x=E.toUpperCase()==="ASC"?1:-1;L.sort((H,ne)=>{let J=H.getContent(pn),Y=ne.getContent(pn);return J&&Y?J.name>Y.name?1*x:-1*x:0});}let P=p==="nested"?U:te;return b=L.map(P),p!=="nested"&&b.forEach(x=>{let{name:H,keywords:ne,score:J=.1,zvalue:Y}=x;if(H){let je=tt(H),Ht=J,vo=i.length/je.length,_o=je.split("").reduce((kr,ko,Po)=>(i.slice(0,Po),i.charAt(Po)===ko&&(kr+=ko),kr),"").length;je===i||ne&&ne.includes(i)?Ht=1e6:je.startsWith(i)?Ht*=20*vo:_o&&(Ht*=_o*vo),x.zvalue=Ht*2+Y;}}),{meta:{origin:"flexsearch",...Object.fromEntries(Object.entries(n).map(x=>[x[0],V(x[1])])),variantCount:v.reduce((x,H)=>(x[H.variant_id]=parseInt(H.members_count,10),x),{})},results:b};function U(x){return x.toJSON()}function te(x){let H=x.getContent(c);return {...x.toJSON(),locale:H.locale,name:H.name,attributes:H.attributes,keywords:H.keywords}}}}function dn(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 y=0;y<c.length;y++){let h=c[y];await n.update({name:h.name,keywords:h.keywords},{where:{id:h.id,locale:h.locale}});}p={...p,...{include:[{association:"contentByLocale",separate:!0}]}};}if(l){if(l.id&&(await t.update({...l},{where:{id:l.id}}),l.contentByLocale))for(let m=0;m<l.contentByLocale.length;m++){let y=l.contentByLocale[m];await r.update({meta:y.meta},{where:{id:y.id,locale:y.locale}});}}else !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 mn(e){return {ingestMembers:sn(e),readMember:ln(e),searchMember:rt(e),updateMember:dn(e),readMemberImage:un(e)}}var Oe={include:[{association:"contentByLocale",separate:!0},{association:"inputs",include:[{association:"contentByLocale",separate:!0}]},{association:"consumers",include:[{association:"contentByLocale",separate:!0}]}]},wt=e=>({include:[{association:"variants",separate:!0,attributes:{include:[[fn$1("COUNT",col("members.id")),"members_count"]]},include:[{model:e,as:"members",attributes:[]}],group:["variant.id"]}],order:[["ordering","ASC"]]}),It={include:[{association:"blocks",separate:!0,...Oe}]},ar=e=>({include:[{association:"dimensions",separate:!0,...wt(e)},{association:"sections",separate:!0,...It}]});var ge=[{association:"image",attributes:{exclude:["splash"]},include:[{association:"contentByLocale"}]},{association:"contentByLocale"}];function fn(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(y=>({locale:y}))},{include:Oe.include})).toJSON()}async function a(u){let p=u.map(m=>{let{locales:y,...h}=m;return {...h,consumers:[],inputs:[],contentByLocale:y.map(T=>({locale:T}))}});return (await t.bulkCreate(p,{include:Oe.include})).map(m=>m.toJSON())}async function s({id:u,include:p}={}){let d=u==null?[]:[].concat(u),m=await t.findAll({where:d.length>0?{id:d}:void 0,include:p?Oe.include:void 0});if(d.length===0||m.length===d.length)return m.map(R=>R.toJSON());let y=m.map(R=>R.id),h=d.filter(R=>!y.includes(R));throw new S(404,`Block(id=[${h}]) does not exist.`)}async function i(u){let{id:p,contentByLocale:d,consumers:m,inputs:y,inputAction:h,...R}=u,T=await t.findByPk(p,{include:Oe.include,rejectOnEmpty:!0});if(T.set(R),d){let _=Object.values(d);await r.bulkCreate(_,{updateOnDuplicate:["content"]});}return h&&(h.operation==="create"?await o.create(h.input):await o.destroy({where:h.input})),await T.save(),await T.reload(),T.toJSON()}async function c(u){let p=u.map(y=>{let{id:h,contentByLocale:R,consumers:T,inputs:_,inputAction:w,...E}=y;return {id:h,contentByLocale:R,inputAction:w,...E}}),d=await t.findAll({where:{id:{[Op.or]:p.map(y=>y.id)}},include:Oe.include}),m=[];for(let y of d){let h=p.filter(R=>R.id===y.id);for(let R=0;R<h.length;R++){let T=h[R],{id:_,contentByLocale:w,inputAction:E,...A}=T;if(E&&(E.operation==="create"?await o.create(E.input):await o.destroy({where:E.input})),w){let B=Object.values(w);await r.bulkCreate(B,{updateOnDuplicate:["content"]});}y.set(A),await y.save(),await y.reload(),m.push(y.toJSON());}}return m}async function l(u){let p=await t.findByPk(u,{rejectOnEmpty:!0});return await p.destroy(),{id:u,parentType:"section",parentId:p.section_id}}}function gn(e){let{dimension:t,search:r}=e;return {createDimension:o,readDimension:n,updateDimension:a,deleteDimension:s};async function o(i){return (await t.create({name:i.name,report_id:i.report_id,variants:[]},{include:wt(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?wt(r).include:void 0});if(l.length===0||u.length===l.length)return u.map(m=>m.toJSON());let p=u.map(m=>m.id),d=l.filter(m=>!p.includes(m));throw new S(404,`Dimension(id=[${d}]) does not exist.`)}async function a(i){let{id:c,variants:l,...u}=i,p=await t.findByPk(c,{include:wt(r).include,rejectOnEmpty:!1});if(!p)throw new S(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:!1});return await c.destroy(),{id:i,parentType:"report",parentId:c.report_id}}}function yn(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 S(404,`Formatter(id=[${u}]) does not exist.`)}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:!0});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:!0})).destroy(),{id:s}}}var{locales:zi}=z();function hn(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:ar(r).include})).toJSON()}async function n({id:i,include:c,locales:l=zi}={}){let p=(i==null?[]:[].concat(i)).reduce((h,R)=>(h.includes(R)||h.push(R),h),[]),d=await t.findAll({where:p.length>0?{id:p}:void 0,include:c?ar(r).include?.filter(h=>typeof c=="string"?h.association===c:c):void 0});if(p.length===0||d.length===p.length)return d.map(h=>{let R=h.toJSON();return {...R,sections:R.sections.map(T=>({...T,blocks:T.blocks.map(_=>({..._,contentByLocale:Object.keys(_.contentByLocale).reduce((w,E)=>({...w,...[...l,"logic"].includes(E)?{[E]:_.contentByLocale[E]}:{}}),{})}))}))}});let m=d.map(h=>h.id),y=p.filter(h=>!m.includes(h));throw new S(404,`Report(id=${y}) does not exist.`)}async function a(i){let{id:c,dimensions:l,sections:u,...p}=i,d=await t.findByPk(c,{include:ar(r).include,rejectOnEmpty:!1});if(!d)throw new S(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:!1})).destroy(),{id:i}}}function Rn(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:It.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?It.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 S(404,`Section(id=${p}) does not exist.`)}async function n(s){let{id:i,blocks:c,...l}=s,u=await t.findByPk(i,{include:It.include,rejectOnEmpty:!1});return u.set(l),await u.save(),await u.reload(),u.toJSON()}async function a(s){let i=await t.findByPk(s,{rejectOnEmpty:!0});return await i.destroy(),{id:s,parentType:"report",parentId:i.report_id}}}function En(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,m=await c({dimension:u,slug:d});return (await r.create({dimension_id:u,name:p,slug:m.valid?m.candidate:m.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$1("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(y=>y.toJSON());let d=p.map(y=>y.id),m=u.filter(y=>!d.includes(y));throw new S(404,`Variant(id=${m}) does not exist.`)}async function s(l){let{id:u,...p}=l,d=await r.findByPk(u,{include:[{association:"dimension"}],rejectOnEmpty:!0});p.settings=kt(p.settings);let m=p.settings.doIngest;return p.settings.doIngest=!1,await d.update(p),m&&(await t.ingestMembers(d),await Me(e,!0)),await d.reload(),d.toJSON()}async function i(l){let u=await r.findByPk(l,{rejectOnEmpty:!0});return await u.destroy(),Me(e,!0),{id:l,parentType:"dimension",parentId:u.dimension_id}}async function c({dimension:l,slug:u}){let p=await r.findAll({attributes:["slug",[fn$1("COUNT",col("id")),"slugCount"]],where:{dimension_id:{[Op.ne]:l}},group:"slug"}).then(h=>Object.fromEntries(h.map(R=>{let T=R.getDataValue("slugCount");return [R.slug,Number.parseInt(`${T}`,10)]}))),d=u,m=1,y=!0;for(;p[d];)y=!1,d=`${u}-${m}`,m++;return {candidate:u,dimension_id:l,suggestion:d,valid:y}}}function An(e){let t={...fn(e),...gn(e),...yn(e),...mn(e),...hn(e),...Rn(e)},r={...t,...En(e,t)};return {createFormatter:k(r.createFormatter),deleteFormatter:k(r.deleteFormatter),readFormatter:k(r.readFormatter),updateFormatter:k(r.updateFormatter),createReport:k(r.createReport),deleteReport:k(r.deleteReport),readReport:k(r.readReport),updateReport:k(r.updateReport),createDimension:k(r.createDimension),deleteDimension:k(r.deleteDimension),readDimension:k(r.readDimension),updateDimension:k(r.updateDimension),createVariant:k(r.createVariant),readVariant:k(r.readVariant),updateVariant:k(r.updateVariant),deleteVariant:k(r.deleteVariant),validateVariantSlug:k(r.validateVariantSlug),createSection:k(r.createSection),readSection:k(r.readSection),updateSection:k(r.updateSection),deleteSection:k(r.deleteSection),createBlock:k(r.createBlock),deleteBlock:k(r.deleteBlock),readBlock:k(r.readBlock),updateBlock:k(r.updateBlock),createBulkBlock:k(r.createBulkBlock),updateBulkBlock:k(r.updateBulkBlock),readMember:k(r.readMember),searchMember:k(r.searchMember),updateMember:k(r.updateMember),readMemberImage:k(r.readMemberImage)}}var Tn=e=>{throw console.error("/methods/helpers/uploadImage.ts:",e),new Error(e.message)},Gi=Number(process.env.NEXT_PUBLIC_IMAGE_SPLASH_WIDTH)||1400,Ki=Number(process.env.NEXT_PUBLIC_IMAGE_THUMB_WIDTH)||400,ji=async(e,t,r)=>{let o=[{type:"splash",res:Gi},{type:"thumb",res:Ki}];for(let n of o){let a=await qi(r).resize(n.res).toFormat("webp").webp({lossless:!0}).toBuffer().catch(Tn);await e.image.update({[n.type]:a},{where:{id:t}}).catch(Tn);}},Ee=ji;var vn="|||";var sr="SECTION_ALLOWED";var _n=["4","5","7","8","9","10"],Yi=_n.join(),{locales:Qi}=z(),Ae;if(process.env.FLICKR_API_KEY)try{Ae=new Ji(process.env.FLICKR_API_KEY);}catch(e){throw console.error("Flickr ERROR:",e),new Error(e.message)}async function kn(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Ae)throw console.log("Flickr is not initialized. Check the credentials"),new Error("Flickr is not initialized. Check the credentials");let o=r.prompt,a=(await Ae.photos.search({text:o,license:Yi,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(Ae.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(m=>m.label==="Small 320");return d&&l.push({id:a[p].id,source:d.source}),l},[]);return {meta:{prompt:V(r.prompt),page:V(`${r.page}`)},results:c}}catch(r){throw console.log(r),new Error("Error in search flickr provider")}}async function Pn(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:V(`${r}`)||"",id:V(`${o}`)||""},s=`https://flic.kr/p/${Wi.int_to_base58(o)}`;if(!Ae)throw new Error("Flickr API Key not configured");let i=await Ae.photos.getInfo({photo_id:o}).then(l=>l.body),c;if(i)if(_n.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 Ae.photos.getSizes({photo_id:o}).then(E=>E.body),m=d.sizes.size.find(E=>parseInt(E.width,10)>=1600);if(m||(m=d.sizes.size.find(E=>parseInt(E.width,10)>=1e3)),m||(m=d.sizes.size.find(E=>parseInt(E.width,10)>=500)),!m||!m.source)throw new Error("Flickr Source Error, try another image.");let y=await pr.get(m.source,{responseType:"arraybuffer"}).then(E=>E.data),R=(await Ae.photos.licenses.getInfo().then(E=>E.body.licenses.license)).find(E=>E.id===parseInt(i.photo.license,10)),T={url:s,author:i.photo.owner.realname||i.photo.owner.username,license:R?`${R.name}: ${R.url}`:""},_=await e.image.create(T);await e.image_content.destroy({where:{id:_.id}});let w=Qi.map(E=>({id:_.id,locale:E,meta:i.photo.title._content}));await e.image_content.bulkCreate(w),await e.search.update({image_id:_.id},{where:{content_id:r}}),await Ee(e,_.id,y);}let p=await e.search.findOne({where:{content_id:r},include:ge});p&&p.image&&(p.image.thumb=!!p.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Bad License");else throw new Error("Malformed URL");return {meta:{...n},results:c}}catch(r){throw console.log(r),new Error("Error in save flickr provider")}}function I(e,t,r,o){return {method:e,path:t,handler:r,roleRequired:o}}function Q(e){let t=Number.parseInt(`${e||""}`,10);if(Number.isNaN(t)||!Number.isFinite(t))throw new S(400,`Invalid numeric parameter: ${e}`);return t}function D(e){return e==null||e===""?[]:Array.isArray(e)?e:e.toString().split(",")}var{localeDefault:Te}=z();function wn(e){let{readMember:t,searchMember:r,updateMember:o,readMemberImage:n}=e;return [I("GET","read/members",async a=>{let s=Zi(a.query),i=s[s.mode]||[],c=s.mode==="whole";if(!c&&i.length===0)throw new S(400,`The request is missing the '${s.mode}' parameter.`);if(!c&&i.length>20&&!s.variant)throw new S(400,`You can look for up to 20 '${s.mode}' in a single request.`);return t(s)}),I("GET","search/members",a=>{let s=xt(a.query);return r(s)}),I("POST","update/member",a=>{let{body:s}=a;return o(s)},[G.EDITOR]),I("GET","member/image",a=>{let s=D(a.query.size)[0];return n({member:Q(a.query.member),size:s&&s==="splash"?"splash":"thumb"})})]}function Zi(e){let t=D(e.locale)[0]||Te||"en",r=t==="all"||ir(e.all),o=D(e.mode)[0],a=(D(e.output)[0]||"full")==="lite"?"lite":"full",s=parseInt(D(e.related)[0],10)||5,i=D(e.variant).map(Q);if(i.length===0&&(i=D(e["variant[]"]).map(Q)),o==="ids")return {all:r,mode:o,variant:i,output:a,locale:r?Te:V(t),ids:D(e.ids||e["ids[]"])};if(o==="content_ids")return {all:r,mode:o,variant:i,output:a,locale:r?Te:V(t),content_ids:D(e.content_ids||e["content_ids[]"]).map(Q)};if(o==="slugs")return {all:r,mode:o,variant:i,output:a,locale:r?Te:V(t),slugs:D(e.slugs||e["slugs[]"]).map(c=>{let[l,u]=c.split("/");return {variantSlug:l,memberSlug:u}})};if(o==="related")return {all:r,mode:o,locale:r?Te:V(t),related:s,current_ids:D(e.current_ids||e["current_ids[]"]).map(Q),report_ids:D(e.report_ids||e["report_ids[]"]).map(Q),dimension_ids:D(e.dimension_ids||e["dimension_ids[]"]).map(Q),variant_ids:D(e.variant_ids||e["variant_ids[]"]).map(Q),output:a};if(o==="whole")return {all:r,mode:o,variant:i,locale:r?Te:V(t),output:a};throw new S(400,`Invalid mode: '${o}'`)}function xt(e){let t=D(e.locale)[0]||Te||"en",r=t==="all",o=D(e.format)[0],n=o?o==="nested":r,a=D(e.variant).map(Q);a.length===0&&(a=D(e["variant[]"]).map(Q));let s=D(e.dimension).map(Q);s.length===0&&(s=D(e["dimension[]"]).map(Q));let i=D(e.report).map(Q);return i.length===0&&(i=D(e["report[]"]).map(Q)),{query:D(e.query||e.q)[0]||"",locale:r?Te:t,preferredLocale:D(e.preferredLocale)[0],limit:D(e.limit).map(Q)[0]??5,format:n?"nested":"plain",includes:ir(e.includes,{default:!0}),visible:ir(e.visible,{default:!0}),noImage:ir(e.noImage,{default:!1}),variant:a,dimension:s,report:i,all:r,sort:D(e.sort)[0],direction:D(e.direction)[0],offset:Number(e.offset||0)}}async function In(e,t){let r=rt(e),o=xt({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:V(o.query)},results:a}}async function xn(e,t){let{search:r}=e,{content_id:o,image_id:n}=t;await r.update({image_id:n},{where:{content_id:o}});let a=await r.findOne({where:{content_id:o},include:ge}).then(s=>s?{...s.toJSON(),image:{...s.image.toJSON(),thumb:!!s.image.thumb}}:null);return {meta:{id:n,content_id:o},results:a}}var{locales:tc}=z(),Ct;if(process.env.UNSPLASH_API_KEY)try{Ct=createApi({accessKey:process.env.UNSPLASH_API_KEY});}catch(e){throw console.error("Unsplash error:",e),new Error(e.message)}async function Cn(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Ct)throw new Error("Unsplash API Key not configured");let o=r.prompt,a=(await Ct.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:V(r.prompt),page:V(`${r.page}`)},results:a}}catch(r){throw console.log(r),new Error("Error in search unsplash provider")}}async function Bn(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:V(`${r}`)||"",id:V(`${o}`)||""};if(!Ct)throw console.log("Unsplash is not initialized. Check the credentials"),new Error("Unsplash is not initialized. Check the credentials");let a=await Ct.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 pr.get(a.urls.full,{responseType:"arraybuffer"}).then(h=>h.data),d={url:c,author:a.user.name||a.user.username,license:"Free Unsplash license: https://unsplash.com/license"},m=await e.image.create(d);await e.image_content.destroy({where:{id:m.id}});let y=tc.map(h=>({id:m.id,locale:h,meta:a.description||a.alt_description}));await e.image_content.bulkCreate(y),await e.search.update({image_id:m.id},{where:{content_id:r}}),await Ee(e,m.id,p);}let u=await e.search.findOne({where:{content_id:r},include:ge});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.log(r),new Error("Error in save unsplash provider")}}var{locales:oc}=z();async function Ln(e,t){try{let{content_id:r,image_source:o,files:n}=t,a={content_id:V(`${r}`)||""};if(await e.search.findOne({where:{content_id:r}})&&n){let c=await rc.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=oc.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 Ee(e,u.id,c);}let i=await e.search.findOne({where:{content_id:r},include:ge});return i&&i.image&&(i.image.thumb=!!i.image.thumb),{meta:{...a},results:i}}catch(r){throw console.log(r),new Error("Error in save upload provider")}}var{locales:nc}=z();var Mn=async e=>{let t={"x-api-key":process.env.ADOBE_STOCK_API_KEY||"EMPTY_ADOBE_KEY","X-Product":"BespokeApp/0.1"};return e&&(t.Authorization=`Bearer ${e}`),t};var Bt;if(process.env.ADOBE_STOCK_API_KEY)try{Bt={search:async(e,t)=>await pr.get("https://stock.adobe.io/Rest/Media/1/Search/Files",{headers:await Mn(!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 pr.get("https://stock.adobe.io/Rest/Media/1/Files",{headers:await Mn(!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 On(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Bt)throw new Error("Adobe API Key not configured");let n=(await Bt.search(r.prompt,r.page)).map(a=>({id:a.id,source:a.thumbnail_url}));return {meta:{prompt:V(r.prompt),page:V(`${r.page}`)},results:n}}catch(r){throw console.log(r),new Error("Error in search Adobe provider")}}async function Nn(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:V(`${r}`)||"",id:V(`${o}`)||""};if(!Bt)throw console.log("Adobe is not initialized. Check the credentials"),new Error("Adobe is not initialized. Check the credentials");let a=await Bt.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 pr.get(a.thumbnail_1000_url,{responseType:"arraybuffer"}).then(h=>h.data),d={url:c,author:a.creator_name,license:"ADOBE, TO-DO"},m=await e.image.create(d);await e.image_content.destroy({where:{id:m.id}});let y=nc.map(h=>({id:m.id,locale:h,meta:a.title||a.description}));await e.image_content.bulkCreate(y),await e.search.update({image_id:m.id},{where:{content_id:r}}),await Ee(e,m.id,p);}let u=await e.search.findOne({where:{content_id:r},include:ge});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.log(r),new Error("Error in save adobe provider")}}var ac={local:xn,flickr:Pn,unsplash:Bn,upload:Ln,adobe:Nn};function nt(e,t){let r=ac[t];if(!r)throw new S(500,`Wrong provider dbImageSaveFactory.ts: ${t}`);return k(o=>r(e,o))}var sc={local:In,flickr:kn,unsplash:Cn,adobe:On};function Lt(e,t){let r=sc[t];if(!r)throw new S(500,`Wrong provider dbImageSearchFactory.ts: ${t}`);return k(o=>r(e,o))}var mc=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 lr(e){let{report:t,search:r}=e;return o;async function o(n){return {data:(await t.findAll({attributes:["id","name",[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"],[literal("COALESCE(NULLIF(settings ->> 'hide', '')::BOOL, false)"),"hide"]],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!1),literal("NOT (settings::jsonb ? 'hide')")]},order:[["ordering","ASC"]],include:[{attributes:["id","name","ordering"],association:"dimensions",separate:!0,order:[["ordering","ASC"]],include:[{attributes:["id","name","slug",[fn$1("COUNT",col("members.id")),"members_count"],[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"]],include:[{model:r,attributes:[],as:"members"}],association:"variants",separate:!0,group:["variant.id"],order:[["ordering","ASC"]]}]}]})).map(s=>({...mc(s.toJSON()),mode:s.dimensions.length===1?Se.UNILATERAL:Se.MULTILATERAL}))}}}function Dn(e){return async()=>(await Me(e,!0),{error:!1})}var{locales:fc,localeDefault:gc}=z(),yc=(e,t)=>{if(!e)return [];let r=[];return t.forEach(o=>{let n=e.filter(a=>a.metadata.report.id===o.id);if(n.length>0)if(o.mode===Se.UNILATERAL){let a=o.dimensions[0];a.variants.forEach(s=>{let i=n.filter(c=>c.metadata.dimension.id===a.id&&c.metadata.variant.id===s.id);i.length>0&&(r=r.concat(i.map(c=>({path:`/${s.slug}/${c.slug}`,name:c.name,confidence:c.confidence,report:{id:o.id,name:o.name,mode:o.mode},members:[c],id:`r-${o.id}-${[c].map(l=>`${l.id}`).join("-")}`}))));});}else o.mode;}),r.sort((o,n)=>o.confidence<n.confidence?1:-1)},hc=(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 Un(e){let t=rt(e),r=lr(e);return o;async function o(n){let a=n.format||"results",s=fc.includes(n.locale)?n.locale:gc,i=await t({...n,format:"plain",locale:V(s),visible:!0}),c=i.results?i.results:[],u=(await r()).data,p=hc(c,u);return {meta:{...i.meta,format:a},results:yc(p,u)}}}function Fn(){return async e=>{let t=typeof e=="string"?{url:e}:e;try{let r=await pr.request(t);return {ok:!0,status:r.status,data:r.data}}catch(r){throw new S(r.response?.status||500,r.message)}}}function Vn(e){return async t=>{try{let{variantPaths:r}=t,o=[];if(r)for(let n=0;n<r.length;n++){let a=r[n];(await e.search.findAll({attributes:["slug"],where:{variant_id:a.variantId}})).forEach(i=>{o.push(`/${a.prefix}/${a.variantSlug}/${i.slug}`);});}return {...t,paths:o,revalidated:0,samples:[]}}catch(r){throw new S(r.response?.status||500,r.message)}}}function zn(){return async e=>{try{let{target:t}=e;return {target:t}}catch(t){throw new S(t.response?.status||500,t.message)}}}function Mt(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 bc(e,t){return e.some(r=>t.includes(`role.${r}`))}function $n(e){let{report:t}=e;return r;async function r(o){let n=await t.findByPk(o.report_id,{include:{association:"sections",separate:!0,include:[{association:"blocks",separate:!0,include:[{association:"contentByLocale",separate:!0,where:{locale:o.locale}},{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")||bc(o.roles,s.settings.access))).map(s=>s.id);return a=a.concat(Mt(a,n)),{params:{...o},data:n.filter(s=>a.includes(s.id))}}}var Ac=Object.keys(Vr).filter(e=>e.indexOf("Icon")===0);async function qn(){return {meta:{provider:"tabler"},results:Ac}}async function Gn(e){let t=Vr[e.name]?Vr[e.name]:()=>"";return renderToString(createElement(t))}var Tc={tabler:qn};function Kn(e){let t=Tc[e];if(!t)throw new S(500,`Wrong provider dbListIconsFactory.ts: ${e}`);return k(()=>t())}var vc={tabler:Gn};function jn(e){return k(t=>{let r=vc[e];if(!r)throw new S(500,`Wrong provider dbReadIconFactory.ts: ${t.provider}`);return r({name:t.name,provider:e})})}function Ot(e,t,r){return Le().then(o=>{Object.assign(r,at(o));})}function at(e){return {...An(e),searchReport:k(Un(e)),readMetadata:k(lr(e)),regenerateSearch:k(Dn(e)),imageFlickrSearch:Lt(e,"flickr"),imageLocalSearch:Lt(e,"local"),imageUnsplashSearch:Lt(e,"unsplash"),imageAdobeSearch:Lt(e,"adobe"),imageFlickrSave:nt(e,"flickr"),imageLocalSave:nt(e,"local"),imageUnsplashSave:nt(e,"unsplash"),imageUploadSave:nt(e,"upload"),imageAdobeSave:nt(e,"adobe"),urlProxy:Fn(),searchRole:k(Co()),searchUser:k(Bo()),readUser:k(Lo()),updateUser:k(Mo()),updateMyData:k(Oo()),revalidateReport:k(Vn(e)),revalidateUrl:k(zn()),readPrivateBlocks:k($n(e)),listTablerIcons:Kn("tabler"),readTablerIcon:jn("tabler")}}async function zr(e){try{let t=new _c.IncomingForm,r=await new Promise((o,n)=>{t.parse(e,(a,s,i)=>{if(a){console.log("Error in formidable parse function inside internal parseBody.ts",a),n(a);return}o({fields:s,files:i});});});return {...r.fields,files:r.files}}catch(t){return {error:t}}}function Ne(e,t){let r=se(e,"create",t),o=se(e,"read",t),n=se(e,"update",t),a=se(e,"delete",t),s=se(e,"updateBulk",t),i=se(e,"createBulk",t);return [I("POST",`create/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(m=>p[m]);return i(d)},[G.EDITOR]),I("POST",`create/${t}`,c=>{let{body:l}=c;return r(l)},[G.EDITOR]),I("GET",`read/${t}`,c=>{let l=c.query,u=D(l.id).map(Q);return o({id:u,include:ir(l.include)})}),I("POST",`update/${t}`,c=>{let{body:l}=c;return n(l)},[G.EDITOR]),I("POST",`update/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(m=>p[m]);return s(d)},[G.EDITOR]),I("DELETE",`delete/${t}`,c=>{let l=Q(c.query.id);return a(l)},[G.EDITOR])]}function Hn(e){let{validateVariantSlug:t}=e;return [...Ne(e,"variant"),I("GET","validate/variant",r=>{let o=r.query,n=Q(o.dimension);return t({dimension:n,slug:rr(o.slug)})},[G.EDITOR])]}function st(e,t){let r=`image${fe(t)}Save`,o=e[r];return I("POST",`images/save/${t}`,n=>{let a=n.body;if(!a.content_id)throw new S(400,"Missing 'content_id' parameter.");if(!a.image_id)throw new S(400,"Missing 'image_id' parameter.");return o(a)},[G.EDITOR])}function Nt(e,t){let r=`image${fe(t)}Search`,o=e[r];return I("GET",`images/search/${t}`,async n=>{let a=D(n.query.prompt)[0];if(!a)throw new S(400,"Empty 'prompt' param.");return o({prompt:a,page:Q(n.query.page)})},[G.EDITOR])}function Wn(e){let{readMetadata:t}=e;return I("GET","read/metadata",()=>t({}))}function Jn(e){let{regenerateSearch:t}=e;return I("POST","search/regenerate",()=>t(void 0),[G.EDITOR])}function Yn(e){let{searchReport:t}=e;return I("GET","search/reports",r=>{let o=Pc(r.query);return t(o)})}function Pc(e){return {...xt(e),format:D(e.format)[0]}}function Qn(e){let{urlProxy:t}=e;return I("GET","url/proxy",r=>{let{url:o,method:n="GET"}=r.query;if(!o)throw new S(400,"Missing URL parameter");return t({url:Array.isArray(o)?o.join(","):o,method:D(n)[0]==="POST"?"POST":"GET"})})}function Zn(e){let{readMetadata:t,revalidateReport:r}=e;return I("GET","revalidate/report",async(o,n)=>{let{reportId:a,profilePrefix:s}=o.query;if(!a||!s)throw new S(400,"Missing URL parameter in revalidate factory: reportId or profilePrefix");try{let i=parseInt(`${a}`,10),c=`${s}`.split("/").filter(y=>y!=="").join("/"),l=[],u=await t({}).then(y=>y.ok?y.data.data.find(h=>h.id===i):[]);u&&u.mode===Se.UNILATERAL&&u.dimensions.forEach(y=>{y.variants.forEach(h=>{l.push({prefix:c,variantId:h.id,variantSlug:h.slug});});});let p=await r({profilePrefix:c,reportId:i,variantPaths:l}),d=[],m=0;return p.ok&&(m=p.data.paths.length,d=p.data.paths.slice(0,5),Promise.all(p.data.paths.map(y=>{let h;try{h=n.revalidate(y,{unstable_onlyGenerated:!0});}catch(R){console.log("error",y,R);}return h}))),{ok:!0,status:200,data:{reportId:a,revalidated:m,samples:d}}}catch(i){throw console.log(i),new S(500,"Error revalidating")}},[G.EDITOR])}function Xn(){return I("GET","revalidate/url",async(e,t)=>{let{target:r}=e.query;if(r)try{return t.revalidate(r,{unstable_onlyGenerated:!0}),{ok:!0,status:200,data:{target:r}}}catch(o){throw console.log(o),new S(500,"Error revalidating")}else throw new S(400,"Missing target parameter in revalidate factory")},[G.ADMIN,G.EDITOR,G.WRITER])}var{localeDefault:wc}=z();function ea(e){let{readPrivateBlocks:t}=e;return I("POST","read/blocks/private",(r,o,n)=>{let a={report_id:parseInt(r.body.report_id,10),locale:r.body.locale||wc,roles:n&&n.user?n.user.bespoke_roles:[]};return t(a)},[])}function ta(e){let{searchRole:t}=e;return I("GET","auth/search/roles",()=>t(""),[G.EDITOR])}function ra(e){let{searchUser:t}=e;return I("GET","auth/search/users",r=>t({query:r.query.query,role_id:r.query.role_id,page:r.query.page||0}),[G.ADMIN])}function oa(e){let{readUser:t}=e;return I("GET","auth/read/user",r=>t(r.query.user_id),[G.ADMIN])}function na(e){let{updateUser:t,readUser:r}=e;return I("POST","auth/update/user",async(o,n,a)=>{let s=o.body,i=await t(s);if(a&&a.user&&s.user_id===a.user.sub){let c=await r(a.user.sub);c.ok&&await X.updateSession(o,n,{...a,user:{...a.user,bespoke_app_metadata:c.data.app_metadata,bespoke_user_metadata:c.data.user_metadata,bespoke_roles:c.data.roles.map(l=>l.name)}});}return i},[G.ADMIN])}function aa(e){let{updateUser:t,readUser:r}=e;return I("POST","auth/update/me",async(o,n,a)=>{let{report_id:s,user_metadata:i}=o.body,c={user_id:a.user.sub,user_metadata:{}};try{let{user:l}=a;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);let u=await r(c.user_id);return u.ok&&await X.updateSession(o,n,{...a,user:{...l,bespoke_app_metadata:u.data.app_metadata,bespoke_user_metadata:u.data.user_metadata}}),{ok:!0,status:200,data:{ok:!0,message:"User & session updated"}}}catch(l){return {ok:!1,status:500,error:l.message}}},[])}async function Ic(e){try{return "JVBERi0xLjcKJYGBgYEKCjYgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAxMTYKPj4Kc3RyZWFtCnicHYqxCsJAEAX79xVbC+Lmbm/3DoKFeEcKG2F/QCSKYgol+P0mMkwxMG8cHEwrnzt2w/j6jvPjetkalyyZLReKTH5DEPITuv/aUWKKiz6hTywiGliTZWNtFkyWitr0qEWrWmBbq2ndkz/hG1THGT/eextGCmVuZHN0cmVhbQplbmRvYmoKCjcgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA1Ci9GaXJzdCAyNgovTGVuZ3RoIDM2Mgo+PgpzdHJlYW0KeJzVUt9LwzAQfs9fcY/6IEnTH2llDLa1VZChbIKi+JC1YVRGIm0m87/3ru0cexCfpXwkd/cl+a73BSBAQhRBCCqFCOJQQgwqCGAyYfzx68MAf9Bb0zF+19QdvCJHwAreGF+4vfUQsOmUnbgL7fXObdlwCAIiHxkPrav3lWlhUhZlKYQSQiQRIhFC5rguEBlCYow1meIeoaIRmFOhEOEMa+WARA1nqN5z4/F8gStyE+LkAzdKh/jnXXqrGO6Qf+nJpowvXZ1rb+Aiv5ZCRiKTsQyjTKYvl/g7WqO9+7/N9fobZ3/t8GzONF4acmvIA/2U+cp0bt9WOHbilQ4rtLk1u0/jm0pfKZGlqFOlGXpsNAZ/vt+8m6qnUlgc/M3ak4YhQbmlqRs9dwd0n8APOwDshDw4s9Z5cmXvR+tRDUXJ6NEzySSI8fV+4/uQkgHjc92ZXupJJ4qwlasbuwX+1NiZ7Zpjgm78BkHDxfcKZW5kc3RyZWFtCmVuZG9iagoKOCAwIG9iago8PAovU2l6ZSA5Ci9Sb290IDIgMCBSCi9JbmZvIDMgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW5ndGggNDEKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOSBdCj4+CnN0cmVhbQp4nBXEwQ0AIAwDsUuKxJf9JUZippb4YaDbbEhKTpWWOCDezxcGYeEDtQplbmRzdHJlYW0KZW5kb2JqCgpzdGFydHhyZWYKNjY5CiUlRU9G"}catch(n){throw console.error("Error generating PDF:",n),n}}function sa(){return I("POST","pdf",async(e,t)=>{let{slugs:r,path:o}=e.body;if(!r||!o)throw new S(400,"Missing path parameter in request.");{new URL(o,e.headers.origin);return {ok:!0,status:200,data:await Ic()}}})}function ia(e,t){let r=`list${fe(t)}Icons`,o=e[r];return I("GET",`list/icons/${t}`,async()=>o({}),[G.EDITOR])}function ca(e,t){let r=`read${fe(t)}Icon`,o=e[r];return I("GET",`read/icons/${t}/icon.svg`,async n=>o({provider:t,name:n.query.name}))}function la(){return I("GET","report",async(e,t)=>{let{report:r,prefix:o,locale:n}=e.query;if(!r)throw new S(400,"Missing report parameter.");if(!o)throw new S(400,"Missing report parameter.");if(!n)throw new S(400,"Missing report parameter.");try{let s=await(await fetch(`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${n}${o}${r}`)).text(),l=new xc().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 S(500,"Couldn't find page cache")}})}var Lc=He();function $r(e,t){return `${e.toUpperCase()} ${t.toLowerCase()}`}function Mc(e){let t=at(e);return Object.fromEntries([...Ne(t,"block"),...Ne(t,"dimension"),...Ne(t,"formatter"),...Ne(t,"report"),...Ne(t,"section"),...Hn(t),...wn(t),Yn(t),Wn(t),Jn(t),st(t,"flickr"),st(t,"local"),st(t,"unsplash"),st(t,"upload"),st(t,"adobe"),Nt(t,"flickr"),Nt(t,"local"),Nt(t,"unsplash"),Nt(t,"adobe"),Qn(t),ta(t),ra(t),oa(t),na(t),aa(t),Zn(t),Xn(),ea(t),sa(),ia(t,"tabler"),ca(t,"tabler"),la()].map(({handler:r,method:o,path:n,roleRequired:a})=>[$r(o,n),{handler:r,roleRequired:a}]))}var ua=Le().then(Mc);async function Oc(e,t){await Cc(e,t,{methods:["GET","HEAD","PUT","PATCH","POST","DELETE"],origin:"*"});let{query:r,method:o}=e,{path:n,...a}=r;if(n&&o){let s=await ua.then(i=>{let c=[].concat(n).join("/"),l=$r(o,c);return i[l]});if(s){let i=await X.getSession(e,t);if(s.roleRequired){if(!i)return t.status(401).json({error:"Unauthorized. Must be logged in."});let c=i&&i.user&&i.user.bespoke_roles&&Array.isArray(i.user.bespoke_roles)?i.user.bespoke_roles:[];if(Array.isArray(s.roleRequired)&&s.roleRequired.length>0&&!Wt(c,s.roleRequired))return t.status(402).json({error:"Forbidden. Not enough roles."})}if(s.handler)return ["POST","DELETE"].includes(o)&&(e.body=await zr(e)),Promise.resolve(e).then(c=>s.handler(c,t,i||void 0)).then(async c=>{if(c&&"error"in c)throw new S(c.status,c.error);if(c.ok)if(c.data instanceof Buffer){let l=await Bc(c.data),u=Buffer.byteLength(c.data);t.writeHead(c.status,{"Content-Type":l?l.mime:"image/jpeg","Content-Length":u.toString()}).send(c.data);}else e.url&&e.url.indexOf("/icon.svg?name=")>0?(t.setHeader("Content-Type","image/svg+xml"),t.status(c.status).send(c.data)):t.status(c.status).json({data:c.data});}).catch(c=>{Lc&&console.trace("Backend Error",c),t.status(c.code).json({error:c.message});})}}else n||await ua.then(console.log);return t.status(404).json({error:"No matching route",path:n,query:a})}var Nc=e=>{let t=e;return async function(r,o){let n=await t({test:"pala"});return o.json(n)}},Dc=Nc;var Kt={};us(Kt,{addBlockToState:()=>Eo,cloneEntity:()=>Ga,createEntity:()=>za,deleteEntity:()=>qa,deleteQueryParam:()=>tu,readEntity:()=>ae,readMember:()=>Gt,readMetadata:()=>ou,readPrivateBlocks:()=>uu,readUser:()=>iu,recalculateVariables:()=>Za,removeBlocksFromState:()=>So,reportSearch:()=>Zl,resetSectionState:()=>Ya,revalidateReport:()=>du,revalidateUrl:()=>pu,searchMember:()=>eu,searchRegenerate:()=>Xl,searchRole:()=>au,searchUser:()=>su,setCurrentLocale:()=>Jl,setPreferredLocale:()=>Yl,setPreviews:()=>Wl,setQueryParam:()=>ru,setSectionState:()=>Ja,setStatus:()=>Wa,updateEntity:()=>$a,updateMyData:()=>lu,updateUser:()=>cu,urlProxy:()=>nu,variantValidateSlug:()=>Ql});function pe(e,t){return e.request(t).then(r=>{let{status:o,data:n}=r;return "error"in n?{ok:!1,status:o,error:n.error}:{ok:!0,status:o,data:n.data}},r=>{if("isAxiosError"in r){let{status:o,data:n}=r.response||{status:500};return {ok:!1,status:o,error:n?.error??r.message}}return {ok:!1,status:500,error:r.message}})}function ee(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>pe(e,{...o,method:"GET",params:r?r(n):n})}function re(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>pe(e,{...o,method:"POST",data:r?r(n):n})}function De(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>pe(e,{...o,method:"DELETE",params:r?r(n):n})}function it(e,t){return r=>pe(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function Dt(e,t){return r=>pe(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function pa(e,t){return ()=>pe(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function da(e,t){return r=>pe(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var ct=e=>({id:e}),Fc=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 Ut(e){let t=pr.create({baseURL:e});return {createBulkBlock:re(t,"create/bulk/block"),createBlock:re(t,"create/block"),createDimension:re(t,"create/dimension"),createFormatter:re(t,"create/formatter"),createReport:re(t,"create/report"),createSection:re(t,"create/section"),createVariant:re(t,"create/variant"),deleteBlock:De(t,"delete/block",ct),deleteDimension:De(t,"delete/dimension",ct),deleteFormatter:De(t,"delete/formatter",ct),deleteReport:De(t,"delete/report",ct),deleteSection:De(t,"delete/section",ct),deleteVariant:De(t,"delete/variant",ct),readBlock:ee(t,"read/block"),readDimension:ee(t,"read/dimension"),readFormatter:ee(t,"read/formatter"),readReport:ee(t,"read/report"),readSection:ee(t,"read/section"),readVariant:ee(t,"read/variant"),updateBulkBlock:re(t,"update/bulk/block"),updateBlock:re(t,"update/block"),updateDimension:re(t,"update/dimension"),updateFormatter:re(t,"update/formatter"),updateReport:re(t,"update/report"),updateSection:re(t,"update/section"),updateVariant:re(t,"update/variant"),searchReport:ee(t,"search/reports"),validateVariantSlug:ee(t,"validate/variant"),readMember:ee(t,"read/members",Fc),readMemberImage:ee(t,{url:"member/image",responseType:"blob"}),searchMember:ee(t,"search/members"),updateMember:ee(t,"update/members"),imageLocalSearch:Dt(t,"local"),imageLocalSave:it(t,"local"),imageFlickrSearch:Dt(t,"flickr"),imageFlickrSave:it(t,"flickr"),imageUnsplashSearch:Dt(t,"unsplash"),imageUnsplashSave:it(t,"unsplash"),imageUploadSave:it(t,"upload"),imageAdobeSearch:Dt(t,"adobe"),imageAdobeSave:it(t,"adobe"),readMetadata:ee(t,"read/metadata"),regenerateSearch:re(t,"search/regenerate"),urlProxy:ee(t,"url/proxy"),searchRole:ee(t,"auth/search/roles"),searchUser:ee(t,"auth/search/users"),readUser:ee(t,"auth/read/user"),updateUser:re(t,"auth/update/user"),updateMyData:re(t,"auth/update/me"),revalidateReport:ee(t,"revalidate/report"),revalidateUrl:ee(t,"revalidate/url"),readPrivateBlocks:re(t,"read/blocks/private"),listTablerIcons:pa(t,"tabler"),readTablerIcon:da(t,"tabler")}}var{localeDefault:$c}=z();function ue(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||$c}}var Kc=ir(process.env.REPORTS_LOGGING),Ue=jc;function jc(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=ue(a);try{if(t){let l=new Proxy(console,{get(p,d){return Hc(d,"log","debug","info","warn","error")?(...m)=>{i.push(`${d} ${Date.now()} - ${m.map(y=>format(y)).join(" ")}`),Kc&&p[d](...m);}:p[d]}}),u;return n?u=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,Pe,o,c,n):u=new Function(e,"console","libs","formatters","locale",r)(t,l,Pe,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 Hc(e,...t){return t.includes(e)}function qr(e){return e.reduce((t,r,o)=>(o?o===e.length-1&&o===1?t+=` and ${r}`:o===e.length-1?t+=`, and ${r}`:t+=`, ${r}`:t+=r,t),"")}var lt=Wc;function Wc(e,t,r,o=!1){let{variables:n}=ue(r);if(!e)return e;let a=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(a,(i,c,l)=>{let u=d=>d;if(c){let d=c.replace(/^\w/g,m=>m.toLowerCase());d in t?u=t[d]:u=m=>`${c}${m}`;}let p=Array.isArray(n[l])?qr(n[l]):n[l];if(p===void 0)return o?i:"N/A";try{return u(p,Pe,t)}catch(d){return console.error(`Error using formatter ${u.name}
58
+ `,`Error message: ${d.message}`),"N/A"}})}var Gr=(e,t,r)=>{let{variables:o}=r,n=s=>s.allowed==="never"?!1:!s.allowed||s.allowed==="always"||o[s.allowed],a={...e};return Object.keys(a).forEach(s=>{typeof a[s]=="string"?a[s]=lt(a[s],t,r):Array.isArray(a[s])?a[s]=a[s].filter(n).map(i=>typeof i=="object"?Gr(i,t,r):typeof i=="string"?lt(i,t,r):i):typeof a[s]=="object"&&a[s]!==null&&!(a[s]instanceof Date)&&(a[s]=Gr(a[s],t,r));}),a},ur=Gr;var ma=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var Kr=(e,t,r)=>{if(!r)return !1;if(e===Ie.SINGLE)return r.find(n=>n.id===t);let o=Array.isArray(t)?t:t.split(",");return Array.isArray(o)&&o.every(n=>r.map(a=>a.id).includes(n))};function jr(e,t,r,o,n=!1){let{variables:a}=ue(o),s=ur({logic:t},r,o).logic,i=Ue("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i,p=c.type||Ie.SINGLE,d=c.component||"Selector",m=c.hideLabel||"false",y=c.resetSectionVars||"false",h=c.name||"Unlabeled Selector",R=ma(c.options||[]),T=A=>p===Ie.MULTI&&!Array.isArray(A)?[A]:A,_=c.defaultValue,w;if(_&&(_=T(_),Kr(p,_,R)&&(w=_)),!w){let A=R&&R[0]&&R[0].id||R[0]||"";w=T(A);}if(n&&typeof window<"u"){let A=`selector${e}id`,B=new URLSearchParams(window.location.search),F=Object.fromEntries(B)[A];F&&!Kr(p,F,R)&&F!==void 0&&(B.delete(A),window.history.replaceState(null,null,`?${B.toString()}`));}return {config:{name:h,type:p,options:R,defaultValue:w,component:d,hideLabel:m,resetSectionVars:y},log:l,error:u}}function Hr(e,t,r){if(!e)return !1;let o=Array.isArray(r)?r:r.split(",");return Array.isArray(o)&&o.every(n=>e.map(a=>`${a[`${t} ID`]}`).includes(n))}function Wr(e,t,r,o,n=!1){let{variables:a}=ue(o),s=ur({logic:t},r,o).logic,i=Ue("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i;if(n&&typeof window<"u"){let d=`multihierarchySelector${e}-value`,m=`multihierarchySelector${e}-type`,y=new URLSearchParams(window.location.search),h=Object.fromEntries(y),R=h[d],T=h[m];R&&R!==void 0&&T&&T!==void 0&&!Hr(c.data,T,R)&&(y.delete(d),y.delete(m),window.history.replaceState(null,null,`?${y.toString()}`));}return {config:c,log:l,error:u}}var Jc=(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===Ie.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}},fa=Jc;var Yc=(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||"",m=r.data?.filter(y=>p.includes(`${y[`${d} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:p,[`multihierarchySelector${e}label`]:[...new Set((m||[]).map(y=>y[d]))],[`multihierarchySelector${e}type`]:d}},ga=Yc;var{localeDefault:ya,locales:Qc}=z(),Zc=Object.values(Lr),Xc=(e,t=ya)=>e&&Zc.includes(e.type)?{locale:Mr,locales:[Mr]}:{locale:t,locales:Qc},ha=(e,t=ya)=>{if(!e)return {};let{locale:r}=Xc(e,t);return e.contentByLocale?.[r]?.content};function el(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 Ra=el;function Jr(e){return e.type===C.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0?!!e.contentByLocale?.logic?.content?.logic?.includes(sr):!1}var Fe=ir(process.env.NEXT_PUBLIC_REPORTS_DEBUG),nl=process.env.REPORTS_ORIGIN||"";ba(pr,{retries:3,retryDelay:ba.exponentialDelay,onRetry:(e,t,r)=>{console.log("Generator request failed. Retrying... Count: ",e),console.log("URL: ",r.url),console.log(t.message);}});pr.interceptors.request.use(e=>({...e,requestStart:Date.now()}));pr.interceptors.response.use(e=>({...e,requestDuration:new Date().getTime()-e.config.requestStart}),e=>Promise.reject(e));var al=(e,t,r)=>{let o=lt(e,t,r);return o.startsWith("http")||(o=`${nl}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:sl}=Ut("/api/cms");function Qr(e){return e.ok!==void 0}function Yr(e){this.message=e,this.name="ApiFetchException";}var Sa=process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0;async function il(e,t,r="en",o){let n=Date.now(),a=e,s,c=new URL(e).searchParams;if(c.has("bespoke_slugs")){let p=new RegExp(`[?&]bespoke_slugs=${c.get("bespoke_slugs")}`,"g");a=a.replace(p,"");}let l=o?o.settings:{},u=!!(l&&l.useProxy&&l.useProxy==="true");if(typeof window=="object"&&u){let p=await sl({url:a,timeout:Sa});if(p.ok===!0)s=p.data;else throw new Yr(p?.error)}else try{let p=await pr({url:a,timeout:Sa});if(p.status===200)p.headers["content-type"]==="text/csv"?s=csvParse(p.data):s=p.data;else throw new Yr("No response")}catch(p){throw new Yr(p.message)}if(c.has("bespoke_slugs")){let p=c.get("bespoke_slugs");if(p){let d=p.split(",");if(d.length===3){let[m,y,h]=d,R=St(s,h);if(R&&Array.isArray(R)){let T=Array.from(new Set(R.map(E=>`${E[y]}`).filter(E=>!["","undefined"].includes(E)))),_=T.join("").length>2e3,w=await t({mode:_?"whole":"ids",ids:_?void 0:T,all:!1,locale:r,variant:[parseInt(m,10)],output:"lite",limit:T.length+1}).then(E=>{let A=[];return Qr(E)?E.ok&&(A=E.data.results):A=E.results,A&&Array.isArray(A)?A:[]}).catch(E=>(console.error(`Error hydrating slugs for Variant: ${m}, Key: ${y}, Accessor: ${h}`),console.error(` Url ${e}`),o&&console.error(` From Section ${o.section_id} and Block ${o.id}`),console.error(E),[]));if(w){let E=Object.fromEntries(w.map(A=>[A.id,`/${A.variant_slug}/${A.slug}`]));R.map(A=>(A.bespoke_slug=E[A[y]]?E[A[y]]:null,A));}}}}}return {data:s,requestDuration:Date.now()-n}}function cl(e){this.name="BlockException",this.message=e;}async function Ea(e,t,r,o){let{locale:n,variables:a,query:s}=ue(r),i=ul(e,r,a,t),c=null,l=e.contentByLocale?.logic?.content?.api,u=null,p=null,d=null;if(!i)return {outputVariables:{},renderVariables:{},status:{allowed:!1,hiddenByCascade:e.id}};if(e.type===C.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:i,hiddenByCascade:e.id}};if(l){d=al(l,t,r);let E=d.split(vn).filter(O=>O!==""),A=[];for(let O=0;O<E.length;O++){let F=E[O];new RegExp("^(?:[a-z+]+:)?//","i").test(d)||(F=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${F}`.replace(/([^:]\/)\/+/g,"$1")),A.push(il(F,o,n,e).catch(j=>{throw new cl(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${a.report_name} (${a.report_id}) failed.
59
+ Error fetching ${F}.
60
+ Message: ${j.message}.
61
+ `)}));}let B=await Promise.all(A).catch(O=>O.message);if(typeof B=="string"&&B)return {outputVariables:{},renderVariables:{},status:{error:B}};c=B.length===1?B[0].data:B.map(O=>O.data),p=B.reduce((O,F)=>O+JSON.stringify(F.data).length/1024,0),u=Math.max(...B.map(O=>O.requestDuration));}if(e.type===C.SELECTOR){let{config:E,log:A,error:B}=jr(e.id,e.contentByLocale[n].content.logic,t,r,!0);return {outputVariables:fa(e.id,s,E),renderVariables:E,status:{log:A,error:B,allowed:i}}}if(e.type===C.MULTIHIERARCHY_SELECTOR){let{config:E,log:A,error:B}=Wr(e.id,e.contentByLocale[n].content.logic,t,r,!0);return {outputVariables:ga(e.id,s,E),renderVariables:E,status:{log:A,error:B,allowed:i}}}if(e.type===C.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:i}};if(e.type===C.RELATED){let E=e.contentByLocale?.logic?.content?.simple?.compare||"variant",A=e.contentByLocale?.logic?.content?.simple?.limit||4,B=Object.keys(a).filter(b=>b.startsWith("report_id")).map(b=>a[b]),O=Object.keys(a).filter(b=>b.startsWith("dimension_id")).map(b=>a[b]),F=Object.keys(a).filter(b=>b.startsWith("variant_id")).map(b=>a[b]),W=Object.keys(a).filter(b=>b.startsWith("id")).map(b=>a[b]);if(!W.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:!1}};let M=(await o({mode:"ids",locale:n,ids:W,output:"lite"}).then(b=>{let L=[];return Qr(b)?b.ok&&(L=b.data.results):L=b.results,L&&Array.isArray(L)?L:[]}).catch(b=>(console.log("Error getting related members",b),[]))).map(b=>b.content_id),N={mode:"related",locale:n,related:A??4,current_ids:M,output:"full"};E&&(E==="report"?N.report_ids=B:E==="dimension"?N.dimension_ids=O:N.variant_ids=F);let $=await o(N).then(b=>{let L=[];return Qr(b)?b.ok&&(L=b.data.results):L=b.results,L&&Array.isArray(L)?L:[]}).catch(b=>(console.log("Error getting related members",b),[]));return {outputVariables:{related_reports:$},renderVariables:{},status:{log:[],allowed:$.length>0}}}let{logic:m}=ha(e,n),y=lt(m,t,r),h=Ue("resp",c||{},y,t,a,r),{vars:R,error:T,log:_}=h;if(typeof R!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:_,duration:u,responseSize:p,resp:c,api:d,allowed:i}};let w=Object.keys(R).reduce((E,A)=>({...E,[`${e.type}${e.id}${A}`]:R[A]}),{});return {renderVariables:R,outputVariables:[C.GENERATOR,C.SECTION_FLAG].includes(e.type)?R:w,status:{log:_,error:T,duration:u,responseSize:p,resp:c,api:d,allowed:i}}}function ll(e,t,r,o,n,a,s){return e.consumers.forEach(i=>{if(t[i]){let c=`${r}-${i}`;!o.includes(c)&&(t[i].section_id===t[r].section_id||!n)&&o.push(c),e.consumers.filter(l=>t[l].section_id===t[r].section_id||!n).forEach(l=>Zr(l,t,o,!1,a,n,s));}})}var Zr=(e,t,r=[],o=!0,n=!0,a=!0,s=[])=>{if(s.includes(e))return [];s.push(e);let i=t[e];return i&&i.inputs.length&&o&&i.inputs.forEach(c=>{let l=`${c}-${e}`;r.includes(l)||r.push(l),i.inputs.forEach(u=>Zr(u,t,r,o,!1,a,s));}),i&&i.consumers.length&&n&&ll(i,t,e,r,a,n,s),r},ul=(e,t,r,o)=>{let n=!0;if(e&&"allowed"in e.settings&&e.settings.allowed!=="always")if(e.settings.allowed==="never")n=!1;else {let a=ue(t),{error:s,output:i}=Ue("variables",r,e.settings.allowedLogic||"return false;",o,void 0,a);s||(n=!!i);}return n},dr=async(e,t,r,o,n,a={},s,i="section")=>{let c=i==="section",l=ue(n),u=l.variables,p={...a.variables??{}},d={...a.status??{}},m=new Set,y=[],h={};r?h={...h,[r]:e[r]}:t?h=(t??[]).reduce((M,{id:N})=>({...M,...Ra(N,e)}),{}):h=Object.values(e).filter(M=>Jr(M)).reduce((M,N)=>({...M,[N.id]:N}),{});let R=Object.values(h).filter(M=>Jr(M));if(R.length>0){Fe&&console.log("%crunConsumers: calculating section flags","color:purple",R.map(b=>b.id).join(", "));let M=Object.fromEntries(await Promise.all(R.map(async b=>[b.id,await Ea(b,o,{...l,variables:u,locale:u.locale},s).then(L=>{let{outputVariables:q,status:v}=L;if(v.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${b.id}, Section ${b.section_id}) failed with message: ${v.error}. `);d[b.id]={allowed:!1,error:v.error},p[b.id]={};}return (b.consumers.length>0||[C.GENERATOR,C.SECTION_FLAG,C.RELATED].includes(b.type))&&v.allowed&&Object.keys(q).length>0?p[b.id]=q:p[b.id]={},i==="report"?(d[b.id]={allowed:v.allowed},[C.GENERATOR,C.SECTION_FLAG].includes(b.type)&&v.api&&(d[b.id].api=v.api)):d[b.id]=v,L})]))),$=Object.entries(M).filter(([b,L])=>!L.outputVariables[sr]).map(([b])=>Number(b));m=new Set($.map(b=>e[b].section_id)),Object.values(h).filter(b=>m.has(b.section_id)).forEach(b=>{y.push(b.id),delete h[b.id];}),Fe&&console.log("%crunConsumers: removing sections","color:purple",m.keys());}let T=m.size>0?Object.fromEntries(Object.entries(e).filter(([M,N])=>m?.has(N.section_id)?(y.push(N.id),!1):!0)):e;if(y.length>0&&(T=Object.fromEntries(Object.entries(T).map(([M,N])=>{let $={...N,inputs:N.inputs.filter(b=>!y.includes(b)),consumers:N.consumers.filter(b=>!y.includes(b))};return [M,$]}))),!r&&!t)return {variables:{...a.variables??{},...p},status:{...a.status??{},...d}};Fe&&console.log("%crunConsumers: running root blocks","color:purple",Object.keys(h));let _=Object.keys(h).reduce((M,N)=>{let $=new Date,b=Zr(Number(N),T,[],!r,!0,c).map(v=>v.split("-")),q=(new Date().getTime()-$.getTime())/1e3;return Fe&&console.log(`%cResolved dependencies for ${N} (${q.toFixed(2)}s)`,"color:blue"),[...M,...b]},[]),w=new Date,E=Object.keys(h).reduce((M,N)=>M.includes(N)?[...M]:[N,...M],tl(_)),B=(new Date().getTime()-w.getTime())/1e3;Fe&&console.log(`%cResolved DAG (${B.toFixed(2)}s): `,"color:green",E);async function O(M,N){let $=new Map;for(let b of M){let L=N[b],v=Promise.all(L.inputs.filter(P=>M.includes(String(P))).map(P=>$.get(Number(P)))).then(async()=>{let P=L.inputs.reduce((J,Y)=>({...J,...p[Y]}),u),U=L.inputs.find(J=>(L.settings?.ignoreCascade?L.settings?.ignoreCascade:[]).includes(J)?!1:!d[J].allowed||d[J].hiddenByCascade);if(U){d[b]={allowed:!1,hiddenByCascade:d[U].hiddenByCascade||U},p[b]={};return}let te=new Date,x=await Ea(L,o,{...l,variables:P,locale:P.locale},s).then(({outputVariables:J,status:Y})=>{if(Y.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${b}, Section ${L.section_id}) failed with message: ${Y.error}. `);d[b]={allowed:!1,error:Y.error},p[b]={};}(L.consumers.length>0||[C.GENERATOR,C.SECTION_FLAG,C.RELATED].includes(L.type))&&Y.allowed&&Object.keys(J).length>0?p[b]=J:p[b]={},i==="report"?(d[b]={allowed:Y.allowed},[C.GENERATOR,C.SECTION_FLAG].includes(L.type)&&Y.api&&(d[b].api=Y.api)):d[b]=Y;}),ne=(new Date().getTime()-te.getTime())/1e3;return Fe&&console.log(`%cBlock ${L.id} resolved in ${ne.toFixed(3)}s`,ne>500?"color:red":"color:green"),x});$.set(Number(b),v);}await Promise.all(Array.from($.values()));}let F=new Date;await O(E,T);let j=(new Date().getTime()-F.getTime())/1e3;return Fe&&console.log(`%cResolved Variables (${j.toFixed(2)}s): `,"color:green"),{variables:{...a.variables??{},...p},status:{...a.status??{},...d}}};function pl(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 mr=pl;function ml(){let{publicRuntimeConfig:e}=dl(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((r,o)=>(r[`ENV_${o}`]=t[o]||"N/A",r),{})}}var fr=ml;function fl(e,t){return +(e<t)-+(e>t)}function gr(e,t,r="ordering"){return fl(t[r],e[r])}var Ta=(e,t={},r="en",o={},n={})=>{let a={setVariables:o.onSetVariables?o.onSetVariables:c=>c,openModal:o.onOpenModal?o.onOpenModal:c=>c,formatters:t,libs:Pe,locale:r,...n};function s(c){return Function("globals",...c.vars,`with (globals) { ${c.logic} }`).bind(a,a)}function i(c){if(c.vars&&c.logic)return s(c);for(let l in c)Array.isArray(c[l])?c[l]=c[l].map(u=>isObject(u)?i(u):u):isObject(c[l])&&(c[l]=i(c[l]));return c}return i(e)};var{localeDefault:yl}=z();var Ft=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});Ft.define({consumers:[Ft],inputs:[Ft]});var va=new schema.Entity("variant"),_a=new schema.Entity("dimension",{variants:[va]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),ka=new schema.Entity("section",{blocks:[Ft]}),hl=new schema.Entity("report",{dimensions:[_a],sections:[ka]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(gr):[]}}}),Rl=new schema.Entity("formatter"),bl={report:hl,section:ka,block:Ft,dimension:_a,variant:va,formatter:Rl};function yr(e,t){let r=bl[e];if(!r)throw new Error(`Invalid entity type: ${e}`);let{entities:o}=normalize(t,[r]);return {report:ut(o,"report"),dimension:ut(o,"dimension"),section:ut(o,"section"),block:ut(o,"block"),variant:ut(o,"variant"),formatter:ut(o,"formatter")}}function ut(e,t){return e.hasOwnProperty(t)?e[t]:{}}var Pa=(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}},Xr=(e=[],t=yl)=>e.reduce((r,o)=>{let n=Ta({vars:["n"],logic:o.content.logic},{},t,{});return r[o.name]=n,r},{});var de=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",hr=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[de];hr.includes(de)||hr.push(de);var Al={localeDefault:de,locales:hr,currentLocale:de,preferredLocale:de,showToolbar:!1,activeSection:null,previews:[],query:{},sectionState:{},activeEntity:{type:null,id:null},sidebarStatus:{tools:!0,settings:!1,reportEditor:!1},isCMS:!1},Rr=createSlice({name:"status",initialState:Al,reducers:{setStatus:(e,t)=>{Object.assign(e,t.payload);},setPreviews(e,t){e.previews=t.payload;},setCurrentLocale(e,t){e.currentLocale=t.payload;},setPreferredLocale(e,t){e.preferredLocale=t.payload;},setSectionState(e,t){e.sectionState={...e.sectionState,...t.payload};},resetSectionState(e,t){e.sectionState={...e.sectionState,[t.payload]:{}};},setActiveEntity(e,t){e.activeEntity=t.payload;},openSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!0};},closeSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!1};},toggleSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!e.sidebarStatus[t.payload]};}},extraReducers:{[HYDRATE]:(e,t)=>({...e,previews:t.payload.status.previews})}}),Ve=Rr.actions;var _l={attributes:{},variables:{},status:{}},br=createSlice({name:"variables",initialState:_l,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}})}}),Sr=br.actions;var wl={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}}},ve=createSlice({name:"records",initialState:wl,reducers:{set:(e,t)=>{let r=t.payload;return {entities:Vt(e.entities,r.entities||{}),requests:Vt(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=yr(r.type,o),a=Vt(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=Er(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=Er(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=yr(r.type,r.data),n=Vt(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=yr(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=Vt(e.entities,n);if(e.entities=c,r.type==="dimension"){let l=r.data;e.entities.report[l.report_id].dimensions=Er(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=Er(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`;Il(e.entities[a][n][s],o);}}},removeBlocks:(e,t)=>{let r=t.payload,o={...e.entities.block};return r.forEach(n=>{delete o[n];}),{...e,entities:{...e.entities,block:o}}},addBlocks:(e,t)=>{let r=t.payload;return {...e,entities:{...e.entities,block:{...e.entities.block,...r}}}}},extraReducers:{[HYDRATE]:(e,t)=>{let r=t.payload.records,o=r.entities;return {entities:o,reports:Object.values(o.report).map(n=>n.id),requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}},tree:r.tree}}}});function Vt(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,{...e[r],...t[r]}]))}function Er(e,t){return e.map(n=>t[n]).sort(gr).map(n=>n.id)}function Il(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}function oe(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];if(process.env.NODE_ENV!=="production"){var n=Dl[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 dt(e){return !!e&&!!e[ie]}function $e(e){var t;return !!e&&(function(r){if(!r||typeof r!="object")return !1;var o=Object.getPrototypeOf(r);if(o===null)return !0;var n=Object.hasOwnProperty.call(o,"constructor")&&o.constructor;return n===Object||typeof n=="function"&&Function.toString.call(n)===Ul}(e)||Array.isArray(e)||!!e[Oa]||!!(!((t=e.constructor)===null||t===void 0)&&t[Oa])||lo(e)||uo(e))}function $t(e,t,r){r===void 0&&(r=!1),ft(e)===0?(r?Object.keys:yo)(e).forEach(function(o){r&&typeof o=="symbol"||t(o,e[o],e);}):e.forEach(function(o,n){return t(n,o,e)});}function ft(e){var t=e[ie];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:lo(e)?2:uo(e)?3:0}function no(e,t){return ft(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function xl(e,t){return ft(e)===2?e.get(t):e[t]}function Na(e,t,r){var o=ft(e);o===2?e.set(t,r):o===3?e.add(r):e[t]=r;}function Cl(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function lo(e){return Ol&&e instanceof Map}function uo(e){return Nl&&e instanceof Set}function ze(e){return e.o||e.t}function po(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Fl(e);delete t[ie];for(var r=yo(t),o=0;o<r.length;o++){var n=r[o],a=t[n];a.writable===!1&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[n]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[n]});}return Object.create(Object.getPrototypeOf(e),t)}function mo(e,t){return t===void 0&&(t=!1),fo(e)||dt(e)||!$e(e)||(ft(e)>1&&(e.set=e.add=e.clear=e.delete=Bl),Object.freeze(e),t&&$t(e,function(r,o){return mo(o,!0)},!0)),e}function Bl(){oe(2);}function fo(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function ye(e){var t=Vl[e];return t||oe(18,e),t}function wa(){return process.env.NODE_ENV==="production"||mt||oe(0),mt}function eo(e,t){t&&(ye("Patches"),e.u=[],e.s=[],e.v=t);}function Ar(e){ao(e),e.p.forEach(Ll),e.p=null;}function ao(e){e===mt&&(mt=e.l);}function Ia(e){return mt={p:[],l:mt,h:e,m:!0,_:0}}function Ll(e){var t=e[ie];t.i===0||t.i===1?t.j():t.g=!0;}function to(e,t){t._=t.p.length;var r=t.p[0],o=e!==void 0&&e!==r;return t.h.O||ye("ES5").S(t,e,o),o?(r[ie].P&&(Ar(t),oe(4)),$e(e)&&(e=Tr(t,e),t.l||vr(t,e)),t.u&&ye("Patches").M(r[ie].t,e,t.u,t.s)):e=Tr(t,r,[]),Ar(t),t.u&&t.v(t.u,t.s),e!==Da?e:void 0}function Tr(e,t,r){if(fo(t))return t;var o=t[ie];if(!o)return $t(t,function(i,c){return xa(e,o,t,i,c,r)},!0),t;if(o.A!==e)return t;if(!o.P)return vr(e,o.t,!0),o.t;if(!o.I){o.I=!0,o.A._--;var n=o.i===4||o.i===5?o.o=po(o.k):o.o,a=n,s=!1;o.i===3&&(a=new Set(n),n.clear(),s=!0),$t(a,function(i,c){return xa(e,o,n,i,c,r,s)}),vr(e,n,!1),r&&e.u&&ye("Patches").N(o,r,e.u,e.s);}return o.o}function xa(e,t,r,o,n,a,s){if(process.env.NODE_ENV!=="production"&&n===r&&oe(5),dt(n)){var i=Tr(e,n,a&&t&&t.i!==3&&!no(t.R,o)?a.concat(o):void 0);if(Na(r,o,i),!dt(i))return;e.m=!1;}else s&&r.add(n);if($e(n)&&!fo(n)){if(!e.h.D&&e._<1)return;Tr(e,n),t&&t.A.l||vr(e,n);}}function vr(e,t,r){r===void 0&&(r=!1),!e.l&&e.h.D&&e.m&&mo(t,r);}function ro(e,t){var r=e[ie];return (r?ze(r):e)[t]}function Ca(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 so(e){e.P||(e.P=!0,e.l&&so(e.l));}function oo(e){e.o||(e.o=po(e.t));}function io(e,t,r){var o=lo(t)?ye("MapSet").F(t,r):uo(t)?ye("MapSet").T(t,r):e.O?function(n,a){var s=Array.isArray(n),i={i:s?1:0,A:a?a.A:wa(),P:!1,I:!1,R:{},l:a,t:n,k:null,o:null,j:null,C:!1},c=i,l=co;s&&(c=[i],l=zt);var u=Proxy.revocable(c,l),p=u.revoke,d=u.proxy;return i.k=d,i.j=p,d}(t,r):ye("ES5").J(t,r);return (r?r.A:wa()).p.push(o),o}function Ml(e){return dt(e)||oe(22,e),function t(r){if(!$e(r))return r;var o,n=r[ie],a=ft(r);if(n){if(!n.P&&(n.i<4||!ye("ES5").K(n)))return n.t;n.I=!0,o=Ba(r,a),n.I=!1;}else o=Ba(r,a);return $t(o,function(s,i){n&&xl(n.t,s)===i||Na(o,s,t(i));}),a===3?new Set(o):o}(e)}function Ba(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return po(e)}var La,mt,go=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",Ol=typeof Map<"u",Nl=typeof Set<"u",Ma=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",Da=go?Symbol.for("immer-nothing"):((La={})["immer-nothing"]=!0,La),Oa=go?Symbol.for("immer-draftable"):"__$immer_draftable",ie=go?Symbol.for("immer-state"):"__$immer_state";var Dl={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"},Ul=""+Object.prototype.constructor,yo=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Fl=Object.getOwnPropertyDescriptors||function(e){var t={};return yo(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r);}),t},Vl={},co={get:function(e,t){if(t===ie)return e;var r=ze(e);if(!no(r,t))return function(n,a,s){var i,c=Ca(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||!$e(o)?o:o===ro(e.t,t)?(oo(e),e.o[t]=io(e.A.h,o,e)):o},has:function(e,t){return t in ze(e)},ownKeys:function(e){return Reflect.ownKeys(ze(e))},set:function(e,t,r){var o=Ca(ze(e),t);if(o?.set)return o.set.call(e.k,r),!0;if(!e.P){var n=ro(ze(e),t),a=n?.[ie];if(a&&a.t===r)return e.o[t]=r,e.R[t]=!1,!0;if(Cl(r,n)&&(r!==void 0||no(e.t,t)))return !0;oo(e),so(e);}return e.o[t]===r&&(r!==void 0||t in e.o)||Number.isNaN(r)&&Number.isNaN(e.o[t])||(e.o[t]=r,e.R[t]=!0),!0},deleteProperty:function(e,t){return ro(e.t,t)!==void 0||t in e.t?(e.R[t]=!1,oo(e),so(e)):delete e.R[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=ze(e),o=Reflect.getOwnPropertyDescriptor(r,t);return o&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:o.enumerable,value:r[t]}},defineProperty:function(){oe(11);},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){oe(12);}},zt={};$t(co,function(e,t){zt[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)};}),zt.deleteProperty=function(e,t){return process.env.NODE_ENV!=="production"&&isNaN(parseInt(t))&&oe(13),zt.set.call(this,e,t,void 0)},zt.set=function(e,t,r){return process.env.NODE_ENV!=="production"&&t!=="length"&&isNaN(parseInt(t))&&oe(14),co.set.call(this,e[0],t,r,e[0])};var zl=function(){function e(r){var o=this;this.O=Ma,this.D=!0,this.produce=function(n,a,s){if(typeof n=="function"&&typeof a!="function"){var i=a;a=n;var c=o;return function(h){var R=this;h===void 0&&(h=i);for(var T=arguments.length,_=Array(T>1?T-1:0),w=1;w<T;w++)_[w-1]=arguments[w];return c.produce(h,function(E){var A;return (A=a).call.apply(A,[R,E].concat(_))})}}var l;if(typeof a!="function"&&oe(6),s!==void 0&&typeof s!="function"&&oe(7),$e(n)){var u=Ia(o),p=io(o,n,void 0),d=!0;try{l=a(p),d=!1;}finally{d?Ar(u):ao(u);}return typeof Promise<"u"&&l instanceof Promise?l.then(function(h){return eo(u,s),to(h,u)},function(h){throw Ar(u),h}):(eo(u,s),to(l,u))}if(!n||typeof n!="object"){if((l=a(n))===void 0&&(l=n),l===Da&&(l=void 0),o.D&&mo(l,!0),s){var m=[],y=[];ye("Patches").M(n,l,m,y),s(m,y);}return l}oe(21,n);},this.produceWithPatches=function(n,a){if(typeof n=="function")return function(l){for(var 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(m){return n.apply(void 0,[m].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){$e(r)||oe(8),dt(r)&&(r=Ml(r));var o=Ia(this),n=io(this,r,void 0);return n[ie].C=!0,ao(o),n},t.finishDraft=function(r,o){var n=r&&r[ie];process.env.NODE_ENV!=="production"&&(n&&n.C||oe(9),n.I&&oe(10));var a=n.A;return eo(a,o),to(void 0,a)},t.setAutoFreeze=function(r){this.D=r;},t.setUseProxies=function(r){r&&!Ma&&oe(20),this.O=r;},t.applyPatches=function(r,o){var n;for(n=o.length-1;n>=0;n--){var a=o[n];if(a.path.length===0&&a.op==="replace"){r=a.value;break}}n>-1&&(o=o.slice(n+1));var s=ye("Patches").$;return dt(r)?s(r,o):this.produce(r,function(i){return s(i,o)})},e}(),ce=new zl,$l=ce.produce;ce.produceWithPatches.bind(ce);ce.setAutoFreeze.bind(ce);ce.setUseProxies.bind(ce);ce.applyPatches.bind(ce);ce.createDraft.bind(ce);ce.finishDraft.bind(ce);var _r=$l;var me=ve.actions,za=qt({block:qe("block"),dimension:qe("dimension"),formatter:qe("formatter"),report:qe("report"),section:qe("section"),variant:qe("variant")}),ae=qt({block:Ge("block"),dimension:Ge("dimension"),formatter:Ge("formatter"),report:Ge("report"),section:Ge("section"),variant:Ge("variant")}),$a=qt({block:be("block"),dimension:be("dimension"),formatter:be("formatter"),report:be("report"),section:be("section"),variant:be("variant")}),qa=qt({block:gt("block"),dimension:gt("dimension"),formatter:gt("formatter"),report:gt("report"),section:gt("section"),variant:gt("variant")}),Ga=qt({block:Fa("block"),section:Fa("section")});function qt(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 Ke(e,t){return (r,o)=>{let a=o().records.requests[e][t],s=!a||a.status==="UNINITIALIZED"?"LOADING":"FETCHING";r(me.setRequest({key:t,type:e,status:s}));}}function yt(e,t,r,o){return n=>{typeof window=="object"&&notifications.show({autoClose:3e3,color:"red",id:t,message:o,title:"Error"}),n(me.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function qe(e){return t=>{let r=Ro(e,t);return (o,n,a)=>(o(Ke(e,r)),se(a,"create",e)(t).then(i=>(i.ok===!0?o(me.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(yt(e,r,i.status,i.error)),i)))}}function Kl(e){return t=>{let r=Ro(e,t[0]);return (o,n,a)=>(o(Ke(e,r)),se(a,"createBulk",e)(t).then(i=>(i.ok===!0?o(me.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(yt(e,r,i.status,i.error)),i)))}}function Ua(e,t,r){return r.replace(new RegExp(e,"g"),t)}function jl(e){return e.section_id!==void 0}function Hl(e){return e.report_id!==void 0}function Fa(e){return t=>{let{create:r}=t;return (o,n,a)=>qe(e)(r)(o,n,a).then(async i=>{if(i.ok){let{data:c}=i,{id:l}=c,{update:u}=t,p=Ha(e,{id:l});if(o(Ke(e,`${p}`)),e==="block"&&jl(r)){let d=_r(u,R=>{R.id=l;}),{contentByLocale:m}=d;m&&(d=_r(d,R=>{R.id=l,R.contentByLocale=Object.keys(m).reduce((T,_)=>{let w=m?m[_]:{};return T[_]={...w,id:l},T},{});}));let h=d.inputs?.map(R=>({type:R.type,id:R.id,inputAction:{operation:"create",input:{input_id:R.id,block_id:d.id}}}));return h&&h.length>0&&Va(e)([d,...h])(o,n,a).then(()=>Ge("section")({id:d.section_id,include:!0})(o,n,a).then(R=>(R.ok&&o(me.setRequest({key:p,type:e,status:"SUCCESS",data:R.data})),R))),be(e)(d)(o,n,a).then(R=>(R.ok&&o(me.setRequest({key:p,type:e,status:"SUCCESS",data:R.data})),R))}if(e==="section"&&Hl(r)){let{id:d}=c,m=_r(u,R=>{R.id=d;}),{blocks:y}=m,h=y?.map(R=>({type:R.type,blockcol:R.blockcol,blockrow:R.blockrow,section_id:d,locales:Object.keys(R.contentByLocale).map(T=>T)}));return h&&y&&await Kl("block")(h)(o,n,a).then(R=>{if(R.ok){let T=R.data,_=[],w=T.map((E,A)=>{let O={...E},F=O.id,W=y[A];W.contentByLocale&&(O.contentByLocale=Object.keys(W.contentByLocale).reduce((v,P)=>{let U=W.contentByLocale[P];return v[P]={...U,content:{...U.content},id:O.id},v},{}));let{settings:j}=W,{contentByLocale:M,id:N}=O;O.settings=j;let $={id:N,contentByLocale:M,settings:j};return W.inputs.map(v=>v.id).reduce((v,P)=>{let U=y.findIndex(te=>te.id===P);return [...v,U]},[]).map(v=>({...T[v],originalBlock:y[v]})).forEach(v=>{let{id:P,type:U,originalBlock:te}=v;if([C.SELECTOR,C.VIZ].includes(U)){if($.contentByLocale?.logic?.content?.api){let x=$.contentByLocale?.logic.content.api;$.contentByLocale.logic.content.api=Ua(`(selector${te.id}id)`,`selector${P}id`,x);}if($.contentByLocale?.logic?.content?.logic){let x=$.contentByLocale.logic.content.logic;$.contentByLocale.logic.content.logic=Ua(`(selector${te.id}id)`,`selector${P}id`,x);}}_.push({id:P,inputAction:{operation:"create",input:{input_id:P,block_id:F}}});}),$});return Va("block")([...w,..._])(o,n,a)}}),be(e)(m)(o,n,a).then(R=>(R.ok&&o(me.setRequest({key:p,type:e,status:"SUCCESS",data:R.data})),R))}return be(e)({...u,id:c.id})(o,n,a)}})}}function Ge(e){return t=>{let r=Ka(e,t);return (o,n,a)=>(o(Ke(e,r)),se(a,"read",e)(t).then(i=>(i.ok===!0?o(me.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(yt(e,r,i.status,i.error)),i)))}}function be(e){return t=>{let r=bo(e,t);return (o,n,a)=>(o(Ke(e,r)),se(a,"update",e)(t).then(i=>(i.ok===!0?o(me.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(yt(e,r,i.status,i.error)),i)))}}function Va(e){return t=>{let r=bo(e,t[0]);return (o,n,a)=>(o(Ke(e,r)),se(a,"updateBulk",e)(t).then(i=>(i.ok===!0?o(me.setUpdateRequest({key:r,operation:"updateBulk",status:"SUCCESS",type:e,data:i.data})):o(yt(e,r,i.status,i.error)),i)))}}function gt(e){return t=>{let r=ja(e,t);return (o,n,a)=>(o(Ke(e,r)),se(a,"delete",e)(t).then(i=>{i.ok===!0?o(me.setDeleteRequest({key:r,operation:"delete",status:"SUCCESS",type:e,data:i.data})):o(yt(e,r,i.status,i.error));}))}}function Ro(e,t){if(e==="variant"){let r=t;return `create(variant, [${r.dimension_id}, ${r.name}])`}return `create(${e}, [${Object.keys(t)}])`}function Ka(e,t={}){let r=t.id==null?null:`'${t.id}'`;return `read(${e}, ${r}, ${!!t.include})`}function bo(e,t){let{id:r,...o}=t;return `update(${e}, ${r}, [${Object.keys(o)}])`}function ja(e,t){return `delete(${e}, ${t})`}function Ha(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:Wa,setPreviews:Wl,setSectionState:Ja,resetSectionState:Ya,setCurrentLocale:Jl,setPreferredLocale:Yl}=Ve;function Ql(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 Zl(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 Xl(){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 Gt(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 eu(e){return async(t,r,o)=>{let n=await o.searchMember(e);if(n.ok===!0)return n.data;throw new Error(n.error)}}async function Qa(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(Wa(i)),n.activeSection&&t(Za(e,{query:s}));}function tu(e,t){return async(r,o)=>Qa(e,r,o,{query:{[t]:void 0}})}function ru(e,t,r){return async(o,n)=>Qa(e,o,n,{query:{[t]:r}})}function Za(e,t){return async(r,o)=>{let n=o(),{currentLocale:a}=n.status,s=n.records.entities.block,i=e.formatterFunctions[a],{parsedParams:c,statusPayload:l}=Pa(n.status,t),{sid:u,bid:p,previews:d,query:m}=c;Object.keys(l).length&&r(Ve.setStatus(l));let y={...mr(d),locale:a,...fr()},h={variables:y,query:m,locale:a},R=n.records.entities.section[u],T=async _=>r(Gt(_));try{let _=await dr(s,R&&[R],p,i,h,void 0,T),{variables:w,status:E}=_;r(Sr.setVariableChange({attributes:y,variables:w,status:E}));}catch(_){console.log("Error in runConsumers client side: recalculateVariables",_);}}}function ou(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 nu(e){return async(t,r,o)=>{let n=await o.urlProxy({url:e});if("error"in n)throw new Error(n.error);return n.data}}function au(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function su(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 iu(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 cu({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 lu(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 So(e){let{removeBlocks:t}=ve.actions;return async r=>{await r(t(e));}}function Eo(e){let{addBlocks:t}=ve.actions;return async r=>{await r(t(e));}}function uu(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 pu(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 du(e){return async(t,r,o)=>{let n=await o.revalidateReport({reportId:e.reportId,profilePrefix:e.profilePrefix});if("error"in n)throw new Error(n.error);return n.data}}var Xa=e=>configureStore({reducer:{[ve.name]:ve.reducer,[Rr.name]:Rr.reducer,[br.name]:br.reducer},middleware(t){return t({thunk:{extraArgument:Ut("/api/cms/")}})}}),jt=createWrapper(Xa);function hu(e){let t=process.cwd(),r=yu.resolve(t.endsWith("/example")?t.replace("/example",""):t,"package-lock.json"),o;try{let n=JSON.parse(rc.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 Ru(e){let t=()=>Promise.resolve({}),{pathSegmentsKey:r="bespoke",preResolve:o=t,postResolve:n=t}=e||{};return X.withPageAuthRequired({getServerSideProps:jt.getServerSideProps(a=>{let{dispatch:s}=a;return async i=>{let c=i.query[r],[l]=Array.isArray(c)?c:[c];await s(Ot);let u=await hu("@datawheel/bespoke"),p=await o(a,i);if("redirect"in p)return {props:p};l==="reports"&&(es(i.query[r])?await Promise.all([s(ae("formatter",{})),s(ae("report",{id:es(i.query[r]),include:!0})),Ve.setStatus({isCMS:!0})]):await Promise.all([s(ae("report",{include:"dimensions"})),Ve.setStatus({isCMS:!0})])),l==="metadata"&&await s(ae("report",{include:"dimensions"})),l==="formatters"&&await s(ae("formatter",{}));let d=await n(a,i);return {props:{...p,...d,bespokeVersion:u}}}})})}function es(e){if(e==null||e==="")return;let[,t]=Array.isArray(e)?e:[e];return Number.parseInt(t)||void 0}var {locales:Su}=z(),Eu={pathSegment:"path",formatterFunctions:Su.reduce((e,t)=>({...e,[t]:{}}),{}),profilePrefix:"path",siteProps:{}};createContext(Eu);z();var ss=e=>e.records.entities.block;function bt(e){return t=>Object.values(t.records.entities[e])}var is=bt("section"),cs=bt("formatter");function Nu(e){let{fallback:t=!0,limit:r=50}=e||{};return async o=>{let{defaultLocale:n=de,locales:a=[]}=o,s=[];if(r>0){let i=a.find(u=>u===n),{searchMember:c}=await Le().then(at),l=await c({query:"",limit:r,format:"plain",locale:i||de,noImage:!1,visible:!0,report:[],dimension:[],variant:[],includes:!0});l.ok===!0&&(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 Du(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return jt.getStaticProps(r=>{let{dispatch:o}=r;return async n=>{await o(Ot);let a=new Date().toISOString(),{locale:s=de,params:i={}}=n,c=Array.from(Uu(i[t]));if(c.length===0)return await Promise.all([o(ae("formatter",{})),o(ae("report",{include:!0}))]),{props:{buildTime:a}};let l=await o(Gt({mode:"slugs",locale:s,slugs:c,output:"full"}));o(Kt.setPreviews(l.results)),await Promise.all([o(ae("formatter",{})),o(ae("report",{id:l.results.map(A=>A.report_id),include:!0,locales:[s]}))]);let u=r.getState(),p=cs(u),d=Xr(p,s),m=is(u),y=ss(u),h={...y},R={},T=Object.values(y).reduce((A,B)=>("access"in B.settings&&!["public","guest"].some(O=>!B.settings.access||B.settings.access.includes(O))&&A.push(B.id),A),[]);T=T.concat(Mt(T,Object.values(h)));let _=T.filter(A=>h[A].settings[Ko.FALLBACK]);T.forEach(A=>{_.includes(A)&&(R[A]={...h[A],type:"fallback"}),delete h[A];}),await o(So(T)),await o(Eo(R));let w={...mr(l.results),locale:s,...fr()},E=async A=>await o(Gt(A));return await dr({...h,...R},m,void 0,d,{locale:s,query:i,variables:w},void 0,E,"report").then(A=>{o(Sr.setVariableChange({...A,attributes:w}));}),{props:{buildTime:a}}}})}catch(r){console.log("ERROR SSR",r);}}function Uu(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}}}
62
62
 
63
- export { ls as BespokeGetSession, ds as BespokeHandleAuth, yu as BespokeManagerServerSideProps, Lu as BespokeRendererStaticPaths, Ou as BespokeRendererStaticProps, Ts as BespokeSearchUsersByMetadata, hs as BespokeUpdateCurrentUserAppMetadata, Rs as BespokeUpdateCurrentUserMetadata, Es as BespokeWithApiRoleAuthRequired, Lc as ReportCrosswalkHandler, nt as dbApiFactory, zr as endpointKey, Bc as endpointNextJsHandlerFactory, Me as getDB, Lt as useDatabaseApi };
63
+ export { ds as BespokeGetSession, gs as BespokeHandleAuth, Ru as BespokeManagerServerSideProps, Nu as BespokeRendererStaticPaths, Du as BespokeRendererStaticProps, ks as BespokeSearchUsersByMetadata, Ss as BespokeUpdateCurrentUserAppMetadata, As as BespokeUpdateCurrentUserMetadata, vs as BespokeWithApiRoleAuthRequired, Dc as ReportCrosswalkHandler, at as dbApiFactory, $r as endpointKey, Oc as endpointNextJsHandlerFactory, Le as getDB, Ot as useDatabaseApi };