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