@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
3 lines (2 loc) • 3.24 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
import{a as x,b as C}from"./LWJAXF3D.js";import{a as y}from"./77EQHO2G.js";import{a as O}from"./DPU3UW4H.js";import{a as g}from"./WAA77FNZ.js";import"./QUTTHRH3.js";import"./MNIRD7Q7.js";import{l as v}from"./ZQBZ5QPB.js";import"./CIYXQ5G6.js";import{E as b,F as p,Q as f,g as h,h as u,p as m}from"./G7AHLVJ5.js";var l={container:"container",containerHorizontal:"container--horizontal",containerVertical:"container--vertical"},S=h`:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:flex}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.container{display:flex;flex:1 1 auto}.container--vertical{flex-direction:column}.container--horizontal{flex-direction:row}:host([hidden]){display:none}[hidden]{display:none}`,c=class extends b{constructor(){super(),this.dragEnabled=!0,this.items=[],this.mutationObserver=g("mutation",()=>{this.setUpSorting()}),this.interactiveContainer=y(this),this.disabled=!1,this.handleSelector="calcite-handle",this.layout="vertical",this.loading=!1,this.calciteListOrderChange=m({cancelable:!1}),this.listen("calciteHandleNudge",this.calciteHandleNudgeNextHandler)}static{this.properties={canPull:[0,{},{attribute:!1}],canPut:[0,{},{attribute:!1}],disabled:[7,{},{reflect:!0,type:Boolean}],dragSelector:[3,{},{reflect:!0}],group:[3,{},{reflect:!0}],handleSelector:[3,{},{reflect:!0}],layout:[3,{},{reflect:!0}],loading:[7,{},{reflect:!0,type:Boolean}]}}static{this.styles=S}connectedCallback(){super.connectedCallback(),this.setUpSorting(),this.beginObserving()}load(){O.deprecated("component",{component:this,name:"sortable-list",removalVersion:5,suggested:"block-group"})}disconnectedCallback(){super.disconnectedCallback(),C(this),this.endObserving()}calciteHandleNudgeNextHandler(e){this.handleNudgeEvent(e)}onGlobalDragStart(){this.endObserving()}onGlobalDragEnd(){this.beginObserving()}onDragEnd(){}onDragStart(){}onDragSort(){this.items=Array.from(this.el.children),this.calciteListOrderChange.emit()}handleNudgeEvent(e){let{direction:a}=e.detail,t=e.composedPath().find(r=>r.matches(this.handleSelector)),i=this.items.find(r=>r.contains(t)||e.composedPath().includes(r)),d=this.items.length-1,n=this.items.indexOf(i),o=!1,s;a==="up"?n===0?o=!0:s=n-1:n===d?s=0:n===d-1?o=!0:s=n+2,this.endObserving(),o?i.parentElement.appendChild(i):i.parentElement.insertBefore(i,this.items[s]),this.items=Array.from(this.el.children),this.beginObserving(),requestAnimationFrame(()=>v(t)),"selected"in t&&(t.selected=!0)}setUpSorting(){this.items=Array.from(this.el.children),x(this)}beginObserving(){this.mutationObserver?.observe(this.el,{childList:!0,subtree:!0})}endObserving(){this.mutationObserver?.disconnect()}render(){let{disabled:e,layout:a}=this,t=a==="horizontal"||!1;return this.interactiveContainer({disabled:e,children:u`<div class=${p({[l.container]:!0,[l.containerVertical]:!t,[l.containerHorizontal]:t})}><slot></slot></div>`})}};f("calcite-sortable-list",c);export{c as SortableList};