@umbraco-engage/backoffice 17.0.1 → 17.0.3

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.
Files changed (52) hide show
  1. package/dist/ab-testing/test/components/variant-picker/ab-testing-test-variant-picker.element.d.ts +2 -0
  2. package/dist/ab-testing/test/components/variant-picker/ab-testing-test-variant-picker.element.js +107 -84
  3. package/dist/ab-testing/test/modal/element/ab-testing-edit-variant-modal.element.d.ts +0 -1
  4. package/dist/ab-testing/test/modal/element/ab-testing-edit-variant-modal.element.js +2 -5
  5. package/dist/ab-testing/test/modal/token/ab-testing-edit-variant-modal.token.d.ts +0 -1
  6. package/dist/ab-testing/test/repository/detail/index.d.ts +1 -0
  7. package/dist/ab-testing/test/repository/detail/index.js +1 -0
  8. package/dist/ab-testing/test/workspace/ab-testing-test-workspace.context.d.ts +3 -2
  9. package/dist/ab-testing/test/workspace/ab-testing-test-workspace.context.js +34 -3
  10. package/dist/ab-testing/test/workspace/actions/schedule-test-action.js +4 -1
  11. package/dist/ab-testing/test/workspace/actions/start-test-action.js +1 -1
  12. package/dist/ab-testing/test/workspace/conditions/ab-testing-can-preview.condition.js +8 -1
  13. package/dist/ab-testing/test/workspace/entity-actions/preview-variant.action.js +7 -16
  14. package/dist/ab-testing/test/workspace/views/edit/ab-testing-test-editor.element.js +1 -1
  15. package/dist/analytics/analytics-context.d.ts +1 -0
  16. package/dist/analytics/analytics-context.js +4 -0
  17. package/dist/analytics/components/chart/analytics-chart.element.d.ts +1 -0
  18. package/dist/analytics/components/chart/analytics-chart.element.js +51 -24
  19. package/dist/analytics/components/chart/chart-dataset-generator.controller.js +1 -1
  20. package/dist/analytics/components/chart/chart-settings-generator.controller.d.ts +1 -1
  21. package/dist/analytics/components/chart/chart-settings-generator.controller.js +17 -5
  22. package/dist/analytics/components/chart/entities.d.ts +0 -1
  23. package/dist/analytics/components/chart/prefab-chart.element.js +0 -1
  24. package/dist/analytics/components/toggle/chart-toggle.element.d.ts +0 -1
  25. package/dist/analytics/components/toggle/chart-toggle.element.js +1 -8
  26. package/dist/core/components/chart/chart-base.element.js +3 -0
  27. package/dist/core/components/chart/chart.element.d.ts +1 -1
  28. package/dist/core/components/chart/chart.element.js +17 -16
  29. package/dist/core/components/chart/donut-chart.element.d.ts +1 -0
  30. package/dist/core/components/chart/donut-chart.element.js +25 -1
  31. package/dist/core/functions/date-utils.d.ts +7 -0
  32. package/dist/core/functions/date-utils.js +11 -0
  33. package/dist/core/lang/en.js +11 -1
  34. package/dist/core/variant-preview.controller.d.ts +1 -1
  35. package/dist/core/variant-preview.controller.js +7 -24
  36. package/dist/generated/client.gen.js +4 -1
  37. package/dist/generated/sdk.gen.d.ts +2 -1
  38. package/dist/generated/sdk.gen.js +816 -134
  39. package/dist/generated/types.gen.d.ts +26 -0
  40. package/dist/personalization/applied-personalization/editor-view/applied-personalization-editor-view.element.js +2 -2
  41. package/dist/personalization/context/personalization-editor-view-base.context.js +1 -1
  42. package/dist/personalization/personalized-variants/workspace/personalized-variant-workspace.context.js +1 -1
  43. package/dist/reporting/components/reporting-chart-card/reporting-chart-card.element.d.ts +8 -2
  44. package/dist/reporting/components/reporting-chart-card/reporting-chart-card.element.js +78 -16
  45. package/dist/reporting/components/segment-personalization/segment-personalization.element.js +7 -2
  46. package/dist/reporting/components/segment-personalization-goal-performance/segment-personalization-goal-performance.element.js +31 -47
  47. package/dist/reporting/components/segment-potential/segment-potential.element.js +7 -2
  48. package/dist/reporting/components/segment-selector/reporting-segment-selector.element.js +25 -11
  49. package/dist/reporting/screens/reporting-segments-screen.element.js +12 -6
  50. package/dist/tsconfig.build.tsbuildinfo +1 -1
  51. package/dist/umbraco-package.json +1 -1
  52. package/package.json +1 -1
@@ -15,11 +15,14 @@ import { UeChartBaseElement, } from "../../../core/index.js";
15
15
  const elementName = "ue-chart";
16
16
  let UeAnalyticsChartElement = class UeAnalyticsChartElement extends UeChartBaseElement {
17
17
  #analyticsContext;
18
- #chartSettingsGenerator = new UeChartSettingsGeneratorController(this);
19
- #chartDatasetGenerator = new UeChartDatasetGeneratorController(this);
18
+ #chartSettingsGenerator;
19
+ #chartDatasetGenerator;
20
20
  #dateRangeConfig;
21
21
  constructor() {
22
22
  super();
23
+ this.#chartSettingsGenerator = new UeChartSettingsGeneratorController(this);
24
+ this.#chartDatasetGenerator = new UeChartDatasetGeneratorController(this);
25
+ this.showPercentages = false;
23
26
  ChartRegistrarController.register();
24
27
  this.consumeContext(UMB_DOCUMENT_WORKSPACE_CONTEXT, (context) => {
25
28
  this.observe(context?.unique, (unique) => {
@@ -52,36 +55,39 @@ let UeAnalyticsChartElement = class UeAnalyticsChartElement extends UeChartBaseE
52
55
  });
53
56
  }
54
57
  updated(_changedProperties) {
55
- if (_changedProperties.has("config") &&
56
- _changedProperties.get("config")?.showPercentages !==
57
- this.config?.showPercentages) {
58
- // when showPercentages changes, recalc the data
59
- this.config?.showPercentages
58
+ if (_changedProperties.has("showPercentages") &&
59
+ _changedProperties.get("showPercentages") !== this.showPercentages) {
60
+ // when showPercentages changes, update the displayed dataset
61
+ this.showPercentages
60
62
  ? this.#setPercentageData()
61
63
  : this.#setAbsoluteData();
62
64
  }
63
65
  }
64
66
  async loadChart() {
65
- if (this.loading || !this.#analyticsContext)
66
- return;
67
- if (!this.config)
67
+ if (this.loading || !this.#analyticsContext || !this.config)
68
68
  return;
69
69
  this.loading = true;
70
70
  const { queryResults, primaryQueryConfig, secondaryQueryConfig } = await this.#analyticsContext.query(this.config);
71
+ // calculate and store absolute data
71
72
  this.absoluteData = this.#chartDatasetGenerator.process(queryResults, [
72
73
  primaryQueryConfig,
73
74
  secondaryQueryConfig,
74
75
  ]);
75
- const options = this.#chartSettingsGenerator.getChartOptions(false, this.#dateRangeConfig?.compare ?? false, this.config, this.absoluteData);
76
- this.#buildLegend();
76
+ // Calculate and store percentage data
77
+ this.percentageData = this.#calculatePercentageData(this.absoluteData);
78
+ // Use the appropriate data based on config
79
+ const chartData = this.showPercentages
80
+ ? this.percentageData
81
+ : this.absoluteData;
77
82
  this.chart?.destroy();
78
83
  this.loading = false;
79
84
  if (!this.chartElement)
80
85
  return;
86
+ this.#buildLegend();
81
87
  // TODO => why is the cast to <any> required?
82
88
  this.chart = new Chart(this.chartElement.getContext("2d"), {
83
- data: this.absoluteData,
84
- options,
89
+ data: chartData,
90
+ options: this.#getChartOptions(),
85
91
  });
86
92
  }
87
93
  #buildLegend() {
@@ -100,28 +106,46 @@ let UeAnalyticsChartElement = class UeAnalyticsChartElement extends UeChartBaseE
100
106
  this.legend = undefined;
101
107
  }
102
108
  }
103
- #setPercentageData() {
104
- if (!this.chart?.data.datasets)
105
- return;
106
- // Clone the current datasets
107
- const clonedDatasets = structuredClone(this.chart.data);
109
+ #calculatePercentageData(absoluteData) {
110
+ if (!absoluteData?.datasets)
111
+ return absoluteData;
112
+ // Clone the datasets to avoid mutating the original
113
+ const clonedData = structuredClone(absoluteData);
108
114
  // Calculate totals per label (assuming all datasets have the same labels)
109
- const totals = clonedDatasets.datasets[0].data?.map((_, index) => clonedDatasets.datasets.reduce((sum, dataset) => sum + (dataset.data?.[index] ?? 0), 0)) ?? [];
115
+ const totals = clonedData.datasets[0].data?.map((_, index) => clonedData.datasets.reduce((sum, dataset) => {
116
+ const value = dataset.data?.[index];
117
+ return sum + (typeof value === "number" ? value : 0);
118
+ }, 0)) ?? [];
110
119
  // Convert each dataset's data to percentages
111
- clonedDatasets.datasets.forEach((dataset) => {
120
+ clonedData.datasets.forEach((dataset) => {
112
121
  dataset.data = dataset.data?.map((value, index) => {
122
+ if (typeof value !== "number")
123
+ return value;
113
124
  const percentage = totals[index] > 0 ? (value / totals[index]) * 100 : 0;
114
125
  return parseFloat(percentage.toFixed(2));
115
126
  });
116
127
  });
117
- // Ensure the chart updates with the new percentage data
118
- this.chart.data = clonedDatasets;
128
+ return clonedData;
129
+ }
130
+ #getChartOptions() {
131
+ if (!this.config || !this.absoluteData)
132
+ throw new Error("Config or absolute data is missing");
133
+ return this.#chartSettingsGenerator.getChartOptions(false, this.#dateRangeConfig?.compare ?? false, this.config, this.absoluteData, this.showPercentages);
134
+ }
135
+ #setPercentageData() {
136
+ if (!this.chart || !this.percentageData || !this.config)
137
+ return;
138
+ // Use the pre-calculated percentage data
139
+ this.chart.data = this.percentageData;
140
+ this.chart.options = this.#getChartOptions();
119
141
  this.chart.update();
120
142
  }
121
143
  #setAbsoluteData() {
122
- if (!this.chart)
144
+ if (!this.chart || !this.absoluteData || !this.config)
123
145
  return;
146
+ // Use the stored absolute data
124
147
  this.chart.data = this.absoluteData;
148
+ this.chart.options = this.#getChartOptions();
125
149
  this.chart.update();
126
150
  }
127
151
  #renderChart() {
@@ -173,6 +197,9 @@ let UeAnalyticsChartElement = class UeAnalyticsChartElement extends UeChartBaseE
173
197
  __decorate([
174
198
  property({ type: Object })
175
199
  ], UeAnalyticsChartElement.prototype, "config", void 0);
200
+ __decorate([
201
+ property({ type: Boolean })
202
+ ], UeAnalyticsChartElement.prototype, "showPercentages", void 0);
176
203
  UeAnalyticsChartElement = __decorate([
177
204
  customElement(elementName)
178
205
  ], UeAnalyticsChartElement);
@@ -135,7 +135,7 @@ export class UeChartDatasetGeneratorController extends UmbControllerBase {
135
135
  seriesLabel += " - ";
136
136
  seriesLabel += dimensionLabel || "(unknown)";
137
137
  }
138
- if ((config.metrics?.length ?? 0) > 1) {
138
+ if ((config.metrics?.length ?? 0) > 1 && config.dimensions) {
139
139
  // When we have multiple metrics we need to add the column label to show which metric
140
140
  // this series belongs to
141
141
  const metricLabel = this.#settingsGenerator?.getColumnName(series.columns[config.dimensions.length]);
@@ -10,6 +10,6 @@ export declare class UeChartSettingsGeneratorController extends UmbControllerBas
10
10
  };
11
11
  getChartOptions(stack: boolean, isCompare: boolean, config: UeChartConfigUnionType, chartData: ChartData & {
12
12
  dates: Array<Array<string>>;
13
- }): ChartOptions;
13
+ }, showPercentages?: boolean): ChartOptions;
14
14
  getColumnName(column: ColumnModel): string;
15
15
  }
@@ -67,7 +67,7 @@ export class UeChartSettingsGeneratorController extends UmbControllerBase {
67
67
  };
68
68
  }
69
69
  #localize;
70
- getChartOptions(stack, isCompare, config, chartData) {
70
+ getChartOptions(stack, isCompare, config, chartData, showPercentages = false) {
71
71
  if (stack && this.globalOptions.scales?.x && this.globalOptions.scales?.y) {
72
72
  this.globalOptions.scales.x[0].stacked = true;
73
73
  this.globalOptions.scales.y[0].stacked = true;
@@ -75,7 +75,19 @@ export class UeChartSettingsGeneratorController extends UmbControllerBase {
75
75
  if (config.aspect) {
76
76
  this.globalOptions.aspectRatio = config.aspect;
77
77
  }
78
- this.#setTooltipCallbacks(isCompare, config, chartData);
78
+ // When showing percentages, force scale to 0-100
79
+ if (this.globalOptions.scales?.y) {
80
+ if (showPercentages) {
81
+ this.globalOptions.scales.y.suggestedMin = 0;
82
+ this.globalOptions.scales.y.suggestedMax = 100;
83
+ }
84
+ else {
85
+ // Reset to default when not showing percentages
86
+ this.globalOptions.scales.y.suggestedMin = 0;
87
+ this.globalOptions.scales.y.suggestedMax = undefined;
88
+ }
89
+ }
90
+ this.#setTooltipCallbacks(isCompare, config, chartData, showPercentages);
79
91
  return this.globalOptions;
80
92
  }
81
93
  getColumnName(column) {
@@ -109,7 +121,7 @@ export class UeChartSettingsGeneratorController extends UmbControllerBase {
109
121
  return column;
110
122
  }
111
123
  }
112
- #setTooltipCallbacks(isCompare, config, chartData) {
124
+ #setTooltipCallbacks(isCompare, config, chartData, showPercentages = false) {
113
125
  if (!this.globalOptions.plugins?.tooltip)
114
126
  return;
115
127
  const isMulti = (config.dimensions?.length ?? 0) > 1;
@@ -168,7 +180,7 @@ export class UeChartSettingsGeneratorController extends UmbControllerBase {
168
180
  }
169
181
  const dataPoint = context.raw;
170
182
  let suffix = "";
171
- if (config.showPercentages) {
183
+ if (showPercentages) {
172
184
  suffix = "%";
173
185
  }
174
186
  else if (dataPoint === 1 && (config.unit || config.unitSingular)) {
@@ -178,7 +190,7 @@ export class UeChartSettingsGeneratorController extends UmbControllerBase {
178
190
  suffix = config.unit;
179
191
  }
180
192
  // Format the value only if it's a number and not showing percentages
181
- const formattedValue = !config.showPercentages && typeof dataPoint === "number"
193
+ const formattedValue = !showPercentages && typeof dataPoint === "number"
182
194
  ? this.#localize.number(dataPoint)
183
195
  : dataPoint;
184
196
  return `${label ? label + ":" : ""} ${formattedValue}${suffix === "%" ? suffix : " " + suffix}`;
@@ -7,7 +7,6 @@ export interface UeChartConfig extends UePrefabChartPrefab {
7
7
  size?: UeChartSize;
8
8
  showAnnotations?: boolean;
9
9
  isFullHeight?: boolean;
10
- showPercentages?: boolean;
11
10
  stack?: boolean;
12
11
  page: number;
13
12
  pageSize: number;
@@ -17,7 +17,6 @@ let UePrefabChartElement = class UePrefabChartElement extends UeAnalyticsChartEl
17
17
  type: "line",
18
18
  showAnnotations: true,
19
19
  isFullHeight: false,
20
- showPercentages: false,
21
20
  pageSize: 999,
22
21
  page: 1,
23
22
  };
@@ -2,7 +2,6 @@ import { UUIToggleElement } from "@umbraco-cms/backoffice/external/uui";
2
2
  declare const elementName = "ue-chart-toggle";
3
3
  export declare class UeChartToggleElement extends UUIToggleElement {
4
4
  #private;
5
- showPercentage: boolean;
6
5
  renderCheckbox(): import("lit-html").TemplateResult<1>;
7
6
  render(): import("lit-html").TemplateResult<1>;
8
7
  static styles: import("lit").CSSResult[];
@@ -4,14 +4,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { css, customElement, html, state, } from "@umbraco-cms/backoffice/external/lit";
7
+ import { css, customElement, html } from "@umbraco-cms/backoffice/external/lit";
8
8
  import { UUIBooleanInputEvent, UUIToggleElement, } from "@umbraco-cms/backoffice/external/uui";
9
9
  const elementName = "ue-chart-toggle";
10
10
  let UeChartToggleElement = class UeChartToggleElement extends UUIToggleElement {
11
- constructor() {
12
- super(...arguments);
13
- this.showPercentage = false;
14
- }
15
11
  #onInputChange(e) {
16
12
  e.stopPropagation();
17
13
  this.pristine = false;
@@ -77,9 +73,6 @@ let UeChartToggleElement = class UeChartToggleElement extends UUIToggleElement {
77
73
  `,
78
74
  ]; }
79
75
  };
80
- __decorate([
81
- state()
82
- ], UeChartToggleElement.prototype, "showPercentage", void 0);
83
76
  UeChartToggleElement = __decorate([
84
77
  customElement(elementName)
85
78
  ], UeChartToggleElement);
@@ -134,3 +134,6 @@ __decorate([
134
134
  __decorate([
135
135
  property({ type: Boolean, reflect: true })
136
136
  ], UeChartBaseElement.prototype, "loading", void 0);
137
+ __decorate([
138
+ state()
139
+ ], UeChartBaseElement.prototype, "chart", void 0);
@@ -9,7 +9,7 @@ export declare abstract class UeChartElement<ChartDataType> extends UeChartBaseE
9
9
  data: ChartData;
10
10
  type: ChartType;
11
11
  options: ChartOptions;
12
- }): void;
12
+ }): Promise<void>;
13
13
  render(): import("lit-html").TemplateResult<1>;
14
14
  static styles: import("lit").CSSResult[];
15
15
  }
@@ -22,26 +22,29 @@ export class UeChartElement extends UeChartBaseElement {
22
22
  Chart.register(args, Legend, Tooltip, Annotation);
23
23
  this.loading = true;
24
24
  }
25
- renderChart(chartArgs) {
25
+ async renderChart(chartArgs) {
26
26
  chartArgs.options.plugins = {
27
27
  ...chartArgs.options.plugins,
28
28
  tooltip: UeChartTooltipDefaults,
29
29
  };
30
30
  this.chart?.destroy();
31
31
  this.loading = false;
32
- if (!this.chartElement)
32
+ // ensure the update to loading has resolved and run the re-render
33
+ // to make #chart available.
34
+ await this.updateComplete;
35
+ if (!this.chartElement) {
33
36
  return;
37
+ }
34
38
  this.chart = new Chart(this.chartElement.getContext("2d"), chartArgs);
35
39
  }
36
40
  render() {
37
- return html `
38
- ${when(this.loading, () => html `<uui-loader></uui-loader>`)}
39
-
40
- <div .id=${`wrapper-${this.chart?.config["type"]}`}>
41
- ${when(this.empty, () => html `<p>No data available</p>`, () => html `<canvas id="chart"></canvas>`)}
42
- </div>
43
- ${when(this.legend, () => html ` <div id="legend">${this.legend}</div>`)}
44
- `;
41
+ return when(this.loading, () => html `<uui-loader></uui-loader>`, () => html ` <div
42
+ class="wrapper"
43
+ .id=${`wrapper-${this.chart?.config["type"] ?? ""}`}
44
+ >
45
+ ${when(this.empty, () => html `<ue-empty-state>No data available</ue-empty-state>`, () => html `<canvas id="chart"></canvas>`)}
46
+ </div>
47
+ ${when(this.legend, () => html ` <div id="legend">${this.legend}</div>`)}`);
45
48
  }
46
49
  static { this.styles = [
47
50
  ...UeChartBaseElement.styles,
@@ -56,6 +59,10 @@ export class UeChartElement extends UeChartBaseElement {
56
59
  flex-direction: column;
57
60
  }
58
61
 
62
+ .wrapper {
63
+ flex: 1;
64
+ }
65
+
59
66
  uui-loader {
60
67
  display: block;
61
68
  text-align: center;
@@ -64,12 +71,6 @@ export class UeChartElement extends UeChartBaseElement {
64
71
  top: 50%;
65
72
  transform: translateY(-50%);
66
73
  }
67
-
68
- #wrapper-doughnut {
69
- position: relative;
70
- max-width: 220px;
71
- width: 50%;
72
- }
73
74
  `,
74
75
  ]; }
75
76
  }
@@ -4,6 +4,7 @@ declare const elementName = "ue-donut-chart";
4
4
  export declare class UeDonutChartElement extends UeChartElement<UePieChartData> {
5
5
  constructor();
6
6
  buildChart(data: Array<UePieChartData>): void;
7
+ static styles: import("lit").CSSResult[];
7
8
  }
8
9
  declare global {
9
10
  interface HTMLElementTagNameMap {
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { customElement, html } from "@umbraco-cms/backoffice/external/lit";
7
+ import { css, customElement, html } from "@umbraco-cms/backoffice/external/lit";
8
8
  import { ArcElement, DoughnutController } from "chart.js";
9
9
  import { UeChartElement } from "./chart.element.js";
10
10
  const elementName = "ue-donut-chart";
@@ -61,6 +61,9 @@ let UeDonutChartElement = class UeDonutChartElement extends UeChartElement {
61
61
  },
62
62
  },
63
63
  });
64
+ // no data? no legend.
65
+ if (this.empty)
66
+ return;
64
67
  this.legend = html `<div>
65
68
  ${labels?.map((d, i) => this.generateLegendItem(d, i, html `<strong>${this.localize.number(data[i].data)}</strong>
66
69
  <span class="faded">
@@ -68,6 +71,27 @@ let UeDonutChartElement = class UeDonutChartElement extends UeChartElement {
68
71
  >`))}
69
72
  </div>`;
70
73
  }
74
+ static { this.styles = [
75
+ ...UeChartElement.styles,
76
+ css `
77
+ :host {
78
+ align-items: center;
79
+ justify-content: center;
80
+ }
81
+
82
+ #legend {
83
+ width: 140px;
84
+ }
85
+
86
+ #wrapper-doughnut {
87
+ position: relative;
88
+ margin: 0 auto;
89
+ max-width: 220px;
90
+ aspect-ratio: 1;
91
+ flex: unset;
92
+ }
93
+ `,
94
+ ]; }
71
95
  };
72
96
  UeDonutChartElement = __decorate([
73
97
  customElement(elementName)
@@ -45,6 +45,13 @@ export declare class DateUtils {
45
45
  toMediumDate(): string;
46
46
  toLongDate(): string;
47
47
  toShortTime(): string;
48
+ /**
49
+ * Converts a Date to an ISO 8601 UTC string (with 'Z' suffix).
50
+ * Use this when sending dates to the server API.
51
+ * @param date The date to convert
52
+ * @returns UTC string in format "yyyy-MM-ddTHH:mm:ss.sssZ"
53
+ */
54
+ static toUtcString(date?: Date): string;
48
55
  static format(date?: Date, format?: string): string;
49
56
  }
50
57
  export {};
@@ -155,6 +155,17 @@ export class DateUtils {
155
155
  toShortTime() {
156
156
  return DateUtils.format(this.date, "H:mm");
157
157
  }
158
+ /**
159
+ * Converts a Date to an ISO 8601 UTC string (with 'Z' suffix).
160
+ * Use this when sending dates to the server API.
161
+ * @param date The date to convert
162
+ * @returns UTC string in format "yyyy-MM-ddTHH:mm:ss.sssZ"
163
+ */
164
+ static toUtcString(date) {
165
+ if (!date)
166
+ return "";
167
+ return date.toISOString();
168
+ }
158
169
  static format(date, format = "yyyy-MM-ddThh:mm:ss") {
159
170
  if (!date) {
160
171
  return "";
@@ -295,6 +295,7 @@ export default {
295
295
  noDocumentTypes: "You have not setup any document type to be A/B tested. You can set this up in the settings section of the Marketing section.",
296
296
  noProjects: "There are no projects yet. Create your first project",
297
297
  noChangesOriginalVariant: "No changes can be made because this is the original variant.",
298
+ noSegmentation: "This document type does not support segmentation. You should 'Allow segmentation' for this document type and at least 1 property.",
298
299
  noTestsAvailable: "No tests available",
299
300
  noWinner: "No winner",
300
301
  noWinnerForTest: "My test did not result in a winner",
@@ -738,10 +739,15 @@ export default {
738
739
  dataGenerationTimeDescription: "The time each day reporting data will be generated (24 hour format). This uses the local time of the webserver.",
739
740
  dataGenerationLogDescription: "View the logs of the last 20 attempted data generation runs.",
740
741
  pageviewCoverage: "Pageview coverage",
742
+ pageviewCoverageTooltip: "The number of pageviews that are covered by the segment (regardless of personalization).",
741
743
  personalizedPageviews: "Personalized pageviews",
744
+ personalizedPageviewsTooltip: "The number of pageviews that have been personalized through this segment.",
742
745
  personalizedProfiles: "Personalized profiles",
746
+ personalizedProfilesTooltip: "The number of profiles that have been personalized through this segment.",
743
747
  personalizedSessions: "Personalized sessions",
748
+ personalizedSessionsTooltip: "The number of sessions that have been personalized through this segment.",
744
749
  profileCoverage: "Profile coverage",
750
+ profileCoverageTooltip: "The number of profiles that are covered by the segment (regardless of personalization).",
745
751
  regenerateReportingDataDescription: "Warning! Regenerating reporting data might have an impact on the performance of the site!",
746
752
  segment: "Segment",
747
753
  segmentPersonalization: "Segment personalization",
@@ -749,12 +755,16 @@ export default {
749
755
  selectSegment: "Select a segment",
750
756
  selectSegmentFromDropdown: "Select a segment from the dropdown",
751
757
  sessionCoverage: "Session coverage",
758
+ sessionCoverageTooltip: "The number of sessions that are covered by the segment (regardless of personalization).",
752
759
  sessionsNeeded: "Sessions needed",
760
+ sessionsNeededTooltip: "The number of sessions that a new profile requires to activate the segment (regardless of personalization) during the selected period of time.",
761
+ personalizationSessionsNeededTooltip: "The number of sessions that a new profile needed to be personalization during the selected period of time.",
753
762
  controlGroup: "Control group",
754
763
  personalizedGroup: "Personalized group",
755
764
  differenceVsControlGroup: "Difference vs control group",
756
765
  differenceVsProfile: "Difference / profile",
757
766
  completions: "Completions",
767
+ switchValueType: "Switch between numbers or percentages.",
758
768
  },
759
769
  engage_statistics: {
760
770
  statisticsDescription: "Shows various Umbraco Engage statistics",
@@ -789,7 +799,7 @@ export default {
789
799
  },
790
800
  engage_segmentation: {
791
801
  excludedPropertyAliases: "Excluded property aliases",
792
- excludedPropertyAliasesDescription: "A list of property aliases to exclude from segmentation and related processing.",
802
+ excludedPropertyAliasesDescription: "A list of property aliases to exclude from segmentation. umbracoNaviHide, umbracoRedirectUrl and umbracoUrlAlias are excluded by default.",
793
803
  },
794
804
  engage_settings: {
795
805
  allExcludedIps: "All excluded IP addresses",
@@ -1,4 +1,4 @@
1
1
  import { UmbControllerBase } from "@umbraco-cms/backoffice/class-api";
2
2
  export declare class UeVariantPreviewController extends UmbControllerBase {
3
- preview(unique: string, segment?: string | null, culture?: string | null, additionalParams?: Record<string, string | number>): Promise<void>;
3
+ preview(unique: string, segment: string, culture?: string): Promise<void>;
4
4
  }
@@ -1,30 +1,13 @@
1
1
  import { UmbControllerBase } from "@umbraco-cms/backoffice/class-api";
2
2
  import { UmbDocumentPreviewRepository } from "@umbraco-cms/backoffice/document";
3
- import { UMB_SERVER_CONTEXT } from "@umbraco-cms/backoffice/server";
4
- import { ensurePathEndsWithSlash } from "@umbraco-cms/backoffice/utils";
5
3
  export class UeVariantPreviewController extends UmbControllerBase {
6
- async preview(unique, segment, culture, additionalParams) {
7
- // Tell the server that we're entering preview mode.
8
- await new UmbDocumentPreviewRepository(this).enter();
9
- const serverContext = await this.getContext(UMB_SERVER_CONTEXT);
10
- if (!serverContext) {
11
- throw new Error("Server context is missing");
4
+ async preview(unique, segment, culture) {
5
+ const previewRepository = new UmbDocumentPreviewRepository(this);
6
+ const previewUrlData = await previewRepository.getPreviewUrl(unique, "umbDocumentUrlProvider", culture, segment);
7
+ if (previewUrlData.url) {
8
+ const previewWindow = window.open(previewUrlData.url, `umbpreview-${unique}`);
9
+ previewWindow?.focus();
10
+ return;
12
11
  }
13
- const backofficePath = serverContext.getBackofficePath();
14
- const previewUrl = new URL(ensurePathEndsWithSlash(backofficePath) + "preview", window.location.origin);
15
- previewUrl.searchParams.set("id", unique);
16
- if (segment) {
17
- previewUrl.searchParams.set("segment", segment);
18
- }
19
- if (culture) {
20
- previewUrl.searchParams.set("culture", culture);
21
- }
22
- if (additionalParams) {
23
- Object.entries(additionalParams).forEach(([key, value]) => {
24
- previewUrl.searchParams.set(key, `${value}`);
25
- });
26
- }
27
- const previewWindow = window.open(previewUrl.toString(), `umbpreview-${unique}`);
28
- previewWindow?.focus();
29
12
  }
30
13
  }
@@ -1,3 +1,6 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
2
  import { createClient, createConfig } from './client/index.js';
3
- export const client = createClient(createConfig({ baseUrl: 'http://localhost:45064', throwOnError: true }));
3
+ export const client = createClient(createConfig({
4
+ baseUrl: 'http://localhost:45064',
5
+ throwOnError: true
6
+ }));
@@ -1,5 +1,5 @@
1
1
  import type { Client, Options as Options2, TDataShape } from './client/index.js';
2
- import type { DeleteAbTestData, DeleteAbTestErrors, DeleteAbTestProjectData, DeleteAbTestProjectErrors, DeleteAbTestProjectResponses, DeleteAbTestResponses, DeleteAbTestVariantData, DeleteAbTestVariantErrors, DeleteAbTestVariantResponses, DeleteAnnotationsData, DeleteAnnotationsErrors, DeleteAnnotationsResponses, DeleteAppliedPersonalizationData, DeleteAppliedPersonalizationErrors, DeleteAppliedPersonalizationResponses, DeleteCampaignGroupData, DeleteCampaignGroupErrors, DeleteCampaignGroupResponses, DeleteContentScoringJourneyData, DeleteContentScoringJourneyErrors, DeleteContentScoringJourneyResponses, DeleteContentScoringPersonaData, DeleteContentScoringPersonaErrors, DeleteContentScoringPersonaResponses, DeleteCustomerJourneyData, DeleteCustomerJourneyErrors, DeleteCustomerJourneyResponses, DeleteIpFiltersData, DeleteIpFiltersErrors, DeleteIpFiltersResponses, DeletePersonaData, DeletePersonaErrors, DeletePersonaResponses, DeleteReferralGroupData, DeleteReferralGroupErrors, DeleteReferralGroupResponses, DeleteSegmentsData, DeleteSegmentsDeleteSegmentContentData, DeleteSegmentsDeleteSegmentContentErrors, DeleteSegmentsDeleteSegmentContentResponses, DeleteSegmentsErrors, DeleteSegmentsResponses, GetAbTestAllData, GetAbTestAllErrors, GetAbTestAllResponses, GetAbTestData, GetAbTestEmptyData, GetAbTestEmptyErrors, GetAbTestEmptyResponses, GetAbTestErrors, GetAbTestPageData, GetAbTestPageErrors, GetAbTestPageResponses, GetAbTestPreviewUrlData, GetAbTestPreviewUrlErrors, GetAbTestPreviewUrlResponses, GetAbTestProjectAllData, GetAbTestProjectAllErrors, GetAbTestProjectAllResponses, GetAbTestProjectData, GetAbTestProjectDetailsData, GetAbTestProjectDetailsErrors, GetAbTestProjectDetailsResponses, GetAbTestProjectErrors, GetAbTestProjectResponses, GetAbTestResponses, GetAbTestVariantAllData, GetAbTestVariantAllErrors, GetAbTestVariantAllResponses, GetAbTestVariantData, GetAbTestVariantErrors, GetAbTestVariantResponses, GetAbTestVariantSegmentData, GetAbTestVariantSegmentErrors, GetAbTestVariantSegmentResponses, GetAbTestViewModelData, GetAbTestViewModelErrors, GetAbTestViewModelResponses, GetAddOnsData, GetAddOnsErrors, GetAddOnsResponses, GetAnalyticsDistinctData, GetAnalyticsDistinctErrors, GetAnalyticsDistinctResponses, GetAnnotationsAllData, GetAnnotationsAllErrors, GetAnnotationsAllResponses, GetAnnotationsEmptyData, GetAnnotationsEmptyErrors, GetAnnotationsEmptyResponses, GetAnnotationsGlobalData, GetAnnotationsGlobalErrors, GetAnnotationsGlobalResponses, GetAnnotationsPageData, GetAnnotationsPageErrors, GetAnnotationsPageResponses, GetAppliedPersonalizationAllData, GetAppliedPersonalizationAllErrors, GetAppliedPersonalizationAllResponses, GetAppliedPersonalizationIdData, GetAppliedPersonalizationIdErrors, GetAppliedPersonalizationIdResponses, GetAppliedPersonalizationSegmentData, GetAppliedPersonalizationSegmentErrors, GetAppliedPersonalizationSegmentResponses, GetCampaignGroupAllData, GetCampaignGroupAllErrors, GetCampaignGroupAllResponses, GetCampaignGroupData, GetCampaignGroupErrors, GetCampaignGroupResponses, GetCampaignGroupUnscoredData, GetCampaignGroupUnscoredErrors, GetCampaignGroupUnscoredResponses, GetCampaignGroupVisitorsData, GetCampaignGroupVisitorsErrors, GetCampaignGroupVisitorsResponses, GetCampaignsData, GetCampaignsErrors, GetCampaignsResponses, GetCockpitGetUmbracoPageInfoData, GetCockpitGetUmbracoPageInfoErrors, GetCockpitGetUmbracoPageInfoResponses, GetConfigurationData, GetConfigurationErrors, GetConfigurationResponses, GetContentScoringAllData, GetContentScoringAllErrors, GetContentScoringAllResponses, GetContentScoringCustomerJourneyExportCsvData, GetContentScoringCustomerJourneyExportCsvErrors, GetContentScoringCustomerJourneyExportCsvResponses, GetContentScoringPersonaExportCsvData, GetContentScoringPersonaExportCsvErrors, GetContentScoringPersonaExportCsvResponses, GetContentTypesAllData, GetContentTypesAllErrors, GetContentTypesAllResponses, GetContentTypesSegmentedPropertyData, GetContentTypesSegmentedPropertyErrors, GetContentTypesSegmentedPropertyResponses, GetCulturesData, GetCulturesErrors, GetCulturesResponses, GetCustomerJourneyAllData, GetCustomerJourneyAllErrors, GetCustomerJourneyAllResponses, GetCustomerJourneyDetailsData, GetCustomerJourneyDetailsErrors, GetCustomerJourneyDetailsResponses, GetCustomerJourneyEmptyData, GetCustomerJourneyEmptyErrors, GetCustomerJourneyEmptyResponses, GetDataCleanupLogsData, GetDataCleanupLogsErrors, GetDataCleanupLogsResponses, GetDataGenerationLogsData, GetDataGenerationLogsErrors, GetDataGenerationLogsResponses, GetGoalAllTypesData, GetGoalAllTypesErrors, GetGoalAllTypesResponses, GetGoalDetailsData, GetGoalDetailsErrors, GetGoalDetailsResponses, GetGoalsAllData, GetGoalsAllErrors, GetGoalsAllResponses, GetGoalsMainData, GetGoalsMainErrors, GetGoalsMainResponses, GetHeatmapsVariantsData, GetHeatmapsVariantsErrors, GetHeatmapsVariantsResponses, GetIpFiltersAllData, GetIpFiltersAllErrors, GetIpFiltersAllResponses, GetIpFiltersEmptyData, GetIpFiltersEmptyErrors, GetIpFiltersEmptyResponses, GetMainSwitchData, GetMainSwitchErrors, GetMainSwitchResponses, GetPackageData, GetPackageErrors, GetPackageResponses, GetPermissionsDocumentTypeAllData, GetPermissionsDocumentTypeAllErrors, GetPermissionsDocumentTypeAllResponses, GetPermissionsDocumentTypeData, GetPermissionsDocumentTypeErrors, GetPermissionsDocumentTypeResponses, GetPermissionsUserGroupAllData, GetPermissionsUserGroupAllErrors, GetPermissionsUserGroupAllResponses, GetPermissionsUserGroupData, GetPermissionsUserGroupErrors, GetPermissionsUserGroupResponses, GetPersonaAllData, GetPersonaAllErrors, GetPersonaAllResponses, GetPersonaDetailsData, GetPersonaDetailsErrors, GetPersonaDetailsResponses, GetPersonaEmptyData, GetPersonaEmptyErrors, GetPersonaEmptyResponses, GetProfileBotVisitorsData, GetProfileBotVisitorsErrors, GetProfileBotVisitorsResponses, GetProfileCustomerJourneyStepScoresData, GetProfileCustomerJourneyStepScoresErrors, GetProfileCustomerJourneyStepScoresResponses, GetProfileDetailsData, GetProfileDetailsErrors, GetProfileDetailsResponses, GetProfileExportData, GetProfileExportErrors, GetProfileExportResponses, GetProfileGoalCompletionsData, GetProfileGoalCompletionsErrors, GetProfileGoalCompletionsResponses, GetProfileLastActiveSegmentData, GetProfileLastActiveSegmentErrors, GetProfileLastActiveSegmentResponses, GetProfilePageEventsData, GetProfilePageEventsErrors, GetProfilePageEventsResponses, GetProfilePageviewsData, GetProfilePageviewsErrors, GetProfilePageviewsResponses, GetProfilePersonaScoresData, GetProfilePersonaScoresErrors, GetProfilePersonaScoresResponses, GetProfilePotentialData, GetProfilePotentialErrors, GetProfilePotentialResponses, GetProfileRelatedData, GetProfileRelatedErrors, GetProfileRelatedResponses, GetProfileSessionsData, GetProfileSessionsErrors, GetProfileSessionsResponses, GetProfileStatisticsGrowthData, GetProfileStatisticsGrowthErrors, GetProfileStatisticsGrowthResponses, GetProfileStatisticsIdentificationData, GetProfileStatisticsIdentificationErrors, GetProfileStatisticsIdentificationResponses, GetProfileStatisticsTotalData, GetProfileStatisticsTotalErrors, GetProfileStatisticsTotalResponses, GetReferralGroupAllData, GetReferralGroupAllErrors, GetReferralGroupAllResponses, GetReferralGroupData, GetReferralGroupErrors, GetReferralGroupResponses, GetReferralGroupVisitorsData, GetReferralGroupVisitorsErrors, GetReferralGroupVisitorsResponses, GetReportingData, GetReportingErrors, GetReportingGenerationStatusData, GetReportingGenerationStatusErrors, GetReportingGenerationStatusResponses, GetReportingGoalPersonalizationPerformanceBySegmentIdData, GetReportingGoalPersonalizationPerformanceBySegmentIdErrors, GetReportingGoalPersonalizationPerformanceBySegmentIdResponses, GetReportingResponses, GetReportingSegmentSessionsPersonalizationBySegmentIdData, GetReportingSegmentSessionsPersonalizationBySegmentIdErrors, GetReportingSegmentSessionsPersonalizationBySegmentIdResponses, GetReportingSegmentSessionsPotentialBySegmentIdData, GetReportingSegmentSessionsPotentialBySegmentIdErrors, GetReportingSegmentSessionsPotentialBySegmentIdResponses, GetSearchTermsData, GetSearchTermsErrors, GetSearchTermsResponses, GetSegmentsAllData, GetSegmentsAllErrors, GetSegmentsAllResponses, GetSegmentsData, GetSegmentsErrors, GetSegmentsLocationsDataData, GetSegmentsLocationsDataErrors, GetSegmentsLocationsDataResponses, GetSegmentsResponses, GetStatisticsData, GetStatisticsErrors, GetStatisticsResponses, GetUmbracoEngagePagedataPingData, GetUmbracoEngagePagedataPingErrors, GetUmbracoEngagePagedataPingResponses, PostAbTestData, PostAbTestErrors, PostAbTestProjectData, PostAbTestProjectErrors, PostAbTestProjectResponses, PostAbTestResponses, PostAbTestRuntimeIndicationData, PostAbTestRuntimeIndicationErrors, PostAbTestRuntimeIndicationResponses, PostAbTestSegmentData, PostAbTestSegmentErrors, PostAbTestSegmentResponses, PostAbTestVariantData, PostAbTestVariantDetailsData, PostAbTestVariantDetailsErrors, PostAbTestVariantDetailsResponses, PostAbTestVariantDisableData, PostAbTestVariantDisableErrors, PostAbTestVariantDisableResponses, PostAbTestVariantErrors, PostAbTestVariantResponses, PostAnalyticsQueryData, PostAnalyticsQueryErrors, PostAnalyticsQueryResponses, PostAnnotationsData, PostAnnotationsErrors, PostAnnotationsResponses, PostAppliedPersonalizationData, PostAppliedPersonalizationErrors, PostAppliedPersonalizationResponses, PostAppliedPersonalizationSegmentData, PostAppliedPersonalizationSegmentErrors, PostAppliedPersonalizationSegmentResponses, PostCampaignGroupData, PostCampaignGroupErrors, PostCampaignGroupResponses, PostCockpitDeleteCookieData, PostCockpitDeleteCookieErrors, PostCockpitDeleteCookieResponses, PostContentScoringSaveData, PostContentScoringSaveErrors, PostContentScoringSaveResponses, PostCustomerJourneyData, PostCustomerJourneyErrors, PostCustomerJourneyResponses, PostGoalAllData, PostGoalAllErrors, PostGoalAllResponses, PostGoalData, PostGoalErrors, PostGoalResponses, PostHeatmapsGenerateScrollHeatmapData, PostHeatmapsGenerateScrollHeatmapErrors, PostHeatmapsGenerateScrollHeatmapResponses, PostIpFiltersData, PostIpFiltersErrors, PostIpFiltersResponses, PostMainSwitchTurnOffData, PostMainSwitchTurnOffErrors, PostMainSwitchTurnOffResponses, PostMainSwitchTurnOnData, PostMainSwitchTurnOnErrors, PostMainSwitchTurnOnResponses, PostPermissionsDocumentTypeData, PostPermissionsDocumentTypeErrors, PostPermissionsDocumentTypeResponses, PostPermissionsUserGroupData, PostPermissionsUserGroupErrors, PostPermissionsUserGroupResponses, PostPersonaData, PostPersonaErrors, PostPersonaResponses, PostProfileExportCsvData, PostProfileExportCsvErrors, PostProfileExportCsvResponses, PostProfileOverviewData, PostProfileOverviewErrors, PostProfileOverviewResponses, PostReferralGroupData, PostReferralGroupErrors, PostReferralGroupResponses, PostReferralScoringScoredData, PostReferralScoringScoredErrors, PostReferralScoringScoredResponses, PostReferralScoringUnscoredData, PostReferralScoringUnscoredErrors, PostReferralScoringUnscoredResponses, PostReportingGenerationStartData, PostReportingGenerationStartErrors, PostReportingGenerationStartResponses, PostSegmentsData, PostSegmentsErrors, PostSegmentsResponses, PostSegmentsUpdatePriorityData, PostSegmentsUpdatePriorityErrors, PostSegmentsUpdatePriorityResponses, PostUmbracoEngagePagedataCollectData, PostUmbracoEngagePagedataCollectErrors, PostUmbracoEngagePagedataCollectEventData, PostUmbracoEngagePagedataCollectEventErrors, PostUmbracoEngagePagedataCollectEventResponses, PostUmbracoEngagePagedataCollectResponses, PostUmbracoEngagePagedataPingData, PostUmbracoEngagePagedataPingErrors, PostUmbracoEngagePagedataPingResponses, PutAbTestProjectData, PutAbTestProjectErrors, PutAbTestProjectResponses } from './types.gen.js';
2
+ import type { DeleteAbTestData, DeleteAbTestErrors, DeleteAbTestProjectData, DeleteAbTestProjectErrors, DeleteAbTestProjectResponses, DeleteAbTestResponses, DeleteAbTestVariantData, DeleteAbTestVariantErrors, DeleteAbTestVariantResponses, DeleteAnnotationsData, DeleteAnnotationsErrors, DeleteAnnotationsResponses, DeleteAppliedPersonalizationData, DeleteAppliedPersonalizationErrors, DeleteAppliedPersonalizationResponses, DeleteCampaignGroupData, DeleteCampaignGroupErrors, DeleteCampaignGroupResponses, DeleteContentScoringJourneyData, DeleteContentScoringJourneyErrors, DeleteContentScoringJourneyResponses, DeleteContentScoringPersonaData, DeleteContentScoringPersonaErrors, DeleteContentScoringPersonaResponses, DeleteCustomerJourneyData, DeleteCustomerJourneyErrors, DeleteCustomerJourneyResponses, DeleteIpFiltersData, DeleteIpFiltersErrors, DeleteIpFiltersResponses, DeletePersonaData, DeletePersonaErrors, DeletePersonaResponses, DeleteReferralGroupData, DeleteReferralGroupErrors, DeleteReferralGroupResponses, DeleteSegmentsData, DeleteSegmentsDeleteSegmentContentData, DeleteSegmentsDeleteSegmentContentErrors, DeleteSegmentsDeleteSegmentContentResponses, DeleteSegmentsErrors, DeleteSegmentsResponses, GetAbTestAllData, GetAbTestAllErrors, GetAbTestAllResponses, GetAbTestData, GetAbTestEmptyData, GetAbTestEmptyErrors, GetAbTestEmptyResponses, GetAbTestErrors, GetAbTestPageData, GetAbTestPageErrors, GetAbTestPageResponses, GetAbTestPreviewUrlData, GetAbTestPreviewUrlErrors, GetAbTestPreviewUrlResponses, GetAbTestProjectAllData, GetAbTestProjectAllErrors, GetAbTestProjectAllResponses, GetAbTestProjectData, GetAbTestProjectDetailsData, GetAbTestProjectDetailsErrors, GetAbTestProjectDetailsResponses, GetAbTestProjectErrors, GetAbTestProjectResponses, GetAbTestResponses, GetAbTestVariantAllData, GetAbTestVariantAllErrors, GetAbTestVariantAllResponses, GetAbTestVariantData, GetAbTestVariantErrors, GetAbTestVariantResponses, GetAbTestVariantSegmentData, GetAbTestVariantSegmentErrors, GetAbTestVariantSegmentResponses, GetAbTestViewModelData, GetAbTestViewModelErrors, GetAbTestViewModelResponses, GetAddOnsData, GetAddOnsErrors, GetAddOnsResponses, GetAnalyticsDistinctData, GetAnalyticsDistinctErrors, GetAnalyticsDistinctResponses, GetAnnotationsAllData, GetAnnotationsAllErrors, GetAnnotationsAllResponses, GetAnnotationsEmptyData, GetAnnotationsEmptyErrors, GetAnnotationsEmptyResponses, GetAnnotationsGlobalData, GetAnnotationsGlobalErrors, GetAnnotationsGlobalResponses, GetAnnotationsPageData, GetAnnotationsPageErrors, GetAnnotationsPageResponses, GetAppliedPersonalizationAllData, GetAppliedPersonalizationAllErrors, GetAppliedPersonalizationAllResponses, GetAppliedPersonalizationIdData, GetAppliedPersonalizationIdErrors, GetAppliedPersonalizationIdResponses, GetAppliedPersonalizationSegmentData, GetAppliedPersonalizationSegmentErrors, GetAppliedPersonalizationSegmentResponses, GetCampaignGroupAllData, GetCampaignGroupAllErrors, GetCampaignGroupAllResponses, GetCampaignGroupData, GetCampaignGroupErrors, GetCampaignGroupResponses, GetCampaignGroupUnscoredData, GetCampaignGroupUnscoredErrors, GetCampaignGroupUnscoredResponses, GetCampaignGroupVisitorsData, GetCampaignGroupVisitorsErrors, GetCampaignGroupVisitorsResponses, GetCampaignsData, GetCampaignsErrors, GetCampaignsResponses, GetCockpitGetUmbracoPageInfoData, GetCockpitGetUmbracoPageInfoErrors, GetCockpitGetUmbracoPageInfoResponses, GetConfigurationData, GetConfigurationErrors, GetConfigurationResponses, GetContentScoringAllData, GetContentScoringAllErrors, GetContentScoringAllResponses, GetContentScoringCustomerJourneyExportCsvData, GetContentScoringCustomerJourneyExportCsvErrors, GetContentScoringCustomerJourneyExportCsvResponses, GetContentScoringPersonaExportCsvData, GetContentScoringPersonaExportCsvErrors, GetContentScoringPersonaExportCsvResponses, GetContentTypesAllData, GetContentTypesAllErrors, GetContentTypesAllResponses, GetContentTypesSegmentedPropertyData, GetContentTypesSegmentedPropertyErrors, GetContentTypesSegmentedPropertyResponses, GetCulturesData, GetCulturesErrors, GetCulturesResponses, GetCustomerJourneyAllData, GetCustomerJourneyAllErrors, GetCustomerJourneyAllResponses, GetCustomerJourneyDetailsData, GetCustomerJourneyDetailsErrors, GetCustomerJourneyDetailsResponses, GetCustomerJourneyEmptyData, GetCustomerJourneyEmptyErrors, GetCustomerJourneyEmptyResponses, GetDataCleanupLogsData, GetDataCleanupLogsErrors, GetDataCleanupLogsResponses, GetDataGenerationLogsData, GetDataGenerationLogsErrors, GetDataGenerationLogsResponses, GetGoalAllTypesData, GetGoalAllTypesErrors, GetGoalAllTypesResponses, GetGoalDetailsData, GetGoalDetailsErrors, GetGoalDetailsResponses, GetGoalsAllData, GetGoalsAllErrors, GetGoalsAllResponses, GetGoalsMainData, GetGoalsMainErrors, GetGoalsMainResponses, GetHeatmapsVariantsData, GetHeatmapsVariantsErrors, GetHeatmapsVariantsResponses, GetIpFiltersAllData, GetIpFiltersAllErrors, GetIpFiltersAllResponses, GetIpFiltersEmptyData, GetIpFiltersEmptyErrors, GetIpFiltersEmptyResponses, GetMainSwitchData, GetMainSwitchErrors, GetMainSwitchResponses, GetPackageData, GetPackageErrors, GetPackageResponses, GetPermissionsDocumentTypeAllData, GetPermissionsDocumentTypeAllErrors, GetPermissionsDocumentTypeAllResponses, GetPermissionsDocumentTypeData, GetPermissionsDocumentTypeErrors, GetPermissionsDocumentTypeResponses, GetPermissionsUserGroupAllData, GetPermissionsUserGroupAllErrors, GetPermissionsUserGroupAllResponses, GetPermissionsUserGroupData, GetPermissionsUserGroupErrors, GetPermissionsUserGroupResponses, GetPersonaAllData, GetPersonaAllErrors, GetPersonaAllResponses, GetPersonaDetailsData, GetPersonaDetailsErrors, GetPersonaDetailsResponses, GetPersonaEmptyData, GetPersonaEmptyErrors, GetPersonaEmptyResponses, GetProfileBotVisitorsData, GetProfileBotVisitorsErrors, GetProfileBotVisitorsResponses, GetProfileCustomerJourneyStepScoresData, GetProfileCustomerJourneyStepScoresErrors, GetProfileCustomerJourneyStepScoresResponses, GetProfileDetailsData, GetProfileDetailsErrors, GetProfileDetailsResponses, GetProfileExportData, GetProfileExportErrors, GetProfileExportResponses, GetProfileGoalCompletionsData, GetProfileGoalCompletionsErrors, GetProfileGoalCompletionsResponses, GetProfileLastActiveSegmentData, GetProfileLastActiveSegmentErrors, GetProfileLastActiveSegmentResponses, GetProfilePageEventsData, GetProfilePageEventsErrors, GetProfilePageEventsResponses, GetProfilePageviewsData, GetProfilePageviewsErrors, GetProfilePageviewsResponses, GetProfilePersonaScoresData, GetProfilePersonaScoresErrors, GetProfilePersonaScoresResponses, GetProfilePotentialData, GetProfilePotentialErrors, GetProfilePotentialResponses, GetProfileRelatedData, GetProfileRelatedErrors, GetProfileRelatedResponses, GetProfileSessionsData, GetProfileSessionsErrors, GetProfileSessionsResponses, GetProfileStatisticsGrowthData, GetProfileStatisticsGrowthErrors, GetProfileStatisticsGrowthResponses, GetProfileStatisticsIdentificationData, GetProfileStatisticsIdentificationErrors, GetProfileStatisticsIdentificationResponses, GetProfileStatisticsTotalData, GetProfileStatisticsTotalErrors, GetProfileStatisticsTotalResponses, GetReferralGroupAllData, GetReferralGroupAllErrors, GetReferralGroupAllResponses, GetReferralGroupData, GetReferralGroupErrors, GetReferralGroupResponses, GetReferralGroupVisitorsData, GetReferralGroupVisitorsErrors, GetReferralGroupVisitorsResponses, GetReportingData, GetReportingErrors, GetReportingGenerationStatusData, GetReportingGenerationStatusErrors, GetReportingGenerationStatusResponses, GetReportingGoalPersonalizationPerformanceBySegmentIdData, GetReportingGoalPersonalizationPerformanceBySegmentIdErrors, GetReportingGoalPersonalizationPerformanceBySegmentIdResponses, GetReportingResponses, GetReportingSegmentSessionsPersonalizationBySegmentIdData, GetReportingSegmentSessionsPersonalizationBySegmentIdErrors, GetReportingSegmentSessionsPersonalizationBySegmentIdResponses, GetReportingSegmentSessionsPotentialBySegmentIdData, GetReportingSegmentSessionsPotentialBySegmentIdErrors, GetReportingSegmentSessionsPotentialBySegmentIdResponses, GetSearchTermsData, GetSearchTermsErrors, GetSearchTermsResponses, GetSegmentsAllData, GetSegmentsAllErrors, GetSegmentsAllResponses, GetSegmentsData, GetSegmentsErrors, GetSegmentsLocationsDataData, GetSegmentsLocationsDataErrors, GetSegmentsLocationsDataResponses, GetSegmentsResponses, GetStatisticsData, GetStatisticsErrors, GetStatisticsResponses, GetUmbracoEngagePagedataPingData, GetUmbracoEngagePagedataPingErrors, GetUmbracoEngagePagedataPingResponses, PostAbTestData, PostAbTestErrors, PostAbTestProjectData, PostAbTestProjectErrors, PostAbTestProjectResponses, PostAbTestResponses, PostAbTestRuntimeIndicationData, PostAbTestRuntimeIndicationErrors, PostAbTestRuntimeIndicationResponses, PostAbTestSegmentData, PostAbTestSegmentErrors, PostAbTestSegmentResponses, PostAbTestVariantCreateData, PostAbTestVariantCreateErrors, PostAbTestVariantCreateResponses, PostAbTestVariantData, PostAbTestVariantDetailsData, PostAbTestVariantDetailsErrors, PostAbTestVariantDetailsResponses, PostAbTestVariantDisableData, PostAbTestVariantDisableErrors, PostAbTestVariantDisableResponses, PostAbTestVariantErrors, PostAbTestVariantResponses, PostAnalyticsQueryData, PostAnalyticsQueryErrors, PostAnalyticsQueryResponses, PostAnnotationsData, PostAnnotationsErrors, PostAnnotationsResponses, PostAppliedPersonalizationData, PostAppliedPersonalizationErrors, PostAppliedPersonalizationResponses, PostAppliedPersonalizationSegmentData, PostAppliedPersonalizationSegmentErrors, PostAppliedPersonalizationSegmentResponses, PostCampaignGroupData, PostCampaignGroupErrors, PostCampaignGroupResponses, PostCockpitDeleteCookieData, PostCockpitDeleteCookieErrors, PostCockpitDeleteCookieResponses, PostContentScoringSaveData, PostContentScoringSaveErrors, PostContentScoringSaveResponses, PostCustomerJourneyData, PostCustomerJourneyErrors, PostCustomerJourneyResponses, PostGoalAllData, PostGoalAllErrors, PostGoalAllResponses, PostGoalData, PostGoalErrors, PostGoalResponses, PostHeatmapsGenerateScrollHeatmapData, PostHeatmapsGenerateScrollHeatmapErrors, PostHeatmapsGenerateScrollHeatmapResponses, PostIpFiltersData, PostIpFiltersErrors, PostIpFiltersResponses, PostMainSwitchTurnOffData, PostMainSwitchTurnOffErrors, PostMainSwitchTurnOffResponses, PostMainSwitchTurnOnData, PostMainSwitchTurnOnErrors, PostMainSwitchTurnOnResponses, PostPermissionsDocumentTypeData, PostPermissionsDocumentTypeErrors, PostPermissionsDocumentTypeResponses, PostPermissionsUserGroupData, PostPermissionsUserGroupErrors, PostPermissionsUserGroupResponses, PostPersonaData, PostPersonaErrors, PostPersonaResponses, PostProfileExportCsvData, PostProfileExportCsvErrors, PostProfileExportCsvResponses, PostProfileOverviewData, PostProfileOverviewErrors, PostProfileOverviewResponses, PostReferralGroupData, PostReferralGroupErrors, PostReferralGroupResponses, PostReferralScoringScoredData, PostReferralScoringScoredErrors, PostReferralScoringScoredResponses, PostReferralScoringUnscoredData, PostReferralScoringUnscoredErrors, PostReferralScoringUnscoredResponses, PostReportingGenerationStartData, PostReportingGenerationStartErrors, PostReportingGenerationStartResponses, PostSegmentsData, PostSegmentsErrors, PostSegmentsResponses, PostSegmentsUpdatePriorityData, PostSegmentsUpdatePriorityErrors, PostSegmentsUpdatePriorityResponses, PostUmbracoEngagePagedataCollectData, PostUmbracoEngagePagedataCollectErrors, PostUmbracoEngagePagedataCollectEventData, PostUmbracoEngagePagedataCollectEventErrors, PostUmbracoEngagePagedataCollectEventResponses, PostUmbracoEngagePagedataCollectResponses, PostUmbracoEngagePagedataPingData, PostUmbracoEngagePagedataPingErrors, PostUmbracoEngagePagedataPingResponses, PutAbTestProjectData, PutAbTestProjectErrors, PutAbTestProjectResponses } from './types.gen.js';
3
3
  export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
4
4
  /**
5
5
  * You can provide a client instance returned by `createClient()` instead of
@@ -26,6 +26,7 @@ export declare class ABTestVariantService {
26
26
  static getAbTestVariant<ThrowOnError extends boolean = true>(options?: Options<GetAbTestVariantData, ThrowOnError>): import("./client/index.js").RequestResult<GetAbTestVariantResponses, GetAbTestVariantErrors, ThrowOnError, "fields">;
27
27
  static postAbTestVariant<ThrowOnError extends boolean = true>(options?: Options<PostAbTestVariantData, ThrowOnError>): import("./client/index.js").RequestResult<PostAbTestVariantResponses, PostAbTestVariantErrors, ThrowOnError, "fields">;
28
28
  static getAbTestVariantAll<ThrowOnError extends boolean = true>(options?: Options<GetAbTestVariantAllData, ThrowOnError>): import("./client/index.js").RequestResult<GetAbTestVariantAllResponses, GetAbTestVariantAllErrors, ThrowOnError, "fields">;
29
+ static postAbTestVariantCreate<ThrowOnError extends boolean = true>(options?: Options<PostAbTestVariantCreateData, ThrowOnError>): import("./client/index.js").RequestResult<PostAbTestVariantCreateResponses, PostAbTestVariantCreateErrors, ThrowOnError, "fields">;
29
30
  static postAbTestVariantDisable<ThrowOnError extends boolean = true>(options?: Options<PostAbTestVariantDisableData, ThrowOnError>): import("./client/index.js").RequestResult<PostAbTestVariantDisableResponses, PostAbTestVariantDisableErrors, ThrowOnError, "fields">;
30
31
  static getAbTestVariantSegment<ThrowOnError extends boolean = true>(options?: Options<GetAbTestVariantSegmentData, ThrowOnError>): import("./client/index.js").RequestResult<GetAbTestVariantSegmentResponses, GetAbTestVariantSegmentErrors, ThrowOnError, "fields">;
31
32
  }