@hotosm/ui 0.3.2-b3 → 0.3.2-b5
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/assets/logo/osm-logo.svg +277 -0
- package/dist/chunks/{chunk.PDLGEB7T.js → chunk.2E5B6OR3.js} +1 -1
- package/dist/chunks/{chunk.UNSJMT66.js → chunk.2FEIL35F.js} +5 -5
- package/dist/chunks/{chunk.6YSBNYKD.js → chunk.34D2LPI2.js} +1 -1
- package/dist/chunks/chunk.3P72BRDN.js +1 -0
- package/dist/chunks/{chunk.6ZDEZIWM.js → chunk.6Y3X2E2V.js} +1 -1
- package/dist/chunks/{chunk.7RJ72M75.js → chunk.CFJBM2JT.js} +1 -1
- package/dist/chunks/{chunk.T4GALJJA.js → chunk.GTNRNZDH.js} +1 -1
- package/dist/chunks/chunk.KWRSAL43.js +1 -0
- package/dist/chunks/chunk.MCLA4YSC.js +1 -0
- package/dist/chunks/{chunk.HDZFWGNV.js → chunk.NQSLFHXC.js} +1 -1
- package/dist/chunks/{chunk.U4GEH6YR.js → chunk.O6I2TNK3.js} +1 -1
- package/dist/chunks/{chunk.CS56NBTQ.js → chunk.OSUPNFJP.js} +1 -1
- package/dist/chunks/chunk.RQCFXHIG.js +1 -0
- package/dist/chunks/chunk.SMFWK2VT.js +1 -0
- package/dist/chunks/chunk.TNLBUOUK.js +40 -0
- package/dist/chunks/chunk.UMBUH2EC.js +690 -0
- package/dist/chunks/{chunk.UTSKEKTV.js → chunk.W65BP3JY.js} +1 -1
- package/dist/chunks/chunk.WX25LIXR.js +96 -0
- package/dist/components/button/button.component.d.ts +1 -1
- package/dist/components/button/button.component.js +1 -1
- package/dist/components/button/button.js +1 -1
- package/dist/components/button/button.styles.js +1 -1
- package/dist/components/consent/consent.component.d.ts +1 -1
- package/dist/components/consent/consent.component.js +1 -1
- package/dist/components/consent/consent.d.ts +0 -10
- package/dist/components/consent/consent.js +1 -1
- package/dist/components/consent/consent.styles.js +1 -1
- package/dist/components/header/header.component.d.ts +3 -23
- package/dist/components/header/header.component.js +1 -1
- package/dist/components/header/header.d.ts +0 -10
- package/dist/components/header/header.js +1 -1
- package/dist/components/header/header.styles.js +1 -1
- package/dist/components/logo/logo.component.d.ts +1 -1
- package/dist/components/logo/logo.component.js +1 -1
- package/dist/components/logo/logo.d.ts +0 -10
- package/dist/components/logo/logo.js +1 -1
- package/dist/components/logo/logo.styles.js +1 -1
- package/dist/components/tracking/tracking.component.d.ts +1 -1
- package/dist/components/tracking/tracking.component.js +1 -1
- package/dist/components/tracking/tracking.d.ts +0 -10
- package/dist/components/tracking/tracking.js +1 -1
- package/dist/hotosm-ui.js +1 -1
- package/dist/style.css +1 -1
- package/dist/themes/hot.css +31 -2
- package/package.json +5 -6
- package/dist/assets/logo/osm-logo.png +0 -0
- package/dist/chunks/chunk.H5ZQREL2.js +0 -1
- package/dist/chunks/chunk.IU7P7RMD.js +0 -1
- package/dist/chunks/chunk.O6Q54UVK.js +0 -671
- package/dist/chunks/chunk.SZ46YTWY.js +0 -1
- package/dist/chunks/chunk.U4P7XQR4.js +0 -40
- package/dist/chunks/chunk.UYOJKKGV.js +0 -1
- package/dist/chunks/chunk.VOBHDN5R.js +0 -168
- package/dist/chunks/chunk.YYEOK7MA.js +0 -1
|
@@ -1,671 +0,0 @@
|
|
|
1
|
-
import{a as q,b as z}from"./chunk.VOBHDN5R.js";import{a as O,b as g,c as i,d as k,e as C,f as W}from"./chunk.UNSJMT66.js";import{a as y,b as s,c as D,d as x}from"./chunk.6ZDEZIWM.js";import{a as M}from"./chunk.KO4EOD3I.js";import{e as r,k as B}from"./chunk.U4P7XQR4.js";import{a as A,d as h,e as p,f as u,g as b}from"./chunk.NI7UJOOZ.js";function rt(t,n){return{top:Math.round(t.getBoundingClientRect().top-n.getBoundingClientRect().top),left:Math.round(t.getBoundingClientRect().left-n.getBoundingClientRect().left)}}var T=new Set;function lt(){let t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}function ct(){let t=Number(getComputedStyle(document.body).paddingRight.replace(/px/,""));return isNaN(t)||!t?0:t}function $(t){if(T.add(t),!document.documentElement.classList.contains("wa-scroll-lock")){let n=lt()+ct(),e=getComputedStyle(document.documentElement).scrollbarGutter;(!e||e==="auto")&&(e="stable"),n<2&&(e=""),document.documentElement.style.setProperty("--wa-scroll-lock-gutter",e),document.documentElement.classList.add("wa-scroll-lock"),document.documentElement.style.setProperty("--wa-scroll-lock-size",`${n}px`)}}function P(t){T.delete(t),T.size===0&&(document.documentElement.classList.remove("wa-scroll-lock"),document.documentElement.style.removeProperty("--wa-scroll-lock-size"))}function I(t,n,e="vertical",o="smooth"){let a=rt(t,n),l=a.top+n.scrollTop,c=a.left+n.scrollLeft,f=n.scrollLeft,E=n.scrollLeft+n.offsetWidth,it=n.scrollTop,st=n.scrollTop+n.offsetHeight;(e==="horizontal"||e==="both")&&(c<f?n.scrollTo({left:c,behavior:o}):c+t.clientWidth>E&&n.scrollTo({left:c-n.offsetWidth+t.clientWidth,behavior:o})),(e==="vertical"||e==="both")&&(l<it?n.scrollTo({top:l,behavior:o}):l+t.clientHeight>st&&n.scrollTo({top:l-n.offsetHeight+t.clientHeight,behavior:o}))}var dt=class extends Event{constructor(t){super("wa-tab-hide",{bubbles:!0,cancelable:!1,composed:!0}),this.detail=t}},ht=class extends Event{constructor(t){super("wa-tab-show",{bubbles:!0,cancelable:!1,composed:!0}),this.detail=t}},pt=`:host {
|
|
2
|
-
--indicator-color: var(--wa-color-brand-fill-loud);
|
|
3
|
-
--track-color: var(--wa-color-neutral-fill-normal);
|
|
4
|
-
--track-width: 0.125rem;
|
|
5
|
-
|
|
6
|
-
display: block;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
.tab-group {
|
|
10
|
-
display: flex;
|
|
11
|
-
border-radius: 0;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.tabs {
|
|
15
|
-
display: flex;
|
|
16
|
-
position: relative;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.indicator {
|
|
20
|
-
position: absolute;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.tab-group-has-scroll-controls .nav-container {
|
|
24
|
-
position: relative;
|
|
25
|
-
padding: 0 1.5em;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.body {
|
|
29
|
-
display: block;
|
|
30
|
-
overflow: auto;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.scroll-button {
|
|
34
|
-
display: flex;
|
|
35
|
-
align-items: center;
|
|
36
|
-
justify-content: center;
|
|
37
|
-
position: absolute;
|
|
38
|
-
top: 0;
|
|
39
|
-
bottom: 0;
|
|
40
|
-
width: 1.5em;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.scroll-button-start {
|
|
44
|
-
inset-inline-start: 0;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.scroll-button-end {
|
|
48
|
-
inset-inline-end: 0;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/*
|
|
52
|
-
* Top
|
|
53
|
-
*/
|
|
54
|
-
|
|
55
|
-
.tab-group-top {
|
|
56
|
-
flex-direction: column;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.tab-group-top .nav-container {
|
|
60
|
-
order: 1;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.tab-group-top .nav {
|
|
64
|
-
display: flex;
|
|
65
|
-
overflow-x: auto;
|
|
66
|
-
|
|
67
|
-
/* Hide scrollbar in Firefox */
|
|
68
|
-
scrollbar-width: none;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/* Hide scrollbar in Chrome/Safari */
|
|
72
|
-
.tab-group-top .nav::-webkit-scrollbar {
|
|
73
|
-
width: 0;
|
|
74
|
-
height: 0;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
.tab-group-top .tabs {
|
|
78
|
-
flex: 1 1 auto;
|
|
79
|
-
position: relative;
|
|
80
|
-
flex-direction: row;
|
|
81
|
-
border-bottom: solid var(--track-width) var(--track-color);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.tab-group-top .indicator {
|
|
85
|
-
bottom: calc(-1 * var(--track-width));
|
|
86
|
-
border-bottom: solid var(--track-width) var(--indicator-color);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.tab-group-top .body {
|
|
90
|
-
order: 2;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.tab-group-top ::slotted(wa-tab[active]) {
|
|
94
|
-
border-block-end: solid var(--track-width) var(--indicator-color);
|
|
95
|
-
margin-block-end: calc(-1 * var(--track-width));
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.tab-group-top ::slotted(wa-tab-panel) {
|
|
99
|
-
--padding: var(--wa-space-xl) 0;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/*
|
|
103
|
-
* Bottom
|
|
104
|
-
*/
|
|
105
|
-
|
|
106
|
-
.tab-group-bottom {
|
|
107
|
-
flex-direction: column;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
.tab-group-bottom .nav-container {
|
|
111
|
-
order: 2;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
.tab-group-bottom .nav {
|
|
115
|
-
display: flex;
|
|
116
|
-
overflow-x: auto;
|
|
117
|
-
|
|
118
|
-
/* Hide scrollbar in Firefox */
|
|
119
|
-
scrollbar-width: none;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/* Hide scrollbar in Chrome/Safari */
|
|
123
|
-
.tab-group-bottom .nav::-webkit-scrollbar {
|
|
124
|
-
width: 0;
|
|
125
|
-
height: 0;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
.tab-group-bottom .tabs {
|
|
129
|
-
flex: 1 1 auto;
|
|
130
|
-
position: relative;
|
|
131
|
-
flex-direction: row;
|
|
132
|
-
border-top: solid var(--track-width) var(--track-color);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
.tab-group-bottom .indicator {
|
|
136
|
-
top: calc(-1 * var(--track-width));
|
|
137
|
-
border-top: solid var(--track-width) var(--indicator-color);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
.tab-group-bottom .body {
|
|
141
|
-
order: 1;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
.tab-group-bottom ::slotted(wa-tab[active]) {
|
|
145
|
-
border-block-start: solid var(--track-width) var(--indicator-color);
|
|
146
|
-
margin-block-start: calc(-1 * var(--track-width));
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
.tab-group-bottom ::slotted(wa-tab-panel) {
|
|
150
|
-
--padding: var(--wa-space-xl) 0;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/*
|
|
154
|
-
* Start
|
|
155
|
-
*/
|
|
156
|
-
|
|
157
|
-
.tab-group-start {
|
|
158
|
-
flex-direction: row;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
.tab-group-start .nav-container {
|
|
162
|
-
order: 1;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
.tab-group-start .tabs {
|
|
166
|
-
flex: 0 0 auto;
|
|
167
|
-
flex-direction: column;
|
|
168
|
-
border-inline-end: solid var(--track-width) var(--track-color);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
.tab-group-start .indicator {
|
|
172
|
-
inset-inline-end: calc(-1 * var(--track-width));
|
|
173
|
-
border-right: solid var(--track-width) var(--indicator-color);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
.tab-group-start .body {
|
|
177
|
-
flex: 1 1 auto;
|
|
178
|
-
order: 2;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
.tab-group-start ::slotted(wa-tab[active]) {
|
|
182
|
-
border-inline-end: solid var(--track-width) var(--indicator-color);
|
|
183
|
-
margin-inline-end: calc(-1 * var(--track-width));
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
.tab-group-start ::slotted(wa-tab-panel) {
|
|
187
|
-
--padding: 0 var(--wa-space-xl);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/*
|
|
191
|
-
* End
|
|
192
|
-
*/
|
|
193
|
-
|
|
194
|
-
.tab-group-end {
|
|
195
|
-
flex-direction: row;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
.tab-group-end .nav-container {
|
|
199
|
-
order: 2;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
.tab-group-end .tabs {
|
|
203
|
-
flex: 0 0 auto;
|
|
204
|
-
flex-direction: column;
|
|
205
|
-
border-left: solid var(--track-width) var(--track-color);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
.tab-group-end .indicator {
|
|
209
|
-
inset-inline-start: calc(-1 * var(--track-width));
|
|
210
|
-
border-inline-start: solid var(--track-width) var(--indicator-color);
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
.tab-group-end .body {
|
|
214
|
-
flex: 1 1 auto;
|
|
215
|
-
order: 1;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
.tab-group-end ::slotted(wa-tab[active]) {
|
|
219
|
-
border-inline-start: solid var(--track-width) var(--indicator-color);
|
|
220
|
-
margin-inline-start: calc(-1 * var(--track-width));
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
.tab-group-end ::slotted(wa-tab-panel) {
|
|
224
|
-
--padding: 0 var(--wa-space-xl);
|
|
225
|
-
}
|
|
226
|
-
`,m=class extends k{constructor(){super(...arguments),this.tabs=[],this.focusableTabs=[],this.panels=[],this.localize=new O(this),this.hasScrollControls=!1,this.active="",this.placement="top",this.activation="auto",this.withoutScrollControls=!1}connectedCallback(){super.connectedCallback(),this.resizeObserver=new ResizeObserver(()=>{this.updateScrollControls()}),this.mutationObserver=new MutationObserver(t=>{t.some(e=>!["aria-labelledby","aria-controls"].includes(e.attributeName))&&setTimeout(()=>this.setAriaLabels());let n=t.filter(e=>e.target.closest("wa-tab-group")===this);if(n.some(e=>e.attributeName==="disabled"))this.syncTabsAndPanels();else if(n.some(e=>e.attributeName==="active")){let o=n.filter(a=>a.attributeName==="active"&&a.target.tagName.toLowerCase()==="wa-tab").map(a=>a.target).find(a=>a.active);o&&o.closest("wa-tab-group")===this&&this.setActiveTab(o)}}),this.updateComplete.then(()=>{this.syncTabsAndPanels(),this.mutationObserver.observe(this,{attributes:!0,childList:!0,subtree:!0}),this.resizeObserver.observe(this.nav),new IntersectionObserver((n,e)=>{var o;if(n[0].intersectionRatio>0){if(this.setAriaLabels(),this.active){let a=this.tabs.find(l=>l.panel===this.active);a&&this.setActiveTab(a)}else this.setActiveTab((o=this.getActiveTab())!=null?o:this.tabs[0],{emitEvents:!1});e.unobserve(n[0].target)}}).observe(this.tabGroup)})}disconnectedCallback(){var t,n;super.disconnectedCallback(),(t=this.mutationObserver)==null||t.disconnect(),this.nav&&((n=this.resizeObserver)==null||n.unobserve(this.nav))}getAllTabs(){return[...this.shadowRoot.querySelector('slot[name="nav"]').assignedElements()].filter(n=>n.tagName.toLowerCase()==="wa-tab")}getAllPanels(){return[...this.body.assignedElements()].filter(t=>t.tagName.toLowerCase()==="wa-tab-panel")}getActiveTab(){return this.tabs.find(t=>t.active)}handleClick(t){let e=t.target.closest("wa-tab");(e==null?void 0:e.closest("wa-tab-group"))===this&&e!==null&&this.setActiveTab(e,{scrollBehavior:"smooth"})}handleKeyDown(t){let e=t.target.closest("wa-tab");if((e==null?void 0:e.closest("wa-tab-group"))===this){if(["Enter"," "].includes(t.key)){e!==null&&(this.setActiveTab(e,{scrollBehavior:"smooth"}),t.preventDefault());return}if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(t.key)){let a=this.tabs.find(f=>f.matches(":focus")),l=this.localize.dir()==="rtl",c=null;if((a==null?void 0:a.tagName.toLowerCase())==="wa-tab"){if(t.key==="Home")c=this.focusableTabs[0];else if(t.key==="End")c=this.focusableTabs[this.focusableTabs.length-1];else if(["top","bottom"].includes(this.placement)&&t.key===(l?"ArrowRight":"ArrowLeft")||["start","end"].includes(this.placement)&&t.key==="ArrowUp"){let f=this.tabs.findIndex(E=>E===a);c=this.findNextFocusableTab(f,"backward")}else if(["top","bottom"].includes(this.placement)&&t.key===(l?"ArrowLeft":"ArrowRight")||["start","end"].includes(this.placement)&&t.key==="ArrowDown"){let f=this.tabs.findIndex(E=>E===a);c=this.findNextFocusableTab(f,"forward")}if(!c)return;c.tabIndex=0,c.focus({preventScroll:!0}),this.activation==="auto"?this.setActiveTab(c,{scrollBehavior:"smooth"}):this.tabs.forEach(f=>{f.tabIndex=f===c?0:-1}),["top","bottom"].includes(this.placement)&&I(c,this.nav,"horizontal"),t.preventDefault()}}}}findNextFocusableTab(t,n){let e=null,o=n==="forward"?1:-1,a=t+o;for(;t<this.tabs.length;){if(e=this.tabs[a]||null,e===null){n==="forward"?e=this.focusableTabs[0]:e=this.focusableTabs[this.focusableTabs.length-1];break}if(!e.disabled)break;a+=o}return e}handleScrollToStart(){this.nav.scroll({left:this.localize.dir()==="rtl"?this.nav.scrollLeft+this.nav.clientWidth:this.nav.scrollLeft-this.nav.clientWidth,behavior:"smooth"})}handleScrollToEnd(){this.nav.scroll({left:this.localize.dir()==="rtl"?this.nav.scrollLeft-this.nav.clientWidth:this.nav.scrollLeft+this.nav.clientWidth,behavior:"smooth"})}setActiveTab(t,n){if(n=A({emitEvents:!0,scrollBehavior:"auto"},n),t.closest("wa-tab-group")===this&&t!==this.activeTab&&!t.disabled){let e=this.activeTab;this.active=t.panel,this.activeTab=t,this.tabs.forEach(o=>{o.active=o===this.activeTab,o.tabIndex=o===this.activeTab?0:-1}),this.panels.forEach(o=>{var a;return o.active=o.name===((a=this.activeTab)==null?void 0:a.panel)}),["top","bottom"].includes(this.placement)&&I(this.activeTab,this.nav,"horizontal",n.scrollBehavior),n.emitEvents&&(e&&this.dispatchEvent(new dt({name:e.panel})),this.dispatchEvent(new ht({name:this.activeTab.panel})))}}setAriaLabels(){this.tabs.forEach(t=>{let n=this.panels.find(e=>e.name===t.panel);n&&(t.setAttribute("aria-controls",n.getAttribute("id")),n.setAttribute("aria-labelledby",t.getAttribute("id")))})}syncTabsAndPanels(){this.tabs=this.getAllTabs(),this.focusableTabs=this.tabs.filter(t=>!t.disabled),this.panels=this.getAllPanels(),this.updateComplete.then(()=>this.updateScrollControls())}updateActiveTab(){let t=this.tabs.find(n=>n.panel===this.active);t&&this.setActiveTab(t,{scrollBehavior:"smooth"})}updateScrollControls(){this.withoutScrollControls?this.hasScrollControls=!1:this.hasScrollControls=["top","bottom"].includes(this.placement)&&this.nav.scrollWidth>this.nav.clientWidth+1}render(){let t=this.hasUpdated?this.localize.dir()==="rtl":this.dir==="rtl";return r`
|
|
227
|
-
<div
|
|
228
|
-
part="base"
|
|
229
|
-
class=${C({"tab-group":!0,"tab-group-top":this.placement==="top","tab-group-bottom":this.placement==="bottom","tab-group-start":this.placement==="start","tab-group-end":this.placement==="end","tab-group-has-scroll-controls":this.hasScrollControls})}
|
|
230
|
-
@click=${this.handleClick}
|
|
231
|
-
@keydown=${this.handleKeyDown}
|
|
232
|
-
>
|
|
233
|
-
<div class="nav-container" part="nav">
|
|
234
|
-
${this.hasScrollControls?r`
|
|
235
|
-
<wa-button
|
|
236
|
-
part="scroll-button scroll-button-start"
|
|
237
|
-
exportparts="base:scroll-button__base"
|
|
238
|
-
class="scroll-button scroll-button-start"
|
|
239
|
-
appearance="plain"
|
|
240
|
-
@click=${this.handleScrollToStart}
|
|
241
|
-
>
|
|
242
|
-
<wa-icon
|
|
243
|
-
name=${t?"chevron-right":"chevron-left"}
|
|
244
|
-
library="system"
|
|
245
|
-
variant="solid"
|
|
246
|
-
label=${this.localize.term("scrollToStart")}
|
|
247
|
-
></wa-icon>
|
|
248
|
-
</wa-button>
|
|
249
|
-
`:""}
|
|
250
|
-
|
|
251
|
-
<!-- We have a focus listener because in Firefox (and soon to be Chrome) overflow containers are focusable. -->
|
|
252
|
-
<div class="nav" @focus=${()=>{var n;return(n=this.activeTab)==null?void 0:n.focus({preventScroll:!0})}}>
|
|
253
|
-
<div part="tabs" class="tabs" role="tablist">
|
|
254
|
-
<slot name="nav" @slotchange=${this.syncTabsAndPanels}></slot>
|
|
255
|
-
</div>
|
|
256
|
-
</div>
|
|
257
|
-
|
|
258
|
-
${this.hasScrollControls?r`
|
|
259
|
-
<wa-button
|
|
260
|
-
part="scroll-button scroll-button-end"
|
|
261
|
-
class="scroll-button scroll-button-end"
|
|
262
|
-
exportparts="base:scroll-button__base"
|
|
263
|
-
appearance="plain"
|
|
264
|
-
@click=${this.handleScrollToEnd}
|
|
265
|
-
>
|
|
266
|
-
<wa-icon
|
|
267
|
-
name=${t?"chevron-left":"chevron-right"}
|
|
268
|
-
library="system"
|
|
269
|
-
variant="solid"
|
|
270
|
-
label=${this.localize.term("scrollToEnd")}
|
|
271
|
-
></wa-icon>
|
|
272
|
-
</wa-button>
|
|
273
|
-
`:""}
|
|
274
|
-
</div>
|
|
275
|
-
|
|
276
|
-
<slot part="body" class="body" @slotchange=${this.syncTabsAndPanels}></slot>
|
|
277
|
-
</div>
|
|
278
|
-
`}};m.css=pt;i([x(".tab-group")],m.prototype,"tabGroup",2);i([x(".body")],m.prototype,"body",2);i([x(".nav")],m.prototype,"nav",2);i([D()],m.prototype,"hasScrollControls",2);i([s({reflect:!0})],m.prototype,"active",2);i([s()],m.prototype,"placement",2);i([s()],m.prototype,"activation",2);i([s({attribute:"without-scroll-controls",type:Boolean})],m.prototype,"withoutScrollControls",2);i([g("active")],m.prototype,"updateActiveTab",1);i([g("withoutScrollControls",{waitUntilFirstUpdate:!0})],m.prototype,"updateScrollControls",1);m=i([y("wa-tab-group")],m);var ut=`:host {
|
|
279
|
-
display: inline-block;
|
|
280
|
-
color: var(--wa-color-neutral-on-quiet);
|
|
281
|
-
font-weight: var(--wa-font-weight-action);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
.tab {
|
|
285
|
-
display: inline-flex;
|
|
286
|
-
align-items: center;
|
|
287
|
-
font: inherit;
|
|
288
|
-
padding: 1em 1.5em;
|
|
289
|
-
white-space: nowrap;
|
|
290
|
-
user-select: none;
|
|
291
|
-
-webkit-user-select: none;
|
|
292
|
-
cursor: pointer;
|
|
293
|
-
transition: color var(--wa-transition-fast) var(--wa-transition-easing);
|
|
294
|
-
|
|
295
|
-
::slotted(wa-icon:first-child) {
|
|
296
|
-
margin-inline-end: 0.5em;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
::slotted(wa-icon:last-child) {
|
|
300
|
-
margin-inline-start: 0.5em;
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
@media (hover: hover) {
|
|
305
|
-
:host(:hover:not([disabled])) .tab {
|
|
306
|
-
color: currentColor;
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
:host(:focus) {
|
|
311
|
-
outline: transparent;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
:host(:focus-visible) .tab {
|
|
315
|
-
outline: var(--wa-focus-ring);
|
|
316
|
-
outline-offset: calc(-1 * var(--wa-border-width-l) - var(--wa-focus-ring-offset));
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
:host([active]:not([disabled])) {
|
|
320
|
-
color: var(--wa-color-brand-on-quiet);
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
:host([disabled]) .tab {
|
|
324
|
-
opacity: 0.5;
|
|
325
|
-
cursor: not-allowed;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
@media (forced-colors: active) {
|
|
329
|
-
:host([active]:not([disabled])) {
|
|
330
|
-
outline: solid 1px transparent;
|
|
331
|
-
outline-offset: -3px;
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
`,bt=0,v=class extends k{constructor(){super(...arguments),this.attrId=++bt,this.componentId=`wa-tab-${this.attrId}`,this.panel="",this.active=!1,this.disabled=!1,this.tabIndex=0}connectedCallback(){this.slot||(this.slot="nav"),super.connectedCallback(),this.setAttribute("role","tab")}handleActiveChange(){this.setAttribute("aria-selected",this.active?"true":"false")}handleDisabledChange(){this.setAttribute("aria-disabled",this.disabled?"true":"false"),this.disabled&&!this.active?this.tabIndex=-1:this.tabIndex=0}render(){var t;return this.id=((t=this.id)==null?void 0:t.length)>0?this.id:this.componentId,r`
|
|
335
|
-
<div
|
|
336
|
-
part="base"
|
|
337
|
-
class=${C({tab:!0,"tab-active":this.active})}
|
|
338
|
-
>
|
|
339
|
-
<slot></slot>
|
|
340
|
-
</div>
|
|
341
|
-
`}};v.css=ut;i([x(".tab")],v.prototype,"tab",2);i([s({reflect:!0})],v.prototype,"panel",2);i([s({type:Boolean,reflect:!0})],v.prototype,"active",2);i([s({type:Boolean,reflect:!0})],v.prototype,"disabled",2);i([s({type:Number,reflect:!0})],v.prototype,"tabIndex",2);i([g("active")],v.prototype,"handleActiveChange",1);i([g("disabled")],v.prototype,"handleDisabledChange",1);v=i([y("wa-tab")],v);var mt=`:host {
|
|
342
|
-
--padding: 0;
|
|
343
|
-
|
|
344
|
-
display: none;
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
:host([active]) {
|
|
348
|
-
display: block;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
.tab-panel {
|
|
352
|
-
display: block;
|
|
353
|
-
padding: var(--padding);
|
|
354
|
-
}
|
|
355
|
-
`,ft=0,L=class extends k{constructor(){super(...arguments),this.attrId=++ft,this.componentId=`wa-tab-panel-${this.attrId}`,this.name="",this.active=!1}connectedCallback(){super.connectedCallback(),this.id=this.id.length>0?this.id:this.componentId,this.setAttribute("role","tabpanel")}handleActiveChange(){this.setAttribute("aria-hidden",this.active?"false":"true")}render(){return r`
|
|
356
|
-
<slot
|
|
357
|
-
part="base"
|
|
358
|
-
class=${C({"tab-panel":!0,"tab-panel-active":this.active})}
|
|
359
|
-
></slot>
|
|
360
|
-
`}};L.css=mt;i([s({reflect:!0})],L.prototype,"name",2);i([s({type:Boolean,reflect:!0})],L.prototype,"active",2);i([g("active")],L.prototype,"handleActiveChange",1);L=i([y("wa-tab-panel")],L);function U(t){return t.split(" ").map(n=>n.trim()).filter(n=>n!=="")}var N=class extends Event{constructor(){super("wa-after-hide",{bubbles:!0,cancelable:!1,composed:!0})}},R=class extends Event{constructor(){super("wa-after-show",{bubbles:!0,cancelable:!1,composed:!0})}},G=class extends Event{constructor(t){super("wa-hide",{bubbles:!0,cancelable:!0,composed:!0}),this.detail=t}},H=class extends Event{constructor(){super("wa-show",{bubbles:!0,cancelable:!0,composed:!0})}};function S(t,n){return new Promise(e=>{let o=new AbortController,{signal:a}=o;if(t.classList.contains(n))return;t.classList.remove(n),t.classList.add(n);let l=()=>{t.classList.remove(n),e(),o.abort()};t.addEventListener("animationend",l,{once:!0,signal:a}),t.addEventListener("animationcancel",l,{once:!0,signal:a})})}var vt=`:host {
|
|
361
|
-
--width: 31rem;
|
|
362
|
-
--spacing: var(--wa-space-l);
|
|
363
|
-
--show-duration: 200ms;
|
|
364
|
-
--hide-duration: 200ms;
|
|
365
|
-
|
|
366
|
-
display: none;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
:host([open]) {
|
|
370
|
-
display: block;
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
.dialog {
|
|
374
|
-
display: flex;
|
|
375
|
-
flex-direction: column;
|
|
376
|
-
top: 0;
|
|
377
|
-
right: 0;
|
|
378
|
-
bottom: 0;
|
|
379
|
-
left: 0;
|
|
380
|
-
width: var(--width);
|
|
381
|
-
max-width: calc(100% - var(--wa-space-2xl));
|
|
382
|
-
max-height: calc(100% - var(--wa-space-2xl));
|
|
383
|
-
background-color: var(--wa-color-surface-raised);
|
|
384
|
-
border-radius: var(--wa-panel-border-radius);
|
|
385
|
-
border: none;
|
|
386
|
-
box-shadow: var(--wa-shadow-l);
|
|
387
|
-
padding: 0;
|
|
388
|
-
margin: auto;
|
|
389
|
-
|
|
390
|
-
&.show {
|
|
391
|
-
animation: show-dialog var(--show-duration) ease;
|
|
392
|
-
|
|
393
|
-
&::backdrop {
|
|
394
|
-
animation: show-backdrop var(--show-duration, 200ms) ease;
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
&.hide {
|
|
399
|
-
animation: show-dialog var(--hide-duration) ease reverse;
|
|
400
|
-
|
|
401
|
-
&::backdrop {
|
|
402
|
-
animation: show-backdrop var(--hide-duration, 200ms) ease reverse;
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
&.pulse {
|
|
407
|
-
animation: pulse 250ms ease;
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
.dialog:focus {
|
|
412
|
-
outline: none;
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
/* Ensure there's enough vertical padding for phones that don't update vh when chrome appears (e.g. iPhone) */
|
|
416
|
-
@media screen and (max-width: 420px) {
|
|
417
|
-
.dialog {
|
|
418
|
-
max-height: 80vh;
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
.open {
|
|
423
|
-
display: flex;
|
|
424
|
-
opacity: 1;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
.header {
|
|
428
|
-
flex: 0 0 auto;
|
|
429
|
-
display: flex;
|
|
430
|
-
flex-wrap: nowrap;
|
|
431
|
-
|
|
432
|
-
padding-inline-start: var(--spacing);
|
|
433
|
-
padding-block-end: 0;
|
|
434
|
-
|
|
435
|
-
/* Subtract the close button's padding so that the X is visually aligned with the edges of the dialog content */
|
|
436
|
-
padding-inline-end: calc(var(--spacing) - var(--wa-form-control-padding-block));
|
|
437
|
-
padding-block-start: calc(var(--spacing) - var(--wa-form-control-padding-block));
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
.title {
|
|
441
|
-
align-self: center;
|
|
442
|
-
flex: 1 1 auto;
|
|
443
|
-
font-family: inherit;
|
|
444
|
-
font-size: var(--wa-font-size-l);
|
|
445
|
-
font-weight: var(--wa-font-weight-heading);
|
|
446
|
-
line-height: var(--wa-line-height-condensed);
|
|
447
|
-
margin: 0;
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
.header-actions {
|
|
451
|
-
align-self: start;
|
|
452
|
-
display: flex;
|
|
453
|
-
flex-shrink: 0;
|
|
454
|
-
flex-wrap: wrap;
|
|
455
|
-
justify-content: end;
|
|
456
|
-
gap: var(--wa-space-2xs);
|
|
457
|
-
padding-inline-start: var(--spacing);
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
.header-actions wa-button,
|
|
461
|
-
.header-actions ::slotted(wa-button) {
|
|
462
|
-
flex: 0 0 auto;
|
|
463
|
-
display: flex;
|
|
464
|
-
align-items: center;
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
.body {
|
|
468
|
-
flex: 1 1 auto;
|
|
469
|
-
display: block;
|
|
470
|
-
padding: var(--spacing);
|
|
471
|
-
overflow: auto;
|
|
472
|
-
-webkit-overflow-scrolling: touch;
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
.footer {
|
|
476
|
-
flex: 0 0 auto;
|
|
477
|
-
display: flex;
|
|
478
|
-
flex-wrap: wrap;
|
|
479
|
-
gap: var(--wa-space-xs);
|
|
480
|
-
justify-content: end;
|
|
481
|
-
padding: var(--spacing);
|
|
482
|
-
padding-block-start: 0;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
.footer ::slotted(wa-button:not(:first-of-type)) {
|
|
486
|
-
margin-inline-start: var(--wa-spacing-xs);
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
.dialog::backdrop {
|
|
490
|
-
/*
|
|
491
|
-
NOTE: the ::backdrop element doesn't inherit properly in Safari yet, but it will in 17.4! At that time, we can
|
|
492
|
-
remove the fallback values here.
|
|
493
|
-
*/
|
|
494
|
-
background-color: var(--wa-color-overlay-modal, rgb(0 0 0 / 0.25));
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
@keyframes pulse {
|
|
498
|
-
0% {
|
|
499
|
-
scale: 1;
|
|
500
|
-
}
|
|
501
|
-
50% {
|
|
502
|
-
scale: 1.02;
|
|
503
|
-
}
|
|
504
|
-
100% {
|
|
505
|
-
scale: 1;
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
@keyframes show-dialog {
|
|
510
|
-
from {
|
|
511
|
-
opacity: 0;
|
|
512
|
-
scale: 0.8;
|
|
513
|
-
}
|
|
514
|
-
to {
|
|
515
|
-
opacity: 1;
|
|
516
|
-
scale: 1;
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
@keyframes show-backdrop {
|
|
521
|
-
from {
|
|
522
|
-
opacity: 0;
|
|
523
|
-
}
|
|
524
|
-
to {
|
|
525
|
-
opacity: 1;
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
|
|
529
|
-
@media (forced-colors: active) {
|
|
530
|
-
.dialog {
|
|
531
|
-
border: solid 1px white;
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
`,w=class extends k{constructor(){super(...arguments),this.localize=new O(this),this.hasSlotController=new W(this,"footer","header-actions","label"),this.open=!1,this.label="",this.withoutHeader=!1,this.lightDismiss=!1,this.handleDocumentKeyDown=t=>{t.key==="Escape"&&this.open&&(t.preventDefault(),t.stopPropagation(),this.requestClose(this.dialog))}}firstUpdated(){this.open&&(this.addOpenListeners(),this.dialog.showModal(),$(this))}disconnectedCallback(){super.disconnectedCallback(),P(this),this.removeOpenListeners()}async requestClose(t){let n=new G({source:t});if(this.dispatchEvent(n),n.defaultPrevented){this.open=!0,S(this.dialog,"pulse");return}this.removeOpenListeners(),await S(this.dialog,"hide"),this.open=!1,this.dialog.close(),P(this);let e=this.originalTrigger;typeof(e==null?void 0:e.focus)=="function"&&setTimeout(()=>e.focus()),this.dispatchEvent(new N)}addOpenListeners(){document.addEventListener("keydown",this.handleDocumentKeyDown)}removeOpenListeners(){document.removeEventListener("keydown",this.handleDocumentKeyDown)}handleDialogCancel(t){t.preventDefault(),this.dialog.classList.contains("hide")||this.requestClose(this.dialog)}handleDialogClick(t){let e=t.target.closest('[data-dialog="close"]');e&&(t.stopPropagation(),this.requestClose(e))}async handleDialogPointerDown(t){t.target===this.dialog&&(this.lightDismiss?this.requestClose(this.dialog):await S(this.dialog,"pulse"))}handleOpenChange(){this.open&&!this.dialog.open?this.show():!this.open&&this.dialog.open&&(this.open=!0,this.requestClose(this.dialog))}async show(){let t=new H;if(this.dispatchEvent(t),t.defaultPrevented){this.open=!1;return}this.addOpenListeners(),this.originalTrigger=document.activeElement,this.open=!0,this.dialog.showModal(),$(this),requestAnimationFrame(()=>{let n=this.querySelector("[autofocus]");n&&typeof n.focus=="function"&&n.focus()}),await S(this.dialog,"show"),this.dispatchEvent(new R)}render(){let t=!this.withoutHeader&&(this.label.length>0||this.hasSlotController.test("label")||this.hasSlotController.test("header-actions")),n=this.hasSlotController.test("footer");return r`
|
|
535
|
-
<dialog
|
|
536
|
-
part="dialog"
|
|
537
|
-
class=${C({dialog:!0,open:this.open})}
|
|
538
|
-
@cancel=${this.handleDialogCancel}
|
|
539
|
-
@click=${this.handleDialogClick}
|
|
540
|
-
@pointerdown=${this.handleDialogPointerDown}
|
|
541
|
-
>
|
|
542
|
-
${t?r`
|
|
543
|
-
<header part="header" class="header">
|
|
544
|
-
<h2 part="title" class="title" id="title">
|
|
545
|
-
<!-- If there's no label, use an invisible character to prevent the header from collapsing -->
|
|
546
|
-
<slot name="label"> ${this.label.length>0?this.label:"\uFEFF"} </slot>
|
|
547
|
-
</h2>
|
|
548
|
-
<div part="header-actions" class="header-actions">
|
|
549
|
-
<slot name="header-actions"></slot>
|
|
550
|
-
<wa-button
|
|
551
|
-
part="close-button"
|
|
552
|
-
exportparts="base:close-button__base"
|
|
553
|
-
class="close"
|
|
554
|
-
appearance="plain"
|
|
555
|
-
@click="${e=>this.requestClose(e.target)}"
|
|
556
|
-
>
|
|
557
|
-
<wa-icon
|
|
558
|
-
name="xmark"
|
|
559
|
-
label=${this.localize.term("close")}
|
|
560
|
-
library="system"
|
|
561
|
-
variant="solid"
|
|
562
|
-
></wa-icon>
|
|
563
|
-
</wa-button>
|
|
564
|
-
</div>
|
|
565
|
-
</header>
|
|
566
|
-
`:""}
|
|
567
|
-
|
|
568
|
-
<div part="body" class="body"><slot></slot></div>
|
|
569
|
-
|
|
570
|
-
${n?r`
|
|
571
|
-
<footer part="footer" class="footer">
|
|
572
|
-
<slot name="footer"></slot>
|
|
573
|
-
</footer>
|
|
574
|
-
`:""}
|
|
575
|
-
</dialog>
|
|
576
|
-
`}};w.css=vt;i([x(".dialog")],w.prototype,"dialog",2);i([s({type:Boolean,reflect:!0})],w.prototype,"open",2);i([s({reflect:!0})],w.prototype,"label",2);i([s({attribute:"without-header",type:Boolean,reflect:!0})],w.prototype,"withoutHeader",2);i([s({attribute:"light-dismiss",type:Boolean})],w.prototype,"lightDismiss",2);i([g("open",{waitUntilFirstUpdate:!0})],w.prototype,"handleOpenChange",1);w=i([y("wa-dialog")],w);document.addEventListener("click",t=>{let n=t.target.closest("[data-dialog]");if(n instanceof Element){let[e,o]=U(n.getAttribute("data-dialog")||"");if(e==="open"&&(o!=null&&o.length)){let l=n.getRootNode().getElementById(o);(l==null?void 0:l.localName)==="wa-dialog"?l.open=!0:console.warn(`A dialog with an ID of "${o}" could not be found in this document.`)}}});!1||document.addEventListener("pointerdown",()=>{});var F="data:image/png;base64,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";M();var _,j,Z,J,Q,K,X,V,Y,tt,et,nt,ot,at,d=class extends B{constructor(){super(...arguments);this.name="hot-header";u(this,_,"");u(this,j,"");u(this,Z,!0);u(this,J,[]);u(this,Q,"small");u(this,K,!0);u(this,X,0);u(this,V,!1);u(this,Y,!1);u(this,tt,{});u(this,et,"user");u(this,nt,"https://www.openstreetmap.org/oauth2/authorize");u(this,ot,"");u(this,at,"")}get title(){return p(this,_)}set title(e){b(this,_,e)}get logo(){return p(this,j)}set logo(e){b(this,j,e)}get drawer(){return p(this,Z)}set drawer(e){b(this,Z,e)}get tabs(){return p(this,J)}set tabs(e){b(this,J,e)}get size(){return p(this,Q)}set size(e){b(this,Q,e)}get borderBottom(){return p(this,K)}set borderBottom(e){b(this,K,e)}get selectedTab(){return p(this,X)}set selectedTab(e){b(this,X,e)}get showLogin(){return p(this,V)}set showLogin(e){b(this,V,e)}get loginModalOpen(){return p(this,Y)}set loginModalOpen(e){b(this,Y,e)}get loginProviders(){return p(this,tt)}set loginProviders(e){b(this,tt,e)}get defaultLoginIcon(){return p(this,et)}set defaultLoginIcon(e){b(this,et,e)}get osmOauthUrl(){return p(this,nt)}set osmOauthUrl(e){b(this,nt,e)}get OsmOauthClientId(){return p(this,ot)}set OsmOauthClientId(e){b(this,ot,e)}get OsmOauthRedirectUri(){return p(this,at)}set OsmOauthRedirectUri(e){b(this,at,e)}get loginOptions(){return Object.keys(this.loginProviders).length===0&&this.OsmOauthClientId&&this.OsmOauthRedirectUri?[{id:"osm",name:"Personal OSM Account",image:F}]:Object.entries(this.loginProviders).map(([e,o])=>({id:e,name:o.name||this.formatProviderName(e),icon:o.icon?void 0:this.defaultLoginIcon,image:o.icon}))}formatProviderName(e){return e.split("_").map(o=>o.charAt(0).toUpperCase()+o.slice(1).toLowerCase()).join(" ")}selectTab(e){console.log(e),this.tabs=[...this.tabs],this.selectedTab=e}performLogin(e){let o=this.loginProviders[e];if(!o){if(e==="osm"){this.legacyOsmLoginRedirect();return}console.error(`Login provider '${e}' not found`);return}if(!o.clientId){window.location.href=o.loginUrl;return}let a=window.location.pathname+window.location.search;sessionStorage.setItem("requestedPath",a);let l=new URLSearchParams(A({client_id:o.clientId,redirect_uri:o.redirectUrl,response_type:"code"},o.scope&&{scope:o.scope})),c=`${o.loginUrl}?${l.toString()}`;window.location.href=c}legacyOsmLoginRedirect(){if(!this.OsmOauthClientId||!this.OsmOauthRedirectUri){console.error("OSM OAuth client ID and redirect URI must be provided");return}let e=window.location.pathname+window.location.search;sessionStorage.setItem("requestedPath",e);let o=new URLSearchParams({client_id:this.OsmOauthClientId,redirect_uri:this.OsmOauthRedirectUri,response_type:"code",scope:"read_prefs"}),a=`${this.osmOauthUrl}?${o.toString()}`;window.location.href=a}handleSignIn(e){this.performLogin(e),this.loginModalOpen=!1}render(){let e=typeof this.logo=="string"||this.logo instanceof URL?typeof this.logo=="string"?this.logo:this.logo.href:"";return r`
|
|
577
|
-
<header class=${q({size:this.size,borderBottom:this.borderBottom})}>
|
|
578
|
-
<a href="/" class="header--link">
|
|
579
|
-
${e.length>0?r`
|
|
580
|
-
<img
|
|
581
|
-
id="logo"
|
|
582
|
-
src="${this.logo}"
|
|
583
|
-
alt="Logo"
|
|
584
|
-
class="header--logo-img"
|
|
585
|
-
/>
|
|
586
|
-
`:r`
|
|
587
|
-
<hot-logo
|
|
588
|
-
?iconOnly="${this.title.length>0}"
|
|
589
|
-
>
|
|
590
|
-
</hot-logo>
|
|
591
|
-
`}
|
|
592
|
-
${this.title.length>0?r`
|
|
593
|
-
<h1 class="header--title">
|
|
594
|
-
${this.title}
|
|
595
|
-
</h1>
|
|
596
|
-
`:null}
|
|
597
|
-
</a>
|
|
598
|
-
|
|
599
|
-
${""}
|
|
600
|
-
<nav
|
|
601
|
-
class="header--nav"
|
|
602
|
-
>
|
|
603
|
-
${this.tabs.length>0?r`
|
|
604
|
-
<wa-tab-group class="header--tab-group">
|
|
605
|
-
${this.tabs.map((o,a)=>{let c=this.selectedTab===a?"header--tab header--tab-active":"header--tab";return r`
|
|
606
|
-
<wa-tab
|
|
607
|
-
panel="${o.label}"
|
|
608
|
-
class="${c}"
|
|
609
|
-
slot="nav"
|
|
610
|
-
@click=${f=>this._tabClick(f,o.clickEvent,a)}
|
|
611
|
-
>
|
|
612
|
-
${o.label}
|
|
613
|
-
</wa-tab>
|
|
614
|
-
`})}
|
|
615
|
-
</wa-tab-group>
|
|
616
|
-
`:null}
|
|
617
|
-
</nav>
|
|
618
|
-
|
|
619
|
-
${""}
|
|
620
|
-
${""}
|
|
621
|
-
<nav
|
|
622
|
-
class="header--nav-mobile"
|
|
623
|
-
></nav>
|
|
624
|
-
|
|
625
|
-
<div id="right-section" class="header--right-section">
|
|
626
|
-
<slot name="right-section"></slot>
|
|
627
|
-
${this.showLogin?r`
|
|
628
|
-
<hot-button
|
|
629
|
-
variant="primary"
|
|
630
|
-
hot-color="red"
|
|
631
|
-
size="small"
|
|
632
|
-
@click=${()=>this._handleLogin()}
|
|
633
|
-
>
|
|
634
|
-
Login
|
|
635
|
-
</hot-button>
|
|
636
|
-
`:null}
|
|
637
|
-
${this.drawer?r`
|
|
638
|
-
<wa-button>
|
|
639
|
-
<wa-icon library="hot-icons" name="list" label="drawer-open" class="header--drawer">
|
|
640
|
-
</wa-icon>
|
|
641
|
-
</wa-button>
|
|
642
|
-
`:null}
|
|
643
|
-
</div>
|
|
644
|
-
|
|
645
|
-
<!-- Login Modal -->
|
|
646
|
-
${this.showLogin?r`
|
|
647
|
-
<wa-dialog
|
|
648
|
-
class="login-modal"
|
|
649
|
-
?open=${this.loginModalOpen}
|
|
650
|
-
@wa-hide=${()=>this._handleModalClose()}
|
|
651
|
-
label="Sign In"
|
|
652
|
-
>
|
|
653
|
-
<div class="login-content">
|
|
654
|
-
<div class="login-options">
|
|
655
|
-
${this.loginOptions.map(o=>r`
|
|
656
|
-
<div
|
|
657
|
-
class="login-option"
|
|
658
|
-
@click=${()=>this.handleSignIn(o.id)}
|
|
659
|
-
>
|
|
660
|
-
<div class="login-option-icon">
|
|
661
|
-
${o.image?r`<img src="${o.image}" alt="${o.name}" />`:o.icon?r`<wa-icon name="${o.icon}"></wa-icon>`:null}
|
|
662
|
-
</div>
|
|
663
|
-
<div class="login-option-text">${o.name}</div>
|
|
664
|
-
</div>
|
|
665
|
-
`)}
|
|
666
|
-
</div>
|
|
667
|
-
</div>
|
|
668
|
-
</wa-dialog>
|
|
669
|
-
`:null}
|
|
670
|
-
</header>
|
|
671
|
-
`}_tabClick(e,o,a){this.selectTab(a),o()}_handleLogin(){this.loginModalOpen=!0,this.dispatchEvent(new Event("login"))}_handleModalClose(){this.loginModalOpen=!1}};_=new WeakMap,j=new WeakMap,Z=new WeakMap,J=new WeakMap,Q=new WeakMap,K=new WeakMap,X=new WeakMap,V=new WeakMap,Y=new WeakMap,tt=new WeakMap,et=new WeakMap,nt=new WeakMap,ot=new WeakMap,at=new WeakMap,d.styles=[z],h([s({type:String})],d.prototype,"title",1),h([s({type:String})],d.prototype,"logo",1),h([s({type:Boolean})],d.prototype,"drawer",1),h([s({type:Array})],d.prototype,"tabs",1),h([s({type:String})],d.prototype,"size",1),h([s({type:Boolean})],d.prototype,"borderBottom",1),h([s({type:Number})],d.prototype,"selectedTab",1),h([s({type:Boolean})],d.prototype,"showLogin",1),h([s({type:Boolean})],d.prototype,"loginModalOpen",1),h([s({type:Object,attribute:"login-providers"})],d.prototype,"loginProviders",1),h([s({type:String,attribute:"default-login-icon"})],d.prototype,"defaultLoginIcon",1),h([s({type:String,attribute:"osm-oauth-url"})],d.prototype,"osmOauthUrl",1),h([s({type:String,attribute:"osm-oauth-client-id"})],d.prototype,"OsmOauthClientId",1),h([s({type:String,attribute:"osm-oauth-redirect-uri"})],d.prototype,"OsmOauthRedirectUri",1);var vn=d;export{d as a,vn as b};
|