123456 |
- /*!
- * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
- * v1.0.0-beta.97
- */
- import{r as i,c as t,h as a,g as e,H as c}from"./p-91755387.js";import{e as n,g as o,a as r,t as s}from"./p-96bf42e5.js";import{c as l,d}from"./p-a2f5420b.js";import{C as h}from"./p-af9e6e54.js";import"./p-d5bfadd8.js";import"./p-8dc9be64.js";const m=class{constructor(a){i(this,a),this.calciteInternalAccordionChange=t(this,"calciteInternalAccordionChange",6),this.appearance="solid",this.iconPosition="end",this.iconType="chevron",this.scale="m",this.selectionMode="multi",this.items=[],this.sorted=!1,this.sortItems=i=>i.sort(((i,t)=>i.position-t.position)).map((i=>i.item))}componentDidLoad(){this.sorted||(this.items=this.sortItems(this.items),this.sorted=!0)}render(){const i="transparent"===this.appearance,t="minimal"===this.appearance;return a("div",{class:{"accordion--transparent":i,"accordion--minimal":t,accordion:!i&&!t}},a("slot",null))}calciteInternalAccordionItemKeyEvent(i){const t=i.detail.item;if(this.el===i.detail.parent){const{key:a}=t,e=i.target,c=0===this.itemIndex(e),n=this.itemIndex(e)===this.items.length-1;switch(a){case"ArrowDown":n?this.focusFirstItem():this.focusNextItem(e);break;case"ArrowUp":c?this.focusLastItem():this.focusPrevItem(e);break;case"Home":this.focusFirstItem();break;case"End":this.focusLastItem()}}i.stopPropagation()}registerCalciteAccordionItem(i){const t={item:i.target,parent:i.detail.parent,position:i.detail.position};this.el===t.parent&&this.items.push(t),i.stopPropagation()}updateActiveItemOnChange(i){this.requestedAccordionItem=i.detail.requestedAccordionItem,this.calciteInternalAccordionChange.emit({requestedAccordionItem:this.requestedAccordionItem}),i.stopPropagation()}focusFirstItem(){this.focusElement(this.items[0])}focusLastItem(){this.focusElement(this.items[this.items.length-1])}focusNextItem(i){const t=this.itemIndex(i);this.focusElement(this.items[t+1]||this.items[0])}focusPrevItem(i){const t=this.itemIndex(i);this.focusElement(this.items[t-1]||this.items[this.items.length-1])}itemIndex(i){return this.items.indexOf(i)}focusElement(i){null==i||i.focus()}get el(){return e(this)}};m.style="@keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in-down{0%{opacity:0;transform:translate3D(0, -5px, 0)}100%{opacity:1;transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;transform:translate3D(0, 5px, 0)}100%{opacity:1;transform:translate3D(0, 0, 0)}}@keyframes in-scale{0%{opacity:0;transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;transform:scale3D(1, 1, 1)}}:root{--calcite-animation-timing:calc(150ms * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor, 1);--calcite-internal-animation-timing-fast:calc(100ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(200ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(300ms * var(--calcite-internal-duration-factor))}.calcite-animate{opacity:0;animation-fill-mode:both;animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{animation-name:in}.calcite-animate__in-down{animation-name:in-down}.calcite-animate__in-up{animation-name:in-up}.calcite-animate__in-scale{animation-name:in-scale}@media (prefers-reduced-motion: reduce){:root{--calcite-internal-duration-factor:0.01}}:root{--calcite-floating-ui-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}:host([scale=s]){--calcite-accordion-item-spacing-unit:0.25rem;--calcite-accordion-icon-margin:0.5rem;--calcite-accordion-item-padding:var(--calcite-accordion-item-spacing-unit) 0.5rem;font-size:var(--calcite-font-size--2);line-height:1rem}:host([scale=m]){--calcite-accordion-item-spacing-unit:0.5rem;--calcite-accordion-icon-margin:0.75rem;--calcite-accordion-item-padding:var(--calcite-accordion-item-spacing-unit) 0.75rem;font-size:var(--calcite-font-size--1);line-height:1rem}:host([scale=l]){--calcite-accordion-item-spacing-unit:0.75rem;--calcite-accordion-icon-margin:1rem;--calcite-accordion-item-padding:var(--calcite-accordion-item-spacing-unit) 1rem;font-size:var(--calcite-font-size-0);line-height:1.25rem}:host{position:relative;display:block;max-inline-size:100%;line-height:1.5rem;--calcite-accordion-item-border:var(--calcite-ui-border-2);--calcite-accordion-item-background:var(--calcite-ui-foreground-1)}.accordion--transparent{--calcite-accordion-item-border:transparent;--calcite-accordion-item-background:transparent}.accordion--minimal{--calcite-accordion-item-padding:var(--calcite-accordion-item-spacing-unit) 0}.accordion{border-width:1px;border-block-end-width:0px;border-style:solid;border-color:var(--calcite-ui-border-2)}";const p=class{constructor(a){i(this,a),this.calciteInternalAccordionItemKeyEvent=t(this,"calciteInternalAccordionItemKeyEvent",6),this.calciteInternalAccordionItemSelect=t(this,"calciteInternalAccordionItemSelect",6),this.calciteInternalAccordionItemClose=t(this,"calciteInternalAccordionItemClose",6),this.calciteInternalAccordionItemRegister=t(this,"calciteInternalAccordionItemRegister",6),this.active=!1,this.expanded=!1,this.iconPosition="end",this.itemHeaderClickHandler=()=>this.emitRequestedItem()}activeHandler(i){this.expanded=i}expandedHandler(i){this.active=i}iconHandler(i){this.iconStart=i}iconStartHandler(i){this.icon=i}connectedCallback(){this.parent=this.el.parentElement,this.selectionMode=n(this.el,"selection-mode","multi"),this.iconType=n(this.el,"icon-type","chevron"),this.iconPosition=n(this.el,"icon-position",this.iconPosition);const i=this.active||this.expanded;i&&(this.activeHandler(i),this.expandedHandler(i)),this.iconStart?this.icon=this.iconStart:this.icon&&(this.iconStart=this.icon),l(this)}componentDidLoad(){this.itemPosition=this.getItemPosition(),this.calciteInternalAccordionItemRegister.emit({parent:this.parent,position:this.itemPosition})}disconnectedCallback(){d(this)}renderActionsStart(){const{el:i}=this;return o(i,"actions-start")?a("div",{class:"actions-start"},a("slot",{name:"actions-start"})):null}renderActionsEnd(){const{el:i}=this;return o(i,"actions-end")?a("div",{class:"actions-end"},a("slot",{name:"actions-end"})):null}render(){const i=r(this.el),t=this.iconStart?a("calcite-icon",{class:"icon--start",icon:this.iconStart,key:"icon-start",scale:"s"}):null,e=this.iconEnd?a("calcite-icon",{class:"icon--end",icon:this.iconEnd,key:"icon-end",scale:"s"}):null,n=this.description||this.itemSubtitle;return a(c,null,a("div",{class:{[`icon-position--${this.iconPosition}`]:!0,[`icon-type--${this.iconType}`]:!0}},a("div",{class:{header:!0,[h.rtl]:"rtl"===i}},this.renderActionsStart(),a("div",{"aria-expanded":s(this.active||this.expanded),class:"header-content",onClick:this.itemHeaderClickHandler,role:"button",tabindex:"0"},a("div",{class:"header-container"},t,a("div",{class:"header-text"},a("span",{class:"heading"},this.heading||this.itemTitle),n?a("span",{class:"description"},n):null),e),a("calcite-icon",{class:"expand-icon",icon:"chevron"===this.iconType?"chevronDown":"caret"===this.iconType?"caretDown":this.expanded||this.active?"minus":"plus",scale:"s"})),this.renderActionsEnd()),a("div",{class:"content"},a("slot",null))))}keyDownHandler(i){if(i.target===this.el)switch(i.key){case" ":case"Enter":this.emitRequestedItem(),i.preventDefault();break;case"ArrowUp":case"ArrowDown":case"Home":case"End":this.calciteInternalAccordionItemKeyEvent.emit({parent:this.parent,item:i}),i.preventDefault()}}updateActiveItemOnChange(i){this.requestedAccordionItem=i.detail.requestedAccordionItem,this.el.parentNode===this.requestedAccordionItem.parentNode&&(this.determineActiveItem(),i.stopPropagation())}determineActiveItem(){switch(this.selectionMode){case"multi":this.el===this.requestedAccordionItem&&(this.expanded=!this.expanded);break;case"single":this.expanded=this.el===this.requestedAccordionItem&&!this.expanded;break;case"single-persist":this.expanded=this.el===this.requestedAccordionItem}}emitRequestedItem(){this.calciteInternalAccordionItemSelect.emit({requestedAccordionItem:this.el})}getItemPosition(){return Array.prototype.indexOf.call(this.parent.querySelectorAll("calcite-accordion-item"),this.el)}get el(){return e(this)}static get watchers(){return{active:["activeHandler"],expanded:["expandedHandler"],icon:["iconHandler"],iconStart:["iconStartHandler"]}}};p.style="@keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in-down{0%{opacity:0;transform:translate3D(0, -5px, 0)}100%{opacity:1;transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;transform:translate3D(0, 5px, 0)}100%{opacity:1;transform:translate3D(0, 0, 0)}}@keyframes in-scale{0%{opacity:0;transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;transform:scale3D(1, 1, 1)}}:root{--calcite-animation-timing:calc(150ms * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor, 1);--calcite-internal-animation-timing-fast:calc(100ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(200ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(300ms * var(--calcite-internal-duration-factor))}.calcite-animate{opacity:0;animation-fill-mode:both;animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{animation-name:in}.calcite-animate__in-down{animation-name:in-down}.calcite-animate__in-up{animation-name:in-up}.calcite-animate__in-scale{animation-name:in-scale}@media (prefers-reduced-motion: reduce){:root{--calcite-internal-duration-factor:0.01}}:root{--calcite-floating-ui-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}.icon-position--end,.icon-position--start{--calcite-accordion-item-icon-rotation:calc(90deg * -1);--calcite-accordion-item-active-icon-rotation:0deg;--calcite-accordion-item-icon-rotation-rtl:90deg;--calcite-accordion-item-active-icon-rotation-rtl:0deg}.icon-position--start{--calcite-accordion-item-flex-direction:row-reverse;--calcite-accordion-item-icon-spacing-start:0;--calcite-accordion-item-icon-spacing-end:var(--calcite-accordion-icon-margin)}.icon-position--end{--calcite-accordion-item-flex-direction:row;--calcite-accordion-item-icon-spacing-start:var(--calcite-accordion-icon-margin);--calcite-accordion-item-icon-spacing-end:0}.icon-position--end:not(.icon-type--plus-minus){--calcite-accordion-item-icon-rotation:0deg;--calcite-accordion-item-active-icon-rotation:180deg;--calcite-accordion-item-icon-rotation-rtl:0deg;--calcite-accordion-item-active-icon-rotation-rtl:calc(180deg * -1)}:host{position:relative;display:flex;flex-direction:column;color:var(--calcite-ui-text-3);text-decoration-line:none;background-color:var(--calcite-accordion-item-background, var(--calcite-ui-foreground-1))}:host .header-content{outline-color:transparent}:host(:focus) .header-content{outline:2px solid transparent;outline:2px solid var(--calcite-ui-brand);outline-offset:-2px}:host([expanded]){color:var(--calcite-ui-text-1)}:host([expanded]) .content{display:block;color:var(--calcite-ui-text-1)}:host([expanded]) .header{border-block-end-color:transparent}:host .header{display:flex;align-items:stretch}:host .icon{position:relative;margin:0px;display:inline-flex;color:var(--calcite-ui-text-3);transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);margin-inline-end:var(--calcite-accordion-item-icon-spacing-start);margin-inline-start:var(--calcite-accordion-item-icon-spacing-end)}.icon--start{display:flex;align-items:center;margin-inline-end:var(--calcite-accordion-icon-margin)}.icon--end{display:flex;align-items:center;margin-inline-end:var(--calcite-accordion-icon-margin);margin-inline-start:var(--calcite-accordion-icon-margin)}.header-container{inline-size:100%}.content{padding:var(--calcite-accordion-item-padding)}:host .content,:host .header{border-block-end:1px solid var(--calcite-accordion-item-border, var(--calcite-ui-border-2))}:host .header *{display:inline-flex;align-items:center;transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}:host .content{display:none;padding-block-start:0px;color:var(--calcite-ui-text-3);text-align:initial}:host .expand-icon{color:var(--calcite-ui-text-3);margin-inline-start:var(--calcite-accordion-item-icon-spacing-start);margin-inline-end:var(--calcite-accordion-item-icon-spacing-end);transform:rotate(var(--calcite-accordion-item-icon-rotation))}.calcite--rtl .expand-icon{transform:rotate(var(--calcite-accordion-item-icon-rotation-rtl))}:host([expanded]) .expand-icon{color:var(--calcite-ui-text-1);transform:rotate(var(--calcite-accordion-item-active-icon-rotation))}:host([expanded]) .calcite--rtl .expand-icon{transform:rotate(var(--calcite-accordion-item-active-icon-rotation-rtl))}:host .header-text{margin-block:0px;flex-grow:1;flex-direction:column;padding-block:0px;text-align:initial;margin-inline-end:auto}:host .heading,:host .description{display:flex;inline-size:100%}:host .heading{font-weight:var(--calcite-font-weight-medium);color:var(--calcite-ui-text-2)}:host .description{margin-block-start:0.25rem;color:var(--calcite-ui-text-3)}:host(:focus) .heading,:host(:hover) .heading{color:var(--calcite-ui-text-1)}:host(:focus) .icon,:host(:hover) .icon{color:var(--calcite-ui-text-1)}:host(:focus) .expand-icon,:host(:hover) .expand-icon{color:var(--calcite-ui-text-1)}:host(:focus) .description,:host(:hover) .description{color:var(--calcite-ui-text-2)}:host(:focus) .heading,:host(:active) .heading,:host([expanded]) .heading{color:var(--calcite-ui-text-1)}:host(:focus) .icon,:host(:active) .icon,:host([expanded]) .icon{color:var(--calcite-ui-text-1)}:host(:focus) .expand-icon,:host(:active) .expand-icon,:host([expanded]) .expand-icon{color:var(--calcite-ui-text-1)}:host(:focus) .description,:host(:active) .description,:host([expanded]) .description{color:var(--calcite-ui-text-2)}.header-content{flex-grow:1;cursor:pointer;padding:var(--calcite-accordion-item-padding);flex-direction:var(--calcite-accordion-item-flex-direction)}.actions-start,.actions-end{display:flex;align-items:center}@media (forced-colors: active){:host([expanded]) .header{border-block-end:none}:host([expanded]) .heading{font-weight:bolder}:host(:hover) .heading,:host(:focus) .heading{text-decoration:underline}}";export{m as calcite_accordion,p as calcite_accordion_item}
|