@ionic/core
Version:
Base components for Ionic
4 lines • 4.85 kB
JavaScript
/*!
* (C) Ionic http://ionicframework.com - MIT License
*/
import{d as o,H as n,i,p as t,h as e,f as a,t as r}from"./p-Ct2aBEue.js";import{b as s}from"./p-HthJZjZ6.js";const d=o(class extends n{constructor(o){super(),!1!==o&&this.__registerHost(),this.__attachShadow(),this.ionChange=i(this,"ionChange",7),this.ionValueChange=i(this,"ionValueChange",7),this.animated=!0,this.disabled=!1,this.readonly=!1,this.expand="compact"}valueChanged(){const{value:o,multiple:n}=this;!n&&Array.isArray(o)&&t(`[ion-accordion-group] - An array of values was passed, but multiple is "false". This is incorrect usage and may result in unexpected behaviors. To dismiss this warning, pass a string to the "value" property when multiple="false".\n\n Value Passed: [${o.map((o=>`'${o}'`)).join(", ")}]\n`,this.el),this.ionValueChange.emit({value:this.value})}async disabledChanged(){const{disabled:o}=this,n=await this.getAccordions();for(const i of n)i.disabled=o}async readonlyChanged(){const{readonly:o}=this,n=await this.getAccordions();for(const i of n)i.readonly=o}async onKeydown(o){const n=document.activeElement;if(!n)return;if(!n.closest('ion-accordion [slot="header"]'))return;const i="ION-ACCORDION"===n.tagName?n:n.closest("ion-accordion");if(!i)return;if(i.closest("ion-accordion-group")!==this.el)return;const t=await this.getAccordions(),e=t.findIndex((o=>o===i));if(-1===e)return;let a;"ArrowDown"===o.key?a=this.findNextAccordion(t,e):"ArrowUp"===o.key?a=this.findPreviousAccordion(t,e):"Home"===o.key?a=t[0]:"End"===o.key&&(a=t[t.length-1]),void 0!==a&&a!==n&&a.focus()}async componentDidLoad(){this.disabled&&this.disabledChanged(),this.readonly&&this.readonlyChanged(),this.valueChanged()}setValue(o){const n=this.value=o;this.ionChange.emit({value:n})}async requestAccordionToggle(o,n){const{multiple:i,value:t,readonly:e,disabled:a}=this;if(!e&&!a)if(n)if(i){const n=t??[],i=Array.isArray(n)?n:[n];void 0===i.find((n=>n===o))&&void 0!==o&&this.setValue([...i,o])}else this.setValue(o);else if(i){const n=t??[];this.setValue((Array.isArray(n)?n:[n]).filter((n=>n!==o)))}else this.setValue(void 0)}findNextAccordion(o,n){const i=o[n+1];return void 0===i?o[0]:i}findPreviousAccordion(o,n){const i=o[n-1];return void 0===i?o[o.length-1]:i}async getAccordions(){return Array.from(this.el.querySelectorAll(":scope > ion-accordion"))}render(){const{disabled:o,readonly:n,expand:i}=this,t=s(this);return e(a,{key:"d1a79a93179474fbba66fcf11a92f4871dacc975",class:{[t]:!0,"accordion-group-disabled":o,"accordion-group-readonly":n,["accordion-group-expand-"+i]:!0},role:"presentation"},e("slot",{key:"e6b8954b686d1fbb4fc92adb07fddc97a24b0a31"}))}get el(){return this}static get watchers(){return{value:[{valueChanged:0}],disabled:[{disabledChanged:0}],readonly:[{readonlyChanged:0}]}}static get style(){return{ios:":host{display:block}:host(.accordion-group-expand-inset){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:16px;margin-bottom:16px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanding),:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanded){border-bottom:none}",md:":host{display:block}:host(.accordion-group-expand-inset){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:16px;margin-bottom:16px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion){-webkit-box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanding),:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanded){margin-left:0;margin-right:0;margin-top:16px;margin-bottom:16px;border-radius:6px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-previous){border-end-end-radius:6px;border-end-start-radius:6px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-next){border-start-start-radius:6px;border-start-end-radius:6px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion):first-of-type{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}"}}},[289,"ion-accordion-group",{animated:[4],multiple:[4],value:[1025],disabled:[4],readonly:[4],expand:[1],requestAccordionToggle:[64],getAccordions:[64]},[[0,"keydown","onKeydown"]],{value:[{valueChanged:0}],disabled:[{disabledChanged:0}],readonly:[{readonlyChanged:0}]}]),c=d,p=function(){"undefined"!=typeof customElements&&["ion-accordion-group"].forEach((o=>{"ion-accordion-group"===o&&(customElements.get(r(o))||customElements.define(r(o),d))}))};export{c as IonAccordionGroup,p as defineCustomElement}