The tpm-promotion-header-component service component provides access to the TPM promotion header in the LWC layer. This component is part of the TPM managed package.
This component is a wrapper for accessing the entire promotion header. You can customize a specific section of the header (LWC slot)—without changing the default behavior of the other sections—through a slot-specific promotion header LWC. Customizable promotion header slots are:
icon: A 32x32 pixel image.
breadcrumbs: A component to display the page breadcrumbs.
title: The promotion title
subtitle: The promotion subtitle
navigation: A group of button icons.
left-buttons: The action buttons and components that are anchored to the left of the header toolbar.
right-buttons: The action buttons and components that are anchored to the right of the header toolbar.
fullheight-buttons: The buttons that span the complete height of the header.
For information on slot-specific promotion header LWCs, see TPM Promotion Header Slot LWCs .
Example
Here’s an example of a custom promotion header component with the default behavior.
1 <!-- MyHeader.html -->
2 <template>
3 <cgcloud-tpm-promotion-header-component
4 promotion-id={recordId}>
5 </cgcloud-tpm-promotion-header-component>
6 </template>
7
8
9
10 <!-- MyHeader.js -->
11 import { LightningElement, api } from 'lwc';
12
13 export default class SamplePromotionHeaderCustom extends LightningElement {
14 @api recordId;
15 }
16
17 <!-- MyHeader.js-meta.xml -->
18 <?xml version="1.0" encoding="UTF-8"?>
19 <LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
20 <apiVersion>59.0</apiVersion>
21 <isExposed>true</isExposed>
22 <masterLabel>SAMPLE: Custom Promotion Header Component</masterLabel>
23 <targets>
24 <target>lightning__RecordPage</target>
25 </targets>
26 <targetConfigs>
27 <targetConfig targets="lightning__RecordPage">
28 <objects>
29 <object>cgcloud__Promotion__c</object>
30 </objects>
31 </targetConfig>
32 </targetConfigs>
33 <!-- This property is required if LWS is Disabled -->
34 <runtimeNamespace>cgcloud</runtimeNamespace>
35 </LightningComponentBundle>
Here’s an example of a custom promotion header component with TPM default behavior:
1 <!-- MyHeader.html -->
2 <template>
3 <cgcloud-tpm-promotion-header-component promotion-id={recordId}>
4 <!-- Icon Slot -->
5 <cgcloud-tpm-promotion-header-icon slot="icon"></cgcloud-tpm-promotion-header-icon>
6
7 <!-- Breadcrumbs -->
8 <div slot="breadcrumbs" style="display: flex">
9 <cgcloud-tpm-promotion-header-breadcrumbs
10 promotion-id={recordId}
11 ></cgcloud-tpm-promotion-header-breadcrumbs>
12 </div>
13
14 <!-- Title -->
15 <div slot="title" style="display: flex">
16 <cgcloud-tpm-promotion-header-slogan
17 promotion-id={recordId}
18 ></cgcloud-tpm-promotion-header-slogan>
19 </div>
20
21 <!-- Subtitle -->
22 <div slot="subtitle" style="display: flex">
23 <cgcloud-tpm-promotion-header-subtitle
24 promotion-id={recordId}
25 ></cgcloud-tpm-promotion-header-subtitle>
26 </div>
27
28 <!-- Navigation -->
29 <lightning-button-group slot="navigation">
30 <cgcloud-tpm-promotion-header-promotion-planning-button
31 promotion-id={recordId}
32 group-order="first"
33 ></cgcloud-tpm-promotion-header-promotion-planning-button>
34 <cgcloud-tpm-promotion-header-promotion-pl-button
35 promotion-id={recordId}
36 group-order="last"
37 ></cgcloud-tpm-promotion-header-promotion-pl-button>
38 </lightning-button-group>
39
40 <!-- Left anchor buttons -->
41 <div slot="left-buttons" style="display: flex">
42 <cgcloud-tpm-promotion-header-edit-mode-button
43 promotion-id={recordId}
44 ></cgcloud-tpm-promotion-header-edit-mode-button>
45 <cgcloud-tpm-promotion-header-add-tactic-button
46 promotion-id={recordId}
47 ></cgcloud-tpm-promotion-header-add-tactic-button>
48 <cgcloud-tpm-promotion-header-duplicate-tactic-button
49 promotion-id={recordId}
50 ></cgcloud-tpm-promotion-header-duplicate-tactic-button>
51 <cgcloud-tpm-promotion-header-delete-tactic-button
52 promotion-id={recordId}
53 ></cgcloud-tpm-promotion-header-delete-tactic-button>
54 <cgcloud-tpm-promotion-header-predict-uplift-button
55 promotion-id={recordId}
56 ></cgcloud-tpm-promotion-header-predict-uplift-button>
57 </div>
58
59 <!-- Right anchor buttons -->
60 <div slot="right-buttons">
61 <cgcloud-tpm-promotion-header-kpi-validations
62 promotion-id={recordId}
63 ></cgcloud-tpm-promotion-header-kpi-validations>
64 <cgcloud-tpm-promotion-header-push-area
65 promotion-id={recordId}
66 ></cgcloud-tpm-promotion-header-push-area>
67 <cgcloud-tpm-promotion-header-cancel-button
68 promotion-id={recordId}
69 ></cgcloud-tpm-promotion-header-cancel-button>
70 <cgcloud-tpm-promotion-header-save-and-refresh-button
71 promotion-id={recordId}
72 ></cgcloud-tpm-promotion-header-save-and-refresh-button>
73 <cgcloud-tpm-promotion-header-done-button
74 promotion-id={recordId}
75 ></cgcloud-tpm-promotion-header-done-button>
76 <cgcloud-tpm-promotion-header-pl-filter-button
77 promotion-id={recordId}
78 ></cgcloud-tpm-promotion-header-pl-filter-button>
79 </div>
80
81 <!-- Full Height buttons -->
82 <div slot="fullheight-buttons">
83 <cgcloud-tpm-promotion-header-scenario-planning-button
84 promotion-id={recordId}
85 ></cgcloud-tpm-promotion-header-scenario-planning-button>
86 <cgcloud-tpm-promotion-header-attachments-button
87 promotion-id={recordId}
88 ></cgcloud-tpm-promotion-header-attachments-button>
89 </div>
90 </cgcloud-tpm-promotion-header-component>
91 </template>
92
93 <!-- MyHeader.js -->
94 import { LightningElement, api } from 'lwc';
95
96 export default class SamplePromotionHeaderCustom extends LightningElement {
97 @api recordId;
98 }
99
100 <!-- MyHeader.js-meta.xml -->
101 <?xml version="1.0" encoding="UTF-8"?>
102 <LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
103 <apiVersion>59.0</apiVersion>
104 <isExposed>true</isExposed>
105 <masterLabel>SAMPLE: Custom Promotion Header Component</masterLabel>
106 <targets>
107 <target>lightning__RecordPage</target>
108 </targets>
109 <targetConfigs>
110 <targetConfig targets="lightning__RecordPage">
111 <objects>
112 <object>cgcloud__Promotion__c</object>
113 </objects>
114 </targetConfig>
115 </targetConfigs>
116 <!-- This property is required if LWS is Disabled -->
117 <runtimeNamespace>cgcloud</runtimeNamespace>
118 </LightningComponentBundle>
Here’s an example of a custom promotion header component with a custom promotion title and custom button.
1 <!-- MyHeader.html -->
2 <template>
3 <cgcloud-tpm-promotion-header-component promotion-id={recordId}>
4
5 <!-- Non specified slots will use default implementation>
6
7 <!-- Title -->
8 <div slot="title" style="display: flex">
9 <h1>{myTitle}</h1>
10 </div>
11
12 <!-- Left anchor buttons, we keep default buttons and add a new one -->
13 <div slot="left-buttons" style="display: flex">
14 <cgcloud-tpm-promotion-header-edit-mode-button
15 promotion-id={recordId}
16 ></cgcloud-tpm-promotion-header-edit-mode-button>
17 <cgcloud-tpm-promotion-header-add-tactic-button
18 promotion-id={recordId}
19 ></cgcloud-tpm-promotion-header-add-tactic-button>
20 <cgcloud-tpm-promotion-header-duplicate-tactic-button
21 promotion-id={recordId}
22 ></cgcloud-tpm-promotion-header-duplicate-tactic-button>
23 <cgcloud-tpm-promotion-header-delete-tactic-button
24 promotion-id={recordId}
25 ></cgcloud-tpm-promotion-header-delete-tactic-button>
26 <cgcloud-tpm-promotion-header-predict-uplift-button
27 promotion-id={recordId}
28 ></cgcloud-tpm-promotion-header-predict-uplift-button>
29 <lightning-button label="Button" variant="brand" onclick={onButtonClick}></lightning-button>
30 </div>
31 </cgcloud-tpm-promotion-header-component>
32 </template>
33 <!-- MyHeader.js -->
34 import { LightningElement, api } from 'lwc';
35
36 export default class SamplePromotionHeaderCustom extends LightningElement {
37 @api recordId;
38
39 myTitle = 'Hello World!';
40
41 onButtonClick() {
42 alert('Hello World!');
43 }
44 }
45
46 <!-- MyHeader.js-meta.xml -->
47 <?xml version="1.0" encoding="UTF-8"?>
48 <LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
49 <apiVersion>59.0</apiVersion>
50 <isExposed>true</isExposed>
51 <masterLabel>SAMPLE: Custom Promotion Header Component</masterLabel>
52 <targets>
53 <target>lightning__RecordPage</target>
54 </targets>
55 <targetConfigs>
56 <targetConfig targets="lightning__RecordPage">
57 <objects>
58 <object>cgcloud__Promotion__c</object>
59 </objects>
60 </targetConfig>
61 </targetConfigs>
62 <!-- This property is required if LWS is Disabled -->
63 <runtimeNamespace>cgcloud</runtimeNamespace>
64 </LightningComponentBundle>
If your org has Lightning Web Security enabled, the runtimeNamespace property on the metadata file isn’t required.
Lightning web security is a feature that must be tested before enabling. LWC Security