@salesforcedevs/dx-components 1.3.206-alpha.10 → 1.3.206-alpha.12

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforcedevs/dx-components",
3
- "version": "1.3.206-alpha.10",
3
+ "version": "1.3.206-alpha.12",
4
4
  "description": "DX Lightning web components",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -391,3 +391,8 @@ a.CoveoResultLink,
391
391
  gap: 12px;
392
392
  margin-bottom: var(--dx-g-spacing-smd);
393
393
  }
394
+
395
+ .breadcrumb {
396
+ color: #555;
397
+ font-size: var(--dx-g-text-xs);
398
+ }
@@ -47,8 +47,8 @@ const resultsTemplatesInnerHtml = `
47
47
  <div class="dx-result">
48
48
  <div class="dx-result-info">
49
49
  <span class="CoveoFieldValue" data-field="@content_type" data-helper="badge" data-html-value="true"></span>
50
- <span class="CoveoFieldValue" data-field="@uri" data-helper="uriBreadcrumbs" data-html-value="true"></span>
51
50
  <span class="CoveoFieldValue" data-field="@breadcrumbs" data-helper="breadcrumbs" data-html-value="true"></span>
51
+ <span class="CoveoFieldValue" data-field="@uri" data-helper="uriBreadcrumbs" data-html-value="true"></span>
52
52
  </div>
53
53
  <p class="dx-result-title">
54
54
  <a
@@ -67,8 +67,8 @@ const resultsTemplatesInnerHtml = `
67
67
  <div class="dx-result">
68
68
  <div class="dx-result-info">
69
69
  <span class="CoveoFieldValue" data-field="@content_type" data-helper="badge" data-html-value="true"></span>
70
- <span class="CoveoFieldValue" data-field="@uri" data-helper="breadcrumbs" data-html-value="true"></span>
71
70
  <span class="CoveoFieldValue" data-field="@breadcrumbs" data-helper="breadcrumbs" data-html-value="true"></span>
71
+ <span class="CoveoFieldValue" data-field="@uri" data-helper="uriBreadcrumbs" data-html-value="true"></span>
72
72
  </div>
73
73
  <p class="dx-result-title">
74
74
  <a class="CoveoResultLink"></a>
@@ -119,9 +119,12 @@ const buildTemplateHelperUriBreadcrumbs = (value: string) => {
119
119
  const url = new URL(value);
120
120
 
121
121
  // Only generate breadcrumbs for external links using the URL
122
+ const hostnamePattern =
123
+ /^((www\.)?(youtube\.com|developer\.salesforce\.com|developer-website-s\.herokuapp\.com))$/;
122
124
  if (
123
- url.hostname === "developer.salesforce.com" ||
124
- url.hostname === "developer-website-s.herokuapp.com"
125
+ hostnamePattern.test(url.hostname) &&
126
+ !/\/blogs|\/podcast/.test(url.pathname) &&
127
+ !/\/docs\/component-library/.test(url.pathname)
125
128
  ) {
126
129
  return "";
127
130
  }
@@ -129,19 +132,39 @@ const buildTemplateHelperUriBreadcrumbs = (value: string) => {
129
132
  let parts = url.pathname.split("/").filter((part) => part !== "");
130
133
 
131
134
  // Remove language prefix from trailhead URLs
132
- if (url.hostname === "trailhead.salesforce.com") {
133
- parts = parts.slice(1);
135
+ if (
136
+ url.hostname === "trailhead.salesforce.com" ||
137
+ url.hostname === "dev.trailhead.salesforce.com"
138
+ ) {
139
+ parts = parts
140
+ .slice(1)
141
+ .filter((part) => part !== "content" && part !== "learn");
134
142
  }
135
143
 
136
144
  const breadcrumbs = processParts(parts);
137
145
 
138
- breadcrumbs.unshift(`<span class="breadcrumb-item">${url.hostname}</span>`);
146
+ // if url.hostname is developer.salesforce.com or developer-website-s.herokuapp.com, remove the first part
147
+ if (
148
+ url.hostname !== "developer.salesforce.com" &&
149
+ url.hostname !== "developer-website-s.herokuapp.com"
150
+ ) {
151
+ breadcrumbs.unshift(
152
+ `<span class="breadcrumb-item">${url.hostname}</span>`
153
+ );
139
154
 
140
- return `
155
+ return `
141
156
  <span class="breadcrumb">
142
157
  ${breadcrumbs.join(" / ")}
143
158
  </span>
144
159
  `;
160
+ } else if (breadcrumbs.length === 1) {
161
+ return "";
162
+ }
163
+
164
+ // remove the last breadcrumb item (since the search result is the last item anyway)
165
+ breadcrumbs.pop();
166
+
167
+ return `<span class="breadcrumb">/ ${breadcrumbs.join(" / ")} /</span>`;
145
168
  };
146
169
 
147
170
  const buildTemplateHelperBreadcrumbs = (value: string) => {
@@ -154,16 +177,18 @@ const buildTemplateHelperBreadcrumbs = (value: string) => {
154
177
  parts = value.split("/").filter((part) => part !== "");
155
178
  }
156
179
 
180
+ // Don't show breadcrumbs if there's only one part or two (two because we remove the last item in the next step)
157
181
  if (parts.length === 1) {
158
182
  return "";
159
183
  }
160
184
 
161
185
  const breadcrumbs = processParts(parts);
162
186
 
187
+ // Remove the last breadcrumb item
188
+ breadcrumbs.pop();
189
+
163
190
  return `
164
- <span class="breadcrumb">
165
- ${breadcrumbs.join(" / ")}
166
- </span>
191
+ <span class="breadcrumb">/ ${breadcrumbs.join(" / ")} /</span>
167
192
  `;
168
193
  };
169
194
 
@@ -282,7 +307,7 @@ export default class SearchResults extends LightningElement {
282
307
 
283
308
  window.onresize = debounce(() => {
284
309
  this.processBreadcrumbs(root);
285
- }, 25);
310
+ }, 10);
286
311
  });
287
312
  }
288
313