@umbraco-engage/backoffice 17.0.2 → 17.0.4

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 -2
  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 +26 -12
  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",
@@ -413,7 +414,6 @@ export default {
413
414
  videoUrl: "Video URL",
414
415
  visitors: "Visitors",
415
416
  yesterday: "Yesterday",
416
- last30days: "Last 30 days",
417
417
  "last-7-days": "Last 7 days",
418
418
  "last-30-days": "Last 30 days",
419
419
  "this-month": "This month",
@@ -738,10 +738,15 @@ export default {
738
738
  dataGenerationTimeDescription: "The time each day reporting data will be generated (24 hour format). This uses the local time of the webserver.",
739
739
  dataGenerationLogDescription: "View the logs of the last 20 attempted data generation runs.",
740
740
  pageviewCoverage: "Pageview coverage",
741
+ pageviewCoverageTooltip: "The number of pageviews that are covered by the segment (regardless of personalization).",
741
742
  personalizedPageviews: "Personalized pageviews",
743
+ personalizedPageviewsTooltip: "The number of pageviews that have been personalized through this segment.",
742
744
  personalizedProfiles: "Personalized profiles",
745
+ personalizedProfilesTooltip: "The number of profiles that have been personalized through this segment.",
743
746
  personalizedSessions: "Personalized sessions",
747
+ personalizedSessionsTooltip: "The number of sessions that have been personalized through this segment.",
744
748
  profileCoverage: "Profile coverage",
749
+ profileCoverageTooltip: "The number of profiles that are covered by the segment (regardless of personalization).",
745
750
  regenerateReportingDataDescription: "Warning! Regenerating reporting data might have an impact on the performance of the site!",
746
751
  segment: "Segment",
747
752
  segmentPersonalization: "Segment personalization",
@@ -749,12 +754,16 @@ export default {
749
754
  selectSegment: "Select a segment",
750
755
  selectSegmentFromDropdown: "Select a segment from the dropdown",
751
756
  sessionCoverage: "Session coverage",
757
+ sessionCoverageTooltip: "The number of sessions that are covered by the segment (regardless of personalization).",
752
758
  sessionsNeeded: "Sessions needed",
759
+ sessionsNeededTooltip: "The number of sessions that a new profile requires to activate the segment (regardless of personalization) during the selected period of time.",
760
+ personalizationSessionsNeededTooltip: "The number of sessions that a new profile needed to be personalization during the selected period of time.",
753
761
  controlGroup: "Control group",
754
762
  personalizedGroup: "Personalized group",
755
763
  differenceVsControlGroup: "Difference vs control group",
756
764
  differenceVsProfile: "Difference / profile",
757
765
  completions: "Completions",
766
+ switchValueType: "Switch between numbers or percentages.",
758
767
  },
759
768
  engage_statistics: {
760
769
  statisticsDescription: "Shows various Umbraco Engage statistics",
@@ -789,7 +798,7 @@ export default {
789
798
  },
790
799
  engage_segmentation: {
791
800
  excludedPropertyAliases: "Excluded property aliases",
792
- excludedPropertyAliasesDescription: "A list of property aliases to exclude from segmentation and related processing.",
801
+ excludedPropertyAliasesDescription: "A list of property aliases to exclude from segmentation. umbracoNaviHide, umbracoRedirectUrl and umbracoUrlAlias are excluded by default.",
793
802
  },
794
803
  engage_settings: {
795
804
  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
  }