@salesforcedevs/dx-components 1.17.10-search-alpha1 → 1.17.13-alpha
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/package.json +3 -2
- package/src/modules/dx/footer/links.ts +1 -1
- package/src/modules/dx/sidebarOld/sidebarOld.html +0 -1
- package/src/modules/dx/sidebarOld/sidebarOld.ts +4 -17
- package/src/modules/dx/tree/tree.ts +2 -2
- package/src/modules/dx/treeItem/treeItem.html +1 -0
- package/src/modules/dx/treeItem/treeItem.ts +13 -2
- package/src/modules/dx/treeTile/treeTile.css +14 -0
- package/src/modules/dx/treeTile/treeTile.html +13 -1
- package/src/modules/dx/treeTile/treeTile.ts +17 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforcedevs/dx-components",
|
|
3
|
-
"version": "1.17.
|
|
3
|
+
"version": "1.17.13-alpha",
|
|
4
4
|
"description": "DX Lightning web components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"luxon": "3.4.4"
|
|
44
44
|
},
|
|
45
45
|
"volta": {
|
|
46
|
-
"node": "20.19.0"
|
|
46
|
+
"node": "20.19.0",
|
|
47
|
+
"yarn": "1.22.19"
|
|
47
48
|
}
|
|
48
49
|
}
|
|
@@ -149,7 +149,7 @@ const openOneTrustInfoDisplay = () => {
|
|
|
149
149
|
export const termsLinks = [
|
|
150
150
|
{ href: privacyHref, label: "Privacy Information" },
|
|
151
151
|
{
|
|
152
|
-
href: "https://www.salesforce.com/company/legal/
|
|
152
|
+
href: "https://www.salesforce.com/company/legal/program-agreement/",
|
|
153
153
|
label: "Terms of Service"
|
|
154
154
|
},
|
|
155
155
|
{
|
|
@@ -29,15 +29,6 @@ export default class Sidebar extends SidebarBase {
|
|
|
29
29
|
this.assignFilteredTrees();
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
@api
|
|
33
|
-
get emptyStateMessage(): string | undefined {
|
|
34
|
-
return this._emptyStateMessage;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
set emptyStateMessage(value: string) {
|
|
38
|
-
this._emptyStateMessage = value;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
32
|
private _searchTimeout?: number;
|
|
42
33
|
private _trees!: Array<TreeNode>;
|
|
43
34
|
|
|
@@ -45,7 +36,6 @@ export default class Sidebar extends SidebarBase {
|
|
|
45
36
|
private searchText: string = "";
|
|
46
37
|
private matchMedia!: MediaQueryList;
|
|
47
38
|
private valueToLabel: { [key: string]: string } = {};
|
|
48
|
-
private _emptyStateMessage?: string;
|
|
49
39
|
|
|
50
40
|
private get anyResultMatch() {
|
|
51
41
|
return this.filteredTrees.length > 0;
|
|
@@ -75,13 +65,10 @@ export default class Sidebar extends SidebarBase {
|
|
|
75
65
|
}
|
|
76
66
|
|
|
77
67
|
private get emptyStateSuggestions(): string {
|
|
78
|
-
return (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
"Try different search keywords"
|
|
83
|
-
])
|
|
84
|
-
);
|
|
68
|
+
return JSON.stringify([
|
|
69
|
+
"Please consider misspellings",
|
|
70
|
+
"Try different search keywords"
|
|
71
|
+
]);
|
|
85
72
|
}
|
|
86
73
|
|
|
87
74
|
private get isDesktop(): boolean {
|
|
@@ -44,9 +44,9 @@ export default class Tree extends LightningElement {
|
|
|
44
44
|
onTileSelected(event: CustomEvent) {
|
|
45
45
|
event.stopPropagation();
|
|
46
46
|
|
|
47
|
-
const { key, name } = event.detail;
|
|
47
|
+
const { key, name, isExternalLink } = event.detail;
|
|
48
48
|
this._value = name;
|
|
49
|
-
this.selectedKey = key;
|
|
49
|
+
this.selectedKey = isExternalLink ? this.selectedKey : key;
|
|
50
50
|
this.dispatchEvent(
|
|
51
51
|
new CustomEvent("select", {
|
|
52
52
|
detail: { name },
|
|
@@ -25,8 +25,16 @@ export default class TreeItem extends LightningElement {
|
|
|
25
25
|
private isChildrenLoading: boolean = false;
|
|
26
26
|
private rootParentLabel: string = "";
|
|
27
27
|
|
|
28
|
+
private get isExternalLink() {
|
|
29
|
+
return (
|
|
30
|
+
this._treeNode.link &&
|
|
31
|
+
this._treeNode.link.target &&
|
|
32
|
+
this._treeNode.link.target === "_blank"
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
28
36
|
private get isSelected(): boolean {
|
|
29
|
-
return this._treeNode.key === this.selectedKey;
|
|
37
|
+
return this._treeNode.key === this.selectedKey && !this.isExternalLink;
|
|
30
38
|
}
|
|
31
39
|
|
|
32
40
|
private get hasChildren(): boolean {
|
|
@@ -142,7 +150,10 @@ export default class TreeItem extends LightningElement {
|
|
|
142
150
|
}
|
|
143
151
|
|
|
144
152
|
this.sendGtm(event);
|
|
145
|
-
this.fireEvent("tileselected", {
|
|
153
|
+
this.fireEvent("tileselected", {
|
|
154
|
+
name: this._treeNode.name,
|
|
155
|
+
isExternalLink: this._treeNode.link?.target === "_blank" || false
|
|
156
|
+
});
|
|
146
157
|
}
|
|
147
158
|
|
|
148
159
|
private doExpand(isSelectAction: boolean): void {
|
|
@@ -52,6 +52,20 @@
|
|
|
52
52
|
margin-left: auto;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
.tile-external-link-icon {
|
|
56
|
+
display: inline-flex;
|
|
57
|
+
align-items: center;
|
|
58
|
+
margin-left: var(--dx-g-spacing-sm);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.tile-with-children .tile-external-link-icon {
|
|
62
|
+
order: 2;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.whitespace-nowrap {
|
|
66
|
+
white-space: nowrap;
|
|
67
|
+
}
|
|
68
|
+
|
|
55
69
|
.tile-with-children .tile-label {
|
|
56
70
|
order: 2;
|
|
57
71
|
}
|
|
@@ -14,7 +14,19 @@
|
|
|
14
14
|
class="tile-label sidebar-item-truncate-text"
|
|
15
15
|
title={treeNode.label}
|
|
16
16
|
>
|
|
17
|
-
{
|
|
17
|
+
<span if:true={getModifiedLabel.restOfLabelWithSpace.length}>
|
|
18
|
+
{getModifiedLabel.restOfLabelWithSpace}
|
|
19
|
+
</span>
|
|
20
|
+
<span class="whitespace-nowrap">
|
|
21
|
+
{getModifiedLabel.lastWord}
|
|
22
|
+
<dx-icon
|
|
23
|
+
if:true={isExternalLink}
|
|
24
|
+
class="tile-external-link-icon"
|
|
25
|
+
symbol="external-link-alt"
|
|
26
|
+
sprite="general"
|
|
27
|
+
size="xsmall"
|
|
28
|
+
></dx-icon>
|
|
29
|
+
</span>
|
|
18
30
|
</span>
|
|
19
31
|
<dx-metadata-badge
|
|
20
32
|
if:true={showMethod}
|
|
@@ -31,6 +31,7 @@ export default class TreeTile extends LightningElement {
|
|
|
31
31
|
@api href!: string;
|
|
32
32
|
@api showArrow = false;
|
|
33
33
|
@api target!: string;
|
|
34
|
+
@api isExternalLink = false;
|
|
34
35
|
|
|
35
36
|
get tileAriaLevel() {
|
|
36
37
|
return this.treeNode.level + 2;
|
|
@@ -58,6 +59,22 @@ export default class TreeTile extends LightningElement {
|
|
|
58
59
|
return "";
|
|
59
60
|
}
|
|
60
61
|
|
|
62
|
+
// in case of multiline label, external link icon should not leave alone.
|
|
63
|
+
private get getModifiedLabel() {
|
|
64
|
+
const label = this.treeNode.label;
|
|
65
|
+
const labelArr = label.trim().split(" ");
|
|
66
|
+
const lastWord = labelArr.pop();
|
|
67
|
+
const restOfLabel = labelArr.join(" ");
|
|
68
|
+
const restOfLabelWithSpace = restOfLabel.length
|
|
69
|
+
? `${restOfLabel} `
|
|
70
|
+
: "";
|
|
71
|
+
|
|
72
|
+
return {
|
|
73
|
+
lastWord,
|
|
74
|
+
restOfLabelWithSpace
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
61
78
|
private get tileClass() {
|
|
62
79
|
return cx("tile", "sidebar-item", {
|
|
63
80
|
"tile-root": this.isRoot,
|