@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
5 lines • 5.68 kB
JavaScript
/*!
* All material copyright ESRI, All Rights Reserved, unless otherwise specified.
* See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
*/
import{f as t,g as i}from"./p-8f3a3e4e.js";import{g as s}from"./p-accdb0ce.js";import{d as n}from"./p-b06207bb.js";import{h as e,H as o}from"./p-6b7b23d0.js";function a(){this.setUpItems(),this.setUpFilter(),this.deselectRemovedItems()}const c=["ArrowUp","ArrowDown"];function r(){this.setUpItems(),this.setUpFilter(),this.emitCalciteListChange=n(v.bind(this),0)}function l(){var t;null===(t=this.mutationObserver)||void 0===t||t.observe(this.el,{childList:!0,subtree:!0})}function h(){var t;null===(t=this.mutationObserver)||void 0===t||t.disconnect()}function u(i){const{selectedValues:s}=this,{item:n,value:e,selected:o,shiftPressed:a}=i.detail;o?(this.multiple&&a&&this.selectSiblings(n),this.multiple||this.deselectSiblingItems(n),s.set(e,n)):(s.delete(e),this.multiple&&a&&this.selectSiblings(n,!0)),this.multiple||(j(n,o),o&&t(n)),this.lastSelectedItem=n,this.emitCalciteListChange()}function f(t){t.stopPropagation();const i=t.detail.oldValue,s=this.selectedValues;if(s.has(i)){const n=s.get(i);s.delete(i),s.set(t.detail.newValue,n)}}function d(t){const{el:i,items:s,multiple:n,selectedValues:e}=this;n||i.contains(t.relatedTarget)||b(s).forEach((i=>{j(i,0===e.size?i.contains(t.target)||t.target===i:i.selected)}))}function m(i){const{key:s,target:n}=i;if(!function(t){return!!c.find((i=>i===t))}(s))return;const{items:e,multiple:o,selectionFollowsFocus:a}=this,{length:r}=e,l=e.indexOf(n);if(!r||-1===l)return;i.preventDefault();const h=e[p(this,n,"ArrowUp"===s?"up":"down")];e.forEach((t=>j(t,t===h))),!o&&a&&(h.selected=!0),t(h)}function p(t,i,n){const{items:e}=t,{length:o}=e,a=e.indexOf(i),c="up"===n?-1:1;let r=1,l=s(a+c*r++,o);const h=l;for(;e[l].disabled&&(l=s(a+c*r++,o),l!==h););return l}function b(t){return t.filter((t=>!t.disabled))}function v(){this.calciteListChange.emit(this.selectedValues)}function g(t){if(t.defaultPrevented)return;const i=t.target,s=this.selectedValues;"CALCITE-PICK-LIST-GROUP"===i.parentElement.tagName?(i.parentElement.remove(),Array.from(i.parentElement.children).forEach((t=>s.delete(t.value)))):(i.remove(),s.delete(i.value)),this.emitCalciteListChange()}function j(t,i){t.disabled||(i?t.removeAttribute("tabindex"):t.setAttribute("tabindex","-1"))}async function w(i){var s;if(this.filterEnabled&&"filter"===i)return void await t(this.filterEl);const{items:n,multiple:e,selectionFollowsFocus:o}=this;if(0===n.length)return;if(e)return null===(s=b(n)[0])||void 0===s?void 0:s.setFocus();const a=b(n),c=a.find((t=>t.selected))||a[0];return o&&c&&(c.selected=!0),c.setFocus()}function F(t){this.items=Array.from(this.el.querySelectorAll(t));let i=!1;const{items:s}=this;s.forEach((t=>{t.icon=this.getIconType(),this.multiple||(t.disableDeselect=!0,j(t,!1)),t.selected&&(i=!0,j(t,!0),this.selectedValues.set(t.value,t))}));const[n]=s;i||!n||n.disabled||j(n,!0)}function y(){const t=this.selectedValues,i=this.items.map((({value:t})=>t));t.forEach((t=>{i.includes(t.value)||this.selectedValues.delete(t.value)}))}function A(t){this.items.forEach((i=>{i.value!==t.value&&(i.toggleSelected(!1),this.selectedValues.has(i.value)&&this.selectedValues.delete(i.value))}))}function C(t,i=!1){if(!this.lastSelectedItem)return;const{items:s}=this,n=s.findIndex((t=>t.value===this.lastSelectedItem.value)),e=s.findIndex((i=>i.value===t.value));s.slice(Math.min(n,e),Math.max(n,e)).forEach((t=>{t.toggleSelected(!i),i?this.selectedValues.delete(t.value):this.selectedValues.set(t.value,t)}))}let k;function x(t){const{filteredItems:s}=t.currentTarget,n=s.map((t=>t.value));let e=!1;k||(k=new Set);const o=this.items.filter((t=>{const i=t.parentElement;i.matches("calcite-pick-list-group")&&k.add(i);const s=n.includes(t.value);return t.hidden=!s,e||(e=s&&t.selected),s}));k.forEach((t=>{const s=o.some((i=>t.contains(i)));if(t.hidden=!s,!s)return;const n=i(t,"parent-item");n&&(n.hidden=!1,o.includes(n)&&Array.from(t.children).forEach((t=>t.hidden=!1)))})),k.clear(),o.length>0&&!e&&!this.multiple&&j(o[0],!0)}function O(){return this.items.map((t=>({label:t.label,description:t.description,metadata:t.metadata,value:t.value})))}var E;!function(t){t.circle="circle",t.square="square",t.grip="grip"}(E||(E={}));const I=t=>{var{props:{disabled:i,loading:s,filterEnabled:n,dataForFilter:a,handleFilter:c,filterPlaceholder:r,setFilterEl:l}}=t,h=function(t,i){var s={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&i.indexOf(n)<0&&(s[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var e=0;for(n=Object.getOwnPropertySymbols(t);e<n.length;e++)i.indexOf(n[e])<0&&Object.prototype.propertyIsEnumerable.call(t,n[e])&&(s[n[e]]=t[n[e]])}return s}(t,["props"]);const u=e("slot",null);return e(o,Object.assign({"aria-busy":s.toString(),role:"menu"},h),e("section",null,e("header",{class:{"sticky-pos":!0}},n?e("calcite-filter",{"aria-label":r,disabled:s||i,items:a,onCalciteFilterChange:c,placeholder:r,ref:l}):null,e("slot",{name:"menu-actions"})),s?e("calcite-scrim",{loading:s}):null,u))},S={actions:"actions",actionsEnd:"actions--end",actionsStart:"actions--start",description:"description",handle:"handle",handleActivated:"handle--activated",highlight:"highlight",icon:"icon",iconDot:"icon-dot",label:"label",remove:"remove",title:"title",textContainer:"text-container"},L={checked:"check",remove:"x"},P={actionsEnd:"actions-end",actionsStart:"actions-start"},T={remove:"Remove"};export{S as C,E as I,I as L,P as S,T,A as a,p as b,l as c,y as d,h as e,d as f,O as g,x as h,r as i,u as j,m as k,f as l,a as m,F as n,w as o,L as p,g as r,C as s}