primer_view_components 0.0.94 → 0.0.96
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +37 -0
- data/app/assets/javascripts/primer_view_components.js +1 -1
- data/app/assets/javascripts/primer_view_components.js.map +1 -1
- data/app/assets/styles/primer_view_components.css +1 -1
- data/app/assets/styles/primer_view_components.css.map +1 -1
- data/app/components/primer/alpha/dialog.rb +3 -3
- data/app/components/primer/alpha/toggle_switch.js +3 -0
- data/app/components/primer/alpha/toggle_switch.ts +3 -0
- data/app/components/primer/alpha/tool_tip.js +17 -2
- data/app/components/primer/alpha/tool_tip.ts +14 -2
- data/app/components/primer/beta/button.pcss +27 -15
- data/app/components/primer/beta/button.rb +11 -16
- data/app/components/primer/beta/icon_button.html.erb +1 -1
- data/app/components/primer/beta/icon_button.rb +5 -3
- data/app/components/primer/button_component.rb +1 -1
- data/app/components/primer/experimental/action_bar.d.ts +14 -0
- data/app/components/primer/experimental/action_bar.js +141 -0
- data/app/components/primer/icon_button.rb +1 -1
- data/app/components/primer/octicon_component.rb +0 -4
- data/app/components/primer/octicon_symbols_component.rb +0 -4
- data/app/lib/primer/fetch_or_fallback_helper.rb +1 -1
- data/lib/primer/deprecations.rb +2 -2
- data/lib/primer/forms/builder.rb +2 -2
- data/lib/primer/forms/check_box.html.erb +5 -1
- data/lib/primer/forms/check_box.rb +11 -0
- data/lib/primer/forms/dsl/check_box_group_input.rb +17 -4
- data/lib/primer/forms/dsl/check_box_input.rb +21 -2
- data/lib/primer/view_components/engine.rb +2 -1
- data/lib/primer/view_components/version.rb +1 -1
- data/lib/tasks/coverage.rake +1 -1
- data/lib/tasks/docs.rake +19 -15
- data/lib/tasks/static.rake +1 -1
- data/lib/tasks/test.rake +54 -0
- data/lib/tasks/utilities.rake +1 -0
- data/static/arguments.json +2042 -0
- data/static/audited_at.json +0 -2
- data/static/constants.json +1 -8
- data/static/statuses.json +2 -4
- metadata +6 -6
- data/app/components/primer/base_button.rb +0 -7
- data/app/components/primer/button_group.rb +0 -7
- data/lib/tasks/deprecated.rake +0 -27
- data/static/arguments.yml +0 -1358
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88f71f510301de5e00569b744e161d53eeba31d8a7d691256f485cbbeccb6061
|
4
|
+
data.tar.gz: 4006f95acdabc3de1bfd31e8f2f68c16609b1547ebd8a669a60299c0738353ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3ed8eb94baee27e7286334753a32e9e106f27bf50133c28bc1a1cbe04bbe9b39ef3daf765d4b9d6592cc2eacf07a5b3eb460125313adb662233b52ed4fb1010
|
7
|
+
data.tar.gz: ad5747bf8f1a7d15bc1b3679da41136156c445d064d9c1a60d65b5a16284c7323e7ad48b94699d82b1ae32976fb7926bf38706a8e23121810992e257c6e3cf4f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,42 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 0.0.96
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- [#1400](https://github.com/primer/view_components/pull/1400) [`ae48b9fe`](https://github.com/primer/view_components/commit/ae48b9fe9d7ef3a908ea9f84f5fd25cf9bf40e50) Thanks [@langermank](https://github.com/langermank)! - - Add Lookbook previews for Beta Button and IconButton
|
8
|
+
- Tiny CSS bug fix
|
9
|
+
|
10
|
+
* [#1406](https://github.com/primer/view_components/pull/1406) [`1fec4bf5`](https://github.com/primer/view_components/commit/1fec4bf5097d3f002208840694d05dd4401c7a83) Thanks [@jonrohan](https://github.com/jonrohan)! - Raise on usage of deprecated arguments in Primer::Beta::Button
|
11
|
+
|
12
|
+
- [#1402](https://github.com/primer/view_components/pull/1402) [`7e50f6d9`](https://github.com/primer/view_components/commit/7e50f6d93338da50e2aa670c7c9f1a23fb7dfecc) Thanks [@joelhawksley](https://github.com/joelhawksley)! - Move Octicon cache preload to initializer.
|
13
|
+
|
14
|
+
## 0.0.95
|
15
|
+
|
16
|
+
### Patch Changes
|
17
|
+
|
18
|
+
- [#1372](https://github.com/primer/view_components/pull/1372) [`98155b10`](https://github.com/primer/view_components/commit/98155b10599d3b1753c32b7c247acadff926eaa4) Thanks [@jonrohan](https://github.com/jonrohan)! - Delete the deprecated Primer::ButtonGroup component
|
19
|
+
|
20
|
+
* [#1386](https://github.com/primer/view_components/pull/1386) [`142b8193`](https://github.com/primer/view_components/commit/142b8193abd973a5bf6fd413d0a1e11fa0b3d3ae) Thanks [@khiga8](https://github.com/khiga8)! - Make sure duplicate ID associations aren't created for the Button
|
21
|
+
|
22
|
+
- [#1371](https://github.com/primer/view_components/pull/1371) [`d0ddcce0`](https://github.com/primer/view_components/commit/d0ddcce0fbb4b46b1746e5688b23c54e1ba74f12) Thanks [@jonrohan](https://github.com/jonrohan)! - Delete the deprecated Primer::BaseButton component
|
23
|
+
|
24
|
+
* [#1396](https://github.com/primer/view_components/pull/1396) [`e0c50dcb`](https://github.com/primer/view_components/commit/e0c50dcbc12f31bdc0cac480f563952404051f14) Thanks [@mxriverlynn](https://github.com/mxriverlynn)! - mark Primer::ButtonComponent as deprecated in favor of Primer::Beta::Button
|
25
|
+
|
26
|
+
- [#1393](https://github.com/primer/view_components/pull/1393) [`5533f8e7`](https://github.com/primer/view_components/commit/5533f8e7dfffceba0e4b94bbc3bae1e17ebcff91) Thanks [@camertron](https://github.com/camertron)! - Add the Requested-With header to toggle switch requests
|
27
|
+
|
28
|
+
* [#1382](https://github.com/primer/view_components/pull/1382) [`6fd690c8`](https://github.com/primer/view_components/commit/6fd690c8804cd4a1cc8bdbb76d1f6f7e795ab8d6) Thanks [@kangarruu](https://github.com/kangarruu)! - Docs change to fix typo and descriptions in dialog.rb
|
29
|
+
|
30
|
+
- [#1397](https://github.com/primer/view_components/pull/1397) [`1ad8cfa7`](https://github.com/primer/view_components/commit/1ad8cfa753872e3ee5d196315ed5048351073029) Thanks [@mxriverlynn](https://github.com/mxriverlynn)! - deprecated Primer::IconButton in favor of Primer::Beta::IconButton"
|
31
|
+
|
32
|
+
* [#1390](https://github.com/primer/view_components/pull/1390) [`94c31645`](https://github.com/primer/view_components/commit/94c316459db0299afa0946eee5ae2987a16879f3) Thanks [@neall](https://github.com/neall)! - Support submitting a check box group as an array
|
33
|
+
|
34
|
+
- [#1392](https://github.com/primer/view_components/pull/1392) [`1f424aab`](https://github.com/primer/view_components/commit/1f424aabc6e8be4bd3a2c55190414a1b125b9111) Thanks [@jonrohan](https://github.com/jonrohan)! - Removing `static/arguments.yml` and replacing with `static/arguments.json`. The data output doesn't change.
|
35
|
+
|
36
|
+
* [#1381](https://github.com/primer/view_components/pull/1381) [`040148d8`](https://github.com/primer/view_components/commit/040148d8cc197c12945466b99805177db69fbf95) Thanks [@joelhawksley](https://github.com/joelhawksley)! - Simplify CI configuration to a single build per Ruby/Rails version.
|
37
|
+
|
38
|
+
- [#1394](https://github.com/primer/view_components/pull/1394) [`27d82335`](https://github.com/primer/view_components/commit/27d823358e4abb9ba6c5c208c44aab300546c144) Thanks [@jonrohan](https://github.com/jonrohan)! - Adding optional wrapper arguments to IconButton
|
39
|
+
|
3
40
|
## 0.0.94
|
4
41
|
|
5
42
|
### Patch Changes
|
@@ -1,2 +1,2 @@
|
|
1
|
-
function t(t,e,n,o){var i,s=arguments.length,r=s<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,o);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(s<3?i(r):s>3?i(e,n,r):i(e,n))||r);return s>3&&r&&Object.defineProperty(e,n,r),r}function e(t,e,n,o){if("a"===n&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?o:"a"===n?o.call(t):o?o.value:e.get(t)}function n(t,e,n,o,i){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?i.call(t,n):i?i.value=n:e.set(t,n),n}const o={"outside-top":["outside-bottom","outside-right","outside-left","outside-bottom"],"outside-bottom":["outside-top","outside-right","outside-left","outside-bottom"],"outside-left":["outside-right","outside-bottom","outside-top","outside-bottom"],"outside-right":["outside-left","outside-bottom","outside-top","outside-bottom"]},i={start:["end","center"],end:["start","center"],center:["end","start"]};function s(t,e,n={}){const s=function(t){let e=t.parentNode;for(;null!==e;){if(e instanceof HTMLElement&&"static"!==getComputedStyle(e).position)return e;e=e.parentNode}return document.body}(t),m=function(t){let e=t;for(;null!==e&&e!==document.body;){if("visible"!==getComputedStyle(e).overflow)break;e=e.parentNode}const n=e!==document.body&&e instanceof HTMLElement?e:document.body,o=n.getBoundingClientRect(),i=getComputedStyle(n),[s,r,a,c]=[i.borderTopWidth,i.borderLeftWidth,i.borderRightWidth,i.borderBottomWidth].map((t=>parseInt(t,10)||0));return{top:o.top+s,left:o.left+r,width:o.width-a-r,height:Math.max(o.height-s-c,n===document.body?window.innerHeight:-1/0)}}(s),p=getComputedStyle(s),b=s.getBoundingClientRect(),[g,w]=[p.borderTopWidth,p.borderLeftWidth].map((t=>parseInt(t,10)||0));return function(t,e,n,s,{side:r,align:a,allowOutOfBounds:c,anchorOffset:l,alignmentOffset:u}){const m={top:t.top-e.top,left:t.left-e.left,width:t.width,height:t.height};let p=d(n,s,r,a,l,u),b=r,g=a;if(p.top-=e.top,p.left-=e.left,!c){const c=o[r];let w=0;if(c){let t=r;for(;w<c.length&&h(t,p,m,n);){const o=c[w++];t=o,p=d(n,s,o,a,l,u),p.top-=e.top,p.left-=e.left,b=o}}const v=i[a];let E=0;if(v){let t=a;for(;E<v.length&&f(t,p,m,n);){const o=v[E++];t=o,p=d(n,s,b,o,l,u),p.top-=e.top,p.left-=e.left,g=o}}p.top<m.top&&(p.top=m.top),p.left<m.left&&(p.left=m.left),p.left+n.width>t.width+m.left&&(p.left=t.width+m.left-n.width),c&&w<c.length&&p.top+n.height>t.height+m.top&&(p.top=t.height+m.top-n.height)}return Object.assign(Object.assign({},p),{anchorSide:b,anchorAlign:g})}(m,{top:b.top+g,left:b.left+w},t.getBoundingClientRect(),e instanceof Element?e.getBoundingClientRect():e,function(t={}){var e,n,o,i,s;const d=null!==(e=t.side)&&void 0!==e?e:r,h=null!==(n=t.align)&&void 0!==n?n:a;return{side:d,align:h,anchorOffset:null!==(o=t.anchorOffset)&&void 0!==o?o:"inside-center"===d?0:c,alignmentOffset:null!==(i=t.alignmentOffset)&&void 0!==i?i:"center"!==h&&d.startsWith("inside")?l:0,allowOutOfBounds:null!==(s=t.allowOutOfBounds)&&void 0!==s?s:u}}(n))}const r="outside-bottom",a="start",c=4,l=4,u=!1;function d(t,e,n,o,i,s){const r=e.left+e.width,a=e.top+e.height;let c=-1,l=-1;return"outside-top"===n?c=e.top-i-t.height:"outside-bottom"===n?c=a+i:"outside-left"===n?l=e.left-i-t.width:"outside-right"===n&&(l=r+i),"outside-top"!==n&&"outside-bottom"!==n||(l="start"===o?e.left+s:"center"===o?e.left-(t.width-e.width)/2+s:r-t.width-s),"outside-left"!==n&&"outside-right"!==n||(c="start"===o?e.top+s:"center"===o?e.top-(t.height-e.height)/2+s:a-t.height-s),"inside-top"===n?c=e.top+i:"inside-bottom"===n?c=a-i-t.height:"inside-left"===n?l=e.left+i:"inside-right"===n?l=r-i-t.width:"inside-center"===n&&(l=(r+e.left)/2-t.width/2+i),"inside-top"===n||"inside-bottom"===n?l="start"===o?e.left+s:"center"===o?e.left-(t.width-e.width)/2+s:r-t.width-s:"inside-left"!==n&&"inside-right"!==n&&"inside-center"!==n||(c="start"===o?e.top+s:"center"===o?e.top-(t.height-e.height)/2+s:a-t.height-s),{top:c,left:l}}function h(t,e,n,o){return"outside-top"===t||"outside-bottom"===t?e.top<n.top||e.top+o.height>n.height+n.top:e.left<n.left||e.left+o.width>n.width+n.left}function f(t,e,n,o){return"end"===t?e.left<n.left:"start"===t||"center"===t?e.left+o.width>n.left+n.width||e.left<n.left:void 0}function m(t,e=!1){return function*(t,e={}){var n,o;const i=null!==(n=e.strict)&&void 0!==n&&n,s=null!==(o=e.onlyTabbable)&&void 0!==o&&o?b:p,r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:t=>t instanceof HTMLElement&&s(t,i)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});let a=null;if(!e.reverse&&s(t,i)&&(yield t),e.reverse){let t=r.lastChild();for(;t;)a=t,t=r.lastChild()}else a=r.firstChild();for(;a instanceof HTMLElement;)yield a,a=e.reverse?r.previousNode():r.nextNode();e.reverse&&s(t,i)&&(yield t)}(t,{reverse:e,strict:!0,onlyTabbable:!0}).next().value}function p(t,e=!1){const n=["BUTTON","INPUT","SELECT","TEXTAREA","OPTGROUP","OPTION","FIELDSET"].includes(t.tagName)&&t.disabled,o=t.hidden,i=t instanceof HTMLInputElement&&"hidden"===t.type,s=t.classList.contains("sentinel");if(n||o||i||s)return!1;if(e){const e=0===t.offsetWidth||0===t.offsetHeight,n=["hidden","collapse"].includes(getComputedStyle(t).visibility),o=0===t.getClientRects().length;if(e||n||o)return!1}return null!=t.getAttribute("tabindex")||!(t instanceof HTMLAnchorElement&&null==t.getAttribute("href"))&&-1!==t.tabIndex}function b(t,e=!1){return p(t,e)&&"-1"!==t.getAttribute("tabindex")}let g=!1;function w(){}try{const t=Object.create({},{signal:{get(){g=!0}}});window.addEventListener("test",w,t),window.removeEventListener("test",w,t)}catch(t){}g||(function(){if("undefined"==typeof window)return;const t=EventTarget.prototype.addEventListener;EventTarget.prototype.addEventListener=function(e,n,o){return"object"==typeof o&&"signal"in o&&o.signal instanceof AbortSignal&&t.call(o.signal,"abort",(()=>{this.removeEventListener(e,n,o)})),t.call(this,e,n,o)}}(),g=!0);const v=[];let E;function y(t,e,n){const o=new AbortController,i=null!=n?n:o.signal;t.setAttribute("data-focus-trap","active");const s=document.createElement("span");s.setAttribute("class","sentinel"),s.setAttribute("tabindex","0"),s.setAttribute("aria-hidden","true"),s.onfocus=()=>{const e=m(t,!0);null==e||e.focus()};const r=document.createElement("span");let a;function c(n){if(n instanceof HTMLElement&&document.contains(t)){if(t.contains(n))return void(a=n);if(a&&b(a)&&t.contains(a))return void a.focus();if(e&&t.contains(e))return void e.focus();{const e=m(t);return void(null==e||e.focus())}}}r.setAttribute("class","sentinel"),r.setAttribute("tabindex","0"),r.setAttribute("aria-hidden","true"),r.onfocus=()=>{const e=m(t);null==e||e.focus()},t.prepend(s),t.append(r);const l=function(t){const e=new AbortController;return t.addEventListener("abort",(()=>{e.abort()})),e}(i);if(E){const t=E;E.container.setAttribute("data-focus-trap","suspended"),E.controller.abort(),v.push(t)}l.signal.addEventListener("abort",(()=>{E=void 0})),i.addEventListener("abort",(()=>{t.removeAttribute("data-focus-trap");const e=t.getElementsByClassName("sentinel");for(;e.length>0;)e[0].remove();const n=v.findIndex((e=>e.container===t));n>=0&&v.splice(n,1),function(){const t=v.pop();t&&y(t.container,t.initialFocus,t.originalSignal)}()})),document.addEventListener("focus",(t=>{c(t.target)}),{signal:l.signal,capture:!0}),c(document.activeElement),E={container:t,controller:l,initialFocus:e,originalSignal:i};const u=v.findIndex((e=>e.container===t));if(u>=0&&v.splice(u,1),!n)return o}var A,T,k,L,x,M,C;function S(t){document.activeElement!==t&&(null==t||t.focus())}class ModalDialogElement extends HTMLElement{constructor(){super(...arguments),A.add(this),T.set(this,new AbortController),k.set(this,null),L.set(this,void 0),x.set(this,!0)}get open(){return this.hasAttribute("open")}set open(t){var o,i,s,r;if(t){if(this.open)return;this.setAttribute("open",""),null===(o=e(this,A,"a",M))||void 0===o||o.classList.remove("Overlay--hidden"),document.body.style.overflow="hidden",e(this,T,"f").signal.aborted&&n(this,T,new AbortController,"f"),y(this,void 0,e(this,T,"f").signal)}else{if(!this.open)return;this.removeAttribute("open"),null===(i=e(this,A,"a",M))||void 0===i||i.classList.add("Overlay--hidden"),document.body.style.overflow="initial",e(this,T,"f").abort();const t=(null===(s=e(this,L,"f"))||void 0===s?void 0:s.closest("details"))||(null===(r=e(this,L,"f"))||void 0===r?void 0:r.closest("action-menu"));S(t?m(t):e(this,L,"f")),n(this,L,void 0,"f")}}get showButtons(){return document.querySelectorAll(`button[data-show-dialog-id='${this.id}']`)}connectedCallback(){this.hasAttribute("role")||this.setAttribute("role","dialog");const{signal:t}=n(this,k,new AbortController,"f");this.ownerDocument.addEventListener("click",(t=>{const e=t.target,o=e.closest(this.tagName)!==this,i=null==e?void 0:e.closest("button");if(!i)return void(o&&this.close());let s=i.getAttribute("data-close-dialog-id");s===this.id&&this.close(),s=i.getAttribute("data-submit-dialog-id"),s===this.id&&this.close(!0),s=i.getAttribute("data-show-dialog-id"),s===this.id&&(t.stopPropagation(),n(this,L,i,"f"),this.show())}),{signal:t}),this.addEventListener("keydown",(t=>e(this,A,"m",C).call(this,t)))}disconnectedCallback(){var t;null===(t=e(this,k,"f"))||void 0===t||t.abort()}show(){this.open=!0}close(t=!1){if(!1===this.open)return;const e=new Event(t?"close":"cancel");this.dispatchEvent(e),this.open=!1}}T=new WeakMap,k=new WeakMap,L=new WeakMap,x=new WeakMap,A=new WeakSet,M=function(){var t;return(null===(t=this.parentElement)||void 0===t?void 0:t.hasAttribute("data-modal-dialog-overlay"))?this.parentElement:null},C=function(t){if(t instanceof KeyboardEvent&&!t.isComposing)switch(t.key){case"Escape":this.open&&(this.close(),t.preventDefault(),t.stopPropagation())}},window.customElements.get("modal-dialog")||(window.ModalDialogElement=ModalDialogElement,window.customElements.define("modal-dialog",ModalDialogElement));const D=new WeakSet;function H(t){$(t),R(t)}const F=new WeakMap;function R(t=document){if(F.has(t))return F.get(t);let e=!1;const n=new MutationObserver((t=>{for(const e of t)if("attributes"===e.type&&e.target instanceof Element)W(e.target);else if("childList"===e.type&&e.addedNodes.length)for(const t of e.addedNodes)t instanceof Element&&$(t)}));n.observe(t,{childList:!0,subtree:!0,attributeFilter:["data-action"]});const o={get closed(){return e},unsubscribe(){e=!0,F.delete(t),n.disconnect()}};return F.set(t,o),o}function $(t){for(const e of t.querySelectorAll("[data-action]"))W(e);t instanceof Element&&t.hasAttribute("data-action")&&W(t)}function O(t){const e=t.currentTarget;for(const n of I(e))if(t.type===n.type){const o=e.closest(n.tag);D.has(o)&&"function"==typeof o[n.method]&&o[n.method](t);const i=e.getRootNode();if(i instanceof ShadowRoot&&D.has(i.host)&&i.host.matches(n.tag)){const e=i.host;"function"==typeof e[n.method]&&e[n.method](t)}}}function*I(t){for(const e of(t.getAttribute("data-action")||"").trim().split(/\s+/)){const t=e.lastIndexOf(":"),n=Math.max(0,e.lastIndexOf("#"))||e.length;yield{type:e.slice(0,t),tag:e.slice(t+1,n),method:e.slice(n+1)||"handleEvent"}||"handleEvent"}}function W(t){for(const e of I(t))t.addEventListener(e.type,O)}const q=t=>String("symbol"==typeof t?t.description:t).replace(/([A-Z]($|[a-z]))/g,"-$1").replace(/--/g,"-").replace(/^-|-$/,"").toLowerCase(),P=(t,e="property")=>{const n=q(t);if(!n.includes("-"))throw new DOMException(`${e}: ${String(t)} is not a valid ${e} name`,"SyntaxError");return n};const N=new WeakSet;function B(t,e){if(N.has(t))return;N.add(t);const n=Object.getPrototypeOf(t),o=n?.constructor?.attrPrefix??"data-";e||(e=X(n,"attr"));for(const n of e){const e=t[n],i=P(`${o}${n}`);let s={configurable:!0,get(){return this.getAttribute(i)||""},set(t){this.setAttribute(i,t||"")}};"number"==typeof e?s={configurable:!0,get(){return Number(this.getAttribute(i)||0)},set(t){this.setAttribute(i,t)}}:"boolean"==typeof e&&(s={configurable:!0,get(){return this.hasAttribute(i)},set(t){this.toggleAttribute(i,t)}}),Object.defineProperty(t,n,s),n in t&&!t.hasAttribute(i)&&s.set.call(t,e)}}const Y=Symbol.for("catalyst");class U{constructor(t){const e=this,n=t.prototype.connectedCallback;t.prototype.connectedCallback=function(){e.connectedCallback(this,n)};const o=t.prototype.disconnectedCallback;t.prototype.disconnectedCallback=function(){e.disconnectedCallback(this,o)};const i=t.prototype.attributeChangedCallback;t.prototype.attributeChangedCallback=function(t,n,o){e.attributeChangedCallback(this,t,n,o,i)};let s=t.observedAttributes||[];Object.defineProperty(t,"observedAttributes",{configurable:!0,get(){return e.observedAttributes(this,s)},set(t){s=t}}),function(t){let e=t.observedAttributes||[];const n=t.attrPrefix??"data-",o=t=>P(`${n}${t}`);Object.defineProperty(t,"observedAttributes",{configurable:!0,get:()=>[...X(t.prototype,"attr")].map(o).concat(e),set(t){e=t}})}(t),function(t){const e=q(t.name).replace(/-element$/,"");try{window.customElements.define(e,t),window[t.name]=customElements.get(e)}catch(t){if(!(t instanceof DOMException&&"NotSupportedError"===t.name))throw t}}(t)}observedAttributes(t,e){return e}connectedCallback(t,e){t.toggleAttribute("data-catalyst",!0),customElements.upgrade(t),function(t){for(const e of t.querySelectorAll("template[data-shadowroot]"))e.parentElement===t&&t.attachShadow({mode:"closed"===e.getAttribute("data-shadowroot")?"closed":"open"}).append(e.content.cloneNode(!0))}(t),B(t),function(t){D.add(t),t.shadowRoot&&H(t.shadowRoot),$(t),R(t.ownerDocument)}(t),e?.call(t),t.shadowRoot&&H(t.shadowRoot)}disconnectedCallback(t,e){e?.call(t)}attributeChangedCallback(t,e,n,o,i){B(t),"data-catalyst"!==e&&i&&i.call(t,e,n,o)}}function X(t,e){if(!Object.prototype.hasOwnProperty.call(t,Y)){const e=t[Y],n=t[Y]=new Map;if(e)for(const[t,o]of e)n.set(t,new Set(o))}const n=t[Y];return n.has(e)||n.set(e,new Set),n.get(e)}function K(t,e){X(t,"target").add(e),Object.defineProperty(t,e,{configurable:!0,get(){return function(t,e){const n=t.tagName.toLowerCase();if(t.shadowRoot)for(const o of t.shadowRoot.querySelectorAll(`[data-target~="${n}.${e}"]`))if(!o.closest(n))return o;for(const o of t.querySelectorAll(`[data-target~="${n}.${e}"]`))if(o.closest(n)===t)return o}(this,e)}})}function j(t,e=0,{start:n=!1,middle:o=!1,once:i=!1}={}){return function(t,e=0,{start:n=!0,middle:o=!0,once:i=!1}={}){let s,r=0,a=!1;function c(...l){if(a)return;const u=Date.now()-r;r=Date.now(),n?(n=!1,t.apply(this,l),i&&c.cancel()):(o&&u<e||!o)&&(clearTimeout(s),s=setTimeout((()=>{r=Date.now(),t.apply(this,l),i&&c.cancel()}),o?e-u:e))}return c.cancel=()=>{clearTimeout(s),a=!0},c}(t,e,{start:n,middle:o,once:i})}new Promise((t=>{"loading"!==document.readyState?t():document.addEventListener("readystatechange",(()=>t()),{once:!0})})),new Promise((t=>{const e=new AbortController;e.signal.addEventListener("abort",(()=>t()));const n={once:!0,passive:!0,signal:e.signal},o=()=>e.abort();document.addEventListener("mousedown",o,n),document.addEventListener("touchstart",o,n),document.addEventListener("keydown",o,n),document.addEventListener("pointerdown",o,n)}));let z=class ToggleSwitchElement extends HTMLElement{get src(){const t=this.getAttribute("src");if(!t)return null;const e=this.ownerDocument.createElement("a");return e.href=t,e.href}get csrf(){const t=this.querySelector("[data-csrf]");return this.getAttribute("csrf")||t instanceof HTMLInputElement&&t.value||null}get csrfField(){return this.getAttribute("csrf-field")||"authenticity_token"}isRemote(){return null!=this.src}toggle(){this.isRemote()?(this.setLoadingState(),this.check()):this.performToggle()}turnOn(){this.isDisabled()||(this.switch.setAttribute("aria-checked","true"),this.classList.add("ToggleSwitch--checked"))}turnOff(){this.isDisabled()||(this.switch.setAttribute("aria-checked","false"),this.classList.remove("ToggleSwitch--checked"))}isOn(){return"true"===this.switch.getAttribute("aria-checked")}isOff(){return!this.isOn()}isDisabled(){return"true"===this.switch.getAttribute("aria-disabled")}disable(){this.switch.setAttribute("aria-disabled","true")}enable(){this.switch.setAttribute("aria-disabled","false")}performToggle(){this.isOn()?this.turnOff():this.turnOn()}setLoadingState(){this.disable(),this.errorIcon.setAttribute("hidden","hidden"),this.loadingSpinner.removeAttribute("hidden")}setSuccessState(){this.setFinishedState(!1)}setErrorState(){this.setFinishedState(!0)}setFinishedState(t){t&&this.errorIcon.removeAttribute("hidden"),this.loadingSpinner.setAttribute("hidden","hidden"),this.enable()}async check(){const t=new FormData;this.csrf&&t.append(this.csrfField,this.csrf),t.append("value",this.isOn()?"1":"0");try{if(!this.src)throw new Error("invalid src");(await fetch(this.src,{credentials:"same-origin",method:"POST",body:t})).ok?(this.setSuccessState(),this.performToggle()):this.setErrorState()}catch(t){this.setErrorState()}}};var V,Z,_,J,G,Q,tt;t([K],z.prototype,"switch",void 0),t([K],z.prototype,"loadingSpinner",void 0),t([K],z.prototype,"errorIcon",void 0),t([function(t=0,e={}){return(n,o,i)=>{if(!i||"function"!=typeof i.value)throw new Error("debounce can only decorate functions");const s=i.value;i.value=j(s,t,e),Object.defineProperty(n,o,i)}}(300)],z.prototype,"check",null),z=t([function(t){new U(t)}],z),window.customElements.get("toggle-switch")||(window.ToggleSwitchElement=z,window.customElements.define("toggle-switch",z));const et=["tooltip-n","tooltip-s","tooltip-e","tooltip-w","tooltip-ne","tooltip-se","tooltip-nw","tooltip-sw"];class ToolTipElement extends HTMLElement{constructor(){super(...arguments),V.add(this),Z.set(this,void 0),_.set(this,"center"),J.set(this,"outside-bottom"),G.set(this,!1)}styles(){return'\n :host {\n position: absolute;\n z-index: 1000000;\n padding: .5em .75em;\n font: normal normal 11px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";\n -webkit-font-smoothing: subpixel-antialiased;\n color: var(--color-fg-on-emphasis);\n text-align: center;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-wrap: break-word;\n white-space: pre;\n background: var(--color-neutral-emphasis-plus);\n border-radius: 6px;\n opacity: 0;\n max-width: 250px;\n word-wrap: break-word;\n white-space: normal;\n width: max-content;\n }\n\n :host:before{\n position: absolute;\n z-index: 1000001;\n color: var(--color-neutral-emphasis-plus);\n content: "";\n border: 6px solid transparent;\n opacity: 0\n }\n\n @keyframes tooltip-appear {\n from {\n opacity: 0\n }\n to {\n opacity: 1\n }\n }\n\n :host:after{\n position: absolute;\n display: block;\n right: 0;\n left: 0;\n height: 12px;\n content: ""\n }\n\n :host(.tooltip-open),\n :host(.tooltip-open):before {\n animation-name: tooltip-appear;\n animation-duration: .1s;\n animation-fill-mode: forwards;\n animation-timing-function: ease-in;\n animation-delay: .4s\n }\n\n :host(.tooltip-s):before,\n :host(.tooltip-n):before {\n right: 50%;\n margin-right: -6px;\n }\n\n :host(.tooltip-s):before,\n :host(.tooltip-se):before,\n :host(.tooltip-sw):before {\n bottom: 100%;\n border-bottom-color: var(--color-neutral-emphasis-plus)\n }\n\n :host(.tooltip-s):after,\n :host(.tooltip-se):after,\n :host(.tooltip-sw):after {\n bottom: 100%\n }\n\n :host(.tooltip-n):before,\n :host(.tooltip-ne):before,\n :host(.tooltip-nw):before {\n top: 100%;\n border-top-color: var(--color-neutral-emphasis-plus)\n }\n\n :host(.tooltip-n):after,\n :host(.tooltip-ne):after,\n :host(.tooltip-nw):after {\n top: 100%\n }\n\n :host(.tooltip-se):before,\n :host(.tooltip-ne):before {\n left: 0;\n margin-left: 6px;\n }\n\n :host(.tooltip-sw):before,\n :host(.tooltip-nw):before {\n right: 0;\n margin-right: 6px;\n }\n\n :host(.tooltip-w):before {\n top: 50%;\n bottom: 50%;\n left: 100%;\n margin-top: -6px;\n border-left-color: var(--color-neutral-emphasis-plus)\n }\n\n :host(.tooltip-e):before {\n top: 50%;\n right: 100%;\n bottom: 50%;\n margin-top: -6px;\n border-right-color: var(--color-neutral-emphasis-plus)\n }\n '}get htmlFor(){return this.getAttribute("for")||""}set htmlFor(t){this.setAttribute("for",t)}get type(){return"label"===this.getAttribute("data-type")?"label":"description"}set type(t){this.setAttribute("data-type",t)}get direction(){return this.getAttribute("data-direction")||"s"}set direction(t){this.setAttribute("data-direction",t)}get control(){return this.ownerDocument.getElementById(this.htmlFor)}set hiddenFromView(t){this.classList.toggle("sr-only",t),this.isConnected&&e(this,V,"m",Q).call(this)}get hiddenFromView(){return this.classList.contains("sr-only")}connectedCallback(){var t;if(!this.shadowRoot){this.attachShadow({mode:"open"}).innerHTML=`\n <style>\n ${this.styles()}\n </style>\n <slot></slot>\n `}if(this.hiddenFromView=!0,n(this,G,!0,"f"),this.id||(this.id=`tooltip-${Date.now()}-${(1e4*Math.random()).toFixed(0)}`),!this.control)return;this.setAttribute("role","tooltip"),null===(t=e(this,Z,"f"))||void 0===t||t.abort(),n(this,Z,new AbortController,"f");const{signal:o}=e(this,Z,"f");this.addEventListener("mouseleave",this,{signal:o}),this.control.addEventListener("mouseenter",this,{signal:o}),this.control.addEventListener("mouseleave",this,{signal:o}),this.control.addEventListener("focus",this,{signal:o}),this.control.addEventListener("blur",this,{signal:o}),this.ownerDocument.addEventListener("keydown",this,{signal:o}),e(this,V,"m",Q).call(this)}disconnectedCallback(){var t;null===(t=e(this,Z,"f"))||void 0===t||t.abort()}handleEvent(t){this.control&&("mouseenter"!==t.type&&"focus"!==t.type||!this.hiddenFromView?"blur"===t.type||"mouseleave"===t.type&&t.relatedTarget!==this.control&&t.relatedTarget!==this?this.hiddenFromView=!0:"keydown"!==t.type||"Escape"!==t.key||this.hiddenFromView||(this.hiddenFromView=!0):this.hiddenFromView=!1)}attributeChangedCallback(t){if("id"===t||"data-type"===t){if(!this.id||!this.control)return;if("label"===this.type){let t=this.control.getAttribute("aria-labelledby");t=t?`${t} ${this.id}`:this.id,this.control.setAttribute("aria-labelledby",t),this.setAttribute("aria-hidden","true")}else{let t=this.control.getAttribute("aria-describedby");t=t?`${t} ${this.id}`:this.id,this.control.setAttribute("aria-describedby",t)}}else if("data-direction"===t){this.classList.remove(...et);const t=this.direction;"n"===t?(n(this,_,"center","f"),n(this,J,"outside-top","f")):"ne"===t?(n(this,_,"start","f"),n(this,J,"outside-top","f")):"e"===t?(n(this,_,"center","f"),n(this,J,"outside-right","f")):"se"===t?(n(this,_,"start","f"),n(this,J,"outside-bottom","f")):"s"===t?(n(this,_,"center","f"),n(this,J,"outside-bottom","f")):"sw"===t?(n(this,_,"end","f"),n(this,J,"outside-bottom","f")):"w"===t?(n(this,_,"center","f"),n(this,J,"outside-left","f")):"nw"===t&&(n(this,_,"end","f"),n(this,J,"outside-top","f"))}}}Z=new WeakMap,_=new WeakMap,J=new WeakMap,G=new WeakMap,V=new WeakSet,Q=function(){if(this.hiddenFromView)this.classList.remove("tooltip-open",...et);else{this.classList.add("tooltip-open");for(const t of this.ownerDocument.querySelectorAll(this.tagName))t!==this&&(t.hiddenFromView=!0);e(this,V,"m",tt).call(this)}},tt=function(){if(!this.control)return;if(!e(this,G,"f")||this.hiddenFromView)return;this.style.left="0px";const t=s(this,this.control,{side:e(this,J,"f"),align:e(this,_,"f"),anchorOffset:10}),n=t.anchorSide,o=t.anchorAlign;this.style.top=`${t.top}px`,this.style.left=`${t.left}px`;let i="s";i="outside-left"===n?"w":"outside-right"===n?"e":"outside-top"===n?"center"===o?"n":"start"===o?"ne":"nw":"center"===o?"s":"start"===o?"se":"sw",this.classList.add(`tooltip-${i}`)},ToolTipElement.observedAttributes=["data-type","data-direction","id"],window.customElements.get("tool-tip")||(window.ToolTipElement=ToolTipElement,window.customElements.define("tool-tip",ToolTipElement));const nt=!!navigator.userAgent.match(/Macintosh/);class ot{constructor(t,e){this.input=t,this.list=e,this.isComposing=!1,e.id||(e.id=`combobox-${Math.random().toString().slice(2,6)}`),this.keyboardEventHandler=t=>function(t,e){if(t.shiftKey||t.metaKey||t.altKey)return;if(!nt&&t.ctrlKey)return;if(e.isComposing)return;switch(t.key){case"Enter":case"Tab":(function(t,e){const n=e.querySelector('[aria-selected="true"]');return!!n&&("true"===n.getAttribute("aria-disabled")||n.click(),!0)})(e.input,e.list)&&t.preventDefault();break;case"Escape":e.clearSelection();break;case"ArrowDown":e.navigate(1),t.preventDefault();break;case"ArrowUp":e.navigate(-1),t.preventDefault();break;case"n":nt&&t.ctrlKey&&(e.navigate(1),t.preventDefault());break;case"p":nt&&t.ctrlKey&&(e.navigate(-1),t.preventDefault());break;default:if(t.ctrlKey)break;e.clearSelection()}}(t,this),this.compositionEventHandler=t=>function(t,e){e.isComposing="compositionstart"===t.type;if(!document.getElementById(e.input.getAttribute("aria-controls")||""))return;e.clearSelection()}(t,this),this.inputHandler=this.clearSelection.bind(this),t.setAttribute("role","combobox"),t.setAttribute("aria-controls",e.id),t.setAttribute("aria-expanded","false"),t.setAttribute("aria-autocomplete","list"),t.setAttribute("aria-haspopup","listbox")}destroy(){this.clearSelection(),this.stop(),this.input.removeAttribute("role"),this.input.removeAttribute("aria-controls"),this.input.removeAttribute("aria-expanded"),this.input.removeAttribute("aria-autocomplete"),this.input.removeAttribute("aria-haspopup")}start(){this.input.setAttribute("aria-expanded","true"),this.input.addEventListener("compositionstart",this.compositionEventHandler),this.input.addEventListener("compositionend",this.compositionEventHandler),this.input.addEventListener("input",this.inputHandler),this.input.addEventListener("keydown",this.keyboardEventHandler),this.list.addEventListener("click",it)}stop(){this.clearSelection(),this.input.setAttribute("aria-expanded","false"),this.input.removeEventListener("compositionstart",this.compositionEventHandler),this.input.removeEventListener("compositionend",this.compositionEventHandler),this.input.removeEventListener("input",this.inputHandler),this.input.removeEventListener("keydown",this.keyboardEventHandler),this.list.removeEventListener("click",it)}navigate(t=1){const e=Array.from(this.list.querySelectorAll('[aria-selected="true"]')).filter(st)[0],n=Array.from(this.list.querySelectorAll('[role="option"]')).filter(st),o=n.indexOf(e);if(o===n.length-1&&1===t||0===o&&-1===t)return this.clearSelection(),void this.input.focus();let i=1===t?0:n.length-1;if(e&&o>=0){const e=o+t;e>=0&&e<n.length&&(i=e)}const s=n[i];if(s)for(const t of n)s===t?(this.input.setAttribute("aria-activedescendant",s.id),s.setAttribute("aria-selected","true"),rt(this.list,s)):t.setAttribute("aria-selected","false")}clearSelection(){this.input.removeAttribute("aria-activedescendant");for(const t of this.list.querySelectorAll('[aria-selected="true"]'))t.setAttribute("aria-selected","false")}}function it(t){if(!(t.target instanceof Element))return;const e=t.target.closest('[role="option"]');e&&"true"!==e.getAttribute("aria-disabled")&&function(t){t.dispatchEvent(new CustomEvent("combobox-commit",{bubbles:!0}))}(e)}function st(t){return!t.hidden&&!(t instanceof HTMLInputElement&&"hidden"===t.type)&&(t.offsetWidth>0||t.offsetHeight>0)}function rt(t,e){(function(t,e){const n=t.scrollTop,o=n+t.clientHeight,i=e.offsetTop,s=i+e.clientHeight;return i>=n&&s<=o})(t,e)||(t.scrollTop=e.offsetTop)}const at=window.testScreenReaderDelay||100;class ct{constructor(t,e,n,o=!1){var i;if(this.container=t,this.input=e,this.results=n,this.combobox=new ot(e,n),this.feedback=document.getElementById(`${this.results.id}-feedback`),this.autoselectEnabled=o,this.clearButton=document.getElementById(`${this.input.id||this.input.name}-clear`),this.clientOptions=n.querySelectorAll("[role=option]"),this.feedback&&(this.feedback.setAttribute("aria-live","polite"),this.feedback.setAttribute("aria-atomic","true")),this.clearButton&&!this.clearButton.getAttribute("aria-label")){const t=document.querySelector(`label[for="${this.input.name}"]`);this.clearButton.setAttribute("aria-label","clear:"),this.clearButton.setAttribute("aria-labelledby",`${this.clearButton.id} ${(null==t?void 0:t.id)||""}`)}this.input.getAttribute("aria-expanded")||this.input.setAttribute("aria-expanded","false"),this.results.hidden=!0,this.results.setAttribute("aria-label","results"),this.input.setAttribute("autocomplete","off"),this.input.setAttribute("spellcheck","false"),this.interactingWithList=!1,this.onInputChange=function(t,e=0){let n;return function(...o){clearTimeout(n),n=window.setTimeout((()=>{clearTimeout(n),t(...o)}),e)}}(this.onInputChange.bind(this),300),this.onResultsMouseDown=this.onResultsMouseDown.bind(this),this.onInputBlur=this.onInputBlur.bind(this),this.onInputFocus=this.onInputFocus.bind(this),this.onKeydown=this.onKeydown.bind(this),this.onCommit=this.onCommit.bind(this),this.handleClear=this.handleClear.bind(this),this.input.addEventListener("keydown",this.onKeydown),this.input.addEventListener("focus",this.onInputFocus),this.input.addEventListener("blur",this.onInputBlur),this.input.addEventListener("input",this.onInputChange),this.results.addEventListener("mousedown",this.onResultsMouseDown),this.results.addEventListener("combobox-commit",this.onCommit),null===(i=this.clearButton)||void 0===i||i.addEventListener("click",this.handleClear)}destroy(){this.input.removeEventListener("keydown",this.onKeydown),this.input.removeEventListener("focus",this.onInputFocus),this.input.removeEventListener("blur",this.onInputBlur),this.input.removeEventListener("input",this.onInputChange),this.results.removeEventListener("mousedown",this.onResultsMouseDown),this.results.removeEventListener("combobox-commit",this.onCommit)}handleClear(t){t.preventDefault(),"true"===this.input.getAttribute("aria-expanded")&&(this.input.setAttribute("aria-expanded","false"),this.updateFeedbackForScreenReaders("Results hidden.")),this.input.value="",this.container.value="",this.input.focus(),this.input.dispatchEvent(new Event("change")),this.container.open=!1}onKeydown(t){if("Enter"===t.key&&this.container.open&&this.autoselectEnabled){const e=this.results.children[0];e&&(t.stopPropagation(),t.preventDefault(),this.onCommit({target:e}))}if("Escape"===t.key&&this.container.open)this.container.open=!1,t.stopPropagation(),t.preventDefault();else if(t.altKey&&"ArrowUp"===t.key&&this.container.open)this.container.open=!1,t.stopPropagation(),t.preventDefault();else if(t.altKey&&"ArrowDown"===t.key&&!this.container.open){if(!this.input.value.trim())return;this.container.open=!0,t.stopPropagation(),t.preventDefault()}}onInputFocus(){this.fetchResults()}onInputBlur(){this.interactingWithList?this.interactingWithList=!1:this.container.open=!1}onCommit({target:t}){const e=t;if(!(e instanceof HTMLElement))return;if(this.container.open=!1,e instanceof HTMLAnchorElement)return;const n=e.getAttribute("data-autocomplete-value")||e.textContent;this.updateFeedbackForScreenReaders(`${e.textContent||""} selected.`),this.container.value=n,n||this.updateFeedbackForScreenReaders("Results hidden.")}onResultsMouseDown(){this.interactingWithList=!0}onInputChange(){this.feedback&&this.feedback.textContent&&(this.feedback.textContent=""),this.container.removeAttribute("value"),this.fetchResults()}identifyOptions(){let t=0;for(const e of this.results.querySelectorAll('[role="option"]:not([id])'))e.id=`${this.results.id}-option-${t++}`}updateFeedbackForScreenReaders(t){setTimeout((()=>{this.feedback&&(this.feedback.textContent=t)}),at)}fetchResults(){const t=this.input.value.trim();if(!t)return void(this.container.open=!1);const e=this.container.src;if(!e)return;const n=new URL(e,window.location.href),o=new URLSearchParams(n.search.slice(1));o.append("q",t),n.search=o.toString(),this.container.dispatchEvent(new CustomEvent("loadstart")),this.container.fetchResult(this.input,n.toString()).then((t=>{this.results.innerHTML=t,this.identifyOptions();const e=this.results.querySelectorAll('[role="option"]'),n=!!e.length,o=e.length,[i]=e,s=null==i?void 0:i.textContent;this.autoselectEnabled&&s?this.updateFeedbackForScreenReaders(`${o} results. ${s} is the top result: Press Enter to activate.`):this.updateFeedbackForScreenReaders(`${o||"No"} results.`),this.container.open=n,this.container.dispatchEvent(new CustomEvent("load")),this.container.dispatchEvent(new CustomEvent("loadend"))})).catch((()=>{this.container.dispatchEvent(new CustomEvent("error")),this.container.dispatchEvent(new CustomEvent("loadend"))}))}open(){this.results.hidden&&(this.combobox.start(),this.results.hidden=!1)}close(){this.results.hidden||(this.combobox.stop(),this.results.hidden=!0)}}class lt extends CustomEvent{constructor(t,e){super(t,e),this.relatedTarget=e.relatedTarget}}const ut=new WeakMap;function dt(t,e){const n=new XMLHttpRequest;return n.open("GET",e,!0),n.setRequestHeader("Accept","text/fragment+html"),function(t,e){const n=ut.get(t);n&&n.abort();ut.set(t,e);const o=()=>ut.delete(t),i=function(t){return new Promise(((e,n)=>{t.onload=function(){t.status>=200&&t.status<300?e(t.responseText):n(new Error(t.responseText))},t.onerror=n,t.send()}))}(e);return i.then(o,o),i}(t,n)}const ht=new WeakMap;class AutocompleteElement extends HTMLElement{constructor(){super(...arguments),this.fetchResult=dt}connectedCallback(){const t=this.getAttribute("for");if(!t)return;const e=this.querySelector("input"),n=document.getElementById(t);if(!(e instanceof HTMLInputElement&&n))return;const o="true"===this.getAttribute("data-autoselect");ht.set(this,new ct(this,e,n,o)),n.setAttribute("role","listbox")}disconnectedCallback(){const t=ht.get(this);t&&(t.destroy(),ht.delete(this))}get src(){return this.getAttribute("src")||""}set src(t){this.setAttribute("src",t)}get value(){return this.getAttribute("value")||""}set value(t){this.setAttribute("value",t)}get open(){return this.hasAttribute("open")}set open(t){t?this.setAttribute("open",""):this.removeAttribute("open")}static get observedAttributes(){return["open","value"]}attributeChangedCallback(t,e,n){if(e===n)return;const o=ht.get(this);if(o)switch(t){case"open":null===n?o.close():o.open();break;case"value":null!==n&&(o.input.value=n),this.dispatchEvent(new lt("auto-complete-change",{bubbles:!0,relatedTarget:o.input}))}}}function ft(t){if("clipboard"in navigator)return navigator.clipboard.writeText(t.textContent);const e=getSelection();if(null==e)return Promise.reject(new Error);e.removeAllRanges();const n=document.createRange();return n.selectNodeContents(t),e.addRange(n),document.execCommand("copy"),e.removeAllRanges(),Promise.resolve()}function mt(t){if("clipboard"in navigator)return navigator.clipboard.writeText(t);const e=document.body;if(!e)return Promise.reject(new Error);const n=function(t){const e=document.createElement("pre");return e.style.width="1px",e.style.height="1px",e.style.position="fixed",e.style.top="5px",e.textContent=t,e}(t);return e.appendChild(n),ft(n),e.removeChild(n),Promise.resolve()}function pt(t){const e=t.getAttribute("for"),n=t.getAttribute("value");function o(){t.dispatchEvent(new CustomEvent("clipboard-copy",{bubbles:!0}))}if(n)mt(n).then(o);else if(e){const n="getRootNode"in Element.prototype?t.getRootNode():t.ownerDocument;if(!(n instanceof Document||"ShadowRoot"in window&&n instanceof ShadowRoot))return;const s=n.getElementById(e);s&&(i=s,i instanceof HTMLInputElement||i instanceof HTMLTextAreaElement?mt(i.value):i instanceof HTMLAnchorElement&&i.hasAttribute("href")?mt(i.href):ft(i)).then(o)}var i}function bt(t){const e=t.currentTarget;e instanceof HTMLElement&&pt(e)}function gt(t){if(" "===t.key||"Enter"===t.key){const e=t.currentTarget;e instanceof HTMLElement&&(t.preventDefault(),pt(e))}}function wt(t){t.currentTarget.addEventListener("keydown",gt)}function vt(t){t.currentTarget.removeEventListener("keydown",gt)}window.customElements.get("auto-complete")||(window.AutocompleteElement=AutocompleteElement,window.customElements.define("auto-complete",AutocompleteElement));class ClipboardCopyElement extends HTMLElement{constructor(){super(),this.addEventListener("click",bt),this.addEventListener("focus",wt),this.addEventListener("blur",vt)}connectedCallback(){this.hasAttribute("tabindex")||this.setAttribute("tabindex","0"),this.hasAttribute("role")||this.setAttribute("role","button")}get value(){return this.getAttribute("value")||""}set value(t){this.setAttribute("value",t)}}window.customElements.get("clipboard-copy")||(window.ClipboardCopyElement=ClipboardCopyElement,window.customElements.define("clipboard-copy",ClipboardCopyElement));function Et(t){t.style.display="inline-block"}function yt(t){t.style.display="none"}const At=new WeakMap;document.addEventListener("clipboard-copy",(({target:t})=>{if(!(t instanceof HTMLElement))return;if(!t.hasAttribute("data-view-component"))return;const e=At.get(t);e?(clearTimeout(e),At.delete(t)):function(t){const[e,n]=t.querySelectorAll(".octicon");e&&n&&(yt(e),Et(n))}(t),At.set(t,setTimeout((()=>{!function(t){const[e,n]=t.querySelectorAll(".octicon");e&&n&&(Et(e),yt(n))}(t),At.delete(t)}),2e3))}));class DetailsMenuElement extends HTMLElement{get preload(){return this.hasAttribute("preload")}set preload(t){t?this.setAttribute("preload",""):this.removeAttribute("preload")}get src(){return this.getAttribute("src")||""}set src(t){this.setAttribute("src",t)}connectedCallback(){this.hasAttribute("role")||this.setAttribute("role","menu");const t=this.parentElement;if(!t)return;const e=t.querySelector("summary");e&&(e.setAttribute("aria-haspopup","menu"),e.hasAttribute("role")||e.setAttribute("role","button"));const n=[Lt(t,"compositionstart",(t=>Ot(this,t))),Lt(t,"compositionend",(t=>Ot(this,t))),Lt(t,"click",(e=>Ht(t,e))),Lt(t,"change",(e=>Ht(t,e))),Lt(t,"keydown",(e=>function(t,e,n){if(!(n instanceof KeyboardEvent))return;if(t.querySelector("details[open]"))return;const o=Tt.get(e);if(!o||o.isComposing)return;const i=n.target instanceof Element&&"SUMMARY"===n.target.tagName;switch(n.key){case"Escape":t.hasAttribute("open")&&($t(t),n.preventDefault(),n.stopPropagation());break;case"ArrowDown":{i&&!t.hasAttribute("open")&&t.setAttribute("open","");const e=St(t,!0);e&&e.focus(),n.preventDefault()}break;case"ArrowUp":{i&&!t.hasAttribute("open")&&t.setAttribute("open","");const e=St(t,!1);e&&e.focus(),n.preventDefault()}break;case"n":if(Dt&&n.ctrlKey){const e=St(t,!0);e&&e.focus(),n.preventDefault()}break;case"p":if(Dt&&n.ctrlKey){const e=St(t,!1);e&&e.focus(),n.preventDefault()}break;case" ":case"Enter":{const e=document.activeElement;e instanceof HTMLElement&&Rt(e)&&e.closest("details")===t&&(n.preventDefault(),n.stopPropagation(),e.click())}}}(t,this,e))),Lt(t,"toggle",(()=>xt(t,this)),{once:!0}),Lt(t,"toggle",(()=>function(t){if(!t.hasAttribute("open"))return;for(const e of document.querySelectorAll("details[open] > details-menu")){const n=e.closest("details");n&&n!==t&&!n.contains(t)&&n.removeAttribute("open")}}(t))),this.preload?Lt(t,"mouseover",(()=>xt(t,this)),{once:!0}):kt,...Mt(t)];Tt.set(this,{subscriptions:n,loaded:!1,isComposing:!1})}disconnectedCallback(){const t=Tt.get(this);if(t){Tt.delete(this);for(const e of t.subscriptions)e.unsubscribe()}}}const Tt=new WeakMap,kt={unsubscribe(){}};function Lt(t,e,n,o=!1){return t.addEventListener(e,n,o),{unsubscribe:()=>{t.removeEventListener(e,n,o)}}}function xt(t,e){const n=e.getAttribute("src");if(!n)return;const o=Tt.get(e);if(!o)return;if(o.loaded)return;o.loaded=!0;const i=e.querySelector("include-fragment");i&&!i.hasAttribute("src")&&(i.addEventListener("loadend",(()=>Ct(t))),i.setAttribute("src",n))}function Mt(t){let e=!1;return[Lt(t,"mousedown",(()=>e=!0)),Lt(t,"keydown",(()=>e=!1)),Lt(t,"toggle",(()=>{t.hasAttribute("open")&&(Ct(t)||e||function(t){const e=document.activeElement;if(e&&Rt(e)&&t.contains(e))return;const n=St(t,!0);n&&n.focus()}(t))}))]}function Ct(t){if(!t.hasAttribute("open"))return!1;const e=t.querySelector("details-menu [autofocus]");return!!e&&(e.focus(),!0)}function St(t,e){const n=Array.from(t.querySelectorAll('[role^="menuitem"]:not([hidden]):not([disabled]):not([aria-disabled="true"])')),o=document.activeElement,i=o instanceof HTMLElement?n.indexOf(o):-1,s=e?n[i+1]:n[i-1],r=e?n[0]:n[n.length-1];return s||r}const Dt=navigator.userAgent.match(/Macintosh/);function Ht(t,e){const n=e.target;if(n instanceof Element&&n.closest("details")===t)if("click"===e.type){const e=n.closest('[role="menuitem"], [role="menuitemradio"]');if(!e)return;const o=e.querySelector("input");if("LABEL"===e.tagName&&n===o)return;"LABEL"===e.tagName&&o&&!o.checked||Ft(e,t)}else if("change"===e.type){const e=n.closest('[role="menuitemradio"], [role="menuitemcheckbox"]');e&&Ft(e,t)}}function Ft(t,e){if(t.hasAttribute("disabled")||"true"===t.getAttribute("aria-disabled"))return;const n=t.closest("details-menu");if(!n)return;n.dispatchEvent(new CustomEvent("details-menu-select",{cancelable:!0,detail:{relatedTarget:t}}))&&(!function(t,e){const n=e.querySelector("[data-menu-button]");if(!n)return;const o=function(t){if(!t)return null;const e=t.hasAttribute("data-menu-button-text")?t:t.querySelector("[data-menu-button-text]");return e?e.getAttribute("data-menu-button-text")||e.textContent:null}(t);if(o)n.textContent=o;else{const e=function(t){if(!t)return null;const e=t.hasAttribute("data-menu-button-contents")?t:t.querySelector("[data-menu-button-contents]");return e?e.innerHTML:null}(t);e&&(n.innerHTML=e)}}(t,e),function(t,e){for(const n of e.querySelectorAll('[role="menuitemradio"], [role="menuitemcheckbox"]')){const e=n.querySelector('input[type="radio"], input[type="checkbox"]');let o=(n===t).toString();e instanceof HTMLInputElement&&(o=e.indeterminate?"mixed":e.checked.toString()),n.setAttribute("aria-checked",o)}}(t,e),"menuitemcheckbox"!==t.getAttribute("role")&&$t(e),n.dispatchEvent(new CustomEvent("details-menu-selected",{detail:{relatedTarget:t}})))}function Rt(t){const e=t.getAttribute("role");return"menuitem"===e||"menuitemcheckbox"===e||"menuitemradio"===e}function $t(t){if(!t.hasAttribute("open"))return;t.removeAttribute("open");const e=t.querySelector("summary");e&&e.focus()}function Ot(t,e){const n=Tt.get(t);n&&(n.isComposing="compositionstart"===e.type)}window.customElements.get("details-menu")||(window.DetailsMenuElement=DetailsMenuElement,window.customElements.define("details-menu",DetailsMenuElement));const It=new WeakMap,Wt=new WeakMap,qt=new WeakMap;function Pt(t){const e=t.currentTarget;if(!(e instanceof ImageCropElement))return;const{box:n,image:o}=qt.get(e)||{};if(!n||!o)return;let i=0,s=0;if(t instanceof KeyboardEvent)"ArrowUp"===t.key?s=-1:"ArrowDown"===t.key?s=1:"ArrowLeft"===t.key?i=-1:"ArrowRight"===t.key&&(i=1);else if(Wt.has(e)&&t instanceof MouseEvent){const n=Wt.get(e);i=t.pageX-n.dragStartX,s=t.pageY-n.dragStartY}else if(Wt.has(e)&&t instanceof TouchEvent){const{pageX:n,pageY:o}=t.changedTouches[0],{dragStartX:r,dragStartY:a}=Wt.get(e);i=n-r,s=o-a}if(0!==i||0!==s){const t=Math.min(Math.max(0,n.offsetLeft+i),o.width-n.offsetWidth),r=Math.min(Math.max(0,n.offsetTop+s),o.height-n.offsetHeight);n.style.left=`${t}px`,n.style.top=`${r}px`,jt(e,{x:t,y:r,width:n.offsetWidth,height:n.offsetHeight})}if(t instanceof MouseEvent)Wt.set(e,{dragStartX:t.pageX,dragStartY:t.pageY});else if(t instanceof TouchEvent){const{pageX:n,pageY:o}=t.changedTouches[0];Wt.set(e,{dragStartX:n,dragStartY:o})}}function Nt(t){const e=t.target;if(!(e instanceof HTMLElement))return;const n=Bt(e);if(!(n instanceof ImageCropElement))return;const{box:o}=qt.get(n)||{};if(!o)return;const i=n.getBoundingClientRect();let s,r,a;if(t instanceof KeyboardEvent){if("Escape"===t.key)return Xt(n);if("-"===t.key&&(a=-10),"="===t.key&&(a=10),!a)return;s=o.offsetWidth+a,r=o.offsetHeight+a,It.set(n,{startX:o.offsetLeft,startY:o.offsetTop})}else if(t instanceof MouseEvent){const e=It.get(n);if(!e)return;s=t.pageX-e.startX-i.left-window.pageXOffset,r=t.pageY-e.startY-i.top-window.pageYOffset}else if(t instanceof TouchEvent){const e=It.get(n);if(!e)return;s=t.changedTouches[0].pageX-e.startX-i.left-window.pageXOffset,r=t.changedTouches[0].pageY-e.startY-i.top-window.pageYOffset}s&&r&&Ut(n,s,r,!(t instanceof KeyboardEvent))}function Bt(t){const e=t.getRootNode();return e instanceof ShadowRoot?e.host:t}function Yt(t){const e=t.currentTarget;if(!(e instanceof HTMLElement))return;const n=Bt(e);if(!(n instanceof ImageCropElement))return;const{box:o}=qt.get(n)||{};if(!o)return;const i=t.target;if(i instanceof HTMLElement)if(i.hasAttribute("data-direction")){const e=i.getAttribute("data-direction")||"";n.addEventListener("mousemove",Nt),n.addEventListener("touchmove",Nt,{passive:!0}),["nw","se"].indexOf(e)>=0&&n.classList.add("nwse"),["ne","sw"].indexOf(e)>=0&&n.classList.add("nesw"),It.set(n,{startX:o.offsetLeft+(["se","ne"].indexOf(e)>=0?0:o.offsetWidth),startY:o.offsetTop+(["se","sw"].indexOf(e)>=0?0:o.offsetHeight)}),Nt(t)}else n.addEventListener("mousemove",Pt),n.addEventListener("touchmove",Pt,{passive:!0})}function Ut(t,e,n,o=!0){let i=Math.max(Math.abs(e),Math.abs(n),10);const s=It.get(t);if(!s)return;const{box:r,image:a}=qt.get(t)||{};if(!r||!a)return;i=Math.min(i,n>0?a.height-s.startY:s.startY,e>0?a.width-s.startX:s.startX);const c=o?Math.round(Math.max(0,e>0?s.startX:s.startX-i)):r.offsetLeft,l=o?Math.round(Math.max(0,n>0?s.startY:s.startY-i)):r.offsetTop;r.style.left=`${c}px`,r.style.top=`${l}px`,r.style.width=`${i}px`,r.style.height=`${i}px`,jt(t,{x:c,y:l,width:i,height:i})}function Xt(t){const{image:e}=qt.get(t)||{};if(!e)return;const n=Math.round(e.clientWidth>e.clientHeight?e.clientHeight:e.clientWidth);It.set(t,{startX:(e.clientWidth-n)/2,startY:(e.clientHeight-n)/2}),Ut(t,n,n)}function Kt(t){const e=t.currentTarget;e instanceof ImageCropElement&&(Wt.delete(e),e.classList.remove("nwse","nesw"),e.removeEventListener("mousemove",Nt),e.removeEventListener("mousemove",Pt),e.removeEventListener("touchmove",Nt),e.removeEventListener("touchmove",Pt))}function jt(t,e){const{image:n}=qt.get(t)||{};if(!n)return;const o=n.naturalWidth/n.width;for(const n in e){const i=Math.round(e[n]*o);e[n]=i;const s=t.querySelector(`[data-image-crop-input='${n}']`);s instanceof HTMLInputElement&&(s.value=i.toString())}t.dispatchEvent(new CustomEvent("image-crop-change",{bubbles:!0,detail:e}))}class ImageCropElement extends HTMLElement{connectedCallback(){if(qt.has(this))return;const t=this.attachShadow({mode:"open"});t.innerHTML='\n<style>\n :host { touch-action: none; display: block; }\n :host(.nesw) { cursor: nesw-resize; }\n :host(.nwse) { cursor: nwse-resize; }\n :host(.nesw) .crop-box, :host(.nwse) .crop-box { cursor: inherit; }\n :host([loaded]) .crop-image { display: block; }\n :host([loaded]) ::slotted([data-loading-slot]), .crop-image { display: none; }\n\n .crop-wrapper {\n position: relative;\n font-size: 0;\n }\n .crop-container {\n user-select: none;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n position: absolute;\n overflow: hidden;\n z-index: 1;\n top: 0;\n width: 100%;\n height: 100%;\n }\n\n :host([rounded]) .crop-box {\n border-radius: 50%;\n box-shadow: 0 0 0 4000px rgba(0, 0, 0, 0.3);\n }\n .crop-box {\n position: absolute;\n border: 1px dashed #fff;\n box-sizing: border-box;\n cursor: move;\n }\n\n :host([rounded]) .crop-outline {\n outline: none;\n }\n .crop-outline {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n outline: 4000px solid rgba(0, 0, 0, .3);\n }\n\n .handle { position: absolute; }\n :host([rounded]) .handle::before { border-radius: 50%; }\n .handle:before {\n position: absolute;\n display: block;\n padding: 4px;\n transform: translate(-50%, -50%);\n content: \' \';\n background: #fff;\n border: 1px solid #767676;\n }\n .ne { top: 0; right: 0; cursor: nesw-resize; }\n .nw { top: 0; left: 0; cursor: nwse-resize; }\n .se { bottom: 0; right: 0; cursor: nwse-resize; }\n .sw { bottom: 0; left: 0; cursor: nesw-resize; }\n</style>\n<slot></slot>\n<div class="crop-wrapper">\n <img width="100%" class="crop-image" alt="">\n <div class="crop-container">\n <div data-crop-box class="crop-box">\n <div class="crop-outline"></div>\n <div data-direction="nw" class="handle nw"></div>\n <div data-direction="ne" class="handle ne"></div>\n <div data-direction="sw" class="handle sw"></div>\n <div data-direction="se" class="handle se"></div>\n </div>\n </div>\n</div>\n';const e=t.querySelector("[data-crop-box]");if(!(e instanceof HTMLElement))return;const n=t.querySelector("img");n instanceof HTMLImageElement&&(qt.set(this,{box:e,image:n}),n.addEventListener("load",(()=>{this.loaded=!0,Xt(this)})),this.addEventListener("mouseleave",Kt),this.addEventListener("touchend",Kt),this.addEventListener("mouseup",Kt),e.addEventListener("mousedown",Yt),e.addEventListener("touchstart",Yt,{passive:!0}),this.addEventListener("keydown",Pt),this.addEventListener("keydown",Nt),this.src&&(n.src=this.src))}static get observedAttributes(){return["src"]}get src(){return this.getAttribute("src")}set src(t){t?this.setAttribute("src",t):this.removeAttribute("src")}get loaded(){return this.hasAttribute("loaded")}set loaded(t){t?this.setAttribute("loaded",""):this.removeAttribute("loaded")}attributeChangedCallback(t,e,n){const{image:o}=qt.get(this)||{};"src"===t&&(this.loaded=!1,o&&(o.src=n))}}window.customElements.get("image-crop")||(window.ImageCropElement=ImageCropElement,window.customElements.define("image-crop",ImageCropElement));const zt=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Vt=["January","February","March","April","May","June","July","August","September","October","November","December"];function Zt(t){return`0${t}`.slice(-2)}function _t(t,e){const n=t.getDay(),o=t.getDate(),i=t.getMonth(),s=t.getFullYear(),r=t.getHours(),a=t.getMinutes(),c=t.getSeconds();return e.replace(/%([%aAbBcdeHIlmMpPSwyYZz])/g,(function(e){let l;switch(e[1]){case"%":return"%";case"a":return zt[n].slice(0,3);case"A":return zt[n];case"b":return Vt[i].slice(0,3);case"B":return Vt[i];case"c":return t.toString();case"d":return Zt(o);case"e":return String(o);case"H":return Zt(r);case"I":return Zt(_t(t,"%l"));case"l":return String(0===r||12===r?12:(r+12)%12);case"m":return Zt(i+1);case"M":return Zt(a);case"p":return r>11?"PM":"AM";case"P":return r>11?"pm":"am";case"S":return Zt(c);case"w":return String(n);case"y":return Zt(s%100);case"Y":return String(s);case"Z":return l=t.toString().match(/\((\w+)\)$/),l?l[1]:"";case"z":return l=t.toString().match(/\w([+-]\d\d\d\d) /),l?l[1]:""}return""}))}function Jt(t){let e;return function(){if(e)return e;if("Intl"in window)try{return e=new Intl.DateTimeFormat(void 0,t),e}catch(t){if(!(t instanceof RangeError))throw t}}}let Gt=null;const Qt=Jt({day:"numeric",month:"short"});function te(){if(null!==Gt)return Gt;const t=Qt();if(t){const e=t.format(new Date(0));return Gt=!!e.match(/^\d/),Gt}return!1}let ee=null;const ne=Jt({day:"numeric",month:"short",year:"numeric"});function oe(t){const e=t.closest("[lang]");return e instanceof HTMLElement&&e.lang?e.lang:"default"}const ie=new WeakMap;class ExtendedTimeElement extends HTMLElement{static get observedAttributes(){return["datetime","day","format","lang","hour","minute","month","second","title","weekday","year","time-zone-name"]}connectedCallback(){const t=this.getFormattedTitle();t&&!this.hasAttribute("title")&&this.setAttribute("title",t);const e=this.getFormattedDate();e&&(this.textContent=e)}attributeChangedCallback(t,e,n){const o=this.getFormattedTitle();if("datetime"===t){const t=Date.parse(n);isNaN(t)?ie.delete(this):ie.set(this,new Date(t))}const i=this.getFormattedTitle(),s=this.getAttribute("title");"title"===t||!i||s&&s!==o||this.setAttribute("title",i);const r=this.getFormattedDate();r&&(this.textContent=r)}get date(){return ie.get(this)}getFormattedTitle(){const t=this.date;if(!t)return;const e=se();if(e)return e.format(t);try{return t.toLocaleString()}catch(e){if(e instanceof RangeError)return t.toString();throw e}}getFormattedDate(){}}const se=Jt({day:"numeric",month:"short",year:"numeric",hour:"numeric",minute:"2-digit",timeZoneName:"short"}),re=new WeakMap;class LocalTimeElement extends ExtendedTimeElement{attributeChangedCallback(t,e,n){"hour"!==t&&"minute"!==t&&"second"!==t&&"time-zone-name"!==t||re.delete(this),super.attributeChangedCallback(t,e,n)}getFormattedDate(){const t=this.date;if(!t)return;return`${function(t,e){const n={weekday:{short:"%a",long:"%A"},day:{numeric:"%e","2-digit":"%d"},month:{short:"%b",long:"%B"},year:{numeric:"%Y","2-digit":"%y"}};let o=te()?"weekday day month year":"weekday month day, year";for(const e in n){const i=n[e][t.getAttribute(e)||""];o=o.replace(e,i||"")}return o=o.replace(/(\s,)|(,\s$)/,""),_t(e,o).replace(/\s+/," ").trim()}(this,t)||""} ${function(t,e){const n={},o=t.getAttribute("hour");"numeric"!==o&&"2-digit"!==o||(n.hour=o);const i=t.getAttribute("minute");"numeric"!==i&&"2-digit"!==i||(n.minute=i);const s=t.getAttribute("second");"numeric"!==s&&"2-digit"!==s||(n.second=s);const r=t.getAttribute("time-zone-name");"short"!==r&&"long"!==r||(n.timeZoneName=r);if(0===Object.keys(n).length)return;let a=re.get(t);a||(a=Jt(n),re.set(t,a));const c=a();if(c)return c.format(e);return _t(e,n.second?"%H:%M:%S":"%H:%M")}(this,t)||""}`.trim()}}window.customElements.get("local-time")||(window.LocalTimeElement=LocalTimeElement,window.customElements.define("local-time",LocalTimeElement));class ae{constructor(t,e){this.date=t,this.locale=e}toString(){const t=this.timeElapsed();if(t)return t;{const t=this.timeAhead();return t||`on ${this.formatDate()}`}}timeElapsed(){const t=(new Date).getTime()-this.date.getTime(),e=Math.round(t/1e3),n=Math.round(e/60),o=Math.round(n/60),i=Math.round(o/24);return t>=0&&i<30?this.timeAgoFromMs(t):null}timeAhead(){const t=this.date.getTime()-(new Date).getTime(),e=Math.round(t/1e3),n=Math.round(e/60),o=Math.round(n/60),i=Math.round(o/24);return t>=0&&i<30?this.timeUntil():null}timeAgo(){const t=(new Date).getTime()-this.date.getTime();return this.timeAgoFromMs(t)}timeAgoFromMs(t){const e=Math.round(t/1e3),n=Math.round(e/60),o=Math.round(n/60),i=Math.round(o/24),s=Math.round(i/30),r=Math.round(s/12);return t<0||e<10?ce(this.locale,0,"second"):e<45?ce(this.locale,-e,"second"):e<90||n<45?ce(this.locale,-n,"minute"):n<90||o<24?ce(this.locale,-o,"hour"):o<36||i<30?ce(this.locale,-i,"day"):s<18?ce(this.locale,-s,"month"):ce(this.locale,-r,"year")}microTimeAgo(){const t=(new Date).getTime()-this.date.getTime(),e=Math.round(t/1e3),n=Math.round(e/60),o=Math.round(n/60),i=Math.round(o/24),s=Math.round(i/30),r=Math.round(s/12);return n<1?"1m":n<60?`${n}m`:o<24?`${o}h`:i<365?`${i}d`:`${r}y`}timeUntil(){const t=this.date.getTime()-(new Date).getTime();return this.timeUntilFromMs(t)}timeUntilFromMs(t){const e=Math.round(t/1e3),n=Math.round(e/60),o=Math.round(n/60),i=Math.round(o/24),s=Math.round(i/30),r=Math.round(s/12);return s>=18||s>=12?ce(this.locale,r,"year"):i>=45||i>=30?ce(this.locale,s,"month"):o>=36||o>=24?ce(this.locale,i,"day"):n>=90||n>=45?ce(this.locale,o,"hour"):e>=90||e>=45?ce(this.locale,n,"minute"):ce(this.locale,e>=10?e:0,"second")}microTimeUntil(){const t=this.date.getTime()-(new Date).getTime(),e=Math.round(t/1e3),n=Math.round(e/60),o=Math.round(n/60),i=Math.round(o/24),s=Math.round(i/30),r=Math.round(s/12);return i>=365?`${r}y`:o>=24?`${i}d`:n>=60?`${o}h`:n>1?`${n}m`:"1m"}formatDate(){let t=te()?"%e %b":"%b %e";var e;return e=this.date,(new Date).getUTCFullYear()!==e.getUTCFullYear()&&(t+=function(){if(null!==ee)return ee;const t=ne();if(t){const e=t.format(new Date(0));return ee=!!e.match(/\d,/),ee}return!0}()?", %Y":" %Y"),_t(this.date,t)}formatTime(){const t=le();return t?t.format(this.date):_t(this.date,"%l:%M%P")}}function ce(t,e,n){const o=function(t,e){if("Intl"in window&&"RelativeTimeFormat"in window.Intl)try{return new Intl.RelativeTimeFormat(t,e)}catch(t){if(!(t instanceof RangeError))throw t}}(t,{numeric:"auto"});return o?o.format(e,n):function(t,e){if(0===t)switch(e){case"year":case"quarter":case"month":case"week":return`this ${e}`;case"day":return"today";case"hour":case"minute":return`in 0 ${e}s`;case"second":return"now"}else if(1===t)switch(e){case"year":case"quarter":case"month":case"week":return`next ${e}`;case"day":return"tomorrow";case"hour":case"minute":case"second":return`in 1 ${e}`}else if(-1===t)switch(e){case"year":case"quarter":case"month":case"week":return`last ${e}`;case"day":return"yesterday";case"hour":case"minute":case"second":return`1 ${e} ago`}else if(t>1)switch(e){case"year":case"quarter":case"month":case"week":case"day":case"hour":case"minute":case"second":return`in ${t} ${e}s`}else if(t<-1)switch(e){case"year":case"quarter":case"month":case"week":case"day":case"hour":case"minute":case"second":return`${-t} ${e}s ago`}throw new RangeError(`Invalid unit argument for format() '${e}'`)}(e,n)}const le=Jt({hour:"numeric",minute:"2-digit"});class RelativeTimeElement extends ExtendedTimeElement{getFormattedDate(){const t=this.date;if(t)return new ae(t,oe(this)).toString()}connectedCallback(){ue.push(this),de||(he(),de=window.setInterval(he,6e4)),super.connectedCallback()}disconnectedCallback(){const t=ue.indexOf(this);-1!==t&&ue.splice(t,1),ue.length||de&&(clearInterval(de),de=null)}}const ue=[];let de;function he(){let t,e,n;for(e=0,n=ue.length;e<n;e++)t=ue[e],t.textContent=t.getFormattedDate()||""}window.customElements.get("relative-time")||(window.RelativeTimeElement=RelativeTimeElement,window.customElements.define("relative-time",RelativeTimeElement));class TimeAgoElement extends RelativeTimeElement{getFormattedDate(){const t=this.getAttribute("format"),e=this.date;if(e)return"micro"===t?new ae(e,oe(this)).microTimeAgo():new ae(e,oe(this)).timeAgo()}}window.customElements.get("time-ago")||(window.TimeAgoElement=TimeAgoElement,window.customElements.define("time-ago",TimeAgoElement));class TimeUntilElement extends RelativeTimeElement{getFormattedDate(){const t=this.getAttribute("format"),e=this.date;if(e)return"micro"===t?new ae(e,oe(this)).microTimeUntil():new ae(e,oe(this)).timeUntil()}}function fe(t){return Array.from(t.querySelectorAll('[role="tablist"] [role="tab"]')).filter((e=>e instanceof HTMLElement&&e.closest(t.tagName)===t))}window.customElements.get("time-until")||(window.TimeUntilElement=TimeUntilElement,window.customElements.define("time-until",TimeUntilElement));class TabContainerElement extends HTMLElement{constructor(){super(),this.addEventListener("keydown",(t=>{const e=t.target;if(!(e instanceof HTMLElement))return;if(e.closest(this.tagName)!==this)return;if("tab"!==e.getAttribute("role")&&!e.closest('[role="tablist"]'))return;const n=fe(this),o=n.indexOf(n.find((t=>t.matches('[aria-selected="true"]'))));if("ArrowRight"===t.code){let t=o+1;t>=n.length&&(t=0),me(this,t)}else if("ArrowLeft"===t.code){let t=o-1;t<0&&(t=n.length-1),me(this,t)}else"Home"===t.code?(me(this,0),t.preventDefault()):"End"===t.code&&(me(this,n.length-1),t.preventDefault())})),this.addEventListener("click",(t=>{const e=fe(this);if(!(t.target instanceof Element))return;if(t.target.closest(this.tagName)!==this)return;const n=t.target.closest('[role="tab"]');if(!(n instanceof HTMLElement&&n.closest('[role="tablist"]')))return;me(this,e.indexOf(n))}))}connectedCallback(){for(const t of fe(this))t.hasAttribute("aria-selected")||t.setAttribute("aria-selected","false"),t.hasAttribute("tabindex")||("true"===t.getAttribute("aria-selected")?t.setAttribute("tabindex","0"):t.setAttribute("tabindex","-1"))}}function me(t,e){const n=fe(t),o=Array.from(t.querySelectorAll('[role="tabpanel"]')).filter((e=>e.closest(t.tagName)===t)),i=n[e],s=o[e];if(!!t.dispatchEvent(new CustomEvent("tab-container-change",{bubbles:!0,cancelable:!0,detail:{relatedTarget:s}}))){for(const t of n)t.setAttribute("aria-selected","false"),t.setAttribute("tabindex","-1");for(const t of o)t.hidden=!0,t.hasAttribute("tabindex")||t.hasAttribute("data-tab-container-no-tabstop")||t.setAttribute("tabindex","0");i.setAttribute("aria-selected","true"),i.setAttribute("tabindex","0"),i.focus(),s.hidden=!1,t.dispatchEvent(new CustomEvent("tab-container-changed",{bubbles:!0,detail:{relatedTarget:s}}))}}window.customElements.get("tab-container")||(window.TabContainerElement=TabContainerElement,window.customElements.define("tab-container",TabContainerElement));
|
1
|
+
function t(t,e,n,i){var o,s=arguments.length,r=s<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,i);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(r=(s<3?o(r):s>3?o(e,n,r):o(e,n))||r);return s>3&&r&&Object.defineProperty(e,n,r),r}function e(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?o.call(t,n):o?o.value=n:e.set(t,n),n}const i={"outside-top":["outside-bottom","outside-right","outside-left","outside-bottom"],"outside-bottom":["outside-top","outside-right","outside-left","outside-bottom"],"outside-left":["outside-right","outside-bottom","outside-top","outside-bottom"],"outside-right":["outside-left","outside-bottom","outside-top","outside-bottom"]},o={start:["end","center"],end:["start","center"],center:["end","start"]};function s(t,e,n={}){const s=function(t){let e=t.parentNode;for(;null!==e;){if(e instanceof HTMLElement&&"static"!==getComputedStyle(e).position)return e;e=e.parentNode}return document.body}(t),m=function(t){let e=t;for(;null!==e&&e!==document.body;){if("visible"!==getComputedStyle(e).overflow)break;e=e.parentNode}const n=e!==document.body&&e instanceof HTMLElement?e:document.body,i=n.getBoundingClientRect(),o=getComputedStyle(n),[s,r,a,c]=[o.borderTopWidth,o.borderLeftWidth,o.borderRightWidth,o.borderBottomWidth].map((t=>parseInt(t,10)||0));return{top:i.top+s,left:i.left+r,width:i.width-a-r,height:Math.max(i.height-s-c,n===document.body?window.innerHeight:-1/0)}}(s),p=getComputedStyle(s),b=s.getBoundingClientRect(),[g,w]=[p.borderTopWidth,p.borderLeftWidth].map((t=>parseInt(t,10)||0));return function(t,e,n,s,{side:r,align:a,allowOutOfBounds:c,anchorOffset:l,alignmentOffset:u}){const m={top:t.top-e.top,left:t.left-e.left,width:t.width,height:t.height};let p=d(n,s,r,a,l,u),b=r,g=a;if(p.top-=e.top,p.left-=e.left,!c){const c=i[r];let w=0;if(c){let t=r;for(;w<c.length&&h(t,p,m,n);){const i=c[w++];t=i,p=d(n,s,i,a,l,u),p.top-=e.top,p.left-=e.left,b=i}}const v=o[a];let E=0;if(v){let t=a;for(;E<v.length&&f(t,p,m,n);){const i=v[E++];t=i,p=d(n,s,b,i,l,u),p.top-=e.top,p.left-=e.left,g=i}}p.top<m.top&&(p.top=m.top),p.left<m.left&&(p.left=m.left),p.left+n.width>t.width+m.left&&(p.left=t.width+m.left-n.width),c&&w<c.length&&p.top+n.height>t.height+m.top&&(p.top=t.height+m.top-n.height)}return Object.assign(Object.assign({},p),{anchorSide:b,anchorAlign:g})}(m,{top:b.top+g,left:b.left+w},t.getBoundingClientRect(),e instanceof Element?e.getBoundingClientRect():e,function(t={}){var e,n,i,o,s;const d=null!==(e=t.side)&&void 0!==e?e:r,h=null!==(n=t.align)&&void 0!==n?n:a;return{side:d,align:h,anchorOffset:null!==(i=t.anchorOffset)&&void 0!==i?i:"inside-center"===d?0:c,alignmentOffset:null!==(o=t.alignmentOffset)&&void 0!==o?o:"center"!==h&&d.startsWith("inside")?l:0,allowOutOfBounds:null!==(s=t.allowOutOfBounds)&&void 0!==s?s:u}}(n))}const r="outside-bottom",a="start",c=4,l=4,u=!1;function d(t,e,n,i,o,s){const r=e.left+e.width,a=e.top+e.height;let c=-1,l=-1;return"outside-top"===n?c=e.top-o-t.height:"outside-bottom"===n?c=a+o:"outside-left"===n?l=e.left-o-t.width:"outside-right"===n&&(l=r+o),"outside-top"!==n&&"outside-bottom"!==n||(l="start"===i?e.left+s:"center"===i?e.left-(t.width-e.width)/2+s:r-t.width-s),"outside-left"!==n&&"outside-right"!==n||(c="start"===i?e.top+s:"center"===i?e.top-(t.height-e.height)/2+s:a-t.height-s),"inside-top"===n?c=e.top+o:"inside-bottom"===n?c=a-o-t.height:"inside-left"===n?l=e.left+o:"inside-right"===n?l=r-o-t.width:"inside-center"===n&&(l=(r+e.left)/2-t.width/2+o),"inside-top"===n||"inside-bottom"===n?l="start"===i?e.left+s:"center"===i?e.left-(t.width-e.width)/2+s:r-t.width-s:"inside-left"!==n&&"inside-right"!==n&&"inside-center"!==n||(c="start"===i?e.top+s:"center"===i?e.top-(t.height-e.height)/2+s:a-t.height-s),{top:c,left:l}}function h(t,e,n,i){return"outside-top"===t||"outside-bottom"===t?e.top<n.top||e.top+i.height>n.height+n.top:e.left<n.left||e.left+i.width>n.width+n.left}function f(t,e,n,i){return"end"===t?e.left<n.left:"start"===t||"center"===t?e.left+i.width>n.left+n.width||e.left<n.left:void 0}function m(t,e=!1){return function*(t,e={}){var n,i;const o=null!==(n=e.strict)&&void 0!==n&&n,s=null!==(i=e.onlyTabbable)&&void 0!==i&&i?b:p,r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:t=>t instanceof HTMLElement&&s(t,o)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});let a=null;if(!e.reverse&&s(t,o)&&(yield t),e.reverse){let t=r.lastChild();for(;t;)a=t,t=r.lastChild()}else a=r.firstChild();for(;a instanceof HTMLElement;)yield a,a=e.reverse?r.previousNode():r.nextNode();e.reverse&&s(t,o)&&(yield t)}(t,{reverse:e,strict:!0,onlyTabbable:!0}).next().value}function p(t,e=!1){const n=["BUTTON","INPUT","SELECT","TEXTAREA","OPTGROUP","OPTION","FIELDSET"].includes(t.tagName)&&t.disabled,i=t.hidden,o=t instanceof HTMLInputElement&&"hidden"===t.type,s=t.classList.contains("sentinel");if(n||i||o||s)return!1;if(e){const e=0===t.offsetWidth||0===t.offsetHeight,n=["hidden","collapse"].includes(getComputedStyle(t).visibility),i=0===t.getClientRects().length;if(e||n||i)return!1}return null!=t.getAttribute("tabindex")||!(t instanceof HTMLAnchorElement&&null==t.getAttribute("href"))&&-1!==t.tabIndex}function b(t,e=!1){return p(t,e)&&"-1"!==t.getAttribute("tabindex")}let g=!1;function w(){}try{const t=Object.create({},{signal:{get(){g=!0}}});window.addEventListener("test",w,t),window.removeEventListener("test",w,t)}catch(t){}g||(function(){if("undefined"==typeof window)return;const t=EventTarget.prototype.addEventListener;EventTarget.prototype.addEventListener=function(e,n,i){return"object"==typeof i&&"signal"in i&&i.signal instanceof AbortSignal&&t.call(i.signal,"abort",(()=>{this.removeEventListener(e,n,i)})),t.call(this,e,n,i)}}(),g=!0);const v=[];let E;function y(t,e,n){const i=new AbortController,o=null!=n?n:i.signal;t.setAttribute("data-focus-trap","active");const s=document.createElement("span");s.setAttribute("class","sentinel"),s.setAttribute("tabindex","0"),s.setAttribute("aria-hidden","true"),s.onfocus=()=>{const e=m(t,!0);null==e||e.focus()};const r=document.createElement("span");let a;function c(n){if(n instanceof HTMLElement&&document.contains(t)){if(t.contains(n))return void(a=n);if(a&&b(a)&&t.contains(a))return void a.focus();if(e&&t.contains(e))return void e.focus();{const e=m(t);return void(null==e||e.focus())}}}r.setAttribute("class","sentinel"),r.setAttribute("tabindex","0"),r.setAttribute("aria-hidden","true"),r.onfocus=()=>{const e=m(t);null==e||e.focus()},t.prepend(s),t.append(r);const l=function(t){const e=new AbortController;return t.addEventListener("abort",(()=>{e.abort()})),e}(o);if(E){const t=E;E.container.setAttribute("data-focus-trap","suspended"),E.controller.abort(),v.push(t)}l.signal.addEventListener("abort",(()=>{E=void 0})),o.addEventListener("abort",(()=>{t.removeAttribute("data-focus-trap");const e=t.getElementsByClassName("sentinel");for(;e.length>0;)e[0].remove();const n=v.findIndex((e=>e.container===t));n>=0&&v.splice(n,1),function(){const t=v.pop();t&&y(t.container,t.initialFocus,t.originalSignal)}()})),document.addEventListener("focus",(t=>{c(t.target)}),{signal:l.signal,capture:!0}),c(document.activeElement),E={container:t,controller:l,initialFocus:e,originalSignal:o};const u=v.findIndex((e=>e.container===t));if(u>=0&&v.splice(u,1),!n)return i}var A,T,k,L,x,M,C;function S(t){document.activeElement!==t&&(null==t||t.focus())}class ModalDialogElement extends HTMLElement{constructor(){super(...arguments),A.add(this),T.set(this,new AbortController),k.set(this,null),L.set(this,void 0),x.set(this,!0)}get open(){return this.hasAttribute("open")}set open(t){var i,o,s,r;if(t){if(this.open)return;this.setAttribute("open",""),null===(i=e(this,A,"a",M))||void 0===i||i.classList.remove("Overlay--hidden"),document.body.style.overflow="hidden",e(this,T,"f").signal.aborted&&n(this,T,new AbortController,"f"),y(this,void 0,e(this,T,"f").signal)}else{if(!this.open)return;this.removeAttribute("open"),null===(o=e(this,A,"a",M))||void 0===o||o.classList.add("Overlay--hidden"),document.body.style.overflow="initial",e(this,T,"f").abort();const t=(null===(s=e(this,L,"f"))||void 0===s?void 0:s.closest("details"))||(null===(r=e(this,L,"f"))||void 0===r?void 0:r.closest("action-menu"));S(t?m(t):e(this,L,"f")),n(this,L,void 0,"f")}}get showButtons(){return document.querySelectorAll(`button[data-show-dialog-id='${this.id}']`)}connectedCallback(){this.hasAttribute("role")||this.setAttribute("role","dialog");const{signal:t}=n(this,k,new AbortController,"f");this.ownerDocument.addEventListener("click",(t=>{const e=t.target,i=e.closest(this.tagName)!==this,o=null==e?void 0:e.closest("button");if(!o)return void(i&&this.close());let s=o.getAttribute("data-close-dialog-id");s===this.id&&this.close(),s=o.getAttribute("data-submit-dialog-id"),s===this.id&&this.close(!0),s=o.getAttribute("data-show-dialog-id"),s===this.id&&(t.stopPropagation(),n(this,L,o,"f"),this.show())}),{signal:t}),this.addEventListener("keydown",(t=>e(this,A,"m",C).call(this,t)))}disconnectedCallback(){var t;null===(t=e(this,k,"f"))||void 0===t||t.abort()}show(){this.open=!0}close(t=!1){if(!1===this.open)return;const e=new Event(t?"close":"cancel");this.dispatchEvent(e),this.open=!1}}T=new WeakMap,k=new WeakMap,L=new WeakMap,x=new WeakMap,A=new WeakSet,M=function(){var t;return(null===(t=this.parentElement)||void 0===t?void 0:t.hasAttribute("data-modal-dialog-overlay"))?this.parentElement:null},C=function(t){if(t instanceof KeyboardEvent&&!t.isComposing)switch(t.key){case"Escape":this.open&&(this.close(),t.preventDefault(),t.stopPropagation())}},window.customElements.get("modal-dialog")||(window.ModalDialogElement=ModalDialogElement,window.customElements.define("modal-dialog",ModalDialogElement));const D=new WeakSet;function H(t){$(t),F(t)}const R=new WeakMap;function F(t=document){if(R.has(t))return R.get(t);let e=!1;const n=new MutationObserver((t=>{for(const e of t)if("attributes"===e.type&&e.target instanceof Element)W(e.target);else if("childList"===e.type&&e.addedNodes.length)for(const t of e.addedNodes)t instanceof Element&&$(t)}));n.observe(t,{childList:!0,subtree:!0,attributeFilter:["data-action"]});const i={get closed(){return e},unsubscribe(){e=!0,R.delete(t),n.disconnect()}};return R.set(t,i),i}function $(t){for(const e of t.querySelectorAll("[data-action]"))W(e);t instanceof Element&&t.hasAttribute("data-action")&&W(t)}function O(t){const e=t.currentTarget;for(const n of I(e))if(t.type===n.type){const i=e.closest(n.tag);D.has(i)&&"function"==typeof i[n.method]&&i[n.method](t);const o=e.getRootNode();if(o instanceof ShadowRoot&&D.has(o.host)&&o.host.matches(n.tag)){const e=o.host;"function"==typeof e[n.method]&&e[n.method](t)}}}function*I(t){for(const e of(t.getAttribute("data-action")||"").trim().split(/\s+/)){const t=e.lastIndexOf(":"),n=Math.max(0,e.lastIndexOf("#"))||e.length;yield{type:e.slice(0,t),tag:e.slice(t+1,n),method:e.slice(n+1)||"handleEvent"}||"handleEvent"}}function W(t){for(const e of I(t))t.addEventListener(e.type,O)}const q=t=>String("symbol"==typeof t?t.description:t).replace(/([A-Z]($|[a-z]))/g,"-$1").replace(/--/g,"-").replace(/^-|-$/,"").toLowerCase(),P=(t,e="property")=>{const n=q(t);if(!n.includes("-"))throw new DOMException(`${e}: ${String(t)} is not a valid ${e} name`,"SyntaxError");return n};const N=new WeakSet;function B(t,e){if(N.has(t))return;N.add(t);const n=Object.getPrototypeOf(t),i=n?.constructor?.attrPrefix??"data-";e||(e=X(n,"attr"));for(const n of e){const e=t[n],o=P(`${i}${n}`);let s={configurable:!0,get(){return this.getAttribute(o)||""},set(t){this.setAttribute(o,t||"")}};"number"==typeof e?s={configurable:!0,get(){return Number(this.getAttribute(o)||0)},set(t){this.setAttribute(o,t)}}:"boolean"==typeof e&&(s={configurable:!0,get(){return this.hasAttribute(o)},set(t){this.toggleAttribute(o,t)}}),Object.defineProperty(t,n,s),n in t&&!t.hasAttribute(o)&&s.set.call(t,e)}}const Y=Symbol.for("catalyst");class U{constructor(t){const e=this,n=t.prototype.connectedCallback;t.prototype.connectedCallback=function(){e.connectedCallback(this,n)};const i=t.prototype.disconnectedCallback;t.prototype.disconnectedCallback=function(){e.disconnectedCallback(this,i)};const o=t.prototype.attributeChangedCallback;t.prototype.attributeChangedCallback=function(t,n,i){e.attributeChangedCallback(this,t,n,i,o)};let s=t.observedAttributes||[];Object.defineProperty(t,"observedAttributes",{configurable:!0,get(){return e.observedAttributes(this,s)},set(t){s=t}}),function(t){let e=t.observedAttributes||[];const n=t.attrPrefix??"data-",i=t=>P(`${n}${t}`);Object.defineProperty(t,"observedAttributes",{configurable:!0,get:()=>[...X(t.prototype,"attr")].map(i).concat(e),set(t){e=t}})}(t),function(t){const e=q(t.name).replace(/-element$/,"");try{window.customElements.define(e,t),window[t.name]=customElements.get(e)}catch(t){if(!(t instanceof DOMException&&"NotSupportedError"===t.name))throw t}}(t)}observedAttributes(t,e){return e}connectedCallback(t,e){t.toggleAttribute("data-catalyst",!0),customElements.upgrade(t),function(t){for(const e of t.querySelectorAll("template[data-shadowroot]"))e.parentElement===t&&t.attachShadow({mode:"closed"===e.getAttribute("data-shadowroot")?"closed":"open"}).append(e.content.cloneNode(!0))}(t),B(t),function(t){D.add(t),t.shadowRoot&&H(t.shadowRoot),$(t),F(t.ownerDocument)}(t),e?.call(t),t.shadowRoot&&H(t.shadowRoot)}disconnectedCallback(t,e){e?.call(t)}attributeChangedCallback(t,e,n,i,o){B(t),"data-catalyst"!==e&&o&&o.call(t,e,n,i)}}function X(t,e){if(!Object.prototype.hasOwnProperty.call(t,Y)){const e=t[Y],n=t[Y]=new Map;if(e)for(const[t,i]of e)n.set(t,new Set(i))}const n=t[Y];return n.has(e)||n.set(e,new Set),n.get(e)}function K(t,e){X(t,"target").add(e),Object.defineProperty(t,e,{configurable:!0,get(){return function(t,e){const n=t.tagName.toLowerCase();if(t.shadowRoot)for(const i of t.shadowRoot.querySelectorAll(`[data-target~="${n}.${e}"]`))if(!i.closest(n))return i;for(const i of t.querySelectorAll(`[data-target~="${n}.${e}"]`))if(i.closest(n)===t)return i}(this,e)}})}function j(t,e=0,{start:n=!1,middle:i=!1,once:o=!1}={}){return function(t,e=0,{start:n=!0,middle:i=!0,once:o=!1}={}){let s,r=0,a=!1;function c(...l){if(a)return;const u=Date.now()-r;r=Date.now(),n?(n=!1,t.apply(this,l),o&&c.cancel()):(i&&u<e||!i)&&(clearTimeout(s),s=setTimeout((()=>{r=Date.now(),t.apply(this,l),o&&c.cancel()}),i?e-u:e))}return c.cancel=()=>{clearTimeout(s),a=!0},c}(t,e,{start:n,middle:i,once:o})}new Promise((t=>{"loading"!==document.readyState?t():document.addEventListener("readystatechange",(()=>t()),{once:!0})})),new Promise((t=>{const e=new AbortController;e.signal.addEventListener("abort",(()=>t()));const n={once:!0,passive:!0,signal:e.signal},i=()=>e.abort();document.addEventListener("mousedown",i,n),document.addEventListener("touchstart",i,n),document.addEventListener("keydown",i,n),document.addEventListener("pointerdown",i,n)}));let z=class ToggleSwitchElement extends HTMLElement{get src(){const t=this.getAttribute("src");if(!t)return null;const e=this.ownerDocument.createElement("a");return e.href=t,e.href}get csrf(){const t=this.querySelector("[data-csrf]");return this.getAttribute("csrf")||t instanceof HTMLInputElement&&t.value||null}get csrfField(){return this.getAttribute("csrf-field")||"authenticity_token"}isRemote(){return null!=this.src}toggle(){this.isRemote()?(this.setLoadingState(),this.check()):this.performToggle()}turnOn(){this.isDisabled()||(this.switch.setAttribute("aria-checked","true"),this.classList.add("ToggleSwitch--checked"))}turnOff(){this.isDisabled()||(this.switch.setAttribute("aria-checked","false"),this.classList.remove("ToggleSwitch--checked"))}isOn(){return"true"===this.switch.getAttribute("aria-checked")}isOff(){return!this.isOn()}isDisabled(){return"true"===this.switch.getAttribute("aria-disabled")}disable(){this.switch.setAttribute("aria-disabled","true")}enable(){this.switch.setAttribute("aria-disabled","false")}performToggle(){this.isOn()?this.turnOff():this.turnOn()}setLoadingState(){this.disable(),this.errorIcon.setAttribute("hidden","hidden"),this.loadingSpinner.removeAttribute("hidden")}setSuccessState(){this.setFinishedState(!1)}setErrorState(){this.setFinishedState(!0)}setFinishedState(t){t&&this.errorIcon.removeAttribute("hidden"),this.loadingSpinner.setAttribute("hidden","hidden"),this.enable()}async check(){const t=new FormData;this.csrf&&t.append(this.csrfField,this.csrf),t.append("value",this.isOn()?"1":"0");try{if(!this.src)throw new Error("invalid src");(await fetch(this.src,{credentials:"same-origin",method:"POST",headers:{"Requested-With":"XMLHttpRequest"},body:t})).ok?(this.setSuccessState(),this.performToggle()):this.setErrorState()}catch(t){this.setErrorState()}}};var V,Z,_,J,G,Q,tt;t([K],z.prototype,"switch",void 0),t([K],z.prototype,"loadingSpinner",void 0),t([K],z.prototype,"errorIcon",void 0),t([function(t=0,e={}){return(n,i,o)=>{if(!o||"function"!=typeof o.value)throw new Error("debounce can only decorate functions");const s=o.value;o.value=j(s,t,e),Object.defineProperty(n,i,o)}}(300)],z.prototype,"check",null),z=t([function(t){new U(t)}],z),window.customElements.get("toggle-switch")||(window.ToggleSwitchElement=z,window.customElements.define("toggle-switch",z));const et=["tooltip-n","tooltip-s","tooltip-e","tooltip-w","tooltip-ne","tooltip-se","tooltip-nw","tooltip-sw"];class ToolTipElement extends HTMLElement{constructor(){super(...arguments),V.add(this),Z.set(this,void 0),_.set(this,"center"),J.set(this,"outside-bottom"),G.set(this,!1)}styles(){return'\n :host {\n position: absolute;\n z-index: 1000000;\n padding: .5em .75em;\n font: normal normal 11px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";\n -webkit-font-smoothing: subpixel-antialiased;\n color: var(--color-fg-on-emphasis);\n text-align: center;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-wrap: break-word;\n white-space: pre;\n background: var(--color-neutral-emphasis-plus);\n border-radius: 6px;\n opacity: 0;\n max-width: 250px;\n word-wrap: break-word;\n white-space: normal;\n width: max-content;\n }\n\n :host:before{\n position: absolute;\n z-index: 1000001;\n color: var(--color-neutral-emphasis-plus);\n content: "";\n border: 6px solid transparent;\n opacity: 0\n }\n\n @keyframes tooltip-appear {\n from {\n opacity: 0\n }\n to {\n opacity: 1\n }\n }\n\n :host:after{\n position: absolute;\n display: block;\n right: 0;\n left: 0;\n height: 12px;\n content: ""\n }\n\n :host(.tooltip-open),\n :host(.tooltip-open):before {\n animation-name: tooltip-appear;\n animation-duration: .1s;\n animation-fill-mode: forwards;\n animation-timing-function: ease-in;\n animation-delay: .4s\n }\n\n :host(.tooltip-s):before,\n :host(.tooltip-n):before {\n right: 50%;\n margin-right: -6px;\n }\n\n :host(.tooltip-s):before,\n :host(.tooltip-se):before,\n :host(.tooltip-sw):before {\n bottom: 100%;\n border-bottom-color: var(--color-neutral-emphasis-plus)\n }\n\n :host(.tooltip-s):after,\n :host(.tooltip-se):after,\n :host(.tooltip-sw):after {\n bottom: 100%\n }\n\n :host(.tooltip-n):before,\n :host(.tooltip-ne):before,\n :host(.tooltip-nw):before {\n top: 100%;\n border-top-color: var(--color-neutral-emphasis-plus)\n }\n\n :host(.tooltip-n):after,\n :host(.tooltip-ne):after,\n :host(.tooltip-nw):after {\n top: 100%\n }\n\n :host(.tooltip-se):before,\n :host(.tooltip-ne):before {\n left: 0;\n margin-left: 6px;\n }\n\n :host(.tooltip-sw):before,\n :host(.tooltip-nw):before {\n right: 0;\n margin-right: 6px;\n }\n\n :host(.tooltip-w):before {\n top: 50%;\n bottom: 50%;\n left: 100%;\n margin-top: -6px;\n border-left-color: var(--color-neutral-emphasis-plus)\n }\n\n :host(.tooltip-e):before {\n top: 50%;\n right: 100%;\n bottom: 50%;\n margin-top: -6px;\n border-right-color: var(--color-neutral-emphasis-plus)\n }\n '}get htmlFor(){return this.getAttribute("for")||""}set htmlFor(t){this.setAttribute("for",t)}get type(){return"label"===this.getAttribute("data-type")?"label":"description"}set type(t){this.setAttribute("data-type",t)}get direction(){return this.getAttribute("data-direction")||"s"}set direction(t){this.setAttribute("data-direction",t)}get control(){return this.ownerDocument.getElementById(this.htmlFor)}set hiddenFromView(t){this.classList.toggle("sr-only",t),this.isConnected&&e(this,V,"m",Q).call(this)}get hiddenFromView(){return this.classList.contains("sr-only")}connectedCallback(){var t;if(!this.shadowRoot){this.attachShadow({mode:"open"}).innerHTML=`\n <style>\n ${this.styles()}\n </style>\n <slot></slot>\n `}if(this.hiddenFromView=!0,n(this,G,!0,"f"),this.id||(this.id=`tooltip-${Date.now()}-${(1e4*Math.random()).toFixed(0)}`),!this.control)return;this.setAttribute("role","tooltip"),null===(t=e(this,Z,"f"))||void 0===t||t.abort(),n(this,Z,new AbortController,"f");const{signal:i}=e(this,Z,"f");this.addEventListener("mouseleave",this,{signal:i}),this.control.addEventListener("mouseenter",this,{signal:i}),this.control.addEventListener("mouseleave",this,{signal:i}),this.control.addEventListener("focus",this,{signal:i}),this.control.addEventListener("blur",this,{signal:i}),this.ownerDocument.addEventListener("keydown",this,{signal:i}),e(this,V,"m",Q).call(this)}disconnectedCallback(){var t;null===(t=e(this,Z,"f"))||void 0===t||t.abort()}handleEvent(t){this.control&&("mouseenter"!==t.type&&"focus"!==t.type||!this.hiddenFromView?"blur"===t.type||"mouseleave"===t.type&&t.relatedTarget!==this.control&&t.relatedTarget!==this?this.hiddenFromView=!0:"keydown"!==t.type||"Escape"!==t.key||this.hiddenFromView||(this.hiddenFromView=!0):this.hiddenFromView=!1)}attributeChangedCallback(t){if("id"===t||"data-type"===t){if(!this.id||!this.control)return;if("label"===this.type){let t=this.control.getAttribute("aria-labelledby");t=t?t.split(" ").includes(this.id)?`${t}`:`${t} ${this.id}`:this.id,this.control.setAttribute("aria-labelledby",t),this.setAttribute("aria-hidden","true")}else{let t=this.control.getAttribute("aria-describedby");t=t?t.split(" ").includes(this.id)?`${t}`:`${t} ${this.id}`:this.id,this.control.setAttribute("aria-describedby",t)}}else if("data-direction"===t){this.classList.remove(...et);const t=this.direction;"n"===t?(n(this,_,"center","f"),n(this,J,"outside-top","f")):"ne"===t?(n(this,_,"start","f"),n(this,J,"outside-top","f")):"e"===t?(n(this,_,"center","f"),n(this,J,"outside-right","f")):"se"===t?(n(this,_,"start","f"),n(this,J,"outside-bottom","f")):"s"===t?(n(this,_,"center","f"),n(this,J,"outside-bottom","f")):"sw"===t?(n(this,_,"end","f"),n(this,J,"outside-bottom","f")):"w"===t?(n(this,_,"center","f"),n(this,J,"outside-left","f")):"nw"===t&&(n(this,_,"end","f"),n(this,J,"outside-top","f"))}}}Z=new WeakMap,_=new WeakMap,J=new WeakMap,G=new WeakMap,V=new WeakSet,Q=function(){if(this.hiddenFromView)this.classList.remove("tooltip-open",...et);else{this.classList.add("tooltip-open");for(const t of this.ownerDocument.querySelectorAll(this.tagName))t!==this&&(t.hiddenFromView=!0);e(this,V,"m",tt).call(this)}},tt=function(){if(!this.control)return;if(!e(this,G,"f")||this.hiddenFromView)return;this.style.left="0px";const t=s(this,this.control,{side:e(this,J,"f"),align:e(this,_,"f"),anchorOffset:10}),n=t.anchorSide,i=t.anchorAlign;this.style.top=`${t.top}px`,this.style.left=`${t.left}px`;let o="s";o="outside-left"===n?"w":"outside-right"===n?"e":"outside-top"===n?"center"===i?"n":"start"===i?"ne":"nw":"center"===i?"s":"start"===i?"se":"sw",this.classList.add(`tooltip-${o}`)},ToolTipElement.observedAttributes=["data-type","data-direction","id"],window.customElements.get("tool-tip")||(window.ToolTipElement=ToolTipElement,window.customElements.define("tool-tip",ToolTipElement));const nt=!!navigator.userAgent.match(/Macintosh/);class it{constructor(t,e){this.input=t,this.list=e,this.isComposing=!1,e.id||(e.id=`combobox-${Math.random().toString().slice(2,6)}`),this.keyboardEventHandler=t=>function(t,e){if(t.shiftKey||t.metaKey||t.altKey)return;if(!nt&&t.ctrlKey)return;if(e.isComposing)return;switch(t.key){case"Enter":case"Tab":(function(t,e){const n=e.querySelector('[aria-selected="true"]');return!!n&&("true"===n.getAttribute("aria-disabled")||n.click(),!0)})(e.input,e.list)&&t.preventDefault();break;case"Escape":e.clearSelection();break;case"ArrowDown":e.navigate(1),t.preventDefault();break;case"ArrowUp":e.navigate(-1),t.preventDefault();break;case"n":nt&&t.ctrlKey&&(e.navigate(1),t.preventDefault());break;case"p":nt&&t.ctrlKey&&(e.navigate(-1),t.preventDefault());break;default:if(t.ctrlKey)break;e.clearSelection()}}(t,this),this.compositionEventHandler=t=>function(t,e){e.isComposing="compositionstart"===t.type;if(!document.getElementById(e.input.getAttribute("aria-controls")||""))return;e.clearSelection()}(t,this),this.inputHandler=this.clearSelection.bind(this),t.setAttribute("role","combobox"),t.setAttribute("aria-controls",e.id),t.setAttribute("aria-expanded","false"),t.setAttribute("aria-autocomplete","list"),t.setAttribute("aria-haspopup","listbox")}destroy(){this.clearSelection(),this.stop(),this.input.removeAttribute("role"),this.input.removeAttribute("aria-controls"),this.input.removeAttribute("aria-expanded"),this.input.removeAttribute("aria-autocomplete"),this.input.removeAttribute("aria-haspopup")}start(){this.input.setAttribute("aria-expanded","true"),this.input.addEventListener("compositionstart",this.compositionEventHandler),this.input.addEventListener("compositionend",this.compositionEventHandler),this.input.addEventListener("input",this.inputHandler),this.input.addEventListener("keydown",this.keyboardEventHandler),this.list.addEventListener("click",ot)}stop(){this.clearSelection(),this.input.setAttribute("aria-expanded","false"),this.input.removeEventListener("compositionstart",this.compositionEventHandler),this.input.removeEventListener("compositionend",this.compositionEventHandler),this.input.removeEventListener("input",this.inputHandler),this.input.removeEventListener("keydown",this.keyboardEventHandler),this.list.removeEventListener("click",ot)}navigate(t=1){const e=Array.from(this.list.querySelectorAll('[aria-selected="true"]')).filter(st)[0],n=Array.from(this.list.querySelectorAll('[role="option"]')).filter(st),i=n.indexOf(e);if(i===n.length-1&&1===t||0===i&&-1===t)return this.clearSelection(),void this.input.focus();let o=1===t?0:n.length-1;if(e&&i>=0){const e=i+t;e>=0&&e<n.length&&(o=e)}const s=n[o];if(s)for(const t of n)s===t?(this.input.setAttribute("aria-activedescendant",s.id),s.setAttribute("aria-selected","true"),rt(this.list,s)):t.setAttribute("aria-selected","false")}clearSelection(){this.input.removeAttribute("aria-activedescendant");for(const t of this.list.querySelectorAll('[aria-selected="true"]'))t.setAttribute("aria-selected","false")}}function ot(t){if(!(t.target instanceof Element))return;const e=t.target.closest('[role="option"]');e&&"true"!==e.getAttribute("aria-disabled")&&function(t){t.dispatchEvent(new CustomEvent("combobox-commit",{bubbles:!0}))}(e)}function st(t){return!t.hidden&&!(t instanceof HTMLInputElement&&"hidden"===t.type)&&(t.offsetWidth>0||t.offsetHeight>0)}function rt(t,e){(function(t,e){const n=t.scrollTop,i=n+t.clientHeight,o=e.offsetTop,s=o+e.clientHeight;return o>=n&&s<=i})(t,e)||(t.scrollTop=e.offsetTop)}const at=window.testScreenReaderDelay||100;class ct{constructor(t,e,n,i=!1){var o;if(this.container=t,this.input=e,this.results=n,this.combobox=new it(e,n),this.feedback=document.getElementById(`${this.results.id}-feedback`),this.autoselectEnabled=i,this.clearButton=document.getElementById(`${this.input.id||this.input.name}-clear`),this.clientOptions=n.querySelectorAll("[role=option]"),this.feedback&&(this.feedback.setAttribute("aria-live","polite"),this.feedback.setAttribute("aria-atomic","true")),this.clearButton&&!this.clearButton.getAttribute("aria-label")){const t=document.querySelector(`label[for="${this.input.name}"]`);this.clearButton.setAttribute("aria-label","clear:"),this.clearButton.setAttribute("aria-labelledby",`${this.clearButton.id} ${(null==t?void 0:t.id)||""}`)}this.input.getAttribute("aria-expanded")||this.input.setAttribute("aria-expanded","false"),this.results.hidden=!0,this.results.setAttribute("aria-label","results"),this.input.setAttribute("autocomplete","off"),this.input.setAttribute("spellcheck","false"),this.interactingWithList=!1,this.onInputChange=function(t,e=0){let n;return function(...i){clearTimeout(n),n=window.setTimeout((()=>{clearTimeout(n),t(...i)}),e)}}(this.onInputChange.bind(this),300),this.onResultsMouseDown=this.onResultsMouseDown.bind(this),this.onInputBlur=this.onInputBlur.bind(this),this.onInputFocus=this.onInputFocus.bind(this),this.onKeydown=this.onKeydown.bind(this),this.onCommit=this.onCommit.bind(this),this.handleClear=this.handleClear.bind(this),this.input.addEventListener("keydown",this.onKeydown),this.input.addEventListener("focus",this.onInputFocus),this.input.addEventListener("blur",this.onInputBlur),this.input.addEventListener("input",this.onInputChange),this.results.addEventListener("mousedown",this.onResultsMouseDown),this.results.addEventListener("combobox-commit",this.onCommit),null===(o=this.clearButton)||void 0===o||o.addEventListener("click",this.handleClear)}destroy(){this.input.removeEventListener("keydown",this.onKeydown),this.input.removeEventListener("focus",this.onInputFocus),this.input.removeEventListener("blur",this.onInputBlur),this.input.removeEventListener("input",this.onInputChange),this.results.removeEventListener("mousedown",this.onResultsMouseDown),this.results.removeEventListener("combobox-commit",this.onCommit)}handleClear(t){t.preventDefault(),"true"===this.input.getAttribute("aria-expanded")&&(this.input.setAttribute("aria-expanded","false"),this.updateFeedbackForScreenReaders("Results hidden.")),this.input.value="",this.container.value="",this.input.focus(),this.input.dispatchEvent(new Event("change")),this.container.open=!1}onKeydown(t){if("Enter"===t.key&&this.container.open&&this.autoselectEnabled){const e=this.results.children[0];e&&(t.stopPropagation(),t.preventDefault(),this.onCommit({target:e}))}if("Escape"===t.key&&this.container.open)this.container.open=!1,t.stopPropagation(),t.preventDefault();else if(t.altKey&&"ArrowUp"===t.key&&this.container.open)this.container.open=!1,t.stopPropagation(),t.preventDefault();else if(t.altKey&&"ArrowDown"===t.key&&!this.container.open){if(!this.input.value.trim())return;this.container.open=!0,t.stopPropagation(),t.preventDefault()}}onInputFocus(){this.fetchResults()}onInputBlur(){this.interactingWithList?this.interactingWithList=!1:this.container.open=!1}onCommit({target:t}){const e=t;if(!(e instanceof HTMLElement))return;if(this.container.open=!1,e instanceof HTMLAnchorElement)return;const n=e.getAttribute("data-autocomplete-value")||e.textContent;this.updateFeedbackForScreenReaders(`${e.textContent||""} selected.`),this.container.value=n,n||this.updateFeedbackForScreenReaders("Results hidden.")}onResultsMouseDown(){this.interactingWithList=!0}onInputChange(){this.feedback&&this.feedback.textContent&&(this.feedback.textContent=""),this.container.removeAttribute("value"),this.fetchResults()}identifyOptions(){let t=0;for(const e of this.results.querySelectorAll('[role="option"]:not([id])'))e.id=`${this.results.id}-option-${t++}`}updateFeedbackForScreenReaders(t){setTimeout((()=>{this.feedback&&(this.feedback.textContent=t)}),at)}fetchResults(){const t=this.input.value.trim();if(!t)return void(this.container.open=!1);const e=this.container.src;if(!e)return;const n=new URL(e,window.location.href),i=new URLSearchParams(n.search.slice(1));i.append("q",t),n.search=i.toString(),this.container.dispatchEvent(new CustomEvent("loadstart")),this.container.fetchResult(this.input,n.toString()).then((t=>{this.results.innerHTML=t,this.identifyOptions();const e=this.results.querySelectorAll('[role="option"]'),n=!!e.length,i=e.length,[o]=e,s=null==o?void 0:o.textContent;this.autoselectEnabled&&s?this.updateFeedbackForScreenReaders(`${i} results. ${s} is the top result: Press Enter to activate.`):this.updateFeedbackForScreenReaders(`${i||"No"} results.`),this.container.open=n,this.container.dispatchEvent(new CustomEvent("load")),this.container.dispatchEvent(new CustomEvent("loadend"))})).catch((()=>{this.container.dispatchEvent(new CustomEvent("error")),this.container.dispatchEvent(new CustomEvent("loadend"))}))}open(){this.results.hidden&&(this.combobox.start(),this.results.hidden=!1)}close(){this.results.hidden||(this.combobox.stop(),this.results.hidden=!0)}}class lt extends CustomEvent{constructor(t,e){super(t,e),this.relatedTarget=e.relatedTarget}}const ut=new WeakMap;function dt(t,e){const n=new XMLHttpRequest;return n.open("GET",e,!0),n.setRequestHeader("Accept","text/fragment+html"),function(t,e){const n=ut.get(t);n&&n.abort();ut.set(t,e);const i=()=>ut.delete(t),o=function(t){return new Promise(((e,n)=>{t.onload=function(){t.status>=200&&t.status<300?e(t.responseText):n(new Error(t.responseText))},t.onerror=n,t.send()}))}(e);return o.then(i,i),o}(t,n)}const ht=new WeakMap;class AutocompleteElement extends HTMLElement{constructor(){super(...arguments),this.fetchResult=dt}connectedCallback(){const t=this.getAttribute("for");if(!t)return;const e=this.querySelector("input"),n=document.getElementById(t);if(!(e instanceof HTMLInputElement&&n))return;const i="true"===this.getAttribute("data-autoselect");ht.set(this,new ct(this,e,n,i)),n.setAttribute("role","listbox")}disconnectedCallback(){const t=ht.get(this);t&&(t.destroy(),ht.delete(this))}get src(){return this.getAttribute("src")||""}set src(t){this.setAttribute("src",t)}get value(){return this.getAttribute("value")||""}set value(t){this.setAttribute("value",t)}get open(){return this.hasAttribute("open")}set open(t){t?this.setAttribute("open",""):this.removeAttribute("open")}static get observedAttributes(){return["open","value"]}attributeChangedCallback(t,e,n){if(e===n)return;const i=ht.get(this);if(i)switch(t){case"open":null===n?i.close():i.open();break;case"value":null!==n&&(i.input.value=n),this.dispatchEvent(new lt("auto-complete-change",{bubbles:!0,relatedTarget:i.input}))}}}function ft(t){if("clipboard"in navigator)return navigator.clipboard.writeText(t.textContent);const e=getSelection();if(null==e)return Promise.reject(new Error);e.removeAllRanges();const n=document.createRange();return n.selectNodeContents(t),e.addRange(n),document.execCommand("copy"),e.removeAllRanges(),Promise.resolve()}function mt(t){if("clipboard"in navigator)return navigator.clipboard.writeText(t);const e=document.body;if(!e)return Promise.reject(new Error);const n=function(t){const e=document.createElement("pre");return e.style.width="1px",e.style.height="1px",e.style.position="fixed",e.style.top="5px",e.textContent=t,e}(t);return e.appendChild(n),ft(n),e.removeChild(n),Promise.resolve()}function pt(t){const e=t.getAttribute("for"),n=t.getAttribute("value");function i(){t.dispatchEvent(new CustomEvent("clipboard-copy",{bubbles:!0}))}if(n)mt(n).then(i);else if(e){const n="getRootNode"in Element.prototype?t.getRootNode():t.ownerDocument;if(!(n instanceof Document||"ShadowRoot"in window&&n instanceof ShadowRoot))return;const s=n.getElementById(e);s&&(o=s,o instanceof HTMLInputElement||o instanceof HTMLTextAreaElement?mt(o.value):o instanceof HTMLAnchorElement&&o.hasAttribute("href")?mt(o.href):ft(o)).then(i)}var o}function bt(t){const e=t.currentTarget;e instanceof HTMLElement&&pt(e)}function gt(t){if(" "===t.key||"Enter"===t.key){const e=t.currentTarget;e instanceof HTMLElement&&(t.preventDefault(),pt(e))}}function wt(t){t.currentTarget.addEventListener("keydown",gt)}function vt(t){t.currentTarget.removeEventListener("keydown",gt)}window.customElements.get("auto-complete")||(window.AutocompleteElement=AutocompleteElement,window.customElements.define("auto-complete",AutocompleteElement));class ClipboardCopyElement extends HTMLElement{constructor(){super(),this.addEventListener("click",bt),this.addEventListener("focus",wt),this.addEventListener("blur",vt)}connectedCallback(){this.hasAttribute("tabindex")||this.setAttribute("tabindex","0"),this.hasAttribute("role")||this.setAttribute("role","button")}get value(){return this.getAttribute("value")||""}set value(t){this.setAttribute("value",t)}}window.customElements.get("clipboard-copy")||(window.ClipboardCopyElement=ClipboardCopyElement,window.customElements.define("clipboard-copy",ClipboardCopyElement));function Et(t){t.style.display="inline-block"}function yt(t){t.style.display="none"}const At=new WeakMap;document.addEventListener("clipboard-copy",(({target:t})=>{if(!(t instanceof HTMLElement))return;if(!t.hasAttribute("data-view-component"))return;const e=At.get(t);e?(clearTimeout(e),At.delete(t)):function(t){const[e,n]=t.querySelectorAll(".octicon");e&&n&&(yt(e),Et(n))}(t),At.set(t,setTimeout((()=>{!function(t){const[e,n]=t.querySelectorAll(".octicon");e&&n&&(Et(e),yt(n))}(t),At.delete(t)}),2e3))}));class DetailsMenuElement extends HTMLElement{get preload(){return this.hasAttribute("preload")}set preload(t){t?this.setAttribute("preload",""):this.removeAttribute("preload")}get src(){return this.getAttribute("src")||""}set src(t){this.setAttribute("src",t)}connectedCallback(){this.hasAttribute("role")||this.setAttribute("role","menu");const t=this.parentElement;if(!t)return;const e=t.querySelector("summary");e&&(e.setAttribute("aria-haspopup","menu"),e.hasAttribute("role")||e.setAttribute("role","button"));const n=[Lt(t,"compositionstart",(t=>Ot(this,t))),Lt(t,"compositionend",(t=>Ot(this,t))),Lt(t,"click",(e=>Ht(t,e))),Lt(t,"change",(e=>Ht(t,e))),Lt(t,"keydown",(e=>function(t,e,n){if(!(n instanceof KeyboardEvent))return;if(t.querySelector("details[open]"))return;const i=Tt.get(e);if(!i||i.isComposing)return;const o=n.target instanceof Element&&"SUMMARY"===n.target.tagName;switch(n.key){case"Escape":t.hasAttribute("open")&&($t(t),n.preventDefault(),n.stopPropagation());break;case"ArrowDown":{o&&!t.hasAttribute("open")&&t.setAttribute("open","");const e=St(t,!0);e&&e.focus(),n.preventDefault()}break;case"ArrowUp":{o&&!t.hasAttribute("open")&&t.setAttribute("open","");const e=St(t,!1);e&&e.focus(),n.preventDefault()}break;case"n":if(Dt&&n.ctrlKey){const e=St(t,!0);e&&e.focus(),n.preventDefault()}break;case"p":if(Dt&&n.ctrlKey){const e=St(t,!1);e&&e.focus(),n.preventDefault()}break;case" ":case"Enter":{const e=document.activeElement;e instanceof HTMLElement&&Ft(e)&&e.closest("details")===t&&(n.preventDefault(),n.stopPropagation(),e.click())}}}(t,this,e))),Lt(t,"toggle",(()=>xt(t,this)),{once:!0}),Lt(t,"toggle",(()=>function(t){if(!t.hasAttribute("open"))return;for(const e of document.querySelectorAll("details[open] > details-menu")){const n=e.closest("details");n&&n!==t&&!n.contains(t)&&n.removeAttribute("open")}}(t))),this.preload?Lt(t,"mouseover",(()=>xt(t,this)),{once:!0}):kt,...Mt(t)];Tt.set(this,{subscriptions:n,loaded:!1,isComposing:!1})}disconnectedCallback(){const t=Tt.get(this);if(t){Tt.delete(this);for(const e of t.subscriptions)e.unsubscribe()}}}const Tt=new WeakMap,kt={unsubscribe(){}};function Lt(t,e,n,i=!1){return t.addEventListener(e,n,i),{unsubscribe:()=>{t.removeEventListener(e,n,i)}}}function xt(t,e){const n=e.getAttribute("src");if(!n)return;const i=Tt.get(e);if(!i)return;if(i.loaded)return;i.loaded=!0;const o=e.querySelector("include-fragment");o&&!o.hasAttribute("src")&&(o.addEventListener("loadend",(()=>Ct(t))),o.setAttribute("src",n))}function Mt(t){let e=!1;return[Lt(t,"mousedown",(()=>e=!0)),Lt(t,"keydown",(()=>e=!1)),Lt(t,"toggle",(()=>{t.hasAttribute("open")&&(Ct(t)||e||function(t){const e=document.activeElement;if(e&&Ft(e)&&t.contains(e))return;const n=St(t,!0);n&&n.focus()}(t))}))]}function Ct(t){if(!t.hasAttribute("open"))return!1;const e=t.querySelector("details-menu [autofocus]");return!!e&&(e.focus(),!0)}function St(t,e){const n=Array.from(t.querySelectorAll('[role^="menuitem"]:not([hidden]):not([disabled]):not([aria-disabled="true"])')),i=document.activeElement,o=i instanceof HTMLElement?n.indexOf(i):-1,s=e?n[o+1]:n[o-1],r=e?n[0]:n[n.length-1];return s||r}const Dt=navigator.userAgent.match(/Macintosh/);function Ht(t,e){const n=e.target;if(n instanceof Element&&n.closest("details")===t)if("click"===e.type){const e=n.closest('[role="menuitem"], [role="menuitemradio"]');if(!e)return;const i=e.querySelector("input");if("LABEL"===e.tagName&&n===i)return;"LABEL"===e.tagName&&i&&!i.checked||Rt(e,t)}else if("change"===e.type){const e=n.closest('[role="menuitemradio"], [role="menuitemcheckbox"]');e&&Rt(e,t)}}function Rt(t,e){if(t.hasAttribute("disabled")||"true"===t.getAttribute("aria-disabled"))return;const n=t.closest("details-menu");if(!n)return;n.dispatchEvent(new CustomEvent("details-menu-select",{cancelable:!0,detail:{relatedTarget:t}}))&&(!function(t,e){const n=e.querySelector("[data-menu-button]");if(!n)return;const i=function(t){if(!t)return null;const e=t.hasAttribute("data-menu-button-text")?t:t.querySelector("[data-menu-button-text]");return e?e.getAttribute("data-menu-button-text")||e.textContent:null}(t);if(i)n.textContent=i;else{const e=function(t){if(!t)return null;const e=t.hasAttribute("data-menu-button-contents")?t:t.querySelector("[data-menu-button-contents]");return e?e.innerHTML:null}(t);e&&(n.innerHTML=e)}}(t,e),function(t,e){for(const n of e.querySelectorAll('[role="menuitemradio"], [role="menuitemcheckbox"]')){const e=n.querySelector('input[type="radio"], input[type="checkbox"]');let i=(n===t).toString();e instanceof HTMLInputElement&&(i=e.indeterminate?"mixed":e.checked.toString()),n.setAttribute("aria-checked",i)}}(t,e),"menuitemcheckbox"!==t.getAttribute("role")&&$t(e),n.dispatchEvent(new CustomEvent("details-menu-selected",{detail:{relatedTarget:t}})))}function Ft(t){const e=t.getAttribute("role");return"menuitem"===e||"menuitemcheckbox"===e||"menuitemradio"===e}function $t(t){if(!t.hasAttribute("open"))return;t.removeAttribute("open");const e=t.querySelector("summary");e&&e.focus()}function Ot(t,e){const n=Tt.get(t);n&&(n.isComposing="compositionstart"===e.type)}window.customElements.get("details-menu")||(window.DetailsMenuElement=DetailsMenuElement,window.customElements.define("details-menu",DetailsMenuElement));const It=new WeakMap,Wt=new WeakMap,qt=new WeakMap;function Pt(t){const e=t.currentTarget;if(!(e instanceof ImageCropElement))return;const{box:n,image:i}=qt.get(e)||{};if(!n||!i)return;let o=0,s=0;if(t instanceof KeyboardEvent)"ArrowUp"===t.key?s=-1:"ArrowDown"===t.key?s=1:"ArrowLeft"===t.key?o=-1:"ArrowRight"===t.key&&(o=1);else if(Wt.has(e)&&t instanceof MouseEvent){const n=Wt.get(e);o=t.pageX-n.dragStartX,s=t.pageY-n.dragStartY}else if(Wt.has(e)&&t instanceof TouchEvent){const{pageX:n,pageY:i}=t.changedTouches[0],{dragStartX:r,dragStartY:a}=Wt.get(e);o=n-r,s=i-a}if(0!==o||0!==s){const t=Math.min(Math.max(0,n.offsetLeft+o),i.width-n.offsetWidth),r=Math.min(Math.max(0,n.offsetTop+s),i.height-n.offsetHeight);n.style.left=`${t}px`,n.style.top=`${r}px`,jt(e,{x:t,y:r,width:n.offsetWidth,height:n.offsetHeight})}if(t instanceof MouseEvent)Wt.set(e,{dragStartX:t.pageX,dragStartY:t.pageY});else if(t instanceof TouchEvent){const{pageX:n,pageY:i}=t.changedTouches[0];Wt.set(e,{dragStartX:n,dragStartY:i})}}function Nt(t){const e=t.target;if(!(e instanceof HTMLElement))return;const n=Bt(e);if(!(n instanceof ImageCropElement))return;const{box:i}=qt.get(n)||{};if(!i)return;const o=n.getBoundingClientRect();let s,r,a;if(t instanceof KeyboardEvent){if("Escape"===t.key)return Xt(n);if("-"===t.key&&(a=-10),"="===t.key&&(a=10),!a)return;s=i.offsetWidth+a,r=i.offsetHeight+a,It.set(n,{startX:i.offsetLeft,startY:i.offsetTop})}else if(t instanceof MouseEvent){const e=It.get(n);if(!e)return;s=t.pageX-e.startX-o.left-window.pageXOffset,r=t.pageY-e.startY-o.top-window.pageYOffset}else if(t instanceof TouchEvent){const e=It.get(n);if(!e)return;s=t.changedTouches[0].pageX-e.startX-o.left-window.pageXOffset,r=t.changedTouches[0].pageY-e.startY-o.top-window.pageYOffset}s&&r&&Ut(n,s,r,!(t instanceof KeyboardEvent))}function Bt(t){const e=t.getRootNode();return e instanceof ShadowRoot?e.host:t}function Yt(t){const e=t.currentTarget;if(!(e instanceof HTMLElement))return;const n=Bt(e);if(!(n instanceof ImageCropElement))return;const{box:i}=qt.get(n)||{};if(!i)return;const o=t.target;if(o instanceof HTMLElement)if(o.hasAttribute("data-direction")){const e=o.getAttribute("data-direction")||"";n.addEventListener("mousemove",Nt),n.addEventListener("touchmove",Nt,{passive:!0}),["nw","se"].indexOf(e)>=0&&n.classList.add("nwse"),["ne","sw"].indexOf(e)>=0&&n.classList.add("nesw"),It.set(n,{startX:i.offsetLeft+(["se","ne"].indexOf(e)>=0?0:i.offsetWidth),startY:i.offsetTop+(["se","sw"].indexOf(e)>=0?0:i.offsetHeight)}),Nt(t)}else n.addEventListener("mousemove",Pt),n.addEventListener("touchmove",Pt,{passive:!0})}function Ut(t,e,n,i=!0){let o=Math.max(Math.abs(e),Math.abs(n),10);const s=It.get(t);if(!s)return;const{box:r,image:a}=qt.get(t)||{};if(!r||!a)return;o=Math.min(o,n>0?a.height-s.startY:s.startY,e>0?a.width-s.startX:s.startX);const c=i?Math.round(Math.max(0,e>0?s.startX:s.startX-o)):r.offsetLeft,l=i?Math.round(Math.max(0,n>0?s.startY:s.startY-o)):r.offsetTop;r.style.left=`${c}px`,r.style.top=`${l}px`,r.style.width=`${o}px`,r.style.height=`${o}px`,jt(t,{x:c,y:l,width:o,height:o})}function Xt(t){const{image:e}=qt.get(t)||{};if(!e)return;const n=Math.round(e.clientWidth>e.clientHeight?e.clientHeight:e.clientWidth);It.set(t,{startX:(e.clientWidth-n)/2,startY:(e.clientHeight-n)/2}),Ut(t,n,n)}function Kt(t){const e=t.currentTarget;e instanceof ImageCropElement&&(Wt.delete(e),e.classList.remove("nwse","nesw"),e.removeEventListener("mousemove",Nt),e.removeEventListener("mousemove",Pt),e.removeEventListener("touchmove",Nt),e.removeEventListener("touchmove",Pt))}function jt(t,e){const{image:n}=qt.get(t)||{};if(!n)return;const i=n.naturalWidth/n.width;for(const n in e){const o=Math.round(e[n]*i);e[n]=o;const s=t.querySelector(`[data-image-crop-input='${n}']`);s instanceof HTMLInputElement&&(s.value=o.toString())}t.dispatchEvent(new CustomEvent("image-crop-change",{bubbles:!0,detail:e}))}class ImageCropElement extends HTMLElement{connectedCallback(){if(qt.has(this))return;const t=this.attachShadow({mode:"open"});t.innerHTML='\n<style>\n :host { touch-action: none; display: block; }\n :host(.nesw) { cursor: nesw-resize; }\n :host(.nwse) { cursor: nwse-resize; }\n :host(.nesw) .crop-box, :host(.nwse) .crop-box { cursor: inherit; }\n :host([loaded]) .crop-image { display: block; }\n :host([loaded]) ::slotted([data-loading-slot]), .crop-image { display: none; }\n\n .crop-wrapper {\n position: relative;\n font-size: 0;\n }\n .crop-container {\n user-select: none;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n position: absolute;\n overflow: hidden;\n z-index: 1;\n top: 0;\n width: 100%;\n height: 100%;\n }\n\n :host([rounded]) .crop-box {\n border-radius: 50%;\n box-shadow: 0 0 0 4000px rgba(0, 0, 0, 0.3);\n }\n .crop-box {\n position: absolute;\n border: 1px dashed #fff;\n box-sizing: border-box;\n cursor: move;\n }\n\n :host([rounded]) .crop-outline {\n outline: none;\n }\n .crop-outline {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n outline: 4000px solid rgba(0, 0, 0, .3);\n }\n\n .handle { position: absolute; }\n :host([rounded]) .handle::before { border-radius: 50%; }\n .handle:before {\n position: absolute;\n display: block;\n padding: 4px;\n transform: translate(-50%, -50%);\n content: \' \';\n background: #fff;\n border: 1px solid #767676;\n }\n .ne { top: 0; right: 0; cursor: nesw-resize; }\n .nw { top: 0; left: 0; cursor: nwse-resize; }\n .se { bottom: 0; right: 0; cursor: nwse-resize; }\n .sw { bottom: 0; left: 0; cursor: nesw-resize; }\n</style>\n<slot></slot>\n<div class="crop-wrapper">\n <img width="100%" class="crop-image" alt="">\n <div class="crop-container">\n <div data-crop-box class="crop-box">\n <div class="crop-outline"></div>\n <div data-direction="nw" class="handle nw"></div>\n <div data-direction="ne" class="handle ne"></div>\n <div data-direction="sw" class="handle sw"></div>\n <div data-direction="se" class="handle se"></div>\n </div>\n </div>\n</div>\n';const e=t.querySelector("[data-crop-box]");if(!(e instanceof HTMLElement))return;const n=t.querySelector("img");n instanceof HTMLImageElement&&(qt.set(this,{box:e,image:n}),n.addEventListener("load",(()=>{this.loaded=!0,Xt(this)})),this.addEventListener("mouseleave",Kt),this.addEventListener("touchend",Kt),this.addEventListener("mouseup",Kt),e.addEventListener("mousedown",Yt),e.addEventListener("touchstart",Yt,{passive:!0}),this.addEventListener("keydown",Pt),this.addEventListener("keydown",Nt),this.src&&(n.src=this.src))}static get observedAttributes(){return["src"]}get src(){return this.getAttribute("src")}set src(t){t?this.setAttribute("src",t):this.removeAttribute("src")}get loaded(){return this.hasAttribute("loaded")}set loaded(t){t?this.setAttribute("loaded",""):this.removeAttribute("loaded")}attributeChangedCallback(t,e,n){const{image:i}=qt.get(this)||{};"src"===t&&(this.loaded=!1,i&&(i.src=n))}}window.customElements.get("image-crop")||(window.ImageCropElement=ImageCropElement,window.customElements.define("image-crop",ImageCropElement));const zt=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Vt=["January","February","March","April","May","June","July","August","September","October","November","December"];function Zt(t){return`0${t}`.slice(-2)}function _t(t,e){const n=t.getDay(),i=t.getDate(),o=t.getMonth(),s=t.getFullYear(),r=t.getHours(),a=t.getMinutes(),c=t.getSeconds();return e.replace(/%([%aAbBcdeHIlmMpPSwyYZz])/g,(function(e){let l;switch(e[1]){case"%":return"%";case"a":return zt[n].slice(0,3);case"A":return zt[n];case"b":return Vt[o].slice(0,3);case"B":return Vt[o];case"c":return t.toString();case"d":return Zt(i);case"e":return String(i);case"H":return Zt(r);case"I":return Zt(_t(t,"%l"));case"l":return String(0===r||12===r?12:(r+12)%12);case"m":return Zt(o+1);case"M":return Zt(a);case"p":return r>11?"PM":"AM";case"P":return r>11?"pm":"am";case"S":return Zt(c);case"w":return String(n);case"y":return Zt(s%100);case"Y":return String(s);case"Z":return l=t.toString().match(/\((\w+)\)$/),l?l[1]:"";case"z":return l=t.toString().match(/\w([+-]\d\d\d\d) /),l?l[1]:""}return""}))}function Jt(t){let e;return function(){if(e)return e;if("Intl"in window)try{return e=new Intl.DateTimeFormat(void 0,t),e}catch(t){if(!(t instanceof RangeError))throw t}}}let Gt=null;const Qt=Jt({day:"numeric",month:"short"});function te(){if(null!==Gt)return Gt;const t=Qt();if(t){const e=t.format(new Date(0));return Gt=!!e.match(/^\d/),Gt}return!1}let ee=null;const ne=Jt({day:"numeric",month:"short",year:"numeric"});function ie(t){const e=t.closest("[lang]");return e instanceof HTMLElement&&e.lang?e.lang:"default"}const oe=new WeakMap;class ExtendedTimeElement extends HTMLElement{static get observedAttributes(){return["datetime","day","format","lang","hour","minute","month","second","title","weekday","year","time-zone-name"]}connectedCallback(){const t=this.getFormattedTitle();t&&!this.hasAttribute("title")&&this.setAttribute("title",t);const e=this.getFormattedDate();e&&(this.textContent=e)}attributeChangedCallback(t,e,n){const i=this.getFormattedTitle();if("datetime"===t){const t=Date.parse(n);isNaN(t)?oe.delete(this):oe.set(this,new Date(t))}const o=this.getFormattedTitle(),s=this.getAttribute("title");"title"===t||!o||s&&s!==i||this.setAttribute("title",o);const r=this.getFormattedDate();r&&(this.textContent=r)}get date(){return oe.get(this)}getFormattedTitle(){const t=this.date;if(!t)return;const e=se();if(e)return e.format(t);try{return t.toLocaleString()}catch(e){if(e instanceof RangeError)return t.toString();throw e}}getFormattedDate(){}}const se=Jt({day:"numeric",month:"short",year:"numeric",hour:"numeric",minute:"2-digit",timeZoneName:"short"}),re=new WeakMap;class LocalTimeElement extends ExtendedTimeElement{attributeChangedCallback(t,e,n){"hour"!==t&&"minute"!==t&&"second"!==t&&"time-zone-name"!==t||re.delete(this),super.attributeChangedCallback(t,e,n)}getFormattedDate(){const t=this.date;if(!t)return;return`${function(t,e){const n={weekday:{short:"%a",long:"%A"},day:{numeric:"%e","2-digit":"%d"},month:{short:"%b",long:"%B"},year:{numeric:"%Y","2-digit":"%y"}};let i=te()?"weekday day month year":"weekday month day, year";for(const e in n){const o=n[e][t.getAttribute(e)||""];i=i.replace(e,o||"")}return i=i.replace(/(\s,)|(,\s$)/,""),_t(e,i).replace(/\s+/," ").trim()}(this,t)||""} ${function(t,e){const n={},i=t.getAttribute("hour");"numeric"!==i&&"2-digit"!==i||(n.hour=i);const o=t.getAttribute("minute");"numeric"!==o&&"2-digit"!==o||(n.minute=o);const s=t.getAttribute("second");"numeric"!==s&&"2-digit"!==s||(n.second=s);const r=t.getAttribute("time-zone-name");"short"!==r&&"long"!==r||(n.timeZoneName=r);if(0===Object.keys(n).length)return;let a=re.get(t);a||(a=Jt(n),re.set(t,a));const c=a();if(c)return c.format(e);return _t(e,n.second?"%H:%M:%S":"%H:%M")}(this,t)||""}`.trim()}}window.customElements.get("local-time")||(window.LocalTimeElement=LocalTimeElement,window.customElements.define("local-time",LocalTimeElement));class ae{constructor(t,e){this.date=t,this.locale=e}toString(){const t=this.timeElapsed();if(t)return t;{const t=this.timeAhead();return t||`on ${this.formatDate()}`}}timeElapsed(){const t=(new Date).getTime()-this.date.getTime(),e=Math.round(t/1e3),n=Math.round(e/60),i=Math.round(n/60),o=Math.round(i/24);return t>=0&&o<30?this.timeAgoFromMs(t):null}timeAhead(){const t=this.date.getTime()-(new Date).getTime(),e=Math.round(t/1e3),n=Math.round(e/60),i=Math.round(n/60),o=Math.round(i/24);return t>=0&&o<30?this.timeUntil():null}timeAgo(){const t=(new Date).getTime()-this.date.getTime();return this.timeAgoFromMs(t)}timeAgoFromMs(t){const e=Math.round(t/1e3),n=Math.round(e/60),i=Math.round(n/60),o=Math.round(i/24),s=Math.round(o/30),r=Math.round(s/12);return t<0||e<10?ce(this.locale,0,"second"):e<45?ce(this.locale,-e,"second"):e<90||n<45?ce(this.locale,-n,"minute"):n<90||i<24?ce(this.locale,-i,"hour"):i<36||o<30?ce(this.locale,-o,"day"):s<18?ce(this.locale,-s,"month"):ce(this.locale,-r,"year")}microTimeAgo(){const t=(new Date).getTime()-this.date.getTime(),e=Math.round(t/1e3),n=Math.round(e/60),i=Math.round(n/60),o=Math.round(i/24),s=Math.round(o/30),r=Math.round(s/12);return n<1?"1m":n<60?`${n}m`:i<24?`${i}h`:o<365?`${o}d`:`${r}y`}timeUntil(){const t=this.date.getTime()-(new Date).getTime();return this.timeUntilFromMs(t)}timeUntilFromMs(t){const e=Math.round(t/1e3),n=Math.round(e/60),i=Math.round(n/60),o=Math.round(i/24),s=Math.round(o/30),r=Math.round(s/12);return s>=18||s>=12?ce(this.locale,r,"year"):o>=45||o>=30?ce(this.locale,s,"month"):i>=36||i>=24?ce(this.locale,o,"day"):n>=90||n>=45?ce(this.locale,i,"hour"):e>=90||e>=45?ce(this.locale,n,"minute"):ce(this.locale,e>=10?e:0,"second")}microTimeUntil(){const t=this.date.getTime()-(new Date).getTime(),e=Math.round(t/1e3),n=Math.round(e/60),i=Math.round(n/60),o=Math.round(i/24),s=Math.round(o/30),r=Math.round(s/12);return o>=365?`${r}y`:i>=24?`${o}d`:n>=60?`${i}h`:n>1?`${n}m`:"1m"}formatDate(){let t=te()?"%e %b":"%b %e";var e;return e=this.date,(new Date).getUTCFullYear()!==e.getUTCFullYear()&&(t+=function(){if(null!==ee)return ee;const t=ne();if(t){const e=t.format(new Date(0));return ee=!!e.match(/\d,/),ee}return!0}()?", %Y":" %Y"),_t(this.date,t)}formatTime(){const t=le();return t?t.format(this.date):_t(this.date,"%l:%M%P")}}function ce(t,e,n){const i=function(t,e){if("Intl"in window&&"RelativeTimeFormat"in window.Intl)try{return new Intl.RelativeTimeFormat(t,e)}catch(t){if(!(t instanceof RangeError))throw t}}(t,{numeric:"auto"});return i?i.format(e,n):function(t,e){if(0===t)switch(e){case"year":case"quarter":case"month":case"week":return`this ${e}`;case"day":return"today";case"hour":case"minute":return`in 0 ${e}s`;case"second":return"now"}else if(1===t)switch(e){case"year":case"quarter":case"month":case"week":return`next ${e}`;case"day":return"tomorrow";case"hour":case"minute":case"second":return`in 1 ${e}`}else if(-1===t)switch(e){case"year":case"quarter":case"month":case"week":return`last ${e}`;case"day":return"yesterday";case"hour":case"minute":case"second":return`1 ${e} ago`}else if(t>1)switch(e){case"year":case"quarter":case"month":case"week":case"day":case"hour":case"minute":case"second":return`in ${t} ${e}s`}else if(t<-1)switch(e){case"year":case"quarter":case"month":case"week":case"day":case"hour":case"minute":case"second":return`${-t} ${e}s ago`}throw new RangeError(`Invalid unit argument for format() '${e}'`)}(e,n)}const le=Jt({hour:"numeric",minute:"2-digit"});class RelativeTimeElement extends ExtendedTimeElement{getFormattedDate(){const t=this.date;if(t)return new ae(t,ie(this)).toString()}connectedCallback(){ue.push(this),de||(he(),de=window.setInterval(he,6e4)),super.connectedCallback()}disconnectedCallback(){const t=ue.indexOf(this);-1!==t&&ue.splice(t,1),ue.length||de&&(clearInterval(de),de=null)}}const ue=[];let de;function he(){let t,e,n;for(e=0,n=ue.length;e<n;e++)t=ue[e],t.textContent=t.getFormattedDate()||""}window.customElements.get("relative-time")||(window.RelativeTimeElement=RelativeTimeElement,window.customElements.define("relative-time",RelativeTimeElement));class TimeAgoElement extends RelativeTimeElement{getFormattedDate(){const t=this.getAttribute("format"),e=this.date;if(e)return"micro"===t?new ae(e,ie(this)).microTimeAgo():new ae(e,ie(this)).timeAgo()}}window.customElements.get("time-ago")||(window.TimeAgoElement=TimeAgoElement,window.customElements.define("time-ago",TimeAgoElement));class TimeUntilElement extends RelativeTimeElement{getFormattedDate(){const t=this.getAttribute("format"),e=this.date;if(e)return"micro"===t?new ae(e,ie(this)).microTimeUntil():new ae(e,ie(this)).timeUntil()}}function fe(t){return Array.from(t.querySelectorAll('[role="tablist"] [role="tab"]')).filter((e=>e instanceof HTMLElement&&e.closest(t.tagName)===t))}window.customElements.get("time-until")||(window.TimeUntilElement=TimeUntilElement,window.customElements.define("time-until",TimeUntilElement));class TabContainerElement extends HTMLElement{constructor(){super(),this.addEventListener("keydown",(t=>{const e=t.target;if(!(e instanceof HTMLElement))return;if(e.closest(this.tagName)!==this)return;if("tab"!==e.getAttribute("role")&&!e.closest('[role="tablist"]'))return;const n=fe(this),i=n.indexOf(n.find((t=>t.matches('[aria-selected="true"]'))));if("ArrowRight"===t.code){let t=i+1;t>=n.length&&(t=0),me(this,t)}else if("ArrowLeft"===t.code){let t=i-1;t<0&&(t=n.length-1),me(this,t)}else"Home"===t.code?(me(this,0),t.preventDefault()):"End"===t.code&&(me(this,n.length-1),t.preventDefault())})),this.addEventListener("click",(t=>{const e=fe(this);if(!(t.target instanceof Element))return;if(t.target.closest(this.tagName)!==this)return;const n=t.target.closest('[role="tab"]');if(!(n instanceof HTMLElement&&n.closest('[role="tablist"]')))return;me(this,e.indexOf(n))}))}connectedCallback(){for(const t of fe(this))t.hasAttribute("aria-selected")||t.setAttribute("aria-selected","false"),t.hasAttribute("tabindex")||("true"===t.getAttribute("aria-selected")?t.setAttribute("tabindex","0"):t.setAttribute("tabindex","-1"))}}function me(t,e){const n=fe(t),i=Array.from(t.querySelectorAll('[role="tabpanel"]')).filter((e=>e.closest(t.tagName)===t)),o=n[e],s=i[e];if(!!t.dispatchEvent(new CustomEvent("tab-container-change",{bubbles:!0,cancelable:!0,detail:{relatedTarget:s}}))){for(const t of n)t.setAttribute("aria-selected","false"),t.setAttribute("tabindex","-1");for(const t of i)t.hidden=!0,t.hasAttribute("tabindex")||t.hasAttribute("data-tab-container-no-tabstop")||t.setAttribute("tabindex","0");o.setAttribute("aria-selected","true"),o.setAttribute("tabindex","0"),o.focus(),s.hidden=!1,t.dispatchEvent(new CustomEvent("tab-container-changed",{bubbles:!0,detail:{relatedTarget:s}}))}}window.customElements.get("tab-container")||(window.TabContainerElement=TabContainerElement,window.customElements.define("tab-container",TabContainerElement));
|
2
2
|
//# sourceMappingURL=primer_view_components.js.map
|