@umbraco-engage/backoffice 17.0.0-rc1 → 17.0.0
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/collection/elements/ab-test-variant-name-column-layout.element.d.ts +4 -2
- package/dist/ab-testing/test/components/ab-testing-test-card.element.js +3 -0
- package/dist/ab-testing/test/components/split-url-picker/ab-testing-test-split-url-picker.element.js +4 -2
- package/dist/ab-testing/test/components/test-advice/ab-testing-test-indication.element.js +2 -2
- package/dist/ab-testing/test/components/variant-picker/ab-testing-test-variant-picker.element.js +44 -5
- package/dist/ab-testing/test/conditions/constants.d.ts +1 -0
- package/dist/ab-testing/test/conditions/constants.js +1 -0
- package/dist/ab-testing/test/conditions/document-save-and-publish-visibility.condition.d.ts +7 -0
- package/dist/ab-testing/test/conditions/document-save-and-publish-visibility.condition.js +12 -0
- package/dist/ab-testing/test/conditions/index.d.ts +1 -0
- package/dist/ab-testing/test/conditions/index.js +1 -0
- package/dist/ab-testing/test/conditions/manifests.d.ts +7 -0
- package/dist/ab-testing/test/conditions/manifests.js +10 -0
- package/dist/ab-testing/test/index.d.ts +1 -0
- package/dist/ab-testing/test/index.js +1 -0
- package/dist/ab-testing/test/manifests.d.ts +6 -1
- package/dist/ab-testing/test/manifests.js +2 -0
- package/dist/ab-testing/test/repository/detail/ab-testing-test-detail-server.data-source.d.ts +1 -1
- package/dist/ab-testing/test/repository/detail/ab-testing-test-detail-server.data-source.js +2 -3
- package/dist/ab-testing/test/workspace/ab-testing-test-workspace.context.d.ts +1 -1
- package/dist/ab-testing/test/workspace/ab-testing-test-workspace.context.js +2 -6
- package/dist/ab-testing/test/workspace/actions/ab-test-action-base.d.ts +0 -1
- package/dist/ab-testing/test/workspace/actions/ab-test-action-base.js +0 -9
- package/dist/ab-testing/test/workspace/actions/index.d.ts +0 -1
- package/dist/ab-testing/test/workspace/actions/index.js +0 -1
- package/dist/ab-testing/test/workspace/actions/manifests.js +5 -13
- package/dist/ab-testing/test/workspace/actions/unschedule-test-action.js +0 -1
- package/dist/ab-testing/test/workspace/conditions/ab-testing-can-disable.condition.d.ts +8 -0
- package/dist/ab-testing/test/workspace/conditions/ab-testing-can-disable.condition.js +25 -0
- package/dist/ab-testing/test/workspace/conditions/ab-testing-can-preview.condition.d.ts +8 -0
- package/dist/ab-testing/test/workspace/conditions/ab-testing-can-preview.condition.js +31 -0
- package/dist/ab-testing/test/workspace/conditions/constants.d.ts +2 -0
- package/dist/ab-testing/test/workspace/conditions/constants.js +2 -0
- package/dist/ab-testing/test/workspace/conditions/manifests.js +13 -1
- package/dist/ab-testing/test/workspace/entity-actions/disable-variant.action.d.ts +8 -0
- package/dist/ab-testing/test/workspace/entity-actions/disable-variant.action.js +37 -0
- package/dist/ab-testing/test/workspace/entity-actions/manifests.d.ts +29 -0
- package/dist/ab-testing/test/workspace/entity-actions/manifests.js +34 -0
- package/dist/ab-testing/test/workspace/entity-actions/preview-variant.action.d.ts +8 -0
- package/dist/ab-testing/test/workspace/entity-actions/preview-variant.action.js +32 -0
- package/dist/ab-testing/test/workspace/manifests.d.ts +9 -2
- package/dist/ab-testing/test/workspace/manifests.js +5 -2
- package/dist/ab-testing/test/workspace/views/edit/ab-testing-test-editor.element.js +30 -6
- package/dist/ab-testing/test/workspace/views/scoring/ab-testing-test-scoring.element.js +49 -79
- package/dist/analytics/analytics-context.js +4 -0
- package/dist/analytics/components/heatmap/heatmap.element.d.ts +0 -2
- package/dist/analytics/components/heatmap/heatmap.element.js +24 -29
- package/dist/analytics/screens/heatmap-screen.element.js +23 -3
- package/dist/core/components/group-box/group-box.element.js +12 -5
- package/dist/core/components/scoring/entities.d.ts +4 -0
- package/dist/core/components/scoring/scoring-base.element.d.ts +3 -2
- package/dist/core/components/scoring/scoring-base.element.js +147 -25
- package/dist/core/components/tooltip/tooltip-element.js +2 -2
- package/dist/core/context/entities.d.ts +1 -0
- package/dist/core/context/workspace-context-base.d.ts +1 -1
- package/dist/core/context/workspace-context-base.js +12 -9
- package/dist/core/entities.d.ts +1 -0
- package/dist/core/lang/{en-us.js → en.js} +8 -1
- package/dist/core/lang/manifests.js +1 -1
- package/dist/core/path/edit-variant-workspace-path-pattern.class.js +8 -0
- package/dist/core/property/property-dataset-renderer.controller.d.ts +4 -0
- package/dist/core/property/property-dataset-renderer.controller.js +9 -0
- package/dist/generated/client/client.gen.d.ts +2 -0
- package/dist/generated/client/client.gen.js +228 -0
- package/dist/generated/client/index.d.ts +8 -0
- package/dist/generated/client/index.js +6 -0
- package/dist/generated/client/types.gen.d.ts +117 -0
- package/dist/generated/client/types.gen.js +2 -0
- package/dist/generated/client/utils.gen.d.ts +33 -0
- package/dist/generated/client/utils.gen.js +233 -0
- package/dist/generated/client.gen.d.ts +2 -2
- package/dist/generated/client.gen.js +2 -5
- package/dist/generated/core/auth.gen.d.ts +18 -0
- package/dist/generated/core/auth.gen.js +14 -0
- package/dist/generated/core/bodySerializer.gen.d.ts +25 -0
- package/dist/generated/core/bodySerializer.gen.js +57 -0
- package/dist/generated/core/params.gen.d.ts +43 -0
- package/dist/generated/core/params.gen.js +100 -0
- package/dist/generated/core/pathSerializer.gen.d.ts +33 -0
- package/dist/generated/core/pathSerializer.gen.js +114 -0
- package/dist/generated/core/queryKeySerializer.gen.d.ts +18 -0
- package/dist/generated/core/queryKeySerializer.gen.js +99 -0
- package/dist/generated/core/serverSentEvents.gen.d.ts +71 -0
- package/dist/generated/core/serverSentEvents.gen.js +135 -0
- package/dist/generated/core/types.gen.d.ts +78 -0
- package/dist/generated/core/types.gen.js +2 -0
- package/dist/generated/core/utils.gen.d.ts +19 -0
- package/dist/generated/core/utils.gen.js +87 -0
- package/dist/generated/sdk.gen.d.ts +135 -135
- package/dist/generated/sdk.gen.js +134 -804
- package/dist/generated/types.gen.d.ts +73 -8
- package/dist/index.js +6 -5
- package/dist/personalization/actions/entity-delete-base.action.d.ts +41 -0
- package/dist/personalization/actions/entity-delete-base.action.js +45 -0
- package/dist/personalization/actions/grouped-item-delete.action.d.ts +3 -3
- package/dist/personalization/actions/grouped-item-delete.action.js +9 -20
- package/dist/personalization/actions/grouped-item-edit.action.d.ts +3 -2
- package/dist/personalization/actions/grouped-item-edit.action.js +13 -20
- package/dist/personalization/actions/grouped-item-entity-edit-base.action.d.ts +13 -0
- package/dist/personalization/actions/grouped-item-entity-edit-base.action.js +45 -0
- package/dist/personalization/actions/index.d.ts +3 -3
- package/dist/personalization/actions/index.js +3 -3
- package/dist/personalization/actions/{applied-personalization-base.action.d.ts → personalization-base.action.d.ts} +2 -2
- package/dist/personalization/actions/{applied-personalization-base.action.js → personalization-base.action.js} +8 -6
- package/dist/personalization/applied-personalization/actions/delete.action.d.ts +2 -3
- package/dist/personalization/applied-personalization/actions/delete.action.js +8 -17
- package/dist/personalization/applied-personalization/actions/edit.action.d.ts +1 -1
- package/dist/personalization/applied-personalization/actions/edit.action.js +1 -1
- package/dist/personalization/applied-personalization/actions/preview.action.d.ts +1 -1
- package/dist/personalization/applied-personalization/actions/preview.action.js +1 -1
- package/dist/personalization/applied-personalization/index.d.ts +0 -1
- package/dist/personalization/applied-personalization/index.js +0 -1
- package/dist/personalization/campaign-scoring/campaign-group/collection/actions/campaign-group-delete.action.d.ts +9 -0
- package/dist/personalization/campaign-scoring/campaign-group/collection/actions/campaign-group-delete.action.js +16 -0
- package/dist/personalization/campaign-scoring/campaign-group/collection/manifests.js +9 -0
- package/dist/personalization/campaign-scoring/campaign-group/repository/detail/index.d.ts +1 -1
- package/dist/personalization/campaign-scoring/campaign-group/repository/detail/index.js +1 -1
- package/dist/personalization/campaign-scoring/campaign-group/repository/item/index.d.ts +1 -1
- package/dist/personalization/campaign-scoring/campaign-group/repository/item/index.js +1 -1
- package/dist/personalization/components/grouped-item/grouped-item-detail-editor-base.element.d.ts +3 -4
- package/dist/personalization/components/grouped-item/grouped-item-detail-editor-base.element.js +1 -6
- package/dist/personalization/components/grouped-item/grouped-item-list-editor-base.element.d.ts +8 -8
- package/dist/personalization/components/grouped-item/grouped-item-list-editor-base.element.js +33 -81
- package/dist/personalization/components/grouped-item/grouped-item-workspace-editor-base.element.d.ts +6 -11
- package/dist/personalization/components/grouped-item/grouped-item-workspace-editor-base.element.js +8 -13
- package/dist/personalization/components/grouped-scoring/collection/group-table-collection-view-base.element.js +15 -0
- package/dist/personalization/content-scoring/workspace/content-scoring-workspace-editor.element.d.ts +2 -2
- package/dist/personalization/content-scoring/workspace/content-scoring-workspace-editor.element.js +56 -130
- package/dist/personalization/content-scoring/workspace/content-scoring-workspace.context.d.ts +5 -5
- package/dist/personalization/content-scoring/workspace/content-scoring-workspace.context.js +25 -34
- package/dist/personalization/context/grouped-items-workspace-context.interface.d.ts +0 -2
- package/dist/personalization/context/grouped-items-workspace.context.d.ts +1 -4
- package/dist/personalization/context/grouped-items-workspace.context.js +7 -11
- package/dist/personalization/journeys/actions/delete.action.d.ts +8 -0
- package/dist/personalization/journeys/actions/delete.action.js +13 -0
- package/dist/personalization/journeys/actions/edit.action.d.ts +8 -0
- package/dist/personalization/journeys/actions/edit.action.js +12 -0
- package/dist/personalization/journeys/actions/manifests.d.ts +22 -0
- package/dist/personalization/journeys/actions/manifests.js +25 -0
- package/dist/personalization/journeys/constants.d.ts +1 -1
- package/dist/personalization/journeys/constants.js +1 -1
- package/dist/personalization/journeys/manifests.js +3 -1
- package/dist/personalization/journeys/workspace/customer-journey-workspace-editor.element.d.ts +0 -3
- package/dist/personalization/journeys/workspace/customer-journey-workspace-editor.element.js +1 -10
- package/dist/personalization/journeys/workspace/customer-journey-workspace.context.d.ts +1 -7
- package/dist/personalization/journeys/workspace/customer-journey-workspace.context.js +7 -6
- package/dist/personalization/journeys/workspace/views/edit/customer-journey-editor.element.js +4 -2
- package/dist/personalization/journeys/workspace/views/edit/customer-journey-steps-list-editor.element.d.ts +1 -0
- package/dist/personalization/journeys/workspace/views/edit/customer-journey-steps-list-editor.element.js +14 -4
- package/dist/personalization/personalized-variants/editor-view/personalized-variants-editor-view.element.js +2 -2
- package/dist/personalization/personalized-variants/workspace/personalized-variant-workspace.context.js +3 -7
- package/dist/personalization/personas/actions/delete.action.d.ts +8 -0
- package/dist/personalization/personas/actions/delete.action.js +13 -0
- package/dist/personalization/personas/actions/edit.action.d.ts +8 -0
- package/dist/personalization/personas/actions/edit.action.js +12 -0
- package/dist/personalization/personas/actions/manifests.d.ts +22 -0
- package/dist/personalization/personas/actions/manifests.js +25 -0
- package/dist/personalization/personas/constants.d.ts +2 -2
- package/dist/personalization/personas/constants.js +2 -2
- package/dist/personalization/personas/manifests.js +6 -4
- package/dist/personalization/personas/repository/detail/persona-group-detail-server.data-source.js +0 -2
- package/dist/personalization/personas/workspace/persona-group-workspace-editor.element.d.ts +0 -3
- package/dist/personalization/personas/workspace/persona-group-workspace-editor.element.js +1 -10
- package/dist/personalization/personas/workspace/persona-group-workspace.context.d.ts +1 -7
- package/dist/personalization/personas/workspace/persona-group-workspace.context.js +7 -6
- package/dist/personalization/personas/workspace/views/edit/persona-group-personas-list-editor.element.d.ts +1 -0
- package/dist/personalization/personas/workspace/views/edit/persona-group-personas-list-editor.element.js +14 -4
- package/dist/personalization/referral-scoring/manifests.js +1 -4
- package/dist/personalization/referral-scoring/referral-group/actions/delete.action.d.ts +9 -0
- package/dist/personalization/referral-scoring/referral-group/actions/delete.action.js +16 -0
- package/dist/personalization/referral-scoring/referral-group/manifests.js +10 -0
- package/dist/personalization/segments/actions/delete.action.d.ts +3 -4
- package/dist/personalization/segments/actions/delete.action.js +9 -21
- package/dist/personalization/segments/rules/base/segment-rule-base-grouped-extended-checkbox.element.d.ts +1 -1
- package/dist/profiles/insights/campaigns/campaigns-list.element.d.ts +1 -0
- package/dist/profiles/insights/campaigns/campaigns-list.element.js +9 -1
- package/dist/profiles/insights/customer-journeys/customer-journeys.element.js +3 -2
- package/dist/profiles/insights/engage-profile-insight.interface.js +7 -1
- package/dist/profiles/insights/goals/goals-table-collection-view.element.js +1 -1
- package/dist/profiles/insights/manifests.js +2 -0
- package/dist/profiles/insights/persona-groups/persona-groups.element.js +3 -2
- package/dist/reporting/components/reporting-chart-card/reporting-chart-card.element.d.ts +1 -0
- package/dist/reporting/components/reporting-chart-card/reporting-chart-card.element.js +5 -1
- package/dist/reporting/components/segment-selector/reporting-segment-selector.element.js +10 -20
- package/dist/start-page/components/license-viewer.element.js +4 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/umbraco-package.json +1 -1
- package/package.json +8 -5
- package/dist/ab-testing/test/workspace/actions/submit-test-action.d.ts +0 -8
- package/dist/ab-testing/test/workspace/actions/submit-test-action.js +0 -11
- package/dist/personalization/applied-personalization/actions/index.d.ts +0 -3
- package/dist/personalization/applied-personalization/actions/index.js +0 -3
- /package/dist/core/lang/{en-us.d.ts → en.d.ts} +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ENGAGE_AB_TESTING_TEST_CAN_PREVIEW_VARIANT_CONDITION } from "../conditions/constants.js";
|
|
2
|
+
export const manifests = [
|
|
3
|
+
{
|
|
4
|
+
type: "entityAction",
|
|
5
|
+
kind: "default",
|
|
6
|
+
alias: "Engage.EntityAction.AbTest.PreviewVariantAction",
|
|
7
|
+
name: "Engage AB Test Preview Variant Action",
|
|
8
|
+
api: () => import("./preview-variant.action.js"),
|
|
9
|
+
forEntityTypes: ["engage-abtest-variant"],
|
|
10
|
+
weight: 200,
|
|
11
|
+
meta: {
|
|
12
|
+
icon: "icon-preview",
|
|
13
|
+
label: "#general_preview",
|
|
14
|
+
},
|
|
15
|
+
conditions: [
|
|
16
|
+
{
|
|
17
|
+
alias: ENGAGE_AB_TESTING_TEST_CAN_PREVIEW_VARIANT_CONDITION,
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
type: "entityAction",
|
|
23
|
+
kind: "default",
|
|
24
|
+
alias: "Engage.EntityAction.AbTest.DisabledVariantAction",
|
|
25
|
+
name: "Engage AB Test Disable Variant Action",
|
|
26
|
+
api: () => import("./disable-variant.action.js"),
|
|
27
|
+
forEntityTypes: ["engage-abtest-variant"],
|
|
28
|
+
weight: 100,
|
|
29
|
+
meta: {
|
|
30
|
+
icon: "icon-block",
|
|
31
|
+
label: "#general_disable",
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { UmbControllerHost } from "@umbraco-cms/backoffice/controller-api";
|
|
2
|
+
import { UmbEntityActionArgs, UmbEntityActionBase } from "@umbraco-cms/backoffice/entity-action";
|
|
3
|
+
export declare class UePreviewVariantAbTestScoringAction extends UmbEntityActionBase<any> {
|
|
4
|
+
#private;
|
|
5
|
+
constructor(host: UmbControllerHost, args: UmbEntityActionArgs<any>);
|
|
6
|
+
execute(): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export { UePreviewVariantAbTestScoringAction as api };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { UmbEntityActionBase, } from "@umbraco-cms/backoffice/entity-action";
|
|
2
|
+
import { ENGAGE_AB_TESTING_TEST_WORKSPACE_CONTEXT } from "../ab-testing-test-workspace-context.token.js";
|
|
3
|
+
import { UeVariantPreviewController } from "../../../../core/index.js";
|
|
4
|
+
export class UePreviewVariantAbTestScoringAction extends UmbEntityActionBase {
|
|
5
|
+
#preview = new UeVariantPreviewController(this);
|
|
6
|
+
#test;
|
|
7
|
+
constructor(host, args) {
|
|
8
|
+
super(host, args);
|
|
9
|
+
this.consumeContext(ENGAGE_AB_TESTING_TEST_WORKSPACE_CONTEXT, (context) => {
|
|
10
|
+
if (!context)
|
|
11
|
+
return;
|
|
12
|
+
this.observe(context?.test, (test) => {
|
|
13
|
+
this.#test = test;
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async execute() {
|
|
18
|
+
if (!this.args.unique)
|
|
19
|
+
return;
|
|
20
|
+
const page = this.#test?.umbracoPageVariants?.[0];
|
|
21
|
+
if (!page)
|
|
22
|
+
return;
|
|
23
|
+
// unique is the key, but we need use the id for preview
|
|
24
|
+
const id = this.#test?.variants.find((x) => x.unique === this.args.unique)?.id;
|
|
25
|
+
if (!id)
|
|
26
|
+
return;
|
|
27
|
+
this.#preview?.preview(page.unique, null, page.culture, {
|
|
28
|
+
engagePreviewAbTestVariantId: id,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export { UePreviewVariantAbTestScoringAction as api };
|
|
@@ -26,10 +26,15 @@ export declare const manifests: (import("@umbraco-cms/backoffice/extension-api")
|
|
|
26
26
|
icon: string;
|
|
27
27
|
entityType?: undefined;
|
|
28
28
|
};
|
|
29
|
-
conditions: {
|
|
29
|
+
conditions: ({
|
|
30
30
|
alias: string;
|
|
31
31
|
match: string;
|
|
32
|
-
|
|
32
|
+
oneOf?: undefined;
|
|
33
|
+
} | {
|
|
34
|
+
alias: string;
|
|
35
|
+
oneOf: string[];
|
|
36
|
+
match?: undefined;
|
|
37
|
+
})[];
|
|
33
38
|
api?: undefined;
|
|
34
39
|
} | {
|
|
35
40
|
type: string;
|
|
@@ -47,8 +52,10 @@ export declare const manifests: (import("@umbraco-cms/backoffice/extension-api")
|
|
|
47
52
|
conditions: ({
|
|
48
53
|
alias: string;
|
|
49
54
|
match: string;
|
|
55
|
+
oneOf?: undefined;
|
|
50
56
|
} | {
|
|
51
57
|
alias: string;
|
|
58
|
+
oneOf: string[];
|
|
52
59
|
match?: undefined;
|
|
53
60
|
})[];
|
|
54
61
|
api?: undefined;
|
|
@@ -2,11 +2,13 @@ import { UMB_WORKSPACE_CONDITION_ALIAS } from "@umbraco-cms/backoffice/workspace
|
|
|
2
2
|
import { ENGAGE_AB_TESTING_TEST_ENTITY_TYPE, ENGAGE_AB_TESTING_TEST_WORKSPACE_ALIAS, } from "../constants.js";
|
|
3
3
|
import { manifests as actionManifests } from "./actions/manifests.js";
|
|
4
4
|
import { manifests as conditionManifests } from "./conditions/manifests.js";
|
|
5
|
+
import { manifests as entityActionManifests } from "./entity-actions/manifests.js";
|
|
5
6
|
import { ENGAGE_ENTITY_IS_NOT_NEW_CONDITION_ALIAS } from "src/core/conditions/index.js";
|
|
6
7
|
import { ENGAGE_AB_TESTING_TEST_ENTITY_ACTION_VISIBILITY_CONDITION } from "./conditions/constants.js";
|
|
7
8
|
export const manifests = [
|
|
8
9
|
...actionManifests,
|
|
9
10
|
...conditionManifests,
|
|
11
|
+
...entityActionManifests,
|
|
10
12
|
{
|
|
11
13
|
type: "workspace",
|
|
12
14
|
kind: "routable",
|
|
@@ -36,7 +38,7 @@ export const manifests = [
|
|
|
36
38
|
},
|
|
37
39
|
{
|
|
38
40
|
alias: ENGAGE_AB_TESTING_TEST_ENTITY_ACTION_VISIBILITY_CONDITION,
|
|
39
|
-
|
|
41
|
+
oneOf: ["Draft", "Scheduled"],
|
|
40
42
|
},
|
|
41
43
|
],
|
|
42
44
|
},
|
|
@@ -58,7 +60,8 @@ export const manifests = [
|
|
|
58
60
|
match: ENGAGE_AB_TESTING_TEST_WORKSPACE_ALIAS,
|
|
59
61
|
},
|
|
60
62
|
{
|
|
61
|
-
alias:
|
|
63
|
+
alias: ENGAGE_AB_TESTING_TEST_ENTITY_ACTION_VISIBILITY_CONDITION,
|
|
64
|
+
oneOf: ["Running", "Stopped", "Completed"],
|
|
62
65
|
},
|
|
63
66
|
],
|
|
64
67
|
},
|
|
@@ -22,17 +22,41 @@ let UeAbTestingTestEditorElement = class UeAbTestingTestEditorElement extends Um
|
|
|
22
22
|
this.observe(context?.alias, (sectionAlias) => {
|
|
23
23
|
if (!sectionAlias)
|
|
24
24
|
return;
|
|
25
|
-
this._setupRenderer = new UePropertyDataSetRendererController(this, ENGAGE_AB_TESTING_TEST_WORKSPACE_CONTEXT, AbTestSetupProperties, this.#dataKey).withItems("testType", () => {
|
|
25
|
+
this._setupRenderer = new UePropertyDataSetRendererController(this, ENGAGE_AB_TESTING_TEST_WORKSPACE_CONTEXT, AbTestSetupProperties, this.#dataKey).withItems("testType", (data) => {
|
|
26
26
|
let testTypes = makeArray("ContentType", "MultiPage", "SinglePage", "SplitUrl");
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
// in the Engage section, we remove the incompatible test types
|
|
28
|
+
// only if they are not selected for this test,
|
|
29
|
+
let remove;
|
|
30
|
+
if (sectionAlias !== UMB_CONTENT_SECTION_ALIAS &&
|
|
31
|
+
data?.testType !== "SinglePage") {
|
|
32
|
+
remove = "SinglePage";
|
|
33
|
+
}
|
|
34
|
+
else if (data?.testType !== "SplitUrl") {
|
|
35
|
+
remove = "SplitUrl";
|
|
36
|
+
}
|
|
37
|
+
return testTypes
|
|
38
|
+
.filter((x) => x !== remove)
|
|
39
|
+
.map((x) => ({
|
|
32
40
|
name: this.localize.term(`engage_abTesting_testType${x}`),
|
|
33
41
|
value: x,
|
|
34
42
|
}));
|
|
35
43
|
});
|
|
44
|
+
// .withConfiguration("testType", (data) => ({
|
|
45
|
+
// disabled:
|
|
46
|
+
// sectionAlias === UMB_CONTENT_SECTION_ALIAS
|
|
47
|
+
// ? data?.testType === "SplitUrl"
|
|
48
|
+
// : data?.testType === "SinglePage",
|
|
49
|
+
// }))
|
|
50
|
+
// .withConfiguration("umbracoPageVariants", (data) => ({
|
|
51
|
+
// disabled:
|
|
52
|
+
// sectionAlias === UMB_CONTENT_SECTION_ALIAS &&
|
|
53
|
+
// data?.testType === "SplitUrl",
|
|
54
|
+
// }))
|
|
55
|
+
// .withConfiguration("variants", (data) => ({
|
|
56
|
+
// disabled:
|
|
57
|
+
// sectionAlias !== UMB_CONTENT_SECTION_ALIAS &&
|
|
58
|
+
// data?.testType === "SinglePage",
|
|
59
|
+
// }));
|
|
36
60
|
});
|
|
37
61
|
});
|
|
38
62
|
this.consumeContext(ENGAGE_AB_TESTING_TEST_WORKSPACE_CONTEXT, (context) => {
|
|
@@ -7,36 +7,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { ENGAGE_AB_TESTING_TEST_WORKSPACE_CONTEXT } from "../../ab-testing-test-workspace-context.token.js";
|
|
8
8
|
import { html, customElement, state, css, when, } from "@umbraco-cms/backoffice/external/lit";
|
|
9
9
|
import { UmbLitElement } from "@umbraco-cms/backoffice/lit-element";
|
|
10
|
-
import {
|
|
11
|
-
import { ENGAGE_READONLY_CODE_MODAL_ALIAS, UeTimeFormatOptions,
|
|
10
|
+
import { umbOpenModal } from "@umbraco-cms/backoffice/modal";
|
|
11
|
+
import { ENGAGE_READONLY_CODE_MODAL_ALIAS, UeTimeFormatOptions, } from "../../../../../core/index.js";
|
|
12
12
|
import "../../../collection/elements/ab-test-variant-warning-column-layout.element.js";
|
|
13
13
|
import "../../../collection/elements/ab-test-variant-name-column-layout.element.js";
|
|
14
14
|
import "../../../collection/elements/ab-test-variant-status-column-layout.element.js";
|
|
15
15
|
import "../../../collection/elements/ab-test-variant-percentage-column-layout.element.js";
|
|
16
16
|
const elementName = "ue-ab-testing-test-scoring";
|
|
17
17
|
let UeAbTestingTestWorkspaceViewEditElement = class UeAbTestingTestWorkspaceViewEditElement extends UmbLitElement {
|
|
18
|
-
#workspaceContext;
|
|
19
|
-
#preview = new UeVariantPreviewController(this);
|
|
20
|
-
#previewableVariantStatuses = [
|
|
21
|
-
"Running",
|
|
22
|
-
"Warning",
|
|
23
|
-
"Reliable",
|
|
24
|
-
"Scheduled",
|
|
25
|
-
"Disabled",
|
|
26
|
-
];
|
|
27
|
-
#disablableVariantStatuses = [
|
|
28
|
-
"Running",
|
|
29
|
-
"Warning",
|
|
30
|
-
"Reliable",
|
|
31
|
-
"Scheduled",
|
|
32
|
-
];
|
|
33
18
|
constructor() {
|
|
34
19
|
super();
|
|
35
20
|
this._loading = true;
|
|
36
21
|
this.consumeContext(ENGAGE_AB_TESTING_TEST_WORKSPACE_CONTEXT, (context) => {
|
|
37
22
|
if (!context)
|
|
38
23
|
return;
|
|
39
|
-
this.#workspaceContext = context;
|
|
40
24
|
this.observe(context.data, (data) => {
|
|
41
25
|
this._test = data;
|
|
42
26
|
this._loading = false;
|
|
@@ -49,33 +33,6 @@ let UeAbTestingTestWorkspaceViewEditElement = class UeAbTestingTestWorkspaceView
|
|
|
49
33
|
});
|
|
50
34
|
});
|
|
51
35
|
}
|
|
52
|
-
#canPreviewVariant(variant) {
|
|
53
|
-
return (this._test?.test?.umbracoPageVariants?.[0] &&
|
|
54
|
-
this.#previewableVariantStatuses.includes(variant.status));
|
|
55
|
-
}
|
|
56
|
-
#canDisableVariant(variant) {
|
|
57
|
-
return this.#disablableVariantStatuses.includes(variant.status);
|
|
58
|
-
}
|
|
59
|
-
async #disableVariant(variant) {
|
|
60
|
-
const disable = async () => {
|
|
61
|
-
await this.#workspaceContext?.disableVariant(variant.id);
|
|
62
|
-
};
|
|
63
|
-
await umbConfirmModal(this, {
|
|
64
|
-
content: this.localize.term("engage_abTesting_confirmDisableVariantDescription"),
|
|
65
|
-
headline: this.localize.term("engage_abTesting_confirmDisableVariant", variant.name, this._test?.test?.name),
|
|
66
|
-
})
|
|
67
|
-
.then(() => disable())
|
|
68
|
-
.catch(() => { });
|
|
69
|
-
}
|
|
70
|
-
// TODO => preview variant
|
|
71
|
-
#previewVariant(e, variant) {
|
|
72
|
-
const page = this._test?.test?.umbracoPageVariants?.[0];
|
|
73
|
-
if (!page)
|
|
74
|
-
return;
|
|
75
|
-
this.#preview?.preview(page.unique, null, page.culture, {
|
|
76
|
-
engagePreviewAbTestVariantId: variant.id,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
36
|
async #showCssJs(variant) {
|
|
80
37
|
umbOpenModal(this, ENGAGE_READONLY_CODE_MODAL_ALIAS, {
|
|
81
38
|
data: {
|
|
@@ -88,10 +45,18 @@ let UeAbTestingTestWorkspaceViewEditElement = class UeAbTestingTestWorkspaceView
|
|
|
88
45
|
#renderGoalsTable(variant) {
|
|
89
46
|
return html ` <uui-table class="nested">
|
|
90
47
|
<uui-table-head>
|
|
91
|
-
<uui-table-head-cell
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
<uui-table-head-cell>
|
|
48
|
+
<uui-table-head-cell
|
|
49
|
+
>${this.localize.term("engage_goal")}
|
|
50
|
+
</uui-table-head-cell>
|
|
51
|
+
<uui-table-head-cell>
|
|
52
|
+
${this.localize.term("engage_completions")}
|
|
53
|
+
</uui-table-head-cell>
|
|
54
|
+
<uui-table-head-cell>
|
|
55
|
+
${this.localize.term("engage_ratio")}
|
|
56
|
+
</uui-table-head-cell>
|
|
57
|
+
<uui-table-head-cell>
|
|
58
|
+
${this.localize.term("engage_status")}
|
|
59
|
+
</uui-table-head-cell>
|
|
95
60
|
</uui-table-head>
|
|
96
61
|
${variant.mainGoalComparisons?.map((comparison) => html `<uui-table-row .class="${comparison.isHurting ? "warning" : ""}"
|
|
97
62
|
><uui-table-cell
|
|
@@ -114,27 +79,40 @@ let UeAbTestingTestWorkspaceViewEditElement = class UeAbTestingTestWorkspaceView
|
|
|
114
79
|
></uui-table-row>`)}
|
|
115
80
|
</uui-table>`;
|
|
116
81
|
}
|
|
117
|
-
// TODO => localize
|
|
118
82
|
#renderTable() {
|
|
119
83
|
return html `
|
|
120
84
|
${this._test?.variants?.map((variant, idx) => html `<uui-table>
|
|
121
|
-
<uui-table-column style="width:250px"></uui-table-column>
|
|
122
|
-
<uui-table-column style="width:80px"></uui-table-column>
|
|
123
|
-
<uui-table-column style="width:80px"></uui-table-column>
|
|
85
|
+
<uui-table-column style="min-width:250px"></uui-table-column>
|
|
86
|
+
<uui-table-column style="min-width:80px"></uui-table-column>
|
|
87
|
+
<uui-table-column style="min-width:80px"></uui-table-column>
|
|
124
88
|
<uui-table-column></uui-table-column>
|
|
125
89
|
<uui-table-column></uui-table-column>
|
|
126
90
|
<uui-table-column></uui-table-column>
|
|
127
91
|
<uui-table-column></uui-table-column>
|
|
128
|
-
<uui-table-column style="width:100px"></uui-table-column>
|
|
129
|
-
<uui-table-column style="width:100px"></uui-table-column>
|
|
92
|
+
<uui-table-column style="min-width:100px"></uui-table-column>
|
|
93
|
+
<uui-table-column style="min-width:100px"></uui-table-column>
|
|
130
94
|
<uui-table-head>
|
|
131
|
-
<uui-table-head-cell
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
<uui-table-head-cell
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
<uui-table-head-cell
|
|
95
|
+
<uui-table-head-cell
|
|
96
|
+
>${this.localize.term("engage_variant")}</uui-table-head-cell
|
|
97
|
+
>
|
|
98
|
+
<uui-table-head-cell
|
|
99
|
+
>${this.localize.term("engage_visitors")}</uui-table-head-cell
|
|
100
|
+
>
|
|
101
|
+
<uui-table-head-cell
|
|
102
|
+
>${this.localize.term("engage_pageviews")}</uui-table-head-cell
|
|
103
|
+
>
|
|
104
|
+
<uui-table-head-cell
|
|
105
|
+
>${this.localize.term("engage_analytics_goalCompletionsAll")}</uui-table-head-cell
|
|
106
|
+
>
|
|
107
|
+
<uui-table-head-cell
|
|
108
|
+
>${this.localize.term("engage_conversionRate")}</uui-table-head-cell
|
|
109
|
+
>
|
|
110
|
+
<uui-table-head-cell
|
|
111
|
+
>${this.localize.term("engage_macroConversion")}</uui-table-head-cell
|
|
112
|
+
>
|
|
113
|
+
<uui-table-head-cell
|
|
114
|
+
>${this.localize.term("engage_status")}</uui-table-head-cell
|
|
115
|
+
>
|
|
138
116
|
<uui-table-head-cell>CSS / JS</uui-table-head-cell>
|
|
139
117
|
<uui-table-head-cell></uui-table-head-cell>
|
|
140
118
|
</uui-table-head>
|
|
@@ -191,22 +169,13 @@ let UeAbTestingTestWorkspaceViewEditElement = class UeAbTestingTestWorkspaceView
|
|
|
191
169
|
></uui-button>`)}
|
|
192
170
|
</uui-table-cell>
|
|
193
171
|
<uui-table-cell>
|
|
194
|
-
<
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
></uui-button>`)}
|
|
202
|
-
${when(idx > 0 && this.#canDisableVariant(variant), () => html ` <uui-button
|
|
203
|
-
compact
|
|
204
|
-
label="Disable"
|
|
205
|
-
@click=${() => this.#disableVariant(variant)}
|
|
206
|
-
look="secondary"
|
|
207
|
-
><uui-icon name="icon-block"></uui-icon
|
|
208
|
-
></uui-button>`)}</uui-action-bar
|
|
209
|
-
>
|
|
172
|
+
<ue-entity-actions-bundle
|
|
173
|
+
.entityType=${"engage-abtest-variant"}
|
|
174
|
+
.unique=${variant.unique}
|
|
175
|
+
.label=${this.localize.term("actions_viewActionsFor", [
|
|
176
|
+
variant.name,
|
|
177
|
+
])}
|
|
178
|
+
></ue-entity-actions-bundle>
|
|
210
179
|
</uui-table-cell>
|
|
211
180
|
</uui-table-row>
|
|
212
181
|
</uui-table>
|
|
@@ -218,7 +187,8 @@ let UeAbTestingTestWorkspaceViewEditElement = class UeAbTestingTestWorkspaceView
|
|
|
218
187
|
<uui-box
|
|
219
188
|
.headline=${this.localize.term("engage_abTesting_scoringOverview")}
|
|
220
189
|
>
|
|
221
|
-
${when(this.
|
|
190
|
+
${when(this._test?.test.status != "Draft" &&
|
|
191
|
+
this._generationStatus?.lastGenerated, () => html ` <small slot="header-actions"
|
|
222
192
|
>${this.localize.term("engage_lastUpdated", this.localize.date(this._generationStatus.lastGenerated, UeTimeFormatOptions))}</small
|
|
223
193
|
>`)}
|
|
224
194
|
${when(this._loading, () => html `<uui-loader></uui-loader>`, () => this.#renderTable())}
|
|
@@ -126,6 +126,8 @@ export class UeAnalyticsContext extends UmbContextBase {
|
|
|
126
126
|
return dateRange;
|
|
127
127
|
}
|
|
128
128
|
async #buildPrimaryQueryConfig(config) {
|
|
129
|
+
if (config.startDate && config.endDate)
|
|
130
|
+
return config;
|
|
129
131
|
const dateRange = await this.#awaitDateRange();
|
|
130
132
|
return {
|
|
131
133
|
...config,
|
|
@@ -139,6 +141,8 @@ export class UeAnalyticsContext extends UmbContextBase {
|
|
|
139
141
|
const dateRange = await this.#awaitDateRange();
|
|
140
142
|
if (!dateRange.compare)
|
|
141
143
|
return;
|
|
144
|
+
if (config.startDate && config.endDate)
|
|
145
|
+
return config;
|
|
142
146
|
return {
|
|
143
147
|
...config,
|
|
144
148
|
...{
|
|
@@ -10,11 +10,9 @@ export declare class UeHeatmapElement extends UmbLitElement {
|
|
|
10
10
|
private _averageFold;
|
|
11
11
|
private _pageHeight;
|
|
12
12
|
private _documentUrl;
|
|
13
|
-
private _defaultCulture;
|
|
14
13
|
private _iframeBox?;
|
|
15
14
|
private _iframe?;
|
|
16
15
|
private _indicatorBox?;
|
|
17
|
-
constructor();
|
|
18
16
|
protected firstUpdated(): Promise<void>;
|
|
19
17
|
render(): import("lit-html").TemplateResult<1>;
|
|
20
18
|
static styles: import("lit").CSSResult;
|
|
@@ -8,8 +8,15 @@ import { UmbDocumentUrlRepository } from "@umbraco-cms/backoffice/document";
|
|
|
8
8
|
import { css, customElement, html, property, query, state, when, } from "@umbraco-cms/backoffice/external/lit";
|
|
9
9
|
import { UMB_APP_LANGUAGE_CONTEXT } from "@umbraco-cms/backoffice/language";
|
|
10
10
|
import { UmbLitElement } from "@umbraco-cms/backoffice/lit-element";
|
|
11
|
+
import { firstValueFrom } from "rxjs";
|
|
11
12
|
const elementName = "ue-heatmap";
|
|
12
13
|
let UeHeatmapElement = class UeHeatmapElement extends UmbLitElement {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.#documentUrlRepository = new UmbDocumentUrlRepository(this);
|
|
17
|
+
this._averageFold = 1080;
|
|
18
|
+
this._pageHeight = 0;
|
|
19
|
+
}
|
|
13
20
|
#documentUrlRepository;
|
|
14
21
|
#data;
|
|
15
22
|
#querystring;
|
|
@@ -54,17 +61,6 @@ let UeHeatmapElement = class UeHeatmapElement extends UmbLitElement {
|
|
|
54
61
|
this.#generateHeatmap();
|
|
55
62
|
}
|
|
56
63
|
}
|
|
57
|
-
constructor() {
|
|
58
|
-
super();
|
|
59
|
-
this.#documentUrlRepository = new UmbDocumentUrlRepository(this);
|
|
60
|
-
this._averageFold = 1080;
|
|
61
|
-
this._pageHeight = 0;
|
|
62
|
-
this.consumeContext(UMB_APP_LANGUAGE_CONTEXT, (instance) => {
|
|
63
|
-
this.observe(instance?.appDefaultLanguage, (value) => {
|
|
64
|
-
this._defaultCulture = value?.unique;
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
64
|
async firstUpdated() {
|
|
69
65
|
await this.#requestUrls();
|
|
70
66
|
this.#generateHeatmap();
|
|
@@ -100,7 +96,15 @@ let UeHeatmapElement = class UeHeatmapElement extends UmbLitElement {
|
|
|
100
96
|
const { data } = await this.#documentUrlRepository.requestItems([
|
|
101
97
|
this.#data.unique,
|
|
102
98
|
]);
|
|
103
|
-
|
|
99
|
+
const culture = this.#data?.culture ?? (await this.#getDefaultCulture());
|
|
100
|
+
this._documentUrl = data?.[0].urls.find((x) => x.culture === culture)?.url;
|
|
101
|
+
}
|
|
102
|
+
async #getDefaultCulture() {
|
|
103
|
+
const context = await this.getContext(UMB_APP_LANGUAGE_CONTEXT);
|
|
104
|
+
if (!context)
|
|
105
|
+
return undefined;
|
|
106
|
+
const appDefaultLanguage = await firstValueFrom(context.appDefaultLanguage);
|
|
107
|
+
return appDefaultLanguage?.unique ?? undefined;
|
|
104
108
|
}
|
|
105
109
|
#generateHeatmap() {
|
|
106
110
|
if (!this._documentUrl || !this._iframe)
|
|
@@ -113,7 +117,7 @@ let UeHeatmapElement = class UeHeatmapElement extends UmbLitElement {
|
|
|
113
117
|
this._iframe.src = this._documentUrl + this.#querystring;
|
|
114
118
|
}
|
|
115
119
|
#renderHeatmap() {
|
|
116
|
-
return when(!this.#data?.visitorPercentagesPerPixel?.length, () => html `<
|
|
120
|
+
return when(!this.#data?.visitorPercentagesPerPixel?.length, () => html `<uui-box>
|
|
117
121
|
<p>${this.localize.term("engage_analytics_heatmapNoData")}</p>
|
|
118
122
|
<uui-button
|
|
119
123
|
look="primary"
|
|
@@ -121,7 +125,8 @@ let UeHeatmapElement = class UeHeatmapElement extends UmbLitElement {
|
|
|
121
125
|
target="_blank"
|
|
122
126
|
label=${this.localize.term("engage_learnMore")}
|
|
123
127
|
></uui-button>
|
|
124
|
-
</
|
|
128
|
+
</uui-box>`, () => html `<div id="main">
|
|
129
|
+
<div id="iframe-box">
|
|
125
130
|
<div class="scrollmap"></div>
|
|
126
131
|
<div class="scrollmap blend"></div>
|
|
127
132
|
<div id="lines">
|
|
@@ -153,18 +158,19 @@ let UeHeatmapElement = class UeHeatmapElement extends UmbLitElement {
|
|
|
153
158
|
<span>${this.localize.term("engage_hot")}</span>
|
|
154
159
|
<div id="legend-gradient"></div>
|
|
155
160
|
<span>${this.localize.term("engage_cold")}</span>
|
|
156
|
-
</div
|
|
161
|
+
</div>
|
|
162
|
+
</div>`);
|
|
157
163
|
}
|
|
158
164
|
#renderNoUrl() {
|
|
159
|
-
return html `<
|
|
165
|
+
return html `<uui-box>
|
|
160
166
|
<p>${this.localize.term("engage_analytics_heatmapNoUrl")}</p>
|
|
161
|
-
</
|
|
167
|
+
</uui-box>`;
|
|
162
168
|
}
|
|
163
169
|
render() {
|
|
164
170
|
return when(this._documentUrl, () => this.#renderHeatmap(), () => this.#renderNoUrl());
|
|
165
171
|
}
|
|
166
172
|
static { this.styles = css `
|
|
167
|
-
|
|
173
|
+
#main {
|
|
168
174
|
border: 1px solid var(--uui-color-border);
|
|
169
175
|
border-radius: var(--uui-border-radius);
|
|
170
176
|
padding: var(--uui-size-layout-1);
|
|
@@ -219,14 +225,6 @@ let UeHeatmapElement = class UeHeatmapElement extends UmbLitElement {
|
|
|
219
225
|
mix-blend-mode: darken;
|
|
220
226
|
}
|
|
221
227
|
|
|
222
|
-
#no-data {
|
|
223
|
-
display: flex;
|
|
224
|
-
flex-direction: column;
|
|
225
|
-
align-items: center;
|
|
226
|
-
justify-content: center;
|
|
227
|
-
text-align: center;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
228
|
#indicator {
|
|
231
229
|
position: absolute;
|
|
232
230
|
left: 0;
|
|
@@ -359,9 +357,6 @@ __decorate([
|
|
|
359
357
|
__decorate([
|
|
360
358
|
state()
|
|
361
359
|
], UeHeatmapElement.prototype, "_documentUrl", void 0);
|
|
362
|
-
__decorate([
|
|
363
|
-
state()
|
|
364
|
-
], UeHeatmapElement.prototype, "_defaultCulture", void 0);
|
|
365
360
|
__decorate([
|
|
366
361
|
query("#iframe-box")
|
|
367
362
|
], UeHeatmapElement.prototype, "_iframeBox", void 0);
|
|
@@ -11,6 +11,8 @@ import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from "@umbraco-cms/backoffice/document
|
|
|
11
11
|
import { tryExecute } from "@umbraco-cms/backoffice/resources";
|
|
12
12
|
import { makeArray, } from "../../core/index.js";
|
|
13
13
|
import { HeatmapsService, } from "../../generated/index.js";
|
|
14
|
+
import { UMB_APP_LANGUAGE_CONTEXT } from "@umbraco-cms/backoffice/language";
|
|
15
|
+
import { firstValueFrom } from "@umbraco-cms/backoffice/external/rxjs";
|
|
14
16
|
const elementName = "ue-analytics-heatmap";
|
|
15
17
|
let UeAnalyticsHeatmapElement = class UeAnalyticsHeatmapElement extends UmbLitElement {
|
|
16
18
|
constructor() {
|
|
@@ -22,8 +24,7 @@ let UeAnalyticsHeatmapElement = class UeAnalyticsHeatmapElement extends UmbLitEl
|
|
|
22
24
|
if (!context)
|
|
23
25
|
return;
|
|
24
26
|
this._documentUnique = context.getUnique()?.toString();
|
|
25
|
-
this._documentCulture =
|
|
26
|
-
context.splitView.getActiveVariants()[0]?.culture ?? undefined;
|
|
27
|
+
this._documentCulture = context.splitView.getActiveVariants()[0]?.culture;
|
|
27
28
|
await this.#getHeatmapPageVariants();
|
|
28
29
|
});
|
|
29
30
|
this.consumeContext(ENGAGE_ANALYTICS_CONTEXT, (context) => {
|
|
@@ -35,9 +36,22 @@ let UeAnalyticsHeatmapElement = class UeAnalyticsHeatmapElement extends UmbLitEl
|
|
|
35
36
|
});
|
|
36
37
|
});
|
|
37
38
|
}
|
|
39
|
+
async #getDefaultCulture() {
|
|
40
|
+
const context = await this.getContext(UMB_APP_LANGUAGE_CONTEXT);
|
|
41
|
+
if (!context)
|
|
42
|
+
return undefined;
|
|
43
|
+
const appDefaultLanguage = await firstValueFrom(context.appDefaultLanguage);
|
|
44
|
+
return appDefaultLanguage?.unique ?? undefined;
|
|
45
|
+
}
|
|
38
46
|
async #getHeatmapPageVariants() {
|
|
47
|
+
this._documentCulture ??= await this.#getDefaultCulture();
|
|
48
|
+
if (!this._documentUnique)
|
|
49
|
+
return;
|
|
39
50
|
const { data } = await tryExecute(this, HeatmapsService.getHeatmapsVariants({
|
|
40
|
-
query: {
|
|
51
|
+
query: {
|
|
52
|
+
unique: this._documentUnique,
|
|
53
|
+
culture: this._documentCulture,
|
|
54
|
+
},
|
|
41
55
|
}));
|
|
42
56
|
this._variants =
|
|
43
57
|
data
|
|
@@ -52,6 +66,7 @@ let UeAnalyticsHeatmapElement = class UeAnalyticsHeatmapElement extends UmbLitEl
|
|
|
52
66
|
}
|
|
53
67
|
}
|
|
54
68
|
async #getHeatmap() {
|
|
69
|
+
this._documentCulture ??= await this.#getDefaultCulture();
|
|
55
70
|
if (!this._documentUnique)
|
|
56
71
|
return;
|
|
57
72
|
this._loading = true;
|
|
@@ -170,6 +185,11 @@ let UeAnalyticsHeatmapElement = class UeAnalyticsHeatmapElement extends UmbLitEl
|
|
|
170
185
|
.header-control {
|
|
171
186
|
display: flex;
|
|
172
187
|
flex-direction: column;
|
|
188
|
+
|
|
189
|
+
uui-select {
|
|
190
|
+
height: 100%;
|
|
191
|
+
--uui-select-height: 100%;
|
|
192
|
+
}
|
|
173
193
|
}
|
|
174
194
|
`; }
|
|
175
195
|
};
|
|
@@ -28,10 +28,11 @@ let UeGroupBoxElement = class UeGroupBoxElement extends UmbLitElement {
|
|
|
28
28
|
${when(this._iconUrl, () => html `<img .src=${this._iconUrl} alt="" />`)}
|
|
29
29
|
</div>
|
|
30
30
|
<div id="content">
|
|
31
|
-
<strong>${this.name}</strong
|
|
31
|
+
<strong>${this.name}</strong>${when(this.description, (desc) => html `<small>${desc}</small>`)}
|
|
32
|
+
<slot name="secondary"></slot>
|
|
32
33
|
</div>
|
|
33
34
|
</div>
|
|
34
|
-
<slot id="content-slot"></slot>
|
|
35
|
+
<slot id="content-slot" name="primary"></slot>
|
|
35
36
|
<slot name="actions"></slot> `;
|
|
36
37
|
}
|
|
37
38
|
static { this.styles = css `
|
|
@@ -40,10 +41,15 @@ let UeGroupBoxElement = class UeGroupBoxElement extends UmbLitElement {
|
|
|
40
41
|
gap: var(--uui-size-5);
|
|
41
42
|
}
|
|
42
43
|
|
|
44
|
+
slot {
|
|
45
|
+
display: contents;
|
|
46
|
+
}
|
|
47
|
+
|
|
43
48
|
#step {
|
|
44
49
|
display: flex;
|
|
45
50
|
gap: var(--uui-size-5);
|
|
46
|
-
width:
|
|
51
|
+
max-width: 75%;
|
|
52
|
+
flex: 1;
|
|
47
53
|
}
|
|
48
54
|
|
|
49
55
|
#bar {
|
|
@@ -69,18 +75,19 @@ let UeGroupBoxElement = class UeGroupBoxElement extends UmbLitElement {
|
|
|
69
75
|
display: flex;
|
|
70
76
|
flex-direction: column;
|
|
71
77
|
min-width: 150px;
|
|
78
|
+
flex: 1;
|
|
72
79
|
|
|
73
80
|
small {
|
|
74
81
|
line-height: 1.4;
|
|
75
82
|
}
|
|
76
83
|
}
|
|
77
84
|
|
|
78
|
-
|
|
85
|
+
::slotted([slot="primary"]) {
|
|
79
86
|
margin-left: auto;
|
|
80
87
|
display: flex;
|
|
81
88
|
}
|
|
82
89
|
|
|
83
|
-
slot
|
|
90
|
+
::slotted([slot="actions"]) {
|
|
84
91
|
align-self: center;
|
|
85
92
|
display: block;
|
|
86
93
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { MinimumDeviationTypeModel } from "src/generated/types.gen";
|
|
1
2
|
export interface UeScoreableGroupModel {
|
|
2
3
|
title?: string | null;
|
|
3
4
|
upperScoreLimit?: number | null;
|
|
4
5
|
items: Array<UeScoreableItemModel>;
|
|
6
|
+
minimumDeviation?: number | null;
|
|
7
|
+
minimumDeviationType?: MinimumDeviationTypeModel;
|
|
8
|
+
minimumParticipationScoreThreshold?: number | null;
|
|
5
9
|
}
|
|
6
10
|
export interface UeScoringElementConfig {
|
|
7
11
|
hideDivider?: boolean;
|