@arcgis/coding-components
Version:
ArcGIS Coding Components
3 lines (2 loc) • 2.27 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
function y(e){return g(e)||m(e)}function f(e){return h(e).filter(t=>t.nodeType===Node.TEXT_NODE).map(t=>t.textContent).join("").trim()}function m(e){return f(e).length>0}function h(e){return e.currentTarget.assignedNodes({flatten:!0})}function g(e){return E(e).length>0}function E(e,t){return p(e.target,t)}function p(e,t){let n=e.assignedElements({flatten:!0});return t?n.filter(s=>s.matches(t)):n}var C=(...e)=>{let t=[];for(let s=0;s<e.length;++s){let o=e[s];if(typeof o=="string")t.push(o);else if(Array.isArray(o))t.push.apply(t,o);else if(typeof o=="object")for(let r in o)o[r]&&t.push(r)}let n=t.join(" ");return t.length=0,n},b=(e,t)=>{let n=e;for(;n;){if(n===t)return!0;if(!n.parentNode)return!1;n.parentNode instanceof ShadowRoot?n=n.parentNode.host:n=n.parentNode}return!1},T=(e,t,n)=>{let s=v(t).subscribe;return s(o=>{o.some(i=>b(e,i.target))&&n()})},a={},v=e=>{let t=e.join(","),n=a[t];if(n!==void 0)return n;let s=new Set,o=new MutationObserver(i=>s.forEach(d=>d(i)));globalThis.document&&o.observe(document.documentElement,{attributes:!0,attributeFilter:e,subtree:!0});let r={subscribe:i=>(s.add(i),()=>{s.delete(i),s.size===0&&(o.disconnect(),a[t]=void 0)})};return a[t]=r,r},l=(e,t)=>{let n=e;for(;n;){let s=n.closest?.(t);if(s)return s;let o=n.getRootNode?.();if(o===globalThis.document)return;n=o?.host}};function w(e){let t=l(e,".calcite-mode-dark, .calcite-mode-light, .calcite-mode-auto");return t?.classList.contains("calcite-mode-dark")||t?.classList.contains("calcite-mode-auto")&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}var A=(e,t,n)=>l(e,`[${t}]`)?.getAttribute(t)??n,R=async e=>{e!=null&&(u(e)?await e.setFocus():e.focus())},u=e=>typeof e.setFocus=="function",x=(e,t)=>{if(e?.shadowRoot){if(e.hasAttribute("hydrated")||e.hasAttribute("calcite-hydrated")){c(e,t);return}Promise.resolve(e.componentOnReady?.()).then(()=>c(e,t))}},N=e=>e.nodeType===Node.ELEMENT_NODE,c=(e,t="")=>{if(!N(e))return!1;if(e.matches(t))return u(e)&&setTimeout(()=>{e.setFocus()},0),!0;for(let s of e.children)if(c(s,t))return!0;let n=e.shadowRoot;if(n){for(let s of n.children)if(c(s,t))return!0}return!1};export{y as a,C as b,T as c,l as d,w as e,A as f,R as g,x as h};