UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

1 lines • 14 kB
var __awaiter=this&&this.__awaiter||function(t,e,a,i){function r(t){return t instanceof a?t:new a((function(e){e(t)}))}return new(a||(a=Promise))((function(a,n){function o(t){try{l(i.next(t))}catch(e){n(e)}}function s(t){try{l(i["throw"](t))}catch(e){n(e)}}function l(t){t.done?a(t.value):r(t.value).then(o,s)}l((i=i.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var a={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,r,n,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(t){return function(e){return l([t,e])}}function l(o){if(i)throw new TypeError("Generator is already executing.");while(a)try{if(i=1,r&&(n=o[0]&2?r["return"]:o[0]?r["throw"]||((n=r["return"])&&n.call(r),0):r.next)&&!(n=n.call(r,o[1])).done)return n;if(r=0,n)o=[o[0]&2,n.value];switch(o[0]){case 0:case 1:n=o;break;case 4:a.label++;return{value:o[1],done:false};case 5:a.label++;r=o[1];o=[0];continue;case 7:o=a.ops.pop();a.trys.pop();continue;default:if(!(n=a.trys,n=n.length>0&&n[n.length-1])&&(o[0]===6||o[0]===2)){a=0;continue}if(o[0]===3&&(!n||o[1]>n[0]&&o[1]<n[3])){a.label=o[1];break}if(o[0]===6&&a.label<n[1]){a.label=n[1];n=o;break}if(n&&a.label<n[2]){a.label=n[2];a.ops.push(o);break}if(n[2])a.ops.pop();a.trys.pop();continue}o=e.call(t,a)}catch(s){o=[6,s];r=0}finally{i=n=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};import{r as registerInstance,c as createEvent,h,g as getElement,H as Host}from"./index-aa8afca4.js";import{S as Sortable}from"./sortable.esm-98c2e482.js";import{m as mutationObserverCallback,d as deselectSiblingItems,s as selectSiblings,h as handleFilter,g as getItemData,k as keyDownHandler,i as initialize,a as initializeObserver,c as cleanUpObserver,r as removeItem,b as calciteListItemChangeHandler,e as calciteListItemValueChangeHandler,f as setUpItems,j as setFocus,L as List,I as ICON_TYPES$1,C as CSS$1,S as SLOTS$1}from"./resources-1ee857fb.js";import{g as getRoundRobinIndex}from"./array-af19adb2.js";import{g as guid}from"./guid-09142681.js";import{b as getSlotted}from"./dom-466af3c7.js";import"./debounce-047e09f4.js";var CSS={container:"container",handle:"handle"};var ICON_TYPES;(function(t){t["grip"]="grip"})(ICON_TYPES||(ICON_TYPES={}));var calciteValueListCss="@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:host{-webkit-box-sizing:border-box;box-sizing:border-box;background-color:var(--calcite-ui-foreground-1);color:var(--calcite-ui-text-2);font-size:var(--calcite-font-size--1)}:host *{-webkit-box-sizing:border-box;box-sizing:border-box}:root{--calcite-popper-transition:150ms ease-in-out}:host([hidden]){display:none}:host{-ms-flex-align:stretch;align-items:stretch;background-color:transparent;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-positive:0;flex-grow:0}calcite-value-list-item:last-of-type{-webkit-box-shadow:none;box-shadow:none}:host([filter-enabled]) header{background-color:var(--calcite-ui-foreground-1);display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-align:center;align-items:center;margin-bottom:0.25rem;-webkit-box-shadow:0 1px 0 var(--calcite-ui-border-3);box-shadow:0 1px 0 var(--calcite-ui-border-3)}:host([filter-enabled]) header.sticky{position:-webkit-sticky;position:sticky;top:0;z-index:10}calcite-filter{margin-bottom:1px}";var CalciteValueList=function(){function t(t){var e=this;registerInstance(this,t);this.calciteListChange=createEvent(this,"calciteListChange",7);this.calciteListOrderChange=createEvent(this,"calciteListOrderChange",7);this.disabled=false;this.dragEnabled=false;this.filterEnabled=false;this.loading=false;this.multiple=false;this.selectionFollowsFocus=false;this.selectedValues=new Map;this.dataForFilter=[];this.lastSelectedItem=null;this.observer=new MutationObserver(mutationObserverCallback.bind(this));this.setFilterEl=function(t){e.filterEl=t};this.deselectSiblingItems=deselectSiblingItems.bind(this);this.selectSiblings=selectSiblings.bind(this);this.handleFilter=handleFilter.bind(this);this.getItemData=getItemData.bind(this);this.keyDownHandler=function(t){var a=t.composedPath().find((function(t){var e;return((e=t.dataset)===null||e===void 0?void 0:e.jsHandle)!==undefined}));var i=t.composedPath().find((function(t){var e;return((e=t.tagName)===null||e===void 0?void 0:e.toLowerCase())==="calcite-value-list-item"}));if(!a||!i.handleActivated){keyDownHandler.call(e,t);return}if(t.key!=="ArrowUp"&&t.key!=="ArrowDown"){return}t.preventDefault();var r=e,n=r.el,o=r.items;var s=t.key==="ArrowDown"?1:-1;var l=o.indexOf(i);var c=getRoundRobinIndex(l+s,o.length);if(c===o.length-1){n.appendChild(i)}else{var d=n.children[c];var u=d===i.nextElementSibling?d.nextElementSibling:d;n.insertBefore(i,u)}requestAnimationFrame((function(){return a.focus()}));i.handleActivated=true}}t.prototype.connectedCallback=function(){initialize.call(this);initializeObserver.call(this)};t.prototype.componentDidLoad=function(){this.setUpDragAndDrop()};t.prototype.disconnectedCallback=function(){cleanUpObserver.call(this);this.cleanUpDragAndDrop()};t.prototype.calciteListItemRemoveHandler=function(t){removeItem.call(this,t)};t.prototype.calciteListItemChangeHandler=function(t){calciteListItemChangeHandler.call(this,t)};t.prototype.calciteListItemPropsChangeHandler=function(t){t.stopPropagation();this.setUpFilter()};t.prototype.calciteListItemValueChangeHandler=function(t){calciteListItemValueChangeHandler.call(this,t)};t.prototype.setUpItems=function(){setUpItems.call(this,"calcite-value-list-item")};t.prototype.setUpFilter=function(){if(this.filterEnabled){this.dataForFilter=this.getItemData()}};t.prototype.setUpDragAndDrop=function(){var t=this;this.cleanUpDragAndDrop();if(!this.dragEnabled){return}this.sortable=Sortable.create(this.el,{dataIdAttr:"id",handle:"."+CSS.handle,draggable:"calcite-value-list-item",group:this.group,onSort:function(){t.items=Array.from(t.el.querySelectorAll("calcite-value-list-item"));var e=t.items.map((function(t){return t.value}));t.calciteListOrderChange.emit(e)}})};t.prototype.cleanUpDragAndDrop=function(){var t;(t=this.sortable)===null||t===void 0?void 0:t.destroy();this.sortable=null};t.prototype.getSelectedItems=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){return[2,this.selectedValues]}))}))};t.prototype.setFocus=function(t){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){return[2,setFocus.call(this,t)]}))}))};t.prototype.getIconType=function(){var t=null;if(this.dragEnabled){t=ICON_TYPES.grip}return t};t.prototype.render=function(){return h(List,{onKeyDown:this.keyDownHandler,props:this})};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();CalciteValueList.style=calciteValueListCss;var ICONS={drag:"drag"};var SLOTS={actionsEnd:"actions-end",actionsStart:"actions-start"};var calciteValueListItemCss="@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:host{-webkit-box-sizing:border-box;box-sizing:border-box;background-color:var(--calcite-ui-foreground-1);color:var(--calcite-ui-text-2);font-size:var(--calcite-font-size--1)}:host *{-webkit-box-sizing:border-box;box-sizing:border-box}:root{--calcite-popper-transition:150ms ease-in-out}:host([hidden]){display:none}:host{margin-bottom:1px;display:-ms-flexbox;display:flex;-webkit-box-shadow:0 1px 0 var(--calcite-ui-border-3);box-shadow:0 1px 0 var(--calcite-ui-border-3);-webkit-transition:background-color 150ms ease-in-out, -webkit-box-shadow 150ms ease-in-out;transition:background-color 150ms ease-in-out, -webkit-box-shadow 150ms ease-in-out;transition:background-color 150ms ease-in-out, box-shadow 150ms ease-in-out;transition:background-color 150ms ease-in-out, box-shadow 150ms ease-in-out, -webkit-box-shadow 150ms ease-in-out}calcite-pick-list-item{-webkit-box-shadow:none;box-shadow:none;-ms-flex-positive:1;flex-grow:1;position:relative;margin:0}:host([active]),:host([selected]){-webkit-box-shadow:0 0 0 1px var(--calcite-ui-brand);box-shadow:0 0 0 1px var(--calcite-ui-brand)}.handle{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding-top:0;padding-bottom:0;padding-left:0.25rem;padding-right:0.25rem;background-color:transparent;border-style:none;color:var(--calcite-ui-text-1);cursor:move;color:var(--calcite-ui-border-1);outline-offset:0;outline-color:transparent;-webkit-transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out}.handle:hover{background-color:var(--calcite-ui-foreground-2);color:var(--calcite-ui-text-1)}.handle:focus{outline:2px solid var(--calcite-ui-brand);outline-offset:-2px}.handle--activated{background-color:var(--calcite-ui-foreground-3);color:var(--calcite-ui-text-1)}.handle calcite-icon{color:inherit}";var CalciteValueListItem=function(){function t(t){var e=this;registerInstance(this,t);this.calciteListItemRemove=createEvent(this,"calciteListItemRemove",7);this.disabled=false;this.disableDeselect=false;this.handleActivated=false;this.icon=null;this.removable=false;this.selected=false;this.pickListItem=null;this.guid="calcite-value-list-item-"+guid();this.getPickListRef=function(t){return e.pickListItem=t};this.handleKeyDown=function(t){if(t.key===" "){e.handleActivated=!e.handleActivated}};this.handleBlur=function(){e.handleActivated=false};this.handleSelectChange=function(t){e.selected=t.detail.selected}}t.prototype.toggleSelected=function(t){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){this.pickListItem.toggleSelected(t);return[2]}))}))};t.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(e){(t=this.pickListItem)===null||t===void 0?void 0:t.setFocus();return[2]}))}))};t.prototype.calciteListItemChangeHandler=function(t){t.detail.item=this.el};t.prototype.renderActionsEnd=function(){var t=this.el;var e=getSlotted(t,SLOTS.actionsEnd);return e?h("slot",{name:SLOTS.actionsEnd,slot:SLOTS$1.actionsEnd}):null};t.prototype.renderActionsStart=function(){var t=this.el;var e=getSlotted(t,SLOTS.actionsStart);return e?h("slot",{name:SLOTS.actionsStart,slot:SLOTS$1.actionsStart}):null};t.prototype.renderHandle=function(){var t;var e=this.icon;if(e===ICON_TYPES$1.grip){return h("span",{"aria-pressed":this.handleActivated.toString(),class:(t={},t[CSS$1.handle]=true,t[CSS$1.handleActivated]=this.handleActivated,t),"data-js-handle":true,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,role:"button",tabindex:"0"},h("calcite-icon",{icon:ICONS.drag,scale:"s"}))}};t.prototype.render=function(){return h(Host,{id:this.el.id||this.guid},this.renderHandle(),h("calcite-pick-list-item",{description:this.description,disableDeselect:this.disableDeselect,disabled:this.disabled,label:this.label,metadata:this.metadata,onCalciteListItemChange:this.handleSelectChange,ref:this.getPickListRef,removable:this.removable,selected:this.selected,value:this.value},this.renderActionsStart(),this.renderActionsEnd()))};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();CalciteValueListItem.style=calciteValueListItemCss;export{CalciteValueList as calcite_value_list,CalciteValueListItem as calcite_value_list_item};