first commit
This commit is contained in:
151
wp-includes/js/dist/script-modules/block-library/accordion/view.js
vendored
Normal file
151
wp-includes/js/dist/script-modules/block-library/accordion/view.js
vendored
Normal file
@@ -0,0 +1,151 @@
|
||||
import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity";
|
||||
/******/ // The require scope
|
||||
/******/ var __webpack_require__ = {};
|
||||
/******/
|
||||
/************************************************************************/
|
||||
/******/ /* webpack/runtime/define property getters */
|
||||
/******/ (() => {
|
||||
/******/ // define getter functions for harmony exports
|
||||
/******/ __webpack_require__.d = (exports, definition) => {
|
||||
/******/ for(var key in definition) {
|
||||
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
||||
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
||||
/******/ (() => {
|
||||
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
||||
/******/ })();
|
||||
/******/
|
||||
/************************************************************************/
|
||||
var __webpack_exports__ = {};
|
||||
|
||||
;// external "@wordpress/interactivity"
|
||||
var x = (y) => {
|
||||
var x = {}; __webpack_require__.d(x, y); return x
|
||||
}
|
||||
var y = (x) => (() => (x))
|
||||
const interactivity_namespaceObject = x({ ["getContext"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.getContext), ["store"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.store), ["withSyncEvent"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.withSyncEvent) });
|
||||
;// ./node_modules/@wordpress/block-library/build-module/accordion/view.js
|
||||
|
||||
let hashHandled = false;
|
||||
const { actions } = (0,interactivity_namespaceObject.store)(
|
||||
"core/accordion",
|
||||
{
|
||||
state: {
|
||||
get isOpen() {
|
||||
const { id, accordionItems } = (0,interactivity_namespaceObject.getContext)();
|
||||
const accordionItem = accordionItems.find(
|
||||
(item) => item.id === id
|
||||
);
|
||||
return accordionItem ? accordionItem.isOpen : false;
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
toggle: () => {
|
||||
const context = (0,interactivity_namespaceObject.getContext)();
|
||||
const { id, autoclose, accordionItems } = context;
|
||||
const accordionItem = accordionItems.find(
|
||||
(item) => item.id === id
|
||||
);
|
||||
if (autoclose) {
|
||||
accordionItems.forEach((item) => {
|
||||
item.isOpen = item.id === id ? !accordionItem.isOpen : false;
|
||||
});
|
||||
} else {
|
||||
accordionItem.isOpen = !accordionItem.isOpen;
|
||||
}
|
||||
},
|
||||
handleKeyDown: (0,interactivity_namespaceObject.withSyncEvent)((event) => {
|
||||
if (event.key !== "ArrowUp" && event.key !== "ArrowDown" && event.key !== "Home" && event.key !== "End") {
|
||||
return;
|
||||
}
|
||||
event.preventDefault();
|
||||
const context = (0,interactivity_namespaceObject.getContext)();
|
||||
const { id, accordionItems } = context;
|
||||
const currentIndex = accordionItems.findIndex(
|
||||
(item) => item.id === id
|
||||
);
|
||||
let nextIndex;
|
||||
switch (event.key) {
|
||||
case "ArrowUp":
|
||||
nextIndex = Math.max(0, currentIndex - 1);
|
||||
break;
|
||||
case "ArrowDown":
|
||||
nextIndex = Math.min(
|
||||
currentIndex + 1,
|
||||
accordionItems.length - 1
|
||||
);
|
||||
break;
|
||||
case "Home":
|
||||
nextIndex = 0;
|
||||
break;
|
||||
case "End":
|
||||
nextIndex = accordionItems.length - 1;
|
||||
break;
|
||||
}
|
||||
const nextId = accordionItems[nextIndex].id;
|
||||
const nextButton = document.getElementById(nextId);
|
||||
if (nextButton) {
|
||||
nextButton.focus();
|
||||
}
|
||||
}),
|
||||
openPanelByHash: () => {
|
||||
if (hashHandled || !window.location?.hash?.length) {
|
||||
return;
|
||||
}
|
||||
const context = (0,interactivity_namespaceObject.getContext)();
|
||||
const { id, accordionItems, autoclose } = context;
|
||||
const hash = decodeURIComponent(
|
||||
window.location.hash.slice(1)
|
||||
);
|
||||
const targetElement = window.document.getElementById(hash);
|
||||
if (!targetElement) {
|
||||
return;
|
||||
}
|
||||
const panelElement = window.document.querySelector(
|
||||
'.wp-block-accordion-panel[aria-labelledby="' + id + '"]'
|
||||
);
|
||||
if (!panelElement || !panelElement.contains(targetElement)) {
|
||||
return;
|
||||
}
|
||||
hashHandled = true;
|
||||
if (autoclose) {
|
||||
accordionItems.forEach((item) => {
|
||||
item.isOpen = item.id === id;
|
||||
});
|
||||
} else {
|
||||
const targetItem = accordionItems.find(
|
||||
(item) => item.id === id
|
||||
);
|
||||
if (targetItem) {
|
||||
targetItem.isOpen = true;
|
||||
}
|
||||
}
|
||||
window.setTimeout(() => {
|
||||
targetElement.scrollIntoView();
|
||||
}, 0);
|
||||
}
|
||||
},
|
||||
callbacks: {
|
||||
initAccordionItems: () => {
|
||||
const context = (0,interactivity_namespaceObject.getContext)();
|
||||
const { id, openByDefault, accordionItems } = context;
|
||||
accordionItems.push({
|
||||
id,
|
||||
isOpen: openByDefault
|
||||
});
|
||||
actions.openPanelByHash();
|
||||
},
|
||||
hashChange: () => {
|
||||
hashHandled = false;
|
||||
actions.openPanelByHash();
|
||||
}
|
||||
}
|
||||
},
|
||||
{ lock: true }
|
||||
);
|
||||
|
||||
1
wp-includes/js/dist/script-modules/block-library/accordion/view.min.js
vendored
Normal file
1
wp-includes/js/dist/script-modules/block-library/accordion/view.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import*as e from"@wordpress/interactivity";var t={d:(e,n)=>{for(var o in n)t.o(n,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const n=(e=>{var n={};return t.d(n,e),n})({getContext:()=>e.getContext,store:()=>e.store,withSyncEvent:()=>e.withSyncEvent});let o=!1;const{actions:i}=(0,n.store)("core/accordion",{state:{get isOpen(){const{id:e,accordionItems:t}=(0,n.getContext)(),o=t.find((t=>t.id===e));return!!o&&o.isOpen}},actions:{toggle:()=>{const e=(0,n.getContext)(),{id:t,autoclose:o,accordionItems:i}=e,c=i.find((e=>e.id===t));o?i.forEach((e=>{e.isOpen=e.id===t&&!c.isOpen})):c.isOpen=!c.isOpen},handleKeyDown:(0,n.withSyncEvent)((e=>{if("ArrowUp"!==e.key&&"ArrowDown"!==e.key&&"Home"!==e.key&&"End"!==e.key)return;e.preventDefault();const t=(0,n.getContext)(),{id:o,accordionItems:i}=t,c=i.findIndex((e=>e.id===o));let s;switch(e.key){case"ArrowUp":s=Math.max(0,c-1);break;case"ArrowDown":s=Math.min(c+1,i.length-1);break;case"Home":s=0;break;case"End":s=i.length-1}const r=i[s].id,a=document.getElementById(r);a&&a.focus()})),openPanelByHash:()=>{if(o||!window.location?.hash?.length)return;const e=(0,n.getContext)(),{id:t,accordionItems:i,autoclose:c}=e,s=decodeURIComponent(window.location.hash.slice(1)),r=window.document.getElementById(s);if(!r)return;const a=window.document.querySelector('.wp-block-accordion-panel[aria-labelledby="'+t+'"]');if(a&&a.contains(r)){if(o=!0,c)i.forEach((e=>{e.isOpen=e.id===t}));else{const e=i.find((e=>e.id===t));e&&(e.isOpen=!0)}window.setTimeout((()=>{r.scrollIntoView()}),0)}}},callbacks:{initAccordionItems:()=>{const e=(0,n.getContext)(),{id:t,openByDefault:o,accordionItems:c}=e;c.push({id:t,isOpen:o}),i.openPanelByHash()},hashChange:()=>{o=!1,i.openPanelByHash()}}},{lock:!0});
|
||||
Reference in New Issue
Block a user