@vizzly/services 0.15.0-dev-94df3c8d8b265c7e5ff387f240c16f65d6413a0c → 0.15.0-dev-eaaf414f9f1038b3d1800877c725848532bce2cf
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/cjs/index.cjs.js +1 -1
- package/dist/esm/index.esm.js +1 -1
- package/package.json +1 -1
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -56,7 +56,7 @@ h0.version="2.30.1";jy(D1);h0.fn=u0;h0.min=BL;h0.max=SL;h0.now=wL;h0.utc=C2;h0.u
|
|
|
56
56
|
|
|
57
57
|
Missing '${o}'. Got;
|
|
58
58
|
${JSON.stringify([...e].map(n=>n.id))}
|
|
59
|
-
`),this.name="DataSetNotFound"}}const I_=t=>{let e=[];if("measure"in t&&t.measure&&(e=[...e,...t.measure]),"xMeasure"in t&&Array.isArray(t.xMeasure)&&(e=[...e,...t.xMeasure]),"yMeasure"in t&&t.yMeasure&&(e=[...e,t.yMeasure]),"zMeasure"in t&&t.zMeasure){let o=Array.isArray(t.zMeasure)?t.zMeasure:[t.zMeasure];e=[...e,...o]}return e},P_=t=>{let e=[];return"dimension"in t&&t.dimension&&(e=[...e,...t.dimension]),"lineDimension"in t&&t.lineDimension&&(e=[...e,...t.lineDimension]),"barDimension"in t&&t.barDimension&&(e=[...e,...t.barDimension]),e},Qu=t=>{let e=[];return I_(t).forEach(o=>{e=[...e,{fieldId:o.field,function:o.function,dataSetId:t.dataSetId}]}),P_(t).forEach(o=>{e=[...e,{fieldId:o.field,function:o.function,dataSetId:t.dataSetId}]}),"order"in t&&t.order&&(e=[...e,...[...t.order].map(o=>({fieldId:o.field,function:o.function,dataSetId:t.dataSetId}))]),"timeDimension"in t&&t.timeDimension&&(e=[...e,{fieldId:t.timeDimension.field,function:t.timeDimension.truncate,dataSetId:t.dataSetId}]),e},F_={allowUnknown:!0,stripUnknown:!0},K1=(t,e,o)=>{const{error:n}=ib(t.type,{queryEngineConfig:o}).schema.validate(t,F_);if(n)return[new E_(n)];const b=B2(e,t.dataSetId);if(!b)return[new D_(e,t.dataSetId)];const a=Qu(t).map(O=>O.fieldId);try{a.forEach(O=>{rt(b,O)})}catch(O){if(O instanceof Ya)return[O];throw O}return[]},k0=t=>t||`view_${Gu()}`,k_=t=>t&&t.length>0?t.map(j_):t||[];function j_(t){const{parentDimension:e,...o}=t;return o}const Nr=(t,e)=>{let o=null,n=P0.cloneDeep(t);return n.forEach(b=>{const a=rt(e,b.field);a.dataType=="date_time"&&(o={field:a.id,truncate:b.function})}),n=n.filter(b=>rt(e,b.field).dataType!="date_time"),{timeDimension:o,dimension:n}},Zo=t=>{let e=[...t.dimension];return"timeDimension"in t&&t.timeDimension&&(e=[{field:t.timeDimension.field,function:t.timeDimension.truncate},...e]),e},se={title:"Area chart",description:"Displays data as areas on a chart, useful for showing trends over time.",namespace:"area_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this area chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each area to measure?",callToAction:"Add metric"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each area to represent? An example might be an employee ID to represent each employee.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this area chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this area chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},rich_text:{type:"richText",title:"Text format"},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},curve:{type:"curve",title:"Line Curve",description:"",namespace:"curve"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headline",description:""},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}};function P(t,e){return(n=>n in t.format_panel)(e)?{...t.format_panel[e],namespace:e}:{...t.data_panel[e],namespace:e}}function de(t,e){return t.format_panel.axis_labels?.subSectionDefinition[e]}function F1(t){return{...P(t,"heading"),subSection:[t.format_panel.heading.subSectionDefinition.title,t.format_panel.heading.subSectionDefinition.subject]}}function Ve(t){return{...P(t,"axis_labels"),dualAxes:{...de(t,"dual_axes")},y:{...de(t,"y"),prefix:de(t,"y.prefix"),postfix:de(t,"y.postfix"),format:de(t,"y.format"),count:de(t,"y.count"),axisTitle:de(t,"y.axis_title")},yDual:{...de(t,"yDual"),prefix:de(t,"yDual.prefix"),postfix:de(t,"yDual.postfix"),format:de(t,"yDual.format"),count:de(t,"yDual.count"),axisTitle:de(t,"yDual.axis_title")},x:{...de(t,"x"),prefix:de(t,"x.prefix"),postfix:de(t,"x.postfix"),format:de(t,"x.format"),count:de(t,"x.count"),axisTitle:de(t,"x.axis_title")}}}function Un(t,e,o){return e?{...P(t,"chart_styles"),subSection:[t.format_panel.chart_styles?.subSectionDefinition.curve,t.format_panel.chart_styles?.subSectionDefinition.legend]}:o?{...P(t,"chart_styles"),subSection:[t.format_panel.chart_styles?.subSectionDefinition.stacked,t.format_panel.chart_styles?.subSectionDefinition.legend]}:{...P(t,"chart_styles"),subSection:[t.format_panel.chart_styles?.subSectionDefinition.legend]}}function Vo(t,e){return{...t.format_panel.stats_labels?.subSectionDefinition[e],namespace:e}}const ho=(t,e)=>{if(t?.func==="current"&&e)return t};var W0=(t=>(t.Maths="maths",t.IfStatement="ifStatement",t.Aggregates="aggregates",t))(W0||{});const Zu=t=>({title:se.title,description:se.description,servicesClass:"AreaChart",namespace:se.namespace,dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),displayTitle:e.displayTitle,dimension:Oe(e.dimension),timeDimension:e.timeDimension,displaySubject:e.displaySubject,viewId:k0(e.viewId),filter:V1(e.filter),order:ge(e.order,e.timeDimension),dataSetId:e.dataSetId,limit:e.limit,offset:e.offset,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,lineCurve:e.lineCurve,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),protectedByOrganisation:e.protectedByOrganisation,stacked:e.stacked,drilldown:e.drilldown,legend:e.legend,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,goalLines:e.goalLines,parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),headline:ho(e.headline,e.timeDimension),tags:e.tags??[]}),setAttributes:eg(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"areaChart",measure:[],displayTitle:"",dimension:[],timeDimension:null,displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,offset:0,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,lineCurve:"natural",conditionalFormattingRules:[],drilldown:[],legend:!0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},goalLines:void 0,axisTitles:void 0,headline:void 0,tags:[],...o}),createFeedback:xe,schema:jA(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"areaChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(se,"data_set"),P(se,"views"),{...P(se,"field_y_axis"),fieldFilterOptions:{forComponent:"areaChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(se,"field_x_axis"),fieldFilterOptions:{forComponent:"areaChart",onlyDimensions:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o)=>Nr(e,o),getValues:e=>Zo(e),maxAllowed:2,testId:"add-dimension"},P(se,"sort"),P(se,"filter"),P(se,"custom_metrics"),P(se,"limit")],formatPanelConfig:()=>[F1(se),{...P(se,"chart_styles"),subSection:[se.format_panel.chart_styles?.subSectionDefinition.stacked,se.format_panel.chart_styles?.subSectionDefinition.legend,se.format_panel.chart_styles?.subSectionDefinition.curve]},Ve(se),{...P(se,"conditional_formatting"),ruleType:"areaColor"},P(se,"goal_line"),P(se,"headline")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1}});var cz=(t=>(t.Forecast="Forecast",t.MovingAverage="Moving Average",t.Trend="Trend",t))(cz||{});const $_=m.object({type:m.string().valid(cz.Forecast),value:m.number()}),U_=m.object({type:m.string().valid(cz.Trend),value:m.number()}),G_=m.object({value:m.number().required()}),V_=m.object({type:m.string().valid(cz.MovingAverage),averages:m.array().items(G_).required()}),sz=()=>m.array().items(m.alternatives($_,U_,V_)),Ju=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),stacked:m.valid(!0,!1),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),type:m.valid("areaChartV2").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),lineCurve:Y6,conditionalFormattingRules:ht(t.queryEngineConfig),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1(),trends:sz()}),H_=t=>(e,o)=>{let n=I1(e,o,Ju(t));return n=xt(n),n},l2=(t,e,o)=>{let n=P0.cloneDeep(yr(e.fields,{onlyFieldTypes:["boolean","string"]})),b=P0.cloneDeep(yr(e.fields,{onlyFieldTypes:["date_time"]})),a=P0.cloneDeep(yr(e.fields,{onlyFieldTypes:["number"]})),O=null;return b[0]&&(O={field:b[0].id,truncate:"none"}),o(t,{protectedByOrganisation:!0,dimension:n.map(c=>({field:c.id,function:"none"})),measure:[...a].map(c=>({function:"none",field:c.id})),order:[],timeDimension:O})},Je={title:"Area chart",description:"Ideal for illustrating changes and trends over time with area graphs.",namespace:"area_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this area chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each area to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this area chart, what information do you want to see next?"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each area to represent? An example might be a `product category` field to represent each category as a area.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this area chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this area chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},curve:{type:"curve",title:"Area Style",description:"",namespace:"curve"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headarea",description:""},trends:{type:"trends",title:"Trend lines",description:"Specify a trend type for the area chart."},goal_line:{type:"goalLine",title:"Goal lines",description:""}}},ed=t=>({title:"Area chart",description:"Ideal for illustrating changes and trends over time with area graphs.",servicesClass:"AreaChart",namespace:"area_chart",dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,lineCurve:e.lineCurve,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),drilldown:e.drilldown,legend:e.legend,labels:e.labels,goalLines:e.goalLines,headline:ho(e.headline,e.timeDimension),parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,tags:e.tags??[],trends:e.trends??[],stacked:e.stacked}),setAttributes:H_(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"areaChartV2",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,lineCurve:"natural",conditionalFormattingRules:[],drilldown:[],legend:!0,labels:!1,goalLines:void 0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],trends:[],stacked:!1,...o}),createFeedback:xe,schema:Ju(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"lineChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(Je,"data_set"),P(Je,"views"),{...P(Je,"field_y_axis"),fieldFilterOptions:{forComponent:"lineChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(Je,"field_x_axis"),fieldFilterOptions:{forComponent:"lineChart",onlyDimensions:!0},preventDuplicates:!1,preSetPartialAttributes:e=>({dimension:[...e]}),getValues:e=>[...e.dimension],maxAllowed:2,testId:"add-dimension"},P(Je,"sort"),P(Je,"filter"),P(Je,"custom_metrics"),P(Je,"limit")],formatPanelConfig:()=>[F1(Je),{...P(Je,"chart_styles"),subSection:[Je.format_panel.chart_styles?.subSectionDefinition.legend,Je.format_panel.chart_styles?.subSectionDefinition.labels]},Ve(Je),{...P(Je,"conditional_formatting"),ruleType:"lineColor"},P(Je,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}});function GO(t){return m.array().items(m.object({field:m.string().required(),function:m.string().valid(...Object.keys(t.supportedAggregates),...Object.keys(t.supportedTimeTruncFunctions),"none")}))}const Gn=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),type:m.valid("barChart","horizontalBarChart","funnelChart").required(),conditionalFormattingRules:ht(t.queryEngineConfig),protectedFields:m.object({dimension:DA(t.queryEngineConfig),measure:lO(t.queryEngineConfig)}).unknown(!0),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1(),drilldownOptions:GO(t.queryEngineConfig)}),Y_=t=>(e,o)=>{let n=I1(e,o,Gn(t));return n=xt(n),n},_e={title:"Column chart",description:"Uses bars to compare different sets of data.",namespace:"bar_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bar chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each bar to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this bar chart, what information do you want to see next?"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each bar to represent? An example might be a `product category` field to represent each category as a bar.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this bar chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},headline:{type:"headline",title:"Headline",description:""},goal_line:{type:"goalLine",title:"Goal Lines",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""}}},td=t=>({title:_e.title,description:_e.description,servicesClass:"BarChart",namespace:_e.namespace,dump:e=>e,load:e=>({...e,measure:y1(e.measure),order:ge(e.order,e.timeDimension),filter:V1(e.filter),viewId:k0(e.viewId),dimension:Oe(e.dimension),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),parameters:ft(e.parameters),conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),headline:ho(e.headline,e.timeDimension),tags:e.tags??[],drilldownOptions:e.drilldownOptions}),setAttributes:Y_(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"barChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],stacked:void 0,dataSetId:e,limit:5e3,conditionalFormattingRules:[],protectedByOrganisation:void 0,protectedFields:void 0,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,drilldown:[],legend:!0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},goalLines:void 0,axisTitles:void 0,headline:void 0,tags:[],drilldownOptions:void 0,...o}),createFeedback:xe,schema:Gn(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"barChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(_e,"data_set"),P(_e,"views"),{...P(_e,"field_y_axis"),fieldFilterOptions:{forComponent:"barChart",onlyMeasures:!0},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(_e,"field_x_axis"),fieldFilterOptions:{forComponent:"barChart",onlyDimensions:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o)=>Nr(e,o),getValues:e=>Zo(e),maxAllowed:2,testId:"add-dimension"},P(_e,"sort"),P(_e,"filter"),{...P(_e,"drilldown"),options:{property:"drilldownOptions"}},P(_e,"custom_metrics"),P(_e,"limit")],formatPanelConfig:()=>[F1(_e),Un(_e,!1,!0),Ve(_e),{...P(_e,"conditional_formatting"),ruleType:"backgroundColor"},P(_e,"goal_line"),P(_e,"headline")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),od=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),type:m.valid("barChartV2").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),conditionalFormattingRules:ht(t.queryEngineConfig),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1(),isDualAxisEnabled:m.valid(!0,!1).optional()}),K_=t=>(e,o)=>{let n=I1(e,o,od(t));return(o.stacked||e.measure?.length!==2)&&(n.isDualAxisEnabled=!1),n=xt(n),n},$e={title:"Bar chart",description:"Ideal for illustrating changes and trends over time with bar graphs.",namespace:"bar_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bar chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each bar to measure?",callToAction:"Add metric"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each bar to represent? An example might be a `product category` field to represent each category as a bar.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this bar chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"},yDual:{title:"Y Dual Axis",description:"",namespace:"yDual"},"yDual.prefix":{title:"Prefix",description:"",namespace:"yDual.prefix"},"yDual.postfix":{title:"Postfix",description:"",namespace:"yDual.postfix"},"yDual.format":{title:"Format",description:"",namespace:"yDual.format"},"yDual.count":{title:"Label count",description:"",namespace:"yDual.count"},"yDual.axis_title":{title:"Title",description:"",namespace:"yDual.axis_title"},dual_axes:{title:"Enable Dual Axes"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headline",description:""},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}},rd=t=>({title:"Bar chart",description:"Ideal for illustrating changes and trends over time with bar graphs.",servicesClass:"BarChart",namespace:"bar_chart",dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,yDualAxisFormat:e.yDualAxisFormat,yDualAxisPostfix:e.yDualAxisPostfix,yDualAxisPrefix:e.yDualAxisPrefix,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),legend:e.legend,labels:e.labels,goalLines:e.goalLines,headline:ho(e.headline,e.timeDimension),parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),approxDualYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,tags:e.tags??[],stacked:e.stacked,isDualAxisEnabled:e.isDualAxisEnabled}),setAttributes:K_(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"barChartV2",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisFormat:null,xAxisPostfix:"",xAxisPrefix:"",yAxisFormat:null,yAxisPostfix:"",yAxisPrefix:"",yDualAxisFormat:null,yDualAxisPostfix:"",yDualAxisPrefix:"",conditionalFormattingRules:[],legend:!0,labels:!1,goalLines:void 0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],isDualAxisEnabled:!1,...o}),createFeedback:xe,schema:od(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"barChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P($e,"data_set"),P($e,"views"),{...P($e,"field_y_axis"),fieldFilterOptions:{forComponent:"barChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P($e,"field_x_axis"),fieldFilterOptions:{forComponent:"barChart",onlyDimensions:!0},preventDuplicates:!1,preSetPartialAttributes:e=>({dimension:[...e]}),getValues:e=>[...e.dimension],maxAllowed:2,testId:"add-dimension"},P($e,"sort"),P($e,"filter"),P($e,"custom_metrics"),P($e,"limit")],formatPanelConfig:()=>[F1($e),{...P($e,"chart_styles"),subSection:[$e.format_panel.chart_styles?.subSectionDefinition.stacked,$e.format_panel.chart_styles?.subSectionDefinition.legend,$e.format_panel.chart_styles?.subSectionDefinition.labels]},Ve($e),{...P($e,"conditional_formatting"),ruleType:"lineColor"},P($e,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),Q_=m.object({field:m.string().required(),function:m.valid("none").required()}),nd=t=>m.object({...Y1(t.attributesSchemaOptions),type:m.valid("basicTable").required(),measure:m.array().items(Q_).required(),dimension:m.array().max(0),order:m.array().items(uo(t.queryEngineConfig)),timeDimension:m.valid(null),limit:Vt().required(),offset:m.number().min(0),filter:c2(t.queryEngineConfig),prefixes:m.array().items(kA),exportNames:m.object(),numberFormat:m.object(),conditionalFormattingRules:ht(t.queryEngineConfig),dateTimeFormat:m.string(),protectedFields:m.object({measure:lO(t.queryEngineConfig)}).unknown(!0),sizing:PA,tags:H1(),hiddenFields:m.array().items(m.string())}),Ns=t=>(e,o)=>{let n=I1(e,o,nd(t));return n=Dn(n,[...n.measure]),n},Ce={title:"Basic table",description:"Displays data in a simple, straightforward table format.",namespace:"basic_table",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this basic table?"},views:{type:"views",title:"View",description:""},fields:{type:"fields",title:"Columns",description:"Select which values you want to see in this table"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this basic table."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},pagination:{type:"pagination",title:"Pagination",description:"Define the size for each page in the table"}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{type:"subject",title:"Subject",description:"",namespace:"subject"}}},format:{type:"format",title:"Format",description:"",subSectionDefinition:{time:{type:"time",title:"Time",description:"",namespace:"time"}}},prefixes:{type:"prefixes",title:"Prefixes",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},visual_format:{type:"visualFormat",title:"Visual Format",description:"Configure how group columns are visually represented"},kpi_summarisation:{type:"kpiSummarisation",title:"",description:"Show aggregate statistics above column headers"}}},id=[3,5,10,20,50,100,200],bd=t=>({title:Ce.title,description:Ce.description,servicesClass:"BasicTable",namespace:Ce.namespace,dump:e=>e,load:e=>({...e,measure:y1(e.measure),order:ge(e.order,e.timeDimension),filter:V1(e.filter),dimension:Oe(e.dimension),viewId:k0(e.viewId),conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),tags:e.tags??[],hiddenFields:e.hiddenFields??[]}),setAttributes:Ns(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:function(e,o){const n={type:"basicTable",measure:[],displayTitle:"",dimension:[],timeDimension:null,displaySubject:"",filter:[],order:[],tags:[],hiddenFields:[],dataSetId:e,viewId:k0(o?.viewId),protectedFields:void 0,limit:50,offset:0,conditionalFormattingRules:[],prefixes:[],dateTimeFormat:"DD MMMM YYYY, hh:mm",exportNames:{},numberFormat:{},sizing:{}};return Ns(t)(n,o||{})},schema:nd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),setFields:function(e,o){const n=[...o].map(b=>({field:b,function:"none"}));return Ns(t)(e,{measure:n})},setDateTimeFormat:function(e,o){return this.setAttributes(e,{dateTimeFormat:o})},isRunnable:e=>e.measure.length>0,autoGenerate(e){const n=[...yr(e.fields,{forComponent:"basicTable",onlyMeasures:!0,removeAggregateMaths:!0,removePercentage:!0})].map(b=>({field:b.id,function:"none"}));return this.init(e.id,{measure:n.slice(0,5)})},dataPanelConfig:()=>[P(Ce,"data_set"),P(Ce,"views"),P(Ce,"fields"),P(Ce,"sort"),{...P(Ce,"pagination"),options:id},P(Ce,"filter"),P(Ce,"custom_metrics")],formatPanelConfig:()=>[F1(Ce),{...P(Ce,"format"),subSection:[Ce.format_panel.format?.subSectionDefinition.time]},P(Ce,"prefixes"),{...P(Ce,"conditional_formatting"),ruleType:"backgroundColor"},P(Ce,"visual_format"),P(Ce,"kpi_summarisation")],supportedCustomFields:{percentages:!1,simpleMaths:!0,rules:!0,aggregateMaths:!1,roundedNumbers:!0,dateCalculations:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement]},supportedFeatures:{parameters:!1,colorGradient:!0}}),pd=t=>m.object({...Y1(t.attributesSchemaOptions),xMeasure:me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions).allow(null),yMeasure:me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions).allow(null),zMeasure:me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions).allow(null),dimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),order:m.array().items(uo(t.queryEngineConfig)),limit:Vt(),legend:m.valid(!0,!1),offset:m.number().min(0),filter:c2(t.queryEngineConfig),type:m.valid("bubbleChart").required(),timeDimension:m.valid(null),xAxisPrefix:m.string().allow(""),yAxisPrefix:m.string().allow(""),xAxisPostfix:m.string().allow(""),yAxisPostfix:m.string().allow(""),yAxisFormat:m.alternatives(m.string(),m.valid(null)),xAxisFormat:m.alternatives(m.string(),m.valid(null)),approxYAxisLabelCount:Ut,approxXAxisLabelCount:Ut,goalLines:Ht(),axisTitles:Wt(),tags:H1()}),Z_=t=>(e,o)=>{let n=I1(e,o,pd(t)),b=[];return n.xMeasure&&b.push(n.xMeasure),n.yMeasure&&b.push(n.yMeasure),n.zMeasure&&b.push(n.zMeasure),n.dimension.forEach(a=>{b.push({field:a.field,function:a.function})}),n=Dn(n,b),n},Ne={title:"Bubble chart",description:"Displays data points on a Cartesian plane, with a third metric corresponding to bubble size.",namespace:"bubble_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bubble chart?"},views:{type:"views",title:"View",description:""},labelled_metrics:{type:"labelledMetrics",title:"Metric - Y Axis",description:"",subSectionDefinition:{xAxis:{type:"metrics",title:"X axis",namespace:"metrics.xAxis"},yAxis:{type:"metrics",title:"Y axis",namespace:"metrics.yAxis"},zAxis:{type:"metrics",title:"Metric - Bubble Size",namespace:"metrics.zAxis"}}},field_grouping:{type:"fieldCollector",title:"Grouping",description:"What do you want each bubble to represent?",callToAction:"Add comparison"},filter:{type:"filter",title:"Filters",description:"Only include the information you want in this bubble chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Limit the number of data points shown on this bubble chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"},z:{title:"Metric - Bubble Size",description:"",namespace:"z"},"z.prefix":{title:"Prefix",description:"",namespace:"z.prefix"},"z.postfix":{title:"Postfix",description:"",namespace:"z.postfix"},"z.format":{title:"Format",description:"",namespace:"z.format"},"z.count":{title:"Label count",description:"",namespace:"z.count"},"z.axis_title":{title:"Title",description:"",namespace:"z.axis_title"}}},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}},ad=t=>({title:Ne.title,description:Ne.description,servicesClass:"BubbleChart",namespace:Ne.namespace,dump:e=>e,load:e=>({type:e.type,xMeasure:y1(e.xMeasure?[e.xMeasure]:[])[0]||null,yMeasure:y1(e.yMeasure?[e.yMeasure]:[])[0]||null,zMeasure:y1(e.zMeasure?[e.zMeasure]:[])[0]||null,dimension:Oe(e.dimension),viewId:k0(e.viewId),timeDimension:e.timeDimension,displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,filter:V1(e.filter),order:ge(e.order,e.timeDimension),dataSetId:e.dataSetId,limit:e.limit,legend:e.legend,xAxisFormat:e.xAxisFormat,yAxisFormat:e.yAxisFormat,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),goalLines:e.goalLines,axisTitles:e.axisTitles,tags:e.tags??[]}),setAttributes:Z_(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"bubbleChart",xMeasure:null,yMeasure:null,zMeasure:null,dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,legend:!0,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",goalLines:void 0,axisTitles:void 0,tags:[],...o}),createFeedback:xe,schema:pd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>!!e.xMeasure&&!!e.yMeasure&&!!e.zMeasure&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"bubbleChart");return this.init(e.id,{xMeasure:o[0],yMeasure:o[1],dimension:n})},dataPanelConfig:()=>[P(Ne,"data_set"),P(Ne,"views"),{...P(Ne,"labelled_metrics"),subSection:[{...Ne.data_panel.labelled_metrics?.subSectionDefinition.xAxis,propKey:"xMeasure",allowsMultiple:!1},{...Ne.data_panel.labelled_metrics?.subSectionDefinition.yAxis,propKey:"yMeasure",allowsMultiple:!1},{...Ne.data_panel.labelled_metrics?.subSectionDefinition.zAxis,propKey:"zMeasure",allowsMultiple:!1}]},{...P(Ne,"field_grouping"),fieldFilterOptions:{onlyDimensions:!0,onlyFieldTypes:["boolean","number","string"],removePercentage:!0,removeSimpleMaths:!0,removeAggregateMaths:!0},maxAllowed:1,preSetPartialAttributes:e=>({dimension:e}),getValues:e=>e.dimension,testId:"add-dimension"},P(Ne,"filter"),P(Ne,"custom_metrics"),P(Ne,"limit")],formatPanelConfig:()=>[F1(Ne),{...P(Ne,"chart_styles"),subSection:[Ne.format_panel.chart_styles?.subSectionDefinition.legend]},Ve(Ne),P(Ne,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!1}}),Md=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),zMeasure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)).required().description("A list of metrics that are to be shown. For example the `count` of a specific field in your data set."),xMeasure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)).required().description("A list of metrics that are to be shown. For example the `count` of a specific field in your data set."),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),type:m.valid("bubbleChartV2").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),lineCurve:UM,quadrants:IA(),conditionalFormattingRules:ht(t.queryEngineConfig),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1(),trends:sz()}),J_=t=>(e,o)=>{let n=I1(e,o,Md(t));return n=xt(n),n},Ee={title:"Bubble chart",description:"Displays data points on a Cartesian plane, with a third metric corresponding to bubble size.",namespace:"bubble_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bubble chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each bubble to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this line chart, what information do you want to see next?"},field_x_axis:{type:"fieldCollector",title:"Metric - X Axis",description:"What do you want each line to represent? An example might be a `product category` field to represent each category as a line.",callToAction:"Add metric"},field_z_axis:{type:"fieldCollector",title:"Metric - Bubble Size",description:"What do you want each bubble to represent? An example might be a `product category` field to represent each category as a bubble.",callToAction:"Add metric"},field_grouping:{type:"fieldCollector",title:"Grouping - Bubble series",description:"How do you want to group each bubble?",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this bubble chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bubble chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{curve:{type:"curve",title:"Line Style",description:"",namespace:"curve"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},quadrants:{type:"quadrants",title:"",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headline",description:""},trends:{type:"trends",title:"Trend lines",description:"Specify a trend type for the line chart."},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}},zd=t=>({title:"Bubble chart",description:Ee.description,servicesClass:"BubbleChartV2",namespace:"bubble_chart",dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),zMeasure:y1(e.measure),xMeasure:y1(e.xMeasure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,lineCurve:e.lineCurve,quadrants:e.quadrants,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),drilldown:e.drilldown,legend:e.legend,goalLines:e.goalLines,headline:ho(e.headline,e.timeDimension),parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,tags:e.tags??[],trends:e.trends??[]}),setAttributes:J_(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"bubbleChartV2",measure:[],zMeasure:[],xMeasure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,lineCurve:"natural",quadrants:void 0,conditionalFormattingRules:[],drilldown:[],legend:!0,goalLines:void 0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],trends:[],...o}),createFeedback:xe,schema:Md(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0&&e.xMeasure.length>0&&e.zMeasure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"bubbleChartV2");return this.init(e.id,{measure:[o[0]],dimension:n,zMeasure:[o[0]],xMeasure:[o[0]]})},dataPanelConfig:()=>[P(Ee,"data_set"),P(Ee,"views"),{...P(Ee,"field_y_axis"),fieldFilterOptions:{forComponent:"bubbleChartV2"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,maxAllowed:1,testId:"metric-input",propKey:"yMeasure"},{...P(Ee,"field_x_axis"),fieldFilterOptions:{forComponent:"bubbleChartV2",onlyMeasures:!0,onlyDimensions:!1},preSetPartialAttributes:e=>({xMeasure:[...e]}),getValues:e=>[...e.xMeasure],maxAllowed:1,testId:"x-metric-axis"},{...P(Ee,"field_z_axis"),fieldFilterOptions:{forComponent:"bubbleChartV2"},preSetPartialAttributes:e=>({zMeasure:[...e]}),getValues:e=>e.zMeasure,testId:"metric-input-z",maxAllowed:1,propKey:"zMeasure"},{...P(Ee,"field_grouping"),fieldFilterOptions:{forComponent:"bubbleChartV2",onlyDimensions:!0},preSetPartialAttributes:e=>({dimension:[...e]}),getValues:e=>[...e.dimension],maxAllowed:1,testId:"bubble-dimension"},P(Ee,"sort"),P(Ee,"filter"),P(Ee,"custom_metrics"),P(Ee,"limit")],formatPanelConfig:()=>[F1(Ee),Un(Ee,!0,!1),Ve(Ee),P(Ee,"quadrants"),{...P(Ee,"conditional_formatting"),ruleType:"lineColor"},P(Ee,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),cd=t=>m.object({...Y1(t.attributesSchemaOptions),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),barMeasure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),lineMeasure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),barDimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),lineDimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),order:m.array().items(uo(t.queryEngineConfig)),timeDimension:m.alternatives(In(t.queryEngineConfig.supportedTimeTruncFunctions),m.valid(null)),limit:Vt(),offset:m.number().min(0),filter:c2(t.queryEngineConfig),type:m.valid("comboChart").required(),xAxisPrefix:m.string().allow(""),yAxisPrefix:m.string().allow(""),xAxisPostfix:m.string().allow(""),yAxisPostfix:m.string().allow(""),yAxisFormat:m.alternatives(m.string(),m.valid(null)),xAxisFormat:m.alternatives(m.string(),m.valid(null)),approxYAxisLabelCount:Ut,approxXAxisLabelCount:Ut,goalLines:Ht(),conditionalFormattingRules:m.object({bar:m.array().items(eb(t.queryEngineConfig)),line:m.array().items(eb(t.queryEngineConfig))}),axisTitles:Wt(),tags:H1()}),eN=t=>(e,o)=>{let n=I1(e,o,cd(t)),b=[...n.lineMeasure,...n.barMeasure];return[...n.lineDimension,...n.barDimension].forEach(a=>{b.push({field:a.field,function:a.function})}),n.timeDimension&&b.push({field:n.timeDimension.field,function:n.timeDimension.truncate}),n=Dn(n,b),n};function sd(t,e){return{...t,lineMeasure:y1(t.lineMeasure),barMeasure:y1(t.barMeasure),order:ge(t.order,t.timeDimension||null),filter:V1(t.filter),lineDimension:Oe(t.lineDimension||t.dimension||[]),barDimension:Oe(t.barDimension||t.dimension||[]),viewId:k0(t.viewId),approxXAxisLabelCount:l1(t.approxXAxisLabelCount),approxYAxisLabelCount:l1(t.approxYAxisLabelCount),conditionalFormattingRules:{bar:wt(e,t.conditionalFormattingRules?.bar),line:wt(e,t.conditionalFormattingRules?.line)},tags:t.tags??[]}}const ee={title:"Combo chart",description:"A versatile component that combines different chart types.",namespace:"combo_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this combo chart?"},views:{type:"views",title:"View",description:""},labelled_metrics:{type:"labelledMetrics",title:"Metric - Y Axis",description:"What do you want each line and bar to measure?",subSectionDefinition:{line:{type:"metrics",title:"Line",namespace:"metrics.line"},bar:{type:"metrics",title:"Bar",namespace:"metrics.bar"}}},combo_chart_dimension:{type:"comboChartDimension",title:"Grouping - X Axis",description:""},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this combo chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},goal_line:{type:"goalLine",title:"Goal Lines",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:"",subSectionDefinition:{bar:{title:"Bar",namespace:"bar"},line:{title:"Line",namespace:"line"}}}}},Od=t=>({title:ee.title,description:ee.description,servicesClass:"ComboChart",namespace:ee.namespace,dump:e=>e,load:e=>sd(e,t.queryEngineConfig),setAttributes:eN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"comboChart",barMeasure:[],lineMeasure:[],lineDimension:[],barDimension:[],timeDimension:null,displayTitle:"",displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",protectedByOrganisation:void 0,xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,legend:!0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",goalLines:void 0,conditionalFormattingRules:void 0,axisTitles:void 0,tags:[],...o}),createFeedback:xe,schema:cd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.lineMeasure.length>0||e.barMeasure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"comboChart");return this.init(e.id,{barMeasure:[o[0]],lineMeasure:[o[1]||o[0]],barDimension:n,lineDimension:n})},dataPanelConfig:()=>[P(ee,"data_set"),P(ee,"views"),{...P(ee,"labelled_metrics"),subSection:[{...ee.data_panel.labelled_metrics?.subSectionDefinition.line,propKey:"lineMeasure",allowsMultiple:!0},{...ee.data_panel.labelled_metrics?.subSectionDefinition.bar,propKey:"barMeasure",allowsMultiple:!0}]},P(ee,"combo_chart_dimension"),P(ee,"sort"),P(ee,"filter"),P(ee,"custom_metrics"),P(ee,"limit")],formatPanelConfig:()=>[F1(ee),Un(ee,!1,!0),Ve(ee),{...P(ee,"conditional_formatting"),ruleType:"backgroundColor",subSection:[{title:ee.format_panel.conditional_formatting?.subSectionDefinition?.bar.title??"",namespace:ee.format_panel.conditional_formatting?.subSectionDefinition?.bar.namespace,propKey:"bar"},{title:ee.format_panel.conditional_formatting?.subSectionDefinition?.line.title??"",namespace:ee.format_panel.conditional_formatting?.subSectionDefinition?.line.namespace,propKey:"line"}]},P(ee,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!1}}),ld=t=>m.object({...Y1(t.attributesSchemaOptions),stacked:m.valid(!0,!1),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),barMeasure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),lineMeasure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),barDimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),lineDimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),order:m.array().items(uo(t.queryEngineConfig)),timeDimension:m.alternatives(In(t.queryEngineConfig.supportedTimeTruncFunctions),m.valid(null)),limit:Vt(),offset:m.number().min(0),filter:c2(t.queryEngineConfig),type:m.valid("comboChartV2").required(),xAxisPrefix:m.string().allow(""),yAxisPrefix:m.string().allow(""),xAxisPostfix:m.string().allow(""),yAxisPostfix:m.string().allow(""),yAxisFormat:m.alternatives(m.string(),m.valid(null)),yDualAxisPrefix:m.string().allow("").optional(),yDualAxisPostfix:m.string().allow("").optional(),yDualAxisFormat:m.alternatives(m.string(),m.valid(null)).optional(),xAxisFormat:m.alternatives(m.string(),m.valid(null)),approxYAxisLabelCount:Ut,approxDualYAxisLabelCount:Ut.optional(),approxXAxisLabelCount:Ut,goalLines:Ht(),conditionalFormattingRules:m.object({bar:m.array().items(eb(t.queryEngineConfig)),line:m.array().items(eb(t.queryEngineConfig))}),axisTitles:Wt(),tags:H1(),isDualAxisEnabled:m.valid(!0,!1).optional()}),tN=t=>(e,o)=>{let n=I1(e,o,ld(t)),b=[...n.lineMeasure,...n.barMeasure];return[...n.lineDimension,...n.barDimension].forEach(a=>{b.push({field:a.field,function:a.function})}),n.timeDimension&&b.push({field:n.timeDimension.field,function:n.timeDimension.truncate}),n=Dn(n,b),(e.barMeasure?.length!=1||e.lineMeasure?.length!=1)&&(n.isDualAxisEnabled=!1),n},X1={title:"Combo chart",description:"A versatile component that combines different chart types.",namespace:"combo_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this combo chart?"},views:{type:"views",title:"View",description:""},labelled_metrics:{type:"labelledMetrics",title:"Metric - Y Axis",description:"What do you want each line and bar to measure?",subSectionDefinition:{line:{type:"metrics",title:"Line",namespace:"metrics.line"},bar:{type:"metrics",title:"Bar",namespace:"metrics.bar"}}},combo_chart_dimension:{type:"comboChartDimension",title:"Grouping - X Axis",description:""},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this combo chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"},yDual:{title:"Y Dual Axis",description:"",namespace:"yDual"},"yDual.prefix":{title:"Prefix",description:"",namespace:"yDual.prefix"},"yDual.postfix":{title:"Postfix",description:"",namespace:"yDual.postfix"},"yDual.format":{title:"Format",description:"",namespace:"yDual.format"},"yDual.count":{title:"Label count",description:"",namespace:"yDual.count"},"yDual.axis_title":{title:"Title",description:"",namespace:"yDual.axis_title"},dual_axes:{title:"Enable Dual Axes"}}},goal_line:{type:"goalLine",title:"Goal Lines",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:"",subSectionDefinition:{bar:{title:"Bar",namespace:"bar"},line:{title:"Line",namespace:"line"}}}}},Ad=t=>({title:X1.title,description:X1.description,servicesClass:"ComboChartV2",namespace:X1.namespace,dump:e=>e,load:e=>sd(e,t.queryEngineConfig),setAttributes:tN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"comboChartV2",barMeasure:[],lineMeasure:[],lineDimension:[],barDimension:[],timeDimension:null,displayTitle:"",displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",protectedByOrganisation:void 0,xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,yDualAxisPostfix:"",yDualAxisPrefix:"",yDualAxisFormat:null,xAxisFormat:null,legend:!0,labels:!1,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",approxDualYAxisLabelCount:"auto",goalLines:void 0,conditionalFormattingRules:void 0,axisTitles:void 0,tags:[],isDualAxisEnabled:!1,...o}),createFeedback:xe,schema:ld(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.lineMeasure.length>0||e.barMeasure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"comboChart");return this.init(e.id,{barMeasure:[o[0]],lineMeasure:[o[1]||o[0]],barDimension:n,lineDimension:n})},dataPanelConfig:()=>[P(X1,"data_set"),P(X1,"views"),{...P(X1,"labelled_metrics"),subSection:[{...X1.data_panel.labelled_metrics?.subSectionDefinition.line,propKey:"lineMeasure",allowsMultiple:!0},{...X1.data_panel.labelled_metrics?.subSectionDefinition.bar,propKey:"barMeasure",allowsMultiple:!0}]},P(X1,"combo_chart_dimension"),P(X1,"sort"),P(X1,"filter"),P(X1,"custom_metrics"),P(X1,"limit")],formatPanelConfig:()=>[F1(X1),{...P(X1,"chart_styles"),subSection:[X1.format_panel.chart_styles?.subSectionDefinition.stacked,X1.format_panel.chart_styles?.subSectionDefinition.legend,X1.format_panel.chart_styles?.subSectionDefinition.labels]},Ve(X1),{...P(X1,"conditional_formatting"),ruleType:"backgroundColor",subSection:[{title:X1.format_panel.conditional_formatting?.subSectionDefinition?.bar.title??"",namespace:X1.format_panel.conditional_formatting?.subSectionDefinition?.bar.namespace,propKey:"bar"},{title:X1.format_panel.conditional_formatting?.subSectionDefinition?.line.title??"",namespace:X1.format_panel.conditional_formatting?.subSectionDefinition?.line.namespace,propKey:"line"}]},P(X1,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!1}}),Cl=t=>m.object({...Y1(t.attributesSchemaOptions),type:m.valid("custom").required(),customViewId:m.string().required(),tags:H1()}),vn={title:"Progress",description:"Used to show progress towards goals, completion of tasks, or as indicators of performance metrics.",namespace:"progress",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this progress?"},views:{type:"views",title:"View",description:""}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}}}},ud=t=>({title:vn.title,description:vn.description,namespace:vn.namespace,servicesClass:"Custom",dump:e=>e,load:e=>({type:"custom",viewId:k0(e.viewId),customViewId:e.customViewId,displayTitle:e.displayTitle,displaySubject:e.displaySubject,dataSetId:e.dataSetId,tags:e.tags??[],protectedByOrganisation:e.protectedByOrganisation}),setAttributes:(e,o)=>I1(e,o,Cl(t)),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"custom",viewId:k0(o?.viewId),customViewId:o?.customViewId||"",dataSetId:e,displaySubject:"",displayTitle:"",tags:[],protectedByOrganisation:void 0}),schema:Cl(t),removeField(e,o){return e},isRunnable:()=>!0,autoGenerate(e){return this.init(e.id)},dataPanelConfig:()=>[P(vn,"data_set"),P(vn,"views")],formatPanelConfig:()=>[F1(vn)],supportedCustomFields:{percentages:!1,simpleMaths:!1,rules:!1,aggregateMaths:!1,roundedNumbers:!1,dateCalculations:!1,conditional:!1,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{colorGradient:!1,parameters:!1}}),dd=t=>m.object({...Y1(t.attributesSchemaOptions),type:m.valid("dataTable").required(),measure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)).required(),dimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions).required(),order:m.array().items(uo(t.queryEngineConfig)),timeDimension:m.alternatives(In(t.queryEngineConfig.supportedTimeTruncFunctions),m.valid(null)),limit:Vt().required(),offset:m.number().min(0),filter:c2(t.queryEngineConfig),prefixes:m.array().items(kA),exportNames:m.object(),numberFormat:m.object(),conditionalFormattingRules:ht(t.queryEngineConfig),dateTimeFormat:m.string(),protectedFields:m.object({dimension:DA(t.queryEngineConfig),measure:lO(t.queryEngineConfig)}).unknown(!0),sizing:PA,tags:H1(),hiddenFields:m.array().items(m.string()),tableDrilldown:m.array().items(m.object({subsetDimension:m.string().required().description("The ID of the field in the data set to drill down by.")})).description("Drilldown configuration for a pivot table."),summarizeKPIs:m.boolean().default(!1).description("Enable/disable KPI summarisation above column headers."),visualFormatColumns:m.array().items(m.string().min(1)).default([]).sparse(!1).description("Array of column names to display as horizontal bars."),results:m.array().items(m.object({content:m.array().required(),fields:m.array().items(m.object({id:m.string().required(),publicName:m.string().required(),dataType:m.string().required(),hidden:m.boolean(),fieldId:m.string().required(),function:m.string().required(),outputDataType:m.string().required()}).unknown(!0)).required(),hasMoreResults:m.alternatives([m.boolean(),m.valid(null)])}).unknown(!0)).description("Query results data structure containing fields and content.")}),oN=t=>(e,o)=>{let n=I1(e,o,dd(t));const b=e.dimension.filter(c=>c.pivot==="y").length,a=o.dimension?.filter(c=>c.pivot==="y").length;return(a===void 0?!1:b!==a)&&!o.visualFormatColumns&&(n.visualFormatColumns=[]),n=xt(n),n},fe={title:"Pivot table",description:"Transforms data into a table with dynamic rows and columns.",namespace:"pivot_table",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this data table?"},views:{type:"views",title:"View",description:""},field_columns:{type:"fieldCollector",title:"Group columns",callToAction:"Add group column",description:""},field_rows:{type:"fieldCollector",title:"Group rows",description:"Which field do you want to group each row by? An example might be an employee ID or geographical location",callToAction:"Add group row"},drilldown:{type:"drilldown",title:"Drilldown",description:"Drilldowns in a pivot table reveals underlying data contributing to summarized figures upon clicking."},field_metrics:{type:"fieldCollector",title:"Metrics",description:"Select the columns to show in the data table",callToAction:"Add metric"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this data table."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},pagination:{type:"pagination",title:"Pagination",description:"Define the size for each page in the table"}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},kpi_summarisation:{type:"kpiSummarisation",title:"",description:"Show aggregate statistics above each column."},visual_format:{type:"visualFormat",title:"Visual Format",description:"Configure how the group column is displayed visually."},format:{type:"format",title:"Format",description:"",subSectionDefinition:{time:{type:"time",title:"Time",description:"",namespace:"time"}}},prefixes:{type:"prefixes",title:"Prefixes",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""}}},wa=(t,e)=>t.filter(o=>o.pivot==e),rN=t=>t.map(e=>({...e,pivot:e.pivot?e.pivot:"x"})),fd=t=>({title:fe.title,description:fe.description,servicesClass:"PivotTable",namespace:fe.namespace,dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension||null),displayTitle:e.displayTitle,dimension:rN(Zo({timeDimension:e.timeDimension,dimension:Oe(e.dimension)})),displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,protectedFields:e.protectedFields,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,offset:e.offset,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),dateTimeFormat:e.dateTimeFormat,prefixes:e.prefixes,exportNames:e.exportNames,numberFormat:e.numberFormat,sizing:e.sizing,tableDrilldown:k_(e.tableDrilldown),tags:e.tags??[],hiddenFields:e.hiddenFields??[],summarizeKPIs:e.summarizeKPIs??!1,visualFormatColumns:e.visualFormatColumns??[]}),setAttributes:oN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"dataTable",measure:[],displayTitle:"",dimension:[],protectedByOrganisation:void 0,displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:50,offset:0,conditionalFormattingRules:[],protectedFields:void 0,prefixes:[],dateTimeFormat:"DD MMMM YYYY, hh:mm",exportNames:{},numberFormat:{},sizing:{},tableDrilldown:[],tags:[],hiddenFields:[],summarizeKPIs:!1,visualFormatColumns:[],...o}),schema:dd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"dataTable");return this.init(e.id,{measure:o.slice(0,5),dimension:n})},dataPanelConfig:()=>[P(fe,"data_set"),P(fe,"views"),{...P(fe,"field_columns"),fieldFilterOptions:{onlyFieldTypes:["boolean","number","string","date_time"],onlyDimensions:!0,removePercentage:!0,removeSimpleMaths:!0,removeAggregateMaths:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o,n)=>({dimension:[...e.map(b=>({...b,pivot:"y"})),...wa(n.dimension,"x")]}),getValues:e=>wa(e.dimension,"y"),testId:"add-pivot-dimension"},{...P(fe,"field_rows"),fieldFilterOptions:{onlyFieldTypes:["boolean","number","string","date_time"],onlyDimensions:!0,removePercentage:!0,removeSimpleMaths:!0,removeAggregateMaths:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o,n)=>({dimension:[...e.map(b=>({...b,pivot:"x"})),...wa(n.dimension,"y")]}),getValues:e=>wa(e.dimension,"x"),testId:"add-dimension"},{...P(fe,"field_metrics"),fieldFilterOptions:{forComponent:"dataTable"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},P(fe,"sort"),{...P(fe,"pagination"),options:id},P(fe,"filter"),P(fe,"custom_metrics")],formatPanelConfig:()=>[F1(fe),P(fe,"kpi_summarisation"),P(fe,"visual_format"),{...P(fe,"format"),subSection:[fe.format_panel.format?.subSectionDefinition.time]},P(fe,"prefixes"),{...P(fe,"conditional_formatting"),ruleType:"backgroundColor"}],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!0}}),nN=t=>(e,o)=>{let n=I1(e,o,Gn(t));return n=xt(n),n},Te={title:"Funnel chart",description:"Track conversion between stages of a process.",namespace:"funnel_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bar chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each bar to measure?",callToAction:"Add metric"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each bar to represent? An example might be a `product category` field to represent each category as a bar.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this bar chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},headline:{type:"headline",title:"Headline",description:""},goal_line:{type:"goalLine",title:"Goal Lines",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""}}},qd=t=>({title:Te.title,description:Te.description,servicesClass:"FunnelChart",namespace:Te.namespace,dump:e=>e,load:e=>({...e,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),viewId:k0(e.viewId),filter:V1(e.filter),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),tags:e.tags??[],labels:e.labels??!1,parameters:ft(e.parameters)}),setAttributes:nN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"funnelChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",viewId:k0(o?.viewId),filter:[],parameters:{},order:[],dataSetId:e,limit:5e3,conditionalFormattingRules:[],protectedByOrganisation:void 0,protectedFields:void 0,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,legend:!0,labels:!1,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",axisTitles:void 0,tags:[],...o}),createFeedback:xe,schema:Gn(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"funnelChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(Te,"data_set"),P(Te,"views"),{...P(Te,"field_y_axis"),fieldFilterOptions:{forComponent:"funnelChart"},preSetPartialAttributes:e=>({measure:e}),allowsMultiple:!1,maxAllowed:1,getValues:e=>e.measure,testId:"metric-input"},{...P(Te,"field_x_axis"),fieldFilterOptions:{forComponent:"funnelChart",onlyDimensions:!0},allowsMultiple:!1,preventDuplicates:!0,preSetPartialAttributes:(e,o)=>Nr(e,o),getValues:e=>Zo(e),maxAllowed:1,testId:"add-dimension"},P(Te,"sort"),P(Te,"filter"),P(Te,"custom_metrics"),P(Te,"limit")],formatPanelConfig:()=>[F1(Te),{...P(Te,"chart_styles"),subSection:[Te.format_panel.chart_styles?.subSectionDefinition.legend,Te.format_panel.chart_styles?.subSectionDefinition.labels]},Ve(Te),{...P(Te,"conditional_formatting"),ruleType:"backgroundColor"},P(Te,"headline")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),iN=t=>(e,o)=>{let n=I1(e,o,Gn(t));return n=xt(n),n},De={title:"Horizontal bar chart",description:"Similar to a BarChart but with horizontal bars.",namespace:"horizontal_bar_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bar chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each bar to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this bar chart, what information do you want to see next?"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each bar to represent? An example might be a `product category` field to represent each category as a bar.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this bar chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},headline:{type:"headline",title:"Headline",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""}}},Wd=t=>({title:De.title,description:De.description,servicesClass:"HorizontalBarChart",namespace:De.namespace,dump:e=>e,load:e=>({...e,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),viewId:k0(e.viewId),filter:V1(e.filter),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),tags:e.tags??[],parameters:ft(e.parameters)}),setAttributes:iN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"horizontalBarChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,conditionalFormattingRules:[],protectedByOrganisation:void 0,protectedFields:void 0,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,legend:!0,parameters:{},drilldown:[],approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",axisTitles:void 0,tags:[],drilldownOptions:void 0,...o}),createFeedback:xe,schema:Gn(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"horizontalBarChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(De,"data_set"),P(De,"views"),{...P(De,"field_y_axis"),fieldFilterOptions:{forComponent:"horizontalBarChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(De,"field_x_axis"),fieldFilterOptions:{forComponent:"horizontalBarChart",onlyDimensions:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o)=>Nr(e,o),getValues:e=>Zo(e),maxAllowed:2,testId:"add-dimension"},P(De,"sort"),P(De,"filter"),{...P(De,"drilldown"),options:{property:"drilldownOptions"}},P(De,"custom_metrics"),P(De,"limit")],formatPanelConfig:()=>[F1(De),Un(De,!1,!0),Ve(De),{...P(De,"conditional_formatting"),ruleType:"backgroundColor"},P(De,"headline")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),hd=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),type:m.valid("horizontalBarChartV2").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),conditionalFormattingRules:ht(t.queryEngineConfig),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1()}),qe={title:"Horizontal bar chart",description:"Ideal for illustrating changes and trends over time with bar graphs.",namespace:"horizontal_bar_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bar chart?"},views:{type:"views",title:"View",description:""},field_x_axis:{type:"fieldCollector",title:"Metric - X Axis",description:"What do you want each bar to measure?",callToAction:"Add metric"},field_y_axis:{type:"fieldCollector",title:"Grouping - Y Axis",description:"What do you want each bar to represent? An example might be a `product category` field to represent each category as a bar.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this bar chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headline",description:""},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}},bN=t=>(e,o)=>{let n=I1(e,o,hd(t));return n=xt(n),n},md=t=>({title:qe.title,description:qe.description,servicesClass:"HorizontalBarChart",namespace:qe.namespace,dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),legend:e.legend,labels:e.labels,goalLines:e.goalLines,headline:ho(e.headline,e.timeDimension),parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,tags:e.tags??[],stacked:e.stacked}),setAttributes:bN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"horizontalBarChartV2",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,conditionalFormattingRules:[],legend:!0,labels:!1,goalLines:void 0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],...o}),createFeedback:xe,schema:hd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"barChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(qe,"data_set"),P(qe,"views"),{...P(qe,"field_x_axis"),fieldFilterOptions:{forComponent:"horizontalBarChartV2"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(qe,"field_y_axis"),fieldFilterOptions:{forComponent:"horizontalBarChartV2",onlyDimensions:!0},preventDuplicates:!1,preSetPartialAttributes:e=>({dimension:[...e]}),getValues:e=>[...e.dimension],maxAllowed:2,testId:"add-dimension"},P(qe,"sort"),P(qe,"filter"),P(qe,"custom_metrics"),P(qe,"limit")],formatPanelConfig:()=>[F1(qe),{...P(qe,"chart_styles"),subSection:[qe.format_panel.chart_styles?.subSectionDefinition.stacked,qe.format_panel.chart_styles?.subSectionDefinition.legend,qe.format_panel.chart_styles?.subSectionDefinition.labels],labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}},Ve(qe),{...P(qe,"conditional_formatting"),ruleType:"lineColor"},P(qe,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),gd=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),type:m.valid("lineChart").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),lineCurve:UM,conditionalFormattingRules:ht(t.queryEngineConfig),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1(),trends:sz()}),pN=t=>(e,o)=>{let n=I1(e,o,gd(t));return n=xt(n),n},et={title:"Line chart",description:"Ideal for illustrating changes and trends over time with line graphs.",namespace:"line_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this line chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each line to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this line chart, what information do you want to see next?"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each line to represent? An example might be a `product category` field to represent each category as a line.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this line chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this line chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{curve:{type:"curve",title:"Line Style",description:"",namespace:"curve"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headline",description:""},trends:{type:"trends",title:"Trend lines",description:"Specify a trend type for the line chart."},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}},yd=t=>({title:"Line chart",description:"Ideal for illustrating changes and trends over time with line graphs.",servicesClass:"LineChart",namespace:"line_chart",dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),timeDimension:e.timeDimension,displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,lineCurve:e.lineCurve,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),drilldown:e.drilldown,legend:e.legend,goalLines:e.goalLines,headline:ho(e.headline,e.timeDimension),parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,tags:e.tags??[],trends:e.trends??[]}),setAttributes:pN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"lineChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,lineCurve:"natural",conditionalFormattingRules:[],drilldown:[],legend:!0,goalLines:void 0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],trends:[],...o}),createFeedback:xe,schema:gd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"lineChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(et,"data_set"),P(et,"views"),{...P(et,"field_y_axis"),fieldFilterOptions:{forComponent:"lineChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(et,"field_x_axis"),fieldFilterOptions:{forComponent:"lineChart",onlyDimensions:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o)=>Nr(e,o),getValues:e=>Zo(e),maxAllowed:2,testId:"add-dimension"},P(et,"sort"),P(et,"filter"),P(et,"custom_metrics"),P(et,"limit")],formatPanelConfig:()=>[F1(et),Un(et,!0,!1),Ve(et),{...P(et,"conditional_formatting"),ruleType:"lineColor"},P(et,"goal_line"),P(et,"trends"),P(et,"headline")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),Rd=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),type:m.valid("lineChartV2").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),lineCurve:UM,conditionalFormattingRules:ht(t.queryEngineConfig),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1(),trends:sz(),isDualAxisEnabled:m.valid(!0,!1).optional()}),aN=t=>(e,o)=>{let n=I1(e,o,Rd(t));return e.measure?.length!==2&&(n.isDualAxisEnabled=!1),n=xt(n),n},tt={title:"Line chart",description:"Ideal for illustrating changes and trends over time with line graphs.",namespace:"line_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this line chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each line to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this line chart, what information do you want to see next?"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each line to represent? An example might be a `product category` field to represent each category as a line.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this line chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this line chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{curve:{type:"curve",title:"Line Style",description:"",namespace:"curve"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"},yDual:{title:"Y Dual Axis",description:"",namespace:"yDual"},"yDual.prefix":{title:"Prefix",description:"",namespace:"yDual.prefix"},"yDual.postfix":{title:"Postfix",description:"",namespace:"yDual.postfix"},"yDual.format":{title:"Format",description:"",namespace:"yDual.format"},"yDual.count":{title:"Label count",description:"",namespace:"yDual.count"},"yDual.axis_title":{title:"Title",description:"",namespace:"yDual.axis_title"},dual_axes:{title:"Enable Dual Axes"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headline",description:""},trends:{type:"trends",title:"Trend lines",description:"Specify a trend type for the line chart."},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}},Ld=t=>({title:"Line chart",description:"Ideal for illustrating changes and trends over time with line graphs.",servicesClass:"LineChart",namespace:"line_chart",dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisFormat:e.xAxisFormat,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisFormat:e.yAxisFormat,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yDualAxisFormat:e.yDualAxisFormat,yDualAxisPostfix:e.yDualAxisPostfix,yDualAxisPrefix:e.yDualAxisPrefix,lineCurve:e.lineCurve,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),drilldown:e.drilldown,legend:e.legend,labels:e.labels,goalLines:e.goalLines,headline:ho(e.headline,e.timeDimension),parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),approxDualYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,tags:e.tags??[],trends:e.trends??[],isDualAxisEnabled:e.isDualAxisEnabled??!1}),setAttributes:aN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"lineChartV2",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisFormat:null,xAxisPostfix:"",xAxisPrefix:"",yAxisFormat:null,yAxisPostfix:"",yAxisPrefix:"",yDualAxisFormat:null,yDualAxisPostfix:"",yDualAxisPrefix:"",lineCurve:"natural",conditionalFormattingRules:[],drilldown:[],legend:!0,labels:!1,goalLines:void 0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],trends:[],isDualAxisEnabled:!1,...o}),createFeedback:xe,schema:Rd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"lineChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(tt,"data_set"),P(tt,"views"),{...P(tt,"field_y_axis"),fieldFilterOptions:{forComponent:"lineChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(tt,"field_x_axis"),fieldFilterOptions:{forComponent:"lineChart",onlyDimensions:!0},preventDuplicates:!1,preSetPartialAttributes:e=>({dimension:[...e]}),getValues:e=>[...e.dimension],maxAllowed:2,testId:"add-dimension"},P(tt,"sort"),P(tt,"filter"),P(tt,"custom_metrics"),P(tt,"limit")],formatPanelConfig:()=>[F1(tt),{...P(tt,"chart_styles"),subSection:[tt.format_panel.chart_styles?.subSectionDefinition.legend,tt.format_panel.chart_styles?.subSectionDefinition.labels]},Ve(tt),{...P(tt,"conditional_formatting"),ruleType:"lineColor"},P(tt,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),vd=t=>m.object({...Y1(t.attributesSchemaOptions),type:m.valid("mercatorMap").required(),measure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),filter:c2(t.queryEngineConfig),limit:Vt(),dimension:St({},t.attributesSchemaOptions),labelFormat:m.alternatives(m.string(),m.valid(null)),noDataColor:m.string().required(),backgroundColor:m.string().required(),maxValueColor:m.string().required(),minValueColor:m.string().required(),position:m.object({scale:m.number(),centerX:m.number(),centerY:m.number()}),tags:H1()}),MN=t=>(e,o)=>I1(e,o,vd(t)),lt={title:"Country map",description:"A map component based on the Mercator projection, suitable for geographical data visualization.",namespace:"mercator_map",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use for this map?"},views:{type:"views",title:"View",description:""},field_metrics:{type:"fieldCollector",title:"Metric",description:"What do you want to show?",callToAction:"Add metric"},field_country:{type:"fieldCollector",title:"Country",description:"Which field contains the country code required to group results on?",callToAction:"Set country"},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use on this map."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this map."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Map Settings",description:"",subSectionDefinition:{number_format:{type:"numberFormat",title:"Value format",description:"",namespace:"number_format"}}},map_colors:{type:"mapColors",title:"Map colors",description:""}}},_d=t=>({title:lt.title,description:lt.description,servicesClass:"MercatorMap",namespace:lt.namespace,dump:e=>e,load:e=>({dataSetId:e.dataSetId,displaySubject:e.displaySubject,displayTitle:e.displayTitle,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),type:"mercatorMap",dimension:e.dimension,limit:e.limit,measure:y1(e.measure),labelFormat:e.labelFormat,position:e.position,filter:V1(e.filter),noDataColor:e.noDataColor||"#ffffff",backgroundColor:e.backgroundColor||"#EFF5F6",maxValueColor:e.maxValueColor||"#000000",minValueColor:e.minValueColor||"#e0e0e0",tags:e.tags??[]}),setAttributes:MN(t),validate:()=>[],init:(e,o)=>({type:"mercatorMap",dataSetId:e,dimension:[],measure:[],displaySubject:"",displayTitle:"",limit:5e3,filter:[],viewId:k0(o?.viewId),labelFormat:null,noDataColor:"#ffffff",backgroundColor:"#EFF5F6",maxValueColor:"#000000",minValueColor:"#e0e0e0",tags:[],...o}),schema:vd(t),removeField(e,o){return e},isRunnable:e=>!!(e.dimension&&e.dimension[0]&&e.measure&&e.measure[0]),autoGenerate(e){return this.init(e.id)},dataPanelConfig:()=>[P(lt,"data_set"),P(lt,"views"),{...P(lt,"field_metrics"),type:"fieldCollector",fieldFilterOptions:{forComponent:"mercatorMap"},maxAllowed:1,preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(lt,"field_country"),fieldFilterOptions:{onlyDimensions:!0,onlyFieldTypes:["string"],removeRuleGrouping:!1,removeSimpleMaths:!0,removePercentage:!0,removeAggregateMaths:!0},maxAllowed:1,preSetPartialAttributes:e=>({dimension:e}),getValues:e=>e.dimension,testId:"add-dimension"},P(lt,"filter"),P(lt,"custom_metrics"),P(lt,"limit")],formatPanelConfig:()=>[F1(lt),{...P(lt,"chart_styles"),subSection:[lt.format_panel.chart_styles?.subSectionDefinition.number_format]},P(lt,"map_colors")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!1}}),El=t=>m.object({...Y1(t.attributesSchemaOptions),measure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),dimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),filter:c2(t.queryEngineConfig),timeDimension:m.valid(null),order:m.array().items(uo(t.queryEngineConfig)),type:m.valid("pieChart").required(),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),limit:Vt(),labelsAsPercentage:m.boolean(),conditionalFormattingRules:ht(t.queryEngineConfig),labelFormat:m.alternatives(m.string(),m.valid(null)),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),tags:H1(),drilldownOptions:GO(t.queryEngineConfig)}),Be={title:"Pie chart",description:"Represents data in a circular pie-like format, useful for showing proportions.",namespace:"pie_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this pie chart?"},views:{type:"views",title:"View",description:""},field_metrics:{type:"fieldCollector",title:"Metric",description:"What do you want each segment to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this bar chart, what information do you want to see next?"},field_grouping:{type:"fieldCollector",title:"Grouping",description:"How do you want to split each section of the pie chart?",callToAction:"Add comparison"},sort:{type:"sort",title:"Sort",description:"Choose the order of segments in the pie chart"},filter:{type:"filter",title:"Filters",description:"Only include the information you want in this pie chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Limit the number of segments shown on this pie chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{number_format:{type:"numberFormat",title:"Format",description:"",namespace:"number_format"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""}}},Nd=t=>({title:Be.title,description:Be.description,servicesClass:"PieChart",namespace:Be.namespace,dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),viewId:k0(e.viewId),timeDimension:e.timeDimension,displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),labelsAsPercentage:e.labelsAsPercentage,legend:e.legend,labels:e.labels,labelFormat:e.labelFormat,parameters:ft(e.parameters),tags:e.tags??[],drilldownOptions:e.drilldownOptions}),setAttributes:(e,o)=>I1(e,o,El(t)),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"pieChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,conditionalFormattingRules:[],labelsAsPercentage:!1,legend:!0,labels:!1,labelFormat:null,parameters:{},tags:[],drilldownOptions:void 0,...o}),createFeedback:xe,schema:El(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"pieChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(Be,"data_set"),P(Be,"views"),{...P(Be,"field_metrics"),fieldFilterOptions:{forComponent:"pieChart"},maxAllowed:1,preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(Be,"field_grouping"),fieldFilterOptions:{onlyFieldTypes:["boolean","number","string"],onlyDimensions:!0,removePercentage:!0,removeSimpleMaths:!0,removeAggregateMaths:!0},maxAllowed:1,preSetPartialAttributes:e=>({dimension:e}),getValues:e=>e.dimension,testId:"add-dimension"},P(Be,"sort"),P(Be,"filter"),{...P(Be,"drilldown"),options:{property:"drilldownOptions"}},P(Be,"custom_metrics"),P(Be,"limit")],formatPanelConfig:()=>[F1(Be),{...P(Be,"conditional_formatting"),ruleType:"backgroundColor"},{...P(Be,"chart_styles"),subSection:[Be.format_panel.chart_styles?.subSectionDefinition.legend,Be.format_panel.chart_styles?.subSectionDefinition.labels,Be.format_panel.chart_styles?.subSectionDefinition.number_format]}],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1}});var rO=(t=>(t.Linear="linear",t.Circular="circular",t))(rO||{});const Dl=t=>m.object({...Y1(t.attributesSchemaOptions),measure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),filter:c2(t.queryEngineConfig),type:m.valid("progress").required(),limit:Vt(),conditionalFormattingRules:ht(t.queryEngineConfig),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),goals:m.array().items(m.object({field:m.string().required().description("ID of the field in the data set to which the goal applies too"),value:m.number().required().description("Value of which the goal is set")})).description("Set the target value that progression is shown towards."),progressType:m.array().items(m.object({field:m.string().required().description("ID of the field to set the progress type of"),value:m.valid(rO.Linear,rO.Circular).required()})).description("Set the display type of the progress view"),formatter:m.object().pattern(m.string(),m.string()),prefixes:m.object().pattern(m.string(),m.string()),postfixes:m.object().pattern(m.string(),m.string()),tags:H1()}),Td=t=>{if("singleMeasure"in t){let e={},o={},n=[],b={};return t.singleMeasure&&(n=[t.singleMeasure],e[Vi(t.singleMeasure)]=t.prefix,o[Vi(t.singleMeasure)]=t.postfix,b[Vi(t.singleMeasure)]=t.formatter),{type:"singleStat",prefixes:e,postfixes:o,measure:n,formatter:b,fontSize:t.fontSize,displayTitle:t.displayTitle,displaySubject:t.displaySubject,tags:t.tags,filter:V1(t.filter),dataSetId:t.dataSetId,limit:t.limit,conditionalFormattingRules:t.conditionalFormattingRules,deltaTimeDimension:t.deltaTimeDimension,parameters:ft(t.parameters)}}else return{...t,filter:V1(t.filter)}},ot={title:"Progress",description:"Used to show progress towards goals, completion of tasks, or as indicators of performance metrics.",namespace:"progress",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this progress?"},views:{type:"views",title:"View",description:""},progress_goals:{type:"progressGoals",title:"Metric",description:"What do you want to show in each progress bar?"},filter:{type:"filter",title:"Filters",description:"Only include the information you want in this progress chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},stats_labels:{type:"statsLabels",title:"Labels",description:"",subSectionDefinition:{prefix:{title:"Prefix",description:"",namespace:"prefix"},postfix:{title:"Postfix",description:"",namespace:"postfix"},format:{title:"Format",description:"",namespace:"format"},count:{title:"Label count",description:"",namespace:"count"}}},progress_type:{type:"progressType",title:"Type",description:""}}},Bd=t=>({title:ot.title,description:ot.description,dump:e=>e,namespace:ot.namespace,servicesClass:"Progress",load:e=>{const o=Td(e);return{type:"progress",measure:y1(o.measure),displayTitle:o.displayTitle,displaySubject:o.displaySubject,protectedByOrganisation:o.protectedByOrganisation,viewId:k0(o.viewId),filter:o.filter,dataSetId:o.dataSetId,limit:o.limit,conditionalFormattingRules:o.conditionalFormattingRules,parameters:o.parameters,prefixes:o.prefixes,postfixes:o.postfixes,formatter:o.formatter,goals:o.goals,progressType:o.progressType,tags:o.tags??[]}},setAttributes:(e,o)=>I1(e,o,Dl(t)),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"progress",measure:[],displayTitle:"",protectedByOrganisation:void 0,displaySubject:"",viewId:k0(o?.viewId),filter:[],dataSetId:e,limit:5e3,conditionalFormattingRules:[],parameters:{},formatter:{},progressType:[],goals:[],postfixes:{},prefixes:{},tags:[],...o}),schema:Dl(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){return this.init(e.id)},dataPanelConfig:()=>[P(ot,"data_set"),P(ot,"views"),P(ot,"progress_goals"),P(ot,"filter"),P(ot,"custom_metrics")],formatPanelConfig:()=>[F1(ot),P(ot,"progress_type"),{...P(ot,"stats_labels"),prefix:Vo(ot,"prefix"),postfix:Vo(ot,"postfix"),format:Vo(ot,"format"),count:Vo(ot,"count")}],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,aggregateMaths:!0,rules:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!1}}),Sd=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),legend:m.valid(!0,!1),type:m.valid("radarChart").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),axisTitles:Wt(),headline:X2(),tags:H1()}),zN=t=>(e,o)=>{let n=I1(e,o,Sd(t));return n=xt(n),n},At={title:"Radar chart",description:"Visualizes multiple variables as points on axes starting from the same center point, creating a spider web-like shape. Perfect for comparing strengths and weaknesses across multiple dimensions or showing performance metrics across different categories.",namespace:"radar_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this radar chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each line to measure?",callToAction:"Add metric"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each line to represent? An example might be a `product category` field to represent each category as a line.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this radar chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this radar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{curve:{type:"curve",title:"Line Style",description:"",namespace:"curve"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"Grouping - X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},y:{title:"Metric - Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"}}}}},wd=t=>({title:At.title,description:At.description,servicesClass:"RadarChart",namespace:At.namespace,dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),legend:e.legend,tags:e.tags??[]}),setAttributes:zN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"radarChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,legend:!0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],...o}),createFeedback:xe,schema:Sd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"radarChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(At,"data_set"),P(At,"views"),{...P(At,"field_y_axis"),fieldFilterOptions:{forComponent:"radarChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(At,"field_x_axis"),fieldFilterOptions:{forComponent:"radarChart",onlyDimensions:!0},preventDuplicates:!1,preSetPartialAttributes:e=>({dimension:[...e]}),getValues:e=>[...e.dimension],maxAllowed:1,testId:"add-dimension"},P(At,"sort"),P(At,"filter"),P(At,"custom_metrics"),P(At,"limit")],formatPanelConfig:()=>[F1(At),Un(At,!1,!1),Ve(At)],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),xd=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),type:m.valid("richText").required(),tags:H1(),content:m.any()}),cN=t=>(e,o)=>I1(e,o,xd(t)),Tt={title:"Rich text",description:"Add your data to a rich text component.",namespace:"rich_text",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this rich text view?"},views:{type:"views",title:"View",description:""},field_metrics:{type:"fieldCollector",title:"Metrics",description:"What metrics do you need to collect?",callToAction:"Add metric"},field_grouping:{type:"fieldCollector",title:"Grouping",description:"How do you want to group your results?",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"How should the results be ordered?"},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this text view."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to use on this text view."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},rich_text:{type:"richText",title:"Text format",description:""}}},sN={type:"doc",content:[{type:"heading",attrs:{level:1},content:[{type:"text",text:"Rich text views"}]},{type:"paragraph",content:[{type:"text",text:"In this view, you can add any "},{type:"text",marks:[{type:"bold"}],text:"text based content"},{type:"text",text:" to your dashboard, and "},{type:"text",marks:[{type:"italic"}],text:"mix in your data with it!"}]},{type:"paragraph",content:[{type:"text",text:"Remember to use the "},{type:"text",marks:[{type:"bold"}],text:"format"},{type:"text",text:" "},{type:"text",marks:[{type:"bold"}],text:"tab"},{type:"text",text:" to "},{type:"text",marks:[{type:"underline"}],text:"style"},{type:"text",text:" your contents"}]},{type:"heading",attrs:{level:2},content:[{type:"text",text:"Adding data?"}]},{type:"paragraph",content:[{type:"text",text:"You can add data to your text content by using templating. For example, is how to take metrics "},{type:"text",marks:[{type:"code"}],text:'"Metric Name"'},{type:"text",text:" and "},{type:"text",marks:[{type:"code"}],text:'"A different metric name" '},{type:"text",text:"from the first row of the results, and show it on this view;"}]},{type:"codeBlock",attrs:{language:null},content:[{type:"text",text:`{{ data.first.metric_name }}
|
|
59
|
+
`),this.name="DataSetNotFound"}}const I_=t=>{let e=[];if("measure"in t&&t.measure&&(e=[...e,...t.measure]),"xMeasure"in t&&Array.isArray(t.xMeasure)&&(e=[...e,...t.xMeasure]),"yMeasure"in t&&t.yMeasure&&(e=[...e,t.yMeasure]),"zMeasure"in t&&t.zMeasure){let o=Array.isArray(t.zMeasure)?t.zMeasure:[t.zMeasure];e=[...e,...o]}return e},P_=t=>{let e=[];return"dimension"in t&&t.dimension&&(e=[...e,...t.dimension]),"lineDimension"in t&&t.lineDimension&&(e=[...e,...t.lineDimension]),"barDimension"in t&&t.barDimension&&(e=[...e,...t.barDimension]),e},Qu=t=>{let e=[];return I_(t).forEach(o=>{e=[...e,{fieldId:o.field,function:o.function,dataSetId:t.dataSetId}]}),P_(t).forEach(o=>{e=[...e,{fieldId:o.field,function:o.function,dataSetId:t.dataSetId}]}),"order"in t&&t.order&&(e=[...e,...[...t.order].map(o=>({fieldId:o.field,function:o.function,dataSetId:t.dataSetId}))]),"timeDimension"in t&&t.timeDimension&&(e=[...e,{fieldId:t.timeDimension.field,function:t.timeDimension.truncate,dataSetId:t.dataSetId}]),e},F_={allowUnknown:!0,stripUnknown:!0},K1=(t,e,o)=>{const{error:n}=ib(t.type,{queryEngineConfig:o}).schema.validate(t,F_);if(n)return[new E_(n)];const b=B2(e,t.dataSetId);if(!b)return[new D_(e,t.dataSetId)];const a=Qu(t).map(O=>O.fieldId);try{a.forEach(O=>{rt(b,O)})}catch(O){if(O instanceof Ya)return[O];throw O}return[]},k0=t=>t||`view_${Gu()}`,k_=t=>t&&t.length>0?t.map(j_):t||[];function j_(t){const{parentDimension:e,...o}=t;return o}const Nr=(t,e)=>{let o=null,n=P0.cloneDeep(t);return n.forEach(b=>{const a=rt(e,b.field);a.dataType=="date_time"&&(o={field:a.id,truncate:b.function})}),n=n.filter(b=>rt(e,b.field).dataType!="date_time"),{timeDimension:o,dimension:n}},Zo=t=>{let e=[...t.dimension];return"timeDimension"in t&&t.timeDimension&&(e=[{field:t.timeDimension.field,function:t.timeDimension.truncate},...e]),e},se={title:"Area chart",description:"Displays data as areas on a chart, useful for showing trends over time.",namespace:"area_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this area chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each area to measure?",callToAction:"Add metric"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each area to represent? An example might be an employee ID to represent each employee.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this area chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this area chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},rich_text:{type:"richText",title:"Text format"},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},curve:{type:"curve",title:"Line Curve",description:"",namespace:"curve"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headline",description:""},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}};function P(t,e){return(n=>n in t.format_panel)(e)?{...t.format_panel[e],namespace:e}:{...t.data_panel[e],namespace:e}}function de(t,e){return t.format_panel.axis_labels?.subSectionDefinition[e]}function F1(t){return{...P(t,"heading"),subSection:[t.format_panel.heading.subSectionDefinition.title,t.format_panel.heading.subSectionDefinition.subject]}}function Ve(t){return{...P(t,"axis_labels"),dualAxes:{...de(t,"dual_axes")},y:{...de(t,"y"),prefix:de(t,"y.prefix"),postfix:de(t,"y.postfix"),format:de(t,"y.format"),count:de(t,"y.count"),axisTitle:de(t,"y.axis_title")},yDual:{...de(t,"yDual"),prefix:de(t,"yDual.prefix"),postfix:de(t,"yDual.postfix"),format:de(t,"yDual.format"),count:de(t,"yDual.count"),axisTitle:de(t,"yDual.axis_title")},x:{...de(t,"x"),prefix:de(t,"x.prefix"),postfix:de(t,"x.postfix"),format:de(t,"x.format"),count:de(t,"x.count"),axisTitle:de(t,"x.axis_title")}}}function Un(t,e,o){return e?{...P(t,"chart_styles"),subSection:[t.format_panel.chart_styles?.subSectionDefinition.curve,t.format_panel.chart_styles?.subSectionDefinition.legend]}:o?{...P(t,"chart_styles"),subSection:[t.format_panel.chart_styles?.subSectionDefinition.stacked,t.format_panel.chart_styles?.subSectionDefinition.legend]}:{...P(t,"chart_styles"),subSection:[t.format_panel.chart_styles?.subSectionDefinition.legend]}}function Vo(t,e){return{...t.format_panel.stats_labels?.subSectionDefinition[e],namespace:e}}const ho=(t,e)=>{if(t?.func==="current"&&e)return t};var W0=(t=>(t.Maths="maths",t.IfStatement="ifStatement",t.Aggregates="aggregates",t))(W0||{});const Zu=t=>({title:se.title,description:se.description,servicesClass:"AreaChart",namespace:se.namespace,dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),displayTitle:e.displayTitle,dimension:Oe(e.dimension),timeDimension:e.timeDimension,displaySubject:e.displaySubject,viewId:k0(e.viewId),filter:V1(e.filter),order:ge(e.order,e.timeDimension),dataSetId:e.dataSetId,limit:e.limit,offset:e.offset,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,lineCurve:e.lineCurve,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),protectedByOrganisation:e.protectedByOrganisation,stacked:e.stacked,drilldown:e.drilldown,legend:e.legend,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,goalLines:e.goalLines,parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),headline:ho(e.headline,e.timeDimension),tags:e.tags??[]}),setAttributes:eg(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"areaChart",measure:[],displayTitle:"",dimension:[],timeDimension:null,displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,offset:0,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,lineCurve:"natural",conditionalFormattingRules:[],drilldown:[],legend:!0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},goalLines:void 0,axisTitles:void 0,headline:void 0,tags:[],...o}),createFeedback:xe,schema:jA(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"areaChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(se,"data_set"),P(se,"views"),{...P(se,"field_y_axis"),fieldFilterOptions:{forComponent:"areaChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(se,"field_x_axis"),fieldFilterOptions:{forComponent:"areaChart",onlyDimensions:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o)=>Nr(e,o),getValues:e=>Zo(e),maxAllowed:2,testId:"add-dimension"},P(se,"sort"),P(se,"filter"),P(se,"custom_metrics"),P(se,"limit")],formatPanelConfig:()=>[F1(se),{...P(se,"chart_styles"),subSection:[se.format_panel.chart_styles?.subSectionDefinition.stacked,se.format_panel.chart_styles?.subSectionDefinition.legend,se.format_panel.chart_styles?.subSectionDefinition.curve]},Ve(se),{...P(se,"conditional_formatting"),ruleType:"areaColor"},P(se,"goal_line"),P(se,"headline")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1}});var cz=(t=>(t.Forecast="Forecast",t.MovingAverage="Moving Average",t.Trend="Trend",t))(cz||{});const $_=m.object({type:m.string().valid(cz.Forecast),value:m.number()}),U_=m.object({type:m.string().valid(cz.Trend),value:m.number()}),G_=m.object({value:m.number().required()}),V_=m.object({type:m.string().valid(cz.MovingAverage),averages:m.array().items(G_).required()}),sz=()=>m.array().items(m.alternatives($_,U_,V_)),Ju=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),stacked:m.valid(!0,!1),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),type:m.valid("areaChartV2").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),lineCurve:Y6,conditionalFormattingRules:ht(t.queryEngineConfig),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1(),trends:sz()}),H_=t=>(e,o)=>{let n=I1(e,o,Ju(t));return n=xt(n),n},l2=(t,e,o)=>{let n=P0.cloneDeep(yr(e.fields,{onlyFieldTypes:["boolean","string"]})),b=P0.cloneDeep(yr(e.fields,{onlyFieldTypes:["date_time"]})),a=P0.cloneDeep(yr(e.fields,{onlyFieldTypes:["number"]})),O=null;return b[0]&&(O={field:b[0].id,truncate:"none"}),o(t,{protectedByOrganisation:!0,dimension:n.map(c=>({field:c.id,function:"none"})),measure:[...a].map(c=>({function:"none",field:c.id})),order:[],timeDimension:O})},Je={title:"Area chart",description:"Ideal for illustrating changes and trends over time with area graphs.",namespace:"area_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this area chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each area to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this area chart, what information do you want to see next?"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each area to represent? An example might be a `product category` field to represent each category as a area.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this area chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this area chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},curve:{type:"curve",title:"Area Style",description:"",namespace:"curve"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headarea",description:""},trends:{type:"trends",title:"Trend lines",description:"Specify a trend type for the area chart."},goal_line:{type:"goalLine",title:"Goal lines",description:""}}},ed=t=>({title:"Area chart",description:"Ideal for illustrating changes and trends over time with area graphs.",servicesClass:"AreaChart",namespace:"area_chart",dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,lineCurve:e.lineCurve,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),drilldown:e.drilldown,legend:e.legend,labels:e.labels,goalLines:e.goalLines,headline:ho(e.headline,e.timeDimension),parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,tags:e.tags??[],trends:e.trends??[],stacked:e.stacked}),setAttributes:H_(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"areaChartV2",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,lineCurve:"natural",conditionalFormattingRules:[],drilldown:[],legend:!0,labels:!1,goalLines:void 0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],trends:[],stacked:!1,...o}),createFeedback:xe,schema:Ju(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"lineChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(Je,"data_set"),P(Je,"views"),{...P(Je,"field_y_axis"),fieldFilterOptions:{forComponent:"lineChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(Je,"field_x_axis"),fieldFilterOptions:{forComponent:"lineChart",onlyDimensions:!0},preventDuplicates:!1,preSetPartialAttributes:e=>({dimension:[...e]}),getValues:e=>[...e.dimension],maxAllowed:2,testId:"add-dimension"},P(Je,"sort"),P(Je,"filter"),P(Je,"custom_metrics"),P(Je,"limit")],formatPanelConfig:()=>[F1(Je),{...P(Je,"chart_styles"),subSection:[Je.format_panel.chart_styles?.subSectionDefinition.legend,Je.format_panel.chart_styles?.subSectionDefinition.labels]},Ve(Je),{...P(Je,"conditional_formatting"),ruleType:"lineColor"},P(Je,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}});function GO(t){return m.array().items(m.object({field:m.string().required(),function:m.string().valid(...Object.keys(t.supportedAggregates),...Object.keys(t.supportedTimeTruncFunctions),"none")}))}const Gn=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),type:m.valid("barChart","horizontalBarChart","funnelChart").required(),conditionalFormattingRules:ht(t.queryEngineConfig),protectedFields:m.object({dimension:DA(t.queryEngineConfig),measure:lO(t.queryEngineConfig)}).unknown(!0),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1(),drilldownOptions:GO(t.queryEngineConfig)}),Y_=t=>(e,o)=>{let n=I1(e,o,Gn(t));return n=xt(n),n},_e={title:"Column chart",description:"Uses bars to compare different sets of data.",namespace:"bar_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bar chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each bar to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this bar chart, what information do you want to see next?"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each bar to represent? An example might be a `product category` field to represent each category as a bar.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this bar chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},headline:{type:"headline",title:"Headline",description:""},goal_line:{type:"goalLine",title:"Goal Lines",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""}}},td=t=>({title:_e.title,description:_e.description,servicesClass:"BarChart",namespace:_e.namespace,dump:e=>e,load:e=>({...e,measure:y1(e.measure),order:ge(e.order,e.timeDimension),filter:V1(e.filter),viewId:k0(e.viewId),dimension:Oe(e.dimension),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),parameters:ft(e.parameters),conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),headline:ho(e.headline,e.timeDimension),tags:e.tags??[],drilldownOptions:e.drilldownOptions}),setAttributes:Y_(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"barChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],stacked:void 0,dataSetId:e,limit:5e3,conditionalFormattingRules:[],protectedByOrganisation:void 0,protectedFields:void 0,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,drilldown:[],legend:!0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},goalLines:void 0,axisTitles:void 0,headline:void 0,tags:[],drilldownOptions:void 0,...o}),createFeedback:xe,schema:Gn(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"barChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(_e,"data_set"),P(_e,"views"),{...P(_e,"field_y_axis"),fieldFilterOptions:{forComponent:"barChart",onlyMeasures:!0},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(_e,"field_x_axis"),fieldFilterOptions:{forComponent:"barChart",onlyDimensions:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o)=>Nr(e,o),getValues:e=>Zo(e),maxAllowed:2,testId:"add-dimension"},P(_e,"sort"),P(_e,"filter"),{...P(_e,"drilldown"),options:{property:"drilldownOptions"}},P(_e,"custom_metrics"),P(_e,"limit")],formatPanelConfig:()=>[F1(_e),Un(_e,!1,!0),Ve(_e),{...P(_e,"conditional_formatting"),ruleType:"backgroundColor"},P(_e,"goal_line"),P(_e,"headline")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),od=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),type:m.valid("barChartV2").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),conditionalFormattingRules:ht(t.queryEngineConfig),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1(),isDualAxisEnabled:m.valid(!0,!1).optional()}),K_=t=>(e,o)=>{let n=I1(e,o,od(t));return(o.stacked||e.measure?.length!==2)&&(n.isDualAxisEnabled=!1),n=xt(n),n},$e={title:"Bar chart",description:"Ideal for illustrating changes and trends over time with bar graphs.",namespace:"bar_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bar chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each bar to measure?",callToAction:"Add metric"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each bar to represent? An example might be a `product category` field to represent each category as a bar.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this bar chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"},yDual:{title:"Y Dual Axis",description:"",namespace:"yDual"},"yDual.prefix":{title:"Prefix",description:"",namespace:"yDual.prefix"},"yDual.postfix":{title:"Postfix",description:"",namespace:"yDual.postfix"},"yDual.format":{title:"Format",description:"",namespace:"yDual.format"},"yDual.count":{title:"Label count",description:"",namespace:"yDual.count"},"yDual.axis_title":{title:"Title",description:"",namespace:"yDual.axis_title"},dual_axes:{title:"Enable Dual Axes"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headline",description:""},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}},rd=t=>({title:"Bar chart",description:"Ideal for illustrating changes and trends over time with bar graphs.",servicesClass:"BarChart",namespace:"bar_chart",dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,yDualAxisFormat:e.yDualAxisFormat,yDualAxisPostfix:e.yDualAxisPostfix,yDualAxisPrefix:e.yDualAxisPrefix,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),legend:e.legend,labels:e.labels,goalLines:e.goalLines,headline:ho(e.headline,e.timeDimension),parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),approxDualYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,tags:e.tags??[],stacked:e.stacked,isDualAxisEnabled:e.isDualAxisEnabled}),setAttributes:K_(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"barChartV2",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisFormat:null,xAxisPostfix:"",xAxisPrefix:"",yAxisFormat:null,yAxisPostfix:"",yAxisPrefix:"",yDualAxisFormat:null,yDualAxisPostfix:"",yDualAxisPrefix:"",conditionalFormattingRules:[],legend:!0,labels:!1,goalLines:void 0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],isDualAxisEnabled:!1,...o}),createFeedback:xe,schema:od(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"barChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P($e,"data_set"),P($e,"views"),{...P($e,"field_y_axis"),fieldFilterOptions:{forComponent:"barChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P($e,"field_x_axis"),fieldFilterOptions:{forComponent:"barChart",onlyDimensions:!0},preventDuplicates:!1,preSetPartialAttributes:e=>({dimension:[...e]}),getValues:e=>[...e.dimension],maxAllowed:2,testId:"add-dimension"},P($e,"sort"),P($e,"filter"),P($e,"custom_metrics"),P($e,"limit")],formatPanelConfig:()=>[F1($e),{...P($e,"chart_styles"),subSection:[$e.format_panel.chart_styles?.subSectionDefinition.stacked,$e.format_panel.chart_styles?.subSectionDefinition.legend,$e.format_panel.chart_styles?.subSectionDefinition.labels]},Ve($e),{...P($e,"conditional_formatting"),ruleType:"lineColor"},P($e,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),Q_=m.object({field:m.string().required(),function:m.valid("none").required()}),nd=t=>m.object({...Y1(t.attributesSchemaOptions),type:m.valid("basicTable").required(),measure:m.array().items(Q_).required(),dimension:m.array().max(0),order:m.array().items(uo(t.queryEngineConfig)),timeDimension:m.valid(null),limit:Vt().required(),offset:m.number().min(0),filter:c2(t.queryEngineConfig),prefixes:m.array().items(kA),exportNames:m.object(),numberFormat:m.object(),conditionalFormattingRules:ht(t.queryEngineConfig),dateTimeFormat:m.string(),protectedFields:m.object({measure:lO(t.queryEngineConfig)}).unknown(!0),sizing:PA,tags:H1(),hiddenFields:m.array().items(m.string())}),Ns=t=>(e,o)=>{let n=I1(e,o,nd(t));return n=Dn(n,[...n.measure]),n},Ce={title:"Basic table",description:"Displays data in a simple, straightforward table format.",namespace:"basic_table",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this basic table?"},views:{type:"views",title:"View",description:""},fields:{type:"fields",title:"Columns",description:"Select which values you want to see in this table"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this basic table."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},pagination:{type:"pagination",title:"Pagination",description:"Define the size for each page in the table"}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{type:"subject",title:"Subject",description:"",namespace:"subject"}}},format:{type:"format",title:"Format",description:"",subSectionDefinition:{time:{type:"time",title:"Time",description:"",namespace:"time"}}},prefixes:{type:"prefixes",title:"Prefixes",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},visual_format:{type:"visualFormat",title:"Visual Format",description:"Configure how group columns are visually represented"},kpi_summarisation:{type:"kpiSummarisation",title:"",description:"Show aggregate statistics above column headers"}}},id=[3,5,10,20,50,100,200],bd=t=>({title:Ce.title,description:Ce.description,servicesClass:"BasicTable",namespace:Ce.namespace,dump:e=>e,load:e=>({...e,measure:y1(e.measure),order:ge(e.order,e.timeDimension),filter:V1(e.filter),dimension:Oe(e.dimension),viewId:k0(e.viewId),conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),tags:e.tags??[],hiddenFields:e.hiddenFields??[]}),setAttributes:Ns(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:function(e,o){const n={type:"basicTable",measure:[],displayTitle:"",dimension:[],timeDimension:null,displaySubject:"",filter:[],order:[],tags:[],hiddenFields:[],dataSetId:e,viewId:k0(o?.viewId),protectedFields:void 0,limit:50,offset:0,conditionalFormattingRules:[],prefixes:[],dateTimeFormat:"DD MMMM YYYY, hh:mm",exportNames:{},numberFormat:{},sizing:{}};return Ns(t)(n,o||{})},schema:nd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),setFields:function(e,o){const n=[...o].map(b=>({field:b,function:"none"}));return Ns(t)(e,{measure:n})},setDateTimeFormat:function(e,o){return this.setAttributes(e,{dateTimeFormat:o})},isRunnable:e=>e.measure.length>0,autoGenerate(e){const n=[...yr(e.fields,{forComponent:"basicTable",onlyMeasures:!0,removeAggregateMaths:!0,removePercentage:!0})].map(b=>({field:b.id,function:"none"}));return this.init(e.id,{measure:n.slice(0,5)})},dataPanelConfig:()=>[P(Ce,"data_set"),P(Ce,"views"),P(Ce,"fields"),P(Ce,"sort"),{...P(Ce,"pagination"),options:id},P(Ce,"filter"),P(Ce,"custom_metrics")],formatPanelConfig:()=>[F1(Ce),{...P(Ce,"format"),subSection:[Ce.format_panel.format?.subSectionDefinition.time]},P(Ce,"prefixes"),{...P(Ce,"conditional_formatting"),ruleType:"backgroundColor"},P(Ce,"visual_format"),P(Ce,"kpi_summarisation")],supportedCustomFields:{percentages:!1,simpleMaths:!0,rules:!0,aggregateMaths:!1,roundedNumbers:!0,dateCalculations:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement]},supportedFeatures:{parameters:!1,colorGradient:!0}}),pd=t=>m.object({...Y1(t.attributesSchemaOptions),xMeasure:me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions).allow(null),yMeasure:me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions).allow(null),zMeasure:me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions).allow(null),dimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),order:m.array().items(uo(t.queryEngineConfig)),limit:Vt(),legend:m.valid(!0,!1),offset:m.number().min(0),filter:c2(t.queryEngineConfig),type:m.valid("bubbleChart").required(),timeDimension:m.valid(null),xAxisPrefix:m.string().allow(""),yAxisPrefix:m.string().allow(""),xAxisPostfix:m.string().allow(""),yAxisPostfix:m.string().allow(""),yAxisFormat:m.alternatives(m.string(),m.valid(null)),xAxisFormat:m.alternatives(m.string(),m.valid(null)),approxYAxisLabelCount:Ut,approxXAxisLabelCount:Ut,goalLines:Ht(),axisTitles:Wt(),tags:H1()}),Z_=t=>(e,o)=>{let n=I1(e,o,pd(t)),b=[];return n.xMeasure&&b.push(n.xMeasure),n.yMeasure&&b.push(n.yMeasure),n.zMeasure&&b.push(n.zMeasure),n.dimension.forEach(a=>{b.push({field:a.field,function:a.function})}),n=Dn(n,b),n},Ne={title:"Bubble chart",description:"Displays data points on a Cartesian plane, with a third metric corresponding to bubble size.",namespace:"bubble_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bubble chart?"},views:{type:"views",title:"View",description:""},labelled_metrics:{type:"labelledMetrics",title:"Metric - Y Axis",description:"",subSectionDefinition:{xAxis:{type:"metrics",title:"X axis",namespace:"metrics.xAxis"},yAxis:{type:"metrics",title:"Y axis",namespace:"metrics.yAxis"},zAxis:{type:"metrics",title:"Metric - Bubble Size",namespace:"metrics.zAxis"}}},field_grouping:{type:"fieldCollector",title:"Grouping",description:"What do you want each bubble to represent?",callToAction:"Add comparison"},filter:{type:"filter",title:"Filters",description:"Only include the information you want in this bubble chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Limit the number of data points shown on this bubble chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"},z:{title:"Metric - Bubble Size",description:"",namespace:"z"},"z.prefix":{title:"Prefix",description:"",namespace:"z.prefix"},"z.postfix":{title:"Postfix",description:"",namespace:"z.postfix"},"z.format":{title:"Format",description:"",namespace:"z.format"},"z.count":{title:"Label count",description:"",namespace:"z.count"},"z.axis_title":{title:"Title",description:"",namespace:"z.axis_title"}}},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}},ad=t=>({title:Ne.title,description:Ne.description,servicesClass:"BubbleChart",namespace:Ne.namespace,dump:e=>e,load:e=>({type:e.type,xMeasure:y1(e.xMeasure?[e.xMeasure]:[])[0]||null,yMeasure:y1(e.yMeasure?[e.yMeasure]:[])[0]||null,zMeasure:y1(e.zMeasure?[e.zMeasure]:[])[0]||null,dimension:Oe(e.dimension),viewId:k0(e.viewId),timeDimension:e.timeDimension,displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,filter:V1(e.filter),order:ge(e.order,e.timeDimension),dataSetId:e.dataSetId,limit:e.limit,legend:e.legend,xAxisFormat:e.xAxisFormat,yAxisFormat:e.yAxisFormat,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),goalLines:e.goalLines,axisTitles:e.axisTitles,tags:e.tags??[]}),setAttributes:Z_(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"bubbleChart",xMeasure:null,yMeasure:null,zMeasure:null,dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,legend:!0,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",goalLines:void 0,axisTitles:void 0,tags:[],...o}),createFeedback:xe,schema:pd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>!!e.xMeasure&&!!e.yMeasure&&!!e.zMeasure&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"bubbleChart");return this.init(e.id,{xMeasure:o[0],yMeasure:o[1],dimension:n})},dataPanelConfig:()=>[P(Ne,"data_set"),P(Ne,"views"),{...P(Ne,"labelled_metrics"),subSection:[{...Ne.data_panel.labelled_metrics?.subSectionDefinition.xAxis,propKey:"xMeasure",allowsMultiple:!1},{...Ne.data_panel.labelled_metrics?.subSectionDefinition.yAxis,propKey:"yMeasure",allowsMultiple:!1},{...Ne.data_panel.labelled_metrics?.subSectionDefinition.zAxis,propKey:"zMeasure",allowsMultiple:!1}]},{...P(Ne,"field_grouping"),fieldFilterOptions:{onlyDimensions:!0,onlyFieldTypes:["boolean","number","string"],removePercentage:!0,removeSimpleMaths:!0,removeAggregateMaths:!0},maxAllowed:1,preSetPartialAttributes:e=>({dimension:e}),getValues:e=>e.dimension,testId:"add-dimension"},P(Ne,"filter"),P(Ne,"custom_metrics"),P(Ne,"limit")],formatPanelConfig:()=>[F1(Ne),{...P(Ne,"chart_styles"),subSection:[Ne.format_panel.chart_styles?.subSectionDefinition.legend]},Ve(Ne),P(Ne,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!1}}),Md=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),zMeasure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)).required().description("A list of metrics that are to be shown. For example the `count` of a specific field in your data set."),xMeasure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)).required().description("A list of metrics that are to be shown. For example the `count` of a specific field in your data set."),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),type:m.valid("bubbleChartV2").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),lineCurve:UM,quadrants:IA(),conditionalFormattingRules:ht(t.queryEngineConfig),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1(),trends:sz()}),J_=t=>(e,o)=>{let n=I1(e,o,Md(t));return n=xt(n),n},Ee={title:"Bubble chart",description:"Displays data points on a Cartesian plane, with a third metric corresponding to bubble size.",namespace:"bubble_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bubble chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each bubble to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this line chart, what information do you want to see next?"},field_x_axis:{type:"fieldCollector",title:"Metric - X Axis",description:"What do you want each line to represent? An example might be a `product category` field to represent each category as a line.",callToAction:"Add metric"},field_z_axis:{type:"fieldCollector",title:"Metric - Bubble Size",description:"What do you want each bubble to represent? An example might be a `product category` field to represent each category as a bubble.",callToAction:"Add metric"},field_grouping:{type:"fieldCollector",title:"Grouping - Bubble series",description:"How do you want to group each bubble?",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this bubble chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bubble chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{curve:{type:"curve",title:"Line Style",description:"",namespace:"curve"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},quadrants:{type:"quadrants",title:"",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headline",description:""},trends:{type:"trends",title:"Trend lines",description:"Specify a trend type for the line chart."},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}},zd=t=>({title:"Bubble chart",description:Ee.description,servicesClass:"BubbleChartV2",namespace:"bubble_chart",dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),zMeasure:y1(e.zMeasure),xMeasure:y1(e.xMeasure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,lineCurve:e.lineCurve,quadrants:e.quadrants,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),drilldown:e.drilldown,legend:e.legend,goalLines:e.goalLines,headline:ho(e.headline,e.timeDimension),parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,tags:e.tags??[],trends:e.trends??[]}),setAttributes:J_(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"bubbleChartV2",measure:[],zMeasure:[],xMeasure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,lineCurve:"natural",quadrants:void 0,conditionalFormattingRules:[],drilldown:[],legend:!0,goalLines:void 0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],trends:[],...o}),createFeedback:xe,schema:Md(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0&&e.xMeasure.length>0&&e.zMeasure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"bubbleChartV2");return this.init(e.id,{measure:[o[0]],dimension:n,zMeasure:[o[0]],xMeasure:[o[0]]})},dataPanelConfig:()=>[P(Ee,"data_set"),P(Ee,"views"),{...P(Ee,"field_y_axis"),fieldFilterOptions:{forComponent:"bubbleChartV2"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,maxAllowed:1,testId:"metric-input",propKey:"yMeasure"},{...P(Ee,"field_x_axis"),fieldFilterOptions:{forComponent:"bubbleChartV2",onlyMeasures:!0,onlyDimensions:!1},preSetPartialAttributes:e=>({xMeasure:[...e]}),getValues:e=>[...e.xMeasure],maxAllowed:1,testId:"x-metric-axis"},{...P(Ee,"field_z_axis"),fieldFilterOptions:{forComponent:"bubbleChartV2"},preSetPartialAttributes:e=>({zMeasure:[...e]}),getValues:e=>e.zMeasure,testId:"metric-input-z",maxAllowed:1,propKey:"zMeasure"},{...P(Ee,"field_grouping"),fieldFilterOptions:{forComponent:"bubbleChartV2",onlyDimensions:!0},preSetPartialAttributes:e=>({dimension:[...e]}),getValues:e=>[...e.dimension],maxAllowed:1,testId:"bubble-dimension"},P(Ee,"sort"),P(Ee,"filter"),P(Ee,"custom_metrics"),P(Ee,"limit")],formatPanelConfig:()=>[F1(Ee),Un(Ee,!0,!1),Ve(Ee),P(Ee,"quadrants"),{...P(Ee,"conditional_formatting"),ruleType:"lineColor"},P(Ee,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),cd=t=>m.object({...Y1(t.attributesSchemaOptions),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),barMeasure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),lineMeasure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),barDimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),lineDimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),order:m.array().items(uo(t.queryEngineConfig)),timeDimension:m.alternatives(In(t.queryEngineConfig.supportedTimeTruncFunctions),m.valid(null)),limit:Vt(),offset:m.number().min(0),filter:c2(t.queryEngineConfig),type:m.valid("comboChart").required(),xAxisPrefix:m.string().allow(""),yAxisPrefix:m.string().allow(""),xAxisPostfix:m.string().allow(""),yAxisPostfix:m.string().allow(""),yAxisFormat:m.alternatives(m.string(),m.valid(null)),xAxisFormat:m.alternatives(m.string(),m.valid(null)),approxYAxisLabelCount:Ut,approxXAxisLabelCount:Ut,goalLines:Ht(),conditionalFormattingRules:m.object({bar:m.array().items(eb(t.queryEngineConfig)),line:m.array().items(eb(t.queryEngineConfig))}),axisTitles:Wt(),tags:H1()}),eN=t=>(e,o)=>{let n=I1(e,o,cd(t)),b=[...n.lineMeasure,...n.barMeasure];return[...n.lineDimension,...n.barDimension].forEach(a=>{b.push({field:a.field,function:a.function})}),n.timeDimension&&b.push({field:n.timeDimension.field,function:n.timeDimension.truncate}),n=Dn(n,b),n};function sd(t,e){return{...t,lineMeasure:y1(t.lineMeasure),barMeasure:y1(t.barMeasure),order:ge(t.order,t.timeDimension||null),filter:V1(t.filter),lineDimension:Oe(t.lineDimension||t.dimension||[]),barDimension:Oe(t.barDimension||t.dimension||[]),viewId:k0(t.viewId),approxXAxisLabelCount:l1(t.approxXAxisLabelCount),approxYAxisLabelCount:l1(t.approxYAxisLabelCount),conditionalFormattingRules:{bar:wt(e,t.conditionalFormattingRules?.bar),line:wt(e,t.conditionalFormattingRules?.line)},tags:t.tags??[]}}const ee={title:"Combo chart",description:"A versatile component that combines different chart types.",namespace:"combo_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this combo chart?"},views:{type:"views",title:"View",description:""},labelled_metrics:{type:"labelledMetrics",title:"Metric - Y Axis",description:"What do you want each line and bar to measure?",subSectionDefinition:{line:{type:"metrics",title:"Line",namespace:"metrics.line"},bar:{type:"metrics",title:"Bar",namespace:"metrics.bar"}}},combo_chart_dimension:{type:"comboChartDimension",title:"Grouping - X Axis",description:""},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this combo chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},goal_line:{type:"goalLine",title:"Goal Lines",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:"",subSectionDefinition:{bar:{title:"Bar",namespace:"bar"},line:{title:"Line",namespace:"line"}}}}},Od=t=>({title:ee.title,description:ee.description,servicesClass:"ComboChart",namespace:ee.namespace,dump:e=>e,load:e=>sd(e,t.queryEngineConfig),setAttributes:eN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"comboChart",barMeasure:[],lineMeasure:[],lineDimension:[],barDimension:[],timeDimension:null,displayTitle:"",displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",protectedByOrganisation:void 0,xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,legend:!0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",goalLines:void 0,conditionalFormattingRules:void 0,axisTitles:void 0,tags:[],...o}),createFeedback:xe,schema:cd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.lineMeasure.length>0||e.barMeasure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"comboChart");return this.init(e.id,{barMeasure:[o[0]],lineMeasure:[o[1]||o[0]],barDimension:n,lineDimension:n})},dataPanelConfig:()=>[P(ee,"data_set"),P(ee,"views"),{...P(ee,"labelled_metrics"),subSection:[{...ee.data_panel.labelled_metrics?.subSectionDefinition.line,propKey:"lineMeasure",allowsMultiple:!0},{...ee.data_panel.labelled_metrics?.subSectionDefinition.bar,propKey:"barMeasure",allowsMultiple:!0}]},P(ee,"combo_chart_dimension"),P(ee,"sort"),P(ee,"filter"),P(ee,"custom_metrics"),P(ee,"limit")],formatPanelConfig:()=>[F1(ee),Un(ee,!1,!0),Ve(ee),{...P(ee,"conditional_formatting"),ruleType:"backgroundColor",subSection:[{title:ee.format_panel.conditional_formatting?.subSectionDefinition?.bar.title??"",namespace:ee.format_panel.conditional_formatting?.subSectionDefinition?.bar.namespace,propKey:"bar"},{title:ee.format_panel.conditional_formatting?.subSectionDefinition?.line.title??"",namespace:ee.format_panel.conditional_formatting?.subSectionDefinition?.line.namespace,propKey:"line"}]},P(ee,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!1}}),ld=t=>m.object({...Y1(t.attributesSchemaOptions),stacked:m.valid(!0,!1),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),barMeasure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),lineMeasure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),barDimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),lineDimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),order:m.array().items(uo(t.queryEngineConfig)),timeDimension:m.alternatives(In(t.queryEngineConfig.supportedTimeTruncFunctions),m.valid(null)),limit:Vt(),offset:m.number().min(0),filter:c2(t.queryEngineConfig),type:m.valid("comboChartV2").required(),xAxisPrefix:m.string().allow(""),yAxisPrefix:m.string().allow(""),xAxisPostfix:m.string().allow(""),yAxisPostfix:m.string().allow(""),yAxisFormat:m.alternatives(m.string(),m.valid(null)),yDualAxisPrefix:m.string().allow("").optional(),yDualAxisPostfix:m.string().allow("").optional(),yDualAxisFormat:m.alternatives(m.string(),m.valid(null)).optional(),xAxisFormat:m.alternatives(m.string(),m.valid(null)),approxYAxisLabelCount:Ut,approxDualYAxisLabelCount:Ut.optional(),approxXAxisLabelCount:Ut,goalLines:Ht(),conditionalFormattingRules:m.object({bar:m.array().items(eb(t.queryEngineConfig)),line:m.array().items(eb(t.queryEngineConfig))}),axisTitles:Wt(),tags:H1(),isDualAxisEnabled:m.valid(!0,!1).optional()}),tN=t=>(e,o)=>{let n=I1(e,o,ld(t)),b=[...n.lineMeasure,...n.barMeasure];return[...n.lineDimension,...n.barDimension].forEach(a=>{b.push({field:a.field,function:a.function})}),n.timeDimension&&b.push({field:n.timeDimension.field,function:n.timeDimension.truncate}),n=Dn(n,b),(e.barMeasure?.length!=1||e.lineMeasure?.length!=1)&&(n.isDualAxisEnabled=!1),n},X1={title:"Combo chart",description:"A versatile component that combines different chart types.",namespace:"combo_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this combo chart?"},views:{type:"views",title:"View",description:""},labelled_metrics:{type:"labelledMetrics",title:"Metric - Y Axis",description:"What do you want each line and bar to measure?",subSectionDefinition:{line:{type:"metrics",title:"Line",namespace:"metrics.line"},bar:{type:"metrics",title:"Bar",namespace:"metrics.bar"}}},combo_chart_dimension:{type:"comboChartDimension",title:"Grouping - X Axis",description:""},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this combo chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"},yDual:{title:"Y Dual Axis",description:"",namespace:"yDual"},"yDual.prefix":{title:"Prefix",description:"",namespace:"yDual.prefix"},"yDual.postfix":{title:"Postfix",description:"",namespace:"yDual.postfix"},"yDual.format":{title:"Format",description:"",namespace:"yDual.format"},"yDual.count":{title:"Label count",description:"",namespace:"yDual.count"},"yDual.axis_title":{title:"Title",description:"",namespace:"yDual.axis_title"},dual_axes:{title:"Enable Dual Axes"}}},goal_line:{type:"goalLine",title:"Goal Lines",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:"",subSectionDefinition:{bar:{title:"Bar",namespace:"bar"},line:{title:"Line",namespace:"line"}}}}},Ad=t=>({title:X1.title,description:X1.description,servicesClass:"ComboChartV2",namespace:X1.namespace,dump:e=>e,load:e=>sd(e,t.queryEngineConfig),setAttributes:tN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"comboChartV2",barMeasure:[],lineMeasure:[],lineDimension:[],barDimension:[],timeDimension:null,displayTitle:"",displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",protectedByOrganisation:void 0,xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,yDualAxisPostfix:"",yDualAxisPrefix:"",yDualAxisFormat:null,xAxisFormat:null,legend:!0,labels:!1,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",approxDualYAxisLabelCount:"auto",goalLines:void 0,conditionalFormattingRules:void 0,axisTitles:void 0,tags:[],isDualAxisEnabled:!1,...o}),createFeedback:xe,schema:ld(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.lineMeasure.length>0||e.barMeasure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"comboChart");return this.init(e.id,{barMeasure:[o[0]],lineMeasure:[o[1]||o[0]],barDimension:n,lineDimension:n})},dataPanelConfig:()=>[P(X1,"data_set"),P(X1,"views"),{...P(X1,"labelled_metrics"),subSection:[{...X1.data_panel.labelled_metrics?.subSectionDefinition.line,propKey:"lineMeasure",allowsMultiple:!0},{...X1.data_panel.labelled_metrics?.subSectionDefinition.bar,propKey:"barMeasure",allowsMultiple:!0}]},P(X1,"combo_chart_dimension"),P(X1,"sort"),P(X1,"filter"),P(X1,"custom_metrics"),P(X1,"limit")],formatPanelConfig:()=>[F1(X1),{...P(X1,"chart_styles"),subSection:[X1.format_panel.chart_styles?.subSectionDefinition.stacked,X1.format_panel.chart_styles?.subSectionDefinition.legend,X1.format_panel.chart_styles?.subSectionDefinition.labels]},Ve(X1),{...P(X1,"conditional_formatting"),ruleType:"backgroundColor",subSection:[{title:X1.format_panel.conditional_formatting?.subSectionDefinition?.bar.title??"",namespace:X1.format_panel.conditional_formatting?.subSectionDefinition?.bar.namespace,propKey:"bar"},{title:X1.format_panel.conditional_formatting?.subSectionDefinition?.line.title??"",namespace:X1.format_panel.conditional_formatting?.subSectionDefinition?.line.namespace,propKey:"line"}]},P(X1,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!1}}),Cl=t=>m.object({...Y1(t.attributesSchemaOptions),type:m.valid("custom").required(),customViewId:m.string().required(),tags:H1()}),vn={title:"Progress",description:"Used to show progress towards goals, completion of tasks, or as indicators of performance metrics.",namespace:"progress",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this progress?"},views:{type:"views",title:"View",description:""}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}}}},ud=t=>({title:vn.title,description:vn.description,namespace:vn.namespace,servicesClass:"Custom",dump:e=>e,load:e=>({type:"custom",viewId:k0(e.viewId),customViewId:e.customViewId,displayTitle:e.displayTitle,displaySubject:e.displaySubject,dataSetId:e.dataSetId,tags:e.tags??[],protectedByOrganisation:e.protectedByOrganisation}),setAttributes:(e,o)=>I1(e,o,Cl(t)),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"custom",viewId:k0(o?.viewId),customViewId:o?.customViewId||"",dataSetId:e,displaySubject:"",displayTitle:"",tags:[],protectedByOrganisation:void 0}),schema:Cl(t),removeField(e,o){return e},isRunnable:()=>!0,autoGenerate(e){return this.init(e.id)},dataPanelConfig:()=>[P(vn,"data_set"),P(vn,"views")],formatPanelConfig:()=>[F1(vn)],supportedCustomFields:{percentages:!1,simpleMaths:!1,rules:!1,aggregateMaths:!1,roundedNumbers:!1,dateCalculations:!1,conditional:!1,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{colorGradient:!1,parameters:!1}}),dd=t=>m.object({...Y1(t.attributesSchemaOptions),type:m.valid("dataTable").required(),measure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)).required(),dimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions).required(),order:m.array().items(uo(t.queryEngineConfig)),timeDimension:m.alternatives(In(t.queryEngineConfig.supportedTimeTruncFunctions),m.valid(null)),limit:Vt().required(),offset:m.number().min(0),filter:c2(t.queryEngineConfig),prefixes:m.array().items(kA),exportNames:m.object(),numberFormat:m.object(),conditionalFormattingRules:ht(t.queryEngineConfig),dateTimeFormat:m.string(),protectedFields:m.object({dimension:DA(t.queryEngineConfig),measure:lO(t.queryEngineConfig)}).unknown(!0),sizing:PA,tags:H1(),hiddenFields:m.array().items(m.string()),tableDrilldown:m.array().items(m.object({subsetDimension:m.string().required().description("The ID of the field in the data set to drill down by.")})).description("Drilldown configuration for a pivot table."),summarizeKPIs:m.boolean().default(!1).description("Enable/disable KPI summarisation above column headers."),visualFormatColumns:m.array().items(m.string().min(1)).default([]).sparse(!1).description("Array of column names to display as horizontal bars."),results:m.array().items(m.object({content:m.array().required(),fields:m.array().items(m.object({id:m.string().required(),publicName:m.string().required(),dataType:m.string().required(),hidden:m.boolean(),fieldId:m.string().required(),function:m.string().required(),outputDataType:m.string().required()}).unknown(!0)).required(),hasMoreResults:m.alternatives([m.boolean(),m.valid(null)])}).unknown(!0)).description("Query results data structure containing fields and content.")}),oN=t=>(e,o)=>{let n=I1(e,o,dd(t));const b=e.dimension.filter(c=>c.pivot==="y").length,a=o.dimension?.filter(c=>c.pivot==="y").length;return(a===void 0?!1:b!==a)&&!o.visualFormatColumns&&(n.visualFormatColumns=[]),n=xt(n),n},fe={title:"Pivot table",description:"Transforms data into a table with dynamic rows and columns.",namespace:"pivot_table",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this data table?"},views:{type:"views",title:"View",description:""},field_columns:{type:"fieldCollector",title:"Group columns",callToAction:"Add group column",description:""},field_rows:{type:"fieldCollector",title:"Group rows",description:"Which field do you want to group each row by? An example might be an employee ID or geographical location",callToAction:"Add group row"},drilldown:{type:"drilldown",title:"Drilldown",description:"Drilldowns in a pivot table reveals underlying data contributing to summarized figures upon clicking."},field_metrics:{type:"fieldCollector",title:"Metrics",description:"Select the columns to show in the data table",callToAction:"Add metric"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this data table."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},pagination:{type:"pagination",title:"Pagination",description:"Define the size for each page in the table"}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},kpi_summarisation:{type:"kpiSummarisation",title:"",description:"Show aggregate statistics above each column."},visual_format:{type:"visualFormat",title:"Visual Format",description:"Configure how the group column is displayed visually."},format:{type:"format",title:"Format",description:"",subSectionDefinition:{time:{type:"time",title:"Time",description:"",namespace:"time"}}},prefixes:{type:"prefixes",title:"Prefixes",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""}}},wa=(t,e)=>t.filter(o=>o.pivot==e),rN=t=>t.map(e=>({...e,pivot:e.pivot?e.pivot:"x"})),fd=t=>({title:fe.title,description:fe.description,servicesClass:"PivotTable",namespace:fe.namespace,dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension||null),displayTitle:e.displayTitle,dimension:rN(Zo({timeDimension:e.timeDimension,dimension:Oe(e.dimension)})),displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,protectedFields:e.protectedFields,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,offset:e.offset,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),dateTimeFormat:e.dateTimeFormat,prefixes:e.prefixes,exportNames:e.exportNames,numberFormat:e.numberFormat,sizing:e.sizing,tableDrilldown:k_(e.tableDrilldown),tags:e.tags??[],hiddenFields:e.hiddenFields??[],summarizeKPIs:e.summarizeKPIs??!1,visualFormatColumns:e.visualFormatColumns??[]}),setAttributes:oN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"dataTable",measure:[],displayTitle:"",dimension:[],protectedByOrganisation:void 0,displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:50,offset:0,conditionalFormattingRules:[],protectedFields:void 0,prefixes:[],dateTimeFormat:"DD MMMM YYYY, hh:mm",exportNames:{},numberFormat:{},sizing:{},tableDrilldown:[],tags:[],hiddenFields:[],summarizeKPIs:!1,visualFormatColumns:[],...o}),schema:dd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"dataTable");return this.init(e.id,{measure:o.slice(0,5),dimension:n})},dataPanelConfig:()=>[P(fe,"data_set"),P(fe,"views"),{...P(fe,"field_columns"),fieldFilterOptions:{onlyFieldTypes:["boolean","number","string","date_time"],onlyDimensions:!0,removePercentage:!0,removeSimpleMaths:!0,removeAggregateMaths:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o,n)=>({dimension:[...e.map(b=>({...b,pivot:"y"})),...wa(n.dimension,"x")]}),getValues:e=>wa(e.dimension,"y"),testId:"add-pivot-dimension"},{...P(fe,"field_rows"),fieldFilterOptions:{onlyFieldTypes:["boolean","number","string","date_time"],onlyDimensions:!0,removePercentage:!0,removeSimpleMaths:!0,removeAggregateMaths:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o,n)=>({dimension:[...e.map(b=>({...b,pivot:"x"})),...wa(n.dimension,"y")]}),getValues:e=>wa(e.dimension,"x"),testId:"add-dimension"},{...P(fe,"field_metrics"),fieldFilterOptions:{forComponent:"dataTable"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},P(fe,"sort"),{...P(fe,"pagination"),options:id},P(fe,"filter"),P(fe,"custom_metrics")],formatPanelConfig:()=>[F1(fe),P(fe,"kpi_summarisation"),P(fe,"visual_format"),{...P(fe,"format"),subSection:[fe.format_panel.format?.subSectionDefinition.time]},P(fe,"prefixes"),{...P(fe,"conditional_formatting"),ruleType:"backgroundColor"}],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!0}}),nN=t=>(e,o)=>{let n=I1(e,o,Gn(t));return n=xt(n),n},Te={title:"Funnel chart",description:"Track conversion between stages of a process.",namespace:"funnel_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bar chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each bar to measure?",callToAction:"Add metric"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each bar to represent? An example might be a `product category` field to represent each category as a bar.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this bar chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},headline:{type:"headline",title:"Headline",description:""},goal_line:{type:"goalLine",title:"Goal Lines",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""}}},qd=t=>({title:Te.title,description:Te.description,servicesClass:"FunnelChart",namespace:Te.namespace,dump:e=>e,load:e=>({...e,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),viewId:k0(e.viewId),filter:V1(e.filter),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),tags:e.tags??[],labels:e.labels??!1,parameters:ft(e.parameters)}),setAttributes:nN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"funnelChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",viewId:k0(o?.viewId),filter:[],parameters:{},order:[],dataSetId:e,limit:5e3,conditionalFormattingRules:[],protectedByOrganisation:void 0,protectedFields:void 0,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,legend:!0,labels:!1,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",axisTitles:void 0,tags:[],...o}),createFeedback:xe,schema:Gn(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"funnelChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(Te,"data_set"),P(Te,"views"),{...P(Te,"field_y_axis"),fieldFilterOptions:{forComponent:"funnelChart"},preSetPartialAttributes:e=>({measure:e}),allowsMultiple:!1,maxAllowed:1,getValues:e=>e.measure,testId:"metric-input"},{...P(Te,"field_x_axis"),fieldFilterOptions:{forComponent:"funnelChart",onlyDimensions:!0},allowsMultiple:!1,preventDuplicates:!0,preSetPartialAttributes:(e,o)=>Nr(e,o),getValues:e=>Zo(e),maxAllowed:1,testId:"add-dimension"},P(Te,"sort"),P(Te,"filter"),P(Te,"custom_metrics"),P(Te,"limit")],formatPanelConfig:()=>[F1(Te),{...P(Te,"chart_styles"),subSection:[Te.format_panel.chart_styles?.subSectionDefinition.legend,Te.format_panel.chart_styles?.subSectionDefinition.labels]},Ve(Te),{...P(Te,"conditional_formatting"),ruleType:"backgroundColor"},P(Te,"headline")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),iN=t=>(e,o)=>{let n=I1(e,o,Gn(t));return n=xt(n),n},De={title:"Horizontal bar chart",description:"Similar to a BarChart but with horizontal bars.",namespace:"horizontal_bar_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bar chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each bar to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this bar chart, what information do you want to see next?"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each bar to represent? An example might be a `product category` field to represent each category as a bar.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this bar chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},headline:{type:"headline",title:"Headline",description:""},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""}}},Wd=t=>({title:De.title,description:De.description,servicesClass:"HorizontalBarChart",namespace:De.namespace,dump:e=>e,load:e=>({...e,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),viewId:k0(e.viewId),filter:V1(e.filter),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),tags:e.tags??[],parameters:ft(e.parameters)}),setAttributes:iN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"horizontalBarChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,conditionalFormattingRules:[],protectedByOrganisation:void 0,protectedFields:void 0,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,legend:!0,parameters:{},drilldown:[],approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",axisTitles:void 0,tags:[],drilldownOptions:void 0,...o}),createFeedback:xe,schema:Gn(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"horizontalBarChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(De,"data_set"),P(De,"views"),{...P(De,"field_y_axis"),fieldFilterOptions:{forComponent:"horizontalBarChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(De,"field_x_axis"),fieldFilterOptions:{forComponent:"horizontalBarChart",onlyDimensions:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o)=>Nr(e,o),getValues:e=>Zo(e),maxAllowed:2,testId:"add-dimension"},P(De,"sort"),P(De,"filter"),{...P(De,"drilldown"),options:{property:"drilldownOptions"}},P(De,"custom_metrics"),P(De,"limit")],formatPanelConfig:()=>[F1(De),Un(De,!1,!0),Ve(De),{...P(De,"conditional_formatting"),ruleType:"backgroundColor"},P(De,"headline")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),hd=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),type:m.valid("horizontalBarChartV2").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),conditionalFormattingRules:ht(t.queryEngineConfig),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1()}),qe={title:"Horizontal bar chart",description:"Ideal for illustrating changes and trends over time with bar graphs.",namespace:"horizontal_bar_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this bar chart?"},views:{type:"views",title:"View",description:""},field_x_axis:{type:"fieldCollector",title:"Metric - X Axis",description:"What do you want each bar to measure?",callToAction:"Add metric"},field_y_axis:{type:"fieldCollector",title:"Grouping - Y Axis",description:"What do you want each bar to represent? An example might be a `product category` field to represent each category as a bar.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this bar chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this bar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{stacked:{type:"stacked",title:"Layout",description:"",namespace:"stacked"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headline",description:""},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}},bN=t=>(e,o)=>{let n=I1(e,o,hd(t));return n=xt(n),n},md=t=>({title:qe.title,description:qe.description,servicesClass:"HorizontalBarChart",namespace:qe.namespace,dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),legend:e.legend,labels:e.labels,goalLines:e.goalLines,headline:ho(e.headline,e.timeDimension),parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,tags:e.tags??[],stacked:e.stacked}),setAttributes:bN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"horizontalBarChartV2",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,conditionalFormattingRules:[],legend:!0,labels:!1,goalLines:void 0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],...o}),createFeedback:xe,schema:hd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"barChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(qe,"data_set"),P(qe,"views"),{...P(qe,"field_x_axis"),fieldFilterOptions:{forComponent:"horizontalBarChartV2"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(qe,"field_y_axis"),fieldFilterOptions:{forComponent:"horizontalBarChartV2",onlyDimensions:!0},preventDuplicates:!1,preSetPartialAttributes:e=>({dimension:[...e]}),getValues:e=>[...e.dimension],maxAllowed:2,testId:"add-dimension"},P(qe,"sort"),P(qe,"filter"),P(qe,"custom_metrics"),P(qe,"limit")],formatPanelConfig:()=>[F1(qe),{...P(qe,"chart_styles"),subSection:[qe.format_panel.chart_styles?.subSectionDefinition.stacked,qe.format_panel.chart_styles?.subSectionDefinition.legend,qe.format_panel.chart_styles?.subSectionDefinition.labels],labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}},Ve(qe),{...P(qe,"conditional_formatting"),ruleType:"lineColor"},P(qe,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),gd=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),type:m.valid("lineChart").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),lineCurve:UM,conditionalFormattingRules:ht(t.queryEngineConfig),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1(),trends:sz()}),pN=t=>(e,o)=>{let n=I1(e,o,gd(t));return n=xt(n),n},et={title:"Line chart",description:"Ideal for illustrating changes and trends over time with line graphs.",namespace:"line_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this line chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each line to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this line chart, what information do you want to see next?"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each line to represent? An example might be a `product category` field to represent each category as a line.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this line chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this line chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{curve:{type:"curve",title:"Line Style",description:"",namespace:"curve"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headline",description:""},trends:{type:"trends",title:"Trend lines",description:"Specify a trend type for the line chart."},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}},yd=t=>({title:"Line chart",description:"Ideal for illustrating changes and trends over time with line graphs.",servicesClass:"LineChart",namespace:"line_chart",dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),timeDimension:e.timeDimension,displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,lineCurve:e.lineCurve,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),drilldown:e.drilldown,legend:e.legend,goalLines:e.goalLines,headline:ho(e.headline,e.timeDimension),parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,tags:e.tags??[],trends:e.trends??[]}),setAttributes:pN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"lineChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,lineCurve:"natural",conditionalFormattingRules:[],drilldown:[],legend:!0,goalLines:void 0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],trends:[],...o}),createFeedback:xe,schema:gd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"lineChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(et,"data_set"),P(et,"views"),{...P(et,"field_y_axis"),fieldFilterOptions:{forComponent:"lineChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(et,"field_x_axis"),fieldFilterOptions:{forComponent:"lineChart",onlyDimensions:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o)=>Nr(e,o),getValues:e=>Zo(e),maxAllowed:2,testId:"add-dimension"},P(et,"sort"),P(et,"filter"),P(et,"custom_metrics"),P(et,"limit")],formatPanelConfig:()=>[F1(et),Un(et,!0,!1),Ve(et),{...P(et,"conditional_formatting"),ruleType:"lineColor"},P(et,"goal_line"),P(et,"trends"),P(et,"headline")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),Rd=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),stacked:m.valid(!0,!1,"100%"),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),type:m.valid("lineChartV2").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),lineCurve:UM,conditionalFormattingRules:ht(t.queryEngineConfig),goalLines:Ht(),axisTitles:Wt(),headline:X2(),tags:H1(),trends:sz(),isDualAxisEnabled:m.valid(!0,!1).optional()}),aN=t=>(e,o)=>{let n=I1(e,o,Rd(t));return e.measure?.length!==2&&(n.isDualAxisEnabled=!1),n=xt(n),n},tt={title:"Line chart",description:"Ideal for illustrating changes and trends over time with line graphs.",namespace:"line_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this line chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each line to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this line chart, what information do you want to see next?"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each line to represent? An example might be a `product category` field to represent each category as a line.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this line chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this line chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{curve:{type:"curve",title:"Line Style",description:"",namespace:"curve"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"},yDual:{title:"Y Dual Axis",description:"",namespace:"yDual"},"yDual.prefix":{title:"Prefix",description:"",namespace:"yDual.prefix"},"yDual.postfix":{title:"Postfix",description:"",namespace:"yDual.postfix"},"yDual.format":{title:"Format",description:"",namespace:"yDual.format"},"yDual.count":{title:"Label count",description:"",namespace:"yDual.count"},"yDual.axis_title":{title:"Title",description:"",namespace:"yDual.axis_title"},dual_axes:{title:"Enable Dual Axes"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},headline:{type:"headline",title:"Headline",description:""},trends:{type:"trends",title:"Trend lines",description:"Specify a trend type for the line chart."},goal_line:{type:"goalLine",title:"Goal Lines",description:""}}},Ld=t=>({title:"Line chart",description:"Ideal for illustrating changes and trends over time with line graphs.",servicesClass:"LineChart",namespace:"line_chart",dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisFormat:e.xAxisFormat,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisFormat:e.yAxisFormat,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yDualAxisFormat:e.yDualAxisFormat,yDualAxisPostfix:e.yDualAxisPostfix,yDualAxisPrefix:e.yDualAxisPrefix,lineCurve:e.lineCurve,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),drilldown:e.drilldown,legend:e.legend,labels:e.labels,goalLines:e.goalLines,headline:ho(e.headline,e.timeDimension),parameters:ft(e.parameters),approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),approxDualYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,tags:e.tags??[],trends:e.trends??[],isDualAxisEnabled:e.isDualAxisEnabled??!1}),setAttributes:aN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"lineChartV2",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisFormat:null,xAxisPostfix:"",xAxisPrefix:"",yAxisFormat:null,yAxisPostfix:"",yAxisPrefix:"",yDualAxisFormat:null,yDualAxisPostfix:"",yDualAxisPrefix:"",lineCurve:"natural",conditionalFormattingRules:[],drilldown:[],legend:!0,labels:!1,goalLines:void 0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],trends:[],isDualAxisEnabled:!1,...o}),createFeedback:xe,schema:Rd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"lineChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(tt,"data_set"),P(tt,"views"),{...P(tt,"field_y_axis"),fieldFilterOptions:{forComponent:"lineChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(tt,"field_x_axis"),fieldFilterOptions:{forComponent:"lineChart",onlyDimensions:!0},preventDuplicates:!1,preSetPartialAttributes:e=>({dimension:[...e]}),getValues:e=>[...e.dimension],maxAllowed:2,testId:"add-dimension"},P(tt,"sort"),P(tt,"filter"),P(tt,"custom_metrics"),P(tt,"limit")],formatPanelConfig:()=>[F1(tt),{...P(tt,"chart_styles"),subSection:[tt.format_panel.chart_styles?.subSectionDefinition.legend,tt.format_panel.chart_styles?.subSectionDefinition.labels]},Ve(tt),{...P(tt,"conditional_formatting"),ruleType:"lineColor"},P(tt,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),vd=t=>m.object({...Y1(t.attributesSchemaOptions),type:m.valid("mercatorMap").required(),measure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),filter:c2(t.queryEngineConfig),limit:Vt(),dimension:St({},t.attributesSchemaOptions),labelFormat:m.alternatives(m.string(),m.valid(null)),noDataColor:m.string().required(),backgroundColor:m.string().required(),maxValueColor:m.string().required(),minValueColor:m.string().required(),position:m.object({scale:m.number(),centerX:m.number(),centerY:m.number()}),tags:H1()}),MN=t=>(e,o)=>I1(e,o,vd(t)),lt={title:"Country map",description:"A map component based on the Mercator projection, suitable for geographical data visualization.",namespace:"mercator_map",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use for this map?"},views:{type:"views",title:"View",description:""},field_metrics:{type:"fieldCollector",title:"Metric",description:"What do you want to show?",callToAction:"Add metric"},field_country:{type:"fieldCollector",title:"Country",description:"Which field contains the country code required to group results on?",callToAction:"Set country"},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use on this map."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this map."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Map Settings",description:"",subSectionDefinition:{number_format:{type:"numberFormat",title:"Value format",description:"",namespace:"number_format"}}},map_colors:{type:"mapColors",title:"Map colors",description:""}}},_d=t=>({title:lt.title,description:lt.description,servicesClass:"MercatorMap",namespace:lt.namespace,dump:e=>e,load:e=>({dataSetId:e.dataSetId,displaySubject:e.displaySubject,displayTitle:e.displayTitle,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),type:"mercatorMap",dimension:e.dimension,limit:e.limit,measure:y1(e.measure),labelFormat:e.labelFormat,position:e.position,filter:V1(e.filter),noDataColor:e.noDataColor||"#ffffff",backgroundColor:e.backgroundColor||"#EFF5F6",maxValueColor:e.maxValueColor||"#000000",minValueColor:e.minValueColor||"#e0e0e0",tags:e.tags??[]}),setAttributes:MN(t),validate:()=>[],init:(e,o)=>({type:"mercatorMap",dataSetId:e,dimension:[],measure:[],displaySubject:"",displayTitle:"",limit:5e3,filter:[],viewId:k0(o?.viewId),labelFormat:null,noDataColor:"#ffffff",backgroundColor:"#EFF5F6",maxValueColor:"#000000",minValueColor:"#e0e0e0",tags:[],...o}),schema:vd(t),removeField(e,o){return e},isRunnable:e=>!!(e.dimension&&e.dimension[0]&&e.measure&&e.measure[0]),autoGenerate(e){return this.init(e.id)},dataPanelConfig:()=>[P(lt,"data_set"),P(lt,"views"),{...P(lt,"field_metrics"),type:"fieldCollector",fieldFilterOptions:{forComponent:"mercatorMap"},maxAllowed:1,preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(lt,"field_country"),fieldFilterOptions:{onlyDimensions:!0,onlyFieldTypes:["string"],removeRuleGrouping:!1,removeSimpleMaths:!0,removePercentage:!0,removeAggregateMaths:!0},maxAllowed:1,preSetPartialAttributes:e=>({dimension:e}),getValues:e=>e.dimension,testId:"add-dimension"},P(lt,"filter"),P(lt,"custom_metrics"),P(lt,"limit")],formatPanelConfig:()=>[F1(lt),{...P(lt,"chart_styles"),subSection:[lt.format_panel.chart_styles?.subSectionDefinition.number_format]},P(lt,"map_colors")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!1}}),El=t=>m.object({...Y1(t.attributesSchemaOptions),measure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),dimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),filter:c2(t.queryEngineConfig),timeDimension:m.valid(null),order:m.array().items(uo(t.queryEngineConfig)),type:m.valid("pieChart").required(),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),limit:Vt(),labelsAsPercentage:m.boolean(),conditionalFormattingRules:ht(t.queryEngineConfig),labelFormat:m.alternatives(m.string(),m.valid(null)),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),tags:H1(),drilldownOptions:GO(t.queryEngineConfig)}),Be={title:"Pie chart",description:"Represents data in a circular pie-like format, useful for showing proportions.",namespace:"pie_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this pie chart?"},views:{type:"views",title:"View",description:""},field_metrics:{type:"fieldCollector",title:"Metric",description:"What do you want each segment to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this bar chart, what information do you want to see next?"},field_grouping:{type:"fieldCollector",title:"Grouping",description:"How do you want to split each section of the pie chart?",callToAction:"Add comparison"},sort:{type:"sort",title:"Sort",description:"Choose the order of segments in the pie chart"},filter:{type:"filter",title:"Filters",description:"Only include the information you want in this pie chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Limit the number of segments shown on this pie chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{number_format:{type:"numberFormat",title:"Format",description:"",namespace:"number_format"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""}}},Nd=t=>({title:Be.title,description:Be.description,servicesClass:"PieChart",namespace:Be.namespace,dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),viewId:k0(e.viewId),timeDimension:e.timeDimension,displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,conditionalFormattingRules:wt(t.queryEngineConfig,e.conditionalFormattingRules),labelsAsPercentage:e.labelsAsPercentage,legend:e.legend,labels:e.labels,labelFormat:e.labelFormat,parameters:ft(e.parameters),tags:e.tags??[],drilldownOptions:e.drilldownOptions}),setAttributes:(e,o)=>I1(e,o,El(t)),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"pieChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,conditionalFormattingRules:[],labelsAsPercentage:!1,legend:!0,labels:!1,labelFormat:null,parameters:{},tags:[],drilldownOptions:void 0,...o}),createFeedback:xe,schema:El(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"pieChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(Be,"data_set"),P(Be,"views"),{...P(Be,"field_metrics"),fieldFilterOptions:{forComponent:"pieChart"},maxAllowed:1,preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(Be,"field_grouping"),fieldFilterOptions:{onlyFieldTypes:["boolean","number","string"],onlyDimensions:!0,removePercentage:!0,removeSimpleMaths:!0,removeAggregateMaths:!0},maxAllowed:1,preSetPartialAttributes:e=>({dimension:e}),getValues:e=>e.dimension,testId:"add-dimension"},P(Be,"sort"),P(Be,"filter"),{...P(Be,"drilldown"),options:{property:"drilldownOptions"}},P(Be,"custom_metrics"),P(Be,"limit")],formatPanelConfig:()=>[F1(Be),{...P(Be,"conditional_formatting"),ruleType:"backgroundColor"},{...P(Be,"chart_styles"),subSection:[Be.format_panel.chart_styles?.subSectionDefinition.legend,Be.format_panel.chart_styles?.subSectionDefinition.labels,Be.format_panel.chart_styles?.subSectionDefinition.number_format]}],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1}});var rO=(t=>(t.Linear="linear",t.Circular="circular",t))(rO||{});const Dl=t=>m.object({...Y1(t.attributesSchemaOptions),measure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),filter:c2(t.queryEngineConfig),type:m.valid("progress").required(),limit:Vt(),conditionalFormattingRules:ht(t.queryEngineConfig),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),goals:m.array().items(m.object({field:m.string().required().description("ID of the field in the data set to which the goal applies too"),value:m.number().required().description("Value of which the goal is set")})).description("Set the target value that progression is shown towards."),progressType:m.array().items(m.object({field:m.string().required().description("ID of the field to set the progress type of"),value:m.valid(rO.Linear,rO.Circular).required()})).description("Set the display type of the progress view"),formatter:m.object().pattern(m.string(),m.string()),prefixes:m.object().pattern(m.string(),m.string()),postfixes:m.object().pattern(m.string(),m.string()),tags:H1()}),Td=t=>{if("singleMeasure"in t){let e={},o={},n=[],b={};return t.singleMeasure&&(n=[t.singleMeasure],e[Vi(t.singleMeasure)]=t.prefix,o[Vi(t.singleMeasure)]=t.postfix,b[Vi(t.singleMeasure)]=t.formatter),{type:"singleStat",prefixes:e,postfixes:o,measure:n,formatter:b,fontSize:t.fontSize,displayTitle:t.displayTitle,displaySubject:t.displaySubject,tags:t.tags,filter:V1(t.filter),dataSetId:t.dataSetId,limit:t.limit,conditionalFormattingRules:t.conditionalFormattingRules,deltaTimeDimension:t.deltaTimeDimension,parameters:ft(t.parameters)}}else return{...t,filter:V1(t.filter)}},ot={title:"Progress",description:"Used to show progress towards goals, completion of tasks, or as indicators of performance metrics.",namespace:"progress",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this progress?"},views:{type:"views",title:"View",description:""},progress_goals:{type:"progressGoals",title:"Metric",description:"What do you want to show in each progress bar?"},filter:{type:"filter",title:"Filters",description:"Only include the information you want in this progress chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},stats_labels:{type:"statsLabels",title:"Labels",description:"",subSectionDefinition:{prefix:{title:"Prefix",description:"",namespace:"prefix"},postfix:{title:"Postfix",description:"",namespace:"postfix"},format:{title:"Format",description:"",namespace:"format"},count:{title:"Label count",description:"",namespace:"count"}}},progress_type:{type:"progressType",title:"Type",description:""}}},Bd=t=>({title:ot.title,description:ot.description,dump:e=>e,namespace:ot.namespace,servicesClass:"Progress",load:e=>{const o=Td(e);return{type:"progress",measure:y1(o.measure),displayTitle:o.displayTitle,displaySubject:o.displaySubject,protectedByOrganisation:o.protectedByOrganisation,viewId:k0(o.viewId),filter:o.filter,dataSetId:o.dataSetId,limit:o.limit,conditionalFormattingRules:o.conditionalFormattingRules,parameters:o.parameters,prefixes:o.prefixes,postfixes:o.postfixes,formatter:o.formatter,goals:o.goals,progressType:o.progressType,tags:o.tags??[]}},setAttributes:(e,o)=>I1(e,o,Dl(t)),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"progress",measure:[],displayTitle:"",protectedByOrganisation:void 0,displaySubject:"",viewId:k0(o?.viewId),filter:[],dataSetId:e,limit:5e3,conditionalFormattingRules:[],parameters:{},formatter:{},progressType:[],goals:[],postfixes:{},prefixes:{},tags:[],...o}),schema:Dl(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){return this.init(e.id)},dataPanelConfig:()=>[P(ot,"data_set"),P(ot,"views"),P(ot,"progress_goals"),P(ot,"filter"),P(ot,"custom_metrics")],formatPanelConfig:()=>[F1(ot),P(ot,"progress_type"),{...P(ot,"stats_labels"),prefix:Vo(ot,"prefix"),postfix:Vo(ot,"postfix"),format:Vo(ot,"format"),count:Vo(ot,"count")}],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,aggregateMaths:!0,rules:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!1}}),Sd=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),legend:m.valid(!0,!1),type:m.valid("radarChart").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),axisTitles:Wt(),headline:X2(),tags:H1()}),zN=t=>(e,o)=>{let n=I1(e,o,Sd(t));return n=xt(n),n},At={title:"Radar chart",description:"Visualizes multiple variables as points on axes starting from the same center point, creating a spider web-like shape. Perfect for comparing strengths and weaknesses across multiple dimensions or showing performance metrics across different categories.",namespace:"radar_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this radar chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each line to measure?",callToAction:"Add metric"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each line to represent? An example might be a `product category` field to represent each category as a line.",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this radar chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this radar chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{curve:{type:"curve",title:"Line Style",description:"",namespace:"curve"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"Grouping - X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},y:{title:"Metric - Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"}}}}},wd=t=>({title:At.title,description:At.description,servicesClass:"RadarChart",namespace:At.namespace,dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),legend:e.legend,tags:e.tags??[]}),setAttributes:zN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"radarChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,legend:!0,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",parameters:{},axisTitles:void 0,headline:void 0,tags:[],...o}),createFeedback:xe,schema:Sd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"radarChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(At,"data_set"),P(At,"views"),{...P(At,"field_y_axis"),fieldFilterOptions:{forComponent:"radarChart"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(At,"field_x_axis"),fieldFilterOptions:{forComponent:"radarChart",onlyDimensions:!0},preventDuplicates:!1,preSetPartialAttributes:e=>({dimension:[...e]}),getValues:e=>[...e.dimension],maxAllowed:1,testId:"add-dimension"},P(At,"sort"),P(At,"filter"),P(At,"custom_metrics"),P(At,"limit")],formatPanelConfig:()=>[F1(At),Un(At,!1,!1),Ve(At)],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),xd=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),type:m.valid("richText").required(),tags:H1(),content:m.any()}),cN=t=>(e,o)=>I1(e,o,xd(t)),Tt={title:"Rich text",description:"Add your data to a rich text component.",namespace:"rich_text",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this rich text view?"},views:{type:"views",title:"View",description:""},field_metrics:{type:"fieldCollector",title:"Metrics",description:"What metrics do you need to collect?",callToAction:"Add metric"},field_grouping:{type:"fieldCollector",title:"Grouping",description:"How do you want to group your results?",callToAction:"Add grouping"},sort:{type:"sort",title:"Sort",description:"How should the results be ordered?"},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this text view."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to use on this text view."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},rich_text:{type:"richText",title:"Text format",description:""}}},sN={type:"doc",content:[{type:"heading",attrs:{level:1},content:[{type:"text",text:"Rich text views"}]},{type:"paragraph",content:[{type:"text",text:"In this view, you can add any "},{type:"text",marks:[{type:"bold"}],text:"text based content"},{type:"text",text:" to your dashboard, and "},{type:"text",marks:[{type:"italic"}],text:"mix in your data with it!"}]},{type:"paragraph",content:[{type:"text",text:"Remember to use the "},{type:"text",marks:[{type:"bold"}],text:"format"},{type:"text",text:" "},{type:"text",marks:[{type:"bold"}],text:"tab"},{type:"text",text:" to "},{type:"text",marks:[{type:"underline"}],text:"style"},{type:"text",text:" your contents"}]},{type:"heading",attrs:{level:2},content:[{type:"text",text:"Adding data?"}]},{type:"paragraph",content:[{type:"text",text:"You can add data to your text content by using templating. For example, is how to take metrics "},{type:"text",marks:[{type:"code"}],text:'"Metric Name"'},{type:"text",text:" and "},{type:"text",marks:[{type:"code"}],text:'"A different metric name" '},{type:"text",text:"from the first row of the results, and show it on this view;"}]},{type:"codeBlock",attrs:{language:null},content:[{type:"text",text:`{{ data.first.metric_name }}
|
|
60
60
|
{{ data.first.a_different_metric_name }}
|
|
61
61
|
`}]}]},Xd=t=>({title:Tt.title,description:Tt.description,servicesClass:"RichText",namespace:Tt.namespace,dump:e=>e,load:e=>({dataSetId:e.dataSetId,displaySubject:e.displaySubject,displayTitle:e.displayTitle,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),type:"richText",dimension:e.dimension,limit:e.limit,measure:y1(e.measure),filter:V1(e.filter),tags:e.tags??[],content:e.content||"",order:e.order||[],timeDimension:e.timeDimension||null}),setAttributes:cN(t),validate:()=>[],init:(e,o)=>({type:"richText",dataSetId:e,dimension:[],measure:[],displaySubject:"",displayTitle:"",limit:5e3,filter:[],viewId:k0(o?.viewId),tags:[],order:[],timeDimension:null,content:sN,...o}),schema:xd(t),removeField(e,o){return e},isRunnable:e=>!!(e.measure&&e.measure[0]),autoGenerate(e){return this.init(e.id)},dataPanelConfig:()=>[P(Tt,"data_set"),P(Tt,"views"),{...P(Tt,"field_metrics"),fieldFilterOptions:{forComponent:"richText",onlyMeasures:!0},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(Tt,"field_grouping"),fieldFilterOptions:{forComponent:"richText",onlyDimensions:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o)=>Nr(e,o),getValues:e=>Zo(e),maxAllowed:2,testId:"add-dimension"},P(Tt,"sort"),P(Tt,"filter"),P(Tt,"custom_metrics"),P(Tt,"limit")],formatPanelConfig:()=>[F1(Tt),{...P(Tt,"rich_text")}],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!1}}),Cd=t=>m.object({...Y1(t.attributesSchemaOptions),xMeasure:me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions).allow(null),yMeasure:me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions).allow(null),dimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),order:m.array().items(uo(t.queryEngineConfig)),limit:Vt(),legend:m.valid(!0,!1),offset:m.number().min(0),filter:c2(t.queryEngineConfig),type:m.valid("scatterChart").required(),timeDimension:m.valid(null),xAxisPrefix:m.string().allow(""),yAxisPrefix:m.string().allow(""),xAxisPostfix:m.string().allow(""),yAxisPostfix:m.string().allow(""),yAxisFormat:m.alternatives(m.string(),m.valid(null)),xAxisFormat:m.alternatives(m.string(),m.valid(null)),approxYAxisLabelCount:Ut,approxXAxisLabelCount:Ut,goalLines:Ht(),quadrants:IA(),axisTitles:Wt(),tags:H1()}),ON=t=>(e,o)=>{let n=I1(e,o,Cd(t)),b=[];return n.xMeasure&&b.push(n.xMeasure),n.yMeasure&&b.push(n.yMeasure),n.dimension.forEach(a=>{b.push({field:a.field,function:a.function})}),n=Dn(n,b),n},Se={title:"Scatter chart",description:"Displays data points on a Cartesian plane, perfect for showing correlations.",namespace:"scatter_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this scatter chart?"},views:{type:"views",title:"View",description:""},labelled_metrics:{type:"labelledMetrics",title:"Metric - Y Axis",description:"",subSectionDefinition:{xAxis:{type:"metrics",title:"X axis",namespace:"metrics.xAxis"},yAxis:{type:"metrics",title:"Y axis",namespace:"metrics.yAxis"}}},field_grouping:{type:"fieldCollector",title:"Grouping",description:"What do you want each dot to represent?",callToAction:"Add comparison"},filter:{type:"filter",title:"Filters",description:"Only include the information you want in this scatter chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Limit the number of data points shown on this scatter chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},goal_line:{type:"goalLine",title:"Goal Lines",description:""},quadrants:{type:"quadrants",title:"",description:""}}},Ed=t=>({title:Se.title,description:Se.description,servicesClass:"ScatterChart",namespace:Se.namespace,dump:e=>e,load:e=>({type:e.type,xMeasure:y1(e.xMeasure?[e.xMeasure]:[])[0]||null,yMeasure:y1(e.yMeasure?[e.yMeasure]:[])[0]||null,dimension:Oe(e.dimension),viewId:k0(e.viewId),timeDimension:e.timeDimension,displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,filter:V1(e.filter),order:ge(e.order,e.timeDimension),dataSetId:e.dataSetId,limit:e.limit,legend:e.legend,xAxisFormat:e.xAxisFormat,yAxisFormat:e.yAxisFormat,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),goalLines:e.goalLines,quadrants:e.quadrants,axisTitles:e.axisTitles,tags:e.tags??[]}),setAttributes:ON(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"scatterChart",xMeasure:null,yMeasure:null,dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,legend:!0,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",goalLines:void 0,quadrants:void 0,axisTitles:void 0,tags:[],...o}),createFeedback:xe,schema:Cd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>!!e.xMeasure&&!!e.yMeasure&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"scatterChart");return this.init(e.id,{xMeasure:o[0],yMeasure:o[1],dimension:n})},dataPanelConfig:()=>[P(Se,"data_set"),P(Se,"views"),{...P(Se,"labelled_metrics"),subSection:[{...Se.data_panel.labelled_metrics?.subSectionDefinition.xAxis,propKey:"xMeasure",allowsMultiple:!1},{...Se.data_panel.labelled_metrics?.subSectionDefinition.yAxis,propKey:"yMeasure",allowsMultiple:!1}]},{...P(Se,"field_grouping"),fieldFilterOptions:{onlyDimensions:!0,onlyFieldTypes:["boolean","number","string"],removePercentage:!0,removeSimpleMaths:!0,removeAggregateMaths:!0},maxAllowed:1,preSetPartialAttributes:e=>({dimension:e}),getValues:e=>e.dimension,testId:"add-dimension"},P(Se,"filter"),P(Se,"custom_metrics"),P(Se,"limit")],formatPanelConfig:()=>[F1(Se),{...P(Se,"chart_styles"),subSection:[Se.format_panel.chart_styles?.subSectionDefinition.legend]},Ve(Se),P(Se,"quadrants"),P(Se,"goal_line")],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!1,colorGradient:!1}}),Il=t=>m.object({...Y1(t.attributesSchemaOptions),fontSize:m.string().allow(""),formatter:m.object(),measure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),filter:c2(t.queryEngineConfig),prefixes:m.object(),postfixes:m.object(),type:m.valid("singleStat").required(),limit:Vt(),direction:m.string().valid("horizontal","vertical"),conditionalFormattingRules:ht(t.queryEngineConfig),deltaTimeDimension:m.alternatives(In(t.queryEngineConfig.supportedTimeTruncFunctions),m.valid(null)),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),tags:H1()}),We={title:"Single stat",description:"Shows a single statistical value, ideal for key data point representation.",namespace:"single_stat",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this single stat?"},views:{type:"views",title:"View",description:""},field_metrics:{type:"fieldCollector",title:"Metrics",description:"What do you want to show?",callToAction:"Add metric"},filter:{type:"filter",title:"Filters",description:"Only include the information you want in this scatter chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},comparison:{type:"comparison",title:"Comparison",description:""}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},stats_labels:{type:"statsLabels",title:"Labels",description:"",subSectionDefinition:{prefix:{title:"Prefix",description:"",namespace:"prefix"},postfix:{title:"Postfix",description:"",namespace:"postfix"},format:{title:"Format",description:"",namespace:"format"},count:{title:"Label count",description:"",namespace:"count"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""},format:{type:"format",title:"Format",description:"",subSectionDefinition:{font_size:{title:"Font Size",type:"fontSize",description:"",namespace:"font_size"},direction:{title:"Direction",type:"direction",description:"",namespace:"direction"}}}}},Dd=t=>({title:We.title,description:We.description,servicesClass:"SingleStat",namespace:We.namespace,dump:e=>e,load:e=>{const o=Td(e);return{type:"singleStat",prefixes:o.prefixes,postfixes:o.postfixes,formatter:o.formatter,fontSize:o.fontSize,measure:y1(o.measure),displayTitle:o.displayTitle,displaySubject:o.displaySubject,protectedByOrganisation:e.protectedByOrganisation,viewId:k0(e.viewId),filter:o.filter,dataSetId:o.dataSetId,limit:o.limit,direction:o.direction??"horizontal",conditionalFormattingRules:o.conditionalFormattingRules,deltaTimeDimension:o.deltaTimeDimension,parameters:ft(o.parameters),tags:o.tags??[]}},setAttributes:(e,o)=>I1(e,o,Il(t)),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"singleStat",measure:[],displayTitle:"",postfixes:{},prefixes:{},formatter:{},fontSize:"2rem",protectedByOrganisation:void 0,displaySubject:"",viewId:k0(o?.viewId),filter:[],dataSetId:e,limit:5e3,direction:"horizontal",conditionalFormattingRules:[],deltaTimeDimension:null,parameters:{},tags:[],...o}),schema:Il(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0,autoGenerate(e){const{measure:o}=le(e,t.queryEngineConfig,"singleStat");return this.init(e.id,{measure:[o[0]]})},dataPanelConfig:()=>[P(We,"data_set"),P(We,"views"),{...P(We,"field_metrics"),fieldFilterOptions:{forComponent:"singleStat"},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},P(We,"filter"),P(We,"custom_metrics"),P(We,"comparison")],formatPanelConfig:()=>[F1(We),{...P(We,"stats_labels"),prefix:Vo(We,"prefix"),postfix:Vo(We,"postfix"),format:Vo(We,"format"),count:Vo(We,"count")},{...P(We,"format"),subSection:[We.format_panel.format?.subSectionDefinition.font_size,We.format_panel.format?.subSectionDefinition.direction]},{...P(We,"conditional_formatting"),ruleType:"fontColor"}],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,aggregateMaths:!0,rules:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){let n=P0.cloneDeep(yr(o.fields,{onlyFieldTypes:["number"]}));return{...e,type:"singleStat",protectedByOrganisation:!0,measure:[...n].map(b=>({function:"none",field:b.id}))}}}),Pl=t=>m.object({...Y1(t.attributesSchemaOptions),measure:m.array().items(me(t.queryEngineConfig.supportedAggregates,t.attributesSchemaOptions)),dimension:St(t.queryEngineConfig.supportedTimeTruncFunctions,t.attributesSchemaOptions),filter:c2(t.queryEngineConfig),timeDimension:m.valid(null),order:m.array().items(uo(t.queryEngineConfig)),type:m.valid("sunburstChart").required(),legend:m.valid(!0,!1),labels:m.valid(!0,!1),limit:Vt(),labelsAsPercentage:m.boolean(),conditionalFormattingRules:ht(t.queryEngineConfig),labelFormat:m.alternatives(m.string(),m.valid(null)),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),tags:H1(),drilldownOptions:GO(t.queryEngineConfig)}),Ue={title:"Sunburst chart",description:"Represents data in a sunburst format, useful for showing proportions.",namespace:"sunburst_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this sunburst chart?"},views:{type:"views",title:"View",description:""},field_metrics:{type:"fieldCollector",title:"Metric",description:"What do you want each segment to measure?",callToAction:"Add metric"},drilldown:{type:"drilldown",title:"Drilldown",description:"After clicking on a segment of this sunburst chart, what information do you want to see next?"},field_grouping:{type:"fieldCollector",title:"Grouping",description:"How do you want to split each section of the sunburst chart?",callToAction:"Add comparison"},sort:{type:"sort",title:"Sort",description:"Choose the order of segments in the sunburst chart"},filter:{type:"filter",title:"Filters",description:"Only include the information you want in this sunburst chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Limit the number of segments shown on this sunburst chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{number_format:{type:"numberFormat",title:"Format",description:"",namespace:"number_format"},legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},conditional_formatting:{type:"conditionalFormatting",title:"Conditional Formatting",description:""}}},Id=t=>({title:Ue.title,description:Ue.description,servicesClass:"SunburstChart",namespace:Ue.namespace,dump:e=>e,load:e=>({type:e.type,measure:y1(e.measure),order:ge(e.order,e.timeDimension),dimension:Oe(e.dimension),viewId:k0(e.viewId),timeDimension:e.timeDimension,displayTitle:e.displayTitle,displaySubject:e.displaySubject,protectedByOrganisation:e.protectedByOrganisation,filter:V1(e.filter),dataSetId:e.dataSetId,limit:e.limit,conditionalFormattingRules:e.conditionalFormattingRules??[],labelsAsPercentage:e.labelsAsPercentage??!1,legend:e.legend??!0,labels:e.labels??!1,labelFormat:e.labelFormat??null,parameters:e.parameters??{},tags:e.tags??[]}),setAttributes:(e,o)=>I1(e,o,Pl(t)),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"sunburstChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",protectedByOrganisation:void 0,viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,conditionalFormattingRules:[],labelsAsPercentage:!1,legend:!0,labels:!1,labelFormat:null,parameters:{},tags:[],...o}),createFeedback:xe,schema:Pl(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&e.dimension.length>0,autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"sunburstChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(Ue,"data_set"),P(Ue,"views"),{...P(Ue,"field_metrics"),fieldFilterOptions:{forComponent:"sunburstChart"},maxAllowed:1,preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input"},{...P(Ue,"field_grouping"),fieldFilterOptions:{onlyFieldTypes:["boolean","number","string"],onlyDimensions:!0,removePercentage:!0,removeSimpleMaths:!0,removeAggregateMaths:!0},maxAllowed:5,preSetPartialAttributes:e=>({dimension:e}),getValues:e=>e.dimension,testId:"add-dimension"},P(Ue,"sort"),P(Ue,"filter"),P(Ue,"custom_metrics"),P(Ue,"limit")],formatPanelConfig:()=>[F1(Ue),{...P(Ue,"chart_styles"),subSection:[Ue.format_panel.chart_styles?.subSectionDefinition.legend,Ue.format_panel.chart_styles?.subSectionDefinition.labels,Ue.format_panel.chart_styles?.subSectionDefinition.number_format]}],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},supportedAggregations:["sum","count"]}),lN=["title","description","data_panel","format_panel"],AN=["title","description","callToAction"],uN="call_to_action",dN=m.alternatives().try(m.string(),m.object({sentence:m.string().custom((t,e)=>{const o=/\{\{(\w+)\}\}/g;let n;for(;(n=o.exec(t))!==null;){const b=n[1];if(!(e.state.ancestors[0][`${b}_singular`]&&e.state.ancestors[0][`${b}_plural`])){const a=`"textOverride": "${b}" found in sentence but corresponding "${b}_singular" and "${b}_plural" fields are missing`;return e.error("any.invalid",{message:a})}}return t})}).pattern(/.+_(singular|plural)$/,m.string())).messages({"any.custom":"{{#message}}"}),fN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,qN=/<style\b[^<]*(?:(?!<\/style>)<[^<]*)*<\/style>/gi,WN=/on[a-z]+\s*=\s*["'][^"']*["']/gi,hN=/javascript:[^\s"']+/gi,mN=/<(b|strong)>(?:(?!<\/(b|strong)>).)*<\/(b|strong)>/,gN=/<(i|em)>(?:(?!<\/(i|em)>).)*<\/(i|em)>/,yN=new RegExp(`^(?:${mN.source}|${gN.source}|[^*_<>])*$`,"m"),Fl=t=>{if(fN.test(t)||qN.test(t)||WN.test(t)||hN.test(t))throw new Error("Invalid content: potentially malicious elements detected.");return yN.test(t)};function RN(t,e){const o=t[e],n=dN.validate(o);return n.error&&n.error.details.forEach(a=>{dt(a.context?.message)}),(()=>{if(typeof o=="string")return Fl(o);if(typeof o=="object")return Fl(o.sentence);if(o===void 0)return!0;throw new Error("Invalid translation type")})()?o:void 0}const LN=(t,e,o,n)=>VO(t,e,o,void 0,n),VO=(t,e,o,n,b)=>{if(b)return`[key: ${t}]`;const a=n?RN(n,t):void 0;let O;return typeof a=="object"&&a!==null?O=a.sentence:typeof a=="string"?O=a:O=e,O=NN(O,o),o&&(O=vN(O,o,a)),_N(O,o)};function vN(t,e,o){return Object.entries(e).forEach(([n,b])=>{if(b&&typeof b=="object"&&"count"in b){const a=b,O=a.count===1?o&&o[`${n}_singular`]||a.singular:o&&o[`${n}_plural`]||a.plural;t=t.replace(new RegExp(`{{${n}}}`,"g"),O)}}),t}function _N(t,e){if(!e)return t;for(const[o,n]of Object.entries(e))if(typeof n=="string"||typeof n=="number"){const b=new RegExp(`\\[\\[${o}\\]\\]`,"g");t=t.replace(b,String(n))}return t}function NN(t,e){if(!e)return t;const o=/\[\[([^\]]+)\]\]/g;return t.replace(o,(n,b)=>{const a=b.split("|");for(const O of a){const A=e[O];if(typeof A=="string"&&A!=="")return A;if(typeof A=="number")return A.toString()}return""})}const C1=(t,e)=>{const o=e??VO;let n=t;const b=t.namespace;return lN.forEach(a=>{if(a==="title"||a==="description"){const O=o(`${b}.${a}`,t[a]);n={...n,[a]:O}}if(a==="data_panel"){const O=`${b}.${a}`,A=[];t.dataPanelConfig().forEach(c=>{c.subSection&&(c.subSection=kl(c,o,O)),nM(c).forEach(R=>{const v=o(`${O}.${R.key}`,R.defaultValue);c[R.property]=v}),A.push(c)}),n={...n,dataPanelConfig:()=>A}}if(a==="format_panel"){const O=`${b}.${a}`,A=[];t.formatPanelConfig().forEach(c=>{c.subSection&&(c.subSection=kl(c,o,O)),TN(o,O,c),nM(c).forEach(R=>{const v=o(`${O}.${R.key}`,R.defaultValue);c[R.property]=v}),A.push(c)}),n={...n,formatPanelConfig:()=>A}}}),n},Ts=["count","axisTitle","format","postfix","prefix"];function TN(t,e,o){function n(a,O){a&&nM(a).forEach(A=>{const c=t(`${e}.${O}.${A.key}`,A.defaultValue);a[A.property]=c})}function b(a,O,A){O.forEach(c=>{const R=a[c];R&&n(R,A)})}o.x&&(b(o.x,Ts,"axis_labels"),n(o.x,"axis_labels")),o.y&&(b(o.y,Ts,"axis_labels"),n(o.y,"axis_labels")),BN(o)&&b(o,Ts,"stats_labels")}function kl(t,e,o){return t.subSection?.map(n=>(nM(n).forEach(b=>{const a=e(`${o}.${t.namespace}.${b.key}`,b.defaultValue);n[b.property]=a}),n))}function nM(t){const e=t.namespace||t.type;if(!e)return[];const o=[];return AN.forEach(n=>{if(t[n]){let b=n;n==="callToAction"&&(b=uN),o.push({key:`${e}.${b}`,defaultValue:t[n],property:n})}}),o}function BN(t){return"prefix"in t}const Pd=t=>m.object({...Y1(t.attributesSchemaOptions),...s2(t.queryEngineConfig,t.attributesSchemaOptions),legend:m.valid(!0,!1),labels:m.valid(!0,!1).optional(),type:m.valid("waterfallChart").required(),parameters:qt(t.queryEngineConfig,t.attributesSchemaOptions),axisTitles:Wt(),headline:X2(),tags:H1(),increaseColor:m.string().required(),decreaseColor:m.string().required(),comparison:m.any()}),SN=t=>(e,o)=>{let n=I1(e,o,Pd(t));return n=xt(n),n},we={title:"Waterfall chart",description:"Shows a running total as values are added or subtracted. It's useful for understanding how an initial value is affected by a series of positive and negative values.",namespace:"waterfall_chart",data_panel:{data_set:{type:"dataSet",title:"Data set",description:"What data do you want to use in this waterfall chart?"},views:{type:"views",title:"View",description:""},field_y_axis:{type:"fieldCollector",title:"Metric - Y Axis",description:"What do you want each bar to measure?",callToAction:"Add metric"},field_x_axis:{type:"fieldCollector",title:"Grouping - X Axis",description:"What do you want each bar to represent? An example would be a a date grouping to show each month as a bar",callToAction:"Add grouping"},dateComparison:{type:"dateComparison",title:"Comparison",description:"Compare the waterfall chart to a previous period.",callToAction:"Add comparison"},sort:{type:"sort",title:"Sort",description:"Select the order of categories or time on the x Axis."},filter:{type:"filter",title:"Filters",description:"Only include the information you want to use in this waterfall chart."},custom_metrics:{type:"customMetrics",title:"Custom metrics",description:"Build your own metrics, such as a percentage."},limit:{type:"limit",title:"Limit",description:"Set the maximum number of records to show on this waterfall chart."}},format_panel:{heading:{type:"heading",title:"Heading",description:"",subSectionDefinition:{title:{type:"title",title:"Title",description:"",namespace:"title"},subject:{title:"Subject",type:"subject",description:"",namespace:"subject"}}},chart_styles:{type:"chartStyles",title:"Chart Settings",description:"",subSectionDefinition:{legend:{type:"legend",title:"Show Legend",description:"",namespace:"legend"},labels:{type:"labels",title:"Show Labels",description:"",namespace:"labels"}}},axis_labels:{type:"axisLabels",title:"Axis Preferences",description:"",subSectionDefinition:{x:{title:"X Axis",description:"",namespace:"x"},"x.prefix":{title:"Prefix",description:"",namespace:"x.prefix"},"x.postfix":{title:"Postfix",description:"",namespace:"x.postfix"},"x.format":{title:"Format",description:"",namespace:"x.format"},"x.count":{title:"Label count",description:"",namespace:"x.count"},"x.axis_title":{title:"Title",description:"",namespace:"x.axis_title"},y:{title:"Y Axis",description:"",namespace:"y"},"y.prefix":{title:"Prefix",description:"",namespace:"y.prefix"},"y.postfix":{title:"Postfix",description:"",namespace:"y.postfix"},"y.format":{title:"Format",description:"",namespace:"y.format"},"y.count":{title:"Label count",description:"",namespace:"y.count"},"y.axis_title":{title:"Title",description:"",namespace:"y.axis_title"}}},headline:{type:"headline",title:"Headline",description:""},waterfall_colors:{type:"waterfallColors",title:"Color selector",description:""}}},Fd=t=>({title:we.title,description:we.description,servicesClass:"WaterfallChart",namespace:we.namespace,dump:e=>e,load:e=>({measure:y1(e.measure),order:ge(e.order,e.timeDimension),filter:V1(e.filter),dimension:Oe(e.dimension),parameters:ft(e.parameters),headline:ho(e.headline,e.timeDimension),tags:e.tags??[],legend:e.legend,labels:e.labels,viewId:k0(e.viewId),dataSetId:e.dataSetId,limit:e.limit,timeDimension:null,xAxisPostfix:e.xAxisPostfix,xAxisPrefix:e.xAxisPrefix,yAxisPostfix:e.yAxisPostfix,yAxisPrefix:e.yAxisPrefix,yAxisFormat:e.yAxisFormat,xAxisFormat:e.xAxisFormat,approxXAxisLabelCount:l1(e.approxXAxisLabelCount),approxYAxisLabelCount:l1(e.approxYAxisLabelCount),axisTitles:e.axisTitles,displaySubject:e.displaySubject,displayTitle:e.displayTitle,increaseColor:e.increaseColor,decreaseColor:e.decreaseColor,protectedByOrganisation:e.protectedByOrganisation,type:e.type,offset:e.offset,comparison:e.comparison}),setAttributes:SN(t),validate:(e,o)=>K1(e,o,t.queryEngineConfig),init:(e,o)=>({type:"waterfallChart",measure:[],dimension:[],timeDimension:null,displayTitle:"",displaySubject:"",viewId:k0(o?.viewId),filter:[],order:[],dataSetId:e,limit:5e3,protectedByOrganisation:void 0,offset:void 0,xAxisPostfix:"",xAxisPrefix:"",yAxisPostfix:"",yAxisPrefix:"",yAxisFormat:null,xAxisFormat:null,legend:!0,labels:!1,parameters:{},axisTitles:void 0,headline:void 0,increaseColor:"#00FF00",decreaseColor:"#FF0000",tags:[],approxXAxisLabelCount:"auto",approxYAxisLabelCount:"auto",comparison:null,...o}),createFeedback:xe,schema:Pd(t),removeField:(e,o)=>te(e,o,t.queryEngineConfig),isRunnable:e=>e.measure.length>0&&(e.dimension.length>0||e.timeDimension!==null),autoGenerate(e){const{measure:o,dimension:n}=le(e,t.queryEngineConfig,"waterfallChart");return this.init(e.id,{measure:[o[0]],dimension:n})},dataPanelConfig:()=>[P(we,"data_set"),P(we,"views"),{...P(we,"field_y_axis"),fieldFilterOptions:{forComponent:"waterfallChart",onlyMeasures:!0},preSetPartialAttributes:e=>({measure:e}),getValues:e=>e.measure,testId:"metric-input",maxAllowed:1},{...P(we,"field_x_axis"),fieldFilterOptions:{forComponent:"waterfallChart",onlyDimensions:!0},preventDuplicates:!0,preSetPartialAttributes:(e,o)=>Nr(e,o),getValues:e=>Zo(e),maxAllowed:1,testId:"add-dimension"},{...P(we,"dateComparison"),maxAllowed:1},P(we,"sort"),P(we,"filter"),P(we,"custom_metrics"),P(we,"limit")],formatPanelConfig:()=>[F1(we),P(we,"waterfall_colors"),{...P(we,"chart_styles"),subSection:[we.format_panel.chart_styles?.subSectionDefinition.legend,we.format_panel.chart_styles?.subSectionDefinition.labels]},Ve(we)],supportedCustomFields:{percentages:!0,dateCalculations:!0,simpleMaths:!0,rules:!0,aggregateMaths:!0,roundedNumbers:!0,conditional:!0,customBuild:[W0.Maths,W0.IfStatement,W0.Aggregates]},supportedFeatures:{parameters:!0,colorGradient:!1},setDataAttributesFromPreAggregatedDataSet(e,o){return l2(e,o,this.setAttributes)}}),E1={queryEngineConfig:{supportedFeatures:[],supportedAggregates:{},supportedTimeTruncFunctions:{},supportedOperators:{},supportedTransformationFunctions:{}}};function ib(t,e){if(t=="areaChart")return C1(Zu(e||E1),e?.textOverride);if(t=="barChart")return C1(td(e||E1),e?.textOverride);if(t=="basicTable")return C1(bd(e||E1),e?.textOverride);if(t=="bubbleChart")return C1(ad(e||E1),e?.textOverride);if(t=="bubbleChartV2")return C1(zd(e||E1),e?.textOverride);if(t=="comboChart")return C1(Od(e||E1),e?.textOverride);if(t=="custom")return C1(ud(e||E1),e?.textOverride);if(t=="dataTable")return C1(fd(e||E1),e?.textOverride);if(t=="funnelChart")return C1(qd(e||E1),e?.textOverride);if(t=="richText")return C1(Xd(e||E1),e?.textOverride);if(t=="horizontalBarChart")return C1(Wd(e||E1),e?.textOverride);if(t=="horizontalBarChartV2")return C1(md(e||E1),e?.textOverride);if(t=="lineChart")return C1(yd(e||E1),e?.textOverride);if(t=="lineChartV2")return C1(Ld(e||E1),e?.textOverride);if(t=="barChartV2")return C1(rd(e||E1),e?.textOverride);if(t=="areaChartV2")return C1(ed(e||E1),e?.textOverride);if(t=="comboChartV2")return C1(Ad(e||E1),e?.textOverride);if(t=="mercatorMap")return C1(_d(e||E1),e?.textOverride);if(t=="pieChart")return C1(Nd(e||E1),e?.textOverride);if(t=="sunburstChart")return C1(Id(e||E1),e?.textOverride);if(t=="progress")return C1(Bd(e||E1),e?.textOverride);if(t=="scatterChart")return C1(Ed(e||E1),e?.textOverride);if(t=="singleStat")return C1(Dd(e||E1),e?.textOverride);if(t=="waterfallChart")return C1(Fd(e||E1),e?.textOverride);if(t=="radarChart")return C1(wd(e||E1),e?.textOverride);throw`Cannot get interface for ${t}. Please implement it.`}const jl=m.object({fieldId:m.string().required(),dataSetId:m.string().required()}),wN=t=>m.object().pattern(m.string(),V6(t)),Sb=t=>({title:m.string().allow(""),managedByConfiguration:m.boolean().optional(),requiresValue:m.boolean().optional(),optionsFilters:wN(t).optional(),appliesToFields:m.array().items(jl).required(),optionsPulledFrom:m.array().items(jl).optional(),hidden:m.boolean(),options:m.array().items(m.object({value:m.allow(m.number(),m.string()),label:m.string()})).optional()}),xN=(t,e)=>m.object({...Sb(t),type:m.valid(IO).required(),value:m.alternatives(m.string(),m.number(),m.boolean(),m.valid(...e?[]:[null]))}),XN=(t,e)=>m.object({...Sb(t),type:m.valid(Yi).required(),value:m.alternatives(m.array().items(m.string(),m.number()).single(),m.valid(...e?[]:[null]),m.array().items(m.array().items(Pn(t))))}),CN=(t,e)=>m.object({...Sb(t),type:m.valid(FO).required(),value:EN(t,e)}),EN=(t,e)=>m.alternatives(m.valid(...e?[]:[null]),m.array().items(m.array().items(Pn(t)))),$l=(t,e,o)=>m.object({...Sb(t),type:m.valid(o).required(),inclusiveDate:m.boolean().optional(),allowTimeSelection:m.boolean().optional(),value:m.alternatives(m.valid(...e?[]:[null]),m.object({type:m.valid("fixedRange"),before:m.alternatives(m.date()).required(),after:m.alternatives(m.date()).required()}),m.object({type:m.valid("relative"),value:m.string()}),m.object({type:m.valid("relativeRange"),filters:m.array()}))}),DN=(t,e)=>m.object({...Sb(t),type:m.valid(PO).required(),value:m.alternatives(m.object({op:m.allow("=","<",">","<=",">="),value:m.number().allow(null,0)}),m.array().items(m.array().items(Pn(t))),m.valid(...e?[]:[null]))}),kd=(t,e)=>m.alternatives().conditional(".type",{is:IO,then:xN(t,e)}).conditional(".type",{is:Go,then:$l(t,e,Go)}).conditional(".type",{is:mr,then:$l(t,e,mr)}).conditional(".type",{is:Yi,then:XN(t,e)}).conditional(".type",{is:PO,then:DN(t,e)}).conditional(".type",{is:FO,then:CN(t,e)});function IN(t){return m.array().items(m.custom((e,o)=>{if(!t)return o.error("any.invalid");const n=kd(t,!!e.requiresValue),{error:b}=n.validate(e);return b?o.error("any.invalid",{message:b.message}):e})).required()}var PN={exports:{}};/**
|
|
62
62
|
* chroma.js - JavaScript library for color conversions
|
package/dist/esm/index.esm.js
CHANGED
|
@@ -20218,7 +20218,7 @@ const Gn = (t) => m.object({
|
|
|
20218
20218
|
load: (e) => ({
|
|
20219
20219
|
type: e.type,
|
|
20220
20220
|
measure: y1(e.measure),
|
|
20221
|
-
zMeasure: y1(e.
|
|
20221
|
+
zMeasure: y1(e.zMeasure),
|
|
20222
20222
|
xMeasure: y1(e.xMeasure),
|
|
20223
20223
|
order: ge(e.order, e.timeDimension),
|
|
20224
20224
|
dimension: Oe(e.dimension),
|
package/package.json
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"fix-type-alias": "tsc-alias -p tsconfig.types.json",
|
|
31
31
|
"prepare": "yarn build"
|
|
32
32
|
},
|
|
33
|
-
"version": "0.15.0-dev-
|
|
33
|
+
"version": "0.15.0-dev-eaaf414f9f1038b3d1800877c725848532bce2cf",
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@vizzly/api-client": "0.0.57",
|
|
36
36
|
"@vizzly/joi": "^17.11.0",
|