@roadtrip/components 3.30.0 → 3.31.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.
Files changed (68) hide show
  1. package/dist/cjs/index-12592729.js +16 -0
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/road-badge_14.cjs.entry.js +2 -2
  4. package/dist/cjs/road-badge_14.cjs.entry.js.map +1 -1
  5. package/dist/cjs/road-global-navigation-v2.cjs.entry.js +146 -0
  6. package/dist/cjs/road-global-navigation-v2.cjs.entry.js.map +1 -0
  7. package/dist/cjs/road-navbar-item-v2.cjs.entry.js +83 -0
  8. package/dist/cjs/road-navbar-item-v2.cjs.entry.js.map +1 -0
  9. package/dist/cjs/road-navbar-v2.cjs.entry.js +46 -0
  10. package/dist/cjs/road-navbar-v2.cjs.entry.js.map +1 -0
  11. package/dist/cjs/road-toolbar-v2.cjs.entry.js +21 -0
  12. package/dist/cjs/road-toolbar-v2.cjs.entry.js.map +1 -0
  13. package/dist/cjs/roadtrip.cjs.js +1 -1
  14. package/dist/collection/collection-manifest.json +4 -0
  15. package/dist/collection/components/drawer/drawer.css +1 -0
  16. package/dist/collection/components/global-navigation-v2/global-navigation-v2.css +14 -0
  17. package/dist/collection/components/global-navigation-v2/global-navigation-v2.js +231 -0
  18. package/dist/collection/components/global-navigation-v2/global-navigation-v2.js.map +1 -0
  19. package/dist/collection/components/global-navigation-v2/global-navigation-v2.stories.js +446 -0
  20. package/dist/collection/components/icon/icon.css +1 -1
  21. package/dist/collection/components/navbar-item-v2/navbar-item-v2.css +221 -0
  22. package/dist/collection/components/navbar-item-v2/navbar-item-v2.js +268 -0
  23. package/dist/collection/components/navbar-item-v2/navbar-item-v2.js.map +1 -0
  24. package/dist/collection/components/navbar-v2/navbar-v2.css +113 -0
  25. package/dist/collection/components/navbar-v2/navbar-v2.js +143 -0
  26. package/dist/collection/components/navbar-v2/navbar-v2.js.map +1 -0
  27. package/dist/collection/components/navbar-v2/navbar-v2.stories.js +381 -0
  28. package/dist/collection/components/toolbar-v2/toolbar-v2.css +216 -0
  29. package/dist/collection/components/toolbar-v2/toolbar-v2.js +27 -0
  30. package/dist/collection/components/toolbar-v2/toolbar-v2.js.map +1 -0
  31. package/dist/collection/components/toolbar-v2/toolbar-v2.stories.js +90 -0
  32. package/dist/esm/index-52302079.js +16 -0
  33. package/dist/esm/loader.js +1 -1
  34. package/dist/esm/road-badge_14.entry.js +2 -2
  35. package/dist/esm/road-badge_14.entry.js.map +1 -1
  36. package/dist/esm/road-global-navigation-v2.entry.js +142 -0
  37. package/dist/esm/road-global-navigation-v2.entry.js.map +1 -0
  38. package/dist/esm/road-navbar-item-v2.entry.js +79 -0
  39. package/dist/esm/road-navbar-item-v2.entry.js.map +1 -0
  40. package/dist/esm/road-navbar-v2.entry.js +42 -0
  41. package/dist/esm/road-navbar-v2.entry.js.map +1 -0
  42. package/dist/esm/road-toolbar-v2.entry.js +17 -0
  43. package/dist/esm/road-toolbar-v2.entry.js.map +1 -0
  44. package/dist/esm/roadtrip.js +1 -1
  45. package/dist/html.html-data.json +99 -0
  46. package/dist/roadtrip/p-586a101a.entry.js +2 -0
  47. package/dist/roadtrip/p-586a101a.entry.js.map +1 -0
  48. package/dist/roadtrip/p-5bf1b477.entry.js +2 -0
  49. package/dist/roadtrip/p-5bf1b477.entry.js.map +1 -0
  50. package/dist/roadtrip/p-5cdf4e2f.entry.js +2 -0
  51. package/dist/roadtrip/p-5cdf4e2f.entry.js.map +1 -0
  52. package/dist/roadtrip/p-a498e8eb.entry.js +2 -0
  53. package/dist/roadtrip/p-a498e8eb.entry.js.map +1 -0
  54. package/dist/roadtrip/p-e2e3aa1a.entry.js +2 -0
  55. package/dist/roadtrip/p-e2e3aa1a.entry.js.map +1 -0
  56. package/dist/roadtrip/roadtrip.css +1 -1
  57. package/dist/roadtrip/roadtrip.esm.js +1 -1
  58. package/dist/roadtrip/roadtrip.esm.js.map +1 -1
  59. package/dist/types/components/global-navigation-v2/global-navigation-v2.d.ts +32 -0
  60. package/dist/types/components/navbar-item-v2/navbar-item-v2.d.ts +61 -0
  61. package/dist/types/components/navbar-v2/navbar-v2.d.ts +23 -0
  62. package/dist/types/components/toolbar-v2/toolbar-v2.d.ts +11 -0
  63. package/dist/types/components-react.d.ts +81 -0
  64. package/dist/types/components.d.ts +180 -0
  65. package/hydrate/index.js +330 -4
  66. package/package.json +1 -1
  67. package/dist/roadtrip/p-1115f970.entry.js +0 -2
  68. package/dist/roadtrip/p-1115f970.entry.js.map +0 -1
@@ -0,0 +1,231 @@
1
+ import { Host, h } from "@stencil/core";
2
+ import "./../../utils/polyfill";
3
+ /**
4
+ * @slot navbar - it should be road-navbar-item elements. Max 5 items on Mobile or add them to the drawer
5
+ */
6
+ export class GlobalNavigationV2 {
7
+ constructor() {
8
+ this.selectedTab = undefined;
9
+ }
10
+ selectedTabChanged() {
11
+ if (this.selectedTab !== undefined) {
12
+ this.roadnavbarchanged.emit({
13
+ tab: this.selectedTab,
14
+ });
15
+ this.roadNavbarChanged.emit({
16
+ tab: this.selectedTab,
17
+ });
18
+ }
19
+ }
20
+ onNavbarChanged(ev) {
21
+ this.selectedTab = ev.detail.tab;
22
+ }
23
+ /** Toggles the compact attribute on <road-navbar-v2> */
24
+ toggleCompactMode() {
25
+ const navbar = this.host.querySelector('road-navbar-v2');
26
+ const toolbar = this.host.querySelector('road-toolbar-v2');
27
+ // Toggle "compact" attribute on <road-navbar-v2>
28
+ if (navbar) {
29
+ if (navbar.hasAttribute('compact')) {
30
+ navbar.removeAttribute('compact');
31
+ }
32
+ else {
33
+ navbar.setAttribute('compact', 'true');
34
+ }
35
+ }
36
+ else {
37
+ console.warn('<road-navbar-v2> not found inside <road-global-navigation-v2>');
38
+ }
39
+ // Replace class "toolbar" with "toolbar-compact" on <road-toolbar-v2>
40
+ if (toolbar) {
41
+ if (toolbar.classList.contains('toolbar-compact')) {
42
+ toolbar.classList.remove('toolbar-compact');
43
+ toolbar.classList.add('toolbar');
44
+ }
45
+ else {
46
+ toolbar.classList.remove('toolbar');
47
+ toolbar.classList.add('toolbar-compact');
48
+ }
49
+ }
50
+ else {
51
+ console.warn('<road-toolbar-v2> not found inside <road-global-navigation-v2>');
52
+ }
53
+ }
54
+ /** Toggles the "justify-content-center" class on the element with "compact-logo" */
55
+ toggleCompactLogoClass() {
56
+ const logoElement = this.host.querySelector('.compact-logo');
57
+ if (logoElement) {
58
+ if (logoElement.classList.contains('justify-content-center')) {
59
+ logoElement.classList.remove('justify-content-center');
60
+ }
61
+ else {
62
+ logoElement.classList.add('justify-content-center');
63
+ }
64
+ }
65
+ else {
66
+ console.warn('Element with class "compact-logo" not found inside <road-global-navigation-v2>');
67
+ }
68
+ }
69
+ /** Toggles the "rotate" attribute on the <road-icon> inside the <road-button> */
70
+ toggleIconRotation(button) {
71
+ const icon = button.querySelector('road-icon');
72
+ if (icon) {
73
+ if (icon.getAttribute('rotate') === '180') {
74
+ icon.removeAttribute('rotate');
75
+ }
76
+ else {
77
+ icon.setAttribute('rotate', '180');
78
+ }
79
+ }
80
+ else {
81
+ console.warn('<road-icon> not found inside <road-button>');
82
+ }
83
+ }
84
+ /** Toggles the "trigger" attribute on <road-tooltip> elements based on the presence of the "compact" attribute on <road-navbar-v2> */
85
+ toggleTooltips() {
86
+ const navbar = this.host.querySelector('road-navbar-v2');
87
+ if (navbar) {
88
+ const hasCompactAttribute = navbar.hasAttribute('compact');
89
+ const tooltips = navbar.querySelectorAll('road-tooltip');
90
+ if (tooltips.length > 0) {
91
+ // Mettre à jour l'attribut "trigger" en fonction de l'attribut "compact"
92
+ tooltips.forEach((tooltip) => {
93
+ if (hasCompactAttribute) {
94
+ tooltip.setAttribute('trigger', 'hover'); // Définir sur "hover" si "compact" est présent
95
+ }
96
+ else {
97
+ tooltip.setAttribute('trigger', 'focus'); // Définir sur "focus" si "compact" est absent
98
+ }
99
+ });
100
+ }
101
+ else {
102
+ console.warn('<road-tooltip> elements not found inside <road-navbar-v2>.');
103
+ }
104
+ }
105
+ else {
106
+ console.warn('<road-navbar-v2> not found inside <road-global-navigation-v2>.');
107
+ }
108
+ }
109
+ /** Toggles the compact mode and performs all related updates */
110
+ /** Handles click events on road-button or its children */
111
+ onButtonClick(event) {
112
+ let target = event.target;
113
+ // Traverse up the DOM tree to find the parent road-button
114
+ while (target && target.tagName !== 'ROAD-BUTTON' && target !== document.body) {
115
+ target = target.parentElement;
116
+ }
117
+ if ((target === null || target === void 0 ? void 0 : target.tagName) === 'ROAD-BUTTON' && target.classList.contains('compact-button')) {
118
+ this.toggleCompactMode();
119
+ this.toggleIconRotation(target);
120
+ this.toggleCompactLogoClass();
121
+ this.toggleTooltips();
122
+ }
123
+ }
124
+ componentWillLoad() {
125
+ this.selectedTabChanged();
126
+ }
127
+ render() {
128
+ return (h(Host, { role: "application" }, h("slot", null)));
129
+ }
130
+ static get is() { return "road-global-navigation-v2"; }
131
+ static get encapsulation() { return "shadow"; }
132
+ static get originalStyleUrls() {
133
+ return {
134
+ "$": ["global-navigation-v2.css"]
135
+ };
136
+ }
137
+ static get styleUrls() {
138
+ return {
139
+ "$": ["global-navigation-v2.css"]
140
+ };
141
+ }
142
+ static get properties() {
143
+ return {
144
+ "selectedTab": {
145
+ "type": "string",
146
+ "mutable": false,
147
+ "complexType": {
148
+ "original": "string",
149
+ "resolved": "string | undefined",
150
+ "references": {}
151
+ },
152
+ "required": false,
153
+ "optional": true,
154
+ "docs": {
155
+ "tags": [],
156
+ "text": "The selected tab component"
157
+ },
158
+ "attribute": "selected-tab",
159
+ "reflect": false
160
+ }
161
+ };
162
+ }
163
+ static get events() {
164
+ return [{
165
+ "method": "roadnavbarchanged",
166
+ "name": "roadnavbarchanged",
167
+ "bubbles": true,
168
+ "cancelable": true,
169
+ "composed": true,
170
+ "docs": {
171
+ "tags": [{
172
+ "name": "internal",
173
+ "text": undefined
174
+ }],
175
+ "text": ""
176
+ },
177
+ "complexType": {
178
+ "original": "any",
179
+ "resolved": "any",
180
+ "references": {}
181
+ }
182
+ }, {
183
+ "method": "roadNavbarChanged",
184
+ "name": "roadNavbarChanged",
185
+ "bubbles": true,
186
+ "cancelable": true,
187
+ "composed": true,
188
+ "docs": {
189
+ "tags": [{
190
+ "name": "internal",
191
+ "text": undefined
192
+ }],
193
+ "text": ""
194
+ },
195
+ "complexType": {
196
+ "original": "any",
197
+ "resolved": "any",
198
+ "references": {}
199
+ }
200
+ }];
201
+ }
202
+ static get elementRef() { return "host"; }
203
+ static get watchers() {
204
+ return [{
205
+ "propName": "selectedTab",
206
+ "methodName": "selectedTabChanged"
207
+ }];
208
+ }
209
+ static get listeners() {
210
+ return [{
211
+ "name": "roadNavbarItemClick",
212
+ "method": "onNavbarChanged",
213
+ "target": undefined,
214
+ "capture": false,
215
+ "passive": false
216
+ }, {
217
+ "name": "roadnavbaritemclick",
218
+ "method": "onNavbarChanged",
219
+ "target": undefined,
220
+ "capture": false,
221
+ "passive": false
222
+ }, {
223
+ "name": "click",
224
+ "method": "onButtonClick",
225
+ "target": "window",
226
+ "capture": false,
227
+ "passive": false
228
+ }];
229
+ }
230
+ }
231
+ //# sourceMappingURL=global-navigation-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-navigation-v2.js","sourceRoot":"","sources":["../../../src/components/global-navigation-v2/global-navigation-v2.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAgB,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACtG,OAAO,wBAAwB,CAAC;AAEhC;;GAEG;AAMH,MAAM,OAAO,kBAAkB;;;;EAM7B,kBAAkB;IAChB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;MAClC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC1B,GAAG,EAAE,IAAI,CAAC,WAAW;OACtB,CAAC,CAAC;MACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC1B,GAAG,EAAE,IAAI,CAAC,WAAW;OACtB,CAAC,CAAC;KACJ;EACH,CAAC;EAYD,eAAe,CAAC,EAAe;IAC7B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;EACnC,CAAC;EAED,wDAAwD;EAChD,iBAAiB;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAE3D,iDAAiD;IACjD,IAAI,MAAM,EAAE;MACV,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;QAClC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;OACnC;WAAM;QACL,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;OACxC;KACF;SAAM;MACL,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;KAC/E;IAED,sEAAsE;IACtE,IAAI,OAAO,EAAE;MACX,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;QACjD,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC5C,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;OAClC;WAAM;QACL,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;OAC1C;KACF;SAAM;MACL,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;KAChF;EACH,CAAC;EAED,oFAAoF;EAC5E,sBAAsB;IAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAC7D,IAAI,WAAW,EAAE;MACf,IAAI,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;QAC5D,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;OACxD;WAAM;QACL,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;OACrD;KACF;SAAM;MACL,OAAO,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;KAChG;EACH,CAAC;EAED,iFAAiF;EACzE,kBAAkB,CAAC,MAAmB;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,IAAI,EAAE;MACR,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE;QACzC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;OAChC;WAAM;QACL,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;OACpC;KACF;SAAM;MACL,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;KAC5D;EACH,CAAC;EAEH,sIAAsI;EAC9H,cAAc;IACpB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACzD,IAAI,MAAM,EAAE;MACV,MAAM,mBAAmB,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;MAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;MAEzD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,yEAAyE;QACzE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;UAC3B,IAAI,mBAAmB,EAAE;YACvB,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,+CAA+C;WAC1F;eAAM;YACL,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,8CAA8C;WACzF;QACH,CAAC,CAAC,CAAC;OACJ;WAAM;QACL,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;OAC5E;KACF;SAAM;MACL,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;KAChF;EACH,CAAC;EASG,gEAAgE;EAElE,0DAA0D;EAE1D,aAAa,CAAC,KAAiB;IAC7B,IAAI,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;IAEzC,0DAA0D;IAC1D,OAAO,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,EAAE;MAC7E,MAAM,GAAG,MAAM,CAAC,aAA4B,CAAC;KAC9C;IAED,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,MAAK,aAAa,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;MACpF,IAAI,CAAC,iBAAiB,EAAE,CAAC;MACzB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;MAChC,IAAI,CAAC,sBAAsB,EAAE,CAAC;MAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;EACH,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;EAC5B,CAAC;EAED,MAAM;IACJ,OAAO,CACL,EAAC,IAAI,IAAC,IAAI,EAAC,aAAa;MACtB,eAAQ,CACH,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop, Watch, Event, EventEmitter, Listen, Element } from '@stencil/core';\nimport './../../utils/polyfill';\n\n/**\n * @slot navbar - it should be road-navbar-item elements. Max 5 items on Mobile or add them to the drawer\n */\n@Component({\n tag: 'road-global-navigation-v2',\n styleUrl: 'global-navigation-v2.css',\n shadow: true,\n})\nexport class GlobalNavigationV2 {\n /**\n * The selected tab component\n */\n @Prop() selectedTab?: string;\n @Watch('selectedTab')\n selectedTabChanged() {\n if (this.selectedTab !== undefined) {\n this.roadnavbarchanged.emit({\n tab: this.selectedTab,\n });\n this.roadNavbarChanged.emit({\n tab: this.selectedTab,\n });\n }\n }\n\n /** @internal */\n @Event() roadnavbarchanged!: EventEmitter;\n /** @internal */\n @Event() roadNavbarChanged!: EventEmitter;\n\n /** Root element of the component */\n @Element() host!: HTMLElement;\n\n @Listen('roadNavbarItemClick')\n @Listen('roadnavbaritemclick')\n onNavbarChanged(ev: CustomEvent) {\n this.selectedTab = ev.detail.tab;\n }\n\n /** Toggles the compact attribute on <road-navbar-v2> */\n private toggleCompactMode() {\n const navbar = this.host.querySelector('road-navbar-v2');\n const toolbar = this.host.querySelector('road-toolbar-v2');\n\n // Toggle \"compact\" attribute on <road-navbar-v2>\n if (navbar) {\n if (navbar.hasAttribute('compact')) {\n navbar.removeAttribute('compact');\n } else {\n navbar.setAttribute('compact', 'true');\n }\n } else {\n console.warn('<road-navbar-v2> not found inside <road-global-navigation-v2>');\n }\n\n // Replace class \"toolbar\" with \"toolbar-compact\" on <road-toolbar-v2>\n if (toolbar) {\n if (toolbar.classList.contains('toolbar-compact')) {\n toolbar.classList.remove('toolbar-compact');\n toolbar.classList.add('toolbar');\n } else {\n toolbar.classList.remove('toolbar');\n toolbar.classList.add('toolbar-compact');\n }\n } else {\n console.warn('<road-toolbar-v2> not found inside <road-global-navigation-v2>');\n }\n }\n\n /** Toggles the \"justify-content-center\" class on the element with \"compact-logo\" */\n private toggleCompactLogoClass() {\n const logoElement = this.host.querySelector('.compact-logo');\n if (logoElement) {\n if (logoElement.classList.contains('justify-content-center')) {\n logoElement.classList.remove('justify-content-center');\n } else {\n logoElement.classList.add('justify-content-center');\n }\n } else {\n console.warn('Element with class \"compact-logo\" not found inside <road-global-navigation-v2>');\n }\n }\n\n /** Toggles the \"rotate\" attribute on the <road-icon> inside the <road-button> */\n private toggleIconRotation(button: HTMLElement) {\n const icon = button.querySelector('road-icon');\n if (icon) {\n if (icon.getAttribute('rotate') === '180') {\n icon.removeAttribute('rotate');\n } else {\n icon.setAttribute('rotate', '180');\n }\n } else {\n console.warn('<road-icon> not found inside <road-button>');\n }\n }\n\n/** Toggles the \"trigger\" attribute on <road-tooltip> elements based on the presence of the \"compact\" attribute on <road-navbar-v2> */\nprivate toggleTooltips() {\n const navbar = this.host.querySelector('road-navbar-v2');\n if (navbar) {\n const hasCompactAttribute = navbar.hasAttribute('compact');\n const tooltips = navbar.querySelectorAll('road-tooltip');\n\n if (tooltips.length > 0) {\n // Mettre à jour l'attribut \"trigger\" en fonction de l'attribut \"compact\"\n tooltips.forEach((tooltip) => {\n if (hasCompactAttribute) {\n tooltip.setAttribute('trigger', 'hover'); // Définir sur \"hover\" si \"compact\" est présent\n } else {\n tooltip.setAttribute('trigger', 'focus'); // Définir sur \"focus\" si \"compact\" est absent\n }\n });\n } else {\n console.warn('<road-tooltip> elements not found inside <road-navbar-v2>.');\n }\n } else {\n console.warn('<road-navbar-v2> not found inside <road-global-navigation-v2>.');\n }\n}\n\n\n\n\n\n\n\n \n /** Toggles the compact mode and performs all related updates */\n\n /** Handles click events on road-button or its children */\n @Listen('click', { target: 'window' })\n onButtonClick(event: MouseEvent) {\n let target = event.target as HTMLElement;\n\n // Traverse up the DOM tree to find the parent road-button\n while (target && target.tagName !== 'ROAD-BUTTON' && target !== document.body) {\n target = target.parentElement as HTMLElement;\n }\n\n if (target?.tagName === 'ROAD-BUTTON' && target.classList.contains('compact-button')) {\n this.toggleCompactMode();\n this.toggleIconRotation(target);\n this.toggleCompactLogoClass();\n this.toggleTooltips();\n }\n }\n\n componentWillLoad() {\n this.selectedTabChanged();\n }\n\n render() {\n return (\n <Host role=\"application\">\n <slot />\n </Host>\n );\n }\n}\n"]}