@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.
- package/dist/ab-testing/test/components/variant-picker/ab-testing-test-variant-picker.element.d.ts +2 -0
- package/dist/ab-testing/test/components/variant-picker/ab-testing-test-variant-picker.element.js +107 -84
- package/dist/ab-testing/test/modal/element/ab-testing-edit-variant-modal.element.d.ts +0 -1
- package/dist/ab-testing/test/modal/element/ab-testing-edit-variant-modal.element.js +2 -5
- package/dist/ab-testing/test/modal/token/ab-testing-edit-variant-modal.token.d.ts +0 -1
- package/dist/ab-testing/test/repository/detail/index.d.ts +1 -0
- package/dist/ab-testing/test/repository/detail/index.js +1 -0
- package/dist/ab-testing/test/workspace/ab-testing-test-workspace.context.d.ts +3 -2
- package/dist/ab-testing/test/workspace/ab-testing-test-workspace.context.js +34 -3
- package/dist/ab-testing/test/workspace/actions/schedule-test-action.js +4 -1
- package/dist/ab-testing/test/workspace/actions/start-test-action.js +1 -1
- package/dist/ab-testing/test/workspace/conditions/ab-testing-can-preview.condition.js +8 -1
- package/dist/ab-testing/test/workspace/entity-actions/preview-variant.action.js +7 -16
- package/dist/ab-testing/test/workspace/views/edit/ab-testing-test-editor.element.js +1 -1
- package/dist/analytics/analytics-context.d.ts +1 -0
- package/dist/analytics/analytics-context.js +4 -0
- package/dist/analytics/components/chart/analytics-chart.element.d.ts +1 -0
- package/dist/analytics/components/chart/analytics-chart.element.js +51 -24
- package/dist/analytics/components/chart/chart-dataset-generator.controller.js +1 -1
- package/dist/analytics/components/chart/chart-settings-generator.controller.d.ts +1 -1
- package/dist/analytics/components/chart/chart-settings-generator.controller.js +17 -5
- package/dist/analytics/components/chart/entities.d.ts +0 -1
- package/dist/analytics/components/chart/prefab-chart.element.js +0 -1
- package/dist/analytics/components/toggle/chart-toggle.element.d.ts +0 -1
- package/dist/analytics/components/toggle/chart-toggle.element.js +1 -8
- package/dist/core/components/chart/chart-base.element.js +3 -0
- package/dist/core/components/chart/chart.element.d.ts +1 -1
- package/dist/core/components/chart/chart.element.js +17 -16
- package/dist/core/components/chart/donut-chart.element.d.ts +1 -0
- package/dist/core/components/chart/donut-chart.element.js +25 -1
- package/dist/core/functions/date-utils.d.ts +7 -0
- package/dist/core/functions/date-utils.js +11 -0
- package/dist/core/lang/en.js +11 -2
- package/dist/core/variant-preview.controller.d.ts +1 -1
- package/dist/core/variant-preview.controller.js +7 -24
- package/dist/generated/client.gen.js +4 -1
- package/dist/generated/sdk.gen.d.ts +2 -1
- package/dist/generated/sdk.gen.js +816 -134
- package/dist/generated/types.gen.d.ts +26 -0
- package/dist/personalization/applied-personalization/editor-view/applied-personalization-editor-view.element.js +2 -2
- package/dist/personalization/context/personalization-editor-view-base.context.js +1 -1
- package/dist/personalization/personalized-variants/workspace/personalized-variant-workspace.context.js +1 -1
- package/dist/reporting/components/reporting-chart-card/reporting-chart-card.element.d.ts +8 -2
- package/dist/reporting/components/reporting-chart-card/reporting-chart-card.element.js +78 -16
- package/dist/reporting/components/segment-personalization/segment-personalization.element.js +7 -2
- package/dist/reporting/components/segment-personalization-goal-performance/segment-personalization-goal-performance.element.js +31 -47
- package/dist/reporting/components/segment-potential/segment-potential.element.js +7 -2
- package/dist/reporting/components/segment-selector/reporting-segment-selector.element.js +26 -12
- package/dist/reporting/screens/reporting-segments-screen.element.js +12 -6
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/umbraco-package.json +1 -1
- 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
|
|
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
|
|
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:
|
|
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.
|
|
29
|
+
this.#config.endDate = now.toISOString();
|
|
24
30
|
now.setDate(now.getDate() - 30);
|
|
25
|
-
this.
|
|
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.
|
|
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
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<ue-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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);
|
package/dist/reporting/components/segment-personalization/segment-personalization.element.js
CHANGED
|
@@ -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
|
-
<
|
|
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
|
-
</
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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
|
-
<
|
|
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
|
-
</
|
|
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
|
-
<
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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 `<
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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("
|
|
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?.
|
|
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 `
|
|
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
|
-
|
|
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
|
}
|