@aarhus-university/au-designsystem-delphinus 1.3.1 → 1.3.2

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/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 1.3.2 (December 27, 2023)
2
+
3
+ ### Core Delphinus Updates
4
+ * Adds character counter javascript functionality to forms
5
+
1
6
  ## 1.3.1 (October 31, 2023)
2
7
 
3
8
  ### Core Delphinus Updates
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aarhus-university/au-designsystem-delphinus",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "start": "concurrently \"npm run nodemon\" \"npm run sass\" \"npm run build\"",
package/public/js/app.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{var $=e=>{document.readyState!=="loading"?e():document.addEventListener("DOMContentLoaded",e)},C=$;var E=(e,t)=>{let n=!1;return e.composedPath().forEach(r=>{r.classList&&r.classList.contains(t)&&(n=!0)}),n},q=()=>{let e=document.querySelector("body");if(e){let t=window.getComputedStyle(e).getPropertyValue("--color-background"),n=document.querySelector('meta[name="theme-color"]');if(n)n.content=t;else{let i=document.createElement("meta");i.name="theme-color",i.content=t,document.getElementsByTagName("head")[0].appendChild(i)}}},k=()=>parseInt(window.getComputedStyle(document.documentElement).fontSize.replace("px",""),10),y=e=>e*16,p=e=>{let t=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),n=y(parseInt(getComputedStyle(document.documentElement).getPropertyValue(e).replace("rem",""),10));return t<n};var D=e=>e.offsetWidth!==e.scrollWidth;var L=e=>{e.classList.contains("horizontal-scroll--no-overflow")&&e.classList.remove("horizontal-scroll--no-overflow");let t=e.querySelector(".horizontal-scroll--check-overflow .tabbed-content__section:not([hidden]) .horizontal-scroll__scrollable-content");t===null&&!t&&(t=e.querySelector(".horizontal-scroll--check-overflow .horizontal-scroll__scrollable-content")),t&&(D(t)?t?.setAttribute("tabindex","0"):(e.classList.add("horizontal-scroll--no-overflow"),t?.removeAttribute("tabindex")))};var N=e=>{let t=e.parentElement;return t?t.classList.contains("nav")?t:N(t):e},P=(e,t=null)=>{let n="nav--toggled";e.forEach(i=>{let r=i.querySelector(".nav__toggle");i!==t&&(i.classList.contains(n)&&(r.focus(),r.setAttribute("aria-expanded","false")),i.classList.remove(n))})},W=e=>{let t=r=>{let s=N(r),o=s.querySelector(".nav__items"),c=o?.querySelector(".nav__item:last-of-type");o?.classList.add("nav__items--fadeout");let f=o?.querySelector(".nav__item--is-overflown");f&&f.focus();let u=()=>{s.classList.toggle("nav--toggled"),o?.classList.remove("nav__items--fadeout"),c?.removeEventListener("transitionend",u)};return c?.addEventListener("transitionend",u),s},n=[];return document.querySelectorAll(".nav__toggle").forEach(r=>{let s=()=>{let o=t(r),c=r.getAttribute("aria-expanded");r.setAttribute("aria-expanded",c==="false"?"true":"false"),P(e,o)};n.push({element:r,clickEvent:s}),r.addEventListener("click",s)}),n},w=(e,t)=>{let n="nav--toggled",i="nav__items";t.classList.remove(n);let r=t.querySelector(`.${i}`);if(r){let o=r.querySelectorAll(".nav__item"),c="nav__item--is-overflown",f="nav--has-overflow",u="nav__item--active",a=!1;for(let l=o.length-1;l>=0;l-=1){let d=o[l];d.offsetTop>0?(d.classList.add(c),t.classList.add(f),a=!0):d.classList.contains(u)||d.classList.remove(c)}if(!a){t.classList.remove(f);let l=t.querySelector(`.${u}`);l&&l.classList.remove(c)}}let s=o=>{!o.target.classList.contains("nav__toggle")&&!E(o,i)&&P(e)};return document.querySelector("body")?.addEventListener("click",s),{element:document.querySelector("body"),clickEvent:s}};var I=e=>{let t=e.querySelector("thead"),n=e.querySelector("tbody"),i=e.querySelector("tfoot");if(t){let r=[];t.querySelectorAll("th").forEach(c=>{c.classList.contains("table__cell--self-explanatory")?r.push(""):r.push(c.innerHTML)});let o=[];n&&o.push(n),i&&o.push(i),o.forEach(c=>{c.querySelectorAll("tr").forEach(u=>{u.querySelectorAll("td, th").forEach((l,d)=>{r[d]&&l.setAttribute("data-label",r[d])})})})}};var K=e=>e.contains("tabbed-content--hide-tabs-on-medium-width")?parseInt(getComputedStyle(document.documentElement).getPropertyValue("--bp-medium").replace("rem",""),10):e.contains("tabbed-content--hide-tabs-on-wide-width")?parseInt(getComputedStyle(document.documentElement).getPropertyValue("--bp-wide").replace("rem",""),10):-1,j=e=>{let n=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)/k(),i=K(e);return i>-1?n<i:!0},F=e=>{let n=e.querySelector(".nav__items")?.querySelectorAll("a"),i=[];e.querySelectorAll("section").forEach(s=>{s.parentNode===e&&i.push(s)}),n?.forEach(s=>{s.removeAttribute("aria-selected"),s.classList.remove("nav__item--active")}),i.forEach(s=>{s.hidden=!1,s.removeAttribute("role")})};var T=(e,t,n,i,r,s=!0,o=c=>console.log(c))=>{s&&i.focus(),i.removeAttribute("tabindex"),i.setAttribute("aria-selected","true"),i.classList.contains("switch__segment")?i.classList.add("switch__segment--active"):i.classList.add("nav__item--active"),n&&(n.removeAttribute("aria-selected"),n.setAttribute("tabindex","-1"),n.classList.contains("switch__segment")?n.classList.remove("switch__segment--active"):n.classList.remove("nav__item--active"));let c=Array.prototype.indexOf.call(e,i);if(Array.from(document.querySelectorAll(`[data-for="${t[c].id}"]`)).forEach(u=>{u.classList.add("tabbed-content-peripheral--active"),u.hidden=!1}),t[c].hidden=!1,n){let u=Array.prototype.indexOf.call(e,n);Array.from(document.querySelectorAll(`[data-for="${t[u].id}"]`)).forEach(l=>{l.classList.remove("tabbed-content-peripheral--active"),l.hidden=!0}),t[u].hidden=!0}i.dispatchEvent(new CustomEvent("switch-tab",{bubbles:!0,detail:{tab:c}})),o(c)},X=(e,t,n=0,i=!0,r=s=>console.log(s))=>{let s=t.querySelector(".switch,.nav__items"),o=s.querySelectorAll("a"),c=[];t.querySelectorAll("section").forEach(a=>{a.parentNode===t&&c.push(a)});let u=t.querySelector("button.tabbed-content__expand-all");if(u){let a=()=>{s.hidden=!0,c.forEach(l=>{l.hidden=!1})};u.removeEventListener("click",a),u.addEventListener("click",a)}s.setAttribute("role","tablist"),o.forEach((a,l)=>{a.setAttribute("role","tab"),a.setAttribute("id",`tab${e}_${l+1}`),a.setAttribute("tabindex","-1"),a.parentElement?.setAttribute("role","presentation");let d=m=>{m.preventDefault();let b=s.querySelector("[aria-selected]");m.currentTarget!==b&&T(o,c,b,m.currentTarget,t.classList,!0,h=>{r(h)})};a.removeEventListener("click",d),a.addEventListener("click",d);let v=m=>{let b=Array.prototype.indexOf.call(o,m.currentTarget),h=null;m.key==="ArrowLeft"&&(h=b-1),m.key==="ArrowRight"&&(h=b+1),m.key==="ArrowDown"&&(h="down"),h!==null&&(m.preventDefault(),h==="down"?c[l].focus():o[h]&&T(o,c,m.currentTarget,o[h],t.classList,!0,V=>{r(V)}))};a.removeEventListener("keydown",v),a.addEventListener("keydown",v)}),c.forEach((a,l)=>{a.setAttribute("tabindex","-1"),a.setAttribute("aria-labelledby",o[l].id),a.hidden=!0,a.setAttribute("role","tabpanel")}),n>-1&&T(o,c,null,o[n],t.classList,i)},A=e=>{e.forEach((t,n)=>{let{rendered:i,domElement:r}=t;if(j(r.classList)){if(!i){let s=r.getAttribute("data-focus-onload"),o=r.getAttribute("data-initial-tab"),c=o?parseInt(o,10):0;X(n,r,c,s!=="false"),t.rendered=!0}}else i&&(F(r),t.rendered=!1)})};var M=(e,t,n,i)=>{let r=[],s=(a,l,d)=>{d&&l.focus();let v=()=>{e.setAttribute("hidden","hidden"),a.removeAttribute("hidden"),a.setAttribute("aria-expanded","false"),a.focus()};return l.addEventListener("click",v),v},o=e?.parentElement?.querySelector(".content-toggle__toggle"),c=e.querySelectorAll(".content-toggle__close"),f=()=>{p("--bp-medium")&&e.classList.contains("content-toggle__content--always-show-on-medium")||p("--bp-wide")&&e.classList.contains("content-toggle__content--always-show-on-wide")||p("--bp-max-width")&&e.classList.contains("content-toggle__content--always-show-on-max-width")?(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden")):(e.classList.contains("content-toggle__content--always-show-on-medium")||e.classList.contains("content-toggle__content--always-show-on-wide")||e.classList.contains("content-toggle__content--always-show-on-max-width"))&&(e.removeAttribute("hidden"),o.setAttribute("hidden","hidden"))};if(window.addEventListener("resize",()=>{f()}),(()=>{document.addEventListener("click",a=>{let l=a.target,d=!l.classList.contains("content-toggle__content"),v=!l.classList.contains("content-toggle__toggle"),m=!l.classList.contains("profile-header__info__contact__toggle__button");d&&v&&m&&(!p("--bp-medium")&&e.classList.contains("content-toggle__content--is-popover--on-medium")?(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),o.setAttribute("aria-expanded","false"),o.focus(),console.log(1)):!p("--bp-wide")&&e.classList.contains("content-toggle__content--is-popover--on-wide")?(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),o.setAttribute("aria-expanded","false"),o.focus(),console.log(2)):!p("--bp-max-width")&&e.classList.contains("content-toggle__content--is-popover--on-max-width")?(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),o.setAttribute("aria-expanded","false"),o.focus(),console.log(3)):e.classList.contains("content-toggle__content--is-popover")&&(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),o.setAttribute("aria-expanded","false"),o.focus(),console.log(4)))})})(),f(),o){let a=()=>{let l=o.getAttribute("aria-expanded");typeof n=="function"&&l==="false"&&n(e,o),o.setAttribute("aria-expanded",l==="false"?"true":"false"),l==="true"?e.setAttribute("hidden","hidden"):e.removeAttribute("hidden"),typeof t=="function"&&t(e,o),o.hasAttribute("aria-haspopup")&&(o.setAttribute("hidden","hidden"),c.forEach(d=>{s(o,d,!0)})),typeof i=="function"&&i(e,o)};o.addEventListener("click",a),r.push({element:o,clickEvent:a}),c.forEach(l=>{let d=s(o,l,!1);r.push({element:l,clickEvent:d})})}return r};var O=()=>{let e=document.querySelector("body");(p("--bp-medium")||p("--bp-low-height"))&&e?.classList.add("body--no-scroll")},z=()=>{document.querySelector("body")?.classList.remove("body--no-scroll")},S=e=>{e.querySelectorAll(".content-toggle__toggle").forEach(n=>{let i=n.parentElement?.querySelector(".content-toggle__content");n.setAttribute("aria-expanded","false"),i?.setAttribute("hidden","hidden")})};var g=e=>{let t=e.parentElement;return t?t.classList.contains("toolbar")?t:g(t):e},B=e=>{if(!p("--bp-medium")&&!p("--bp-low-height")){let t=y(parseInt(getComputedStyle(document.documentElement).getPropertyValue("--toolbar-popout-allowed-edge-distance").replace("rem,",""),10)),n=parseInt(getComputedStyle(e).width.replace("px",""),10),i=e.getBoundingClientRect().x,r=document.body.offsetWidth-t-n-i;r<0&&e.style.setProperty("--toolbar-popout-edge-overflow",`${r}px`)}};var U=e=>{e&&e.forEach(t=>{let n=t?.parentElement?.parentElement?.parentElement?.parentElement;if(n){let i=n.querySelectorAll(".horizontal-scroll__scrollable-content"),r=n.querySelectorAll(".switch__segment");i.forEach(s=>{s&&(t.addEventListener("click",()=>{let o=.8*s.clientWidth;s.scrollLeft+=o}),s.addEventListener("scroll",()=>{s.scrollLeft+s.clientWidth>=s.scrollWidth*.98?x(t):s.scrollLeft+s.clientWidth<s.scrollWidth&&H(t)}),r&&r.forEach(o=>{o.addEventListener("click",()=>{H(t),s.scrollLeft=0})}))})}})},R=e=>{e&&e.forEach(t=>{let n=t?.parentElement?.parentElement?.parentElement?.parentElement;if(n){let i=n.querySelectorAll(".horizontal-scroll__scrollable-content"),r=n.querySelectorAll(".switch__segment");i.forEach(s=>{s&&(t.addEventListener("click",()=>{let o=.8*s.clientWidth;s.scrollLeft-=o}),s.addEventListener("scroll",()=>{s.scrollLeft<=0?x(t):s.scrollLeft>0&&H(t)})),r&&r.forEach(o=>{o.addEventListener("click",()=>{x(t)})})})}})};function H(e){e.classList.remove("visually-disabled"),e.setAttribute("aria-disabled","false")}function x(e){e.classList.add("visually-disabled"),e.setAttribute("aria-disabled","true")}var _=0;C(()=>{let e=document.querySelectorAll(".tabbed-content"),t=[];e.forEach(l=>t.push({domElement:l,rendered:!1})),A(t),q();let n=document.querySelectorAll(".nav:not(.nav--vertical)");n.forEach(l=>w(n,l)),W(n),document.querySelectorAll(".table--wrap-medium-width, .table--wrap-default-width").forEach(l=>I(l)),document.querySelectorAll(".box .content-toggle__content, .profile-header .content-toggle__content, .design-documentation .content-toggle__content").forEach(l=>{M(l)});let s=document.querySelectorAll(".button.button--small.button--icon.button--icon--hide-label.icon-next"),o=document.querySelectorAll(".button.button--small.button--icon.button--icon--hide-label.icon-previous");U(s),R(o),document.querySelectorAll(".horizontal-scroll").forEach(l=>{L(l),window.addEventListener("resize",()=>{L(l)})}),document.querySelectorAll(".switch__segment").forEach(l=>{l.addEventListener("click",()=>{document.querySelectorAll(".horizontal-scroll").forEach(v=>{L(v)})})}),document.querySelectorAll(".toolbar .content-toggle__content").forEach(l=>{M(l,d=>{B(d),O()},d=>S(g(d)),(d,v)=>{let m=v.getAttribute("aria-expanded"),b=g(d);m==="true"?b?.classList.add("toolbar--has-popout"):b?.classList.remove("toolbar--has-popout"),d.addEventListener("click",h=>{h.target.classList.contains("toolbar__popout")&&!E(h,"toolbar__filter__content")&&(S(b),z())})})}),window.addEventListener("load",()=>{_=window.innerWidth}),window.addEventListener("resize",()=>{_>0&&window.innerWidth!==_&&(_=window.innerWidth,n.forEach(l=>w(n,l)),A(t))});let a=document.querySelector(".omnibus-header__mobile-scroll");window.addEventListener("scroll",function(){a&&(window.scrollY>70?(a.classList.add("omnibus-header__mobile-scroll--show"),a.classList.remove("omnibus-header__mobile-scroll--hide")):(a.classList.remove("omnibus-header__mobile-scroll--show"),a.classList.add("omnibus-header__mobile-scroll--hide")))})});})();
1
+ (()=>{var J=e=>{document.readyState!=="loading"?e():document.addEventListener("DOMContentLoaded",e)},W=J;var g=e=>{navigator.clipboard.writeText(e).then(()=>console.log(`${e} written to clipboard`))},b=(e,t)=>{let o=!1;return e.composedPath().forEach(i=>{i.classList&&i.classList.contains(t)&&(o=!0)}),o},z=()=>{let e=document.querySelector("body");if(e){let t=window.getComputedStyle(e).getPropertyValue("--color-background"),o=document.querySelector('meta[name="theme-color"]');if(o)o.content=t;else{let l=document.createElement("meta");l.name="theme-color",l.content=t,document.getElementsByTagName("head")[0].appendChild(l)}}},O=()=>parseInt(window.getComputedStyle(document.documentElement).fontSize.replace("px",""),10),A=e=>e*16,v=e=>{let t=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),o=A(parseInt(getComputedStyle(document.documentElement).getPropertyValue(e).replace("rem",""),10));return t<o};var Z=e=>e.offsetWidth!==e.scrollWidth;var _=e=>{e.classList.contains("horizontal-scroll--no-overflow")&&e.classList.remove("horizontal-scroll--no-overflow");let t=e.querySelector(".horizontal-scroll--check-overflow .tabbed-content__section:not([hidden]) .horizontal-scroll__scrollable-content");t===null&&!t&&(t=e.querySelector(".horizontal-scroll--check-overflow .horizontal-scroll__scrollable-content")),t&&(Z(t)?t?.setAttribute("tabindex","0"):(e.classList.add("horizontal-scroll--no-overflow"),t?.removeAttribute("tabindex")))};var U=e=>{let t=e.parentElement;return t?t.classList.contains("nav")?t:U(t):e},V=(e,t=null)=>{let o="nav--toggled";e.forEach(l=>{let i=l.querySelector(".nav__toggle");l!==t&&(l.classList.contains(o)&&(i.focus(),i.setAttribute("aria-expanded","false")),l.classList.remove(o))})},R=e=>{let t=i=>{let s=U(i),n=s.querySelector(".nav__items"),r=n?.querySelector(".nav__item:last-of-type");n?.classList.add("nav__items--fadeout");let f=n?.querySelector(".nav__item--is-overflown");f&&f.focus();let u=()=>{s.classList.toggle("nav--toggled"),n?.classList.remove("nav__items--fadeout"),r?.removeEventListener("transitionend",u)};return r?.addEventListener("transitionend",u),s},o=[];return document.querySelectorAll(".nav__toggle").forEach(i=>{let s=()=>{let n=t(i),r=i.getAttribute("aria-expanded");i.setAttribute("aria-expanded",r==="false"?"true":"false"),V(e,n)};o.push({element:i,clickEvent:s}),i.addEventListener("click",s)}),o},H=(e,t)=>{let o="nav--toggled",l="nav__items";t.classList.remove(o);let i=t.querySelector(`.${l}`);if(i){let n=i.querySelectorAll(".nav__item"),r="nav__item--is-overflown",f="nav--has-overflow",u="nav__item--active",a=!1;for(let c=n.length-1;c>=0;c-=1){let m=n[c];m.offsetTop>0?(m.classList.add(r),t.classList.add(f),a=!0):m.classList.contains(u)||m.classList.remove(r)}if(!a){t.classList.remove(f);let c=t.querySelector(`.${u}`);c&&c.classList.remove(r)}}let s=n=>{!n.target.classList.contains("nav__toggle")&&!b(n,l)&&V(e)};return document.querySelector("body")?.addEventListener("click",s),{element:document.querySelector("body"),clickEvent:s}};var B=(e,t,o,l,i)=>{if(l&&o){g(l.innerText),t.classList.add("copy-to-clipboard--confirm"),t===o&&t.classList.add("copy-to-clipboard--done");let s=document.createElement("span");s.classList.add("copy-to-clipboard__this__confirm-message"),s.innerText=e,l.appendChild(s),o.removeEventListener("click",i),setTimeout(()=>{t.classList.remove("copy-to-clipboard--confirm"),s.remove(),o.addEventListener("click",i)},1200)}},$=(e,t="Kopieret!")=>{let o=e.querySelector(".copy-to-clipboard__this");if(e.type==="button"){let l=()=>{B(t,e,e,o,l)};e.addEventListener("click",l)}else{let l=e.querySelector(".copy-to-clipboard__execute"),i=()=>{B(t,e,l,o,i)};l?.addEventListener("click",i)}};var ee=()=>{let e=document.querySelectorAll(".copy-to-clipboard"),t=document.querySelectorAll(".copy-to-clipboard__color");e.forEach(o=>{o.addEventListener("click",()=>{let l=o.parentElement?.querySelector(".copy-to-clipboard__color");if(l){let i=getComputedStyle(l).getPropertyValue("background-color"),s=te(i);console.log(s),g(s.replace(/"/g,""))}})})};function te(e){var t=e.match(/\d+/g),o="#"+t.map(function(l){var i=parseInt(l).toString(16);return i.length===1?"0"+i:i}).join("");return o}var D=ee;var K=e=>{let t=e.querySelector("thead"),o=e.querySelector("tbody"),l=e.querySelector("tfoot");if(t){let i=[];t.querySelectorAll("th").forEach(r=>{r.classList.contains("table__cell--self-explanatory")?i.push(""):i.push(r.innerHTML)});let n=[];o&&n.push(o),l&&n.push(l),n.forEach(r=>{r.querySelectorAll("tr").forEach(u=>{u.querySelectorAll("td, th").forEach((c,m)=>{i[m]&&c.setAttribute("data-label",i[m])})})})}};var oe=e=>e.contains("tabbed-content--hide-tabs-on-medium-width")?parseInt(getComputedStyle(document.documentElement).getPropertyValue("--bp-medium").replace("rem",""),10):e.contains("tabbed-content--hide-tabs-on-wide-width")?parseInt(getComputedStyle(document.documentElement).getPropertyValue("--bp-wide").replace("rem",""),10):-1,ne=e=>{let o=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)/O(),l=oe(e);return l>-1?o<l:!0},se=e=>{let o=e.querySelector(".nav__items")?.querySelectorAll("a"),l=[];e.querySelectorAll("section").forEach(s=>{s.parentNode===e&&l.push(s)}),o?.forEach(s=>{s.removeAttribute("aria-selected"),s.classList.remove("nav__item--active")}),l.forEach(s=>{s.hidden=!1,s.removeAttribute("role")})};var S=(e,t,o,l,i,s=!0,n=r=>console.log(r))=>{s&&l.focus(),l.removeAttribute("tabindex"),l.setAttribute("aria-selected","true"),l.classList.contains("switch__segment")?l.classList.add("switch__segment--active"):l.classList.add("nav__item--active"),o&&(o.removeAttribute("aria-selected"),o.setAttribute("tabindex","-1"),o.classList.contains("switch__segment")?o.classList.remove("switch__segment--active"):o.classList.remove("nav__item--active"));let r=Array.prototype.indexOf.call(e,l);if(Array.from(document.querySelectorAll(`[data-for="${t[r].id}"]`)).forEach(u=>{u.classList.add("tabbed-content-peripheral--active"),u.hidden=!1}),t[r].hidden=!1,o){let u=Array.prototype.indexOf.call(e,o);Array.from(document.querySelectorAll(`[data-for="${t[u].id}"]`)).forEach(c=>{c.classList.remove("tabbed-content-peripheral--active"),c.hidden=!0}),t[u].hidden=!0}l.dispatchEvent(new CustomEvent("switch-tab",{bubbles:!0,detail:{tab:r}})),n(r)},le=(e,t,o=0,l=!0,i=s=>console.log(s))=>{let s=t.querySelector(".switch,.nav__items"),n=s.querySelectorAll("a"),r=[];t.querySelectorAll("section").forEach(a=>{a.parentNode===t&&r.push(a)});let u=t.querySelector("button.tabbed-content__expand-all");if(u){let a=()=>{s.hidden=!0,r.forEach(c=>{c.hidden=!1})};u.removeEventListener("click",a),u.addEventListener("click",a)}s.setAttribute("role","tablist"),n.forEach((a,c)=>{a.setAttribute("role","tab"),a.setAttribute("id",`tab${e}_${c+1}`),a.setAttribute("tabindex","-1"),a.parentElement?.setAttribute("role","presentation");let m=d=>{d.preventDefault();let E=s.querySelector("[aria-selected]");d.currentTarget!==E&&S(n,r,E,d.currentTarget,t.classList,!0,h=>{i(h)})};a.removeEventListener("click",m),a.addEventListener("click",m);let p=d=>{let E=Array.prototype.indexOf.call(n,d.currentTarget),h=null;d.key==="ArrowLeft"&&(h=E-1),d.key==="ArrowRight"&&(h=E+1),d.key==="ArrowDown"&&(h="down"),h!==null&&(d.preventDefault(),h==="down"?r[c].focus():n[h]&&S(n,r,d.currentTarget,n[h],t.classList,!0,w=>{i(w)}))};a.removeEventListener("keydown",p),a.addEventListener("keydown",p)}),r.forEach((a,c)=>{a.setAttribute("tabindex","-1"),a.setAttribute("aria-labelledby",n[c].id),a.hidden=!0,a.setAttribute("role","tabpanel")}),o>-1&&S(n,r,null,n[o],t.classList,l)},x=e=>{e.forEach((t,o)=>{let{rendered:l,domElement:i}=t;if(ne(i.classList)){if(!l){let s=i.getAttribute("data-focus-onload"),n=i.getAttribute("data-initial-tab"),r=n?parseInt(n,10):0;le(o,i,r,s!=="false"),t.rendered=!0}}else l&&(se(i),t.rendered=!1)})};var C=(e,t,o,l)=>{let i=[],s=(a,c,m)=>{m&&c.focus();let p=()=>{e.setAttribute("hidden","hidden"),a.removeAttribute("hidden"),a.setAttribute("aria-expanded","false"),a.focus()};return c.addEventListener("click",p),p},n=e?.parentElement?.querySelector(".content-toggle__toggle"),r=e.querySelectorAll(".content-toggle__close"),f=()=>{v("--bp-medium")&&e.classList.contains("content-toggle__content--always-show-on-medium")||v("--bp-wide")&&e.classList.contains("content-toggle__content--always-show-on-wide")||v("--bp-max-width")&&e.classList.contains("content-toggle__content--always-show-on-max-width")?(n.removeAttribute("hidden"),e.setAttribute("hidden","hidden")):e.classList.contains("content-toggle__content--always-show-on-medium")||e.classList.contains("content-toggle__content--always-show-on-wide")||e.classList.contains("content-toggle__content--always-show-on-max-width")};if(window.addEventListener("resize",()=>{f()}),(()=>{document.addEventListener("click",a=>{let c=a.target,m=!c.classList.contains("content-toggle__content"),p=!c.classList.contains("content-toggle__toggle"),d=!c.classList.contains("profile-header__info__contact__toggle__button");m&&p&&d&&(!v("--bp-medium")&&e.classList.contains("content-toggle__content--is-popover--on-medium")||!v("--bp-wide")&&e.classList.contains("content-toggle__content--is-popover--on-wide")||!v("--bp-max-width")&&e.classList.contains("content-toggle__content--is-popover--on-max-width")||e.classList.contains("content-toggle__content--is-popover"))&&(n.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),n.setAttribute("aria-expanded","false"),n.focus())})})(),f(),n){let a=()=>{let c=n.getAttribute("aria-expanded");typeof o=="function"&&c==="false"&&o(e,n),n.setAttribute("aria-expanded",c==="false"?"true":"false"),c==="true"?e.setAttribute("hidden","hidden"):e.removeAttribute("hidden"),typeof t=="function"&&t(e,n),n.hasAttribute("aria-haspopup")&&(n.setAttribute("hidden","hidden"),r.forEach(m=>{s(n,m,!0)})),typeof l=="function"&&l(e,n)};n.addEventListener("click",a),i.push({element:n,clickEvent:a}),r.forEach(c=>{let m=s(n,c,!1);i.push({element:c,clickEvent:m})})}return i};var j=()=>{let e=document.querySelector("body");(v("--bp-medium")||v("--bp-low-height"))&&e?.classList.add("body--no-scroll")},F=()=>{document.querySelector("body")?.classList.remove("body--no-scroll")},q=e=>{e.querySelectorAll(".content-toggle__toggle").forEach(o=>{let l=o.parentElement?.querySelector(".content-toggle__content");o.setAttribute("aria-expanded","false"),l?.setAttribute("hidden","hidden")})};var T=e=>{let t=e.parentElement;return t?t.classList.contains("toolbar")?t:T(t):e},X=e=>{if(!v("--bp-medium")&&!v("--bp-low-height")){let t=A(parseInt(getComputedStyle(document.documentElement).getPropertyValue("--toolbar-popout-allowed-edge-distance").replace("rem,",""),10)),o=parseInt(getComputedStyle(e).width.replace("px",""),10),l=e.getBoundingClientRect().x,i=document.body.offsetWidth-t-o-l;i<0&&e.style.setProperty("--toolbar-popout-edge-overflow",`${i}px`)}};var Y=e=>{e&&e.forEach(t=>{let o=t?.parentElement?.parentElement?.parentElement?.parentElement;if(o){let l=o.querySelectorAll(".horizontal-scroll__scrollable-content"),i=o.querySelectorAll(".switch__segment");l.forEach(s=>{s&&(t.addEventListener("click",()=>{let n=.8*s.clientWidth;s.scrollLeft+=n}),s.addEventListener("scroll",()=>{s.scrollLeft+s.clientWidth>=s.scrollWidth*.98?I(t):s.scrollLeft+s.clientWidth<s.scrollWidth&&k(t)}),i&&i.forEach(n=>{n.addEventListener("click",()=>{k(t),s.scrollLeft=0})}))})}})},Q=e=>{e&&e.forEach(t=>{let o=t?.parentElement?.parentElement?.parentElement?.parentElement;if(o){let l=o.querySelectorAll(".horizontal-scroll__scrollable-content"),i=o.querySelectorAll(".switch__segment");l.forEach(s=>{s&&(t.addEventListener("click",()=>{let n=.8*s.clientWidth;s.scrollLeft-=n}),s.addEventListener("scroll",()=>{s.scrollLeft<=0?I(t):s.scrollLeft>0&&k(t)})),i&&i.forEach(n=>{n.addEventListener("click",()=>{I(t)})})})}})};function k(e){e.classList.remove("visually-disabled"),e.setAttribute("aria-disabled","false")}function I(e){e.classList.add("visually-disabled"),e.setAttribute("aria-disabled","true")}function N(e){e&&e.addEventListener("input",function(t){let o=e?.parentNode;o&&o.dataset&&(o.dataset.value=this.value)})}function L(e,t,o,l,i){let s=t?.value,n=s?.length;if(t&&s&&(t.textContent=s,n=s?.length,n&&l&&i&&o)){let f=parseInt(o,10)-n,u=Math.abs(f);i.textContent&&(i.textContent=i.textContent.replace(/\d+/,String(u))),l.textContent&&(l.textContent=l.textContent.replace(/\d+/,String(u))),f<0&&(e.classList.add("form__field__character-count--overflow"),e.setAttribute("aria-invalid","true")),f>=0&&(e.classList.remove("form__field__character-count--overflow"),e.setAttribute("aria-invalid","false"))}}function G(e){if(e){let t=e.querySelector("textarea"),o=e.querySelector("input"),l=e.getAttribute("data-recommended-length"),i=e.getAttribute("data-allowed-length"),s=e.querySelector(".form__field__character-count__info__count-down"),n=e.querySelector(".form__field__character-count__info__overflow-count");L(e,t,l,s,n),L(e,t,i,s,n),L(e,o,l,s,n),L(e,o,i,s,n),t?.addEventListener("input",function(){L(e,t,l,s,n),L(e,t,i,s,n)}),o?.addEventListener("input",function(){L(e,o,l,s,n),L(e,o,i,s,n)})}}var y=0;W(()=>{let e=document.querySelectorAll(".tabbed-content"),t=[];e.forEach(d=>t.push({domElement:d,rendered:!1})),x(t),z();let o=document.querySelectorAll(".nav:not(.nav--vertical)");o.forEach(d=>H(o,d)),R(o),document.querySelectorAll(".table--wrap-medium-width, .table--wrap-default-width").forEach(d=>K(d)),document.querySelectorAll(".form__field__character-count").forEach(d=>{G(d)});let s=document.getElementById("autoexpand");N(s),window.onload=function(){N(s)},document.querySelectorAll(".copy-to-clipboard").forEach(d=>$(d,document.querySelector("html")?.getAttribute("lang")==="en"?"Hexcode copied!":"Hexkode kopieret!")),D(),document.querySelectorAll(".content-toggle__content:not(.toolbar .content-toggle__content)").forEach(d=>{C(d)});let f=document.querySelectorAll(".button.button--small.button--icon.button--icon--hide-label.icon-next"),u=document.querySelectorAll(".button.button--small.button--icon.button--icon--hide-label.icon-previous");Y(f),Q(u),document.querySelectorAll(".horizontal-scroll").forEach(d=>{_(d),window.addEventListener("resize",()=>{_(d)})}),document.querySelectorAll(".switch__segment").forEach(d=>{d.addEventListener("click",()=>{document.querySelectorAll(".horizontal-scroll").forEach(h=>{_(h)})})}),document.querySelectorAll(".toolbar .content-toggle__content").forEach(d=>{C(d,E=>{X(E),j()},E=>q(T(E)),(E,h)=>{let w=h.getAttribute("aria-expanded"),M=T(E);w==="true"?M?.classList.add("toolbar--has-popout"):M?.classList.remove("toolbar--has-popout"),E.addEventListener("click",P=>{P.target.classList.contains("toolbar__popout")&&!b(P,"toolbar__filter__content")&&(q(M),F())})})}),window.addEventListener("load",()=>{y=window.innerWidth}),window.addEventListener("resize",()=>{y>0&&window.innerWidth!==y&&(y=window.innerWidth,o.forEach(d=>H(o,d)),x(t))});let p=document.querySelector(".omnibus-header__mobile-scroll");window.addEventListener("scroll",function(){p&&(window.scrollY>70?(p.classList.add("omnibus-header__mobile-scroll--show"),p.classList.remove("omnibus-header__mobile-scroll--hide")):(p.classList.remove("omnibus-header__mobile-scroll--show"),p.classList.add("omnibus-header__mobile-scroll--hide")))})});})();
2
2
  //# sourceMappingURL=app.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../source/js/components/ready.ts", "../../source/js/components/helpers.ts", "../../source/js/components/nav.ts", "../../source/js/components/table.ts", "../../source/js/components/tabs.ts", "../../source/js/components/content-toggle.ts", "../../source/js/components/toolbar.ts", "../../source/js/components/horizontal-scroll-btn.ts", "../../source/js/production/app.ts"],
4
- "sourcesContent": ["/* eslint-env browser */\r\nconst ready = (fn: () => void): void => {\r\n if (document.readyState !== 'loading') {\r\n fn();\r\n } else {\r\n document.addEventListener('DOMContentLoaded', fn);\r\n }\r\n};\r\n\r\nexport default ready;\r\n", "/* eslint-disable wrap-iife */\r\n/* eslint-disable import/prefer-default-export */\r\n/* eslint-env browser */\r\nconst copyToClipboard = (str: string): void => {\r\n // eslint-disable-next-line no-console\r\n navigator.clipboard.writeText(str).then(() => console.log(`${str} written to clipboard`));\r\n};\r\n\r\nconst isElementWithClassNameInEventPath = (event: MouseEvent, className: string): boolean => {\r\n let found = false;\r\n const path = event.composedPath();\r\n path.forEach((p: EventTarget): void => {\r\n if ((p as HTMLElement).classList) {\r\n if ((p as HTMLElement).classList.contains(className)) {\r\n found = true;\r\n }\r\n }\r\n });\r\n return found;\r\n};\r\n\r\nconst setMetaThemeColor = (): void => {\r\n const body = document.querySelector('body');\r\n if (body) {\r\n const bgColor = window.getComputedStyle(body).getPropertyValue('--color-background');\r\n const existingMeta = document.querySelector('meta[name=\"theme-color\"]') as HTMLMetaElement;\r\n if (existingMeta) {\r\n existingMeta.content = bgColor;\r\n } else {\r\n const meta = document.createElement('meta');\r\n meta.name = 'theme-color';\r\n meta.content = bgColor;\r\n document.getElementsByTagName('head')[0].appendChild(meta);\r\n }\r\n }\r\n};\r\n\r\nconst getBaseFontSize = (): number => parseInt(window.getComputedStyle(document.documentElement).fontSize.replace('px', ''), 10);\r\n\r\n// eslint-disable-next-line max-len\r\nconst convertRemToPixels = (rem: number): number => rem * 16;\r\n\r\nconst isViewportBelow = (mediaQuery: string): boolean => {\r\n const viewportWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n const mediaQueryValue = convertRemToPixels(parseInt(getComputedStyle(document.documentElement).getPropertyValue(mediaQuery).replace('rem', ''), 10));\r\n return viewportWidth < mediaQueryValue;\r\n};\r\n\r\nconst setScrollbarWidthVariable = (): void => {\r\n const scrollbarWidth = window.innerWidth - document.body.clientWidth;\r\n document.documentElement.style.setProperty('--vertical-scrollbar-width', `${scrollbarWidth}px`);\r\n};\r\n\r\nconst overflowsY = (element: HTMLElement): boolean => element.offsetHeight !== element.scrollHeight;\r\nconst overflowsX = (element: HTMLElement): boolean => element.offsetWidth !== element.scrollWidth;\r\n// eslint-disable-next-line max-len\r\nconst elementOverflows = (element: HTMLElement): boolean => overflowsY(element) || overflowsX(element);\r\n\r\nconst setHorizontalScroll = (element: HTMLElement): void => {\r\n // Checks if the element already contains no-overflow\r\n if (element.classList.contains('horizontal-scroll--no-overflow')) {\r\n element.classList.remove('horizontal-scroll--no-overflow');\r\n }\r\n\r\n // Defines of content of horizontal scroll \r\n let content = element.querySelector('.horizontal-scroll--check-overflow .tabbed-content__section:not([hidden]) .horizontal-scroll__scrollable-content');\r\n if (content === null && !content) {\r\n content = element.querySelector('.horizontal-scroll--check-overflow .horizontal-scroll__scrollable-content');\r\n }\r\n\r\n // Checks if no-overflow should be added or not depending on content width\r\n if (content) {\r\n if (!overflowsX(content as HTMLElement)) {\r\n element.classList.add('horizontal-scroll--no-overflow');\r\n content?.removeAttribute('tabindex');\r\n } else {\r\n content?.setAttribute('tabindex', '0');\r\n }\r\n }\r\n};\r\n\r\nconst focusableSelector = 'a[href]:not([tabindex=\"-1\"]), area[href]:not([tabindex=\"-1\"]), input:not([disabled]):not([tabindex=\"-1\"]), select:not([disabled]):not([tabindex=\"-1\"]), textarea:not([disabled]):not([tabindex=\"-1\"]), button:not([disabled]):not([tabindex=\"-1\"]), iframe:not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"]), [contentEditable=true]:not([tabindex=\"-1\"])';\r\n\r\nexport {\r\n copyToClipboard,\r\n isElementWithClassNameInEventPath,\r\n getBaseFontSize,\r\n setMetaThemeColor,\r\n isViewportBelow,\r\n convertRemToPixels,\r\n setScrollbarWidthVariable,\r\n overflowsX,\r\n overflowsY,\r\n elementOverflows,\r\n setHorizontalScroll,\r\n focusableSelector,\r\n};\r\n", "/* eslint-env browser */\r\nimport { copyToClipboard, isElementWithClassNameInEventPath } from './helpers';\r\n\r\nconst findNav = (element: HTMLElement): HTMLElement => {\r\n const parent = element.parentElement;\r\n if (parent) {\r\n if (parent.classList.contains('nav')) {\r\n return parent;\r\n }\r\n return findNav(parent);\r\n }\r\n return element;\r\n};\r\n\r\n// eslint-disable-next-line max-len\r\nconst closeResponsiveNav = (navElements: NodeListOf<Element>, keepOpen: HTMLElement | null = null): void => {\r\n const navToggledClass = 'nav--toggled';\r\n navElements.forEach((n) => {\r\n const button = n.querySelector('.nav__toggle') as HTMLElement;\r\n if (n !== keepOpen) {\r\n if (n.classList.contains(navToggledClass)) {\r\n button.focus();\r\n button.setAttribute('aria-expanded', 'false');\r\n }\r\n n.classList.remove(navToggledClass);\r\n }\r\n });\r\n};\r\n\r\nconst setResponsiveToggle = (navElements: NodeListOf<Element>): CleanUpPair[] => {\r\n const toggleMenu = (button: HTMLElement) => {\r\n const parent = findNav(button);\r\n\r\n const navItems = parent.querySelector('.nav__items');\r\n const lastNavItem = navItems?.querySelector('.nav__item:last-of-type');\r\n navItems?.classList.add('nav__items--fadeout');\r\n const firstElement = navItems?.querySelector('.nav__item--is-overflown') as HTMLElement;\r\n if (firstElement) {\r\n firstElement.focus();\r\n }\r\n\r\n const transitionListener = () => {\r\n parent.classList.toggle('nav--toggled');\r\n navItems?.classList.remove('nav__items--fadeout');\r\n lastNavItem?.removeEventListener('transitionend', transitionListener);\r\n };\r\n\r\n lastNavItem?.addEventListener('transitionend', transitionListener);\r\n return parent;\r\n };\r\n\r\n const cleanUp: CleanUpPair[] = [];\r\n\r\n const toggle = document.querySelectorAll('.nav__toggle');\r\n toggle.forEach((button) => {\r\n const clickEvent = () => {\r\n const nav = toggleMenu(button as HTMLElement);\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n button.setAttribute('aria-expanded', ariaExpanded === 'false' ? 'true' : 'false');\r\n closeResponsiveNav(navElements, nav);\r\n };\r\n\r\n cleanUp.push({\r\n element: button,\r\n clickEvent,\r\n });\r\n\r\n button.addEventListener('click', clickEvent);\r\n });\r\n\r\n return cleanUp;\r\n};\r\n\r\nconst setResponsiveNav = (\r\n navElements: NodeListOf<Element>,\r\n navElement: Element,\r\n): SetResponsiveNavCleanUp => {\r\n const navToggledClass = 'nav--toggled';\r\n const navItemsClass = 'nav__items';\r\n // gitlab #117\r\n navElement.classList.remove(navToggledClass);\r\n const navItemsParent = navElement.querySelector(`.${navItemsClass}`);\r\n\r\n if (navItemsParent) {\r\n const navItems = navItemsParent.querySelectorAll('.nav__item');\r\n const isOverflownClass = 'nav__item--is-overflown';\r\n const hasOverflowClass = 'nav--has-overflow';\r\n const isActiveClass = 'nav__item--active';\r\n let hasOverflown = false;\r\n\r\n for (let i = navItems.length - 1; i >= 0; i -= 1) {\r\n const nav = navItems[i] as HTMLElement;\r\n const top = nav.offsetTop;\r\n\r\n if (top > 0) {\r\n nav.classList.add(isOverflownClass);\r\n navElement.classList.add(hasOverflowClass);\r\n hasOverflown = true;\r\n } else if (!nav.classList.contains(isActiveClass)) {\r\n nav.classList.remove(isOverflownClass);\r\n }\r\n }\r\n\r\n if (!hasOverflown) {\r\n navElement.classList.remove(hasOverflowClass);\r\n const isActive = navElement.querySelector(`.${isActiveClass}`);\r\n if (isActive) {\r\n isActive.classList.remove(isOverflownClass);\r\n }\r\n }\r\n }\r\n\r\n // gitlab #115\r\n const bodyClickEvent = (e: Event) => {\r\n if (!(e.target as HTMLElement).classList.contains('nav__toggle')\r\n && !isElementWithClassNameInEventPath(e as MouseEvent, navItemsClass)) {\r\n closeResponsiveNav(navElements);\r\n }\r\n };\r\n\r\n document.querySelector('body')?.addEventListener('click', bodyClickEvent);\r\n\r\n return {\r\n element: document.querySelector('body'),\r\n clickEvent: bodyClickEvent,\r\n };\r\n};\r\n\r\nconst closeSubNav = (buttons: NodeListOf<Element>, keepOpen: Element | null = null) => {\r\n const subNavClass = 'sub-nav--toggled';\r\n buttons.forEach((button) => {\r\n if (button !== keepOpen) {\r\n if (button?.parentElement?.classList.contains(subNavClass)) {\r\n (button as HTMLElement).focus();\r\n button.setAttribute('aria-expanded', 'false');\r\n }\r\n button?.parentElement?.classList.remove(subNavClass);\r\n }\r\n });\r\n};\r\n\r\nconst setSubNavToggle = (buttons: NodeListOf<Element>, button: Element): SetSubNavToggleCleanUp => {\r\n const subNavClass = 'sub-nav--toggled';\r\n const buttonClickEvent = () => {\r\n button?.parentElement?.classList.toggle(subNavClass);\r\n if (button?.parentElement?.classList.contains(subNavClass)) {\r\n button.setAttribute('aria-expanded', 'true');\r\n } else {\r\n button.setAttribute('aria-expanded', 'false');\r\n }\r\n closeSubNav(buttons, button);\r\n };\r\n\r\n button.addEventListener('click', buttonClickEvent);\r\n\r\n // gitlab #115\r\n const bodyClickEvent = (e: Event) => {\r\n if (!isElementWithClassNameInEventPath(e as MouseEvent, 'sub-nav')) {\r\n closeSubNav(buttons);\r\n }\r\n };\r\n\r\n document.querySelector('body')?.addEventListener('click', bodyClickEvent);\r\n return {\r\n buttonClickEvent,\r\n element: document.querySelector('body'),\r\n bodyClickEvent,\r\n };\r\n};\r\n\r\nconst setClickMessage = ((\r\n text: string,\r\n copyElement: Element,\r\n clickElement: Element | null,\r\n ctcThis: HTMLElement | null,\r\n listener: () => void,\r\n): void => {\r\n if (ctcThis && clickElement) {\r\n // Vi kopierer teksten til clipboard\r\n copyToClipboard(ctcThis.innerText);\r\n copyElement.classList.add('copy-to-clipboard--confirm');\r\n if (copyElement === clickElement) {\r\n copyElement.classList.add('copy-to-clipboard--done');\r\n }\r\n // Laver en span, der viser, at teksten er kopieret\r\n const ctcThisMessage = document.createElement('span');\r\n ctcThisMessage.classList.add('copy-to-clipboard__this__confirm-message');\r\n ctcThisMessage.innerText = text;\r\n ctcThis.appendChild(ctcThisMessage);\r\n\r\n // Efter 1,2 sekunder fjerner vi beskeden igen\r\n clickElement.removeEventListener('click', listener);\r\n setTimeout(() => {\r\n copyElement.classList.remove('copy-to-clipboard--confirm');\r\n ctcThisMessage.remove();\r\n clickElement.addEventListener('click', listener);\r\n }, 1200);\r\n }\r\n});\r\n\r\nconst setCopyToClipboard = (element: HTMLElement, text = 'Kopieret!'): void => {\r\n const ctcThis = <HTMLElement>element.querySelector('.copy-to-clipboard__this');\r\n // Hvis det er en knap, s\u00E5 s\u00E6tter vi click event p\u00E5 knappen\r\n if ((element as HTMLButtonElement).type === 'button') {\r\n const listener = (): void => {\r\n setClickMessage(text, element, element, ctcThis, listener);\r\n };\r\n element.addEventListener('click', listener);\r\n // Hvis det ikke er en knap, finder vi knappen \"inde i\" elementet\r\n } else {\r\n const btn = element.querySelector('.copy-to-clipboard__execute');\r\n const listener = (): void => {\r\n setClickMessage(text, element, btn, ctcThis, listener);\r\n };\r\n btn?.addEventListener('click', listener);\r\n }\r\n};\r\n\r\nconst setSearchToggle = (navSearch: Element, button: Element): void => {\r\n const toggleClass = 'nav__search--toggled';\r\n button.addEventListener('click', () => {\r\n if (navSearch.classList.contains(toggleClass)) {\r\n button.setAttribute('aria-expanded', 'false');\r\n navSearch.classList.remove(toggleClass);\r\n } else {\r\n button.setAttribute('aria-expanded', 'true');\r\n navSearch.classList.add(toggleClass);\r\n }\r\n });\r\n};\r\n\r\nexport {\r\n findNav,\r\n setResponsiveToggle,\r\n setResponsiveNav,\r\n setSubNavToggle,\r\n setCopyToClipboard,\r\n setSearchToggle,\r\n};\r\n", "/* eslint-disable import/prefer-default-export */\r\nconst setResponsiveTable = (table: Element): void => {\r\n const head = table.querySelector('thead');\r\n const body = table.querySelector('tbody');\r\n const foot = table.querySelector('tfoot');\r\n\r\n if (head) {\r\n const headers: string[] = [];\r\n const ths = head.querySelectorAll('th');\r\n ths.forEach((h) => {\r\n if (!h.classList.contains('table__cell--self-explanatory')) {\r\n headers.push(h.innerHTML); // Because innerText inherits stuff like text-transform\r\n } else {\r\n headers.push(''); // If header is self explanatory we do not add it\r\n }\r\n });\r\n\r\n const rowContainers: HTMLTableSectionElement[] = [];\r\n // Table elements that possibly contains <tr>'s\r\n if (body) {\r\n rowContainers.push(body);\r\n }\r\n if (foot) {\r\n rowContainers.push(foot);\r\n }\r\n\r\n rowContainers.forEach((rc) => {\r\n const rows = rc.querySelectorAll('tr');\r\n rows.forEach((tr) => {\r\n const cells = tr.querySelectorAll('td, th');\r\n cells.forEach((cell, i) => {\r\n if (headers[i]) {\r\n // if header is self explanatory we skip (value of array index is '' which is falsy)\r\n cell.setAttribute('data-label', headers[i]);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport {\r\n setResponsiveTable,\r\n};\r\n", "/* eslint-disable @typescript-eslint/no-empty-function */\r\n/* eslint-env browser */\r\n/* eslint-disable import/prefer-default-export */\r\n/* eslint-disable no-param-reassign */\r\nimport { getBaseFontSize } from './helpers';\r\n\r\nconst getMediaWidthBasedOnModifier = (classList: DOMTokenList): number => {\r\n if (classList.contains('tabbed-content--hide-tabs-on-medium-width')) {\r\n return parseInt(getComputedStyle(document.documentElement).getPropertyValue('--bp-medium').replace('rem', ''), 10);\r\n }\r\n if (classList.contains('tabbed-content--hide-tabs-on-wide-width')) {\r\n return parseInt(getComputedStyle(document.documentElement).getPropertyValue('--bp-wide').replace('rem', ''), 10);\r\n }\r\n\r\n return -1;\r\n};\r\n\r\nconst isBelowViewportLimit = (classList: DOMTokenList): boolean => {\r\n const viewportWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n const widthInRem = viewportWidth / getBaseFontSize();\r\n const mediaWidth = getMediaWidthBasedOnModifier(classList);\r\n if (mediaWidth > -1) {\r\n return widthInRem < mediaWidth;\r\n }\r\n return true;\r\n};\r\n\r\nconst destroyTabs = (tabbed: Element): void => {\r\n const tablist = tabbed.querySelector('.nav__items');\r\n const tabs = tablist?.querySelectorAll('a');\r\n const panels: HTMLElement[] = [];\r\n const sections = tabbed.querySelectorAll('section');\r\n sections.forEach((section) => {\r\n if (section.parentNode === tabbed) {\r\n panels.push(section);\r\n }\r\n });\r\n tabs?.forEach((tab) => {\r\n tab.removeAttribute('aria-selected');\r\n tab.classList.remove('nav__item--active');\r\n });\r\n\r\n panels.forEach((panel) => {\r\n panel.hidden = false;\r\n panel.removeAttribute('role');\r\n });\r\n};\r\n\r\nconst destroySwitches = (tabbed: Element): void => {\r\n const switchlist = tabbed.querySelector('.switch');\r\n const switches = switchlist?.querySelectorAll('a');\r\n const panels: HTMLElement[] = [];\r\n const sections = tabbed.querySelectorAll('section');\r\n sections.forEach((section) => {\r\n if (section.parentNode === tabbed) {\r\n panels.push(section);\r\n }\r\n });\r\n switches?.forEach((tab) => {\r\n tab.removeAttribute('aria-selected');\r\n tab.classList.remove('switch__segment--active');\r\n });\r\n\r\n panels.forEach((panel) => {\r\n panel.hidden = false;\r\n panel.removeAttribute('role');\r\n });\r\n};\r\n\r\nconst switchTab = (\r\n tabs: NodeListOf<HTMLAnchorElement>,\r\n panels: HTMLElement[],\r\n oldTab: Element | null,\r\n newTab: HTMLElement,\r\n _: DOMTokenList,\r\n focus = true,\r\n // eslint-disable-next-line no-console\r\n callback = (index: number): void => console.log(index),\r\n): void => {\r\n if (focus) {\r\n newTab.focus();\r\n }\r\n // Make the active tab focusable by the user (Tab key)\r\n newTab.removeAttribute('tabindex');\r\n // Set the selected state\r\n newTab.setAttribute('aria-selected', 'true');\r\n\r\n // Check if switch // should this be more pretty?\r\n if (newTab.classList.contains('switch__segment')) {\r\n newTab.classList.add('switch__segment--active');\r\n } else {\r\n newTab.classList.add('nav__item--active');\r\n }\r\n\r\n if (oldTab) {\r\n oldTab.removeAttribute('aria-selected');\r\n oldTab.setAttribute('tabindex', '-1');\r\n\r\n if (oldTab.classList.contains('switch__segment')) {\r\n oldTab.classList.remove('switch__segment--active');\r\n } else {\r\n oldTab.classList.remove('nav__item--active');\r\n }\r\n }\r\n\r\n const index = Array.prototype.indexOf.call(tabs, newTab);\r\n\r\n // More links\r\n /* let moreLinks;\r\n var moreLink: HTMLElement;\r\n moreLinks = document.querySelectorAll(`[data-for=\"${panels[index].id}\"]`);\r\n moreLinks.forEach((moreLink) => {\r\n moreLink.classList.add('tabbed-content-peripheral--active');\r\n moreLink.hidden = false;\r\n }); */\r\n const moreLinks: HTMLElement[] = Array.from(document.querySelectorAll(`[data-for=\"${panels[index].id}\"]`));\r\n moreLinks.forEach((link) => {\r\n link.classList.add('tabbed-content-peripheral--active');\r\n link.hidden = false;\r\n });\r\n\r\n // Get the indices of the new and old tabs to find the correct\r\n // tab panels to show and hide\r\n panels[index].hidden = false;\r\n if (oldTab) {\r\n const oldIndex = Array.prototype.indexOf.call(tabs, oldTab);\r\n\r\n const oldMoreLinks: HTMLElement[] = Array.from(document.querySelectorAll(`[data-for=\"${panels[oldIndex].id}\"]`));\r\n oldMoreLinks.forEach((link) => {\r\n link.classList.remove('tabbed-content-peripheral--active');\r\n link.hidden = true;\r\n });\r\n\r\n /* moreLinks.forEach((moreLink) => {\r\n moreLink.classList.remove('tabbed-content-peripheral--active');\r\n moreLink.hidden = true;\r\n }); */\r\n\r\n panels[oldIndex].hidden = true;\r\n }\r\n\r\n // Dispatches custom event on every tab change\r\n newTab.dispatchEvent(new CustomEvent('switch-tab', {\r\n bubbles: true,\r\n detail: { tab: index },\r\n }));\r\n callback(index);\r\n};\r\n\r\nconst setTabbedContent = (\r\n key: number,\r\n tabbed: Element,\r\n initial = 0,\r\n focus = true,\r\n // eslint-disable-next-line no-console\r\n callback = (index: number) => console.log(index),\r\n): void => {\r\n const tablist = tabbed.querySelector('.switch,.nav__items') as HTMLElement;\r\n const tabs = tablist.querySelectorAll('a');\r\n const panels: HTMLElement[] = [];\r\n const sections = tabbed.querySelectorAll('section');\r\n sections.forEach((section) => {\r\n if (section.parentNode === tabbed) {\r\n panels.push(section);\r\n }\r\n });\r\n\r\n const expandAll = tabbed.querySelector('button.tabbed-content__expand-all');\r\n if (expandAll) {\r\n const expandAllEvent = () => {\r\n tablist.hidden = true;\r\n panels.forEach((panel: HTMLElement) => {\r\n panel.hidden = false;\r\n });\r\n };\r\n\r\n expandAll.removeEventListener('click', expandAllEvent);\r\n expandAll.addEventListener('click', expandAllEvent);\r\n }\r\n\r\n // Add the tablist role to the first <ul> in the .tabbed container\r\n tablist.setAttribute('role', 'tablist');\r\n\r\n // Add semantics are remove user focusability for each tab\r\n tabs.forEach((tab, i) => {\r\n tab.setAttribute('role', 'tab');\r\n tab.setAttribute('id', `tab${key}_${(i + 1)}`);\r\n tab.setAttribute('tabindex', '-1');\r\n tab.parentElement?.setAttribute('role', 'presentation');\r\n\r\n // Handle clicking of tabs for mouse users\r\n const tabClickEvent = (e: MouseEvent) => {\r\n e.preventDefault();\r\n const currentTab = tablist.querySelector('[aria-selected]');\r\n if (e.currentTarget !== currentTab) {\r\n // eslint-disable-next-line max-len\r\n switchTab(tabs, panels, currentTab, e.currentTarget as HTMLElement, tabbed.classList, true, (tabIndex) => {\r\n callback(tabIndex);\r\n });\r\n }\r\n };\r\n\r\n tab.removeEventListener('click', tabClickEvent);\r\n tab.addEventListener('click', tabClickEvent);\r\n\r\n // Handle keydown events for keyboard users\r\n const tabKeyEvent = (e: KeyboardEvent) => {\r\n // Get the index of the current tab in the tabs node list\r\n const index = Array.prototype.indexOf.call(tabs, e.currentTarget);\r\n // Work out which key the user is pressing and\r\n // Calculate the new tab's index where appropriate\r\n let dir: number | string | null = null;\r\n if (e.key === 'ArrowLeft') {\r\n dir = index - 1;\r\n }\r\n if (e.key === 'ArrowRight') {\r\n dir = index + 1;\r\n }\r\n if (e.key === 'ArrowDown') {\r\n dir = 'down';\r\n }\r\n if (dir !== null) {\r\n e.preventDefault();\r\n // If the down key is pressed, move focus to the open panel,\r\n // otherwise switch to the adjacent tab\r\n if (dir === 'down') {\r\n panels[i].focus();\r\n } else if (tabs[dir]) {\r\n // eslint-disable-next-line max-len\r\n switchTab(tabs, panels, e.currentTarget as Element, tabs[dir], tabbed.classList, true, (tabIndex) => {\r\n callback(tabIndex);\r\n });\r\n }\r\n }\r\n };\r\n tab.removeEventListener('keydown', tabKeyEvent);\r\n tab.addEventListener('keydown', tabKeyEvent);\r\n });\r\n\r\n // Add tab panel semantics and hide them all\r\n panels.forEach((panel: HTMLElement, i: number) => {\r\n panel.setAttribute('tabindex', '-1');\r\n panel.setAttribute('aria-labelledby', tabs[i].id);\r\n // eslint-disable-next-line no-param-reassign\r\n panel.hidden = true;\r\n panel.setAttribute('role', 'tabpanel');\r\n });\r\n\r\n // Initially activate the first tab and reveal the first tab panel\r\n if (initial > -1) {\r\n switchTab(tabs, panels, null, tabs[initial], tabbed.classList, focus);\r\n }\r\n};\r\n\r\nconst setTabs = (tabbedObjects: ITabbedObject[]): void => {\r\n tabbedObjects.forEach((tabObject: ITabbedObject, key: number): void => {\r\n const { rendered, domElement } = tabObject;\r\n if (isBelowViewportLimit(domElement.classList)) {\r\n if (!rendered) {\r\n const focus = domElement.getAttribute('data-focus-onload');\r\n const dataInitial = domElement.getAttribute('data-initial-tab');\r\n const initial = dataInitial ? parseInt(dataInitial, 10) : 0;\r\n setTabbedContent(key, domElement, initial, focus !== 'false');\r\n tabObject.rendered = true;\r\n }\r\n } else if (rendered) {\r\n destroyTabs(domElement);\r\n tabObject.rendered = false;\r\n }\r\n });\r\n};\r\n\r\nexport {\r\n setTabbedContent,\r\n isBelowViewportLimit,\r\n destroyTabs,\r\n destroySwitches,\r\n setTabs,\r\n};\r\n", "/* eslint-disable max-len */\r\n/* eslint-env browser */\r\n/* eslint-disable import/prefer-default-export */\r\n\r\nimport { isViewportBelow} from './helpers';\r\n\r\nconst setContentToggle = (\r\n content: Element,\r\n onClick?: ((content: HTMLElement, button: HTMLButtonElement) => void) | undefined,\r\n beforeCallback?: ((content: HTMLElement, button: HTMLButtonElement) => void) | undefined,\r\n afterCallback?: ((content: HTMLElement, button: HTMLButtonElement) => void) | undefined,\r\n): CleanUpPair[] => {\r\n const cleanUp: CleanUpPair[] = [];\r\n const setContentClose = (button: HTMLElement, contentClose: HTMLElement, focus: boolean): () => void => {\r\n if (focus) {\r\n contentClose.focus();\r\n }\r\n const click = () => {\r\n content.setAttribute('hidden', 'hidden');\r\n button.removeAttribute('hidden');\r\n button.setAttribute('aria-expanded', 'false');\r\n button.focus();\r\n };\r\n contentClose.addEventListener('click', click);\r\n return click;\r\n };\r\n\r\n const button = content?.parentElement?.querySelector('.content-toggle__toggle') as HTMLElement;\r\n const contentClose = content.querySelectorAll('.content-toggle__close');\r\n \r\n const setBPModiferClass = () => {\r\n if (isViewportBelow('--bp-medium') && content.classList.contains('content-toggle__content--always-show-on-medium')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n } \r\n else if (isViewportBelow('--bp-wide') && content.classList.contains('content-toggle__content--always-show-on-wide')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n } \r\n else if (isViewportBelow('--bp-max-width') && content.classList.contains('content-toggle__content--always-show-on-max-width')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n } \r\n else if (\r\n content.classList.contains('content-toggle__content--always-show-on-medium') ||\r\n content.classList.contains('content-toggle__content--always-show-on-wide') ||\r\n content.classList.contains('content-toggle__content--always-show-on-max-width')\r\n ){\r\n content.removeAttribute(\"hidden\");\r\n button.setAttribute(\"hidden\", \"hidden\");\r\n }\r\n }\r\n window.addEventListener('resize', () => {\r\n setBPModiferClass();\r\n });\r\n\r\n const setBPModifierPopupClass = () => {\r\n document.addEventListener('click', (event) => {\r\n const eventTarget = event.target as HTMLElement;\r\n const doesNotContainContent = !eventTarget.classList.contains('content-toggle__content')\r\n const doesNotContainButton = !eventTarget.classList.contains('content-toggle__toggle')\r\n const doesNotContainSpan = !eventTarget.classList.contains('profile-header__info__contact__toggle__button')\r\n if (doesNotContainContent && doesNotContainButton && doesNotContainSpan) {\r\n if (!isViewportBelow('--bp-medium') && content.classList.contains('content-toggle__content--is-popover--on-medium')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n console.log(1)\r\n } else if (!isViewportBelow('--bp-wide') && content.classList.contains('content-toggle__content--is-popover--on-wide')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n console.log(2)\r\n } else if (!isViewportBelow('--bp-max-width') && content.classList.contains('content-toggle__content--is-popover--on-max-width')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus(); \r\n \r\n console.log(3)\r\n }\r\n else if (content.classList.contains('content-toggle__content--is-popover')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n console.log(4)\r\n }\r\n }\r\n });\r\n }\r\n\r\n setBPModifierPopupClass(); \r\n setBPModiferClass();\r\n\r\n if (button) {\r\n const clickEvent = () => {\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n // Til toolbar: hvis man klikker p\u00E5 en knap, der ikke er foldet ud\r\n // S\u00E5 lukker vi alle \u00E5bne content-toggles\r\n if (typeof beforeCallback === 'function' && ariaExpanded === 'false') {\r\n beforeCallback(content as HTMLElement, button as HTMLButtonElement);\r\n }\r\n // Og s\u00E5 g\u00E5r vi i gang med folde-ud-logikken\r\n button.setAttribute('aria-expanded', ariaExpanded === 'false' ? 'true' : 'false');\r\n if (ariaExpanded === 'true') {\r\n content.setAttribute('hidden', 'hidden');\r\n } else {\r\n content.removeAttribute('hidden');\r\n }\r\n\r\n if (typeof onClick === 'function') {\r\n onClick(content as HTMLElement, button as HTMLButtonElement);\r\n }\r\n\r\n if (button.hasAttribute('aria-haspopup')) {\r\n button.setAttribute('hidden', 'hidden');\r\n contentClose.forEach((cc) => {\r\n setContentClose(button, cc as HTMLElement, true);\r\n });\r\n }\r\n\r\n // Det der sker efter folde-logikken\r\n if (typeof afterCallback === 'function') {\r\n afterCallback(content as HTMLElement, button as HTMLButtonElement);\r\n }\r\n };\r\n\r\n button.addEventListener('click', clickEvent);\r\n // Altid tilf\u00F8j denne f\u00F8rst!\r\n cleanUp.push({\r\n element: button,\r\n clickEvent,\r\n });\r\n\r\n contentClose.forEach((cc) => {\r\n const btnClick = setContentClose(button, cc as HTMLElement, false);\r\n cleanUp.push({\r\n element: cc,\r\n clickEvent: btnClick,\r\n });\r\n });\r\n }\r\n return cleanUp;\r\n};\r\n\r\nexport {\r\n setContentToggle, \r\n};\r\n", "/* eslint-disable max-len */\r\nimport { convertRemToPixels, isElementWithClassNameInEventPath, isViewportBelow } from './helpers';\r\n\r\nconst lockBodyScroll = (): void => {\r\n const body = document.querySelector('body');\r\n if (isViewportBelow('--bp-medium') || isViewportBelow('--bp-low-height')) {\r\n body?.classList.add('body--no-scroll');\r\n }\r\n};\r\n\r\nconst unlockBodyScroll = (): void => {\r\n const body = document.querySelector('body');\r\n body?.classList.remove('body--no-scroll');\r\n};\r\n\r\n/* eslint-env browser */\r\nconst closeAllContentTogglesInToolbar = (toolbar: HTMLElement): void => {\r\n const contentToggles = toolbar.querySelectorAll('.content-toggle__toggle');\r\n contentToggles.forEach((toggle) => {\r\n const content = toggle.parentElement?.querySelector('.content-toggle__content');\r\n toggle.setAttribute('aria-expanded', 'false');\r\n content?.setAttribute('hidden', 'hidden');\r\n });\r\n};\r\n\r\nconst setOverflow = (toolbarElement: Element): void => {\r\n if (!toolbarElement.classList.contains('toolbar--no-collapse')) {\r\n toolbarElement.classList.remove('toolbar--toggled');\r\n }\r\n toolbarElement.classList.remove('toolbar--fully-overflown');\r\n toolbarElement.classList.remove('toolbar--has-popout');\r\n const toolbarItemsParent = toolbarElement.querySelector('.toolbar__items');\r\n const toolbarItems = toolbarItemsParent?.children as HTMLCollection;\r\n const isOverflownClass = 'toolbar__item--is-overflown';\r\n const hasOverflowClass = 'toolbar--has-overflow';\r\n let hasOverflown = false;\r\n\r\n let overflownCount = 0;\r\n const addOverflowClass = (item: HTMLElement, index: number) => {\r\n if (item) {\r\n const top = item.offsetTop;\r\n if (top > 25) {\r\n item.classList.add(isOverflownClass);\r\n toolbarElement.classList.add(hasOverflowClass);\r\n hasOverflown = true;\r\n overflownCount += 1;\r\n } else {\r\n item.classList.remove(isOverflownClass);\r\n }\r\n\r\n if (!hasOverflown) {\r\n toolbarElement.classList.remove(hasOverflowClass);\r\n } else if (index - 1 >= 0) {\r\n addOverflowClass(toolbarItems[index - 1] as HTMLElement, index - 1);\r\n }\r\n }\r\n };\r\n\r\n addOverflowClass(toolbarItems[toolbarItems.length - 1] as HTMLElement, toolbarItems.length - 1);\r\n\r\n if (overflownCount > 0 && overflownCount === toolbarItems.length) {\r\n toolbarElement.classList.add('toolbar--fully-overflown');\r\n }\r\n};\r\n\r\nconst setToolbarToggle = (toolbar: HTMLElement): ExtendedCleanUpPair[] => {\r\n const cleanUp: ExtendedCleanUpPair[] = [];\r\n const buttons = toolbar.querySelectorAll('.toolbar__toggle');\r\n buttons.forEach((button) => {\r\n const clickEvent = () => {\r\n button?.parentElement?.classList.toggle('toolbar--toggled');\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n if (ariaExpanded !== 'true') {\r\n const focusable = 'a.toolbar__item--is-overflown, button.toolbar__item--is-overflown, input.toolbar__item--is-overflown, select.toolbar__item--is-overflown, .toolbar__item--is-overflown a, .toolbar__item--is-overflown button, .toolbar__item--is-overflown input, .toolbar__item--is-overflown select';\r\n const firstWithOverflow = button?.parentElement?.querySelector(focusable) as HTMLElement;\r\n if (firstWithOverflow) {\r\n setTimeout(() => {\r\n firstWithOverflow.focus();\r\n }, 0);\r\n }\r\n }\r\n button.setAttribute('aria-expanded', ariaExpanded === 'false' ? 'true' : 'false');\r\n };\r\n\r\n cleanUp.push({\r\n element: button,\r\n clickEvent,\r\n });\r\n button.addEventListener('click', clickEvent);\r\n });\r\n return cleanUp;\r\n};\r\n\r\nconst setToolbar = (\r\n toolbar: HTMLElement,\r\n onCloseContentToggle: (toolbarElement: HTMLElement) => void,\r\n setOverflowOnly = true,\r\n): ExtendedCleanUpPair[] => {\r\n let cleanUp: ExtendedCleanUpPair[] = [];\r\n\r\n setOverflow(toolbar);\r\n onCloseContentToggle(toolbar);\r\n cleanUp = cleanUp.concat(setToolbarToggle(toolbar));\r\n\r\n if (!setOverflowOnly) {\r\n const bodyClickEvent = (event: Event) => {\r\n if (!(event.target as HTMLElement).classList.contains('content-toggle__toggle')\r\n && !isElementWithClassNameInEventPath(event as MouseEvent, 'content-toggle__content')) {\r\n onCloseContentToggle(toolbar);\r\n }\r\n };\r\n\r\n const escKeyEvent = (event: Event) => {\r\n if ((event as KeyboardEvent).key === 'Escape') {\r\n if (event.target && (event.target as HTMLElement).getAttribute('type') !== 'search') {\r\n onCloseContentToggle(toolbar);\r\n }\r\n }\r\n };\r\n\r\n const body = document.querySelector('body');\r\n\r\n cleanUp.push({\r\n element: body as Element,\r\n clickEvent: bodyClickEvent,\r\n });\r\n\r\n cleanUp.push({\r\n element: window,\r\n keyUpEvent: escKeyEvent,\r\n });\r\n\r\n body?.addEventListener('click', bodyClickEvent);\r\n window.addEventListener('keyup', escKeyEvent);\r\n }\r\n\r\n return cleanUp;\r\n};\r\n\r\nconst findToolbar = (element: HTMLElement): HTMLElement => {\r\n const parent = element.parentElement;\r\n if (parent) {\r\n if (parent.classList.contains('toolbar')) {\r\n return parent;\r\n }\r\n return findToolbar(parent);\r\n }\r\n return element;\r\n};\r\n\r\nconst contentToggleEdgeHandling = (element: HTMLElement): void => {\r\n if (!isViewportBelow('--bp-medium') && !isViewportBelow('--bp-low-height')) {\r\n const allowedDistance = convertRemToPixels(parseInt(getComputedStyle(document.documentElement).getPropertyValue('--toolbar-popout-allowed-edge-distance').replace('rem,', ''), 10));\r\n const popoutX = parseInt(getComputedStyle(element).width.replace('px', ''), 10);\r\n const popoutWidth = element.getBoundingClientRect().x;\r\n\r\n const distance = document.body.offsetWidth - allowedDistance - popoutX - popoutWidth;\r\n\r\n if (distance < 0) {\r\n element.style.setProperty('--toolbar-popout-edge-overflow', `${distance}px`);\r\n }\r\n }\r\n};\r\n\r\nexport {\r\n setToolbar,\r\n setOverflow,\r\n findToolbar,\r\n closeAllContentTogglesInToolbar,\r\n contentToggleEdgeHandling,\r\n lockBodyScroll,\r\n unlockBodyScroll,\r\n};\r\n", "// Scroller 80% p\u00E5 horisontal scroll til h\u00F8jre og s\u00E6tter knappen disabled n\u00E5r man rammer bunden\r\nconst horizontalScrollButtonNext = (nextButtons: NodeListOf<Element>): void => {\r\n if (nextButtons) {\r\n nextButtons.forEach((nextButton) => {\r\n const topElem = nextButton?.parentElement?.parentElement?.parentElement?.parentElement;\r\n if (topElem) {\r\n const scrollElements = topElem.querySelectorAll('.horizontal-scroll__scrollable-content');\r\n const switch__segments = topElem.querySelectorAll('.switch__segment');\r\n scrollElements.forEach((scrollElement) => { \r\n if (scrollElement) {\r\n nextButton.addEventListener('click', () => {\r\n // Scroller 80% af den synlige bredde p\u00E5 horizontal scroll til h\u00F8jre\r\n const scrollAmount = 0.8 * scrollElement.clientWidth;\r\n scrollElement.scrollLeft += scrollAmount;\r\n });\r\n // G\u00F8r knappen aktiv hvis scroll har ramt bunden\r\n scrollElement.addEventListener('scroll', () => {\r\n if ((scrollElement.scrollLeft + scrollElement.clientWidth) >= (scrollElement.scrollWidth * 0.98)) {\r\n disableButton(nextButton);\r\n } else if (scrollElement.scrollLeft + scrollElement.clientWidth < scrollElement.scrollWidth) {\r\n activateButton(nextButton);\r\n }\r\n });\r\n // Reset af knap ved flere tabs af horizontal scroll\r\n if (switch__segments) {\r\n switch__segments.forEach(switch__segment => {\r\n switch__segment.addEventListener('click', () => {\r\n activateButton(nextButton);\r\n scrollElement.scrollLeft = 0;\r\n })\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n \r\n // Scroller 80% p\u00E5 horisontal scroll til venstre og s\u00E6tter knappen disabled n\u00E5r man rammer toppen\r\n const horizontalScrollButtonPrevious = (previousButtons: NodeListOf<Element>): void => {\r\n if (previousButtons) {\r\n previousButtons.forEach((previousButton) => {\r\n const topElem = previousButton?.parentElement?.parentElement?.parentElement?.parentElement;\r\n if (topElem) {\r\n const scrollElements = topElem.querySelectorAll('.horizontal-scroll__scrollable-content');\r\n const switch__segments = topElem.querySelectorAll('.switch__segment');\r\n scrollElements.forEach((scrollElement) => { \r\n if (scrollElement) {\r\n previousButton.addEventListener('click', () => {\r\n // Scroller 80% af den synlige bredde p\u00E5 horizontal scroll til venstre\r\n const scrollAmount = 0.8 * scrollElement.clientWidth;\r\n scrollElement.scrollLeft -= scrollAmount;\r\n });\r\n // G\u00F8r knappen aktiv hvis scroll har ramt toppen\r\n scrollElement.addEventListener('scroll', () => {\r\n if (scrollElement.scrollLeft <= 0) {\r\n disableButton(previousButton);\r\n } else if (scrollElement.scrollLeft > 0) {\r\n activateButton(previousButton);\r\n }\r\n });\r\n }\r\n // Reset af knap ved flere tabs af horizontal scroll\r\n if (switch__segments) {\r\n switch__segments.forEach(switch__segment => {\r\n switch__segment.addEventListener('click', () => {\r\n disableButton(previousButton);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n function activateButton(button) {\r\n button.classList.remove('visually-disabled');\r\n button.setAttribute('aria-disabled', 'false');\r\n }\r\n \r\n function disableButton(button) {\r\n button.classList.add('visually-disabled');\r\n button.setAttribute('aria-disabled', 'true');\r\n }\r\n\r\n export {\r\n horizontalScrollButtonNext,\r\n horizontalScrollButtonPrevious,\r\n };", "/* eslint-disable no-param-reassign */\r\n/* eslint-env browser */\r\nimport ready from '../components/ready';\r\nimport {\r\n setResponsiveNav,\r\n setResponsiveToggle,\r\n} from '../components/nav';\r\nimport { isElementWithClassNameInEventPath, setMetaThemeColor, setHorizontalScroll } from '../components/helpers';\r\nimport { setResponsiveTable } from '../components/table';\r\nimport { setTabs } from '../components/tabs';\r\nimport { setContentToggle } from '../components/content-toggle';\r\nimport {\r\n closeAllContentTogglesInToolbar,\r\n contentToggleEdgeHandling,\r\n findToolbar,\r\n lockBodyScroll,\r\n unlockBodyScroll,\r\n} from '../components/toolbar';\r\nimport { horizontalScrollButtonNext, horizontalScrollButtonPrevious } from '../components/horizontal-scroll-btn';\r\n\r\nlet windowInnerWidth = 0;\r\n\r\nready(() => {\r\n const tabbedContent = document.querySelectorAll('.tabbed-content');\r\n const tabbedObjects: ITabbedObject[] = [];\r\n tabbedContent.forEach((tab) => tabbedObjects.push({\r\n domElement: tab,\r\n rendered: false,\r\n }));\r\n setTabs(tabbedObjects);\r\n setMetaThemeColor();\r\n\r\n const navElements = document.querySelectorAll('.nav:not(.nav--vertical)');\r\n navElements.forEach((n) => setResponsiveNav(navElements, n));\r\n setResponsiveToggle(navElements);\r\n\r\n const tables = document.querySelectorAll('.table--wrap-medium-width, .table--wrap-default-width');\r\n tables.forEach((table) => setResponsiveTable(table));\r\n\r\n const toggles = document.querySelectorAll('.box .content-toggle__content, .profile-header .content-toggle__content, .design-documentation .content-toggle__content');\r\n toggles.forEach((toggle) => {\r\n setContentToggle(toggle);\r\n });\r\n\r\n // Hortizontal scroll buttons\r\n const scrollButtonsNext = document.querySelectorAll('.button.button--small.button--icon.button--icon--hide-label.icon-next');\r\n const scrollButtonsPrevious = document.querySelectorAll('.button.button--small.button--icon.button--icon--hide-label.icon-previous');\r\n horizontalScrollButtonNext(scrollButtonsNext);\r\n horizontalScrollButtonPrevious(scrollButtonsPrevious);\r\n\r\n const horizontalScroll = document.querySelectorAll('.horizontal-scroll');\r\n horizontalScroll.forEach((hs) => {\r\n setHorizontalScroll(hs as HTMLElement);\r\n window.addEventListener('resize', () => {\r\n setHorizontalScroll(hs as HTMLElement);\r\n });\r\n });\r\n\r\n const switchSegments = document.querySelectorAll('.switch__segment');\r\n switchSegments.forEach((switchSegment) => {\r\n switchSegment.addEventListener('click', () => {\r\n const horizontalScrollTabbed = document.querySelectorAll('.horizontal-scroll');\r\n horizontalScrollTabbed.forEach((hsTabbed) => {\r\n setHorizontalScroll(hsTabbed as HTMLElement);\r\n });\r\n });\r\n });\r\n \r\n // Kursuskatalog\r\n const togglesInToolbars = document.querySelectorAll('.toolbar .content-toggle__content');\r\n togglesInToolbars.forEach((toggle) => {\r\n setContentToggle(\r\n toggle,\r\n (popout: HTMLElement) => {\r\n contentToggleEdgeHandling(popout);\r\n lockBodyScroll();\r\n },\r\n (content: HTMLElement) => closeAllContentTogglesInToolbar(findToolbar(content)),\r\n (content: HTMLElement, button: HTMLButtonElement) => {\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n const toolbar = findToolbar(content);\r\n if (ariaExpanded === 'true') {\r\n toolbar?.classList.add('toolbar--has-popout');\r\n } else {\r\n toolbar?.classList.remove('toolbar--has-popout');\r\n }\r\n\r\n content.addEventListener('click', (event: MouseEvent) => {\r\n if ((event.target as HTMLElement).classList.contains('toolbar__popout')\r\n && !isElementWithClassNameInEventPath(event as MouseEvent, 'toolbar__filter__content')) {\r\n closeAllContentTogglesInToolbar(toolbar);\r\n unlockBodyScroll();\r\n }\r\n });\r\n },\r\n );\r\n });\r\n\r\n window.addEventListener('load', () => {\r\n windowInnerWidth = window.innerWidth;\r\n });\r\n\r\n window.addEventListener('resize', () => {\r\n if (windowInnerWidth > 0 && window.innerWidth !== windowInnerWidth) {\r\n windowInnerWidth = window.innerWidth;\r\n navElements.forEach((n) => setResponsiveNav(navElements, n));\r\n setTabs(tabbedObjects);\r\n }\r\n });\r\n\r\n const topBar = document.querySelector('.omnibus-header__mobile-scroll'); \r\n window.addEventListener('scroll', function() {\r\n if (topBar) {\r\n if (window.scrollY > 70) {\r\n topBar.classList.add('omnibus-header__mobile-scroll--show'); \r\n topBar.classList.remove('omnibus-header__mobile-scroll--hide');\r\n } else {\r\n topBar.classList.remove('omnibus-header__mobile-scroll--show'); \r\n topBar.classList.add('omnibus-header__mobile-scroll--hide'); \r\n }\r\n }\r\n});\r\n});\r\n"],
5
- "mappings": "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",
6
- "names": ["ready", "fn", "ready_default", "isElementWithClassNameInEventPath", "event", "className", "found", "p", "setMetaThemeColor", "body", "bgColor", "existingMeta", "meta", "getBaseFontSize", "convertRemToPixels", "rem", "isViewportBelow", "mediaQuery", "viewportWidth", "mediaQueryValue", "overflowsX", "element", "setHorizontalScroll", "element", "content", "overflowsX", "findNav", "element", "parent", "closeResponsiveNav", "navElements", "keepOpen", "navToggledClass", "n", "button", "setResponsiveToggle", "toggleMenu", "navItems", "lastNavItem", "firstElement", "transitionListener", "cleanUp", "clickEvent", "nav", "ariaExpanded", "setResponsiveNav", "navElement", "navItemsClass", "navItemsParent", "isOverflownClass", "hasOverflowClass", "isActiveClass", "hasOverflown", "i", "isActive", "bodyClickEvent", "e", "isElementWithClassNameInEventPath", "setResponsiveTable", "table", "head", "body", "foot", "headers", "h", "rowContainers", "rc", "tr", "cell", "i", "getMediaWidthBasedOnModifier", "classList", "isBelowViewportLimit", "widthInRem", "getBaseFontSize", "mediaWidth", "destroyTabs", "tabbed", "tabs", "panels", "section", "tab", "panel", "switchTab", "tabs", "panels", "oldTab", "newTab", "_", "focus", "callback", "index", "link", "oldIndex", "setTabbedContent", "key", "tabbed", "initial", "tablist", "section", "expandAll", "expandAllEvent", "panel", "tab", "i", "tabClickEvent", "e", "currentTab", "tabIndex", "tabKeyEvent", "dir", "setTabs", "tabbedObjects", "tabObject", "rendered", "domElement", "isBelowViewportLimit", "dataInitial", "destroyTabs", "setContentToggle", "content", "onClick", "beforeCallback", "afterCallback", "cleanUp", "setContentClose", "button", "contentClose", "focus", "click", "setBPModiferClass", "isViewportBelow", "event", "eventTarget", "doesNotContainContent", "doesNotContainButton", "doesNotContainSpan", "clickEvent", "ariaExpanded", "cc", "btnClick", "lockBodyScroll", "body", "isViewportBelow", "unlockBodyScroll", "closeAllContentTogglesInToolbar", "toolbar", "toggle", "content", "findToolbar", "element", "parent", "contentToggleEdgeHandling", "isViewportBelow", "allowedDistance", "convertRemToPixels", "popoutX", "popoutWidth", "distance", "horizontalScrollButtonNext", "nextButtons", "nextButton", "topElem", "scrollElements", "switch__segments", "scrollElement", "scrollAmount", "disableButton", "activateButton", "switch__segment", "horizontalScrollButtonPrevious", "previousButtons", "previousButton", "button", "windowInnerWidth", "ready_default", "tabbedContent", "tabbedObjects", "tab", "setTabs", "setMetaThemeColor", "navElements", "n", "setResponsiveNav", "setResponsiveToggle", "table", "setResponsiveTable", "toggle", "setContentToggle", "scrollButtonsNext", "scrollButtonsPrevious", "horizontalScrollButtonNext", "horizontalScrollButtonPrevious", "hs", "setHorizontalScroll", "switchSegment", "hsTabbed", "popout", "contentToggleEdgeHandling", "lockBodyScroll", "content", "closeAllContentTogglesInToolbar", "findToolbar", "button", "ariaExpanded", "toolbar", "event", "isElementWithClassNameInEventPath", "unlockBodyScroll", "topBar"]
3
+ "sources": ["../../source/js/components/ready.ts", "../../source/js/components/helpers.ts", "../../source/js/components/nav.ts", "../../source/js/components/copy-hex-code.ts", "../../source/js/components/table.ts", "../../source/js/components/tabs.ts", "../../source/js/components/content-toggle.ts", "../../source/js/components/toolbar.ts", "../../source/js/components/horizontal-scroll-btn.ts", "../../source/js/components/text-area.ts", "../../source/js/components/char-counter.ts", "../../source/js/production/app.ts"],
4
+ "sourcesContent": ["/* eslint-env browser */\r\nconst ready = (fn: () => void): void => {\r\n if (document.readyState !== 'loading') {\r\n fn();\r\n } else {\r\n document.addEventListener('DOMContentLoaded', fn);\r\n }\r\n};\r\n\r\nexport default ready;\r\n", "/* eslint-disable wrap-iife */\r\n/* eslint-disable import/prefer-default-export */\r\n/* eslint-env browser */\r\nconst copyToClipboard = (str: string): void => {\r\n // eslint-disable-next-line no-console\r\n navigator.clipboard.writeText(str).then(() => console.log(`${str} written to clipboard`));\r\n};\r\n\r\nconst isElementWithClassNameInEventPath = (event: MouseEvent, className: string): boolean => {\r\n let found = false;\r\n const path = event.composedPath();\r\n path.forEach((p: EventTarget): void => {\r\n if ((p as HTMLElement).classList) {\r\n if ((p as HTMLElement).classList.contains(className)) {\r\n found = true;\r\n }\r\n }\r\n });\r\n return found;\r\n};\r\n\r\nconst setMetaThemeColor = (): void => {\r\n const body = document.querySelector('body');\r\n if (body) {\r\n const bgColor = window.getComputedStyle(body).getPropertyValue('--color-background');\r\n const existingMeta = document.querySelector('meta[name=\"theme-color\"]') as HTMLMetaElement;\r\n if (existingMeta) {\r\n existingMeta.content = bgColor;\r\n } else {\r\n const meta = document.createElement('meta');\r\n meta.name = 'theme-color';\r\n meta.content = bgColor;\r\n document.getElementsByTagName('head')[0].appendChild(meta);\r\n }\r\n }\r\n};\r\n\r\nconst getBaseFontSize = (): number => parseInt(window.getComputedStyle(document.documentElement).fontSize.replace('px', ''), 10);\r\n\r\n// eslint-disable-next-line max-len\r\nconst convertRemToPixels = (rem: number): number => rem * 16;\r\n\r\nconst isViewportBelow = (mediaQuery: string): boolean => {\r\n const viewportWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n const mediaQueryValue = convertRemToPixels(parseInt(getComputedStyle(document.documentElement).getPropertyValue(mediaQuery).replace('rem', ''), 10));\r\n return viewportWidth < mediaQueryValue;\r\n};\r\n\r\nconst setScrollbarWidthVariable = (): void => {\r\n const scrollbarWidth = window.innerWidth - document.body.clientWidth;\r\n document.documentElement.style.setProperty('--vertical-scrollbar-width', `${scrollbarWidth}px`);\r\n};\r\n\r\nconst overflowsY = (element: HTMLElement): boolean => element.offsetHeight !== element.scrollHeight;\r\nconst overflowsX = (element: HTMLElement): boolean => element.offsetWidth !== element.scrollWidth;\r\n// eslint-disable-next-line max-len\r\nconst elementOverflows = (element: HTMLElement): boolean => overflowsY(element) || overflowsX(element);\r\n\r\nconst setHorizontalScroll = (element: HTMLElement): void => {\r\n // Checks if the element already contains no-overflow\r\n if (element.classList.contains('horizontal-scroll--no-overflow')) {\r\n element.classList.remove('horizontal-scroll--no-overflow');\r\n }\r\n\r\n // Defines of content of horizontal scroll \r\n let content = element.querySelector('.horizontal-scroll--check-overflow .tabbed-content__section:not([hidden]) .horizontal-scroll__scrollable-content');\r\n if (content === null && !content) {\r\n content = element.querySelector('.horizontal-scroll--check-overflow .horizontal-scroll__scrollable-content');\r\n }\r\n\r\n // Checks if no-overflow should be added or not depending on content width\r\n if (content) {\r\n if (!overflowsX(content as HTMLElement)) {\r\n element.classList.add('horizontal-scroll--no-overflow');\r\n content?.removeAttribute('tabindex');\r\n } else {\r\n content?.setAttribute('tabindex', '0');\r\n }\r\n }\r\n};\r\n\r\nconst focusableSelector = 'a[href]:not([tabindex=\"-1\"]), area[href]:not([tabindex=\"-1\"]), input:not([disabled]):not([tabindex=\"-1\"]), select:not([disabled]):not([tabindex=\"-1\"]), textarea:not([disabled]):not([tabindex=\"-1\"]), button:not([disabled]):not([tabindex=\"-1\"]), iframe:not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"]), [contentEditable=true]:not([tabindex=\"-1\"])';\r\n\r\nexport {\r\n copyToClipboard,\r\n isElementWithClassNameInEventPath,\r\n getBaseFontSize,\r\n setMetaThemeColor,\r\n isViewportBelow,\r\n convertRemToPixels,\r\n setScrollbarWidthVariable,\r\n overflowsX,\r\n overflowsY,\r\n elementOverflows,\r\n setHorizontalScroll,\r\n focusableSelector,\r\n};\r\n", "/* eslint-env browser */\r\nimport { copyToClipboard, isElementWithClassNameInEventPath } from './helpers';\r\n\r\nconst findNav = (element: HTMLElement): HTMLElement => {\r\n const parent = element.parentElement;\r\n if (parent) {\r\n if (parent.classList.contains('nav')) {\r\n return parent;\r\n }\r\n return findNav(parent);\r\n }\r\n return element;\r\n};\r\n\r\n// eslint-disable-next-line max-len\r\nconst closeResponsiveNav = (navElements: NodeListOf<Element>, keepOpen: HTMLElement | null = null): void => {\r\n const navToggledClass = 'nav--toggled';\r\n navElements.forEach((n) => {\r\n const button = n.querySelector('.nav__toggle') as HTMLElement;\r\n if (n !== keepOpen) {\r\n if (n.classList.contains(navToggledClass)) {\r\n button.focus();\r\n button.setAttribute('aria-expanded', 'false');\r\n }\r\n n.classList.remove(navToggledClass);\r\n }\r\n });\r\n};\r\n\r\nconst setResponsiveToggle = (navElements: NodeListOf<Element>): CleanUpPair[] => {\r\n const toggleMenu = (button: HTMLElement) => {\r\n const parent = findNav(button);\r\n\r\n const navItems = parent.querySelector('.nav__items');\r\n const lastNavItem = navItems?.querySelector('.nav__item:last-of-type');\r\n navItems?.classList.add('nav__items--fadeout');\r\n const firstElement = navItems?.querySelector('.nav__item--is-overflown') as HTMLElement;\r\n if (firstElement) {\r\n firstElement.focus();\r\n }\r\n\r\n const transitionListener = () => {\r\n parent.classList.toggle('nav--toggled');\r\n navItems?.classList.remove('nav__items--fadeout');\r\n lastNavItem?.removeEventListener('transitionend', transitionListener);\r\n };\r\n\r\n lastNavItem?.addEventListener('transitionend', transitionListener);\r\n return parent;\r\n };\r\n\r\n const cleanUp: CleanUpPair[] = [];\r\n\r\n const toggle = document.querySelectorAll('.nav__toggle');\r\n toggle.forEach((button) => {\r\n const clickEvent = () => {\r\n const nav = toggleMenu(button as HTMLElement);\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n button.setAttribute('aria-expanded', ariaExpanded === 'false' ? 'true' : 'false');\r\n closeResponsiveNav(navElements, nav);\r\n };\r\n\r\n cleanUp.push({\r\n element: button,\r\n clickEvent,\r\n });\r\n\r\n button.addEventListener('click', clickEvent);\r\n });\r\n\r\n return cleanUp;\r\n};\r\n\r\nconst setResponsiveNav = (\r\n navElements: NodeListOf<Element>,\r\n navElement: Element,\r\n): SetResponsiveNavCleanUp => {\r\n const navToggledClass = 'nav--toggled';\r\n const navItemsClass = 'nav__items';\r\n // gitlab #117\r\n navElement.classList.remove(navToggledClass);\r\n const navItemsParent = navElement.querySelector(`.${navItemsClass}`);\r\n\r\n if (navItemsParent) {\r\n const navItems = navItemsParent.querySelectorAll('.nav__item');\r\n const isOverflownClass = 'nav__item--is-overflown';\r\n const hasOverflowClass = 'nav--has-overflow';\r\n const isActiveClass = 'nav__item--active';\r\n let hasOverflown = false;\r\n\r\n for (let i = navItems.length - 1; i >= 0; i -= 1) {\r\n const nav = navItems[i] as HTMLElement;\r\n const top = nav.offsetTop;\r\n\r\n if (top > 0) {\r\n nav.classList.add(isOverflownClass);\r\n navElement.classList.add(hasOverflowClass);\r\n hasOverflown = true;\r\n } else if (!nav.classList.contains(isActiveClass)) {\r\n nav.classList.remove(isOverflownClass);\r\n }\r\n }\r\n\r\n if (!hasOverflown) {\r\n navElement.classList.remove(hasOverflowClass);\r\n const isActive = navElement.querySelector(`.${isActiveClass}`);\r\n if (isActive) {\r\n isActive.classList.remove(isOverflownClass);\r\n }\r\n }\r\n }\r\n\r\n // gitlab #115\r\n const bodyClickEvent = (e: Event) => {\r\n if (!(e.target as HTMLElement).classList.contains('nav__toggle')\r\n && !isElementWithClassNameInEventPath(e as MouseEvent, navItemsClass)) {\r\n closeResponsiveNav(navElements);\r\n }\r\n };\r\n\r\n document.querySelector('body')?.addEventListener('click', bodyClickEvent);\r\n\r\n return {\r\n element: document.querySelector('body'),\r\n clickEvent: bodyClickEvent,\r\n };\r\n};\r\n\r\nconst closeSubNav = (buttons: NodeListOf<Element>, keepOpen: Element | null = null) => {\r\n const subNavClass = 'sub-nav--toggled';\r\n buttons.forEach((button) => {\r\n if (button !== keepOpen) {\r\n if (button?.parentElement?.classList.contains(subNavClass)) {\r\n (button as HTMLElement).focus();\r\n button.setAttribute('aria-expanded', 'false');\r\n }\r\n button?.parentElement?.classList.remove(subNavClass);\r\n }\r\n });\r\n};\r\n\r\nconst setSubNavToggle = (buttons: NodeListOf<Element>, button: Element): SetSubNavToggleCleanUp => {\r\n const subNavClass = 'sub-nav--toggled';\r\n const buttonClickEvent = () => {\r\n button?.parentElement?.classList.toggle(subNavClass);\r\n if (button?.parentElement?.classList.contains(subNavClass)) {\r\n button.setAttribute('aria-expanded', 'true');\r\n } else {\r\n button.setAttribute('aria-expanded', 'false');\r\n }\r\n closeSubNav(buttons, button);\r\n };\r\n\r\n button.addEventListener('click', buttonClickEvent);\r\n\r\n // gitlab #115\r\n const bodyClickEvent = (e: Event) => {\r\n if (!isElementWithClassNameInEventPath(e as MouseEvent, 'sub-nav')) {\r\n closeSubNav(buttons);\r\n }\r\n };\r\n\r\n document.querySelector('body')?.addEventListener('click', bodyClickEvent);\r\n return {\r\n buttonClickEvent,\r\n element: document.querySelector('body'),\r\n bodyClickEvent,\r\n };\r\n};\r\n\r\nconst setClickMessage = ((\r\n text: string,\r\n copyElement: Element,\r\n clickElement: Element | null,\r\n ctcThis: HTMLElement | null,\r\n listener: () => void,\r\n): void => {\r\n if (ctcThis && clickElement) {\r\n // Vi kopierer teksten til clipboard\r\n copyToClipboard(ctcThis.innerText);\r\n copyElement.classList.add('copy-to-clipboard--confirm');\r\n if (copyElement === clickElement) {\r\n copyElement.classList.add('copy-to-clipboard--done');\r\n }\r\n // Laver en span, der viser, at teksten er kopieret\r\n const ctcThisMessage = document.createElement('span');\r\n ctcThisMessage.classList.add('copy-to-clipboard__this__confirm-message');\r\n ctcThisMessage.innerText = text;\r\n ctcThis.appendChild(ctcThisMessage);\r\n\r\n // Efter 1,2 sekunder fjerner vi beskeden igen\r\n clickElement.removeEventListener('click', listener);\r\n setTimeout(() => {\r\n copyElement.classList.remove('copy-to-clipboard--confirm');\r\n ctcThisMessage.remove();\r\n clickElement.addEventListener('click', listener);\r\n }, 1200);\r\n }\r\n});\r\n\r\nconst setCopyToClipboard = (element: HTMLElement, text = 'Kopieret!'): void => {\r\n const ctcThis = <HTMLElement>element.querySelector('.copy-to-clipboard__this');\r\n // Hvis det er en knap, s\u00E5 s\u00E6tter vi click event p\u00E5 knappen\r\n if ((element as HTMLButtonElement).type === 'button') {\r\n const listener = (): void => {\r\n setClickMessage(text, element, element, ctcThis, listener);\r\n };\r\n element.addEventListener('click', listener);\r\n // Hvis det ikke er en knap, finder vi knappen \"inde i\" elementet\r\n } else {\r\n const btn = element.querySelector('.copy-to-clipboard__execute');\r\n const listener = (): void => {\r\n setClickMessage(text, element, btn, ctcThis, listener);\r\n };\r\n btn?.addEventListener('click', listener);\r\n }\r\n};\r\n\r\nconst setSearchToggle = (navSearch: Element, button: Element): void => {\r\n const toggleClass = 'nav__search--toggled';\r\n button.addEventListener('click', () => {\r\n if (navSearch.classList.contains(toggleClass)) {\r\n button.setAttribute('aria-expanded', 'false');\r\n navSearch.classList.remove(toggleClass);\r\n } else {\r\n button.setAttribute('aria-expanded', 'true');\r\n navSearch.classList.add(toggleClass);\r\n }\r\n });\r\n};\r\n\r\nexport {\r\n findNav,\r\n setResponsiveToggle,\r\n setResponsiveNav,\r\n setSubNavToggle,\r\n setCopyToClipboard,\r\n setSearchToggle,\r\n};\r\n", "/* eslint-env browser */\r\nimport { copyToClipboard } from './helpers';\r\n\r\nconst copyHexCode = (): void => {\r\n const ctc = document.querySelectorAll('.copy-to-clipboard');\r\n const colorElements = document.querySelectorAll('.copy-to-clipboard__color');\r\n ctc.forEach((button) => {\r\n button.addEventListener('click', () => {\r\n let color = button.parentElement?.querySelector('.copy-to-clipboard__color');\r\n if(color) {\r\n let computedStyle = getComputedStyle(color).getPropertyValue('background-color');\r\n let hexColor = rgbToHex(computedStyle);\r\n console.log(hexColor);\r\n copyToClipboard(hexColor.replace(/\"/g, ''));\r\n }\r\n });\r\n });\r\n};\r\n\r\nfunction rgbToHex(rgb) {\r\n // Extract the individual RGB components\r\n var rgbArray = rgb.match(/\\d+/g);\r\n\r\n // Convert each component to hex and concatenate\r\n var hex = \"#\" + rgbArray.map(function (value) {\r\n var hexValue = parseInt(value).toString(16);\r\n return hexValue.length === 1 ? \"0\" + hexValue : hexValue;\r\n }).join('');\r\n\r\n return hex;\r\n}\r\n\r\nexport default copyHexCode;\r\n", "/* eslint-disable import/prefer-default-export */\r\nconst setResponsiveTable = (table: Element): void => {\r\n const head = table.querySelector('thead');\r\n const body = table.querySelector('tbody');\r\n const foot = table.querySelector('tfoot');\r\n\r\n if (head) {\r\n const headers: string[] = [];\r\n const ths = head.querySelectorAll('th');\r\n ths.forEach((h) => {\r\n if (!h.classList.contains('table__cell--self-explanatory')) {\r\n headers.push(h.innerHTML); // Because innerText inherits stuff like text-transform\r\n } else {\r\n headers.push(''); // If header is self explanatory we do not add it\r\n }\r\n });\r\n\r\n const rowContainers: HTMLTableSectionElement[] = [];\r\n // Table elements that possibly contains <tr>'s\r\n if (body) {\r\n rowContainers.push(body);\r\n }\r\n if (foot) {\r\n rowContainers.push(foot);\r\n }\r\n\r\n rowContainers.forEach((rc) => {\r\n const rows = rc.querySelectorAll('tr');\r\n rows.forEach((tr) => {\r\n const cells = tr.querySelectorAll('td, th');\r\n cells.forEach((cell, i) => {\r\n if (headers[i]) {\r\n // if header is self explanatory we skip (value of array index is '' which is falsy)\r\n cell.setAttribute('data-label', headers[i]);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport {\r\n setResponsiveTable,\r\n};\r\n", "/* eslint-disable @typescript-eslint/no-empty-function */\r\n/* eslint-env browser */\r\n/* eslint-disable import/prefer-default-export */\r\n/* eslint-disable no-param-reassign */\r\nimport { getBaseFontSize } from './helpers';\r\n\r\nconst getMediaWidthBasedOnModifier = (classList: DOMTokenList): number => {\r\n if (classList.contains('tabbed-content--hide-tabs-on-medium-width')) {\r\n return parseInt(getComputedStyle(document.documentElement).getPropertyValue('--bp-medium').replace('rem', ''), 10);\r\n }\r\n if (classList.contains('tabbed-content--hide-tabs-on-wide-width')) {\r\n return parseInt(getComputedStyle(document.documentElement).getPropertyValue('--bp-wide').replace('rem', ''), 10);\r\n }\r\n\r\n return -1;\r\n};\r\n\r\nconst isBelowViewportLimit = (classList: DOMTokenList): boolean => {\r\n const viewportWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n const widthInRem = viewportWidth / getBaseFontSize();\r\n const mediaWidth = getMediaWidthBasedOnModifier(classList);\r\n if (mediaWidth > -1) {\r\n return widthInRem < mediaWidth;\r\n }\r\n return true;\r\n};\r\n\r\nconst destroyTabs = (tabbed: Element): void => {\r\n const tablist = tabbed.querySelector('.nav__items');\r\n const tabs = tablist?.querySelectorAll('a');\r\n const panels: HTMLElement[] = [];\r\n const sections = tabbed.querySelectorAll('section');\r\n sections.forEach((section) => {\r\n if (section.parentNode === tabbed) {\r\n panels.push(section);\r\n }\r\n });\r\n tabs?.forEach((tab) => {\r\n tab.removeAttribute('aria-selected');\r\n tab.classList.remove('nav__item--active');\r\n });\r\n\r\n panels.forEach((panel) => {\r\n panel.hidden = false;\r\n panel.removeAttribute('role');\r\n });\r\n};\r\n\r\nconst destroySwitches = (tabbed: Element): void => {\r\n const switchlist = tabbed.querySelector('.switch');\r\n const switches = switchlist?.querySelectorAll('a');\r\n const panels: HTMLElement[] = [];\r\n const sections = tabbed.querySelectorAll('section');\r\n sections.forEach((section) => {\r\n if (section.parentNode === tabbed) {\r\n panels.push(section);\r\n }\r\n });\r\n switches?.forEach((tab) => {\r\n tab.removeAttribute('aria-selected');\r\n tab.classList.remove('switch__segment--active');\r\n });\r\n\r\n panels.forEach((panel) => {\r\n panel.hidden = false;\r\n panel.removeAttribute('role');\r\n });\r\n};\r\n\r\nconst switchTab = (\r\n tabs: NodeListOf<HTMLAnchorElement>,\r\n panels: HTMLElement[],\r\n oldTab: Element | null,\r\n newTab: HTMLElement,\r\n _: DOMTokenList,\r\n focus = true,\r\n // eslint-disable-next-line no-console\r\n callback = (index: number): void => console.log(index),\r\n): void => {\r\n if (focus) {\r\n newTab.focus();\r\n }\r\n // Make the active tab focusable by the user (Tab key)\r\n newTab.removeAttribute('tabindex');\r\n // Set the selected state\r\n newTab.setAttribute('aria-selected', 'true');\r\n\r\n // Check if switch // should this be more pretty?\r\n if (newTab.classList.contains('switch__segment')) {\r\n newTab.classList.add('switch__segment--active');\r\n } else {\r\n newTab.classList.add('nav__item--active');\r\n }\r\n\r\n if (oldTab) {\r\n oldTab.removeAttribute('aria-selected');\r\n oldTab.setAttribute('tabindex', '-1');\r\n\r\n if (oldTab.classList.contains('switch__segment')) {\r\n oldTab.classList.remove('switch__segment--active');\r\n } else {\r\n oldTab.classList.remove('nav__item--active');\r\n }\r\n }\r\n\r\n const index = Array.prototype.indexOf.call(tabs, newTab);\r\n\r\n // More links\r\n /* let moreLinks;\r\n var moreLink: HTMLElement;\r\n moreLinks = document.querySelectorAll(`[data-for=\"${panels[index].id}\"]`);\r\n moreLinks.forEach((moreLink) => {\r\n moreLink.classList.add('tabbed-content-peripheral--active');\r\n moreLink.hidden = false;\r\n }); */\r\n const moreLinks: HTMLElement[] = Array.from(document.querySelectorAll(`[data-for=\"${panels[index].id}\"]`));\r\n moreLinks.forEach((link) => {\r\n link.classList.add('tabbed-content-peripheral--active');\r\n link.hidden = false;\r\n });\r\n\r\n // Get the indices of the new and old tabs to find the correct\r\n // tab panels to show and hide\r\n panels[index].hidden = false;\r\n if (oldTab) {\r\n const oldIndex = Array.prototype.indexOf.call(tabs, oldTab);\r\n\r\n const oldMoreLinks: HTMLElement[] = Array.from(document.querySelectorAll(`[data-for=\"${panels[oldIndex].id}\"]`));\r\n oldMoreLinks.forEach((link) => {\r\n link.classList.remove('tabbed-content-peripheral--active');\r\n link.hidden = true;\r\n });\r\n\r\n /* moreLinks.forEach((moreLink) => {\r\n moreLink.classList.remove('tabbed-content-peripheral--active');\r\n moreLink.hidden = true;\r\n }); */\r\n\r\n panels[oldIndex].hidden = true;\r\n }\r\n\r\n // Dispatches custom event on every tab change\r\n newTab.dispatchEvent(new CustomEvent('switch-tab', {\r\n bubbles: true,\r\n detail: { tab: index },\r\n }));\r\n callback(index);\r\n};\r\n\r\nconst setTabbedContent = (\r\n key: number,\r\n tabbed: Element,\r\n initial = 0,\r\n focus = true,\r\n // eslint-disable-next-line no-console\r\n callback = (index: number) => console.log(index),\r\n): void => {\r\n const tablist = tabbed.querySelector('.switch,.nav__items') as HTMLElement;\r\n const tabs = tablist.querySelectorAll('a');\r\n const panels: HTMLElement[] = [];\r\n const sections = tabbed.querySelectorAll('section');\r\n sections.forEach((section) => {\r\n if (section.parentNode === tabbed) {\r\n panels.push(section);\r\n }\r\n });\r\n\r\n const expandAll = tabbed.querySelector('button.tabbed-content__expand-all');\r\n if (expandAll) {\r\n const expandAllEvent = () => {\r\n tablist.hidden = true;\r\n panels.forEach((panel: HTMLElement) => {\r\n panel.hidden = false;\r\n });\r\n };\r\n\r\n expandAll.removeEventListener('click', expandAllEvent);\r\n expandAll.addEventListener('click', expandAllEvent);\r\n }\r\n\r\n // Add the tablist role to the first <ul> in the .tabbed container\r\n tablist.setAttribute('role', 'tablist');\r\n\r\n // Add semantics are remove user focusability for each tab\r\n tabs.forEach((tab, i) => {\r\n tab.setAttribute('role', 'tab');\r\n tab.setAttribute('id', `tab${key}_${(i + 1)}`);\r\n tab.setAttribute('tabindex', '-1');\r\n tab.parentElement?.setAttribute('role', 'presentation');\r\n\r\n // Handle clicking of tabs for mouse users\r\n const tabClickEvent = (e: MouseEvent) => {\r\n e.preventDefault();\r\n const currentTab = tablist.querySelector('[aria-selected]');\r\n if (e.currentTarget !== currentTab) {\r\n // eslint-disable-next-line max-len\r\n switchTab(tabs, panels, currentTab, e.currentTarget as HTMLElement, tabbed.classList, true, (tabIndex) => {\r\n callback(tabIndex);\r\n });\r\n }\r\n };\r\n\r\n tab.removeEventListener('click', tabClickEvent);\r\n tab.addEventListener('click', tabClickEvent);\r\n\r\n // Handle keydown events for keyboard users\r\n const tabKeyEvent = (e: KeyboardEvent) => {\r\n // Get the index of the current tab in the tabs node list\r\n const index = Array.prototype.indexOf.call(tabs, e.currentTarget);\r\n // Work out which key the user is pressing and\r\n // Calculate the new tab's index where appropriate\r\n let dir: number | string | null = null;\r\n if (e.key === 'ArrowLeft') {\r\n dir = index - 1;\r\n }\r\n if (e.key === 'ArrowRight') {\r\n dir = index + 1;\r\n }\r\n if (e.key === 'ArrowDown') {\r\n dir = 'down';\r\n }\r\n if (dir !== null) {\r\n e.preventDefault();\r\n // If the down key is pressed, move focus to the open panel,\r\n // otherwise switch to the adjacent tab\r\n if (dir === 'down') {\r\n panels[i].focus();\r\n } else if (tabs[dir]) {\r\n // eslint-disable-next-line max-len\r\n switchTab(tabs, panels, e.currentTarget as Element, tabs[dir], tabbed.classList, true, (tabIndex) => {\r\n callback(tabIndex);\r\n });\r\n }\r\n }\r\n };\r\n tab.removeEventListener('keydown', tabKeyEvent);\r\n tab.addEventListener('keydown', tabKeyEvent);\r\n });\r\n\r\n // Add tab panel semantics and hide them all\r\n panels.forEach((panel: HTMLElement, i: number) => {\r\n panel.setAttribute('tabindex', '-1');\r\n panel.setAttribute('aria-labelledby', tabs[i].id);\r\n // eslint-disable-next-line no-param-reassign\r\n panel.hidden = true;\r\n panel.setAttribute('role', 'tabpanel');\r\n });\r\n\r\n // Initially activate the first tab and reveal the first tab panel\r\n if (initial > -1) {\r\n switchTab(tabs, panels, null, tabs[initial], tabbed.classList, focus);\r\n }\r\n};\r\n\r\nconst setTabs = (tabbedObjects: ITabbedObject[]): void => {\r\n tabbedObjects.forEach((tabObject: ITabbedObject, key: number): void => {\r\n const { rendered, domElement } = tabObject;\r\n if (isBelowViewportLimit(domElement.classList)) {\r\n if (!rendered) {\r\n const focus = domElement.getAttribute('data-focus-onload');\r\n const dataInitial = domElement.getAttribute('data-initial-tab');\r\n const initial = dataInitial ? parseInt(dataInitial, 10) : 0;\r\n setTabbedContent(key, domElement, initial, focus !== 'false');\r\n tabObject.rendered = true;\r\n }\r\n } else if (rendered) {\r\n destroyTabs(domElement);\r\n tabObject.rendered = false;\r\n }\r\n });\r\n};\r\n\r\nexport {\r\n setTabbedContent,\r\n isBelowViewportLimit,\r\n destroyTabs,\r\n destroySwitches,\r\n setTabs,\r\n};\r\n", "/* eslint-disable max-len */\r\n/* eslint-env browser */\r\n/* eslint-disable import/prefer-default-export */\r\n\r\nimport { isViewportBelow} from './helpers';\r\n\r\nconst setContentToggle = (\r\n content: Element,\r\n onClick?: ((content: HTMLElement, button: HTMLButtonElement) => void) | undefined,\r\n beforeCallback?: ((content: HTMLElement, button: HTMLButtonElement) => void) | undefined,\r\n afterCallback?: ((content: HTMLElement, button: HTMLButtonElement) => void) | undefined,\r\n): CleanUpPair[] => {\r\n const cleanUp: CleanUpPair[] = [];\r\n const setContentClose = (button: HTMLElement, contentClose: HTMLElement, focus: boolean): () => void => {\r\n if (focus) {\r\n contentClose.focus();\r\n }\r\n const click = () => {\r\n content.setAttribute('hidden', 'hidden');\r\n button.removeAttribute('hidden');\r\n button.setAttribute('aria-expanded', 'false');\r\n button.focus();\r\n };\r\n contentClose.addEventListener('click', click);\r\n return click;\r\n };\r\n\r\n const button = content?.parentElement?.querySelector('.content-toggle__toggle') as HTMLElement;\r\n const contentClose = content.querySelectorAll('.content-toggle__close');\r\n \r\n const setBPModiferClass = () => {\r\n if (isViewportBelow('--bp-medium') && content.classList.contains('content-toggle__content--always-show-on-medium')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n } \r\n else if (isViewportBelow('--bp-wide') && content.classList.contains('content-toggle__content--always-show-on-wide')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n } \r\n else if (isViewportBelow('--bp-max-width') && content.classList.contains('content-toggle__content--always-show-on-max-width')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n \r\n } \r\n else (\r\n content.classList.contains('content-toggle__content--always-show-on-medium') ||\r\n content.classList.contains('content-toggle__content--always-show-on-wide') ||\r\n content.classList.contains('content-toggle__content--always-show-on-max-width')\r\n )\r\n }\r\n window.addEventListener('resize', () => {\r\n setBPModiferClass();\r\n });\r\n\r\n const setBPModifierPopupClass = () => {\r\n document.addEventListener('click', (event) => {\r\n const eventTarget = event.target as HTMLElement;\r\n const doesNotContainContent = !eventTarget.classList.contains('content-toggle__content')\r\n const doesNotContainButton = !eventTarget.classList.contains('content-toggle__toggle')\r\n const doesNotContainSpan = !eventTarget.classList.contains('profile-header__info__contact__toggle__button')\r\n if (doesNotContainContent && doesNotContainButton && doesNotContainSpan) {\r\n if (!isViewportBelow('--bp-medium') && content.classList.contains('content-toggle__content--is-popover--on-medium')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n } else if (!isViewportBelow('--bp-wide') && content.classList.contains('content-toggle__content--is-popover--on-wide')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n } else if (!isViewportBelow('--bp-max-width') && content.classList.contains('content-toggle__content--is-popover--on-max-width')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus(); \r\n }\r\n else if (content.classList.contains('content-toggle__content--is-popover')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n }\r\n }\r\n });\r\n }\r\n\r\n setBPModifierPopupClass(); \r\n setBPModiferClass();\r\n\r\n if (button) {\r\n const clickEvent = () => {\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n // Til toolbar: hvis man klikker p\u00E5 en knap, der ikke er foldet ud\r\n // S\u00E5 lukker vi alle \u00E5bne content-toggles\r\n if (typeof beforeCallback === 'function' && ariaExpanded === 'false') {\r\n beforeCallback(content as HTMLElement, button as HTMLButtonElement);\r\n }\r\n // Og s\u00E5 g\u00E5r vi i gang med folde-ud-logikken\r\n button.setAttribute('aria-expanded', ariaExpanded === 'false' ? 'true' : 'false');\r\n if (ariaExpanded === 'true') {\r\n content.setAttribute('hidden', 'hidden');\r\n } else {\r\n content.removeAttribute('hidden');\r\n }\r\n\r\n if (typeof onClick === 'function') {\r\n onClick(content as HTMLElement, button as HTMLButtonElement);\r\n }\r\n\r\n if (button.hasAttribute('aria-haspopup')) {\r\n button.setAttribute('hidden', 'hidden');\r\n contentClose.forEach((cc) => {\r\n setContentClose(button, cc as HTMLElement, true);\r\n });\r\n }\r\n\r\n // Det der sker efter folde-logikken\r\n if (typeof afterCallback === 'function') {\r\n afterCallback(content as HTMLElement, button as HTMLButtonElement);\r\n }\r\n };\r\n\r\n button.addEventListener('click', clickEvent);\r\n // Altid tilf\u00F8j denne f\u00F8rst!\r\n cleanUp.push({\r\n element: button,\r\n clickEvent,\r\n });\r\n\r\n contentClose.forEach((cc) => {\r\n const btnClick = setContentClose(button, cc as HTMLElement, false);\r\n cleanUp.push({\r\n element: cc,\r\n clickEvent: btnClick,\r\n });\r\n });\r\n }\r\n return cleanUp;\r\n};\r\n\r\nexport {\r\n setContentToggle, \r\n};\r\n", "/* eslint-disable max-len */\r\nimport { convertRemToPixels, isElementWithClassNameInEventPath, isViewportBelow } from './helpers';\r\n\r\nconst lockBodyScroll = (): void => {\r\n const body = document.querySelector('body');\r\n if (isViewportBelow('--bp-medium') || isViewportBelow('--bp-low-height')) {\r\n body?.classList.add('body--no-scroll');\r\n }\r\n};\r\n\r\nconst unlockBodyScroll = (): void => {\r\n const body = document.querySelector('body');\r\n body?.classList.remove('body--no-scroll');\r\n};\r\n\r\n/* eslint-env browser */\r\nconst closeAllContentTogglesInToolbar = (toolbar: HTMLElement): void => {\r\n const contentToggles = toolbar.querySelectorAll('.content-toggle__toggle');\r\n contentToggles.forEach((toggle) => {\r\n const content = toggle.parentElement?.querySelector('.content-toggle__content');\r\n toggle.setAttribute('aria-expanded', 'false');\r\n content?.setAttribute('hidden', 'hidden');\r\n });\r\n};\r\n\r\nconst setOverflow = (toolbarElement: Element): void => {\r\n if (!toolbarElement.classList.contains('toolbar--no-collapse')) {\r\n toolbarElement.classList.remove('toolbar--toggled');\r\n }\r\n toolbarElement.classList.remove('toolbar--fully-overflown');\r\n toolbarElement.classList.remove('toolbar--has-popout');\r\n const toolbarItemsParent = toolbarElement.querySelector('.toolbar__items');\r\n const toolbarItems = toolbarItemsParent?.children as HTMLCollection;\r\n const isOverflownClass = 'toolbar__item--is-overflown';\r\n const hasOverflowClass = 'toolbar--has-overflow';\r\n let hasOverflown = false;\r\n\r\n let overflownCount = 0;\r\n const addOverflowClass = (item: HTMLElement, index: number) => {\r\n if (item) {\r\n const top = item.offsetTop;\r\n if (top > 25) {\r\n item.classList.add(isOverflownClass);\r\n toolbarElement.classList.add(hasOverflowClass);\r\n hasOverflown = true;\r\n overflownCount += 1;\r\n } else {\r\n item.classList.remove(isOverflownClass);\r\n }\r\n\r\n if (!hasOverflown) {\r\n toolbarElement.classList.remove(hasOverflowClass);\r\n } else if (index - 1 >= 0) {\r\n addOverflowClass(toolbarItems[index - 1] as HTMLElement, index - 1);\r\n }\r\n }\r\n };\r\n\r\n addOverflowClass(toolbarItems[toolbarItems.length - 1] as HTMLElement, toolbarItems.length - 1);\r\n\r\n if (overflownCount > 0 && overflownCount === toolbarItems.length) {\r\n toolbarElement.classList.add('toolbar--fully-overflown');\r\n }\r\n};\r\n\r\nconst setToolbarToggle = (toolbar: HTMLElement): ExtendedCleanUpPair[] => {\r\n const cleanUp: ExtendedCleanUpPair[] = [];\r\n const buttons = toolbar.querySelectorAll('.toolbar__toggle');\r\n buttons.forEach((button) => {\r\n const clickEvent = () => {\r\n button?.parentElement?.classList.toggle('toolbar--toggled');\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n if (ariaExpanded !== 'true') {\r\n const focusable = 'a.toolbar__item--is-overflown, button.toolbar__item--is-overflown, input.toolbar__item--is-overflown, select.toolbar__item--is-overflown, .toolbar__item--is-overflown a, .toolbar__item--is-overflown button, .toolbar__item--is-overflown input, .toolbar__item--is-overflown select';\r\n const firstWithOverflow = button?.parentElement?.querySelector(focusable) as HTMLElement;\r\n if (firstWithOverflow) {\r\n setTimeout(() => {\r\n firstWithOverflow.focus();\r\n }, 0);\r\n }\r\n }\r\n button.setAttribute('aria-expanded', ariaExpanded === 'false' ? 'true' : 'false');\r\n };\r\n\r\n cleanUp.push({\r\n element: button,\r\n clickEvent,\r\n });\r\n button.addEventListener('click', clickEvent);\r\n });\r\n return cleanUp;\r\n};\r\n\r\nconst setToolbar = (\r\n toolbar: HTMLElement,\r\n onCloseContentToggle: (toolbarElement: HTMLElement) => void,\r\n setOverflowOnly = true,\r\n): ExtendedCleanUpPair[] => {\r\n let cleanUp: ExtendedCleanUpPair[] = [];\r\n\r\n setOverflow(toolbar);\r\n onCloseContentToggle(toolbar);\r\n cleanUp = cleanUp.concat(setToolbarToggle(toolbar));\r\n\r\n if (!setOverflowOnly) {\r\n const bodyClickEvent = (event: Event) => {\r\n if (!(event.target as HTMLElement).classList.contains('content-toggle__toggle')\r\n && !isElementWithClassNameInEventPath(event as MouseEvent, 'content-toggle__content')) {\r\n onCloseContentToggle(toolbar);\r\n }\r\n };\r\n\r\n const escKeyEvent = (event: Event) => {\r\n if ((event as KeyboardEvent).key === 'Escape') {\r\n if (event.target && (event.target as HTMLElement).getAttribute('type') !== 'search') {\r\n onCloseContentToggle(toolbar);\r\n }\r\n }\r\n };\r\n\r\n const body = document.querySelector('body');\r\n\r\n cleanUp.push({\r\n element: body as Element,\r\n clickEvent: bodyClickEvent,\r\n });\r\n\r\n cleanUp.push({\r\n element: window,\r\n keyUpEvent: escKeyEvent,\r\n });\r\n\r\n body?.addEventListener('click', bodyClickEvent);\r\n window.addEventListener('keyup', escKeyEvent);\r\n }\r\n\r\n return cleanUp;\r\n};\r\n\r\nconst findToolbar = (element: HTMLElement): HTMLElement => {\r\n const parent = element.parentElement;\r\n if (parent) {\r\n if (parent.classList.contains('toolbar')) {\r\n return parent;\r\n }\r\n return findToolbar(parent);\r\n }\r\n return element;\r\n};\r\n\r\nconst contentToggleEdgeHandling = (element: HTMLElement): void => {\r\n if (!isViewportBelow('--bp-medium') && !isViewportBelow('--bp-low-height')) {\r\n const allowedDistance = convertRemToPixels(parseInt(getComputedStyle(document.documentElement).getPropertyValue('--toolbar-popout-allowed-edge-distance').replace('rem,', ''), 10));\r\n const popoutX = parseInt(getComputedStyle(element).width.replace('px', ''), 10);\r\n const popoutWidth = element.getBoundingClientRect().x;\r\n\r\n const distance = document.body.offsetWidth - allowedDistance - popoutX - popoutWidth;\r\n\r\n if (distance < 0) {\r\n element.style.setProperty('--toolbar-popout-edge-overflow', `${distance}px`);\r\n }\r\n }\r\n};\r\n\r\nexport {\r\n setToolbar,\r\n setOverflow,\r\n findToolbar,\r\n closeAllContentTogglesInToolbar,\r\n contentToggleEdgeHandling,\r\n lockBodyScroll,\r\n unlockBodyScroll,\r\n};\r\n", "// Scroller 80% p\u00E5 horisontal scroll til h\u00F8jre og s\u00E6tter knappen disabled n\u00E5r man rammer bunden\r\nconst horizontalScrollButtonNext = (nextButtons: NodeListOf<Element>): void => {\r\n if (nextButtons) {\r\n nextButtons.forEach((nextButton) => {\r\n const topElem = nextButton?.parentElement?.parentElement?.parentElement?.parentElement;\r\n if (topElem) {\r\n const scrollElements = topElem.querySelectorAll('.horizontal-scroll__scrollable-content');\r\n const switch__segments = topElem.querySelectorAll('.switch__segment');\r\n scrollElements.forEach((scrollElement) => { \r\n if (scrollElement) {\r\n nextButton.addEventListener('click', () => {\r\n // Scroller 80% af den synlige bredde p\u00E5 horizontal scroll til h\u00F8jre\r\n const scrollAmount = 0.8 * scrollElement.clientWidth;\r\n scrollElement.scrollLeft += scrollAmount;\r\n });\r\n // G\u00F8r knappen aktiv hvis scroll har ramt bunden\r\n scrollElement.addEventListener('scroll', () => {\r\n if ((scrollElement.scrollLeft + scrollElement.clientWidth) >= (scrollElement.scrollWidth * 0.98)) {\r\n disableButton(nextButton);\r\n } else if (scrollElement.scrollLeft + scrollElement.clientWidth < scrollElement.scrollWidth) {\r\n activateButton(nextButton);\r\n }\r\n });\r\n // Reset af knap ved flere tabs af horizontal scroll\r\n if (switch__segments) {\r\n switch__segments.forEach(switch__segment => {\r\n switch__segment.addEventListener('click', () => {\r\n activateButton(nextButton);\r\n scrollElement.scrollLeft = 0;\r\n })\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n \r\n // Scroller 80% p\u00E5 horisontal scroll til venstre og s\u00E6tter knappen disabled n\u00E5r man rammer toppen\r\n const horizontalScrollButtonPrevious = (previousButtons: NodeListOf<Element>): void => {\r\n if (previousButtons) {\r\n previousButtons.forEach((previousButton) => {\r\n const topElem = previousButton?.parentElement?.parentElement?.parentElement?.parentElement;\r\n if (topElem) {\r\n const scrollElements = topElem.querySelectorAll('.horizontal-scroll__scrollable-content');\r\n const switch__segments = topElem.querySelectorAll('.switch__segment');\r\n scrollElements.forEach((scrollElement) => { \r\n if (scrollElement) {\r\n previousButton.addEventListener('click', () => {\r\n // Scroller 80% af den synlige bredde p\u00E5 horizontal scroll til venstre\r\n const scrollAmount = 0.8 * scrollElement.clientWidth;\r\n scrollElement.scrollLeft -= scrollAmount;\r\n });\r\n // G\u00F8r knappen aktiv hvis scroll har ramt toppen\r\n scrollElement.addEventListener('scroll', () => {\r\n if (scrollElement.scrollLeft <= 0) {\r\n disableButton(previousButton);\r\n } else if (scrollElement.scrollLeft > 0) {\r\n activateButton(previousButton);\r\n }\r\n });\r\n }\r\n // Reset af knap ved flere tabs af horizontal scroll\r\n if (switch__segments) {\r\n switch__segments.forEach(switch__segment => {\r\n switch__segment.addEventListener('click', () => {\r\n disableButton(previousButton);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n function activateButton(button) {\r\n button.classList.remove('visually-disabled');\r\n button.setAttribute('aria-disabled', 'false');\r\n }\r\n \r\n function disableButton(button) {\r\n button.classList.add('visually-disabled');\r\n button.setAttribute('aria-disabled', 'true');\r\n }\r\n\r\n export {\r\n horizontalScrollButtonNext,\r\n horizontalScrollButtonPrevious,\r\n };", "function setupAutoExpand(textarea: HTMLTextAreaElement | null): void {\r\n if (textarea) {\r\n textarea.addEventListener(\"input\", function (this: HTMLTextAreaElement, event: Event) {\r\n const parentNode = textarea?.parentNode as HTMLElement | null;\r\n \r\n if (parentNode && parentNode.dataset) {\r\n parentNode.dataset.value = this.value;\r\n }\r\n });\r\n }\r\n }\r\n\r\n export {\r\n setupAutoExpand\r\n };", "function setupCharacterCount(\r\n element: HTMLElement,\r\n type: HTMLTextAreaElement | HTMLInputElement | null,\r\n length: string | null,\r\n countdown: HTMLElement | null,\r\n countMessageOverflow: HTMLElement | null\r\n ): void {\r\n let text = type?.value;\r\n let charCount = text?.length;\r\n if (type && text) {\r\n type.textContent = text;\r\n charCount = text?.length;\r\n if (charCount && countdown && countMessageOverflow) {\r\n if (length) {\r\n const lengthNumber = parseInt(length, 10);\r\n let remainingChars = lengthNumber - charCount;\r\n let absoluteValue = Math.abs(remainingChars);\r\n // Update span 2 with remaining number of chars\r\n if(countMessageOverflow.textContent) {\r\n countMessageOverflow.textContent = countMessageOverflow.textContent.replace(/\\d+/, String(absoluteValue));\r\n }\r\n // Update span 3 with remaining number of chars\r\n if(countdown.textContent) {\r\n countdown.textContent = countdown.textContent.replace(/\\d+/, String(absoluteValue));\r\n }\r\n // Adds overflow class if remaining chars < 0 \r\n if (remainingChars < 0) {\r\n element.classList.add('form__field__character-count--overflow');\r\n element.setAttribute(\"aria-invalid\", \"true\");\r\n }\r\n // Remove overflow class if remaining chars >= 0 \r\n if (remainingChars >= 0) {\r\n element.classList.remove('form__field__character-count--overflow');\r\n element.setAttribute(\"aria-invalid\", \"false\");\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function charCounter(element: HTMLElement | null): void { \r\n if (element) {\r\n const textArea = element.querySelector(\"textarea\");\r\n const input = element.querySelector(\"input\");\r\n const recommendedLength = element.getAttribute('data-recommended-length');\r\n const allowedLength = element.getAttribute('data-allowed-length');\r\n let countdown = element.querySelector('.form__field__character-count__info__count-down');\r\n let countMessageOverflow = element.querySelector('.form__field__character-count__info__overflow-count');\r\n\r\n // Textarea intial page load\r\n setupCharacterCount(element as HTMLElement, textArea as HTMLTextAreaElement, recommendedLength as string, countdown as HTMLElement, countMessageOverflow as HTMLElement);\r\n setupCharacterCount(element as HTMLElement, textArea as HTMLTextAreaElement, allowedLength as string, countdown as HTMLElement, countMessageOverflow as HTMLElement);\r\n\r\n // Input intial page load\r\n setupCharacterCount(element as HTMLElement, input as HTMLInputElement, recommendedLength as string, countdown as HTMLElement, countMessageOverflow as HTMLElement);\r\n setupCharacterCount(element as HTMLElement, input as HTMLInputElement, allowedLength as string, countdown as HTMLElement, countMessageOverflow as HTMLElement);\r\n\r\n // Update textarea on input\r\n textArea?.addEventListener('input', function() { \r\n setupCharacterCount(element as HTMLElement, textArea as HTMLTextAreaElement, recommendedLength as string, countdown as HTMLElement, countMessageOverflow as HTMLElement);\r\n setupCharacterCount(element as HTMLElement, textArea as HTMLTextAreaElement, allowedLength as string, countdown as HTMLElement, countMessageOverflow as HTMLElement);\r\n })\r\n\r\n // Update input field on input\r\n input?.addEventListener('input', function() { \r\n setupCharacterCount(element as HTMLElement, input as HTMLInputElement, recommendedLength as string, countdown as HTMLElement, countMessageOverflow as HTMLElement);\r\n setupCharacterCount(element as HTMLElement, input as HTMLInputElement, allowedLength as string, countdown as HTMLElement, countMessageOverflow as HTMLElement);\r\n })\r\n }\r\n }\r\n\r\n export {\r\n charCounter,\r\n setupCharacterCount\r\n };", "/* eslint-disable no-param-reassign */\r\n/* eslint-env browser */\r\nimport ready from '../components/ready';\r\nimport {\r\n setResponsiveNav,\r\n setResponsiveToggle, setCopyToClipboard,\r\n} from '../components/nav';\r\nimport copyHexCode from '../components/copy-hex-code';\r\nimport { isElementWithClassNameInEventPath, setMetaThemeColor, setHorizontalScroll } from '../components/helpers';\r\nimport { setResponsiveTable } from '../components/table';\r\nimport { setTabs } from '../components/tabs';\r\nimport { setContentToggle } from '../components/content-toggle';\r\nimport {\r\n closeAllContentTogglesInToolbar,\r\n contentToggleEdgeHandling,\r\n findToolbar,\r\n lockBodyScroll,\r\n unlockBodyScroll,\r\n} from '../components/toolbar';\r\nimport { horizontalScrollButtonNext, horizontalScrollButtonPrevious } from '../components/horizontal-scroll-btn';\r\nimport { setupAutoExpand } from '../components/text-area';\r\nimport { charCounter } from '../components/char-counter';\r\nimport { all } from 'axios';\r\n\r\nlet windowInnerWidth = 0;\r\n\r\nready(() => {\r\n const tabbedContent = document.querySelectorAll('.tabbed-content');\r\n const tabbedObjects: ITabbedObject[] = [];\r\n tabbedContent.forEach((tab) => tabbedObjects.push({\r\n domElement: tab,\r\n rendered: false,\r\n }));\r\n setTabs(tabbedObjects);\r\n setMetaThemeColor();\r\n\r\n const navElements = document.querySelectorAll('.nav:not(.nav--vertical)');\r\n navElements.forEach((n) => setResponsiveNav(navElements, n));\r\n setResponsiveToggle(navElements);\r\n\r\n const tables = document.querySelectorAll('.table--wrap-medium-width, .table--wrap-default-width');\r\n tables.forEach((table) => setResponsiveTable(table));\r\n\r\n // Character counter for form input\r\n const elements = document.querySelectorAll('.form__field__character-count');\r\n elements.forEach((element) => {\r\n charCounter(element as HTMLElement);\r\n });\r\n\r\n // Textarea input\r\n const textarea = document.getElementById(\"autoexpand\") as HTMLTextAreaElement | null;\r\n setupAutoExpand(textarea);\r\n window.onload = function () {\r\n setupAutoExpand(textarea);\r\n };\r\n\r\n // Find alle copy-to-clipboard elementer\r\n const ctc = document.querySelectorAll('.copy-to-clipboard');\r\n ctc.forEach((element) => setCopyToClipboard(element as HTMLElement, document.querySelector('html')?.getAttribute('lang') === 'en' ? 'Hexcode copied!' : 'Hexkode kopieret!'));\r\n copyHexCode();\r\n\r\n //const toggles = document.querySelectorAll('.box .content-toggle__content, .profile-header .content-toggle__content, .design-documentation .content-toggle__content');\r\n const toggles = document.querySelectorAll('.content-toggle__content:not(.toolbar .content-toggle__content)');\r\n toggles.forEach((toggle) => {\r\n setContentToggle(toggle);\r\n });\r\n \r\n // Hortizontal scroll buttons\r\n const scrollButtonsNext = document.querySelectorAll('.button.button--small.button--icon.button--icon--hide-label.icon-next');\r\n const scrollButtonsPrevious = document.querySelectorAll('.button.button--small.button--icon.button--icon--hide-label.icon-previous');\r\n horizontalScrollButtonNext(scrollButtonsNext);\r\n horizontalScrollButtonPrevious(scrollButtonsPrevious);\r\n\r\n const horizontalScroll = document.querySelectorAll('.horizontal-scroll');\r\n horizontalScroll.forEach((hs) => {\r\n setHorizontalScroll(hs as HTMLElement);\r\n window.addEventListener('resize', () => {\r\n setHorizontalScroll(hs as HTMLElement);\r\n });\r\n });\r\n\r\n const switchSegments = document.querySelectorAll('.switch__segment');\r\n switchSegments.forEach((switchSegment) => {\r\n switchSegment.addEventListener('click', () => {\r\n const horizontalScrollTabbed = document.querySelectorAll('.horizontal-scroll');\r\n horizontalScrollTabbed.forEach((hsTabbed) => {\r\n setHorizontalScroll(hsTabbed as HTMLElement);\r\n });\r\n });\r\n });\r\n \r\n // Kursuskatalog\r\n const togglesInToolbars = document.querySelectorAll('.toolbar .content-toggle__content');\r\n togglesInToolbars.forEach((toggle) => {\r\n setContentToggle(\r\n toggle,\r\n (popout: HTMLElement) => {\r\n contentToggleEdgeHandling(popout);\r\n lockBodyScroll();\r\n },\r\n (content: HTMLElement) => closeAllContentTogglesInToolbar(findToolbar(content)),\r\n (content: HTMLElement, button: HTMLButtonElement) => {\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n const toolbar = findToolbar(content);\r\n if (ariaExpanded === 'true') {\r\n toolbar?.classList.add('toolbar--has-popout');\r\n } else {\r\n toolbar?.classList.remove('toolbar--has-popout');\r\n }\r\n\r\n content.addEventListener('click', (event: MouseEvent) => {\r\n if ((event.target as HTMLElement).classList.contains('toolbar__popout')\r\n && !isElementWithClassNameInEventPath(event as MouseEvent, 'toolbar__filter__content')) {\r\n closeAllContentTogglesInToolbar(toolbar);\r\n unlockBodyScroll();\r\n }\r\n });\r\n },\r\n );\r\n });\r\n\r\n window.addEventListener('load', () => {\r\n windowInnerWidth = window.innerWidth;\r\n });\r\n\r\n window.addEventListener('resize', () => {\r\n if (windowInnerWidth > 0 && window.innerWidth !== windowInnerWidth) {\r\n windowInnerWidth = window.innerWidth;\r\n navElements.forEach((n) => setResponsiveNav(navElements, n));\r\n setTabs(tabbedObjects);\r\n }\r\n });\r\n\r\n const topBar = document.querySelector('.omnibus-header__mobile-scroll'); \r\n window.addEventListener('scroll', function() {\r\n if (topBar) {\r\n if (window.scrollY > 70) {\r\n topBar.classList.add('omnibus-header__mobile-scroll--show'); \r\n topBar.classList.remove('omnibus-header__mobile-scroll--hide');\r\n } else {\r\n topBar.classList.remove('omnibus-header__mobile-scroll--show'); \r\n topBar.classList.add('omnibus-header__mobile-scroll--hide'); \r\n }\r\n }\r\n});\r\n});\r\n"],
5
+ "mappings": "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",
6
+ "names": ["ready", "fn", "ready_default", "copyToClipboard", "str", "isElementWithClassNameInEventPath", "event", "className", "found", "p", "setMetaThemeColor", "body", "bgColor", "existingMeta", "meta", "getBaseFontSize", "convertRemToPixels", "rem", "isViewportBelow", "mediaQuery", "viewportWidth", "mediaQueryValue", "overflowsX", "element", "setHorizontalScroll", "element", "content", "overflowsX", "findNav", "element", "parent", "closeResponsiveNav", "navElements", "keepOpen", "navToggledClass", "n", "button", "setResponsiveToggle", "toggleMenu", "navItems", "lastNavItem", "firstElement", "transitionListener", "cleanUp", "clickEvent", "nav", "ariaExpanded", "setResponsiveNav", "navElement", "navItemsClass", "navItemsParent", "isOverflownClass", "hasOverflowClass", "isActiveClass", "hasOverflown", "i", "isActive", "bodyClickEvent", "e", "isElementWithClassNameInEventPath", "setClickMessage", "text", "copyElement", "clickElement", "ctcThis", "listener", "copyToClipboard", "ctcThisMessage", "setCopyToClipboard", "element", "btn", "copyHexCode", "ctc", "colorElements", "button", "color", "computedStyle", "hexColor", "rgbToHex", "copyToClipboard", "rgb", "rgbArray", "hex", "value", "hexValue", "copy_hex_code_default", "setResponsiveTable", "table", "head", "body", "foot", "headers", "h", "rowContainers", "rc", "tr", "cell", "i", "getMediaWidthBasedOnModifier", "classList", "isBelowViewportLimit", "widthInRem", "getBaseFontSize", "mediaWidth", "destroyTabs", "tabbed", "tabs", "panels", "section", "tab", "panel", "switchTab", "tabs", "panels", "oldTab", "newTab", "_", "focus", "callback", "index", "link", "oldIndex", "setTabbedContent", "key", "tabbed", "initial", "tablist", "section", "expandAll", "expandAllEvent", "panel", "tab", "i", "tabClickEvent", "e", "currentTab", "tabIndex", "tabKeyEvent", "dir", "setTabs", "tabbedObjects", "tabObject", "rendered", "domElement", "isBelowViewportLimit", "dataInitial", "destroyTabs", "setContentToggle", "content", "onClick", "beforeCallback", "afterCallback", "cleanUp", "setContentClose", "button", "contentClose", "focus", "click", "setBPModiferClass", "isViewportBelow", "event", "eventTarget", "doesNotContainContent", "doesNotContainButton", "doesNotContainSpan", "clickEvent", "ariaExpanded", "cc", "btnClick", "lockBodyScroll", "body", "isViewportBelow", "unlockBodyScroll", "closeAllContentTogglesInToolbar", "toolbar", "toggle", "content", "findToolbar", "element", "parent", "contentToggleEdgeHandling", "isViewportBelow", "allowedDistance", "convertRemToPixels", "popoutX", "popoutWidth", "distance", "horizontalScrollButtonNext", "nextButtons", "nextButton", "topElem", "scrollElements", "switch__segments", "scrollElement", "scrollAmount", "disableButton", "activateButton", "switch__segment", "horizontalScrollButtonPrevious", "previousButtons", "previousButton", "button", "setupAutoExpand", "textarea", "event", "parentNode", "setupCharacterCount", "element", "type", "length", "countdown", "countMessageOverflow", "text", "charCount", "remainingChars", "absoluteValue", "charCounter", "textArea", "input", "recommendedLength", "allowedLength", "windowInnerWidth", "ready_default", "tabbedContent", "tabbedObjects", "tab", "setTabs", "setMetaThemeColor", "navElements", "n", "setResponsiveNav", "setResponsiveToggle", "table", "setResponsiveTable", "element", "charCounter", "textarea", "setupAutoExpand", "setCopyToClipboard", "copy_hex_code_default", "toggle", "setContentToggle", "scrollButtonsNext", "scrollButtonsPrevious", "horizontalScrollButtonNext", "horizontalScrollButtonPrevious", "hs", "setHorizontalScroll", "switchSegment", "hsTabbed", "popout", "contentToggleEdgeHandling", "lockBodyScroll", "content", "closeAllContentTogglesInToolbar", "findToolbar", "button", "ariaExpanded", "toolbar", "event", "isElementWithClassNameInEventPath", "unlockBodyScroll", "topBar"]
7
7
  }
package/public/js/demo.js CHANGED
@@ -1,4 +1,4 @@
1
- (()=>{var oe=e=>{document.readyState!=="loading"?e():document.addEventListener("DOMContentLoaded",e)},P=oe;var w=e=>{navigator.clipboard.writeText(e).then(()=>console.log(`${e} written to clipboard`))},y=(e,t)=>{let s=!1;return e.composedPath().forEach(r=>{r.classList&&r.classList.contains(t)&&(s=!0)}),s},T=()=>{let e=document.querySelector("body");if(e){let t=window.getComputedStyle(e).getPropertyValue("--color-background"),s=document.querySelector('meta[name="theme-color"]');if(s)s.content=t;else{let n=document.createElement("meta");n.name="theme-color",n.content=t,document.getElementsByTagName("head")[0].appendChild(n)}}};var k=()=>{let e=window.innerWidth-document.body.clientWidth;document.documentElement.style.setProperty("--vertical-scrollbar-width",`${e}px`)},I=e=>e.offsetHeight!==e.scrollHeight,se=e=>e.offsetWidth!==e.scrollWidth;var N=e=>{e.classList.contains("horizontal-scroll--no-overflow")&&e.classList.remove("horizontal-scroll--no-overflow");let t=e.querySelector(".horizontal-scroll--check-overflow .tabbed-content__section:not([hidden]) .horizontal-scroll__scrollable-content");t===null&&!t&&(t=e.querySelector(".horizontal-scroll--check-overflow .horizontal-scroll__scrollable-content")),t&&(se(t)?t?.setAttribute("tabindex","0"):(e.classList.add("horizontal-scroll--no-overflow"),t?.removeAttribute("tabindex")))},R='a[href]:not([tabindex="-1"]), area[href]:not([tabindex="-1"]), input:not([disabled]):not([tabindex="-1"]), select:not([disabled]):not([tabindex="-1"]), textarea:not([disabled]):not([tabindex="-1"]), button:not([disabled]):not([tabindex="-1"]), iframe:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"]), [contentEditable=true]:not([tabindex="-1"])';var W=(e,t=null)=>{let s="sub-nav--toggled";e.forEach(n=>{n!==t&&(n?.parentElement?.classList.contains(s)&&(n.focus(),n.setAttribute("aria-expanded","false")),n?.parentElement?.classList.remove(s))})},D=(e,t)=>{let s="sub-nav--toggled",n=()=>{t?.parentElement?.classList.toggle(s),t?.parentElement?.classList.contains(s)?t.setAttribute("aria-expanded","true"):t.setAttribute("aria-expanded","false"),W(e,t)};t.addEventListener("click",n);let r=m=>{y(m,"sub-nav")||W(e)};return document.querySelector("body")?.addEventListener("click",r),{buttonClickEvent:n,element:document.querySelector("body"),bodyClickEvent:r}},U=(e,t,s,n,r)=>{if(n&&s){w(n.innerText),t.classList.add("copy-to-clipboard--confirm"),t===s&&t.classList.add("copy-to-clipboard--done");let m=document.createElement("span");m.classList.add("copy-to-clipboard__this__confirm-message"),m.innerText=e,n.appendChild(m),s.removeEventListener("click",r),setTimeout(()=>{t.classList.remove("copy-to-clipboard--confirm"),m.remove(),s.addEventListener("click",r)},1200)}},B=(e,t="Kopieret!")=>{let s=e.querySelector(".copy-to-clipboard__this");if(e.type==="button"){let n=()=>{U(t,e,e,s,n)};e.addEventListener("click",n)}else{let n=e.querySelector(".copy-to-clipboard__execute"),r=()=>{U(t,e,n,s,r)};n?.addEventListener("click",r)}},z=(e,t)=>{let s="nav__search--toggled";t.addEventListener("click",()=>{e.classList.contains(s)?(t.setAttribute("aria-expanded","false"),e.classList.remove(s)):(t.setAttribute("aria-expanded","true"),e.classList.add(s))})};var x=["blue","purple","cyan","turquoise","green","yellow","red","magenta","orange","dark-blue","dark-purple","dark-cyan","dark-turquoise","dark-green","dark-yellow","dark-red","dark-magenta","dark-orange"],j=["default","medium","wide","reset"],E=(e,t)=>{t==null?window.localStorage.removeItem(e):window.localStorage.setItem(e,t)},re=()=>{let e=window.localStorage;return[e.getItem("atom-picker-theme"),e.getItem("atom-picker-style"),e.getItem("atom-picker-position"),e.getItem("atom-picker-scale")]},X=e=>{document.querySelector("body")?.classList.remove(`theme--${e}`)},$=e=>{x.forEach(X),e!=="theme--blue"&&document.querySelector("body")?.classList.add(e),E("atom-picker-theme",e)},V=()=>{let e=document.querySelector("body"),t=document.getElementById("content"),s=document.getElementById("aside"),n="theme--normal",r="theme--dark";e?.classList.remove("body--scrollbar-dark"),t?.classList.contains(n)||e?.classList.toggle(r),t?.classList.remove(n),s&&s.classList.remove(n),E("atom-picker-style",e?.classList.contains(r)?r:null)},F=()=>{let e=document.getElementById("atom-picker"),t="atom-picker--at-top";e?.classList.toggle(t),E("atom-picker-position",e?.classList.contains(t)?t:null)},ie=e=>{document.querySelector("body")?.classList.remove(`view--${e}`)},K=e=>{if(j.forEach(ie),e!=="reset")document.querySelector("body")?.classList.add(e),E("atom-picker-scale",e);else{x.forEach(X),document.querySelector("body")?.classList.add("theme--dark"),document.querySelector("body")?.classList.add("body--scrollbar-dark"),document.getElementById("content")?.classList.add("theme--normal");let t=document.getElementById("aside");t&&t.classList.add("theme--normal"),E("atom-picker-theme",null),E("atom-picker-scale",null),E("atom-picker-position",null),E("atom-picker-style",null),T()}},Y=()=>{let[e,t,s,n]=re();e&&$(e),t&&V(),s&&F(),n&&K(n);let r=document.querySelector(".atom-picker__scale__item__position-toggle");r&&r.addEventListener("click",()=>{F()});let m=document.querySelector(".atom-picker__scale__item__theme-style");m&&m.addEventListener("click",()=>{V(),T()}),j.forEach(u=>{let h=document.querySelector(`.atom-picker__scale__item__${u}`);h&&h.addEventListener("click",()=>{K(u==="reset"?"reset":`view--${u}`)})}),x.forEach(u=>{let h=document.querySelector(`.atom-picker__color__item.theme--${u}`);h&&h.addEventListener("click",()=>{$(`theme--${u}`),T()})})};var ae=()=>{document.querySelectorAll(".color-atom__colors > div").forEach(t=>{t.addEventListener("click",()=>{let s=window.getComputedStyle(t,":before").getPropertyValue("content");w(s.replace(/"/g,""))})})},G=ae;var H=function(){function e(t,s){for(var n=0;n<s.length;n++){var r=s[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(t,s,n){return s&&e(t.prototype,s),n&&e(t,n),t}}();function A(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(function(){if(typeof window>"u")return;var e=Array.prototype.slice,t=Element.prototype.matches||Element.prototype.msMatchesSelector,s=["a[href]","area[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","details","summary","iframe","object","embed","[contenteditable]"].join(","),n=function(){function l(i,o){A(this,l),this._inertManager=o,this._rootElement=i,this._managedNodes=new Set,this._rootElement.hasAttribute("aria-hidden")?this._savedAriaHidden=this._rootElement.getAttribute("aria-hidden"):this._savedAriaHidden=null,this._rootElement.setAttribute("aria-hidden","true"),this._makeSubtreeUnfocusable(this._rootElement),this._observer=new MutationObserver(this._onMutation.bind(this)),this._observer.observe(this._rootElement,{attributes:!0,childList:!0,subtree:!0})}return H(l,[{key:"destructor",value:function(){this._observer.disconnect(),this._rootElement&&(this._savedAriaHidden!==null?this._rootElement.setAttribute("aria-hidden",this._savedAriaHidden):this._rootElement.removeAttribute("aria-hidden")),this._managedNodes.forEach(function(o){this._unmanageNode(o.node)},this),this._observer=null,this._rootElement=null,this._managedNodes=null,this._inertManager=null}},{key:"_makeSubtreeUnfocusable",value:function(o){var c=this;u(o,function(v){return c._visitNode(v)});var d=document.activeElement;if(!document.body.contains(o)){for(var f=o,g=void 0;f;){if(f.nodeType===Node.DOCUMENT_FRAGMENT_NODE){g=f;break}f=f.parentNode}g&&(d=g.activeElement)}o.contains(d)&&(d.blur(),d===document.activeElement&&document.body.focus())}},{key:"_visitNode",value:function(o){if(o.nodeType===Node.ELEMENT_NODE){var c=o;c!==this._rootElement&&c.hasAttribute("inert")&&this._adoptInertRoot(c),(t.call(c,s)||c.hasAttribute("tabindex"))&&this._manageNode(c)}}},{key:"_manageNode",value:function(o){var c=this._inertManager.register(o,this);this._managedNodes.add(c)}},{key:"_unmanageNode",value:function(o){var c=this._inertManager.deregister(o,this);c&&this._managedNodes.delete(c)}},{key:"_unmanageSubtree",value:function(o){var c=this;u(o,function(d){return c._unmanageNode(d)})}},{key:"_adoptInertRoot",value:function(o){var c=this._inertManager.getInertRoot(o);c||(this._inertManager.setInert(o,!0),c=this._inertManager.getInertRoot(o)),c.managedNodes.forEach(function(d){this._manageNode(d.node)},this)}},{key:"_onMutation",value:function(o,c){o.forEach(function(d){var f=d.target;if(d.type==="childList")e.call(d.addedNodes).forEach(function(v){this._makeSubtreeUnfocusable(v)},this),e.call(d.removedNodes).forEach(function(v){this._unmanageSubtree(v)},this);else if(d.type==="attributes"){if(d.attributeName==="tabindex")this._manageNode(f);else if(f!==this._rootElement&&d.attributeName==="inert"&&f.hasAttribute("inert")){this._adoptInertRoot(f);var g=this._inertManager.getInertRoot(f);this._managedNodes.forEach(function(v){f.contains(v.node)&&g._manageNode(v.node)})}}},this)}},{key:"managedNodes",get:function(){return new Set(this._managedNodes)}},{key:"hasSavedAriaHidden",get:function(){return this._savedAriaHidden!==null}},{key:"savedAriaHidden",set:function(o){this._savedAriaHidden=o},get:function(){return this._savedAriaHidden}}]),l}(),r=function(){function l(i,o){A(this,l),this._node=i,this._overrodeFocusMethod=!1,this._inertRoots=new Set([o]),this._savedTabIndex=null,this._destroyed=!1,this.ensureUntabbable()}return H(l,[{key:"destructor",value:function(){if(this._throwIfDestroyed(),this._node&&this._node.nodeType===Node.ELEMENT_NODE){var o=this._node;this._savedTabIndex!==null?o.setAttribute("tabindex",this._savedTabIndex):o.removeAttribute("tabindex"),this._overrodeFocusMethod&&delete o.focus}this._node=null,this._inertRoots=null,this._destroyed=!0}},{key:"_throwIfDestroyed",value:function(){if(this.destroyed)throw new Error("Trying to access destroyed InertNode")}},{key:"ensureUntabbable",value:function(){if(this.node.nodeType===Node.ELEMENT_NODE){var o=this.node;if(t.call(o,s)){if(o.tabIndex===-1&&this.hasSavedTabIndex)return;o.hasAttribute("tabindex")&&(this._savedTabIndex=o.tabIndex),o.setAttribute("tabindex","-1"),o.nodeType===Node.ELEMENT_NODE&&(o.focus=function(){},this._overrodeFocusMethod=!0)}else o.hasAttribute("tabindex")&&(this._savedTabIndex=o.tabIndex,o.removeAttribute("tabindex"))}}},{key:"addInertRoot",value:function(o){this._throwIfDestroyed(),this._inertRoots.add(o)}},{key:"removeInertRoot",value:function(o){this._throwIfDestroyed(),this._inertRoots.delete(o),this._inertRoots.size===0&&this.destructor()}},{key:"destroyed",get:function(){return this._destroyed}},{key:"hasSavedTabIndex",get:function(){return this._savedTabIndex!==null}},{key:"node",get:function(){return this._throwIfDestroyed(),this._node}},{key:"savedTabIndex",set:function(o){this._throwIfDestroyed(),this._savedTabIndex=o},get:function(){return this._throwIfDestroyed(),this._savedTabIndex}}]),l}(),m=function(){function l(i){if(A(this,l),!i)throw new Error("Missing required argument; InertManager needs to wrap a document.");this._document=i,this._managedNodes=new Map,this._inertRoots=new Map,this._observer=new MutationObserver(this._watchForInert.bind(this)),h(i.head||i.body||i.documentElement),i.readyState==="loading"?i.addEventListener("DOMContentLoaded",this._onDocumentLoaded.bind(this)):this._onDocumentLoaded()}return H(l,[{key:"setInert",value:function(o,c){if(c){if(this._inertRoots.has(o))return;var d=new n(o,this);if(o.setAttribute("inert",""),this._inertRoots.set(o,d),!this._document.body.contains(o))for(var f=o.parentNode;f;)f.nodeType===11&&h(f),f=f.parentNode}else{if(!this._inertRoots.has(o))return;var g=this._inertRoots.get(o);g.destructor(),this._inertRoots.delete(o),o.removeAttribute("inert")}}},{key:"getInertRoot",value:function(o){return this._inertRoots.get(o)}},{key:"register",value:function(o,c){var d=this._managedNodes.get(o);return d!==void 0?d.addInertRoot(c):d=new r(o,c),this._managedNodes.set(o,d),d}},{key:"deregister",value:function(o,c){var d=this._managedNodes.get(o);return d?(d.removeInertRoot(c),d.destroyed&&this._managedNodes.delete(o),d):null}},{key:"_onDocumentLoaded",value:function(){var o=e.call(this._document.querySelectorAll("[inert]"));o.forEach(function(c){this.setInert(c,!0)},this),this._observer.observe(this._document.body||this._document.documentElement,{attributes:!0,subtree:!0,childList:!0})}},{key:"_watchForInert",value:function(o,c){var d=this;o.forEach(function(f){switch(f.type){case"childList":e.call(f.addedNodes).forEach(function(b){if(b.nodeType===Node.ELEMENT_NODE){var p=e.call(b.querySelectorAll("[inert]"));t.call(b,"[inert]")&&p.unshift(b),p.forEach(function(_){this.setInert(_,!0)},d)}},d);break;case"attributes":if(f.attributeName!=="inert")return;var g=f.target,v=g.hasAttribute("inert");d.setInert(g,v);break}},this)}}]),l}();function u(l,i,o){if(l.nodeType==Node.ELEMENT_NODE){var c=l;i&&i(c);var d=c.shadowRoot;if(d){u(d,i,d);return}if(c.localName=="content"){for(var f=c,g=f.getDistributedNodes?f.getDistributedNodes():[],v=0;v<g.length;v++)u(g[v],i,o);return}if(c.localName=="slot"){for(var b=c,p=b.assignedNodes?b.assignedNodes({flatten:!0}):[],_=0;_<p.length;_++)u(p[_],i,o);return}}for(var L=l.firstChild;L!=null;)u(L,i,o),L=L.nextSibling}function h(l){if(!l.querySelector("style#inert-style, link#inert-style")){var i=document.createElement("style");i.setAttribute("id","inert-style"),i.textContent=`
1
+ (()=>{var ne=e=>{document.readyState!=="loading"?e():document.addEventListener("DOMContentLoaded",e)},P=ne;var w=e=>{navigator.clipboard.writeText(e).then(()=>console.log(`${e} written to clipboard`))},E=(e,t)=>{let s=!1;return e.composedPath().forEach(r=>{r.classList&&r.classList.contains(t)&&(s=!0)}),s},T=()=>{let e=document.querySelector("body");if(e){let t=window.getComputedStyle(e).getPropertyValue("--color-background"),s=document.querySelector('meta[name="theme-color"]');if(s)s.content=t;else{let o=document.createElement("meta");o.name="theme-color",o.content=t,document.getElementsByTagName("head")[0].appendChild(o)}}};var M=()=>{let e=window.innerWidth-document.body.clientWidth;document.documentElement.style.setProperty("--vertical-scrollbar-width",`${e}px`)},I=e=>e.offsetHeight!==e.scrollHeight,se=e=>e.offsetWidth!==e.scrollWidth;var x=e=>{e.classList.contains("horizontal-scroll--no-overflow")&&e.classList.remove("horizontal-scroll--no-overflow");let t=e.querySelector(".horizontal-scroll--check-overflow .tabbed-content__section:not([hidden]) .horizontal-scroll__scrollable-content");t===null&&!t&&(t=e.querySelector(".horizontal-scroll--check-overflow .horizontal-scroll__scrollable-content")),t&&(se(t)?t?.setAttribute("tabindex","0"):(e.classList.add("horizontal-scroll--no-overflow"),t?.removeAttribute("tabindex")))},R='a[href]:not([tabindex="-1"]), area[href]:not([tabindex="-1"]), input:not([disabled]):not([tabindex="-1"]), select:not([disabled]):not([tabindex="-1"]), textarea:not([disabled]):not([tabindex="-1"]), button:not([disabled]):not([tabindex="-1"]), iframe:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"]), [contentEditable=true]:not([tabindex="-1"])';var W=(e,t=null)=>{let s="sub-nav--toggled";e.forEach(o=>{o!==t&&(o?.parentElement?.classList.contains(s)&&(o.focus(),o.setAttribute("aria-expanded","false")),o?.parentElement?.classList.remove(s))})},D=(e,t)=>{let s="sub-nav--toggled",o=()=>{t?.parentElement?.classList.toggle(s),t?.parentElement?.classList.contains(s)?t.setAttribute("aria-expanded","true"):t.setAttribute("aria-expanded","false"),W(e,t)};t.addEventListener("click",o);let r=m=>{E(m,"sub-nav")||W(e)};return document.querySelector("body")?.addEventListener("click",r),{buttonClickEvent:o,element:document.querySelector("body"),bodyClickEvent:r}},U=(e,t,s,o,r)=>{if(o&&s){w(o.innerText),t.classList.add("copy-to-clipboard--confirm"),t===s&&t.classList.add("copy-to-clipboard--done");let m=document.createElement("span");m.classList.add("copy-to-clipboard__this__confirm-message"),m.innerText=e,o.appendChild(m),s.removeEventListener("click",r),setTimeout(()=>{t.classList.remove("copy-to-clipboard--confirm"),m.remove(),s.addEventListener("click",r)},1200)}},B=(e,t="Kopieret!")=>{let s=e.querySelector(".copy-to-clipboard__this");if(e.type==="button"){let o=()=>{U(t,e,e,s,o)};e.addEventListener("click",o)}else{let o=e.querySelector(".copy-to-clipboard__execute"),r=()=>{U(t,e,o,s,r)};o?.addEventListener("click",r)}},z=(e,t)=>{let s="nav__search--toggled";t.addEventListener("click",()=>{e.classList.contains(s)?(t.setAttribute("aria-expanded","false"),e.classList.remove(s)):(t.setAttribute("aria-expanded","true"),e.classList.add(s))})};var N=["blue","purple","cyan","turquoise","green","yellow","red","magenta","orange","dark-blue","dark-purple","dark-cyan","dark-turquoise","dark-green","dark-yellow","dark-red","dark-magenta","dark-orange"],K=["default","medium","wide","reset"],b=(e,t)=>{t==null?window.localStorage.removeItem(e):window.localStorage.setItem(e,t)},re=()=>{let e=window.localStorage;return[e.getItem("atom-picker-theme"),e.getItem("atom-picker-style"),e.getItem("atom-picker-position"),e.getItem("atom-picker-scale")]},X=e=>{document.querySelector("body")?.classList.remove(`theme--${e}`)},$=e=>{N.forEach(X),e!=="theme--blue"&&document.querySelector("body")?.classList.add(e),b("atom-picker-theme",e)},V=()=>{let e=document.querySelector("body"),t=document.getElementById("content"),s=document.getElementById("aside"),o="theme--normal",r="theme--dark";e?.classList.remove("body--scrollbar-dark"),t?.classList.contains(o)||e?.classList.toggle(r),t?.classList.remove(o),s&&s.classList.remove(o),b("atom-picker-style",e?.classList.contains(r)?r:null)},F=()=>{let e=document.getElementById("atom-picker"),t="atom-picker--at-top";e?.classList.toggle(t),b("atom-picker-position",e?.classList.contains(t)?t:null)},ie=e=>{document.querySelector("body")?.classList.remove(`view--${e}`)},j=e=>{if(K.forEach(ie),e!=="reset")document.querySelector("body")?.classList.add(e),b("atom-picker-scale",e);else{N.forEach(X),document.querySelector("body")?.classList.add("theme--dark"),document.querySelector("body")?.classList.add("body--scrollbar-dark"),document.getElementById("content")?.classList.add("theme--normal");let t=document.getElementById("aside");t&&t.classList.add("theme--normal"),b("atom-picker-theme",null),b("atom-picker-scale",null),b("atom-picker-position",null),b("atom-picker-style",null),T()}},Y=()=>{let[e,t,s,o]=re();e&&$(e),t&&V(),s&&F(),o&&j(o);let r=document.querySelector(".atom-picker__scale__item__position-toggle");r&&r.addEventListener("click",()=>{F()});let m=document.querySelector(".atom-picker__scale__item__theme-style");m&&m.addEventListener("click",()=>{V(),T()}),K.forEach(u=>{let h=document.querySelector(`.atom-picker__scale__item__${u}`);h&&h.addEventListener("click",()=>{j(u==="reset"?"reset":`view--${u}`)})}),N.forEach(u=>{let h=document.querySelector(`.atom-picker__color__item.theme--${u}`);h&&h.addEventListener("click",()=>{$(`theme--${u}`),T()})})};var ae=()=>{let e=document.querySelectorAll(".copy-to-clipboard"),t=document.querySelectorAll(".copy-to-clipboard__color");e.forEach(s=>{s.addEventListener("click",()=>{let o=s.parentElement?.querySelector(".copy-to-clipboard__color");if(o){let r=getComputedStyle(o).getPropertyValue("background-color"),m=le(r);console.log(m),w(m.replace(/"/g,""))}})})};function le(e){var t=e.match(/\d+/g),s="#"+t.map(function(o){var r=parseInt(o).toString(16);return r.length===1?"0"+r:r}).join("");return s}var G=ae;var H=function(){function e(t,s){for(var o=0;o<s.length;o++){var r=s[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(t,s,o){return s&&e(t.prototype,s),o&&e(t,o),t}}();function A(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(function(){if(typeof window>"u")return;var e=Array.prototype.slice,t=Element.prototype.matches||Element.prototype.msMatchesSelector,s=["a[href]","area[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","details","summary","iframe","object","embed","[contenteditable]"].join(","),o=function(){function l(i,n){A(this,l),this._inertManager=n,this._rootElement=i,this._managedNodes=new Set,this._rootElement.hasAttribute("aria-hidden")?this._savedAriaHidden=this._rootElement.getAttribute("aria-hidden"):this._savedAriaHidden=null,this._rootElement.setAttribute("aria-hidden","true"),this._makeSubtreeUnfocusable(this._rootElement),this._observer=new MutationObserver(this._onMutation.bind(this)),this._observer.observe(this._rootElement,{attributes:!0,childList:!0,subtree:!0})}return H(l,[{key:"destructor",value:function(){this._observer.disconnect(),this._rootElement&&(this._savedAriaHidden!==null?this._rootElement.setAttribute("aria-hidden",this._savedAriaHidden):this._rootElement.removeAttribute("aria-hidden")),this._managedNodes.forEach(function(n){this._unmanageNode(n.node)},this),this._observer=null,this._rootElement=null,this._managedNodes=null,this._inertManager=null}},{key:"_makeSubtreeUnfocusable",value:function(n){var c=this;u(n,function(v){return c._visitNode(v)});var d=document.activeElement;if(!document.body.contains(n)){for(var f=n,g=void 0;f;){if(f.nodeType===Node.DOCUMENT_FRAGMENT_NODE){g=f;break}f=f.parentNode}g&&(d=g.activeElement)}n.contains(d)&&(d.blur(),d===document.activeElement&&document.body.focus())}},{key:"_visitNode",value:function(n){if(n.nodeType===Node.ELEMENT_NODE){var c=n;c!==this._rootElement&&c.hasAttribute("inert")&&this._adoptInertRoot(c),(t.call(c,s)||c.hasAttribute("tabindex"))&&this._manageNode(c)}}},{key:"_manageNode",value:function(n){var c=this._inertManager.register(n,this);this._managedNodes.add(c)}},{key:"_unmanageNode",value:function(n){var c=this._inertManager.deregister(n,this);c&&this._managedNodes.delete(c)}},{key:"_unmanageSubtree",value:function(n){var c=this;u(n,function(d){return c._unmanageNode(d)})}},{key:"_adoptInertRoot",value:function(n){var c=this._inertManager.getInertRoot(n);c||(this._inertManager.setInert(n,!0),c=this._inertManager.getInertRoot(n)),c.managedNodes.forEach(function(d){this._manageNode(d.node)},this)}},{key:"_onMutation",value:function(n,c){n.forEach(function(d){var f=d.target;if(d.type==="childList")e.call(d.addedNodes).forEach(function(v){this._makeSubtreeUnfocusable(v)},this),e.call(d.removedNodes).forEach(function(v){this._unmanageSubtree(v)},this);else if(d.type==="attributes"){if(d.attributeName==="tabindex")this._manageNode(f);else if(f!==this._rootElement&&d.attributeName==="inert"&&f.hasAttribute("inert")){this._adoptInertRoot(f);var g=this._inertManager.getInertRoot(f);this._managedNodes.forEach(function(v){f.contains(v.node)&&g._manageNode(v.node)})}}},this)}},{key:"managedNodes",get:function(){return new Set(this._managedNodes)}},{key:"hasSavedAriaHidden",get:function(){return this._savedAriaHidden!==null}},{key:"savedAriaHidden",set:function(n){this._savedAriaHidden=n},get:function(){return this._savedAriaHidden}}]),l}(),r=function(){function l(i,n){A(this,l),this._node=i,this._overrodeFocusMethod=!1,this._inertRoots=new Set([n]),this._savedTabIndex=null,this._destroyed=!1,this.ensureUntabbable()}return H(l,[{key:"destructor",value:function(){if(this._throwIfDestroyed(),this._node&&this._node.nodeType===Node.ELEMENT_NODE){var n=this._node;this._savedTabIndex!==null?n.setAttribute("tabindex",this._savedTabIndex):n.removeAttribute("tabindex"),this._overrodeFocusMethod&&delete n.focus}this._node=null,this._inertRoots=null,this._destroyed=!0}},{key:"_throwIfDestroyed",value:function(){if(this.destroyed)throw new Error("Trying to access destroyed InertNode")}},{key:"ensureUntabbable",value:function(){if(this.node.nodeType===Node.ELEMENT_NODE){var n=this.node;if(t.call(n,s)){if(n.tabIndex===-1&&this.hasSavedTabIndex)return;n.hasAttribute("tabindex")&&(this._savedTabIndex=n.tabIndex),n.setAttribute("tabindex","-1"),n.nodeType===Node.ELEMENT_NODE&&(n.focus=function(){},this._overrodeFocusMethod=!0)}else n.hasAttribute("tabindex")&&(this._savedTabIndex=n.tabIndex,n.removeAttribute("tabindex"))}}},{key:"addInertRoot",value:function(n){this._throwIfDestroyed(),this._inertRoots.add(n)}},{key:"removeInertRoot",value:function(n){this._throwIfDestroyed(),this._inertRoots.delete(n),this._inertRoots.size===0&&this.destructor()}},{key:"destroyed",get:function(){return this._destroyed}},{key:"hasSavedTabIndex",get:function(){return this._savedTabIndex!==null}},{key:"node",get:function(){return this._throwIfDestroyed(),this._node}},{key:"savedTabIndex",set:function(n){this._throwIfDestroyed(),this._savedTabIndex=n},get:function(){return this._throwIfDestroyed(),this._savedTabIndex}}]),l}(),m=function(){function l(i){if(A(this,l),!i)throw new Error("Missing required argument; InertManager needs to wrap a document.");this._document=i,this._managedNodes=new Map,this._inertRoots=new Map,this._observer=new MutationObserver(this._watchForInert.bind(this)),h(i.head||i.body||i.documentElement),i.readyState==="loading"?i.addEventListener("DOMContentLoaded",this._onDocumentLoaded.bind(this)):this._onDocumentLoaded()}return H(l,[{key:"setInert",value:function(n,c){if(c){if(this._inertRoots.has(n))return;var d=new o(n,this);if(n.setAttribute("inert",""),this._inertRoots.set(n,d),!this._document.body.contains(n))for(var f=n.parentNode;f;)f.nodeType===11&&h(f),f=f.parentNode}else{if(!this._inertRoots.has(n))return;var g=this._inertRoots.get(n);g.destructor(),this._inertRoots.delete(n),n.removeAttribute("inert")}}},{key:"getInertRoot",value:function(n){return this._inertRoots.get(n)}},{key:"register",value:function(n,c){var d=this._managedNodes.get(n);return d!==void 0?d.addInertRoot(c):d=new r(n,c),this._managedNodes.set(n,d),d}},{key:"deregister",value:function(n,c){var d=this._managedNodes.get(n);return d?(d.removeInertRoot(c),d.destroyed&&this._managedNodes.delete(n),d):null}},{key:"_onDocumentLoaded",value:function(){var n=e.call(this._document.querySelectorAll("[inert]"));n.forEach(function(c){this.setInert(c,!0)},this),this._observer.observe(this._document.body||this._document.documentElement,{attributes:!0,subtree:!0,childList:!0})}},{key:"_watchForInert",value:function(n,c){var d=this;n.forEach(function(f){switch(f.type){case"childList":e.call(f.addedNodes).forEach(function(y){if(y.nodeType===Node.ELEMENT_NODE){var p=e.call(y.querySelectorAll("[inert]"));t.call(y,"[inert]")&&p.unshift(y),p.forEach(function(_){this.setInert(_,!0)},d)}},d);break;case"attributes":if(f.attributeName!=="inert")return;var g=f.target,v=g.hasAttribute("inert");d.setInert(g,v);break}},this)}}]),l}();function u(l,i,n){if(l.nodeType==Node.ELEMENT_NODE){var c=l;i&&i(c);var d=c.shadowRoot;if(d){u(d,i,d);return}if(c.localName=="content"){for(var f=c,g=f.getDistributedNodes?f.getDistributedNodes():[],v=0;v<g.length;v++)u(g[v],i,n);return}if(c.localName=="slot"){for(var y=c,p=y.assignedNodes?y.assignedNodes({flatten:!0}):[],_=0;_<p.length;_++)u(p[_],i,n);return}}for(var L=l.firstChild;L!=null;)u(L,i,n),L=L.nextSibling}function h(l){if(!l.querySelector("style#inert-style, link#inert-style")){var i=document.createElement("style");i.setAttribute("id","inert-style"),i.textContent=`
2
2
  [inert] {
3
3
  pointer-events: none;
4
4
  cursor: default;
@@ -10,5 +10,5 @@
10
10
  -ms-user-select: none;
11
11
  user-select: none;
12
12
  }
13
- `,l.appendChild(i)}}if(!HTMLElement.prototype.hasOwnProperty("inert")){var a=new m(document);Object.defineProperty(HTMLElement.prototype,"inert",{enumerable:!0,get:function(){return this.hasAttribute("inert")},set:function(i){a.setInert(this,i)}})}})();var S=(e,t,s=()=>{})=>{let n=document.getElementById(e);if(n){n.classList.remove("modal-view--visible"),n.inert=!0;let r=document.querySelector(".page");r&&(r.classList.remove("page--blur"),r.inert=!1),document.querySelector("body")?.classList.remove("body--no-scroll"),t.focus(),t.setAttribute("aria-expanded","false"),s()}},Q=(e,t,s=()=>{},n=!0)=>{let r=document.getElementById(e),m=[];if(r){r.classList.add("modal-view--visible"),r.inert=!1;let u=document.querySelector(".page");u&&(u.classList.add("page--blur"),u.inert=!0),document.querySelector("body")?.classList.add("body--no-scroll"),t.setAttribute("aria-expanded","true"),r.focus();let h=l=>{l.target===r&&S(e,t,s)},a=l=>{l.key==="Escape"&&S(e,t,s)};n&&(r.addEventListener("click",h),window.addEventListener("keyup",a),m.push({element:r,clickEvent:h}),m.push({element:window,keyUpEvent:a}))}return m};var q=e=>{e.querySelectorAll(".content-toggle__toggle").forEach(s=>{let n=s.parentElement?.querySelector(".content-toggle__content");s.setAttribute("aria-expanded","false"),n?.setAttribute("hidden","hidden")})},C=e=>{e.classList.contains("toolbar--no-collapse")||e.classList.remove("toolbar--toggled"),e.classList.remove("toolbar--fully-overflown"),e.classList.remove("toolbar--has-popout");let s=e.querySelector(".toolbar__items")?.children,n="toolbar__item--is-overflown",r="toolbar--has-overflow",m=!1,u=0,h=(a,l)=>{a&&(a.offsetTop>25?(a.classList.add(n),e.classList.add(r),m=!0,u+=1):a.classList.remove(n),m?l-1>=0&&h(s[l-1],l-1):e.classList.remove(r))};h(s[s.length-1],s.length-1),u>0&&u===s.length&&e.classList.add("toolbar--fully-overflown")},le=e=>{let t=[];return e.querySelectorAll(".toolbar__toggle").forEach(n=>{let r=()=>{n?.parentElement?.classList.toggle("toolbar--toggled");let m=n.getAttribute("aria-expanded");if(m!=="true"){let u="a.toolbar__item--is-overflown, button.toolbar__item--is-overflown, input.toolbar__item--is-overflown, select.toolbar__item--is-overflown, .toolbar__item--is-overflown a, .toolbar__item--is-overflown button, .toolbar__item--is-overflown input, .toolbar__item--is-overflown select",h=n?.parentElement?.querySelector(u);h&&setTimeout(()=>{h.focus()},0)}n.setAttribute("aria-expanded",m==="false"?"true":"false")};t.push({element:n,clickEvent:r}),n.addEventListener("click",r)}),t},J=(e,t,s=!0)=>{let n=[];if(C(e),t(e),n=n.concat(le(e)),!s){let r=h=>{!h.target.classList.contains("content-toggle__toggle")&&!y(h,"content-toggle__content")&&t(e)},m=h=>{h.key==="Escape"&&h.target&&h.target.getAttribute("type")!=="search"&&t(e)},u=document.querySelector("body");n.push({element:u,clickEvent:r}),n.push({element:window,keyUpEvent:m}),u?.addEventListener("click",r),window.addEventListener("keyup",m)}return n};var Z=e=>{e.forEach(t=>{t.querySelectorAll(".selection-list").forEach(n=>{n.classList.remove("selection-list--toggled")})})},ee=()=>{let e=[],t=document.querySelectorAll(".selection-list-overlay-container");t.forEach(n=>{let r=n.querySelector("button"),m=()=>{Z(t);let u=r.nextSibling;u&&u.classList.add("selection-list--toggled")};e.push({element:r,clickEvent:m}),r.addEventListener("click",m)});let s=n=>{!n.target.classList.contains("selection-list--overlay")&&!y(n,"selection-list-overlay-container")&&Z(t)};return document.querySelector("body")?.addEventListener("click",s),{pairs:e,element:document.querySelector("body"),clickEvent:s}};var O=e=>{let t=e.querySelector("select"),s=e.querySelector(`label[for="${t?.getAttribute("id")}"]`);if(s){let n=getComputedStyle(s).width;t?.style.setProperty("--label-width",n)}};var te=(e,t)=>{I(t)?e.removeAttribute("hidden"):e.parentElement?.classList.add("truncator--no-truncation")},ne=e=>{let t=e.querySelector(".truncator__expand"),s=e.querySelector(".truncator__content");if(t&&s){t.addEventListener("click",()=>{t.removeAttribute("hidden"),e.classList.add("truncator--no-truncation")}),te(t,s),window.addEventListener("resize",()=>{t.setAttribute("hidden","hidden"),e.classList.remove("truncator--no-truncation"),te(t,s)});let n=s.querySelectorAll(R);n&&n.forEach(r=>{r.addEventListener("focus",()=>{I(r)&&(t.removeAttribute("hidden"),e.classList.add("truncator--no-truncation"))})})}};var M=0;P(()=>{window.top===window.self&&document.querySelector(".atom-picker")&&Y();let e=document.querySelectorAll(".form__field--inline-label--select");e.forEach(a=>{O(a)}),document.querySelectorAll(".nav").forEach(a=>{let l=a.querySelector(".nav__search"),i=a.querySelector(".nav__search-toggle");l&&i&&z(l,i)}),document.querySelectorAll(".copy-to-clipboard").forEach(a=>B(a,document.querySelector("html")?.getAttribute("lang")==="en"?"Copied!":"Kopieret!"));let n=document.querySelectorAll(".horizontal-scroll");n.forEach(a=>{N(a)}),G(),ee();let r=document.querySelectorAll(".sub-nav > button.nav__item");r.forEach(a=>{D(r,a)}),document.querySelectorAll("[data-modal]").forEach(a=>{let l=a.getAttribute("data-modal");document.getElementById(l)?.querySelector(".modal-view__close")?.addEventListener("click",()=>{S(l,a)}),a.addEventListener("click",()=>{Q(l,a)})});let u=document.querySelectorAll(".toolbar");u.forEach(a=>J(a,l=>{q(l)},!1)),document.querySelectorAll(".truncator").forEach(a=>ne(a)),document.documentElement.style.setProperty("--window-inner-height",`${window.innerHeight}px`),k(),window.addEventListener("load",()=>{M=window.innerWidth}),window.addEventListener("resize",()=>{M>0&&window.innerWidth!==M&&(M=window.innerWidth,e.forEach(a=>{O(a)}),u.forEach(a=>{q(a),C(a)}),k(),n.forEach(a=>{a.classList.remove("horizontal-scroll--no-overflow"),N(a)})),document.documentElement.style.setProperty("--window-inner-height",`${window.innerHeight}px`)})});})();
13
+ `,l.appendChild(i)}}if(!HTMLElement.prototype.hasOwnProperty("inert")){var a=new m(document);Object.defineProperty(HTMLElement.prototype,"inert",{enumerable:!0,get:function(){return this.hasAttribute("inert")},set:function(i){a.setInert(this,i)}})}})();var S=(e,t,s=()=>{})=>{let o=document.getElementById(e);if(o){o.classList.remove("modal-view--visible"),o.inert=!0;let r=document.querySelector(".page");r&&(r.classList.remove("page--blur"),r.inert=!1),document.querySelector("body")?.classList.remove("body--no-scroll"),t.focus(),t.setAttribute("aria-expanded","false"),s()}},Q=(e,t,s=()=>{},o=!0)=>{let r=document.getElementById(e),m=[];if(r){r.classList.add("modal-view--visible"),r.inert=!1;let u=document.querySelector(".page");u&&(u.classList.add("page--blur"),u.inert=!0),document.querySelector("body")?.classList.add("body--no-scroll"),t.setAttribute("aria-expanded","true"),r.focus();let h=l=>{l.target===r&&S(e,t,s)},a=l=>{l.key==="Escape"&&S(e,t,s)};o&&(r.addEventListener("click",h),window.addEventListener("keyup",a),m.push({element:r,clickEvent:h}),m.push({element:window,keyUpEvent:a}))}return m};var q=e=>{e.querySelectorAll(".content-toggle__toggle").forEach(s=>{let o=s.parentElement?.querySelector(".content-toggle__content");s.setAttribute("aria-expanded","false"),o?.setAttribute("hidden","hidden")})},C=e=>{e.classList.contains("toolbar--no-collapse")||e.classList.remove("toolbar--toggled"),e.classList.remove("toolbar--fully-overflown"),e.classList.remove("toolbar--has-popout");let s=e.querySelector(".toolbar__items")?.children,o="toolbar__item--is-overflown",r="toolbar--has-overflow",m=!1,u=0,h=(a,l)=>{a&&(a.offsetTop>25?(a.classList.add(o),e.classList.add(r),m=!0,u+=1):a.classList.remove(o),m?l-1>=0&&h(s[l-1],l-1):e.classList.remove(r))};h(s[s.length-1],s.length-1),u>0&&u===s.length&&e.classList.add("toolbar--fully-overflown")},ce=e=>{let t=[];return e.querySelectorAll(".toolbar__toggle").forEach(o=>{let r=()=>{o?.parentElement?.classList.toggle("toolbar--toggled");let m=o.getAttribute("aria-expanded");if(m!=="true"){let u="a.toolbar__item--is-overflown, button.toolbar__item--is-overflown, input.toolbar__item--is-overflown, select.toolbar__item--is-overflown, .toolbar__item--is-overflown a, .toolbar__item--is-overflown button, .toolbar__item--is-overflown input, .toolbar__item--is-overflown select",h=o?.parentElement?.querySelector(u);h&&setTimeout(()=>{h.focus()},0)}o.setAttribute("aria-expanded",m==="false"?"true":"false")};t.push({element:o,clickEvent:r}),o.addEventListener("click",r)}),t},J=(e,t,s=!0)=>{let o=[];if(C(e),t(e),o=o.concat(ce(e)),!s){let r=h=>{!h.target.classList.contains("content-toggle__toggle")&&!E(h,"content-toggle__content")&&t(e)},m=h=>{h.key==="Escape"&&h.target&&h.target.getAttribute("type")!=="search"&&t(e)},u=document.querySelector("body");o.push({element:u,clickEvent:r}),o.push({element:window,keyUpEvent:m}),u?.addEventListener("click",r),window.addEventListener("keyup",m)}return o};var Z=e=>{e.forEach(t=>{t.querySelectorAll(".selection-list").forEach(o=>{o.classList.remove("selection-list--toggled")})})},ee=()=>{let e=[],t=document.querySelectorAll(".selection-list-overlay-container");t.forEach(o=>{let r=o.querySelector("button"),m=()=>{Z(t);let u=r.nextSibling;u&&u.classList.add("selection-list--toggled")};e.push({element:r,clickEvent:m}),r.addEventListener("click",m)});let s=o=>{!o.target.classList.contains("selection-list--overlay")&&!E(o,"selection-list-overlay-container")&&Z(t)};return document.querySelector("body")?.addEventListener("click",s),{pairs:e,element:document.querySelector("body"),clickEvent:s}};var O=e=>{let t=e.querySelector("select"),s=e.querySelector(`label[for="${t?.getAttribute("id")}"]`);if(s){let o=getComputedStyle(s).width;t?.style.setProperty("--label-width",o)}};var te=(e,t)=>{I(t)?e.removeAttribute("hidden"):e.parentElement?.classList.add("truncator--no-truncation")},oe=e=>{let t=e.querySelector(".truncator__expand"),s=e.querySelector(".truncator__content");if(t&&s){t.addEventListener("click",()=>{t.removeAttribute("hidden"),e.classList.add("truncator--no-truncation")}),te(t,s),window.addEventListener("resize",()=>{t.setAttribute("hidden","hidden"),e.classList.remove("truncator--no-truncation"),te(t,s)});let o=s.querySelectorAll(R);o&&o.forEach(r=>{r.addEventListener("focus",()=>{I(r)&&(t.removeAttribute("hidden"),e.classList.add("truncator--no-truncation"))})})}};var k=0;P(()=>{window.top===window.self&&document.querySelector(".atom-picker")&&Y();let e=document.querySelectorAll(".form__field--inline-label--select");e.forEach(a=>{O(a)}),document.querySelectorAll(".nav").forEach(a=>{let l=a.querySelector(".nav__search"),i=a.querySelector(".nav__search-toggle");l&&i&&z(l,i)}),document.querySelectorAll(".copy-to-clipboard").forEach(a=>B(a,document.querySelector("html")?.getAttribute("lang")==="en"?"Hexcode copied!":"Hexkode kopieret!")),G(),ee();let o=document.querySelectorAll(".horizontal-scroll");o.forEach(a=>{x(a)});let r=document.querySelectorAll(".sub-nav > button.nav__item");r.forEach(a=>{D(r,a)}),document.querySelectorAll("[data-modal]").forEach(a=>{let l=a.getAttribute("data-modal");document.getElementById(l)?.querySelector(".modal-view__close")?.addEventListener("click",()=>{S(l,a)}),a.addEventListener("click",()=>{Q(l,a)})});let u=document.querySelectorAll(".toolbar");u.forEach(a=>J(a,l=>{q(l)},!1)),document.querySelectorAll(".truncator").forEach(a=>oe(a)),document.documentElement.style.setProperty("--window-inner-height",`${window.innerHeight}px`),M(),window.addEventListener("load",()=>{k=window.innerWidth}),window.addEventListener("resize",()=>{k>0&&window.innerWidth!==k&&(k=window.innerWidth,e.forEach(a=>{O(a)}),u.forEach(a=>{q(a),C(a)}),M(),o.forEach(a=>{a.classList.remove("horizontal-scroll--no-overflow"),x(a)})),document.documentElement.style.setProperty("--window-inner-height",`${window.innerHeight}px`)})});})();
14
14
  //# sourceMappingURL=demo.js.map