@datawheel/bespoke 0.7.3-rc.1 → 0.8.0-rc.1

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