@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 22 kB
JavaScript
import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import s from"../core/Handles.js";import has from"../core/has.js";import{isSome as n}from"../core/maybe.js";import{on as o,watch as l,initial as r,syncAndInitial as a}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{cast as d}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import m from"./Widget.js";import g from"./LayerList/LayerListViewModel.js";import u from"./LayerList/ListItem.js";import{findSelectedItem as p,sortLayersToIds as b,sortChildLayersToIds as _,canSortSublayers as y}from"./LayerList/support/layerListUtils.js";import{accessibleHandler as I}from"./support/decorators/accessibleHandler.js";import{messageBundle as v}from"./support/decorators/messageBundle.js";import{vmEvent as f}from"./support/decorators/vmEvent.js";import{tsx as C}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import w from"sortablejs";function A(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const S="esri-layerlist-new-ui",$=t.ofType(u),k="data-sort-filter",L="data-layer-uid",M="layerUid",T="esri-layer-list",E=`${T}__item`,R={base:`${T} esri-widget esri-widget--panel`,newUI:`${T}--new-ui`,noItems:`${T}__no-items`,list:`${T}__list`,listRoot:`${T}__list--root`,listExclusive:`${T}__list--exclusive`,listInherited:`${T}__list--inherited`,listIndependent:`${T}__list--independent`,item:E,itemContent:`${E}-content`,itemMessage:`${E}--has-message`,itemInvisible:`${E}--invisible`,itemInvisibleAtScale:`${E}--invisible-at-scale`,itemChildren:`${E}--has-children`,itemSelectable:`${E}--selectable`,itemContainer:`${E}-container`,actionsMenu:`${E}-actions-menu`,actionsMenuItem:`${E}-actions-menu-item`,actionsMenuItemActive:`${E}-actions-menu-item--active`,actions:`${E}-actions`,actionsList:`${E}-actions-list`,action:`${E}-action`,actionIcon:`${E}-action-icon`,actionImage:`${E}-action-image`,actionTitle:`${E}-action-title`,actionToggle:`${T}__action-toggle`,actionToggleOn:`${T}__action-toggle--on`,label:`${E}-label`,message:`${E}-message`,title:`${E}-title`,statusIndicator:`${T}__status-indicator`,publishing:`${T}__publishing`,updating:`${T}__updating`,connectionStatus:`${T}__connection-status`,connectionStatusConnected:`${T}__connection-status--connected`,toggleVisible:`${E}-toggle`,toggleVisibleIcon:`${E}-toggle-icon`,toggleIcon:`${E}-toggle-icon`,radioIcon:`${E}-radio-icon`,childToggle:`${T}__child-toggle`,childToggleOpen:`${T}__child-toggle--open`,childOpened:`${T}__child-toggle-icon--opened`,childClosed:`${T}__child-toggle-icon--closed`,childClosed_RTL:`${T}__child-toggle-icon--closed-rtl`,sortableChosen:`${T}--chosen`,disabled:"esri-disabled",disabledElement:"esri-disabled-element",hidden:"esri-hidden",rotating:"esri-rotating",iconEllipses:"esri-icon-handle-horizontal",iconVisible:"esri-icon-visible",iconInvisible:"esri-icon-non-visible",iconRadioSelected:"esri-icon-radio-checked",iconRadioUnselected:"esri-icon-radio-unchecked",iconNoticeTriangle:"esri-icon-notice-triangle",iconChildrenOpen:"esri-icon-down-arrow",iconDownArrow:"esri-icon-down-arrow",iconRightArrow:"esri-icon-right-triangle-arrow",iconLeftArrow:"esri-icon-left-triangle-arrow",iconLoading:"esri-icon-loading-indicator",iconDefaultAction:"esri-icon-default-action",widgetIcon:"esri-icon-layers"},x={actions:"actions",actionSection:"action-section",items:"items"},U={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function N(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>N(e)))}const O="root",j={statusIndicators:!0,errors:!1};let V=class extends m{constructor(e,t){super(e,t),this._handles=new s,this._sortableNodes=new Map,this._sortableMap=new Map,this._focusSortUid=null,this._newUI=has(S),this._tooltipReferenceMap=new Map,this.visibleItems=null,this.iconClass=R.widgetIcon,this.listItemCanGiveFunction=null,this.listItemCanReceiveFunction=null,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.selectionEnabled=!1,this.selectedItems=new $,this.viewModel=new g,this.visibleElements={...j},this._onSortableSort=({to:e,from:t,item:i,newIndex:s})=>{t&&e&&(t===e?this._sortLayers(this._sortableMap.get(t.dataset.group)):this._moveLayerFromChildList({to:e,from:t,item:i,newIndex:s}))},this._sortableCanSort=(e,t)=>!(!e.el.dataset.group||!t.el.dataset.group),this._sortableCanPull=(e,t,i)=>{const{listItemCanGiveFunction:s}=this,n={selected:i["data-item"],from:t.el["data-item"],to:e.el["data-item"]};return!this._sortableCanSort(e,t)||"function"!=typeof s||s.call(null,n)},this._sortableCanPut=(e,t,i)=>{const{listItemCanReceiveFunction:s}=this,n={selected:i["data-item"],from:t.el["data-item"],to:e.el["data-item"]};return!this._sortableCanSort(e,t)||"function"!=typeof s||s.call(null,n)},this._onSortableEnd=({oldIndex:e,from:t,to:i,item:s})=>{t!==i&&t.insertBefore(s,t.children[e])}}initialize(){const e=this.operationalItems;this._setVisibleItems(e),this.addHandles([o((()=>this.operationalItems),"change",(()=>this._itemsChanged(e))),l((()=>this.visibleElements),(()=>this._itemsChanged(e))),l((()=>this.selectionEnabled),(()=>this._toggleAllSorting()),r)])}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-icon.js"),import("@esri/calcite-components/dist/components/calcite-tooltip.js")])}destroy(){this._destroySortables(),this._tooltipReferenceMap.clear(),this._handles.destroy(),this._handles=null}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get listItemCreatedFunction(){return this.viewModel.listItemCreatedFunction}set listItemCreatedFunction(e){this.viewModel.listItemCreatedFunction=e}get operationalItems(){return this.viewModel.operationalItems}set operationalItems(e){this.viewModel.operationalItems=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...j,...e}}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const{visibleItems:e,_newUI:t}=this,i=this.viewModel?.state,s={[R.newUI]:t,[R.hidden]:"loading"===i,[R.disabled]:"disabled"===i},n=this.renderItemTooltips(),o=this.renderItems();return C("div",{class:this.classes(R.base,s)},e?.length?[n,o]:this.renderNoItems())}renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?C("calcite-tooltip",{label:i.layerIncompatible,referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this.renderItemTooltip(e):null,...t?[]:i?.toArray().map((e=>this.renderItemTooltipNodes(e)))]}renderItemTooltips(){return this.visibleItems.toArray().map((e=>this.renderItemTooltipNodes(e)))}renderNoItems(){return C("div",{class:R.noItems},this.messages.noItemsToDisplay)}renderItems(){const{visibleItems:e,selectionEnabled:t,messages:i}=this;return C("ul",{"aria-label":i.widgetLabel,role:t?"listbox":void 0,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,"data-group":O,bind:this,class:this.classes(R.list,R.listRoot,R.listIndependent)},e?.map((e=>this.renderItem(e,null))).toArray())}renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[R.actionsMenuItemActive]:e.actionsOpen};return C("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(R.actionsMenuItem,s),tabindex:"0",role:"button","aria-controls":t,"aria-label":i.options,title:i.options},C("span",{"aria-hidden":"true",class:R.iconEllipses}))}renderActionsMenu(e,t,i,s){const{panel:n}=e,o=n&&n.visible?this.renderPanelButton(n):null,l=1===i&&this._getSingleActionButton(t),r=l?this.renderAction({item:e,action:l,singleAction:!0}):null,a=!l&&i?this.renderActionsMenuIcon(e,s):null;return a||o||l?C("div",{key:"actions-menu",class:R.actionsMenu},o,r,a):null}renderChildList(e,t){const{selectionEnabled:i}=this,{visibilityMode:s,children:n}=e,o=this._hasChildren(e),l=!o&&i&&"group"===e.layer?.type,{exclusive:r,inherited:a}=U,c={[R.listExclusive]:s===r,[R.listInherited]:s===a,[R.listIndependent]:s!==a&&s!==r};return o||l?C("ul",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,class:this.classes(R.list,c),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===r?"radiogroup":"group",hidden:!e.open&&!l||null},n?.map((t=>this.renderItem(t,e))).toArray()):null}renderChildrenToggle(e,t){const{messagesCommon:i}=this,s=this._hasChildren(e),n={[R.childToggleOpen]:e.open},o=e.open?i.collapse:i.expand;return s?C("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(R.childToggle,n),tabindex:"0",role:"button","aria-controls":t,"aria-label":o,title:o},C("span",{"aria-hidden":"true",class:this.classes(R.childClosed,R.iconRightArrow)}),C("span",{"aria-hidden":"true",class:this.classes(R.childOpened,R.iconDownArrow)}),C("span",{"aria-hidden":"true",class:this.classes(R.childClosed_RTL,R.iconLeftArrow)})):null}renderItemMessage(e){return e.error?C("div",{key:"esri-layer-list__error",class:R.message,role:"alert"},C("span",{"aria-hidden":"true",class:R.iconNoticeTriangle}),this.messages.layerError):e.incompatible?C("div",{key:"esri-layer-list__incompatible",class:R.message,role:"alert"},C("span",{bind:this,tabIndex:0,"aria-hidden":"true",class:R.iconNoticeTriangle,afterCreate:t=>this._setTooltipReference(t,e)}),this.messages.layerIncompatible):null}renderItemContent(e,t,i){const{id:s}=this,n=`${s}_${e.uid}`,o=`${n}_actions`,l=`${n}__list`,{panel:r}=e,a=this._filterActions(e.actionsSections),c=this._countActions(a);return[C("div",{key:"list-item-container",class:R.itemContainer},this.renderChildrenToggle(e,l),this.renderLabel(e,t,i),this.renderActionsMenu(e,a,c,o)),this.renderItemMessage(e),c?this.renderActionsSections(e,a,o):null,r&&r.open&&!r.disabled?r.render():null,this.renderChildList(e,l)]}renderItem(e,t){const{_newUI:i,id:s,selectionEnabled:n,selectedItems:o}=this,l=`${`${s}_${e.uid}`}__title`,r=this._hasMessage(e),a=this._hasChildren(e),c={[R.itemChildren]:a,[R.itemMessage]:!!r,[R.itemInvisible]:i&&!e.visible,[R.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[R.itemSelectable]:n};if(n){const i={[L]:e.layer?.uid,[k]:(!e.sortable).toString()};return C("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(R.item,c),"aria-labelledby":l,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item":e,"data-group":t?t.uid:O,tabIndex:0,"aria-selected":p(e,o)?"true":"false",role:"option",...i},this.renderItemContent(e,t,l))}return C("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(R.item,c),"aria-labelledby":l},this.renderItemContent(e,t,l))}renderConnectionIcon(e){const{connectionStatus:t}=e;return n(t)?C("calcite-icon",{icon:"connected"===t?"check-circle":"offline",scale:"s"}):null}renderItemStatus(e,t){const{visibleElements:i}=this;if(!i.statusIndicators)return null;const{connectionStatus:s,publishing:n,updating:o}=e,l=o&&!t,r=!!s;return C("span",{class:this.classes({[R.statusIndicator]:!0,[R.publishing]:n,[R.updating]:l,[R.connectionStatus]:r,[R.connectionStatusConnected]:r&&"connected"===s}),key:"layer-item-status"},this.renderConnectionIcon(e))}renderItemTitle(e,t){const{messages:i}=this;if(!e)return null;const s=e.title||i.untitledLayer,n=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return C("span",{key:"layer-title-container",id:t,title:n,"aria-label":n,class:R.title},s)}renderItemToggleIcon(e,t){const{_newUI:i}=this,{exclusive:s}=U,n=t&&t.visibilityMode,o={[R.toggleVisibleIcon]:i,[R.toggleIcon]:i&&n!==s,[R.radioIcon]:i&&n===s,[R.iconRadioSelected]:n===s&&e.visible,[R.iconRadioUnselected]:n===s&&!e.visible,[R.iconVisible]:n!==s&&e.visible,[R.iconInvisible]:n!==s&&!e.visible};return C("span",{key:"item-toggle-icon",class:this.classes(o),"aria-hidden":"true"})}renderItemToggle(e,t,i){const{selectionEnabled:s,messages:n}=this,{exclusive:o}=U,l=t&&t.visibilityMode,r=l===o?"radio":"switch";return C("span",s?{key:"item-toggle-selection-enabled",class:R.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":l,tabIndex:0,title:e.visible?n.hideLayer:n.showLayer,"aria-checked":e.visible?"true":"false",role:r,"aria-labelledby":i}:{key:"item-toggle",class:R.toggleVisible},this.renderItemToggleIcon(e,t))}renderLabel(e,t,i){const{selectionEnabled:s,_newUI:n,messages:o}=this,{inherited:l,exclusive:r}=U,a=t?.visibilityMode,c=a===r?"radio":"switch",d=n?[this.renderItemTitle(e,i),this.renderItemStatus(e,t),this.renderItemToggle(e,t,i)]:[this.renderItemToggle(e,t,i),this.renderItemTitle(e,i),this.renderItemStatus(e,t)],h=C("div",s?{key:`item-label-no-selection-${e.uid}`,class:R.label}:{key:`item-label-with-selection-${e.uid}`,class:R.label,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":a,tabIndex:0,"aria-checked":e.visible?"true":"false",title:e.visible?o.hideLayer:o.showLayer,role:c,"aria-labelledby":i},d);return a===l||e.error?C("div",{key:`item-label-container-${e.uid}`,class:R.label},this.renderItemTitle(e,i),this.renderItemStatus(e,t)):h}renderPanelButton(e){const{className:t,open:i,title:s,image:n}=e,o=n||t?t:R.iconDefaultAction,l=this._getIconImageStyles(e),r={[R.actionsMenuItemActive]:i},a={[R.actionImage]:!!l["background-image"],[R.disabledElement]:e.disabled};return o&&(a[o]=!!o),C("div",{"aria-disabled":e.disabled.toString(),key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(R.actionsMenuItem,r),role:"button",tabindex:e.disabled?null:0,title:s,"aria-label":s},C("span",{class:this.classes(a),styles:l}))}renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>C("ul",{key:`${e}-action-section-${i}`,class:R.actionsList},this.renderActionSection(e,t))));return C("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:R.actions,hidden:!e.actionsOpen||null},s)}renderActionSection(e,t){return(t&&t.toArray()).map((t=>this.renderAction({item:e,action:t})))}renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),n="button"!==e.type||e.image||i?i:R.iconDefaultAction,o={[R.actionImage]:!t&&!!s["background-image"],[R.iconLoading]:t,[R.rotating]:t};return n&&!t&&(o[n]=!0),C("span",{key:"action-icon","aria-hidden":"true",class:this.classes(R.actionIcon,o),styles:s})}renderActionTitle(e,t){return t?null:C("span",{key:"action-title",class:R.actionTitle},e)}renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:n,disabled:o,title:l}=i,r={[R.actionsMenuItem]:s&&"button"===i.type,[R.action]:n||!s&&"toggle"!==i.type,[R.actionToggle]:!n&&"toggle"===i.type,[R.actionToggleOn]:!n&&"toggle"===i.type&&i.value,[R.disabledElement]:o},a=[this.renderActionIcon(i),this.renderActionTitle(l,s)];return s?C("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:r,tabindex:"0",title:l,"aria-label":l},a):C("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:r,tabindex:"0",role:"button",title:l,"aria-label":l},a)}_setTooltipReference(e,t){this._tooltipReferenceMap.set(t.uid,e),this.scheduleRender()}_hasMessage(e){return!!e.error||e.incompatible}_hasChildren(e){return!!e.children.length&&!this._hasMessage(e)}_sortNodeRemoved(e){const{_sortableMap:t}=this,i=e.dataset.group,s=t.get(i);s&&s.destroy(),t.delete(i)}_destroySortables(){const{_sortableMap:e,_sortableNodes:t}=this;e.forEach((e=>e&&e.destroy())),e.clear(),t.clear()}_moveLayerFromChildList({to:e,from:t,item:i,newIndex:s}){const n=i["data-item"],o=e["data-item"],l=t["data-item"];this.viewModel.moveListItem(n,l,o,s)}_sortLayers(e){if(!e)return;const t=e.el["data-item"],i=e.toArray();t?_(t,i):b(this.view?.map?.layers,i)}_toggleSorting(e,t){const{_sortableMap:i,selectionEnabled:s}=this,n=i.get(t),o=e["data-item"],l=(t===O||o.childrenSortable&&y(o))&&s;if(n)n.option("disabled",!l);else if(l){const s=w.create(e,{dataIdAttr:L,group:{name:t,pull:this._sortableCanPull,put:this._sortableCanPut},filter:`[${k}="true"]`,fallbackTolerance:4,onSort:this._onSortableSort,onEnd:this._onSortableEnd,disabled:!l,chosenClass:R.sortableChosen});i.set(t,s)}}_toggleAllSorting(){this._sortableNodes.forEach(((e,t)=>this._toggleSorting(e,t)))}_sortNodeCreated(e){const t=e.dataset.group;t&&(this._sortableNodes.set(t,e),this._toggleSorting(e,t))}_setVisibleItems(e){this.visibleItems=e?.filter((e=>!e.hidden&&(this.visibleElements.errors||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).getItemAt(0)}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;e["data-item"].layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_watchActionSectionChanges(e,t){const i=x.actionSection+t;this._handles.add(e.on("change",this.scheduleRender.bind(this)),i),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){const i=x.actions+t;"toggle"!==e.type?"slider"!==e.type?this._handles.add(l((()=>[e?.className,e?.image,e?.id,e?.title,e?.visible]),(()=>this.scheduleRender()),r),i):this._handles.add(l((()=>[e?.className,e?.id,e?.title,e?.visible,e?.value,e?.displayValueEnabled,e?.max,e?.min,e?.step]),(()=>this.scheduleRender()),r),i):this._handles.add(l((()=>[e?.className,e?.image,e?.id,e?.title,e?.visible,e?.value]),(()=>this.scheduleRender()),r),i)}_renderOnItemChanges(e){const t=e.uid,i=x.items+t;this._handles.add([l((()=>[e?.actionsOpen,e?.visible,e?.open,e?.updating,e?.connectionStatus,e?.publishing,e?.title,e?.visibleAtCurrentScale,e?.error,e?.visibilityMode,e?.panel,e?.panel?.title,e?.panel?.content,e?.panel?.className,e?.sortable,e?.childrenSortable]),(()=>this.scheduleRender()),a),l((()=>[e?.hidden,e?.error]),(()=>this._setVisibleItems(this.operationalItems))),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],i),e.children.forEach((e=>this._renderOnItemChanges(e))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e){this._handles.removeAll(),e.forEach((e=>this._renderOnItemChanges(e))),this._tooltipReferenceMap.clear(),this._setVisibleItems(e),this.scheduleRender()}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:null}}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(!t.includes(s))return void this._toggleSelection(e);e.stopPropagation();const n=e.currentTarget,o=n["data-item"],{_sortableMap:l,selectedItems:r}=this,a=n.dataset.group,c=l.get(a);if(!c)return;const d=p(o,r),h=c.toArray(),m=e.target,g=h.indexOf(m.dataset[M]);if(-1!==g){if("ArrowDown"===s){const e=g+1;if(e>=h.length)return;d?(A(h,g,e),c.sort(h),this._sortLayers(c),this._focusSortUid=o.layer?.uid):(this._focusSortUid=o.layer?.uid,this.scheduleRender())}if("ArrowUp"===s){const e=g-1;if(e<=-1)return;d?(A(h,g,e),c.sort(h),this._sortLayers(c),this._focusSortUid=o.layer?.uid):(this._focusSortUid=o.layer?.uid,this.scheduleRender())}}}_toggleActionsOpen(e){const t=e.currentTarget["data-item"],{actionsOpen:i}=t,s=!i;s&&this.operationalItems.forEach((e=>N(e))),t.actionsOpen=s,e.stopPropagation()}_triggerPanel(e){const t=e.currentTarget["data-panel"];e.stopPropagation(),t&&!t.disabled&&(t.open=!t.open)}_triggerAction(e){const t=e.currentTarget,i=t["data-action"],s=t["data-item"];"toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s),e.stopPropagation()}_toggleVisibility(e){const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=t["data-item"];i===U.exclusive&&s.visible||(s.visible=!s.visible),e.stopPropagation()}_toggleChildrenClick(e){const t=e.currentTarget["data-item"];t.open=!t.open,e.stopPropagation()}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=e.currentTarget["data-item"],n=p(s,i),{length:o}=i;if(!t)return o&&!(n&&1===o)?(i.removeAll(),void i.add(s)):void(n?i.remove?.(n):i.add(s));n?i.remove?.(n):i.add(s)}};e([c()],V.prototype,"visibleItems",void 0),e([c()],V.prototype,"iconClass",void 0),e([c()],V.prototype,"label",null),e([c()],V.prototype,"listItemCanGiveFunction",void 0),e([c()],V.prototype,"listItemCanReceiveFunction",void 0),e([c()],V.prototype,"listItemCreatedFunction",null),e([c(),v("esri/widgets/LayerList/t9n/LayerList")],V.prototype,"messages",void 0),e([c(),v("esri/t9n/common")],V.prototype,"messagesCommon",void 0),e([c()],V.prototype,"multipleSelectionEnabled",void 0),e([c()],V.prototype,"operationalItems",null),e([c()],V.prototype,"selectionEnabled",void 0),e([c()],V.prototype,"selectedItems",void 0),e([c()],V.prototype,"view",null),e([f("trigger-action"),c({type:g})],V.prototype,"viewModel",void 0),e([c()],V.prototype,"visibleElements",void 0),e([d("visibleElements")],V.prototype,"castVisibleElements",null),e([I()],V.prototype,"_toggleActionsOpen",null),e([I()],V.prototype,"_triggerPanel",null),e([I()],V.prototype,"_triggerAction",null),e([I()],V.prototype,"_toggleVisibility",null),e([I()],V.prototype,"_toggleChildrenClick",null),e([I()],V.prototype,"_toggleSelection",null),V=e([h("esri.widgets.LayerList")],V);const P=V;export{P as default};