wj-elements 0.7.6 → 0.8.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/animations.js +28 -51
- package/dist/animations.js.map +1 -1
- package/dist/base-path.js +19 -31
- package/dist/base-path.js.map +1 -1
- package/dist/custom-elements.json +9053 -9048
- package/dist/dark.css +1 -302
- package/dist/date.js +16 -36
- package/dist/date.js.map +1 -1
- package/dist/element-utils.js +20 -81
- package/dist/element-utils.js.map +1 -1
- package/dist/event.js +49 -165
- package/dist/event.js.map +1 -1
- package/dist/form-associated-element-BjeJn7j8.js +101 -0
- package/dist/{form-associated-element-DEQ4y-jn.js.map → form-associated-element-BjeJn7j8.js.map} +1 -1
- package/dist/icon-DmsqtDpL.js +102 -0
- package/dist/{icon-CReYMzAK.js.map → icon-DmsqtDpL.js.map} +1 -1
- package/dist/light.css +1 -731
- package/dist/localize.js +36 -111
- package/dist/localize.js.map +1 -1
- package/dist/packages/wje-accordion-item/accordion-item.element.d.ts +3 -2
- package/dist/packages/wje-img/img.element.d.ts +4 -4
- package/dist/permissions.js +14 -41
- package/dist/permissions.js.map +1 -1
- package/dist/popup.element-CbkhthPP.js +806 -0
- package/dist/{popup.element-CwXvVFK7.js.map → popup.element-CbkhthPP.js.map} +1 -1
- package/dist/router-links-CNsJ-elb.js +105 -0
- package/dist/{router-links-wjqCnncc.js.map → router-links-CNsJ-elb.js.map} +1 -1
- package/dist/skeleton.css +1 -197
- package/dist/styles.css +1 -866
- package/dist/universal-service.js +48 -109
- package/dist/universal-service.js.map +1 -1
- package/dist/utils.js +11 -18
- package/dist/utils.js.map +1 -1
- package/dist/web-types.json +698 -698
- package/dist/wje-accordion-item.js +33 -106
- package/dist/wje-accordion-item.js.map +1 -1
- package/dist/wje-accordion.js +19 -84
- package/dist/wje-accordion.js.map +1 -1
- package/dist/wje-animation.js +37 -4258
- package/dist/wje-animation.js.map +1 -1
- package/dist/wje-aside.js +9 -34
- package/dist/wje-aside.js.map +1 -1
- package/dist/wje-avatar.js +36 -126
- package/dist/wje-avatar.js.map +1 -1
- package/dist/wje-badge.js +10 -52
- package/dist/wje-badge.js.map +1 -1
- package/dist/wje-breadcrumb.js +205 -668
- package/dist/wje-breadcrumb.js.map +1 -1
- package/dist/wje-breadcrumbs.js +177 -633
- package/dist/wje-breadcrumbs.js.map +1 -1
- package/dist/wje-button-group.js +48 -153
- package/dist/wje-button-group.js.map +1 -1
- package/dist/wje-button.js +92 -413
- package/dist/wje-button.js.map +1 -1
- package/dist/wje-card-content.js +7 -30
- package/dist/wje-card-content.js.map +1 -1
- package/dist/wje-card-controls.js +7 -30
- package/dist/wje-card-controls.js.map +1 -1
- package/dist/wje-card-header.js +7 -30
- package/dist/wje-card-header.js.map +1 -1
- package/dist/wje-card-subtitle.js +7 -34
- package/dist/wje-card-subtitle.js.map +1 -1
- package/dist/wje-card-title.js +7 -34
- package/dist/wje-card-title.js.map +1 -1
- package/dist/wje-card.js +15 -71
- package/dist/wje-card.js.map +1 -1
- package/dist/wje-carousel-item.js +12 -56
- package/dist/wje-carousel-item.js.map +1 -1
- package/dist/wje-carousel.js +154 -509
- package/dist/wje-carousel.js.map +1 -1
- package/dist/wje-checkbox.js +50 -227
- package/dist/wje-checkbox.js.map +1 -1
- package/dist/wje-chip.js +43 -160
- package/dist/wje-chip.js.map +1 -1
- package/dist/wje-col.js +7 -20
- package/dist/wje-col.js.map +1 -1
- package/dist/wje-color-picker.js +445 -1464
- package/dist/wje-color-picker.js.map +1 -1
- package/dist/wje-container.js +9 -35
- package/dist/wje-container.js.map +1 -1
- package/dist/wje-copy-button.js +64 -204
- package/dist/wje-copy-button.js.map +1 -1
- package/dist/wje-dialog.js +85 -553
- package/dist/wje-dialog.js.map +1 -1
- package/dist/wje-divider.js +7 -34
- package/dist/wje-divider.js.map +1 -1
- package/dist/wje-dropdown.js +78 -305
- package/dist/wje-dropdown.js.map +1 -1
- package/dist/wje-element.js +191 -700
- package/dist/wje-element.js.map +1 -1
- package/dist/wje-file-upload-item.js +51 -156
- package/dist/wje-file-upload-item.js.map +1 -1
- package/dist/wje-file-upload.js +181 -619
- package/dist/wje-file-upload.js.map +1 -1
- package/dist/wje-footer.js +7 -31
- package/dist/wje-footer.js.map +1 -1
- package/dist/wje-form.js +7 -32
- package/dist/wje-form.js.map +1 -1
- package/dist/wje-format-digital.js +26 -118
- package/dist/wje-format-digital.js.map +1 -1
- package/dist/wje-grid.js +7 -33
- package/dist/wje-grid.js.map +1 -1
- package/dist/wje-header.js +9 -35
- package/dist/wje-header.js.map +1 -1
- package/dist/wje-icon-library.js +12 -18
- package/dist/wje-icon-library.js.map +1 -1
- package/dist/wje-icon-picker.js +65 -320
- package/dist/wje-icon-picker.js.map +1 -1
- package/dist/wje-icon.js +1 -1
- package/dist/wje-img-comparer.js +37 -114
- package/dist/wje-img-comparer.js.map +1 -1
- package/dist/wje-img.js +50 -197
- package/dist/wje-img.js.map +1 -1
- package/dist/wje-infinite-scroll.js +94 -346
- package/dist/wje-infinite-scroll.js.map +1 -1
- package/dist/wje-input-file.js +23 -84
- package/dist/wje-input-file.js.map +1 -1
- package/dist/wje-input.js +78 -392
- package/dist/wje-input.js.map +1 -1
- package/dist/wje-item.js +11 -64
- package/dist/wje-item.js.map +1 -1
- package/dist/wje-kanban.js +124 -401
- package/dist/wje-kanban.js.map +1 -1
- package/dist/wje-label.js +9 -32
- package/dist/wje-label.js.map +1 -1
- package/dist/wje-level-indicator.js +38 -157
- package/dist/wje-level-indicator.js.map +1 -1
- package/dist/wje-list.js +10 -40
- package/dist/wje-list.js.map +1 -1
- package/dist/wje-main.js +7 -31
- package/dist/wje-main.js.map +1 -1
- package/dist/wje-masonry.js +66 -211
- package/dist/wje-masonry.js.map +1 -1
- package/dist/wje-master.js +45 -161
- package/dist/wje-master.js.map +1 -1
- package/dist/wje-menu-button.js +10 -38
- package/dist/wje-menu-button.js.map +1 -1
- package/dist/wje-menu-item.js +127 -577
- package/dist/wje-menu-item.js.map +1 -1
- package/dist/wje-menu-label.js +9 -35
- package/dist/wje-menu-label.js.map +1 -1
- package/dist/wje-menu.js +14 -49
- package/dist/wje-menu.js.map +1 -1
- package/dist/wje-option.js +48 -279
- package/dist/wje-option.js.map +1 -1
- package/dist/wje-options.js +130 -384
- package/dist/wje-options.js.map +1 -1
- package/dist/wje-orgchart-group.js +16 -52
- package/dist/wje-orgchart-group.js.map +1 -1
- package/dist/wje-orgchart-item.js +24 -93
- package/dist/wje-orgchart-item.js.map +1 -1
- package/dist/wje-orgchart.js +18 -68
- package/dist/wje-orgchart.js.map +1 -1
- package/dist/wje-pagination.js +113 -397
- package/dist/wje-pagination.js.map +1 -1
- package/dist/wje-popup.js +3 -3
- package/dist/wje-popup.js.map +1 -1
- package/dist/wje-progress-bar.js +53 -205
- package/dist/wje-progress-bar.js.map +1 -1
- package/dist/wje-qr-code.js +398 -2980
- package/dist/wje-qr-code.js.map +1 -1
- package/dist/wje-radio-group.js +52 -190
- package/dist/wje-radio-group.js.map +1 -1
- package/dist/wje-radio.js +24 -118
- package/dist/wje-radio.js.map +1 -1
- package/dist/wje-rate.js +62 -266
- package/dist/wje-rate.js.map +1 -1
- package/dist/wje-relative-time.js +24 -99
- package/dist/wje-relative-time.js.map +1 -1
- package/dist/wje-reorder-dropzone.js +9 -31
- package/dist/wje-reorder-dropzone.js.map +1 -1
- package/dist/wje-reorder-handle.js +67 -204
- package/dist/wje-reorder-handle.js.map +1 -1
- package/dist/wje-reorder-item.js +14 -44
- package/dist/wje-reorder-item.js.map +1 -1
- package/dist/wje-reorder.js +61 -246
- package/dist/wje-reorder.js.map +1 -1
- package/dist/wje-route.js +6 -24
- package/dist/wje-route.js.map +1 -1
- package/dist/wje-router-link.js +11 -39
- package/dist/wje-router-link.js.map +1 -1
- package/dist/wje-router-outlet.js +76 -172
- package/dist/wje-router-outlet.js.map +1 -1
- package/dist/wje-routerx.js +537 -1331
- package/dist/wje-routerx.js.map +1 -1
- package/dist/wje-row.js +9 -31
- package/dist/wje-row.js.map +1 -1
- package/dist/wje-select.js +326 -1152
- package/dist/wje-select.js.map +1 -1
- package/dist/wje-slider.js +44 -225
- package/dist/wje-slider.js.map +1 -1
- package/dist/wje-sliding-container.js +295 -1319
- package/dist/wje-sliding-container.js.map +1 -1
- package/dist/wje-split-view.js +35 -121
- package/dist/wje-split-view.js.map +1 -1
- package/dist/wje-status.js +14 -45
- package/dist/wje-status.js.map +1 -1
- package/dist/wje-step.js +9 -32
- package/dist/wje-step.js.map +1 -1
- package/dist/wje-stepper.js +109 -357
- package/dist/wje-stepper.js.map +1 -1
- package/dist/wje-store.js +67 -360
- package/dist/wje-store.js.map +1 -1
- package/dist/wje-tab-group.js +85 -314
- package/dist/wje-tab-group.js.map +1 -1
- package/dist/wje-tab-panel.js +7 -28
- package/dist/wje-tab-panel.js.map +1 -1
- package/dist/wje-tab.js +21 -198
- package/dist/wje-tab.js.map +1 -1
- package/dist/wje-textarea.js +64 -264
- package/dist/wje-textarea.js.map +1 -1
- package/dist/wje-thumbnail.js +10 -51
- package/dist/wje-thumbnail.js.map +1 -1
- package/dist/wje-toast.js +127 -632
- package/dist/wje-toast.js.map +1 -1
- package/dist/wje-toggle.js +52 -177
- package/dist/wje-toggle.js.map +1 -1
- package/dist/wje-toolbar-action.js +128 -456
- package/dist/wje-toolbar-action.js.map +1 -1
- package/dist/wje-toolbar.js +75 -270
- package/dist/wje-toolbar.js.map +1 -1
- package/dist/wje-tooltip.js +50 -161
- package/dist/wje-tooltip.js.map +1 -1
- package/dist/wje-tree-item.js +70 -301
- package/dist/wje-tree-item.js.map +1 -1
- package/dist/wje-tree.js +145 -489
- package/dist/wje-tree.js.map +1 -1
- package/dist/wje-visually-hidden.js +7 -34
- package/dist/wje-visually-hidden.js.map +1 -1
- package/package.json +4 -2
- package/dist/form-associated-element-DEQ4y-jn.js +0 -245
- package/dist/icon-CReYMzAK.js +0 -245
- package/dist/popup.element-CwXvVFK7.js +0 -2133
- package/dist/router-links-wjqCnncc.js +0 -156
package/dist/wje-breadcrumb.js
CHANGED
|
@@ -1,770 +1,307 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import
|
|
5
|
-
import { WjElementUtils } from "./element-utils.js";
|
|
6
|
-
import { event } from "./event.js";
|
|
4
|
+
import e from "./wje-element.js";
|
|
5
|
+
import { WjElementUtils as t } from "./element-utils.js";
|
|
6
|
+
import { event as r } from "./event.js";
|
|
7
7
|
import "./wje-button.js";
|
|
8
8
|
import "./wje-dropdown.js";
|
|
9
|
-
import "./icon-
|
|
9
|
+
import "./icon-DmsqtDpL.js";
|
|
10
10
|
import "./wje-menu.js";
|
|
11
11
|
import "./wje-menu-item.js";
|
|
12
12
|
import "./wje-popup.js";
|
|
13
13
|
import "./wje-tooltip.js";
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
class Breadcrumb extends WJElement {
|
|
17
|
-
/**
|
|
18
|
-
* Breadcrumb constructor method.
|
|
19
|
-
*/
|
|
14
|
+
const a = /* @__PURE__ */ new Set(["TEXT", "BACK", "PARENT-TITLE", "MENU-TITLE", "SHEET"]);
|
|
15
|
+
class i extends e {
|
|
20
16
|
constructor() {
|
|
21
17
|
super();
|
|
22
|
-
/**
|
|
23
|
-
* Class name for the Breadcrumb element.
|
|
24
|
-
* @type {string}
|
|
25
|
-
*/
|
|
26
18
|
__publicField(this, "className", "Breadcrumb");
|
|
27
|
-
this._showSeparator = true;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
* Sets the breadcrumb link URL.
|
|
33
|
-
* @param {string|null} value Link URL.
|
|
34
|
-
*/
|
|
35
|
-
set href(value) {
|
|
36
|
-
if (value === null || value === void 0) this.removeAttribute("href");
|
|
37
|
-
else this.setAttribute("href", value);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Gets the breadcrumb link URL.
|
|
41
|
-
* @returns {string|null}
|
|
42
|
-
*/
|
|
19
|
+
this._showSeparator = true, this._showCollapsedIndicator = false, this.handleNativeClick = (e2) => this.handleDisabledNativeClick(e2);
|
|
20
|
+
}
|
|
21
|
+
set href(e2) {
|
|
22
|
+
null == e2 ? this.removeAttribute("href") : this.setAttribute("href", e2);
|
|
23
|
+
}
|
|
43
24
|
get href() {
|
|
44
25
|
return this.getAttribute("href");
|
|
45
26
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
* @param {boolean} value Disabled state.
|
|
49
|
-
*/
|
|
50
|
-
set disabled(value) {
|
|
51
|
-
if (value === true || value === "" || value === "true" || value === 1 || value === "1") {
|
|
52
|
-
this.setAttribute("disabled", "");
|
|
53
|
-
} else {
|
|
54
|
-
this.removeAttribute("disabled");
|
|
55
|
-
}
|
|
27
|
+
set disabled(e2) {
|
|
28
|
+
true === e2 || "" === e2 || "true" === e2 || 1 === e2 || "1" === e2 ? this.setAttribute("disabled", "") : this.removeAttribute("disabled");
|
|
56
29
|
}
|
|
57
|
-
/**
|
|
58
|
-
* Gets the disabled state.
|
|
59
|
-
* @returns {boolean}
|
|
60
|
-
*/
|
|
61
30
|
get disabled() {
|
|
62
31
|
return this.hasAttribute("disabled");
|
|
63
32
|
}
|
|
64
|
-
/**
|
|
65
|
-
* Get show separator flag.
|
|
66
|
-
* @returns {boolean} showSeparator - The show separator flag
|
|
67
|
-
*/
|
|
68
33
|
get showSeparator() {
|
|
69
34
|
return this._showSeparator;
|
|
70
35
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Set collapsed variant.
|
|
80
|
-
* @param {string} value The value to set
|
|
81
|
-
*/
|
|
82
|
-
set collapsedVariant(value) {
|
|
83
|
-
this._collapsedVariant = value;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Get collapsed variant.
|
|
87
|
-
* @returns {string} The collapsed variant value in uppercase.
|
|
88
|
-
*/
|
|
36
|
+
set showSeparator(e2) {
|
|
37
|
+
this._showSeparator = e2;
|
|
38
|
+
}
|
|
39
|
+
set collapsedVariant(e2) {
|
|
40
|
+
this._collapsedVariant = e2;
|
|
41
|
+
}
|
|
89
42
|
get collapsedVariant() {
|
|
90
43
|
return this.collapsedVariantName.toUpperCase();
|
|
91
44
|
}
|
|
92
|
-
/**
|
|
93
|
-
* Get collapsed variant token.
|
|
94
|
-
* @returns {string}
|
|
95
|
-
*/
|
|
96
45
|
get collapsedVariantName() {
|
|
97
46
|
var _a, _b;
|
|
98
47
|
return String(((_a = this.parentElement) == null ? void 0 : _a.collapsedVariant) || ((_b = this.parentElement) == null ? void 0 : _b.variant) || this._collapsedVariant || "button").trim();
|
|
99
48
|
}
|
|
100
|
-
/**
|
|
101
|
-
* Get CSS stylesheet for the Breadcrumb element.
|
|
102
|
-
* @static
|
|
103
|
-
* @returns {object} styles - The CSS styles
|
|
104
|
-
*/
|
|
105
49
|
static get cssStyleSheet() {
|
|
106
|
-
return
|
|
50
|
+
return ':host{display:flex;flex:0 0 auto;align-items:center;line-height:var(--wje-breadcrumb-line-height, 1.5)}:host .native-breadcrumb{display:flex;align-items:center;width:100%;outline:none;background:inherit;margin:var(--wje-breadcrumb-margin, var(--wje-breadcrumb-native-margin, 0));padding:var(--wje-breadcrumb-padding, var(--wje-breadcrumb-native-padding, .25rem .75rem));color:var(--wje-breadcrumb-a);text-decoration:none;font-size:var(--wje-breadcrumb-font-size);line-height:var(--wje-breadcrumb-native-line-height, var(--wje-breadcrumb-line-height, 1.5))}:host .native-breadcrumb.hidden{display:none}:host .native-breadcrumb.active{font-weight:var(--wje-breadcrumb-active-font-weight);font-size:var(--wje-breadcrumb-active-font-size)}:host .native-breadcrumb.disabled{cursor:default;opacity:.6}:host .native-breadcrumb:hover{color:var(--wje-breadcrumb-a-hover)}:host button{margin-inline:.75rem;border:0 solid transparent;border-radius:3px;background-color:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer}:host .separator{display:inline-flex;align-items:center}:host(.collapsed){display:none}:host([mobile-collapsed-indicator]){flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden}.breadcrumb-mobile{display:flex;align-items:center;min-width:0;max-width:100%;color:var(--wje-breadcrumb-a);font-size:var(--wje-breadcrumb-font-size);line-height:var(--wje-breadcrumb-line-height, 1.5)}.breadcrumb-mobile--text,.breadcrumb-mobile--back,.breadcrumb-mobile--parent-title{width:100%}.breadcrumb-mobile--back,.breadcrumb-mobile--parent-title{flex-direction:column;align-items:flex-start;gap:.125rem}.breadcrumb-mobile-dropdown,.breadcrumb-mobile__menu{min-width:0;max-width:100%}.breadcrumb-mobile__menu{--wje-button-margin-inline: 0;--wje-padding-top: 0;--wje-padding-bottom: 0;--wje-padding-start: 0;--wje-padding-end: 0;gap:.35rem;color:var(--wje-breadcrumb-a)}.breadcrumb-mobile__back,.breadcrumb-mobile__parent,.breadcrumb-mobile__title{min-width:0;max-width:100%;overflow:hidden;color:inherit;font:inherit;line-height:inherit;text-align:start;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.breadcrumb-mobile__back,.breadcrumb-mobile__parent{display:inline-flex;align-items:center;gap:.25rem;padding:0;border:0;background:transparent;color:var(--wje-breadcrumb-a);cursor:default;font-size:var(--wje-breadcrumb-mobile-parent-font-size, .8125rem);opacity:.72}button.breadcrumb-mobile__back,button.breadcrumb-mobile__parent,button.breadcrumb-mobile__title{margin-inline:0;cursor:pointer}button.breadcrumb-mobile__back:hover,button.breadcrumb-mobile__parent:hover,button.breadcrumb-mobile__title:hover,.breadcrumb-mobile__menu:hover{color:var(--wje-breadcrumb-a-hover)}.breadcrumb-mobile__title{display:block;font-weight:var(--wje-breadcrumb-active-font-weight, 600);font-size:var(--wje-breadcrumb-active-font-size, inherit)}.breadcrumb-mobile__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb-mobile__icon{flex:0 0 auto}::slotted([slot="start"]){margin-inline:0 .5rem}::slotted([slot="end"]){margin-inline:.5rem 0}';
|
|
107
51
|
}
|
|
108
|
-
/**
|
|
109
|
-
* Get observed attributes for the Breadcrumb element.
|
|
110
|
-
* @static
|
|
111
|
-
* @returns {Array<string>} - The observed attributes array for the Breadcrumb element.
|
|
112
|
-
*/
|
|
113
52
|
static get observedAttributes() {
|
|
114
53
|
return ["show-collapsed-indicator", "collapsed", "last", "href", "target", "rel", "download", "disabled", "title", "aria-label"];
|
|
115
54
|
}
|
|
116
|
-
|
|
117
|
-
* Handles attribute changes for the custom element and updates its behavior or appearance accordingly.
|
|
118
|
-
* @param {string} name The name of the attribute that was changed.
|
|
119
|
-
* @param {string|null} oldValue The previous value of the attribute before it was changed. Null if the attribute was not previously set.
|
|
120
|
-
* @param {string|null} newValue The new value of the attribute after it was changed. Null if the attribute was removed.
|
|
121
|
-
*/
|
|
122
|
-
attributeChangedCallback(name, oldValue, newValue) {
|
|
55
|
+
attributeChangedCallback(e2, r2, a2) {
|
|
123
56
|
var _a, _b;
|
|
124
|
-
if (
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
const isLast = newValue !== null && WjElementUtils.stringToBoolean(newValue);
|
|
137
|
-
this.active = isLast;
|
|
138
|
-
this.showSeparator = !isLast;
|
|
139
|
-
this.syncAria();
|
|
140
|
-
this.syncNativeAttributes();
|
|
141
|
-
this.refresh();
|
|
142
|
-
} else {
|
|
143
|
-
this.syncAria();
|
|
144
|
-
this.syncNativeAttributes();
|
|
145
|
-
}
|
|
57
|
+
if (r2 !== a2) if ("collapsed" === e2) {
|
|
58
|
+
const e3 = null !== a2 && t.stringToBoolean(a2);
|
|
59
|
+
this.classList.toggle("collapsed", e3 && !this.hasAttribute("show-collapsed-indicator"));
|
|
60
|
+
} else if ("show-collapsed-indicator" === e2) {
|
|
61
|
+
(_a = super.attributeChangedCallback) == null ? void 0 : _a.call(this, e2, r2, a2);
|
|
62
|
+
const i2 = null !== a2 && t.stringToBoolean(a2);
|
|
63
|
+
this._showCollapsedIndicator = i2, this.classList.toggle("collapsed", this.hasAttribute("collapsed") && !i2), this.refresh();
|
|
64
|
+
} else if ("last" === e2) {
|
|
65
|
+
(_b = super.attributeChangedCallback) == null ? void 0 : _b.call(this, e2, r2, a2);
|
|
66
|
+
const i2 = null !== a2 && t.stringToBoolean(a2);
|
|
67
|
+
this.active = i2, this.showSeparator = !i2, this.syncAria(), this.syncNativeAttributes(), this.refresh();
|
|
68
|
+
} else this.syncAria(), this.syncNativeAttributes();
|
|
146
69
|
}
|
|
147
|
-
/**
|
|
148
|
-
* Setup attributes for the Breadcrumb element.
|
|
149
|
-
*/
|
|
150
70
|
setupAttributes() {
|
|
151
|
-
this.isShadowRoot = "open";
|
|
152
|
-
this.syncAria();
|
|
71
|
+
this.isShadowRoot = "open", this.syncAria();
|
|
153
72
|
}
|
|
154
73
|
syncAria() {
|
|
155
|
-
this.setAriaState({ role: "link" });
|
|
156
|
-
|
|
157
|
-
else this.removeAttribute("aria-current");
|
|
158
|
-
if (this.disabled) this.setAriaState({ disabled: true });
|
|
159
|
-
else this.removeAttribute("aria-disabled");
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Draw method for the Breadcrumb element.
|
|
163
|
-
* @returns {object} fragment - The document fragment
|
|
164
|
-
*/
|
|
74
|
+
this.setAriaState({ role: "link" }), this.active ? this.setAriaState({ current: "page" }) : this.removeAttribute("aria-current"), this.disabled ? this.setAriaState({ disabled: true }) : this.removeAttribute("aria-disabled");
|
|
75
|
+
}
|
|
165
76
|
draw() {
|
|
166
|
-
let
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
this.
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
fragment.append(native);
|
|
179
|
-
if (WjElementUtils.stringToBoolean(this._showCollapsedIndicator)) {
|
|
180
|
-
fragment.append(this.drawCollapsedIndicator());
|
|
181
|
-
native.classList.add("hidden");
|
|
77
|
+
let e2 = document.createDocumentFragment(), r2 = document.createElement("a");
|
|
78
|
+
r2.classList.add("native-breadcrumb"), r2.setAttribute("part", "native"), this.native = r2, this.syncNativeAttributes();
|
|
79
|
+
let a2 = document.createElement("slot"), i2 = document.createElement("slot");
|
|
80
|
+
i2.setAttribute("name", "start");
|
|
81
|
+
let o = document.createElement("slot");
|
|
82
|
+
if (o.setAttribute("name", "end"), r2.append(i2, a2, o), e2.append(r2), t.stringToBoolean(this._showCollapsedIndicator) && (e2.append(this.drawCollapsedIndicator()), r2.classList.add("hidden")), this.shouldRenderSeparator()) {
|
|
83
|
+
let r3 = document.createElement("span");
|
|
84
|
+
if (r3.classList.add("separator"), r3.setAttribute("part", "separator"), t.hasSlot(this, "separator")) {
|
|
85
|
+
let e3 = document.createElement("slot");
|
|
86
|
+
e3.setAttribute("name", "separator"), r3.append(e3);
|
|
87
|
+
} else r3.innerHTML = `<wje-icon name=${this.separator || "chevron-right"}></wje-icon>`;
|
|
88
|
+
e2.append(r3);
|
|
182
89
|
}
|
|
183
|
-
|
|
184
|
-
let separator = document.createElement("span");
|
|
185
|
-
separator.classList.add("separator");
|
|
186
|
-
separator.setAttribute("part", "separator");
|
|
187
|
-
if (WjElementUtils.hasSlot(this, "separator")) {
|
|
188
|
-
let slotSeparator = document.createElement("slot");
|
|
189
|
-
slotSeparator.setAttribute("name", "separator");
|
|
190
|
-
separator.append(slotSeparator);
|
|
191
|
-
} else {
|
|
192
|
-
separator.innerHTML = `<wje-icon name=${this.separator || "chevron-right"}></wje-icon>`;
|
|
193
|
-
}
|
|
194
|
-
fragment.append(separator);
|
|
195
|
-
}
|
|
196
|
-
return fragment;
|
|
90
|
+
return e2;
|
|
197
91
|
}
|
|
198
|
-
/**
|
|
199
|
-
* Returns whether the separator should be visible after this breadcrumb.
|
|
200
|
-
* @returns {boolean}
|
|
201
|
-
*/
|
|
202
92
|
shouldRenderSeparator() {
|
|
203
93
|
return this.showSeparator && this.hasVisibleBreadcrumbAfter();
|
|
204
94
|
}
|
|
205
|
-
/**
|
|
206
|
-
* Returns whether any later breadcrumb is still visible in the rendered trail.
|
|
207
|
-
* @returns {boolean}
|
|
208
|
-
*/
|
|
209
95
|
hasVisibleBreadcrumbAfter() {
|
|
210
96
|
var _a, _b;
|
|
211
|
-
const
|
|
212
|
-
if (!Array.isArray(
|
|
213
|
-
const
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Returns whether a breadcrumb is visible in the rendered trail.
|
|
219
|
-
* @param {Element} breadcrumb Breadcrumb element to inspect.
|
|
220
|
-
* @returns {boolean}
|
|
221
|
-
*/
|
|
222
|
-
isBreadcrumbVisibleInTrail(breadcrumb) {
|
|
97
|
+
const e2 = (_b = (_a = this.parentElement) == null ? void 0 : _a.getBreadcrumbs) == null ? void 0 : _b.call(_a);
|
|
98
|
+
if (!Array.isArray(e2)) return true;
|
|
99
|
+
const t2 = e2.indexOf(this);
|
|
100
|
+
return -1 === t2 || e2.slice(t2 + 1).some((e3) => this.isBreadcrumbVisibleInTrail(e3));
|
|
101
|
+
}
|
|
102
|
+
isBreadcrumbVisibleInTrail(e2) {
|
|
223
103
|
var _a, _b;
|
|
224
|
-
return !(((_a =
|
|
104
|
+
return !(((_a = e2 == null ? void 0 : e2.hasAttribute) == null ? void 0 : _a.call(e2, "collapsed")) && !((_b = e2 == null ? void 0 : e2.hasAttribute) == null ? void 0 : _b.call(e2, "show-collapsed-indicator")));
|
|
225
105
|
}
|
|
226
|
-
/**
|
|
227
|
-
* Synchronizes host attributes to the internal anchor.
|
|
228
|
-
*/
|
|
229
106
|
syncNativeAttributes() {
|
|
230
107
|
var _a;
|
|
231
|
-
const
|
|
232
|
-
if (!
|
|
233
|
-
const
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
}
|
|
240
|
-
["target", "rel", "download"].forEach((attr) => {
|
|
241
|
-
if (this.hasAttribute(attr) && !isDisabled) {
|
|
242
|
-
native.setAttribute(attr, this.getAttribute(attr));
|
|
243
|
-
} else {
|
|
244
|
-
native.removeAttribute(attr);
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
["title", "aria-label"].forEach((attr) => {
|
|
248
|
-
if (this.hasAttribute(attr)) {
|
|
249
|
-
native.setAttribute(attr, this.getAttribute(attr));
|
|
250
|
-
} else {
|
|
251
|
-
native.removeAttribute(attr);
|
|
252
|
-
}
|
|
253
|
-
});
|
|
254
|
-
native.classList.toggle("active", Boolean(this.active));
|
|
255
|
-
native.classList.toggle("disabled", isDisabled);
|
|
256
|
-
if (this.active) native.setAttribute("aria-current", "page");
|
|
257
|
-
else native.removeAttribute("aria-current");
|
|
258
|
-
if (isDisabled) {
|
|
259
|
-
native.setAttribute("aria-disabled", "true");
|
|
260
|
-
native.setAttribute("tabindex", "-1");
|
|
261
|
-
} else {
|
|
262
|
-
native.removeAttribute("aria-disabled");
|
|
263
|
-
native.removeAttribute("tabindex");
|
|
264
|
-
}
|
|
108
|
+
const e2 = this.native || ((_a = this.context) == null ? void 0 : _a.querySelector("a.native-breadcrumb"));
|
|
109
|
+
if (!e2) return;
|
|
110
|
+
const t2 = this.disabled, r2 = this.href;
|
|
111
|
+
null == r2 || t2 ? e2.removeAttribute("href") : e2.setAttribute("href", r2), ["target", "rel", "download"].forEach((r3) => {
|
|
112
|
+
this.hasAttribute(r3) && !t2 ? e2.setAttribute(r3, this.getAttribute(r3)) : e2.removeAttribute(r3);
|
|
113
|
+
}), ["title", "aria-label"].forEach((t3) => {
|
|
114
|
+
this.hasAttribute(t3) ? e2.setAttribute(t3, this.getAttribute(t3)) : e2.removeAttribute(t3);
|
|
115
|
+
}), e2.classList.toggle("active", Boolean(this.active)), e2.classList.toggle("disabled", t2), this.active ? e2.setAttribute("aria-current", "page") : e2.removeAttribute("aria-current"), t2 ? (e2.setAttribute("aria-disabled", "true"), e2.setAttribute("tabindex", "-1")) : (e2.removeAttribute("aria-disabled"), e2.removeAttribute("tabindex"));
|
|
265
116
|
}
|
|
266
|
-
/**
|
|
267
|
-
* Sets up native anchor listeners after render.
|
|
268
|
-
*/
|
|
269
117
|
afterDraw() {
|
|
270
118
|
var _a;
|
|
271
119
|
(_a = this.native) == null ? void 0 : _a.addEventListener("click", this.handleNativeClick);
|
|
272
120
|
}
|
|
273
|
-
/**
|
|
274
|
-
* Removes native anchor listeners before redraw/disconnect.
|
|
275
|
-
*/
|
|
276
121
|
beforeDisconnect() {
|
|
277
122
|
var _a;
|
|
278
123
|
(_a = this.native) == null ? void 0 : _a.removeEventListener("click", this.handleNativeClick);
|
|
279
124
|
}
|
|
280
|
-
|
|
281
|
-
* Prevents disabled breadcrumbs from navigating or bubbling click handlers.
|
|
282
|
-
* @param {MouseEvent} e Click event.
|
|
283
|
-
*/
|
|
284
|
-
handleDisabledNativeClick(e) {
|
|
125
|
+
handleDisabledNativeClick(e2) {
|
|
285
126
|
var _a;
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
e.stopPropagation();
|
|
289
|
-
(_a = e.stopImmediatePropagation) == null ? void 0 : _a.call(e);
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Renders the collapsed indicator based on the current collapsed variant.
|
|
293
|
-
* If the collapsed variant is 'DROPDOWN', it invokes the collapseDropdown method.
|
|
294
|
-
* Mobile breakpoint variants render compact breadcrumb summaries, otherwise the default button is used.
|
|
295
|
-
* @returns {any} The rendered collapsed indicator, either as a dropdown or a button.
|
|
296
|
-
*/
|
|
127
|
+
this.disabled && (e2.preventDefault(), e2.stopPropagation(), (_a = e2.stopImmediatePropagation) == null ? void 0 : _a.call(e2));
|
|
128
|
+
}
|
|
297
129
|
drawCollapsedIndicator() {
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
return this.collapseDropdown();
|
|
301
|
-
}
|
|
302
|
-
if (this.isMobileCollapsedVariant() && this.isBreakpointMenuIndicator()) {
|
|
303
|
-
return this.collapseMobileVariant(variant);
|
|
304
|
-
}
|
|
305
|
-
return this.collapseButton();
|
|
130
|
+
const e2 = this.collapsedVariant;
|
|
131
|
+
return "DROPDOWN" === e2 ? this.collapseDropdown() : this.isMobileCollapsedVariant() && this.isBreakpointMenuIndicator() ? this.collapseMobileVariant(e2) : this.collapseButton();
|
|
306
132
|
}
|
|
307
|
-
/**
|
|
308
|
-
* Returns whether the current collapsed variant is a compact mobile layout.
|
|
309
|
-
* @returns {boolean}
|
|
310
|
-
*/
|
|
311
133
|
isMobileCollapsedVariant() {
|
|
312
|
-
return
|
|
313
|
-
}
|
|
314
|
-
/**
|
|
315
|
-
* Creates and returns a dropdown UI component for collapsed breadcrumbs.
|
|
316
|
-
* This method generates a dropdown element with a button trigger and a menu populated with items corresponding
|
|
317
|
-
* to the collapsed breadcrumbs. The dropdown is configured to handle specific interactions and ensure that
|
|
318
|
-
* events are appropriately managed to avoid propagation issues. Menu items are linked to their corresponding
|
|
319
|
-
* breadcrumbs, enabling the same functionality as clicking on the original breadcrumb.
|
|
320
|
-
* @returns {HTMLElement} A configured dropdown element containing a button as trigger and a menu with breadcrumb items.
|
|
321
|
-
*/
|
|
134
|
+
return a.has(this.collapsedVariant);
|
|
135
|
+
}
|
|
322
136
|
collapseDropdown() {
|
|
323
|
-
const
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
* @param {Array<HTMLElement>} options.breadcrumbs Breadcrumb elements to mirror in the menu.
|
|
336
|
-
* @param {HTMLElement} options.trigger Element assigned to the dropdown trigger slot.
|
|
337
|
-
* @param {string} options.placement Floating UI placement token for the popup.
|
|
338
|
-
* @returns {HTMLElement}
|
|
339
|
-
*/
|
|
340
|
-
createBreadcrumbDropdown({ breadcrumbs, trigger, placement = "bottom" }) {
|
|
341
|
-
const dropdown = document.createElement("wje-dropdown");
|
|
342
|
-
dropdown.setAttribute("placement", placement);
|
|
343
|
-
dropdown.setAttribute("offset", "10");
|
|
344
|
-
const menu = this.createCollapsedBreadcrumbMenu(breadcrumbs);
|
|
345
|
-
dropdown.append(trigger, menu);
|
|
346
|
-
return dropdown;
|
|
347
|
-
}
|
|
348
|
-
/**
|
|
349
|
-
* Creates the menu used by collapsed dropdown variants.
|
|
350
|
-
* @param {Array<HTMLElement>} breadcrumbs Breadcrumb items represented by menu items.
|
|
351
|
-
* @returns {HTMLElement}
|
|
352
|
-
*/
|
|
353
|
-
createCollapsedBreadcrumbMenu(breadcrumbs) {
|
|
354
|
-
const menu = document.createElement("wje-menu");
|
|
355
|
-
menu.setAttribute("variant", "context");
|
|
356
|
-
menu.style.setProperty("--wje-menu-item-justify-content", "flex-start");
|
|
357
|
-
menu.addEventListener("click", (e) => {
|
|
137
|
+
const e2 = this.isBreakpointMenuIndicator(), t2 = this.getCollapsedMenuBreadcrumbs(e2), r2 = this.createCollapsedDropdownTrigger(e2);
|
|
138
|
+
return this.createBreadcrumbDropdown({ breadcrumbs: t2, trigger: r2, placement: e2 ? "bottom-start" : "bottom" });
|
|
139
|
+
}
|
|
140
|
+
createBreadcrumbDropdown({ breadcrumbs: e2, trigger: t2, placement: r2 = "bottom" }) {
|
|
141
|
+
const a2 = document.createElement("wje-dropdown");
|
|
142
|
+
a2.setAttribute("placement", r2), a2.setAttribute("offset", "10");
|
|
143
|
+
const i2 = this.createCollapsedBreadcrumbMenu(e2);
|
|
144
|
+
return a2.append(t2, i2), a2;
|
|
145
|
+
}
|
|
146
|
+
createCollapsedBreadcrumbMenu(e2) {
|
|
147
|
+
const t2 = document.createElement("wje-menu");
|
|
148
|
+
return t2.setAttribute("variant", "context"), t2.style.setProperty("--wje-menu-item-justify-content", "flex-start"), t2.addEventListener("click", (e3) => {
|
|
358
149
|
var _a;
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
const menuItem = document.createElement("wje-menu-item");
|
|
364
|
-
this.populateCollapsedMenuItem(menuItem, breadcrumb);
|
|
365
|
-
menuItem.__breadcrumb = breadcrumb;
|
|
366
|
-
menuItem.addEventListener("wje-menu-item:click", (e) => {
|
|
150
|
+
e3.stopPropagation(), (_a = e3.stopImmediatePropagation) == null ? void 0 : _a.call(e3);
|
|
151
|
+
}), e2.forEach((e3) => {
|
|
152
|
+
const r2 = document.createElement("wje-menu-item");
|
|
153
|
+
this.populateCollapsedMenuItem(r2, e3), r2.__breadcrumb = e3, r2.addEventListener("wje-menu-item:click", (e4) => {
|
|
367
154
|
var _a, _b;
|
|
368
|
-
(_a =
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
menu.append(menuItem);
|
|
374
|
-
});
|
|
375
|
-
return menu;
|
|
376
|
-
}
|
|
377
|
-
/**
|
|
378
|
-
* Returns breadcrumbs that should be exposed in a collapsed menu.
|
|
379
|
-
* @param {boolean} isBreakpointMenuIndicator Whether this trigger controls the full breakpoint menu.
|
|
380
|
-
* @returns {Array<HTMLElement>}
|
|
381
|
-
*/
|
|
382
|
-
getCollapsedMenuBreadcrumbs(isBreakpointMenuIndicator) {
|
|
155
|
+
(_a = e4.preventDefault) == null ? void 0 : _a.call(e4), e4.stopPropagation(), (_b = e4.stopImmediatePropagation) == null ? void 0 : _b.call(e4), this.forwardBreadcrumbClick(e4.currentTarget.__breadcrumb);
|
|
156
|
+
}), t2.append(r2);
|
|
157
|
+
}), t2;
|
|
158
|
+
}
|
|
159
|
+
getCollapsedMenuBreadcrumbs(e2) {
|
|
383
160
|
var _a, _b;
|
|
384
|
-
const
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
return (
|
|
389
|
-
}
|
|
390
|
-
/**
|
|
391
|
-
* Renders one of the compact mobile breakpoint variants.
|
|
392
|
-
* @param {string} variant Normalized uppercase variant token.
|
|
393
|
-
* @returns {HTMLElement}
|
|
394
|
-
*/
|
|
395
|
-
collapseMobileVariant(variant) {
|
|
396
|
-
if (variant === "TEXT") return this.collapseMobileText();
|
|
397
|
-
if (variant === "BACK") return this.collapseMobileBack();
|
|
398
|
-
if (variant === "PARENT-TITLE") return this.collapseMobileParentTitle();
|
|
399
|
-
if (variant === "MENU-TITLE") return this.collapseMobileMenuTitle();
|
|
400
|
-
if (variant === "SHEET") return this.collapseMobileSheet();
|
|
401
|
-
return this.collapseButton();
|
|
402
|
-
}
|
|
403
|
-
/**
|
|
404
|
-
* Renders only the current breadcrumb title.
|
|
405
|
-
* @returns {HTMLElement}
|
|
406
|
-
*/
|
|
161
|
+
const t2 = this.getBreadcrumbs();
|
|
162
|
+
return e2 ? ((_a = t2 == null ? void 0 : t2.getBreadcrumbs) == null ? void 0 : _a.call(t2)) || [] : ((_b = t2 == null ? void 0 : t2.getBreadcrumbsCollapsed) == null ? void 0 : _b.call(t2)) || [];
|
|
163
|
+
}
|
|
164
|
+
collapseMobileVariant(e2) {
|
|
165
|
+
return "TEXT" === e2 ? this.collapseMobileText() : "BACK" === e2 ? this.collapseMobileBack() : "PARENT-TITLE" === e2 ? this.collapseMobileParentTitle() : "MENU-TITLE" === e2 ? this.collapseMobileMenuTitle() : "SHEET" === e2 ? this.collapseMobileSheet() : this.collapseButton();
|
|
166
|
+
}
|
|
407
167
|
collapseMobileText() {
|
|
408
|
-
const
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
ariaCurrent: true,
|
|
412
|
-
actionable: this.isBreadcrumbActionable(current)
|
|
413
|
-
});
|
|
414
|
-
container.append(title);
|
|
415
|
-
return container;
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Renders a parent back action above the current title.
|
|
419
|
-
* @returns {HTMLElement}
|
|
420
|
-
*/
|
|
168
|
+
const e2 = this.getCurrentBreadcrumb(), t2 = this.createMobileContainer("breadcrumb-mobile--text"), r2 = this.createMobileBreadcrumbControl(e2, "breadcrumb-mobile__title", { ariaCurrent: true, actionable: this.isBreadcrumbActionable(e2) });
|
|
169
|
+
return t2.append(r2), t2;
|
|
170
|
+
}
|
|
421
171
|
collapseMobileBack() {
|
|
422
|
-
const
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
const back = this.createMobileBreadcrumbControl(parent, "breadcrumb-mobile__back", {
|
|
427
|
-
ariaLabel: "Go to parent",
|
|
428
|
-
icon: "arrow-left",
|
|
429
|
-
actionable: this.isBreadcrumbActionable(parent)
|
|
430
|
-
});
|
|
431
|
-
container.append(back);
|
|
172
|
+
const e2 = this.getCurrentBreadcrumb(), t2 = this.getParentBreadcrumb(), r2 = this.createMobileContainer("breadcrumb-mobile--back");
|
|
173
|
+
if (t2) {
|
|
174
|
+
const e3 = this.createMobileBreadcrumbControl(t2, "breadcrumb-mobile__back", { ariaLabel: "Go to parent", icon: "arrow-left", actionable: this.isBreadcrumbActionable(t2) });
|
|
175
|
+
r2.append(e3);
|
|
432
176
|
}
|
|
433
|
-
const
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
});
|
|
437
|
-
container.append(title);
|
|
438
|
-
return container;
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* Renders parent context above the current title.
|
|
442
|
-
* @returns {HTMLElement}
|
|
443
|
-
*/
|
|
177
|
+
const a2 = this.createMobileBreadcrumbControl(e2, "breadcrumb-mobile__title", { ariaCurrent: true, actionable: false });
|
|
178
|
+
return r2.append(a2), r2;
|
|
179
|
+
}
|
|
444
180
|
collapseMobileParentTitle() {
|
|
445
|
-
const
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
const parentControl = this.createMobileBreadcrumbControl(parent, "breadcrumb-mobile__parent", {
|
|
450
|
-
actionable: this.isBreadcrumbActionable(parent)
|
|
451
|
-
});
|
|
452
|
-
container.append(parentControl);
|
|
181
|
+
const e2 = this.getCurrentBreadcrumb(), t2 = this.getParentBreadcrumb(), r2 = this.createMobileContainer("breadcrumb-mobile--parent-title");
|
|
182
|
+
if (t2) {
|
|
183
|
+
const e3 = this.createMobileBreadcrumbControl(t2, "breadcrumb-mobile__parent", { actionable: this.isBreadcrumbActionable(t2) });
|
|
184
|
+
r2.append(e3);
|
|
453
185
|
}
|
|
454
|
-
const
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
});
|
|
458
|
-
container.append(title);
|
|
459
|
-
return container;
|
|
460
|
-
}
|
|
461
|
-
/**
|
|
462
|
-
* Renders a menu trigger with the current title.
|
|
463
|
-
* @returns {HTMLElement}
|
|
464
|
-
*/
|
|
186
|
+
const a2 = this.createMobileBreadcrumbControl(e2, "breadcrumb-mobile__title", { ariaCurrent: true, actionable: false });
|
|
187
|
+
return r2.append(a2), r2;
|
|
188
|
+
}
|
|
465
189
|
collapseMobileMenuTitle() {
|
|
466
|
-
const
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
ariaLabel: "Show breadcrumb menu",
|
|
470
|
-
className: "breadcrumb-mobile--menu-title"
|
|
471
|
-
});
|
|
472
|
-
return this.createMobileDropdown(trigger);
|
|
473
|
-
}
|
|
474
|
-
/**
|
|
475
|
-
* Renders the future sheet variant using the dropdown fallback for now.
|
|
476
|
-
* @returns {HTMLElement}
|
|
477
|
-
*/
|
|
190
|
+
const e2 = this.createMobileDropdownTrigger({ icon: "dots", label: this.getBreadcrumbLabel(this.getCurrentBreadcrumb()), ariaLabel: "Show breadcrumb menu", className: "breadcrumb-mobile--menu-title" });
|
|
191
|
+
return this.createMobileDropdown(e2);
|
|
192
|
+
}
|
|
478
193
|
collapseMobileSheet() {
|
|
479
|
-
const
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
* @param {string} options.iconPosition Whether the icon renders at the start or end.
|
|
507
|
-
* @param {string} options.label Current breadcrumb label shown beside the icon.
|
|
508
|
-
* @param {string} options.ariaLabel Accessible name for the dropdown trigger.
|
|
509
|
-
* @param {string} options.className Variant-specific class applied to the trigger.
|
|
510
|
-
* @returns {HTMLElement}
|
|
511
|
-
*/
|
|
512
|
-
createMobileDropdownTrigger({ icon, iconPosition = "start", label, ariaLabel, className }) {
|
|
513
|
-
const trigger = document.createElement("wje-button");
|
|
514
|
-
trigger.setAttribute("slot", "trigger");
|
|
515
|
-
trigger.setAttribute("fill", "link");
|
|
516
|
-
trigger.setAttribute("aria-label", ariaLabel);
|
|
517
|
-
trigger.classList.add("breadcrumb-mobile", "breadcrumb-mobile__menu", className);
|
|
518
|
-
const iconElement = document.createElement("wje-icon");
|
|
519
|
-
iconElement.setAttribute("name", icon);
|
|
520
|
-
iconElement.setAttribute("slot", iconPosition === "end" ? "end" : "start");
|
|
521
|
-
iconElement.classList.add("breadcrumb-mobile__icon");
|
|
522
|
-
const title = document.createElement("span");
|
|
523
|
-
title.classList.add("breadcrumb-mobile__title");
|
|
524
|
-
title.setAttribute("aria-current", "page");
|
|
525
|
-
title.textContent = label;
|
|
526
|
-
if (label) title.setAttribute("title", label);
|
|
527
|
-
if (iconPosition === "end") {
|
|
528
|
-
trigger.append(title, iconElement);
|
|
529
|
-
} else {
|
|
530
|
-
trigger.append(iconElement, title);
|
|
531
|
-
}
|
|
532
|
-
return trigger;
|
|
533
|
-
}
|
|
534
|
-
/**
|
|
535
|
-
* Creates a wrapper for compact mobile breadcrumb variants.
|
|
536
|
-
* @param {string} className Variant class.
|
|
537
|
-
* @returns {HTMLElement}
|
|
538
|
-
*/
|
|
539
|
-
createMobileContainer(className) {
|
|
540
|
-
const container = document.createElement("div");
|
|
541
|
-
container.classList.add("breadcrumb-mobile", className);
|
|
542
|
-
return container;
|
|
543
|
-
}
|
|
544
|
-
/**
|
|
545
|
-
* Creates a text or button control for a breadcrumb.
|
|
546
|
-
* @param {HTMLElement|null} breadcrumb Source breadcrumb.
|
|
547
|
-
* @param {string} className Class applied to the created control.
|
|
548
|
-
* @param {object} options Behavior and accessibility settings for the control.
|
|
549
|
-
* @param {boolean} options.actionable Whether clicks should forward to the source breadcrumb.
|
|
550
|
-
* @param {boolean} options.ariaCurrent Whether the control marks the current page.
|
|
551
|
-
* @param {string} options.ariaLabel Accessible name for action controls.
|
|
552
|
-
* @param {string} options.icon Optional icon shown before the label.
|
|
553
|
-
* @returns {HTMLElement}
|
|
554
|
-
*/
|
|
555
|
-
createMobileBreadcrumbControl(breadcrumb, className, { actionable = false, ariaCurrent = false, ariaLabel, icon } = {}) {
|
|
556
|
-
const label = this.getBreadcrumbLabel(breadcrumb);
|
|
557
|
-
const control = document.createElement(actionable ? "button" : "span");
|
|
558
|
-
control.classList.add(className);
|
|
559
|
-
if (actionable) {
|
|
560
|
-
control.setAttribute("type", "button");
|
|
561
|
-
control.addEventListener("click", (e) => {
|
|
562
|
-
var _a;
|
|
563
|
-
e.preventDefault();
|
|
564
|
-
e.stopPropagation();
|
|
565
|
-
(_a = e.stopImmediatePropagation) == null ? void 0 : _a.call(e);
|
|
566
|
-
this.forwardBreadcrumbClick(breadcrumb);
|
|
567
|
-
});
|
|
568
|
-
}
|
|
569
|
-
if (ariaCurrent) control.setAttribute("aria-current", "page");
|
|
570
|
-
if (ariaLabel && actionable) control.setAttribute("aria-label", ariaLabel);
|
|
571
|
-
if (label) control.setAttribute("title", label);
|
|
572
|
-
if (icon) {
|
|
573
|
-
const iconElement = document.createElement("wje-icon");
|
|
574
|
-
iconElement.setAttribute("name", icon);
|
|
575
|
-
iconElement.classList.add("breadcrumb-mobile__icon");
|
|
576
|
-
control.append(iconElement);
|
|
194
|
+
const e2 = this.createMobileDropdownTrigger({ icon: "chevron-down", iconPosition: "end", label: this.getBreadcrumbLabel(this.getCurrentBreadcrumb()), ariaLabel: "Show breadcrumb path", className: "breadcrumb-mobile--sheet" });
|
|
195
|
+
return this.createMobileDropdown(e2);
|
|
196
|
+
}
|
|
197
|
+
createMobileDropdown(e2) {
|
|
198
|
+
const t2 = this.createBreadcrumbDropdown({ breadcrumbs: this.getTrailBreadcrumbs(), trigger: e2, placement: "bottom-start" });
|
|
199
|
+
return t2.classList.add("breadcrumb-mobile-dropdown"), t2;
|
|
200
|
+
}
|
|
201
|
+
createMobileDropdownTrigger({ icon: e2, iconPosition: t2 = "start", label: r2, ariaLabel: a2, className: i2 }) {
|
|
202
|
+
const o = document.createElement("wje-button");
|
|
203
|
+
o.setAttribute("slot", "trigger"), o.setAttribute("fill", "link"), o.setAttribute("label", a2), o.classList.add("breadcrumb-mobile", "breadcrumb-mobile__menu", i2);
|
|
204
|
+
const n = document.createElement("wje-icon");
|
|
205
|
+
n.setAttribute("name", e2), n.setAttribute("slot", "end" === t2 ? "end" : "start"), n.classList.add("breadcrumb-mobile__icon");
|
|
206
|
+
const s = document.createElement("span");
|
|
207
|
+
return s.classList.add("breadcrumb-mobile__title"), s.setAttribute("aria-current", "page"), s.textContent = r2, r2 && s.setAttribute("title", r2), "end" === t2 ? o.append(s, n) : o.append(n, s), o;
|
|
208
|
+
}
|
|
209
|
+
createMobileContainer(e2) {
|
|
210
|
+
const t2 = document.createElement("div");
|
|
211
|
+
return t2.classList.add("breadcrumb-mobile", e2), t2;
|
|
212
|
+
}
|
|
213
|
+
createMobileBreadcrumbControl(e2, t2, { actionable: r2 = false, ariaCurrent: a2 = false, ariaLabel: i2, icon: o } = {}) {
|
|
214
|
+
const n = this.getBreadcrumbLabel(e2), s = document.createElement(r2 ? "button" : "span");
|
|
215
|
+
if (s.classList.add(t2), r2 && (s.setAttribute("type", "button"), s.addEventListener("click", (t3) => {
|
|
216
|
+
var _a;
|
|
217
|
+
t3.preventDefault(), t3.stopPropagation(), (_a = t3.stopImmediatePropagation) == null ? void 0 : _a.call(t3), this.forwardBreadcrumbClick(e2);
|
|
218
|
+
})), a2 && s.setAttribute("aria-current", "page"), i2 && r2 && s.setAttribute("aria-label", i2), n && s.setAttribute("title", n), o) {
|
|
219
|
+
const e3 = document.createElement("wje-icon");
|
|
220
|
+
e3.setAttribute("name", o), e3.classList.add("breadcrumb-mobile__icon"), s.append(e3);
|
|
577
221
|
}
|
|
578
|
-
const
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
control.append(text);
|
|
582
|
-
return control;
|
|
583
|
-
}
|
|
584
|
-
/**
|
|
585
|
-
* Returns the full trail of sibling breadcrumbs.
|
|
586
|
-
* @returns {Array<HTMLElement>}
|
|
587
|
-
*/
|
|
222
|
+
const l = document.createElement("span");
|
|
223
|
+
return l.classList.add("breadcrumb-mobile__label"), l.textContent = n, s.append(l), s;
|
|
224
|
+
}
|
|
588
225
|
getTrailBreadcrumbs() {
|
|
589
226
|
var _a, _b;
|
|
590
227
|
return ((_b = (_a = this.getBreadcrumbs()) == null ? void 0 : _a.getBreadcrumbs) == null ? void 0 : _b.call(_a)) || [];
|
|
591
228
|
}
|
|
592
|
-
/**
|
|
593
|
-
* Returns the current breadcrumb item.
|
|
594
|
-
* @returns {HTMLElement|null}
|
|
595
|
-
*/
|
|
596
229
|
getCurrentBreadcrumb() {
|
|
597
|
-
const
|
|
598
|
-
return
|
|
230
|
+
const e2 = this.getTrailBreadcrumbs();
|
|
231
|
+
return e2[e2.length - 1] || null;
|
|
599
232
|
}
|
|
600
|
-
/**
|
|
601
|
-
* Returns the parent breadcrumb item.
|
|
602
|
-
* @returns {HTMLElement|null}
|
|
603
|
-
*/
|
|
604
233
|
getParentBreadcrumb() {
|
|
605
|
-
const
|
|
606
|
-
return
|
|
607
|
-
}
|
|
608
|
-
|
|
609
|
-
* Returns whether a breadcrumb has a known action to forward.
|
|
610
|
-
* @param {HTMLElement|null} breadcrumb Breadcrumb to inspect.
|
|
611
|
-
* @returns {boolean}
|
|
612
|
-
*/
|
|
613
|
-
isBreadcrumbActionable(breadcrumb) {
|
|
234
|
+
const e2 = this.getTrailBreadcrumbs();
|
|
235
|
+
return e2.length > 1 ? e2[e2.length - 2] : null;
|
|
236
|
+
}
|
|
237
|
+
isBreadcrumbActionable(e2) {
|
|
614
238
|
var _a, _b, _c, _d;
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
);
|
|
619
|
-
}
|
|
620
|
-
/**
|
|
621
|
-
* Forwards a compact control or menu item click to the original breadcrumb.
|
|
622
|
-
* @param {HTMLElement|null} breadcrumb Source breadcrumb.
|
|
623
|
-
*/
|
|
624
|
-
forwardBreadcrumbClick(breadcrumb) {
|
|
239
|
+
return !(!e2 || e2.disabled || ((_a = e2.hasAttribute) == null ? void 0 : _a.call(e2, "disabled"))) && Boolean(((_b = e2.hasAttribute) == null ? void 0 : _b.call(e2, "href")) || ((_c = e2.hasAttribute) == null ? void 0 : _c.call(e2, "onclick")) || e2.__wjeBreadcrumbManaged || ((_d = e2.hasAttribute) == null ? void 0 : _d.call(e2, "data-wje-breadcrumbs-item")));
|
|
240
|
+
}
|
|
241
|
+
forwardBreadcrumbClick(e2) {
|
|
625
242
|
var _a;
|
|
626
|
-
if (!
|
|
627
|
-
const
|
|
628
|
-
|
|
629
|
-
native.click();
|
|
630
|
-
} else if (typeof breadcrumb.click === "function") {
|
|
631
|
-
breadcrumb.click();
|
|
632
|
-
} else {
|
|
633
|
-
breadcrumb.dispatchEvent(
|
|
634
|
-
new MouseEvent("click", {
|
|
635
|
-
bubbles: true,
|
|
636
|
-
composed: true,
|
|
637
|
-
cancelable: true
|
|
638
|
-
})
|
|
639
|
-
);
|
|
640
|
-
}
|
|
243
|
+
if (!e2) return;
|
|
244
|
+
const t2 = e2.native || ((_a = e2.context) == null ? void 0 : _a.querySelector("a.native-breadcrumb"));
|
|
245
|
+
t2 && "function" == typeof t2.click ? t2.click() : "function" == typeof e2.click ? e2.click() : e2.dispatchEvent(new MouseEvent("click", { bubbles: true, composed: true, cancelable: true }));
|
|
641
246
|
}
|
|
642
|
-
|
|
643
|
-
* Creates the dropdown trigger for collapsed breadcrumbs.
|
|
644
|
-
* @param {boolean} isBreakpointMenuIndicator Whether this trigger controls the full breakpoint menu.
|
|
645
|
-
* @returns {HTMLElement}
|
|
646
|
-
*/
|
|
647
|
-
createCollapsedDropdownTrigger(isBreakpointMenuIndicator) {
|
|
247
|
+
createCollapsedDropdownTrigger(e2) {
|
|
648
248
|
var _a, _b;
|
|
649
|
-
if (
|
|
650
|
-
const
|
|
651
|
-
if (
|
|
652
|
-
const
|
|
653
|
-
|
|
654
|
-
if (!trigger.hasAttribute("aria-label")) {
|
|
655
|
-
trigger.setAttribute("aria-label", "Show breadcrumb menu");
|
|
656
|
-
}
|
|
657
|
-
return trigger;
|
|
249
|
+
if (e2) {
|
|
250
|
+
const e3 = (_b = (_a = this.getBreadcrumbs()) == null ? void 0 : _a.getBreakpointCollapseTrigger) == null ? void 0 : _b.call(_a);
|
|
251
|
+
if (e3) {
|
|
252
|
+
const t3 = e3.cloneNode(true);
|
|
253
|
+
return t3.setAttribute("slot", "trigger"), "wje-button" === t3.localName ? t3.hasAttribute("label") || t3.hasAttribute("aria-label") || t3.setAttribute("label", "Show breadcrumb menu") : t3.hasAttribute("aria-label") || t3.setAttribute("aria-label", "Show breadcrumb menu"), t3;
|
|
658
254
|
}
|
|
659
255
|
}
|
|
660
|
-
let
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
button.innerHTML = `<wje-icon name="${this.getCollapsedDropdownIcon(isBreakpointMenuIndicator)}"></wje-icon>`;
|
|
665
|
-
return button;
|
|
666
|
-
}
|
|
667
|
-
/**
|
|
668
|
-
* Resolves the icon used by the default dropdown trigger.
|
|
669
|
-
* @param {boolean} isBreakpointMenuIndicator Whether this trigger controls the full breakpoint menu.
|
|
670
|
-
* @returns {string}
|
|
671
|
-
*/
|
|
672
|
-
getCollapsedDropdownIcon(isBreakpointMenuIndicator) {
|
|
256
|
+
let t2 = document.createElement("wje-button");
|
|
257
|
+
return t2.setAttribute("slot", "trigger"), t2.setAttribute("fill", "link"), t2.setAttribute("label", "Show more breadcrumbs"), t2.innerHTML = `<wje-icon name="${this.getCollapsedDropdownIcon(e2)}"></wje-icon>`, t2;
|
|
258
|
+
}
|
|
259
|
+
getCollapsedDropdownIcon(e2) {
|
|
673
260
|
var _a;
|
|
674
|
-
|
|
675
|
-
return ((_a = this.getBreadcrumbs()) == null ? void 0 : _a.breakpointCollapseIcon) || "menu";
|
|
676
|
-
}
|
|
677
|
-
/**
|
|
678
|
-
* Copies breadcrumb content into a collapsed menu item.
|
|
679
|
-
* @param {HTMLElement} menuItem Menu item receiving the content.
|
|
680
|
-
* @param {HTMLElement} breadcrumb Source breadcrumb.
|
|
681
|
-
*/
|
|
682
|
-
populateCollapsedMenuItem(menuItem, breadcrumb) {
|
|
683
|
-
const nodes = Array.from(breadcrumb.childNodes).map((node) => node.cloneNode(true));
|
|
684
|
-
menuItem.replaceChildren(...nodes);
|
|
685
|
-
if (menuItem.textContent.trim()) return;
|
|
686
|
-
const label = this.getBreadcrumbLabel(breadcrumb);
|
|
687
|
-
if (label) {
|
|
688
|
-
menuItem.append(document.createTextNode(label));
|
|
689
|
-
}
|
|
261
|
+
return e2 ? ((_a = this.getBreadcrumbs()) == null ? void 0 : _a.breakpointCollapseIcon) || "menu" : "dots";
|
|
690
262
|
}
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
return this.getCollapsedMenuItemLabel(
|
|
699
|
-
}
|
|
700
|
-
|
|
701
|
-
* Resolves a readable label for icon-only collapsed menu items.
|
|
702
|
-
* @param {HTMLElement} breadcrumb Source breadcrumb.
|
|
703
|
-
* @returns {string}
|
|
704
|
-
*/
|
|
705
|
-
getCollapsedMenuItemLabel(breadcrumb) {
|
|
263
|
+
populateCollapsedMenuItem(e2, t2) {
|
|
264
|
+
const r2 = Array.from(t2.childNodes).map((e3) => e3.cloneNode(true));
|
|
265
|
+
if (e2.replaceChildren(...r2), e2.textContent.trim()) return;
|
|
266
|
+
const a2 = this.getBreadcrumbLabel(t2);
|
|
267
|
+
a2 && e2.append(document.createTextNode(a2));
|
|
268
|
+
}
|
|
269
|
+
getBreadcrumbLabel(e2) {
|
|
270
|
+
return e2 ? this.getCollapsedMenuItemLabel(e2) : "";
|
|
271
|
+
}
|
|
272
|
+
getCollapsedMenuItemLabel(e2) {
|
|
706
273
|
var _a;
|
|
707
|
-
const
|
|
708
|
-
if (
|
|
709
|
-
const
|
|
710
|
-
if (
|
|
711
|
-
const
|
|
712
|
-
if (
|
|
713
|
-
const
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
* Turns a URL segment into a readable menu label.
|
|
720
|
-
* @param {string} value URL segment.
|
|
721
|
-
* @returns {string}
|
|
722
|
-
*/
|
|
723
|
-
humanizeCollapsedMenuItemLabel(value) {
|
|
724
|
-
return decodeURIComponent(value).replace(/[-_]+/g, " ").replace(/\b\w/g, (letter) => letter.toUpperCase());
|
|
725
|
-
}
|
|
726
|
-
/**
|
|
727
|
-
* Returns whether this collapsed indicator represents the full breakpoint menu.
|
|
728
|
-
* @returns {boolean}
|
|
729
|
-
*/
|
|
274
|
+
const t2 = e2.getAttribute("aria-label") || e2.getAttribute("title");
|
|
275
|
+
if (t2 == null ? void 0 : t2.trim()) return t2.trim();
|
|
276
|
+
const r2 = e2.textContent.trim();
|
|
277
|
+
if (r2) return r2;
|
|
278
|
+
const a2 = (_a = e2.querySelector('wje-icon[slot="start"]')) == null ? void 0 : _a.getAttribute("name");
|
|
279
|
+
if ("home" === a2) return "Home";
|
|
280
|
+
const i2 = e2.getAttribute("href"), o = ((i2 == null ? void 0 : i2.split(/[?#]/)[0]) || "").split("/").filter(Boolean).pop();
|
|
281
|
+
return o ? this.humanizeCollapsedMenuItemLabel(o) : "";
|
|
282
|
+
}
|
|
283
|
+
humanizeCollapsedMenuItemLabel(e2) {
|
|
284
|
+
return decodeURIComponent(e2).replace(/[-_]+/g, " ").replace(/\b\w/g, (e3) => e3.toUpperCase());
|
|
285
|
+
}
|
|
730
286
|
isBreakpointMenuIndicator() {
|
|
731
287
|
var _a;
|
|
732
|
-
const
|
|
733
|
-
return this.hasAttribute("show-collapsed-indicator") && this.hasAttribute("collapsed") && ((_a =
|
|
734
|
-
}
|
|
735
|
-
/**
|
|
736
|
-
* Creates a button element that expands hidden breadcrumbs when clicked.
|
|
737
|
-
* The button is set with appropriate attributes and event listeners to handle
|
|
738
|
-
* the expanding of hidden breadcrumb elements. Clicking the button will remove
|
|
739
|
-
* the button itself, reveal hidden breadcrumbs, and stop the current event
|
|
740
|
-
* propagation.
|
|
741
|
-
* @returns {HTMLButtonElement} The created button configured to expand breadcrumbs.
|
|
742
|
-
*/
|
|
288
|
+
const e2 = this.parentElement;
|
|
289
|
+
return this.hasAttribute("show-collapsed-indicator") && this.hasAttribute("collapsed") && ((_a = e2 == null ? void 0 : e2.isBreakpointMenuCollapseActive) == null ? void 0 : _a.call(e2));
|
|
290
|
+
}
|
|
743
291
|
collapseButton() {
|
|
744
|
-
let
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
this.getBreadcrumbs().getBreadcrumbsCollapsed().forEach((el) => {
|
|
752
|
-
el.classList.remove("collapsed");
|
|
753
|
-
});
|
|
754
|
-
e.stopPropagation();
|
|
755
|
-
});
|
|
756
|
-
return button;
|
|
757
|
-
}
|
|
758
|
-
/**
|
|
759
|
-
* Retrieves the breadcrumb trail for the current element by returning its parent element.
|
|
760
|
-
* @returns {Element} The parent element representing the breadcrumb trail.
|
|
761
|
-
*/
|
|
292
|
+
let e2 = document.createElement("button");
|
|
293
|
+
return e2.setAttribute("aria-label", "Show more breadcrumbs"), e2.setAttribute("part", "collapsed-indicator"), e2.innerHTML = '<wje-icon name="dots"></wje-icon>', r.addListener(e2, "click", null, (t2) => {
|
|
294
|
+
this.native.classList.remove("hidden"), e2.remove(), this.getBreadcrumbs().getBreadcrumbsCollapsed().forEach((e3) => {
|
|
295
|
+
e3.classList.remove("collapsed");
|
|
296
|
+
}), t2.stopPropagation();
|
|
297
|
+
}), e2;
|
|
298
|
+
}
|
|
762
299
|
getBreadcrumbs() {
|
|
763
300
|
return this.parentElement;
|
|
764
301
|
}
|
|
765
302
|
}
|
|
766
|
-
|
|
303
|
+
i.define("wje-breadcrumb", i);
|
|
767
304
|
export {
|
|
768
|
-
|
|
305
|
+
i as default
|
|
769
306
|
};
|
|
770
307
|
//# sourceMappingURL=wje-breadcrumb.js.map
|