@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
@@ -145,6 +145,7 @@ export type AbTestUmbracoPageVariantDtoModel = {
145
145
  nodeName?: string | null;
146
146
  culture?: string | null;
147
147
  abTestId?: number | null;
148
+ variesBySegment: boolean;
148
149
  };
149
150
  export type AbTestVariantDtoModel = {
150
151
  id: number;
@@ -1697,6 +1698,31 @@ export type GetAbTestVariantAllResponses = {
1697
1698
  200: Array<AbTestVariantDtoModel>;
1698
1699
  };
1699
1700
  export type GetAbTestVariantAllResponse = GetAbTestVariantAllResponses[keyof GetAbTestVariantAllResponses];
1701
+ export type PostAbTestVariantCreateData = {
1702
+ body?: never;
1703
+ path?: never;
1704
+ query?: {
1705
+ testId?: number;
1706
+ };
1707
+ url: '/umbraco/engage/management/api/v1/ab-test-variant/create';
1708
+ };
1709
+ export type PostAbTestVariantCreateErrors = {
1710
+ /**
1711
+ * Bad Request
1712
+ */
1713
+ 400: unknown;
1714
+ /**
1715
+ * The resource is protected and requires an authentication token
1716
+ */
1717
+ 401: unknown;
1718
+ };
1719
+ export type PostAbTestVariantCreateResponses = {
1720
+ /**
1721
+ * OK
1722
+ */
1723
+ 200: AbTestVariantDtoModel;
1724
+ };
1725
+ export type PostAbTestVariantCreateResponse = PostAbTestVariantCreateResponses[keyof PostAbTestVariantCreateResponses];
1700
1726
  export type PostAbTestVariantDisableData = {
1701
1727
  body?: never;
1702
1728
  path?: never;
@@ -9,11 +9,11 @@ import { ENGAGE_APPLIED_PERSONALIZATION_EDITOR_VIEW_CONTEXT } from "./applied-pe
9
9
  import { css, customElement, html, state, when, } from "@umbraco-cms/backoffice/external/lit";
10
10
  import { UmbLitElement } from "@umbraco-cms/backoffice/lit-element";
11
11
  import { UUITextStyles } from "@umbraco-cms/backoffice/external/uui";
12
- import "../../../core/collection/table-name-column-layout.element.js";
13
- import "../collection/views/table/elements/applied-personalization-table-name-column-layout.element.js";
14
12
  import { UMB_DOCUMENT_ENTITY_TYPE } from "@umbraco-cms/backoffice/document";
15
13
  import { UMB_WORKSPACE_MODAL } from "@umbraco-cms/backoffice/workspace";
16
14
  import { UmbModalRouteRegistrationController } from "@umbraco-cms/backoffice/router";
15
+ import "../../../core/collection/table-name-column-layout.element.js";
16
+ import "../collection/views/table/elements/applied-personalization-table-name-column-layout.element.js";
17
17
  const elementName = "ue-applied-personalization-workspace-editor";
18
18
  let UeAppliedPersonalizationWorkspaceEditorElement = class UeAppliedPersonalizationWorkspaceEditorElement extends UmbLitElement {
19
19
  #workspaceContext;
@@ -43,7 +43,7 @@ export class UePersonalizationEditorViewBaseContext extends UmbContextBase {
43
43
  const page = variant.pages?.[0];
44
44
  if (!variant.umbracoSegmentAlias || !page)
45
45
  return;
46
- await this.#preview.preview(page.unique, variant.umbracoSegmentAlias, page.culture);
46
+ await this.#preview.preview(page.unique, variant.umbracoSegmentAlias, page.culture ?? undefined);
47
47
  }
48
48
  getPersonalizationByUnique(unique) {
49
49
  return this.personalizations.getValue().find((x) => x.unique === unique);
@@ -72,7 +72,7 @@ export class UePersonalizedVariantWorkspaceContext extends UeWorkspaceContextBas
72
72
  const page = data?.pages?.[0];
73
73
  if (!data?.umbracoSegmentAlias || !page)
74
74
  return;
75
- await this.#preview.preview(page.unique, data.umbracoSegmentAlias, this.#variantId?.culture);
75
+ await this.#preview.preview(page.unique, data.umbracoSegmentAlias, this.#variantId?.culture ?? undefined);
76
76
  }
77
77
  async createScaffold() {
78
78
  await Promise.all([this.#init, this.#repositoryReady]);
@@ -1,13 +1,19 @@
1
1
  import { UmbLitElement } from "@umbraco-cms/backoffice/lit-element";
2
- import type { UePrefabType } from "../../../analytics/index.js";
2
+ import { type UePrefabType } from "../../../analytics/index.js";
3
3
  declare const elementName = "ue-reporting-chart-card";
4
4
  export declare class UeReportingChartCardElement extends UmbLitElement {
5
5
  #private;
6
- private _config;
6
+ private _config?;
7
7
  headline: string;
8
+ tooltip?: string;
8
9
  prefabAlias: UePrefabType;
10
+ private _hasSlottedContent;
11
+ private _showPercentages;
9
12
  constructor();
13
+ protected firstUpdated(): void;
14
+ connectedCallback(): void;
10
15
  render(): import("lit-html").TemplateResult<1>;
16
+ static styles: import("lit").CSSResult[];
11
17
  }
12
18
  declare global {
13
19
  interface HTMLElementTagNameMap {
@@ -4,41 +4,94 @@ 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, property, state, } from "@umbraco-cms/backoffice/external/lit";
7
+ import { css, customElement, html, property, state, when, } from "@umbraco-cms/backoffice/external/lit";
8
+ import { UUITextStyles, } from "@umbraco-cms/backoffice/external/uui";
8
9
  import { UmbLitElement } from "@umbraco-cms/backoffice/lit-element";
10
+ import { UePrefabChartPrefabsGeneratorController, } from "../../../analytics/index.js";
9
11
  const elementName = "ue-reporting-chart-card";
10
12
  let UeReportingChartCardElement = class UeReportingChartCardElement extends UmbLitElement {
13
+ #prefabsGenerator;
14
+ #config;
11
15
  constructor() {
12
16
  super();
13
- this._config = {
17
+ this.#prefabsGenerator = new UePrefabChartPrefabsGeneratorController(this);
18
+ this.#config = {
14
19
  type: "bar",
15
20
  showAnnotations: false,
16
- showPercentages: false,
17
21
  pageSize: 999,
18
22
  page: 1,
19
- aspect: 1 / 1,
23
+ aspect: 3 / 2,
20
24
  };
21
25
  this.headline = "";
26
+ this._hasSlottedContent = true;
27
+ this._showPercentages = false;
22
28
  const now = new Date();
23
- this._config.endDate = now.toISOString();
29
+ this.#config.endDate = now.toISOString();
24
30
  now.setDate(now.getDate() - 30);
25
- this._config.startDate = now.toISOString();
31
+ this.#config.startDate = now.toISOString();
32
+ }
33
+ firstUpdated() {
34
+ // Check slot content immediately after first render
35
+ const slot = this.shadowRoot?.querySelector("slot");
36
+ if (slot) {
37
+ this._hasSlottedContent = slot.assignedNodes().length > 0;
38
+ }
39
+ }
40
+ connectedCallback() {
41
+ super.connectedCallback();
42
+ // if no alias, we don't generate a config and assume that
43
+ // the chart is slotted - typically a doughnut chart
44
+ if (!this.prefabAlias)
45
+ return;
46
+ this._config = this.#prefabsGenerator.generate(this.prefabAlias, this.#config);
26
47
  }
27
48
  #showPercentageChanged(e) {
28
- this._config = { ...this._config, showPercentages: e.target.checked };
49
+ this._showPercentages = e.target.checked;
50
+ }
51
+ #renderTooltip() {
52
+ if (!this.tooltip)
53
+ return null;
54
+ return html `<span popovertarget="info">
55
+ <umb-icon name="icon-info"></umb-icon>
56
+ <uui-popover-container id="info" placement="bottom-start">
57
+ <ue-tooltip hint>${this.tooltip}</ue-tooltip>
58
+ </uui-popover-container>
59
+ </span>`;
29
60
  }
30
61
  render() {
31
- return html ` <uui-box .headline=${this.headline}>
32
- <ue-chart-toggle
33
- slot="header-actions"
34
- @change=${this.#showPercentageChanged}
35
- ></ue-chart-toggle>
36
- <ue-prefab-chart
37
- .config=${this._config}
38
- alias=${this.prefabAlias}
39
- ></ue-prefab-chart>
62
+ return html ` <uui-box>
63
+ <div slot="header" class="uui-text">
64
+ <h5 class="uui-h5">${this.headline}</h5>
65
+ ${this.#renderTooltip()}
66
+ </div>
67
+ ${when(!this._hasSlottedContent, () => html ` <ue-chart-toggle
68
+ slot="header-actions"
69
+ @change=${this.#showPercentageChanged}
70
+ ></ue-chart-toggle>`)}
71
+
72
+ <slot></slot>
73
+ ${!this._hasSlottedContent
74
+ ? html `<ue-chart
75
+ .config=${this._config}
76
+ ?showPercentages=${this._showPercentages}
77
+ ></ue-chart>`
78
+ : null}
40
79
  </uui-box>`;
41
80
  }
81
+ static { this.styles = [
82
+ UUITextStyles,
83
+ css `
84
+ div {
85
+ display: flex;
86
+ align-items: center;
87
+ gap: var(--uui-size-3);
88
+ }
89
+
90
+ uui-box {
91
+ height: 100%;
92
+ }
93
+ `,
94
+ ]; }
42
95
  };
43
96
  __decorate([
44
97
  state()
@@ -46,9 +99,18 @@ __decorate([
46
99
  __decorate([
47
100
  property()
48
101
  ], UeReportingChartCardElement.prototype, "headline", void 0);
102
+ __decorate([
103
+ property()
104
+ ], UeReportingChartCardElement.prototype, "tooltip", void 0);
49
105
  __decorate([
50
106
  property()
51
107
  ], UeReportingChartCardElement.prototype, "prefabAlias", void 0);
108
+ __decorate([
109
+ state()
110
+ ], UeReportingChartCardElement.prototype, "_hasSlottedContent", void 0);
111
+ __decorate([
112
+ state()
113
+ ], UeReportingChartCardElement.prototype, "_showPercentages", void 0);
52
114
  UeReportingChartCardElement = __decorate([
53
115
  customElement(elementName)
54
116
  ], UeReportingChartCardElement);
@@ -50,26 +50,31 @@ let UeSegmentPersonalizationElement = class UeSegmentPersonalizationElement exte
50
50
  <div id="flex">
51
51
  <ue-reporting-chart-card
52
52
  .headline=${this.localize.term("engage_reporting_personalizedPageviews")}
53
+ .tooltip=${this.localize.term("engage_reporting_personalizedPageviewsTooltip")}
53
54
  prefabAlias="segmentpersonalizationpageviewcoverage"
54
55
  ></ue-reporting-chart-card>
55
56
  <ue-reporting-chart-card
56
57
  .headline=${this.localize.term("engage_reporting_personalizedSessions")}
58
+ .tooltip=${this.localize.term("engage_reporting_personalizedSessionsTooltip")}
57
59
  prefabAlias="segmentpersonalizationsessioncoverage"
58
60
  ></ue-reporting-chart-card>
59
61
  <ue-reporting-chart-card
60
62
  .headline=${this.localize.term("engage_reporting_personalizedProfiles")}
63
+ .tooltip=${this.localize.term("engage_reporting_personalizedProfilesTooltip")}
61
64
  prefabAlias="segmentpersonalizationprofilecoverage"
62
65
  ></ue-reporting-chart-card>
63
66
 
64
- <uui-box
67
+ <ue-reporting-chart-card
65
68
  .headline=${this.localize.term("engage_reporting_sessionsNeeded")}
69
+ .tooltip=${this.localize.term("engage_reporting_personalizationSessionsNeededTooltip")}
66
70
  >
67
71
  <ue-donut-chart .data=${this._sessionsNeeded}></ue-donut-chart>
68
- </uui-box>
72
+ </ue-reporting-chart-card>
69
73
  </div>`;
70
74
  }
71
75
  static { this.styles = css `
72
76
  h2 {
77
+ margin: 0 0 var(--uui-size-4);
73
78
  color: var(--engage-color-default);
74
79
  }
75
80
 
@@ -104,68 +104,52 @@ let UeSegmentPersonalizationGoalPerformanceElement = class UeSegmentPersonalizat
104
104
  <td>-</td>`)}
105
105
  </tr>`;
106
106
  }
107
+ #headerCell(label, left = false, span = 1) {
108
+ return html `<th colspan=${span} class=${left ? "aligned-left" : ""}>
109
+ ${this.localize.term(label)}
110
+ </th>`;
111
+ }
107
112
  render() {
108
113
  return html `<h2>${this.localize.term("engage_reporting_allGoals")}</h2>
109
114
  <uui-box>
110
115
  <table>
111
116
  <thead>
112
117
  <tr>
113
- <th>${this.localize.term("engage_goal")}</th>
114
- <th>${this.localize.term("engage_type")}</th>
115
- <th class="aligned-left" colspan=${this._hasValues ? 3 : 2}>
116
- ${this.localize.term("engage_reporting_controlGroup")}
117
- </th>
118
- <th class="aligned-left" colspan=${this._hasValues ? 3 : 2}>
119
- ${this.localize.term("engage_reporting_personalizedGroup")}
120
- </th>
121
- <th class="aligned-left" colspan=${this._hasValues ? 2 : 1}>
122
- ${this.localize.term("engage_reporting_differenceVsControlGroup")}
123
- </th>
124
- <th class="aligned-left" colspan=${this._hasValues ? 3 : 1}>
125
- ${this.localize.term("engage_reporting_differenceVsProfile")}
126
- </th>
127
- </tr>
128
- <tr class="subhead">
129
- <th colspan="2"></th>
130
- <th class="aligned-left">
131
- ${this.localize.term("engage_profiles")}
132
- </th>
133
- <th>${this.localize.term("engage_reporting_completions")}</th>
134
- ${this._hasValues
135
- ? html `<th>${this.localize.term("engage_property_value")}</th>`
136
- : nothing}
137
- <th class="aligned-left">
138
- ${this.localize.term("engage_profiles")}
139
- </th>
140
- <th>${this.localize.term("engage_reporting_completions")}</th>
141
- ${this._hasValues
142
- ? html `<th>${this.localize.term("engage_property_value")}</th>`
143
- : nothing}
144
- <th class="aligned-left">
145
- ${this.localize.term("engage_profiles")}
146
- </th>
147
- ${this._hasValues
148
- ? html `<th>${this.localize.term("engage_property_value")}</th>`
149
- : nothing}
150
- <th class="aligned-left">
151
- ${this.localize.term("engage_reporting_completions")}
152
- </th>
153
- ${this._hasValues
154
- ? html `<th>${this.localize.term("engage_property_value")}</th>`
155
- : nothing}
156
- ${this._hasValues
157
- ? html `<th>${this.localize.term("engage_change")}</th>`
158
- : nothing}
118
+ ${this.#headerCell("engage_goal")}
119
+ ${this.#headerCell("engage_type")}
120
+ ${this.#headerCell("engage_reporting_controlGroup", true, this._hasValues ? 3 : 2)}
121
+ ${this.#headerCell("engage_reporting_personalizedGroup", true, this._hasValues ? 3 : 2)}
122
+ ${this.#headerCell("engage_reporting_differenceVsControlGroup", true, this._hasValues ? 2 : 1)}
123
+ ${this.#headerCell("engage_reporting_differenceVsProfile", true, this._hasValues ? 3 : 1)}
159
124
  </tr>
125
+ ${when(this._data?.length, () => html ` <tr class="subhead">
126
+ <th colspan="2"></th>
127
+ ${this.#headerCell("engage_profiles", true)}
128
+ ${this.#headerCell("engage_reporting_completions")}
129
+ ${when(this._hasValues, () => html `${this.#headerCell("engage_property_value")}`)}
130
+ ${this.#headerCell("engage_profiles", true)}
131
+ ${this.#headerCell("engage_reporting_completions")}
132
+ ${when(this._hasValues, () => html `${this.#headerCell("engage_property_value")}`)}
133
+ ${this.#headerCell("engage_profiles", true)}
134
+ ${when(this._hasValues, () => html `${this.#headerCell("engage_property_value")}`)}
135
+ ${this.#headerCell("engage_reporting_completions")}
136
+ ${when(this._hasValues, () => html `${this.#headerCell("engage_property_value")}
137
+ ${this.#headerCell("engage_change")}`)}
138
+ </tr>`)}
160
139
  </thead>
161
140
  <tbody>
162
- ${this._data?.map((d) => this.#renderRow(d))}
141
+ ${when(this._data?.length, () => this._data?.map((d) => this.#renderRow(d)), () => html `<tr>
142
+ <td colspan="${this._hasValues ? 13 : 11}">
143
+ <ue-empty-state>No data available</ue-empty-state>
144
+ </td>
145
+ </tr>`)}
163
146
  </tbody>
164
147
  </table></uui-box
165
148
  >`;
166
149
  }
167
150
  static { this.styles = css `
168
151
  h2 {
152
+ margin: 0 0 var(--uui-size-4);
169
153
  color: var(--engage-color-default);
170
154
  }
171
155
 
@@ -51,25 +51,30 @@ let UeSegmentPotentialElement = class UeSegmentPotentialElement extends UmbLitEl
51
51
  <div id="flex">
52
52
  <ue-reporting-chart-card
53
53
  .headline=${this.localize.term("engage_reporting_pageviewCoverage")}
54
+ .tooltip=${this.localize.term("engage_reporting_pageviewCoverageTooltip")}
54
55
  prefabAlias="segmentpageviewcoverage"
55
56
  ></ue-reporting-chart-card>
56
57
  <ue-reporting-chart-card
57
58
  .headline=${this.localize.term("engage_reporting_sessionCoverage")}
59
+ .tooltip=${this.localize.term("engage_reporting_sessionCoverageTooltip")}
58
60
  prefabAlias="segmentsessioncoverage"
59
61
  ></ue-reporting-chart-card>
60
62
  <ue-reporting-chart-card
61
63
  .headline=${this.localize.term("engage_reporting_profileCoverage")}
64
+ .tooltip=${this.localize.term("engage_reporting_profileCoverageTooltip")}
62
65
  prefabAlias="segmentprofilecoverage"
63
66
  ></ue-reporting-chart-card>
64
- <uui-box
67
+ <ue-reporting-chart-card
65
68
  .headline=${this.localize.term("engage_reporting_sessionsNeeded")}
69
+ .tooltip=${this.localize.term("engage_reporting_sessionsNeededTooltip")}
66
70
  >
67
71
  <ue-donut-chart .data=${this._sessionsNeeded}></ue-donut-chart>
68
- </uui-box>
72
+ </ue-reporting-chart-card>
69
73
  </div>`;
70
74
  }
71
75
  static { this.styles = css `
72
76
  h2 {
77
+ margin: 0 0 var(--uui-size-4);
73
78
  color: var(--engage-color-default);
74
79
  }
75
80
 
@@ -37,11 +37,14 @@ let UeReportingSegmentSelectorElement = class UeReportingSegmentSelectorElement
37
37
  return;
38
38
  return html `<div>
39
39
  <h3>${this._selectedSegment.name}</h3>
40
- <p>${this._selectedSegment.description}</p>
41
- <strong
42
- >${this.localize.term("engage_personalization_appliedParameters")}</strong
43
- >
44
- ${this.#renderAppliedParameters()}
40
+ <div class="flex">
41
+ <div style="flex: 0 1 20%">
42
+ <strong>${this.localize.term("general_description")}</strong>
43
+ <p>${this._selectedSegment.description}</p>
44
+ </div>
45
+
46
+ ${this.#renderAppliedParameters()}
47
+ </div>
45
48
  </div>
46
49
  <span id="divider"></span>
47
50
  <div class="flex">
@@ -67,17 +70,22 @@ let UeReportingSegmentSelectorElement = class UeReportingSegmentSelectorElement
67
70
  </div>`;
68
71
  }
69
72
  #renderAppliedParameters() {
70
- return html `<ue-grid id="appliedParameters" columns="1">
71
- ${this._selectedSegment?.rules?.map((rule) => html `<ue-segment-applied-parameter
72
- .rule=${rule}
73
- .manifest=${this.#reportingContext?.getRuleByType(rule.type)}
74
- ></ue-segment-applied-parameter>`)}
75
- </ue-grid>`;
73
+ return html `<div>
74
+ <strong
75
+ >${this.localize.term("engage_personalization_appliedParameters")}</strong
76
+ >
77
+ <ue-grid id="appliedParameters" columns="1">
78
+ ${this._selectedSegment?.rules?.map((rule) => html `<ue-segment-applied-parameter
79
+ .rule=${rule}
80
+ .manifest=${this.#reportingContext?.getRuleByType(rule.type)}
81
+ ></ue-segment-applied-parameter>`)}
82
+ </ue-grid>
83
+ </div>`;
76
84
  }
77
85
  render() {
78
86
  return html ` <div id="header">
79
87
  <h2>${this.localize.term("engage_reporting_segment")}</h2>
80
- <h3>${this.localize.term("engage_analytics_last30days")}</h3>
88
+ <h3>${this.localize.term("engage_analytics_last-30-days")}</h3>
81
89
  </div>
82
90
  <uui-box>
83
91
  <div>
@@ -104,6 +112,7 @@ let UeReportingSegmentSelectorElement = class UeReportingSegmentSelectorElement
104
112
 
105
113
  h2,
106
114
  h3 {
115
+ margin-top: 0;
107
116
  color: var(--engage-color-default);
108
117
  }
109
118
 
@@ -179,6 +188,11 @@ let UeReportingSegmentSelectorElement = class UeReportingSegmentSelectorElement
179
188
  display: flex;
180
189
  justify-content: space-between;
181
190
 
191
+ h2,
192
+ h3 {
193
+ margin-bottom: var(--uui-size-4);
194
+ }
195
+
182
196
  h3 {
183
197
  color: var(--uui-color-border-emphasis);
184
198
  }
@@ -18,9 +18,11 @@ let UeReportingSegmentsElement = class UeReportingSegmentsElement extends UeCont
18
18
  this.consumeContext(ENGAGE_REPORTING_CONTEXT, (context) => {
19
19
  if (!context)
20
20
  return;
21
- this.observe(context.currentSegment$, (segmentId) => {
21
+ this.observe(context.currentSegment$, async (segmentId) => {
22
22
  this._segmentId = segmentId;
23
- this.#analyticsContext?.setDrilldown({ segmentId });
23
+ this.#analyticsContext?.updateDrilldown({
24
+ segmentId,
25
+ });
24
26
  });
25
27
  });
26
28
  this.consumeContext(ENGAGE_ANALYTICS_CONTEXT, (analyticsContext) => {
@@ -30,22 +32,26 @@ let UeReportingSegmentsElement = class UeReportingSegmentsElement extends UeCont
30
32
  });
31
33
  }
32
34
  disconnectedCallback() {
33
- super.disconnectedCallback();
34
35
  this.#analyticsContext?.setDrilldown(undefined);
36
+ super.disconnectedCallback();
35
37
  }
36
38
  renderSidebar() {
37
39
  return null;
38
40
  }
39
41
  renderContent() {
40
42
  return html ` <ue-reporting-segment-selector></ue-reporting-segment-selector>
41
- ${when(this._segmentId, () => html ` <ue-reporting-segment-potential></ue-reporting-segment-potential>
43
+ ${when(this._segmentId, () => html `
44
+ <ue-reporting-segment-potential></ue-reporting-segment-potential>
42
45
  <ue-reporting-segment-personalization></ue-reporting-segment-personalization>
43
- <ue-segment-personalization-goal-performance></ue-segment-personalization-goal-performance>`)}`;
46
+ <ue-segment-personalization-goal-performance></ue-segment-personalization-goal-performance>
47
+ `)}`;
44
48
  }
45
49
  static { this.styles = [
46
50
  ...UeContentScreenBaseElement.styles,
47
51
  css `
48
- #content > * + * {
52
+ ue-reporting-segment-potential,
53
+ ue-reporting-segment-personalization,
54
+ ue-segment-personalization-goal-performance {
49
55
  display: block;
50
56
  margin-top: var(--uui-size-layout-1);
51
57
  }