[ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 /******/ // The require scope 2 /******/ var __webpack_require__ = {}; 3 /******/ 4 /************************************************************************/ 5 /******/ /* webpack/runtime/define property getters */ 6 /******/ (() => { 7 /******/ // define getter functions for harmony exports 8 /******/ __webpack_require__.d = (exports, definition) => { 9 /******/ for(var key in definition) { 10 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 11 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 12 /******/ } 13 /******/ } 14 /******/ }; 15 /******/ })(); 16 /******/ 17 /******/ /* webpack/runtime/hasOwnProperty shorthand */ 18 /******/ (() => { 19 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) 20 /******/ })(); 21 /******/ 22 /************************************************************************/ 23 var __webpack_exports__ = {}; 24 25 // EXPORTS 26 __webpack_require__.d(__webpack_exports__, { 27 zj: () => (/* reexport */ getConfig), 28 SD: () => (/* reexport */ getContext), 29 V6: () => (/* reexport */ getElement), 30 $K: () => (/* reexport */ getServerContext), 31 vT: () => (/* reexport */ getServerState), 32 jb: () => (/* reexport */ privateApis), 33 yT: () => (/* reexport */ splitTask), 34 M_: () => (/* reexport */ store), 35 hb: () => (/* reexport */ useCallback), 36 vJ: () => (/* reexport */ useEffect), 37 ip: () => (/* reexport */ useInit), 38 Nf: () => (/* reexport */ useLayoutEffect), 39 Kr: () => (/* reexport */ useMemo), 40 li: () => (/* reexport */ hooks_module_A), 41 J0: () => (/* reexport */ hooks_module_h), 42 FH: () => (/* reexport */ useWatch), 43 v4: () => (/* reexport */ withScope) 44 }); 45 46 ;// CONCATENATED MODULE: ./node_modules/preact/dist/preact.module.js 47 var preact_module_n,preact_module_l,preact_module_u,preact_module_t,i,preact_module_o,r,preact_module_f,e,preact_module_c,s,a,h={},v=[],p=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,y=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function w(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,o,r,f={};for(r in u)"key"==r?i=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?preact_module_n.call(arguments,2):t),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return g(l,f,i,o,null)}function g(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++preact_module_u:r,__i:-1,__u:0};return null==r&&null!=preact_module_l.vnode&&preact_module_l.vnode(f),f}function m(){return{current:null}}function b(n){return n.children}function k(n,l){this.props=n,this.context=l}function x(n,l){if(null==l)return n.__?x(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?x(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!P.__r++||preact_module_o!==preact_module_l.debounceRendering)&&((preact_module_o=preact_module_l.debounceRendering)||r)(P)}function P(){var n,u,t,o,r,e,c,s;for(i.sort(preact_module_f);n=i.shift();)n.__d&&(u=i.length,o=void 0,e=(r=(t=n).__v).__e,c=[],s=[],t.__P&&((o=d({},r)).__v=r.__v+1,preact_module_l.vnode&&preact_module_l.vnode(o),O(t.__P,o,r,t.__n,t.__P.namespaceURI,32&r.__u?[e]:null,c,null==e?x(r):e,!!(32&r.__u),s),o.__v=r.__v,o.__.__k[o.__i]=o,j(c,o,s),o.__e!=e&&C(o)),i.length>u&&i.sort(preact_module_f));P.__r=0}function S(n,l,u,t,i,o,r,f,e,c,s){var a,p,y,d,w,_=t&&t.__k||v,g=l.length;for(u.__d=e,$(u,l,_),e=u.__d,a=0;a<g;a++)null!=(y=u.__k[a])&&(p=-1===y.__i?h:_[y.__i]||h,y.__i=a,O(n,y,p,i,o,r,f,e,c,s),d=y.__e,y.ref&&p.ref!=y.ref&&(p.ref&&N(p.ref,null,y),s.push(y.ref,y.__c||d,y)),null==w&&null!=d&&(w=d),65536&y.__u||p.__k===y.__k?e=I(y,e,n):"function"==typeof y.type&&void 0!==y.__d?e=y.__d:d&&(e=d.nextSibling),y.__d=void 0,y.__u&=-196609);u.__d=e,u.__e=w}function $(n,l,u){var t,i,o,r,f,e=l.length,c=u.length,s=c,a=0;for(n.__k=[],t=0;t<e;t++)null!=(i=l[t])&&"boolean"!=typeof i&&"function"!=typeof i?(r=t+a,(i=n.__k[t]="string"==typeof i||"number"==typeof i||"bigint"==typeof i||i.constructor==String?g(null,i,null,null,null):y(i)?g(b,{children:i},null,null,null):void 0===i.constructor&&i.__b>0?g(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i).__=n,i.__b=n.__b+1,o=null,-1!==(f=i.__i=L(i,u,r,s))&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,"function"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f==r-1?a--:f==r+1?a++:(f>r?a--:a++,i.__u|=65536))):i=n.__k[t]=null;if(s)for(t=0;t<c;t++)null!=(o=u[t])&&0==(131072&o.__u)&&(o.__e==n.__d&&(n.__d=x(o)),V(o,o))}function I(n,l,u){var t,i;if("function"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=I(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!u.contains(l)&&(l=x(n)),u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8===l.nodeType);return l}function H(n,l){return l=l||[],null==n||"boolean"==typeof n||(y(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i=n.key,o=n.type,r=u-1,f=u+1,e=l[u];if(null===e||e&&i==e.key&&o===e.type&&0==(131072&e.__u))return u;if(t>(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f<l.length;){if(r>=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f<l.length){if((e=l[f])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return f;f++}}return-1}function T(n,l,u){"-"===l[0]?n.setProperty(l,null==u?"":u):n[l]=null==u?"":"number"!=typeof u||p.test(l)?u:u+"px"}function A(n,l,u,t,i){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof t&&(n.style.cssText=t=""),t)for(l in t)u&&l in u||T(n.style,l,"");if(u)for(l in u)t&&u[l]===t[l]||T(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/(PointerCapture)$|Capture$/i,"$1")),l=l.toLowerCase()in n||"onFocusOut"===l||"onFocusIn"===l?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?t?u.u=t.u:(u.u=e,n.addEventListener(l,o?s:preact_module_c,o)):n.removeEventListener(l,o?s:preact_module_c,o);else{if("http://www.w3.org/2000/svg"==i)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=l&&"height"!=l&&"href"!=l&&"list"!=l&&"form"!=l&&"tabIndex"!=l&&"download"!=l&&"rowSpan"!=l&&"colSpan"!=l&&"role"!=l&&"popover"!=l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&"-"!==l[4]?n.removeAttribute(l):n.setAttribute(l,"popover"==l&&1==u?"":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=e++;else if(u.t<t.u)return;return t(preact_module_l.event?preact_module_l.event(u):u)}}}function O(n,u,t,i,o,r,f,e,c,s){var a,h,v,p,w,_,g,m,x,C,M,P,$,I,H,L,T=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),r=[e=u.__e=t.__e]),(a=preact_module_l.__b)&&a(u);n:if("function"==typeof T)try{if(m=u.props,x="prototype"in T&&T.prototype.render,C=(a=T.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?g=(h=u.__c=t.__c).__=h.__E:(x?u.__c=h=new T(m,M):(u.__c=h=new k(m,M),h.constructor=T,h.render=q),C&&C.sub(h),h.props=m,h.state||(h.state={}),h.context=M,h.__n=i,v=h.__d=!0,h.__h=[],h._sb=[]),x&&null==h.__s&&(h.__s=h.state),x&&null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,T.getDerivedStateFromProps(m,h.__s))),p=h.props,w=h.state,h.__v=u,v)x&&null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),x&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(x&&null==T.getDerivedStateFromProps&&m!==p&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,M),!h.__e&&(null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,M)||u.__v===t.__v)){for(u.__v!==t.__v&&(h.props=m,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),P=0;P<h._sb.length;P++)h.__h.push(h._sb[P]);h._sb=[],h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,M),x&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(p,w,_)})}if(h.context=M,h.props=m,h.__P=n,h.__e=!1,$=preact_module_l.__r,I=0,x){for(h.state=h.__s,h.__d=!1,$&&$(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,$&&$(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++I<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),x&&!v&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(p,w)),S(n,y(L=null!=a&&a.type===b&&null==a.key?a.props.children:a)?L:[L],u,t,i,o,r,f,e,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&f.push(h),g&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=r){for(u.__u|=c?160:32;e&&8===e.nodeType&&e.nextSibling;)e=e.nextSibling;r[r.indexOf(e)]=null,u.__e=e}else u.__e=t.__e,u.__k=t.__k;preact_module_l.__e(n,u,t)}else null==r&&u.__v===t.__v?(u.__k=t.__k,u.__e=t.__e):u.__e=z(t.__e,u,t,i,o,r,f,c,s);(a=preact_module_l.diffed)&&a(u)}function j(n,u,t){u.__d=void 0;for(var i=0;i<t.length;i++)N(t[i],t[++i],t[++i]);preact_module_l.__c&&preact_module_l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){preact_module_l.__e(n,u.__v)}})}function z(u,t,i,o,r,f,e,c,s){var a,v,p,d,_,g,m,b=i.props,k=t.props,C=t.type;if("svg"===C?r="http://www.w3.org/2000/svg":"math"===C?r="http://www.w3.org/1998/Math/MathML":r||(r="http://www.w3.org/1999/xhtml"),null!=f)for(a=0;a<f.length;a++)if((_=f[a])&&"setAttribute"in _==!!C&&(C?_.localName===C:3===_.nodeType)){u=_,f[a]=null;break}if(null==u){if(null===C)return document.createTextNode(k);u=document.createElementNS(r,C,k.is&&k),c&&(preact_module_l.__m&&preact_module_l.__m(t,f),c=!1),f=null}if(null===C)b===k||c&&u.data===k||(u.data=k);else{if(f=f&&preact_module_n.call(u.childNodes),b=i.props||h,!c&&null!=f)for(b={},a=0;a<u.attributes.length;a++)b[(_=u.attributes[a]).name]=_.value;for(a in b)if(_=b[a],"children"==a);else if("dangerouslySetInnerHTML"==a)p=_;else if(!(a in k)){if("value"==a&&"defaultValue"in k||"checked"==a&&"defaultChecked"in k)continue;A(u,a,null,_,r)}for(a in k)_=k[a],"children"==a?d=_:"dangerouslySetInnerHTML"==a?v=_:"value"==a?g=_:"checked"==a?m=_:c&&"function"!=typeof _||b[a]===_||A(u,a,_,b[a],r);if(v)c||p&&(v.__html===p.__html||v.__html===u.innerHTML)||(u.innerHTML=v.__html),t.__k=[];else if(p&&(u.innerHTML=""),S(u,y(d)?d:[d],t,i,o,"foreignObject"===C?"http://www.w3.org/1999/xhtml":r,f,e,f?f[0]:i.__k&&x(i,0),c,s),null!=f)for(a=f.length;a--;)w(f[a]);c||(a="value","progress"===C&&null==g?u.removeAttribute("value"):void 0!==g&&(g!==u[a]||"progress"===C&&!g||"option"===C&&g!==b[a])&&A(u,a,g,b[a],r),a="checked",void 0!==m&&m!==u[a]&&A(u,a,m,b[a],r))}return u}function N(n,u,t){try{if("function"==typeof n){var i="function"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){preact_module_l.__e(n,t)}}function V(n,u,t){var i,o;if(preact_module_l.unmount&&preact_module_l.unmount(n),(i=n.ref)&&(i.current&&i.current!==n.__e||N(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){preact_module_l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(o=0;o<i.length;o++)i[o]&&V(i[o],u,t||"function"!=typeof n.type);t||w(n.__e),n.__c=n.__=n.__e=n.__d=void 0}function q(n,l,u){return this.constructor(n,u)}function B(u,t,i){var o,r,f,e;preact_module_l.__&&preact_module_l.__(u,t),r=(o="function"==typeof i)?null:i&&i.__k||t.__k,f=[],e=[],O(t,u=(!o&&i||t).__k=_(b,null,[u]),r||h,h,t.namespaceURI,!o&&i?[i]:r?null:t.firstChild?preact_module_n.call(t.childNodes):null,f,!o&&i?i:r?r.__e:t.firstChild,o,e),j(f,u,e)}function D(n,l){B(n,l,D)}function E(l,u,t){var i,o,r,f,e=d({},l.props);for(r in l.type&&l.type.defaultProps&&(f=l.type.defaultProps),u)"key"==r?i=u[r]:"ref"==r?o=u[r]:e[r]=void 0===u[r]&&void 0!==f?f[r]:u[r];return arguments.length>2&&(e.children=arguments.length>3?preact_module_n.call(arguments,2):t),g(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l="__cC"+a++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}preact_module_n=v.slice,preact_module_l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},preact_module_u=0,preact_module_t=function(n){return null!=n&&null==n.constructor},k.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),"function"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},k.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},k.prototype.render=b,i=[],r="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,preact_module_f=function(n,l){return n.__v.__b-l.__v.__b},P.__r=0,e=0,preact_module_c=F(!1),s=F(!0),a=0; 48 49 ;// CONCATENATED MODULE: ./node_modules/preact/devtools/dist/devtools.module.js 50 var devtools_module_i;function devtools_module_t(o,e){return n.__a&&n.__a(e),o}null!=(devtools_module_i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0)&&devtools_module_i.__PREACT_DEVTOOLS__&&devtools_module_i.__PREACT_DEVTOOLS__.attachPreact("10.24.0",preact_module_l,{Fragment:b,Component:k}); 51 52 ;// CONCATENATED MODULE: ./node_modules/preact/debug/dist/debug.module.js 53 var debug_module_o={};function debug_module_r(){debug_module_o={}}function debug_module_a(e){return e.type===b?"Fragment":"function"==typeof e.type?e.type.displayName||e.type.name:"string"==typeof e.type?e.type:"#text"}var debug_module_i=[],debug_module_s=[];function debug_module_c(){return debug_module_i.length>0?debug_module_i[debug_module_i.length-1]:null}var l=!0;function debug_module_u(e){return"function"==typeof e.type&&e.type!=b}function debug_module_f(n){for(var e=[n],t=n;null!=t.__o;)e.push(t.__o),t=t.__o;return e.reduce(function(n,e){n+=" in "+debug_module_a(e);var t=e.__source;return t?n+=" (at "+t.fileName+":"+t.lineNumber+")":l&&console.warn("Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons."),l=!1,n+"\n"},"")}var debug_module_d="function"==typeof WeakMap;function debug_module_p(n){var e=[];return n.__k?(n.__k.forEach(function(n){n&&"function"==typeof n.type?e.push.apply(e,debug_module_p(n)):n&&"string"==typeof n.type&&e.push(n.type)}),e):e}function debug_module_h(n){return n?"function"==typeof n.type?null==n.__?null!=n.__e&&null!=n.__e.parentNode?n.__e.parentNode.localName:"":debug_module_h(n.__):n.type:""}var debug_module_v=k.prototype.setState;function debug_module_y(n){return"table"===n||"tfoot"===n||"tbody"===n||"thead"===n||"td"===n||"tr"===n||"th"===n}k.prototype.setState=function(n,e){return null==this.__v&&null==this.state&&console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n'+debug_module_f(debug_module_c())),debug_module_v.call(this,n,e)};var debug_module_m=/^(address|article|aside|blockquote|details|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|main|menu|nav|ol|p|pre|search|section|table|ul)$/,debug_module_b=k.prototype.forceUpdate;function debug_module_w(n){var e=n.props,t=debug_module_a(n),o="";for(var r in e)if(e.hasOwnProperty(r)&&"children"!==r){var i=e[r];"function"==typeof i&&(i="function "+(i.displayName||i.name)+"() {}"),i=Object(i)!==i||i.toString?i+"":Object.prototype.toString.call(i),o+=" "+r+"="+JSON.stringify(i)}var s=e.children;return"<"+t+o+(s&&s.length?">..</"+t+">":" />")}k.prototype.forceUpdate=function(n){return null==this.__v?console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n'+debug_module_f(debug_module_c())):null==this.__P&&console.warn('Can\'t call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+debug_module_f(this.__v)),debug_module_b.call(this,n)},preact_module_l.__m=function(n,e){var t=n.type,o=e.map(function(n){return n.localName});console.error("Expected a DOM node of type "+t+" but found "+o.join(", ")+"as available DOM-node(s), this is caused by the SSR'd HTML containing different DOM-nodes compared to the hydrated one.\n\n"+debug_module_f(n))},function(){!function(){var n=preact_module_l.__b,t=preact_module_l.diffed,o=preact_module_l.__,r=preact_module_l.vnode,a=preact_module_l.__r;preact_module_l.diffed=function(n){debug_module_u(n)&&debug_module_s.pop(),debug_module_i.pop(),t&&t(n)},preact_module_l.__b=function(e){debug_module_u(e)&&debug_module_i.push(e),n&&n(e)},preact_module_l.__=function(n,e){debug_module_s=[],o&&o(n,e)},preact_module_l.vnode=function(n){n.__o=debug_module_s.length>0?debug_module_s[debug_module_s.length-1]:null,r&&r(n)},preact_module_l.__r=function(n){debug_module_u(n)&&debug_module_s.push(n),a&&a(n)}}();var n=!1,t=preact_module_l.__b,r=preact_module_l.diffed,c=preact_module_l.vnode,l=preact_module_l.__r,v=preact_module_l.__e,b=preact_module_l.__,g=preact_module_l.__h,E=debug_module_d?{useEffect:new WeakMap,useLayoutEffect:new WeakMap,lazyPropTypes:new WeakMap}:null,k=[];preact_module_l.__e=function(n,e,t,o){if(e&&e.__c&&"function"==typeof n.then){var r=n;n=new Error("Missing Suspense. The throwing component was: "+debug_module_a(e));for(var i=e;i;i=i.__)if(i.__c&&i.__c.__c){n=r;break}if(n instanceof Error)throw n}try{(o=o||{}).componentStack=debug_module_f(e),v(n,e,t,o),"function"!=typeof n.then&&setTimeout(function(){throw n})}catch(n){throw n}},preact_module_l.__=function(n,e){if(!e)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var t;switch(e.nodeType){case 1:case 11:case 9:t=!0;break;default:t=!1}if(!t){var o=debug_module_a(n);throw new Error("Expected a valid HTML node as a second argument to render.\tReceived "+e+" instead: render(<"+o+" />, "+e+");")}b&&b(n,e)},preact_module_l.__b=function(e){var r=e.type;if(n=!0,void 0===r)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+debug_module_w(e)+"\n\n"+debug_module_f(e));if(null!=r&&"object"==typeof r){if(void 0!==r.__k&&void 0!==r.__e)throw new Error("Invalid type passed to createElement(): "+r+"\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My"+debug_module_a(e)+" = "+debug_module_w(r)+";\n let vnode = <My"+debug_module_a(e)+" />;\n\nThis usually happens when you export a JSX literal and not the component.\n\n"+debug_module_f(e));throw new Error("Invalid type passed to createElement(): "+(Array.isArray(r)?"array":r))}if(void 0!==e.ref&&"function"!=typeof e.ref&&"object"!=typeof e.ref&&!("$$typeof"in e))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+"] instead\n"+debug_module_w(e)+"\n\n"+debug_module_f(e));if("string"==typeof e.type)for(var i in e.props)if("o"===i[0]&&"n"===i[1]&&"function"!=typeof e.props[i]&&null!=e.props[i])throw new Error("Component's \""+i+'" property should be a function, but got ['+typeof e.props[i]+"] instead\n"+debug_module_w(e)+"\n\n"+debug_module_f(e));if("function"==typeof e.type&&e.type.propTypes){if("Lazy"===e.type.displayName&&E&&!E.lazyPropTypes.has(e.type)){var s="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var c=e.type();E.lazyPropTypes.set(e.type,!0),console.warn(s+"Component wrapped in lazy() is "+debug_module_a(c))}catch(n){console.warn(s+"We will log the wrapped component's name once it is loaded.")}}var l=e.props;e.type.__f&&delete(l=function(n,e){for(var t in e)n[t]=e[t];return n}({},l)).ref,function(n,e,t,r,a){Object.keys(n).forEach(function(t){var i;try{i=n[t](e,t,r,"prop",null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(n){i=n}i&&!(i.message in debug_module_o)&&(debug_module_o[i.message]=!0,console.error("Failed prop type: "+i.message+(a&&"\n"+a()||"")))})}(e.type.propTypes,l,0,debug_module_a(e),function(){return debug_module_f(e)})}t&&t(e)};var T,_=0;preact_module_l.__r=function(e){l&&l(e),n=!0;var t=e.__c;if(t===T?_++:_=1,_>=25)throw new Error("Too many re-renders. This is limited to prevent an infinite loop which may lock up your browser. The component causing this is: "+debug_module_a(e));T=t},preact_module_l.__h=function(e,t,o){if(!e||!n)throw new Error("Hook can only be invoked from render methods.");g&&g(e,t,o)};var O=function(n,e){return{get:function(){var t="get"+n+e;k&&k.indexOf(t)<0&&(k.push(t),console.warn("getting vnode."+n+" is deprecated, "+e))},set:function(){var t="set"+n+e;k&&k.indexOf(t)<0&&(k.push(t),console.warn("setting vnode."+n+" is not allowed, "+e))}}},I={nodeName:O("nodeName","use vnode.type"),attributes:O("attributes","use vnode.props"),children:O("children","use vnode.props.children")},M=Object.create({},I);preact_module_l.vnode=function(n){var e=n.props;if(null!==n.type&&null!=e&&("__source"in e||"__self"in e)){var t=n.props={};for(var o in e){var r=e[o];"__source"===o?n.__source=r:"__self"===o?n.__self=r:t[o]=r}}n.__proto__=M,c&&c(n)},preact_module_l.diffed=function(e){var t,o=e.type,i=e.__;if(e.__k&&e.__k.forEach(function(n){if("object"==typeof n&&n&&void 0===n.type){var t=Object.keys(n).join(",");throw new Error("Objects are not valid as a child. Encountered an object with the keys {"+t+"}.\n\n"+debug_module_f(e))}}),e.__c===T&&(_=0),"string"==typeof o&&(debug_module_y(o)||"p"===o||"a"===o||"button"===o)){var s=debug_module_h(i);if(""!==s&&debug_module_y(o))"table"===o&&"td"!==s&&debug_module_y(s)?(console.log(s,i.__e),console.error("Improper nesting of table. Your <table> should not have a table-node parent."+debug_module_w(e)+"\n\n"+debug_module_f(e))):"thead"!==o&&"tfoot"!==o&&"tbody"!==o||"table"===s?"tr"===o&&"thead"!==s&&"tfoot"!==s&&"tbody"!==s?console.error("Improper nesting of table. Your <tr> should have a <thead/tbody/tfoot> parent."+debug_module_w(e)+"\n\n"+debug_module_f(e)):"td"===o&&"tr"!==s?console.error("Improper nesting of table. Your <td> should have a <tr> parent."+debug_module_w(e)+"\n\n"+debug_module_f(e)):"th"===o&&"tr"!==s&&console.error("Improper nesting of table. Your <th> should have a <tr>."+debug_module_w(e)+"\n\n"+debug_module_f(e)):console.error("Improper nesting of table. Your <thead/tbody/tfoot> should have a <table> parent."+debug_module_w(e)+"\n\n"+debug_module_f(e));else if("p"===o){var c=debug_module_p(e).filter(function(n){return debug_module_m.test(n)});c.length&&console.error("Improper nesting of paragraph. Your <p> should not have "+c.join(", ")+"as child-elements."+debug_module_w(e)+"\n\n"+debug_module_f(e))}else"a"!==o&&"button"!==o||-1!==debug_module_p(e).indexOf(o)&&console.error("Improper nesting of interactive content. Your <"+o+"> should not have other "+("a"===o?"anchor":"button")+" tags as child-elements."+debug_module_w(e)+"\n\n"+debug_module_f(e))}if(n=!1,r&&r(e),null!=e.__k)for(var l=[],u=0;u<e.__k.length;u++){var d=e.__k[u];if(d&&null!=d.key){var v=d.key;if(-1!==l.indexOf(v)){console.error('Following component has two or more children with the same key attribute: "'+v+'". This may cause glitches and misbehavior in rendering process. Component: \n\n'+debug_module_w(e)+"\n\n"+debug_module_f(e));break}l.push(v)}}if(null!=e.__c&&null!=e.__c.__H){var b=e.__c.__H.__;if(b)for(var g=0;g<b.length;g+=1){var E=b[g];if(E.__H)for(var k=0;k<E.__H.length;k++)if((t=E.__H[k])!=t){var O=debug_module_a(e);throw new Error("Invalid argument passed to hook. Hooks should not be called with NaN in the dependency array. Hook index "+g+" in component "+O+" was called with NaN.")}}}}}(); 54 55 ;// CONCATENATED MODULE: ./node_modules/preact/hooks/dist/hooks.module.js 56 var hooks_module_t,hooks_module_r,hooks_module_u,hooks_module_i,hooks_module_o=0,hooks_module_f=[],hooks_module_c=preact_module_l,hooks_module_e=hooks_module_c.__b,hooks_module_a=hooks_module_c.__r,hooks_module_v=hooks_module_c.diffed,hooks_module_l=hooks_module_c.__c,hooks_module_m=hooks_module_c.unmount,hooks_module_s=hooks_module_c.__;function hooks_module_d(n,t){hooks_module_c.__h&&hooks_module_c.__h(hooks_module_r,n,hooks_module_o||t),hooks_module_o=0;var u=hooks_module_r.__H||(hooks_module_r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function hooks_module_h(n){return hooks_module_o=1,hooks_module_p(hooks_module_D,n)}function hooks_module_p(n,u,i){var o=hooks_module_d(hooks_module_t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):hooks_module_D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=hooks_module_r,!hooks_module_r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};hooks_module_r.u=!0;var c=hooks_module_r.shouldComponentUpdate,e=hooks_module_r.componentWillUpdate;hooks_module_r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},hooks_module_r.shouldComponentUpdate=f}return o.__N||o.__}function hooks_module_y(n,u){var i=hooks_module_d(hooks_module_t++,3);!hooks_module_c.__s&&hooks_module_C(i.__H,u)&&(i.__=n,i.i=u,hooks_module_r.__H.__h.push(i))}function hooks_module_(n,u){var i=hooks_module_d(hooks_module_t++,4);!hooks_module_c.__s&&hooks_module_C(i.__H,u)&&(i.__=n,i.i=u,hooks_module_r.__h.push(i))}function hooks_module_A(n){return hooks_module_o=5,hooks_module_T(function(){return{current:n}},[])}function hooks_module_F(n,t,r){hooks_module_o=6,hooks_module_(function(){return"function"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function hooks_module_T(n,r){var u=hooks_module_d(hooks_module_t++,7);return hooks_module_C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function hooks_module_q(n,t){return hooks_module_o=8,hooks_module_T(function(){return n},t)}function hooks_module_x(n){var u=hooks_module_r.context[n.__c],i=hooks_module_d(hooks_module_t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(hooks_module_r)),u.props.value):n.__}function hooks_module_P(n,t){hooks_module_c.useDebugValue&&hooks_module_c.useDebugValue(t?t(n):n)}function hooks_module_b(n){var u=hooks_module_d(hooks_module_t++,10),i=hooks_module_h();return u.__=n,hooks_module_r.componentDidCatch||(hooks_module_r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function hooks_module_g(){var n=hooks_module_d(hooks_module_t++,11);if(!n.__){for(var u=hooks_module_r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__="P"+i[0]+"-"+i[1]++}return n.__}function hooks_module_j(){for(var n;n=hooks_module_f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(hooks_module_z),n.__H.__h.forEach(hooks_module_B),n.__H.__h=[]}catch(t){n.__H.__h=[],hooks_module_c.__e(t,n.__v)}}hooks_module_c.__b=function(n){hooks_module_r=null,hooks_module_e&&hooks_module_e(n)},hooks_module_c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),hooks_module_s&&hooks_module_s(n,t)},hooks_module_c.__r=function(n){hooks_module_a&&hooks_module_a(n),hooks_module_t=0;var i=(hooks_module_r=n.__c).__H;i&&(hooks_module_u===hooks_module_r?(i.__h=[],hooks_module_r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.i=n.__N=void 0})):(i.__h.forEach(hooks_module_z),i.__h.forEach(hooks_module_B),i.__h=[],hooks_module_t=0)),hooks_module_u=hooks_module_r},hooks_module_c.diffed=function(n){hooks_module_v&&hooks_module_v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==hooks_module_f.push(t)&&hooks_module_i===hooks_module_c.requestAnimationFrame||((hooks_module_i=hooks_module_c.requestAnimationFrame)||hooks_module_w)(hooks_module_j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.i=void 0})),hooks_module_u=hooks_module_r=null},hooks_module_c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(hooks_module_z),n.__h=n.__h.filter(function(n){return!n.__||hooks_module_B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],hooks_module_c.__e(r,n.__v)}}),hooks_module_l&&hooks_module_l(n,t)},hooks_module_c.unmount=function(n){hooks_module_m&&hooks_module_m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{hooks_module_z(n)}catch(n){t=n}}),r.__H=void 0,t&&hooks_module_c.__e(t,r.__v))};var hooks_module_k="function"==typeof requestAnimationFrame;function hooks_module_w(n){var t,r=function(){clearTimeout(u),hooks_module_k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);hooks_module_k&&(t=requestAnimationFrame(r))}function hooks_module_z(n){var t=hooks_module_r,u=n.__c;"function"==typeof u&&(n.__c=void 0,u()),hooks_module_r=t}function hooks_module_B(n){var t=hooks_module_r;n.__c=n.__(),hooks_module_r=t}function hooks_module_C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function hooks_module_D(n,t){return"function"==typeof t?t(n):t} 57 58 ;// CONCATENATED MODULE: ./node_modules/@preact/signals-core/dist/signals-core.module.js 59 var signals_core_module_i=Symbol.for("preact-signals");function signals_core_module_t(){if(!(signals_core_module_s>1)){var i,t=!1;while(void 0!==signals_core_module_h){var r=signals_core_module_h;signals_core_module_h=void 0;signals_core_module_f++;while(void 0!==r){var o=r.o;r.o=void 0;r.f&=-3;if(!(8&r.f)&&signals_core_module_c(r))try{r.c()}catch(r){if(!t){i=r;t=!0}}r=o}}signals_core_module_f=0;signals_core_module_s--;if(t)throw i}else signals_core_module_s--}function signals_core_module_r(i){if(signals_core_module_s>0)return i();signals_core_module_s++;try{return i()}finally{signals_core_module_t()}}var signals_core_module_o=void 0;function signals_core_module_n(i){var t=signals_core_module_o;signals_core_module_o=void 0;try{return i()}finally{signals_core_module_o=t}}var signals_core_module_h=void 0,signals_core_module_s=0,signals_core_module_f=0,signals_core_module_v=0;function signals_core_module_e(i){if(void 0!==signals_core_module_o){var t=i.n;if(void 0===t||t.t!==signals_core_module_o){t={i:0,S:i,p:signals_core_module_o.s,n:void 0,t:signals_core_module_o,e:void 0,x:void 0,r:t};if(void 0!==signals_core_module_o.s)signals_core_module_o.s.n=t;signals_core_module_o.s=t;i.n=t;if(32&signals_core_module_o.f)i.S(t);return t}else if(-1===t.i){t.i=0;if(void 0!==t.n){t.n.p=t.p;if(void 0!==t.p)t.p.n=t.n;t.p=signals_core_module_o.s;t.n=void 0;signals_core_module_o.s.n=t;signals_core_module_o.s=t}return t}}}function signals_core_module_u(i){this.v=i;this.i=0;this.n=void 0;this.t=void 0}signals_core_module_u.prototype.brand=signals_core_module_i;signals_core_module_u.prototype.h=function(){return!0};signals_core_module_u.prototype.S=function(i){if(this.t!==i&&void 0===i.e){i.x=this.t;if(void 0!==this.t)this.t.e=i;this.t=i}};signals_core_module_u.prototype.U=function(i){if(void 0!==this.t){var t=i.e,r=i.x;if(void 0!==t){t.x=r;i.e=void 0}if(void 0!==r){r.e=t;i.x=void 0}if(i===this.t)this.t=r}};signals_core_module_u.prototype.subscribe=function(i){var t=this;return signals_core_module_E(function(){var r=t.value,n=signals_core_module_o;signals_core_module_o=void 0;try{i(r)}finally{signals_core_module_o=n}})};signals_core_module_u.prototype.valueOf=function(){return this.value};signals_core_module_u.prototype.toString=function(){return this.value+""};signals_core_module_u.prototype.toJSON=function(){return this.value};signals_core_module_u.prototype.peek=function(){var i=signals_core_module_o;signals_core_module_o=void 0;try{return this.value}finally{signals_core_module_o=i}};Object.defineProperty(signals_core_module_u.prototype,"value",{get:function(){var i=signals_core_module_e(this);if(void 0!==i)i.i=this.i;return this.v},set:function(i){if(i!==this.v){if(signals_core_module_f>100)throw new Error("Cycle detected");this.v=i;this.i++;signals_core_module_v++;signals_core_module_s++;try{for(var r=this.t;void 0!==r;r=r.x)r.t.N()}finally{signals_core_module_t()}}}});function signals_core_module_d(i){return new signals_core_module_u(i)}function signals_core_module_c(i){for(var t=i.s;void 0!==t;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function signals_core_module_a(i){for(var t=i.s;void 0!==t;t=t.n){var r=t.S.n;if(void 0!==r)t.r=r;t.S.n=t;t.i=-1;if(void 0===t.n){i.s=t;break}}}function signals_core_module_l(i){var t=i.s,r=void 0;while(void 0!==t){var o=t.p;if(-1===t.i){t.S.U(t);if(void 0!==o)o.n=t.n;if(void 0!==t.n)t.n.p=o}else r=t;t.S.n=t.r;if(void 0!==t.r)t.r=void 0;t=o}i.s=r}function signals_core_module_y(i){signals_core_module_u.call(this,void 0);this.x=i;this.s=void 0;this.g=signals_core_module_v-1;this.f=4}(signals_core_module_y.prototype=new signals_core_module_u).h=function(){this.f&=-3;if(1&this.f)return!1;if(32==(36&this.f))return!0;this.f&=-5;if(this.g===signals_core_module_v)return!0;this.g=signals_core_module_v;this.f|=1;if(this.i>0&&!signals_core_module_c(this)){this.f&=-2;return!0}var i=signals_core_module_o;try{signals_core_module_a(this);signals_core_module_o=this;var t=this.x();if(16&this.f||this.v!==t||0===this.i){this.v=t;this.f&=-17;this.i++}}catch(i){this.v=i;this.f|=16;this.i++}signals_core_module_o=i;signals_core_module_l(this);this.f&=-2;return!0};signals_core_module_y.prototype.S=function(i){if(void 0===this.t){this.f|=36;for(var t=this.s;void 0!==t;t=t.n)t.S.S(t)}signals_core_module_u.prototype.S.call(this,i)};signals_core_module_y.prototype.U=function(i){if(void 0!==this.t){signals_core_module_u.prototype.U.call(this,i);if(void 0===this.t){this.f&=-33;for(var t=this.s;void 0!==t;t=t.n)t.S.U(t)}}};signals_core_module_y.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var i=this.t;void 0!==i;i=i.x)i.t.N()}};Object.defineProperty(signals_core_module_y.prototype,"value",{get:function(){if(1&this.f)throw new Error("Cycle detected");var i=signals_core_module_e(this);this.h();if(void 0!==i)i.i=this.i;if(16&this.f)throw this.v;return this.v}});function signals_core_module_w(i){return new signals_core_module_y(i)}function signals_core_module_(i){var r=i.u;i.u=void 0;if("function"==typeof r){signals_core_module_s++;var n=signals_core_module_o;signals_core_module_o=void 0;try{r()}catch(t){i.f&=-2;i.f|=8;signals_core_module_g(i);throw t}finally{signals_core_module_o=n;signals_core_module_t()}}}function signals_core_module_g(i){for(var t=i.s;void 0!==t;t=t.n)t.S.U(t);i.x=void 0;i.s=void 0;signals_core_module_(i)}function signals_core_module_p(i){if(signals_core_module_o!==this)throw new Error("Out-of-order effect");signals_core_module_l(this);signals_core_module_o=i;this.f&=-2;if(8&this.f)signals_core_module_g(this);signals_core_module_t()}function signals_core_module_b(i){this.x=i;this.u=void 0;this.s=void 0;this.o=void 0;this.f=32}signals_core_module_b.prototype.c=function(){var i=this.S();try{if(8&this.f)return;if(void 0===this.x)return;var t=this.x();if("function"==typeof t)this.u=t}finally{i()}};signals_core_module_b.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1;this.f&=-9;signals_core_module_(this);signals_core_module_a(this);signals_core_module_s++;var i=signals_core_module_o;signals_core_module_o=this;return signals_core_module_p.bind(this,i)};signals_core_module_b.prototype.N=function(){if(!(2&this.f)){this.f|=2;this.o=signals_core_module_h;signals_core_module_h=this}};signals_core_module_b.prototype.d=function(){this.f|=8;if(!(1&this.f))signals_core_module_g(this)};function signals_core_module_E(i){var t=new signals_core_module_b(i);try{t.c()}catch(i){t.d();throw i}return t.d.bind(t)} 60 ;// CONCATENATED MODULE: ./node_modules/@preact/signals/dist/signals.module.js 61 var signals_module_v,signals_module_s;function signals_module_l(n,i){preact_module_l[n]=i.bind(null,preact_module_l[n]||function(){})}function signals_module_d(n){if(signals_module_s)signals_module_s();signals_module_s=n&&n.S()}function signals_module_p(n){var r=this,f=n.data,o=useSignal(f);o.value=f;var e=hooks_module_T(function(){var n=r.__v;while(n=n.__)if(n.__c){n.__c.__$f|=4;break}r.__$u.c=function(){var n;if(!preact_module_t(e.peek())&&3===(null==(n=r.base)?void 0:n.nodeType))r.base.data=e.peek();else{r.__$f|=1;r.setState({})}};return signals_core_module_w(function(){var n=o.value.value;return 0===n?0:!0===n?"":n||""})},[]);return e.value}signals_module_p.displayName="_st";Object.defineProperties(signals_core_module_u.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:signals_module_p},props:{configurable:!0,get:function(){return{data:this}}},__b:{configurable:!0,value:1}});signals_module_l("__b",function(n,r){if("string"==typeof r.type){var i,t=r.props;for(var f in t)if("children"!==f){var o=t[f];if(o instanceof signals_core_module_u){if(!i)r.__np=i={};i[f]=o;t[f]=o.peek()}}}n(r)});signals_module_l("__r",function(n,r){signals_module_d();var i,t=r.__c;if(t){t.__$f&=-2;if(void 0===(i=t.__$u))t.__$u=i=function(n){var r;signals_core_module_E(function(){r=this});r.c=function(){t.__$f|=1;t.setState({})};return r}()}signals_module_v=t;signals_module_d(i);n(r)});signals_module_l("__e",function(n,r,i,t){signals_module_d();signals_module_v=void 0;n(r,i,t)});signals_module_l("diffed",function(n,r){signals_module_d();signals_module_v=void 0;var i;if("string"==typeof r.type&&(i=r.__e)){var t=r.__np,f=r.props;if(t){var o=i.U;if(o)for(var e in o){var u=o[e];if(void 0!==u&&!(e in t)){u.d();o[e]=void 0}}else i.U=o={};for(var a in t){var c=o[a],s=t[a];if(void 0===c){c=signals_module_(i,a,s,f);o[a]=c}else c.o(s,f)}}}n(r)});function signals_module_(n,r,i,t){var f=r in n&&void 0===n.ownerSVGElement,o=signals_core_module_d(i);return{o:function(n,r){o.value=n;t=r},d:signals_core_module_E(function(){var i=o.value.value;if(t[r]!==i){t[r]=i;if(f)n[r]=i;else if(i)n.setAttribute(r,i);else n.removeAttribute(r)}})}}signals_module_l("unmount",function(n,r){if("string"==typeof r.type){var i=r.__e;if(i){var t=i.U;if(t){i.U=void 0;for(var f in t){var o=t[f];if(o)o.d()}}}}else{var e=r.__c;if(e){var u=e.__$u;if(u){e.__$u=void 0;u.d()}}}n(r)});signals_module_l("__h",function(n,r,i,t){if(t<3||9===t)r.__$f|=2;n(r,i,t)});k.prototype.shouldComponentUpdate=function(n,r){var i=this.__$u;if(!(i&&void 0!==i.s||4&this.__$f))return!0;if(3&this.__$f)return!0;for(var t in r)return!0;for(var f in n)if("__source"!==f&&n[f]!==this.props[f])return!0;for(var o in this.props)if(!(o in n))return!0;return!1};function useSignal(n){return hooks_module_T(function(){return signals_core_module_d(n)},[])}function useComputed(n){var r=f(n);r.current=n;signals_module_v.__$f|=4;return t(function(){return u(function(){return r.current()})},[])}function useSignalEffect(n){var r=f(n);r.current=n;o(function(){return c(function(){return r.current()})},[])} 62 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/namespaces.js 63 const namespaceStack = []; 64 const getNamespace = () => namespaceStack.slice(-1)[0]; 65 const setNamespace = namespace => { 66 namespaceStack.push(namespace); 67 }; 68 const resetNamespace = () => { 69 namespaceStack.pop(); 70 }; 71 72 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/scopes.js 73 /** 74 * External dependencies 75 */ 76 77 /** 78 * Internal dependencies 79 */ 80 81 // Store stacks for the current scope and the default namespaces and export APIs 82 // to interact with them. 83 const scopeStack = []; 84 const getScope = () => scopeStack.slice(-1)[0]; 85 const setScope = scope => { 86 scopeStack.push(scope); 87 }; 88 const resetScope = () => { 89 scopeStack.pop(); 90 }; 91 92 // Wrap the element props to prevent modifications. 93 const immutableMap = new WeakMap(); 94 const immutableError = () => { 95 throw new Error('Please use `data-wp-bind` to modify the attributes of an element.'); 96 }; 97 const immutableHandlers = { 98 get(target, key, receiver) { 99 const value = Reflect.get(target, key, receiver); 100 return !!value && typeof value === 'object' ? deepImmutable(value) : value; 101 }, 102 set: immutableError, 103 deleteProperty: immutableError 104 }; 105 const deepImmutable = target => { 106 if (!immutableMap.has(target)) { 107 immutableMap.set(target, new Proxy(target, immutableHandlers)); 108 } 109 return immutableMap.get(target); 110 }; 111 112 /** 113 * Retrieves the context inherited by the element evaluating a function from the 114 * store. The returned value depends on the element and the namespace where the 115 * function calling `getContext()` exists. 116 * 117 * @param namespace Store namespace. By default, the namespace where the calling 118 * function exists is used. 119 * @return The context content. 120 */ 121 const getContext = namespace => { 122 const scope = getScope(); 123 if (true) { 124 if (!scope) { 125 throw Error('Cannot call `getContext()` when there is no scope. If you are using an async function, please consider using a generator instead. If you are using some sort of async callbacks, like `setTimeout`, please wrap the callback with `withScope(callback)`.'); 126 } 127 } 128 return scope.context[namespace || getNamespace()]; 129 }; 130 131 /** 132 * Retrieves a representation of the element where a function from the store 133 * is being evalutated. Such representation is read-only, and contains a 134 * reference to the DOM element, its props and a local reactive state. 135 * 136 * @return Element representation. 137 */ 138 const getElement = () => { 139 const scope = getScope(); 140 if (true) { 141 if (!scope) { 142 throw Error('Cannot call `getElement()` when there is no scope. If you are using an async function, please consider using a generator instead. If you are using some sort of async callbacks, like `setTimeout`, please wrap the callback with `withScope(callback)`.'); 143 } 144 } 145 const { 146 ref, 147 attributes 148 } = scope; 149 return Object.freeze({ 150 ref: ref.current, 151 attributes: deepImmutable(attributes) 152 }); 153 }; 154 155 /** 156 * Retrieves the part of the inherited context defined and updated from the 157 * server. 158 * 159 * The object returned is read-only, and includes the context defined in PHP 160 * with `wp_interactivity_data_wp_context()`, including the corresponding 161 * inherited properties. When `actions.navigate()` is called, this object is 162 * updated to reflect the changes in the new visited page, without affecting the 163 * context returned by `getContext()`. Directives can subscribe to those changes 164 * to update the context if needed. 165 * 166 * @example 167 * ```js 168 * store('...', { 169 * callbacks: { 170 * updateServerContext() { 171 * const context = getContext(); 172 * const serverContext = getServerContext(); 173 * // Override some property with the new value that came from the server. 174 * context.overridableProp = serverContext.overridableProp; 175 * }, 176 * }, 177 * }); 178 * ``` 179 * 180 * @param namespace Store namespace. By default, the namespace where the calling 181 * function exists is used. 182 * @return The server context content. 183 */ 184 const getServerContext = namespace => { 185 const scope = getScope(); 186 if (true) { 187 if (!scope) { 188 throw Error('Cannot call `getServerContext()` when there is no scope. If you are using an async function, please consider using a generator instead. If you are using some sort of async callbacks, like `setTimeout`, please wrap the callback with `withScope(callback)`.'); 189 } 190 } 191 return scope.serverContext[namespace || getNamespace()]; 192 }; 193 194 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/utils.js 195 /** 196 * External dependencies 197 */ 198 199 200 201 /** 202 * Internal dependencies 203 */ 204 205 206 /** 207 * Executes a callback function after the next frame is rendered. 208 * 209 * @param callback The callback function to be executed. 210 * @return A promise that resolves after the callback function is executed. 211 */ 212 const afterNextFrame = callback => { 213 return new Promise(resolve => { 214 const done = () => { 215 clearTimeout(timeout); 216 window.cancelAnimationFrame(raf); 217 setTimeout(() => { 218 callback(); 219 resolve(); 220 }); 221 }; 222 const timeout = setTimeout(done, 100); 223 const raf = window.requestAnimationFrame(done); 224 }); 225 }; 226 227 /** 228 * Returns a promise that resolves after yielding to main. 229 * 230 * @return Promise 231 */ 232 const splitTask = () => { 233 return new Promise(resolve => { 234 // TODO: Use scheduler.yield() when available. 235 setTimeout(resolve, 0); 236 }); 237 }; 238 239 /** 240 * Creates a Flusher object that can be used to flush computed values and notify listeners. 241 * 242 * Using the mangled properties: 243 * this.c: this._callback 244 * this.x: this._compute 245 * https://github.com/preactjs/signals/blob/main/mangle.json 246 * 247 * @param compute The function that computes the value to be flushed. 248 * @param notify The function that notifies listeners when the value is flushed. 249 * @return The Flusher object with `flush` and `dispose` properties. 250 */ 251 function createFlusher(compute, notify) { 252 let flush = () => undefined; 253 const dispose = signals_core_module_E(function () { 254 flush = this.c.bind(this); 255 this.x = compute; 256 this.c = notify; 257 return compute(); 258 }); 259 return { 260 flush, 261 dispose 262 }; 263 } 264 265 /** 266 * Custom hook that executes a callback function whenever a signal is triggered. 267 * Version of `useSignalEffect` with a `useEffect`-like execution. This hook 268 * implementation comes from this PR, but we added short-cirtuiting to avoid 269 * infinite loops: https://github.com/preactjs/signals/pull/290 270 * 271 * @param callback The callback function to be executed. 272 */ 273 function utils_useSignalEffect(callback) { 274 hooks_module_y(() => { 275 let eff = null; 276 let isExecuting = false; 277 const notify = async () => { 278 if (eff && !isExecuting) { 279 isExecuting = true; 280 await afterNextFrame(eff.flush); 281 isExecuting = false; 282 } 283 }; 284 eff = createFlusher(callback, notify); 285 return eff.dispose; 286 }, []); 287 } 288 289 /** 290 * Returns the passed function wrapped with the current scope so it is 291 * accessible whenever the function runs. This is primarily to make the scope 292 * available inside hook callbacks. 293 * 294 * Asyncronous functions should use generators that yield promises instead of awaiting them. 295 * See the documentation for details: https://developer.wordpress.org/block-editor/reference-guides/packages/packages-interactivity/packages-interactivity-api-reference/#the-store 296 * 297 * @param func The passed function. 298 * @return The wrapped function. 299 */ 300 301 function withScope(func) { 302 const scope = getScope(); 303 const ns = getNamespace(); 304 if (func?.constructor?.name === 'GeneratorFunction') { 305 return async (...args) => { 306 const gen = func(...args); 307 let value; 308 let it; 309 while (true) { 310 setNamespace(ns); 311 setScope(scope); 312 try { 313 it = gen.next(value); 314 } finally { 315 resetScope(); 316 resetNamespace(); 317 } 318 try { 319 value = await it.value; 320 } catch (e) { 321 setNamespace(ns); 322 setScope(scope); 323 gen.throw(e); 324 } finally { 325 resetScope(); 326 resetNamespace(); 327 } 328 if (it.done) { 329 break; 330 } 331 } 332 return value; 333 }; 334 } 335 return (...args) => { 336 setNamespace(ns); 337 setScope(scope); 338 try { 339 return func(...args); 340 } finally { 341 resetNamespace(); 342 resetScope(); 343 } 344 }; 345 } 346 347 /** 348 * Accepts a function that contains imperative code which runs whenever any of 349 * the accessed _reactive_ properties (e.g., values from the global state or the 350 * context) is modified. 351 * 352 * This hook makes the element's scope available so functions like 353 * `getElement()` and `getContext()` can be used inside the passed callback. 354 * 355 * @param callback The hook callback. 356 */ 357 function useWatch(callback) { 358 utils_useSignalEffect(withScope(callback)); 359 } 360 361 /** 362 * Accepts a function that contains imperative code which runs only after the 363 * element's first render, mainly useful for intialization logic. 364 * 365 * This hook makes the element's scope available so functions like 366 * `getElement()` and `getContext()` can be used inside the passed callback. 367 * 368 * @param callback The hook callback. 369 */ 370 function useInit(callback) { 371 hooks_module_y(withScope(callback), []); 372 } 373 374 /** 375 * Accepts a function that contains imperative, possibly effectful code. The 376 * effects run after browser paint, without blocking it. 377 * 378 * This hook is equivalent to Preact's `useEffect` and makes the element's scope 379 * available so functions like `getElement()` and `getContext()` can be used 380 * inside the passed callback. 381 * 382 * @param callback Imperative function that can return a cleanup 383 * function. 384 * @param inputs If present, effect will only activate if the 385 * values in the list change (using `===`). 386 */ 387 function useEffect(callback, inputs) { 388 hooks_module_y(withScope(callback), inputs); 389 } 390 391 /** 392 * Accepts a function that contains imperative, possibly effectful code. Use 393 * this to read layout from the DOM and synchronously re-render. 394 * 395 * This hook is equivalent to Preact's `useLayoutEffect` and makes the element's 396 * scope available so functions like `getElement()` and `getContext()` can be 397 * used inside the passed callback. 398 * 399 * @param callback Imperative function that can return a cleanup 400 * function. 401 * @param inputs If present, effect will only activate if the 402 * values in the list change (using `===`). 403 */ 404 function useLayoutEffect(callback, inputs) { 405 hooks_module_(withScope(callback), inputs); 406 } 407 408 /** 409 * Returns a memoized version of the callback that only changes if one of the 410 * inputs has changed (using `===`). 411 * 412 * This hook is equivalent to Preact's `useCallback` and makes the element's 413 * scope available so functions like `getElement()` and `getContext()` can be 414 * used inside the passed callback. 415 * 416 * @param callback Callback function. 417 * @param inputs If present, the callback will only be updated if the 418 * values in the list change (using `===`). 419 * 420 * @return The callback function. 421 */ 422 function useCallback(callback, inputs) { 423 return hooks_module_q(withScope(callback), inputs); 424 } 425 426 /** 427 * Pass a factory function and an array of inputs. `useMemo` will only recompute 428 * the memoized value when one of the inputs has changed. 429 * 430 * This hook is equivalent to Preact's `useMemo` and makes the element's scope 431 * available so functions like `getElement()` and `getContext()` can be used 432 * inside the passed factory function. 433 * 434 * @param factory Factory function that returns that value for memoization. 435 * @param inputs If present, the factory will only be run to recompute if 436 * the values in the list change (using `===`). 437 * 438 * @return The memoized value. 439 */ 440 function useMemo(factory, inputs) { 441 return hooks_module_T(withScope(factory), inputs); 442 } 443 444 /** 445 * Creates a root fragment by replacing a node or an array of nodes in a parent element. 446 * For wrapperless hydration. 447 * See https://gist.github.com/developit/f4c67a2ede71dc2fab7f357f39cff28c 448 * 449 * @param parent The parent element where the nodes will be replaced. 450 * @param replaceNode The node or array of nodes to replace in the parent element. 451 * @return The created root fragment. 452 */ 453 const createRootFragment = (parent, replaceNode) => { 454 replaceNode = [].concat(replaceNode); 455 const sibling = replaceNode[replaceNode.length - 1].nextSibling; 456 function insert(child, root) { 457 parent.insertBefore(child, root || sibling); 458 } 459 return parent.__k = { 460 nodeType: 1, 461 parentNode: parent, 462 firstChild: replaceNode[0], 463 childNodes: replaceNode, 464 insertBefore: insert, 465 appendChild: insert, 466 removeChild(c) { 467 parent.removeChild(c); 468 } 469 }; 470 }; 471 472 /** 473 * Transforms a kebab-case string to camelCase. 474 * 475 * @param str The kebab-case string to transform to camelCase. 476 * @return The transformed camelCase string. 477 */ 478 function kebabToCamelCase(str) { 479 return str.replace(/^-+|-+$/g, '').toLowerCase().replace(/-([a-z])/g, function (_match, group1) { 480 return group1.toUpperCase(); 481 }); 482 } 483 const logged = new Set(); 484 485 /** 486 * Shows a warning with `message` if environment is not `production`. 487 * 488 * Based on the `@wordpress/warning` package. 489 * 490 * @param message Message to show in the warning. 491 */ 492 const warn = message => { 493 if (true) { 494 if (logged.has(message)) { 495 return; 496 } 497 498 // eslint-disable-next-line no-console 499 console.warn(message); 500 501 // Throwing an error and catching it immediately to improve debugging 502 // A consumer can use 'pause on caught exceptions' 503 try { 504 throw Error(message); 505 } catch (e) { 506 // Do nothing. 507 } 508 logged.add(message); 509 } 510 }; 511 512 /** 513 * Checks if the passed `candidate` is a plain object with just the `Object` 514 * prototype. 515 * 516 * @param candidate The item to check. 517 * @return Whether `candidate` is a plain object. 518 */ 519 const isPlainObject = candidate => Boolean(candidate && typeof candidate === 'object' && candidate.constructor === Object); 520 521 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/proxies/registry.js 522 /** 523 * Proxies for each object. 524 */ 525 const objToProxy = new WeakMap(); 526 const proxyToObj = new WeakMap(); 527 528 /** 529 * Namespaces for each created proxy. 530 */ 531 const proxyToNs = new WeakMap(); 532 533 /** 534 * Object types that can be proxied. 535 */ 536 const supported = new Set([Object, Array]); 537 538 /** 539 * Returns a proxy to the passed object with the given handlers, assigning the 540 * specified namespace to it. If a proxy for the passed object was created 541 * before, that proxy is returned. 542 * 543 * @param namespace The namespace that will be associated to this proxy. 544 * @param obj The object to proxify. 545 * @param handlers Handlers that the proxy will use. 546 * 547 * @throws Error if the object cannot be proxified. Use {@link shouldProxy} to 548 * check if a proxy can be created for a specific object. 549 * 550 * @return The created proxy. 551 */ 552 const createProxy = (namespace, obj, handlers) => { 553 if (!shouldProxy(obj)) { 554 throw Error('This object cannot be proxified.'); 555 } 556 if (!objToProxy.has(obj)) { 557 const proxy = new Proxy(obj, handlers); 558 objToProxy.set(obj, proxy); 559 proxyToObj.set(proxy, obj); 560 proxyToNs.set(proxy, namespace); 561 } 562 return objToProxy.get(obj); 563 }; 564 565 /** 566 * Returns the proxy for the given object. If there is no associated proxy, the 567 * function returns `undefined`. 568 * 569 * @param obj Object from which to know the proxy. 570 * @return Associated proxy or `undefined`. 571 */ 572 const getProxyFromObject = obj => objToProxy.get(obj); 573 574 /** 575 * Gets the namespace associated with the given proxy. 576 * 577 * Proxies have a namespace assigned upon creation. See {@link createProxy}. 578 * 579 * @param proxy Proxy. 580 * @return Namespace. 581 */ 582 const getNamespaceFromProxy = proxy => proxyToNs.get(proxy); 583 584 /** 585 * Checks if a given object can be proxied. 586 * 587 * @param candidate Object to know whether it can be proxied. 588 * @return True if the passed instance can be proxied. 589 */ 590 const shouldProxy = candidate => { 591 if (typeof candidate !== 'object' || candidate === null) { 592 return false; 593 } 594 return !proxyToNs.has(candidate) && supported.has(candidate.constructor); 595 }; 596 597 /** 598 * Returns the target object for the passed proxy. If the passed object is not a registered proxy, the 599 * function returns `undefined`. 600 * 601 * @param proxy Proxy from which to know the target. 602 * @return The target object or `undefined`. 603 */ 604 const getObjectFromProxy = proxy => proxyToObj.get(proxy); 605 606 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/proxies/signals.js 607 /** 608 * External dependencies 609 */ 610 611 612 /** 613 * Internal dependencies 614 */ 615 616 617 618 619 620 /** 621 * Identifier for property computeds not associated to any scope. 622 */ 623 const NO_SCOPE = {}; 624 625 /** 626 * Structure that manages reactivity for a property in a state object. It uses 627 * signals to keep track of property value or getter modifications. 628 */ 629 class PropSignal { 630 /** 631 * Proxy that holds the property this PropSignal is associated with. 632 */ 633 634 /** 635 * Relation of computeds by scope. These computeds are read-only signals 636 * that depend on whether the property is a value or a getter and, 637 * therefore, can return different values depending on the scope in which 638 * the getter is accessed. 639 */ 640 641 /** 642 * Signal with the value assigned to the related property. 643 */ 644 645 /** 646 * Signal with the getter assigned to the related property. 647 */ 648 649 /** 650 * Structure that manages reactivity for a property in a state object, using 651 * signals to keep track of property value or getter modifications. 652 * 653 * @param owner Proxy that holds the property this instance is associated 654 * with. 655 */ 656 constructor(owner) { 657 this.owner = owner; 658 this.computedsByScope = new WeakMap(); 659 } 660 661 /** 662 * Changes the internal value. If a getter was set before, it is set to 663 * `undefined`. 664 * 665 * @param value New value. 666 */ 667 setValue(value) { 668 this.update({ 669 value 670 }); 671 } 672 673 /** 674 * Changes the internal getter. If a value was set before, it is set to 675 * `undefined`. 676 * 677 * @param getter New getter. 678 */ 679 setGetter(getter) { 680 this.update({ 681 get: getter 682 }); 683 } 684 685 /** 686 * Returns the computed that holds the result of evaluating the prop in the 687 * current scope. 688 * 689 * These computeds are read-only signals that depend on whether the property 690 * is a value or a getter and, therefore, can return different values 691 * depending on the scope in which the getter is accessed. 692 * 693 * @return Computed that depends on the scope. 694 */ 695 getComputed() { 696 const scope = getScope() || NO_SCOPE; 697 if (!this.valueSignal && !this.getterSignal) { 698 this.update({}); 699 } 700 if (!this.computedsByScope.has(scope)) { 701 const callback = () => { 702 const getter = this.getterSignal?.value; 703 return getter ? getter.call(this.owner) : this.valueSignal?.value; 704 }; 705 setNamespace(getNamespaceFromProxy(this.owner)); 706 this.computedsByScope.set(scope, signals_core_module_w(withScope(callback))); 707 resetNamespace(); 708 } 709 return this.computedsByScope.get(scope); 710 } 711 712 /** 713 * Update the internal signals for the value and the getter of the 714 * corresponding prop. 715 * 716 * @param param0 717 * @param param0.get New getter. 718 * @param param0.value New value. 719 */ 720 update({ 721 get, 722 value 723 }) { 724 if (!this.valueSignal) { 725 this.valueSignal = signals_core_module_d(value); 726 this.getterSignal = signals_core_module_d(get); 727 } else if (value !== this.valueSignal.peek() || get !== this.getterSignal.peek()) { 728 signals_core_module_r(() => { 729 this.valueSignal.value = value; 730 this.getterSignal.value = get; 731 }); 732 } 733 } 734 } 735 736 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/proxies/state.js 737 /** 738 * External dependencies 739 */ 740 741 742 /** 743 * Internal dependencies 744 */ 745 746 747 748 749 750 /** 751 * Set of built-in symbols. 752 */ 753 const wellKnownSymbols = new Set(Object.getOwnPropertyNames(Symbol).map(key => Symbol[key]).filter(value => typeof value === 'symbol')); 754 755 /** 756 * Relates each proxy with a map of {@link PropSignal} instances, representing 757 * the proxy's accessed properties. 758 */ 759 const proxyToProps = new WeakMap(); 760 761 /** 762 * Checks wether a {@link PropSignal | `PropSignal`} instance exists for the 763 * given property in the passed proxy. 764 * 765 * @param proxy Proxy of a state object or array. 766 * @param key The property key. 767 * @return `true` when it exists; false otherwise. 768 */ 769 const hasPropSignal = (proxy, key) => proxyToProps.has(proxy) && proxyToProps.get(proxy).has(key); 770 const readOnlyProxies = new WeakSet(); 771 772 /** 773 * Returns the {@link PropSignal | `PropSignal`} instance associated with the 774 * specified prop in the passed proxy. 775 * 776 * The `PropSignal` instance is generated if it doesn't exist yet, using the 777 * `initial` parameter to initialize the internal signals. 778 * 779 * @param proxy Proxy of a state object or array. 780 * @param key The property key. 781 * @param initial Initial data for the `PropSignal` instance. 782 * @return The `PropSignal` instance. 783 */ 784 const getPropSignal = (proxy, key, initial) => { 785 if (!proxyToProps.has(proxy)) { 786 proxyToProps.set(proxy, new Map()); 787 } 788 key = typeof key === 'number' ? `$key}` : key; 789 const props = proxyToProps.get(proxy); 790 if (!props.has(key)) { 791 const ns = getNamespaceFromProxy(proxy); 792 const prop = new PropSignal(proxy); 793 props.set(key, prop); 794 if (initial) { 795 const { 796 get, 797 value 798 } = initial; 799 if (get) { 800 prop.setGetter(get); 801 } else { 802 const readOnly = readOnlyProxies.has(proxy); 803 prop.setValue(shouldProxy(value) ? proxifyState(ns, value, { 804 readOnly 805 }) : value); 806 } 807 } 808 } 809 return props.get(key); 810 }; 811 812 /** 813 * Relates each proxied object (i.e., the original object) with a signal that 814 * tracks changes in the number of properties. 815 */ 816 const objToIterable = new WeakMap(); 817 818 /** 819 * When this flag is `true`, it avoids any signal subscription, overriding state 820 * props' "reactive" behavior. 821 */ 822 let peeking = false; 823 824 /** 825 * Handlers for reactive objects and arrays in the state. 826 */ 827 const stateHandlers = { 828 get(target, key, receiver) { 829 /* 830 * The property should not be reactive for the following cases: 831 * 1. While using the `peek` function to read the property. 832 * 2. The property exists but comes from the Object or Array prototypes. 833 * 3. The property key is a known symbol. 834 */ 835 if (peeking || !target.hasOwnProperty(key) && key in target || typeof key === 'symbol' && wellKnownSymbols.has(key)) { 836 return Reflect.get(target, key, receiver); 837 } 838 839 // At this point, the property should be reactive. 840 const desc = Object.getOwnPropertyDescriptor(target, key); 841 const prop = getPropSignal(receiver, key, desc); 842 const result = prop.getComputed().value; 843 844 /* 845 * Check if the property is a synchronous function. If it is, set the 846 * default namespace. Synchronous functions always run in the proper scope, 847 * which is set by the Directives component. 848 */ 849 if (typeof result === 'function') { 850 const ns = getNamespaceFromProxy(receiver); 851 return (...args) => { 852 setNamespace(ns); 853 try { 854 return result.call(receiver, ...args); 855 } finally { 856 resetNamespace(); 857 } 858 }; 859 } 860 return result; 861 }, 862 set(target, key, value, receiver) { 863 if (readOnlyProxies.has(receiver)) { 864 return false; 865 } 866 setNamespace(getNamespaceFromProxy(receiver)); 867 try { 868 return Reflect.set(target, key, value, receiver); 869 } finally { 870 resetNamespace(); 871 } 872 }, 873 defineProperty(target, key, desc) { 874 if (readOnlyProxies.has(getProxyFromObject(target))) { 875 return false; 876 } 877 const isNew = !(key in target); 878 const result = Reflect.defineProperty(target, key, desc); 879 if (result) { 880 const receiver = getProxyFromObject(target); 881 const prop = getPropSignal(receiver, key); 882 const { 883 get, 884 value 885 } = desc; 886 if (get) { 887 prop.setGetter(get); 888 } else { 889 const ns = getNamespaceFromProxy(receiver); 890 prop.setValue(shouldProxy(value) ? proxifyState(ns, value) : value); 891 } 892 if (isNew && objToIterable.has(target)) { 893 objToIterable.get(target).value++; 894 } 895 896 /* 897 * Modify the `length` property value only if the related 898 * `PropSignal` exists, which means that there are subscriptions to 899 * this property. 900 */ 901 if (Array.isArray(target) && proxyToProps.get(receiver)?.has('length')) { 902 const length = getPropSignal(receiver, 'length'); 903 length.setValue(target.length); 904 } 905 } 906 return result; 907 }, 908 deleteProperty(target, key) { 909 if (readOnlyProxies.has(getProxyFromObject(target))) { 910 return false; 911 } 912 const result = Reflect.deleteProperty(target, key); 913 if (result) { 914 const prop = getPropSignal(getProxyFromObject(target), key); 915 prop.setValue(undefined); 916 if (objToIterable.has(target)) { 917 objToIterable.get(target).value++; 918 } 919 } 920 return result; 921 }, 922 ownKeys(target) { 923 if (!objToIterable.has(target)) { 924 objToIterable.set(target, signals_core_module_d(0)); 925 } 926 /* 927 *This subscribes to the signal while preventing the minifier from 928 * deleting this line in production. 929 */ 930 objToIterable._ = objToIterable.get(target).value; 931 return Reflect.ownKeys(target); 932 } 933 }; 934 935 /** 936 * Returns the proxy associated with the given state object, creating it if it 937 * does not exist. 938 * 939 * @param namespace The namespace that will be associated to this proxy. 940 * @param obj The object to proxify. 941 * @param options Options. 942 * @param options.readOnly Read-only. 943 * 944 * @throws Error if the object cannot be proxified. Use {@link shouldProxy} to 945 * check if a proxy can be created for a specific object. 946 * 947 * @return The associated proxy. 948 */ 949 const proxifyState = (namespace, obj, options) => { 950 const proxy = createProxy(namespace, obj, stateHandlers); 951 if (options?.readOnly) { 952 readOnlyProxies.add(proxy); 953 } 954 return proxy; 955 }; 956 957 /** 958 * Reads the value of the specified property without subscribing to it. 959 * 960 * @param obj The object to read the property from. 961 * @param key The property key. 962 * @return The property value. 963 */ 964 const peek = (obj, key) => { 965 peeking = true; 966 try { 967 return obj[key]; 968 } finally { 969 peeking = false; 970 } 971 }; 972 973 /** 974 * Internal recursive implementation for {@link deepMerge | `deepMerge`}. 975 * 976 * @param target The target object. 977 * @param source The source object containing new values and props. 978 * @param override Whether existing props should be overwritten or not (`true` 979 * by default). 980 */ 981 const deepMergeRecursive = (target, source, override = true) => { 982 if (isPlainObject(target) && isPlainObject(source)) { 983 let hasNewKeys = false; 984 for (const key in source) { 985 const isNew = !(key in target); 986 hasNewKeys = hasNewKeys || isNew; 987 const desc = Object.getOwnPropertyDescriptor(source, key); 988 if (typeof desc?.get === 'function' || typeof desc?.set === 'function') { 989 if (override || isNew) { 990 Object.defineProperty(target, key, { 991 ...desc, 992 configurable: true, 993 enumerable: true 994 }); 995 const proxy = getProxyFromObject(target); 996 if (desc?.get && proxy && hasPropSignal(proxy, key)) { 997 const propSignal = getPropSignal(proxy, key); 998 propSignal.setGetter(desc.get); 999 } 1000 } 1001 } else if (isPlainObject(source[key])) { 1002 if (isNew) { 1003 target[key] = {}; 1004 } 1005 deepMergeRecursive(target[key], source[key], override); 1006 } else if (override || isNew) { 1007 Object.defineProperty(target, key, desc); 1008 const proxy = getProxyFromObject(target); 1009 if (desc?.value && proxy && hasPropSignal(proxy, key)) { 1010 const propSignal = getPropSignal(proxy, key); 1011 propSignal.setValue(desc.value); 1012 } 1013 } 1014 } 1015 if (hasNewKeys && objToIterable.has(target)) { 1016 objToIterable.get(target).value++; 1017 } 1018 } 1019 }; 1020 1021 /** 1022 * Recursively update prop values inside the passed `target` and nested plain 1023 * objects, using the values present in `source`. References to plain objects 1024 * are kept, only updating props containing primitives or arrays. Arrays are 1025 * replaced instead of merged or concatenated. 1026 * 1027 * If the `override` parameter is set to `false`, then all values in `target` 1028 * are preserved, and only new properties from `source` are added. 1029 * 1030 * @param target The target object. 1031 * @param source The source object containing new values and props. 1032 * @param override Whether existing props should be overwritten or not (`true` 1033 * by default). 1034 */ 1035 const deepMerge = (target, source, override = true) => signals_core_module_r(() => deepMergeRecursive(getObjectFromProxy(target) || target, source, override)); 1036 1037 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/proxies/store.js 1038 /** 1039 * Internal dependencies 1040 */ 1041 1042 /** 1043 * External dependencies 1044 */ 1045 1046 1047 1048 /** 1049 * Identifies the store proxies handling the root objects of each store. 1050 */ 1051 const storeRoots = new WeakSet(); 1052 1053 /** 1054 * Handlers for store proxies. 1055 */ 1056 const storeHandlers = { 1057 get: (target, key, receiver) => { 1058 const result = Reflect.get(target, key); 1059 const ns = getNamespaceFromProxy(receiver); 1060 1061 /* 1062 * Check if the proxy is the store root and no key with that name exist. In 1063 * that case, return an empty object for the requested key. 1064 */ 1065 if (typeof result === 'undefined' && storeRoots.has(receiver)) { 1066 const obj = {}; 1067 Reflect.set(target, key, obj); 1068 return proxifyStore(ns, obj, false); 1069 } 1070 1071 /* 1072 * Check if the property is a function. If it is, add the store 1073 * namespace to the stack and wrap the function with the current scope. 1074 * The `withScope` util handles both synchronous functions and generator 1075 * functions. 1076 */ 1077 if (typeof result === 'function') { 1078 setNamespace(ns); 1079 const scoped = withScope(result); 1080 resetNamespace(); 1081 return scoped; 1082 } 1083 1084 // Check if the property is an object. If it is, proxyify it. 1085 if (isPlainObject(result) && shouldProxy(result)) { 1086 return proxifyStore(ns, result, false); 1087 } 1088 return result; 1089 } 1090 }; 1091 1092 /** 1093 * Returns the proxy associated with the given store object, creating it if it 1094 * does not exist. 1095 * 1096 * @param namespace The namespace that will be associated to this proxy. 1097 * @param obj The object to proxify. 1098 * 1099 * @param isRoot Whether the passed object is the store root object. 1100 * @throws Error if the object cannot be proxified. Use {@link shouldProxy} to 1101 * check if a proxy can be created for a specific object. 1102 * 1103 * @return The associated proxy. 1104 */ 1105 const proxifyStore = (namespace, obj, isRoot = true) => { 1106 const proxy = createProxy(namespace, obj, storeHandlers); 1107 if (proxy && isRoot) { 1108 storeRoots.add(proxy); 1109 } 1110 return proxy; 1111 }; 1112 1113 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/proxies/context.js 1114 const contextObjectToProxy = new WeakMap(); 1115 const contextObjectToFallback = new WeakMap(); 1116 const contextProxies = new WeakSet(); 1117 const descriptor = Reflect.getOwnPropertyDescriptor; 1118 1119 // TODO: Use the proxy registry to avoid multiple proxies on the same object. 1120 const contextHandlers = { 1121 get: (target, key) => { 1122 const fallback = contextObjectToFallback.get(target); 1123 // Always subscribe to prop changes in the current context. 1124 const currentProp = target[key]; 1125 1126 /* 1127 * Return the value from `target` if it exists, or from `fallback` 1128 * otherwise. This way, in the case the property doesn't exist either in 1129 * `target` or `fallback`, it also subscribes to changes in the parent 1130 * context. 1131 */ 1132 return key in target ? currentProp : fallback[key]; 1133 }, 1134 set: (target, key, value) => { 1135 const fallback = contextObjectToFallback.get(target); 1136 1137 // If the property exists in the current context, modify it. Otherwise, 1138 // add it to the current context. 1139 const obj = key in target || !(key in fallback) ? target : fallback; 1140 obj[key] = value; 1141 return true; 1142 }, 1143 ownKeys: target => [...new Set([...Object.keys(contextObjectToFallback.get(target)), ...Object.keys(target)])], 1144 getOwnPropertyDescriptor: (target, key) => descriptor(target, key) || descriptor(contextObjectToFallback.get(target), key) 1145 }; 1146 1147 /** 1148 * Wrap a context object with a proxy to reproduce the context stack. The proxy 1149 * uses the passed `inherited` context as a fallback to look up for properties 1150 * that don't exist in the given context. Also, updated properties are modified 1151 * where they are defined, or added to the main context when they don't exist. 1152 * 1153 * @param current Current context. 1154 * @param inherited Inherited context, used as fallback. 1155 * 1156 * @return The wrapped context object. 1157 */ 1158 const proxifyContext = (current, inherited = {}) => { 1159 if (contextProxies.has(current)) { 1160 throw Error('This object cannot be proxified.'); 1161 } 1162 // Update the fallback object reference when it changes. 1163 contextObjectToFallback.set(current, inherited); 1164 if (!contextObjectToProxy.has(current)) { 1165 const proxy = new Proxy(current, contextHandlers); 1166 contextObjectToProxy.set(current, proxy); 1167 contextProxies.add(proxy); 1168 } 1169 return contextObjectToProxy.get(current); 1170 }; 1171 1172 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/proxies/index.js 1173 /** 1174 * Internal dependencies 1175 */ 1176 1177 1178 1179 1180 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/store.js 1181 /** 1182 * Internal dependencies 1183 */ 1184 1185 /** 1186 * External dependencies 1187 */ 1188 1189 1190 const stores = new Map(); 1191 const rawStores = new Map(); 1192 const storeLocks = new Map(); 1193 const storeConfigs = new Map(); 1194 const serverStates = new Map(); 1195 1196 /** 1197 * Get the defined config for the store with the passed namespace. 1198 * 1199 * @param namespace Store's namespace from which to retrieve the config. 1200 * @return Defined config for the given namespace. 1201 */ 1202 const getConfig = namespace => storeConfigs.get(namespace || getNamespace()) || {}; 1203 1204 /** 1205 * Get the part of the state defined and updated from the server. 1206 * 1207 * The object returned is read-only, and includes the state defined in PHP with 1208 * `wp_interactivity_state()`. When using `actions.navigate()`, this object is 1209 * updated to reflect the changes in its properites, without affecting the state 1210 * returned by `store()`. Directives can subscribe to those changes to update 1211 * the state if needed. 1212 * 1213 * @example 1214 * ```js 1215 * const { state } = store('myStore', { 1216 * callbacks: { 1217 * updateServerState() { 1218 * const serverState = getServerState(); 1219 * // Override some property with the new value that came from the server. 1220 * state.overridableProp = serverState.overridableProp; 1221 * }, 1222 * }, 1223 * }); 1224 * ``` 1225 * 1226 * @param namespace Store's namespace from which to retrieve the server state. 1227 * @return The server state for the given namespace. 1228 */ 1229 const getServerState = namespace => { 1230 const ns = namespace || getNamespace(); 1231 if (!serverStates.has(ns)) { 1232 serverStates.set(ns, proxifyState(ns, {}, { 1233 readOnly: true 1234 })); 1235 } 1236 return serverStates.get(ns); 1237 }; 1238 const universalUnlock = 'I acknowledge that using a private store means my plugin will inevitably break on the next store release.'; 1239 1240 /** 1241 * Extends the Interactivity API global store adding the passed properties to 1242 * the given namespace. It also returns stable references to the namespace 1243 * content. 1244 * 1245 * These props typically consist of `state`, which is the reactive part of the 1246 * store ― which means that any directive referencing a state property will be 1247 * re-rendered anytime it changes ― and function properties like `actions` and 1248 * `callbacks`, mostly used for event handlers. These props can then be 1249 * referenced by any directive to make the HTML interactive. 1250 * 1251 * @example 1252 * ```js 1253 * const { state } = store( 'counter', { 1254 * state: { 1255 * value: 0, 1256 * get double() { return state.value * 2; }, 1257 * }, 1258 * actions: { 1259 * increment() { 1260 * state.value += 1; 1261 * }, 1262 * }, 1263 * } ); 1264 * ``` 1265 * 1266 * The code from the example above allows blocks to subscribe and interact with 1267 * the store by using directives in the HTML, e.g.: 1268 * 1269 * ```html 1270 * <div data-wp-interactive="counter"> 1271 * <button 1272 * data-wp-text="state.double" 1273 * data-wp-on--click="actions.increment" 1274 * > 1275 * 0 1276 * </button> 1277 * </div> 1278 * ``` 1279 * @param namespace The store namespace to interact with. 1280 * @param storePart Properties to add to the store namespace. 1281 * @param options Options for the given namespace. 1282 * 1283 * @return A reference to the namespace content. 1284 */ 1285 1286 function store(namespace, { 1287 state = {}, 1288 ...block 1289 } = {}, { 1290 lock = false 1291 } = {}) { 1292 if (!stores.has(namespace)) { 1293 // Lock the store if the passed lock is different from the universal 1294 // unlock. Once the lock is set (either false, true, or a given string), 1295 // it cannot change. 1296 if (lock !== universalUnlock) { 1297 storeLocks.set(namespace, lock); 1298 } 1299 const rawStore = { 1300 state: proxifyState(namespace, isPlainObject(state) ? state : {}), 1301 ...block 1302 }; 1303 const proxifiedStore = proxifyStore(namespace, rawStore); 1304 rawStores.set(namespace, rawStore); 1305 stores.set(namespace, proxifiedStore); 1306 } else { 1307 // Lock the store if it wasn't locked yet and the passed lock is 1308 // different from the universal unlock. If no lock is given, the store 1309 // will be public and won't accept any lock from now on. 1310 if (lock !== universalUnlock && !storeLocks.has(namespace)) { 1311 storeLocks.set(namespace, lock); 1312 } else { 1313 const storeLock = storeLocks.get(namespace); 1314 const isLockValid = lock === universalUnlock || lock !== true && lock === storeLock; 1315 if (!isLockValid) { 1316 if (!storeLock) { 1317 throw Error('Cannot lock a public store'); 1318 } else { 1319 throw Error('Cannot unlock a private store with an invalid lock code'); 1320 } 1321 } 1322 } 1323 const target = rawStores.get(namespace); 1324 deepMerge(target, block); 1325 deepMerge(target.state, state); 1326 } 1327 return stores.get(namespace); 1328 } 1329 const parseServerData = (dom = document) => { 1330 var _dom$getElementById; 1331 const jsonDataScriptTag = // Preferred Script Module data passing form 1332 (_dom$getElementById = dom.getElementById('wp-script-module-data-@wordpress/interactivity')) !== null && _dom$getElementById !== void 0 ? _dom$getElementById : 1333 // Legacy form 1334 dom.getElementById('wp-interactivity-data'); 1335 if (jsonDataScriptTag?.textContent) { 1336 try { 1337 return JSON.parse(jsonDataScriptTag.textContent); 1338 } catch {} 1339 } 1340 return {}; 1341 }; 1342 const populateServerData = data => { 1343 if (isPlainObject(data?.state)) { 1344 Object.entries(data.state).forEach(([namespace, state]) => { 1345 const st = store(namespace, {}, { 1346 lock: universalUnlock 1347 }); 1348 deepMerge(st.state, state, false); 1349 deepMerge(getServerState(namespace), state); 1350 }); 1351 } 1352 if (isPlainObject(data?.config)) { 1353 Object.entries(data.config).forEach(([namespace, config]) => { 1354 storeConfigs.set(namespace, config); 1355 }); 1356 } 1357 }; 1358 1359 // Parse and populate the initial state and config. 1360 const data = parseServerData(); 1361 populateServerData(data); 1362 1363 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/hooks.js 1364 // eslint-disable-next-line eslint-comments/disable-enable-pair 1365 /* eslint-disable react-hooks/exhaustive-deps */ 1366 1367 /** 1368 * External dependencies 1369 */ 1370 1371 1372 /** 1373 * Internal dependencies 1374 */ 1375 1376 1377 1378 // Main context. 1379 const context = G({ 1380 client: {}, 1381 server: {} 1382 }); 1383 1384 // WordPress Directives. 1385 const directiveCallbacks = {}; 1386 const directivePriorities = {}; 1387 1388 /** 1389 * Register a new directive type in the Interactivity API runtime. 1390 * 1391 * @example 1392 * ```js 1393 * directive( 1394 * 'alert', // Name without the `data-wp-` prefix. 1395 * ( { directives: { alert }, element, evaluate } ) => { 1396 * const defaultEntry = alert.find( entry => entry.suffix === 'default' ); 1397 * element.props.onclick = () => { alert( evaluate( defaultEntry ) ); } 1398 * } 1399 * ) 1400 * ``` 1401 * 1402 * The previous code registers a custom directive type for displaying an alert 1403 * message whenever an element using it is clicked. The message text is obtained 1404 * from the store under the inherited namespace, using `evaluate`. 1405 * 1406 * When the HTML is processed by the Interactivity API, any element containing 1407 * the `data-wp-alert` directive will have the `onclick` event handler, e.g., 1408 * 1409 * ```html 1410 * <div data-wp-interactive="messages"> 1411 * <button data-wp-alert="state.alert">Click me!</button> 1412 * </div> 1413 * ``` 1414 * Note that, in the previous example, the directive callback gets the path 1415 * value (`state.alert`) from the directive entry with suffix `default`. A 1416 * custom suffix can also be specified by appending `--` to the directive 1417 * attribute, followed by the suffix, like in the following HTML snippet: 1418 * 1419 * ```html 1420 * <div data-wp-interactive="myblock"> 1421 * <button 1422 * data-wp-color--text="state.text" 1423 * data-wp-color--background="state.background" 1424 * >Click me!</button> 1425 * </div> 1426 * ``` 1427 * 1428 * This could be an hypothetical implementation of the custom directive used in 1429 * the snippet above. 1430 * 1431 * @example 1432 * ```js 1433 * directive( 1434 * 'color', // Name without prefix and suffix. 1435 * ( { directives: { color: colors }, ref, evaluate } ) => 1436 * colors.forEach( ( color ) => { 1437 * if ( color.suffix = 'text' ) { 1438 * ref.style.setProperty( 1439 * 'color', 1440 * evaluate( color.text ) 1441 * ); 1442 * } 1443 * if ( color.suffix = 'background' ) { 1444 * ref.style.setProperty( 1445 * 'background-color', 1446 * evaluate( color.background ) 1447 * ); 1448 * } 1449 * } ); 1450 * } 1451 * ) 1452 * ``` 1453 * 1454 * @param name Directive name, without the `data-wp-` prefix. 1455 * @param callback Function that runs the directive logic. 1456 * @param options Options object. 1457 * @param options.priority Option to control the directive execution order. The 1458 * lesser, the highest priority. Default is `10`. 1459 */ 1460 const directive = (name, callback, { 1461 priority = 10 1462 } = {}) => { 1463 directiveCallbacks[name] = callback; 1464 directivePriorities[name] = priority; 1465 }; 1466 1467 // Resolve the path to some property of the store object. 1468 const resolve = (path, namespace) => { 1469 if (!namespace) { 1470 warn(`Namespace missing for "$path}". The value for that path won't be resolved.`); 1471 return; 1472 } 1473 let resolvedStore = stores.get(namespace); 1474 if (typeof resolvedStore === 'undefined') { 1475 resolvedStore = store(namespace, undefined, { 1476 lock: universalUnlock 1477 }); 1478 } 1479 const current = { 1480 ...resolvedStore, 1481 context: getScope().context[namespace] 1482 }; 1483 try { 1484 // TODO: Support lazy/dynamically initialized stores 1485 return path.split('.').reduce((acc, key) => acc[key], current); 1486 } catch (e) {} 1487 }; 1488 1489 // Generate the evaluate function. 1490 const getEvaluate = ({ 1491 scope 1492 }) => (entry, ...args) => { 1493 let { 1494 value: path, 1495 namespace 1496 } = entry; 1497 if (typeof path !== 'string') { 1498 throw new Error('The `value` prop should be a string path'); 1499 } 1500 // If path starts with !, remove it and save a flag. 1501 const hasNegationOperator = path[0] === '!' && !!(path = path.slice(1)); 1502 setScope(scope); 1503 const value = resolve(path, namespace); 1504 const result = typeof value === 'function' ? value(...args) : value; 1505 resetScope(); 1506 return hasNegationOperator ? !result : result; 1507 }; 1508 1509 // Separate directives by priority. The resulting array contains objects 1510 // of directives grouped by same priority, and sorted in ascending order. 1511 const getPriorityLevels = directives => { 1512 const byPriority = Object.keys(directives).reduce((obj, name) => { 1513 if (directiveCallbacks[name]) { 1514 const priority = directivePriorities[name]; 1515 (obj[priority] = obj[priority] || []).push(name); 1516 } 1517 return obj; 1518 }, {}); 1519 return Object.entries(byPriority).sort(([p1], [p2]) => parseInt(p1) - parseInt(p2)).map(([, arr]) => arr); 1520 }; 1521 1522 // Component that wraps each priority level of directives of an element. 1523 const Directives = ({ 1524 directives, 1525 priorityLevels: [currentPriorityLevel, ...nextPriorityLevels], 1526 element, 1527 originalProps, 1528 previousScope 1529 }) => { 1530 // Initialize the scope of this element. These scopes are different per each 1531 // level because each level has a different context, but they share the same 1532 // element ref, state and props. 1533 const scope = hooks_module_A({}).current; 1534 scope.evaluate = hooks_module_q(getEvaluate({ 1535 scope 1536 }), []); 1537 const { 1538 client, 1539 server 1540 } = hooks_module_x(context); 1541 scope.context = client; 1542 scope.serverContext = server; 1543 /* eslint-disable react-hooks/rules-of-hooks */ 1544 scope.ref = previousScope?.ref || hooks_module_A(null); 1545 /* eslint-enable react-hooks/rules-of-hooks */ 1546 1547 // Create a fresh copy of the vnode element and add the props to the scope, 1548 // named as attributes (HTML Attributes). 1549 element = E(element, { 1550 ref: scope.ref 1551 }); 1552 scope.attributes = element.props; 1553 1554 // Recursively render the wrapper for the next priority level. 1555 const children = nextPriorityLevels.length > 0 ? _(Directives, { 1556 directives, 1557 priorityLevels: nextPriorityLevels, 1558 element, 1559 originalProps, 1560 previousScope: scope 1561 }) : element; 1562 const props = { 1563 ...originalProps, 1564 children 1565 }; 1566 const directiveArgs = { 1567 directives, 1568 props, 1569 element, 1570 context, 1571 evaluate: scope.evaluate 1572 }; 1573 setScope(scope); 1574 for (const directiveName of currentPriorityLevel) { 1575 const wrapper = directiveCallbacks[directiveName]?.(directiveArgs); 1576 if (wrapper !== undefined) { 1577 props.children = wrapper; 1578 } 1579 } 1580 resetScope(); 1581 return props.children; 1582 }; 1583 1584 // Preact Options Hook called each time a vnode is created. 1585 const old = preact_module_l.vnode; 1586 preact_module_l.vnode = vnode => { 1587 if (vnode.props.__directives) { 1588 const props = vnode.props; 1589 const directives = props.__directives; 1590 if (directives.key) { 1591 vnode.key = directives.key.find(({ 1592 suffix 1593 }) => suffix === 'default').value; 1594 } 1595 delete props.__directives; 1596 const priorityLevels = getPriorityLevels(directives); 1597 if (priorityLevels.length > 0) { 1598 vnode.props = { 1599 directives, 1600 priorityLevels, 1601 originalProps: props, 1602 type: vnode.type, 1603 element: _(vnode.type, props), 1604 top: true 1605 }; 1606 vnode.type = Directives; 1607 } 1608 } 1609 if (old) { 1610 old(vnode); 1611 } 1612 }; 1613 1614 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/directives.js 1615 // eslint-disable-next-line eslint-comments/disable-enable-pair 1616 /* eslint-disable react-hooks/exhaustive-deps */ 1617 1618 /** 1619 * External dependencies 1620 */ 1621 1622 1623 1624 /** 1625 * Internal dependencies 1626 */ 1627 1628 1629 1630 1631 1632 /** 1633 * Recursively clone the passed object. 1634 * 1635 * @param source Source object. 1636 * @return Cloned object. 1637 */ 1638 function deepClone(source) { 1639 if (isPlainObject(source)) { 1640 return Object.fromEntries(Object.entries(source).map(([key, value]) => [key, deepClone(value)])); 1641 } 1642 if (Array.isArray(source)) { 1643 return source.map(i => deepClone(i)); 1644 } 1645 return source; 1646 } 1647 const newRule = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g; 1648 const ruleClean = /\/\*[^]*?\*\/| +/g; 1649 const ruleNewline = /\n+/g; 1650 const empty = ' '; 1651 1652 /** 1653 * Convert a css style string into a object. 1654 * 1655 * Made by Cristian Bote (@cristianbote) for Goober. 1656 * https://unpkg.com/browse/goober@2.1.13/src/core/astish.js 1657 * 1658 * @param val CSS string. 1659 * @return CSS object. 1660 */ 1661 const cssStringToObject = val => { 1662 const tree = [{}]; 1663 let block, left; 1664 while (block = newRule.exec(val.replace(ruleClean, ''))) { 1665 if (block[4]) { 1666 tree.shift(); 1667 } else if (block[3]) { 1668 left = block[3].replace(ruleNewline, empty).trim(); 1669 tree.unshift(tree[0][left] = tree[0][left] || {}); 1670 } else { 1671 tree[0][block[1]] = block[2].replace(ruleNewline, empty).trim(); 1672 } 1673 } 1674 return tree[0]; 1675 }; 1676 1677 /** 1678 * Creates a directive that adds an event listener to the global window or 1679 * document object. 1680 * 1681 * @param type 'window' or 'document' 1682 */ 1683 const getGlobalEventDirective = type => { 1684 return ({ 1685 directives, 1686 evaluate 1687 }) => { 1688 directives[`on-$type}`].filter(({ 1689 suffix 1690 }) => suffix !== 'default').forEach(entry => { 1691 const eventName = entry.suffix.split('--', 1)[0]; 1692 useInit(() => { 1693 const cb = event => evaluate(entry, event); 1694 const globalVar = type === 'window' ? window : document; 1695 globalVar.addEventListener(eventName, cb); 1696 return () => globalVar.removeEventListener(eventName, cb); 1697 }); 1698 }); 1699 }; 1700 }; 1701 1702 /** 1703 * Creates a directive that adds an async event listener to the global window or 1704 * document object. 1705 * 1706 * @param type 'window' or 'document' 1707 */ 1708 const getGlobalAsyncEventDirective = type => { 1709 return ({ 1710 directives, 1711 evaluate 1712 }) => { 1713 directives[`on-async-$type}`].filter(({ 1714 suffix 1715 }) => suffix !== 'default').forEach(entry => { 1716 const eventName = entry.suffix.split('--', 1)[0]; 1717 useInit(() => { 1718 const cb = async event => { 1719 await splitTask(); 1720 evaluate(entry, event); 1721 }; 1722 const globalVar = type === 'window' ? window : document; 1723 globalVar.addEventListener(eventName, cb, { 1724 passive: true 1725 }); 1726 return () => globalVar.removeEventListener(eventName, cb); 1727 }); 1728 }); 1729 }; 1730 }; 1731 /* harmony default export */ const directives = (() => { 1732 // data-wp-context 1733 directive('context', ({ 1734 directives: { 1735 context 1736 }, 1737 props: { 1738 children 1739 }, 1740 context: inheritedContext 1741 }) => { 1742 const { 1743 Provider 1744 } = inheritedContext; 1745 const defaultEntry = context.find(({ 1746 suffix 1747 }) => suffix === 'default'); 1748 const { 1749 client: inheritedClient, 1750 server: inheritedServer 1751 } = hooks_module_x(inheritedContext); 1752 const ns = defaultEntry.namespace; 1753 const client = hooks_module_A(proxifyState(ns, {})); 1754 const server = hooks_module_A(proxifyState(ns, {}, { 1755 readOnly: true 1756 })); 1757 1758 // No change should be made if `defaultEntry` does not exist. 1759 const contextStack = hooks_module_T(() => { 1760 const result = { 1761 client: { 1762 ...inheritedClient 1763 }, 1764 server: { 1765 ...inheritedServer 1766 } 1767 }; 1768 if (defaultEntry) { 1769 const { 1770 namespace, 1771 value 1772 } = defaultEntry; 1773 // Check that the value is a JSON object. Send a console warning if not. 1774 if (!isPlainObject(value)) { 1775 warn(`The value of data-wp-context in "$namespace}" store must be a valid stringified JSON object.`); 1776 } 1777 deepMerge(client.current, deepClone(value), false); 1778 deepMerge(server.current, deepClone(value)); 1779 result.client[namespace] = proxifyContext(client.current, inheritedClient[namespace]); 1780 result.server[namespace] = proxifyContext(server.current, inheritedServer[namespace]); 1781 } 1782 return result; 1783 }, [defaultEntry, inheritedClient, inheritedServer]); 1784 return _(Provider, { 1785 value: contextStack 1786 }, children); 1787 }, { 1788 priority: 5 1789 }); 1790 1791 // data-wp-watch--[name] 1792 directive('watch', ({ 1793 directives: { 1794 watch 1795 }, 1796 evaluate 1797 }) => { 1798 watch.forEach(entry => { 1799 useWatch(() => { 1800 let start; 1801 if (false) {} 1802 const result = evaluate(entry); 1803 if (false) {} 1804 return result; 1805 }); 1806 }); 1807 }); 1808 1809 // data-wp-init--[name] 1810 directive('init', ({ 1811 directives: { 1812 init 1813 }, 1814 evaluate 1815 }) => { 1816 init.forEach(entry => { 1817 // TODO: Replace with useEffect to prevent unneeded scopes. 1818 useInit(() => { 1819 let start; 1820 if (false) {} 1821 const result = evaluate(entry); 1822 if (false) {} 1823 return result; 1824 }); 1825 }); 1826 }); 1827 1828 // data-wp-on--[event] 1829 directive('on', ({ 1830 directives: { 1831 on 1832 }, 1833 element, 1834 evaluate 1835 }) => { 1836 const events = new Map(); 1837 on.filter(({ 1838 suffix 1839 }) => suffix !== 'default').forEach(entry => { 1840 const event = entry.suffix.split('--')[0]; 1841 if (!events.has(event)) { 1842 events.set(event, new Set()); 1843 } 1844 events.get(event).add(entry); 1845 }); 1846 events.forEach((entries, eventType) => { 1847 const existingHandler = element.props[`on$eventType}`]; 1848 element.props[`on$eventType}`] = event => { 1849 entries.forEach(entry => { 1850 if (existingHandler) { 1851 existingHandler(event); 1852 } 1853 let start; 1854 if (false) {} 1855 evaluate(entry, event); 1856 if (false) {} 1857 }); 1858 }; 1859 }); 1860 }); 1861 1862 // data-wp-on-async--[event] 1863 directive('on-async', ({ 1864 directives: { 1865 'on-async': onAsync 1866 }, 1867 element, 1868 evaluate 1869 }) => { 1870 const events = new Map(); 1871 onAsync.filter(({ 1872 suffix 1873 }) => suffix !== 'default').forEach(entry => { 1874 const event = entry.suffix.split('--')[0]; 1875 if (!events.has(event)) { 1876 events.set(event, new Set()); 1877 } 1878 events.get(event).add(entry); 1879 }); 1880 events.forEach((entries, eventType) => { 1881 const existingHandler = element.props[`on$eventType}`]; 1882 element.props[`on$eventType}`] = event => { 1883 if (existingHandler) { 1884 existingHandler(event); 1885 } 1886 entries.forEach(async entry => { 1887 await splitTask(); 1888 evaluate(entry, event); 1889 }); 1890 }; 1891 }); 1892 }); 1893 1894 // data-wp-on-window--[event] 1895 directive('on-window', getGlobalEventDirective('window')); 1896 // data-wp-on-document--[event] 1897 directive('on-document', getGlobalEventDirective('document')); 1898 1899 // data-wp-on-async-window--[event] 1900 directive('on-async-window', getGlobalAsyncEventDirective('window')); 1901 // data-wp-on-async-document--[event] 1902 directive('on-async-document', getGlobalAsyncEventDirective('document')); 1903 1904 // data-wp-class--[classname] 1905 directive('class', ({ 1906 directives: { 1907 class: classNames 1908 }, 1909 element, 1910 evaluate 1911 }) => { 1912 classNames.filter(({ 1913 suffix 1914 }) => suffix !== 'default').forEach(entry => { 1915 const className = entry.suffix; 1916 const result = evaluate(entry); 1917 const currentClass = element.props.class || ''; 1918 const classFinder = new RegExp(`(^|\\s)$className}(\\s|$)`, 'g'); 1919 if (!result) { 1920 element.props.class = currentClass.replace(classFinder, ' ').trim(); 1921 } else if (!classFinder.test(currentClass)) { 1922 element.props.class = currentClass ? `$currentClass} $className}` : className; 1923 } 1924 useInit(() => { 1925 /* 1926 * This seems necessary because Preact doesn't change the class 1927 * names on the hydration, so we have to do it manually. It doesn't 1928 * need deps because it only needs to do it the first time. 1929 */ 1930 if (!result) { 1931 element.ref.current.classList.remove(className); 1932 } else { 1933 element.ref.current.classList.add(className); 1934 } 1935 }); 1936 }); 1937 }); 1938 1939 // data-wp-style--[style-prop] 1940 directive('style', ({ 1941 directives: { 1942 style 1943 }, 1944 element, 1945 evaluate 1946 }) => { 1947 style.filter(({ 1948 suffix 1949 }) => suffix !== 'default').forEach(entry => { 1950 const styleProp = entry.suffix; 1951 const result = evaluate(entry); 1952 element.props.style = element.props.style || {}; 1953 if (typeof element.props.style === 'string') { 1954 element.props.style = cssStringToObject(element.props.style); 1955 } 1956 if (!result) { 1957 delete element.props.style[styleProp]; 1958 } else { 1959 element.props.style[styleProp] = result; 1960 } 1961 useInit(() => { 1962 /* 1963 * This seems necessary because Preact doesn't change the styles on 1964 * the hydration, so we have to do it manually. It doesn't need deps 1965 * because it only needs to do it the first time. 1966 */ 1967 if (!result) { 1968 element.ref.current.style.removeProperty(styleProp); 1969 } else { 1970 element.ref.current.style[styleProp] = result; 1971 } 1972 }); 1973 }); 1974 }); 1975 1976 // data-wp-bind--[attribute] 1977 directive('bind', ({ 1978 directives: { 1979 bind 1980 }, 1981 element, 1982 evaluate 1983 }) => { 1984 bind.filter(({ 1985 suffix 1986 }) => suffix !== 'default').forEach(entry => { 1987 const attribute = entry.suffix; 1988 const result = evaluate(entry); 1989 element.props[attribute] = result; 1990 1991 /* 1992 * This is necessary because Preact doesn't change the attributes on the 1993 * hydration, so we have to do it manually. It only needs to do it the 1994 * first time. After that, Preact will handle the changes. 1995 */ 1996 useInit(() => { 1997 const el = element.ref.current; 1998 1999 /* 2000 * We set the value directly to the corresponding HTMLElement instance 2001 * property excluding the following special cases. We follow Preact's 2002 * logic: https://github.com/preactjs/preact/blob/ea49f7a0f9d1ff2c98c0bdd66aa0cbc583055246/src/diff/props.js#L110-L129 2003 */ 2004 if (attribute === 'style') { 2005 if (typeof result === 'string') { 2006 el.style.cssText = result; 2007 } 2008 return; 2009 } else if (attribute !== 'width' && attribute !== 'height' && attribute !== 'href' && attribute !== 'list' && attribute !== 'form' && 2010 /* 2011 * The value for `tabindex` follows the parsing rules for an 2012 * integer. If that fails, or if the attribute isn't present, then 2013 * the browsers should "follow platform conventions to determine if 2014 * the element should be considered as a focusable area", 2015 * practically meaning that most elements get a default of `-1` (not 2016 * focusable), but several also get a default of `0` (focusable in 2017 * order after all elements with a positive `tabindex` value). 2018 * 2019 * @see https://html.spec.whatwg.org/#tabindex-value 2020 */ 2021 attribute !== 'tabIndex' && attribute !== 'download' && attribute !== 'rowSpan' && attribute !== 'colSpan' && attribute !== 'role' && attribute in el) { 2022 try { 2023 el[attribute] = result === null || result === undefined ? '' : result; 2024 return; 2025 } catch (err) {} 2026 } 2027 /* 2028 * aria- and data- attributes have no boolean representation. 2029 * A `false` value is different from the attribute not being 2030 * present, so we can't remove it. 2031 * We follow Preact's logic: https://github.com/preactjs/preact/blob/ea49f7a0f9d1ff2c98c0bdd66aa0cbc583055246/src/diff/props.js#L131C24-L136 2032 */ 2033 if (result !== null && result !== undefined && (result !== false || attribute[4] === '-')) { 2034 el.setAttribute(attribute, result); 2035 } else { 2036 el.removeAttribute(attribute); 2037 } 2038 }); 2039 }); 2040 }); 2041 2042 // data-wp-ignore 2043 directive('ignore', ({ 2044 element: { 2045 type: Type, 2046 props: { 2047 innerHTML, 2048 ...rest 2049 } 2050 } 2051 }) => { 2052 // Preserve the initial inner HTML. 2053 const cached = hooks_module_T(() => innerHTML, []); 2054 return _(Type, { 2055 dangerouslySetInnerHTML: { 2056 __html: cached 2057 }, 2058 ...rest 2059 }); 2060 }); 2061 2062 // data-wp-text 2063 directive('text', ({ 2064 directives: { 2065 text 2066 }, 2067 element, 2068 evaluate 2069 }) => { 2070 const entry = text.find(({ 2071 suffix 2072 }) => suffix === 'default'); 2073 if (!entry) { 2074 element.props.children = null; 2075 return; 2076 } 2077 try { 2078 const result = evaluate(entry); 2079 element.props.children = typeof result === 'object' ? null : result.toString(); 2080 } catch (e) { 2081 element.props.children = null; 2082 } 2083 }); 2084 2085 // data-wp-run 2086 directive('run', ({ 2087 directives: { 2088 run 2089 }, 2090 evaluate 2091 }) => { 2092 run.forEach(entry => evaluate(entry)); 2093 }); 2094 2095 // data-wp-each--[item] 2096 directive('each', ({ 2097 directives: { 2098 each, 2099 'each-key': eachKey 2100 }, 2101 context: inheritedContext, 2102 element, 2103 evaluate 2104 }) => { 2105 if (element.type !== 'template') { 2106 return; 2107 } 2108 const { 2109 Provider 2110 } = inheritedContext; 2111 const inheritedValue = hooks_module_x(inheritedContext); 2112 const [entry] = each; 2113 const { 2114 namespace, 2115 suffix 2116 } = entry; 2117 const list = evaluate(entry); 2118 return list.map(item => { 2119 const itemProp = suffix === 'default' ? 'item' : kebabToCamelCase(suffix); 2120 const itemContext = proxifyContext(proxifyState(namespace, {}), inheritedValue.client[namespace]); 2121 const mergedContext = { 2122 client: { 2123 ...inheritedValue.client, 2124 [namespace]: itemContext 2125 }, 2126 server: { 2127 ...inheritedValue.server 2128 } 2129 }; 2130 2131 // Set the item after proxifying the context. 2132 mergedContext.client[namespace][itemProp] = item; 2133 const scope = { 2134 ...getScope(), 2135 context: mergedContext.client, 2136 serverContext: mergedContext.server 2137 }; 2138 const key = eachKey ? getEvaluate({ 2139 scope 2140 })(eachKey[0]) : item; 2141 return _(Provider, { 2142 value: mergedContext, 2143 key 2144 }, element.props.content); 2145 }); 2146 }, { 2147 priority: 20 2148 }); 2149 directive('each-child', () => null, { 2150 priority: 1 2151 }); 2152 }); 2153 2154 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/constants.js 2155 const directivePrefix = 'wp'; 2156 2157 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/vdom.js 2158 /** 2159 * External dependencies 2160 */ 2161 2162 /** 2163 * Internal dependencies 2164 */ 2165 2166 2167 const ignoreAttr = `data-$directivePrefix}-ignore`; 2168 const islandAttr = `data-$directivePrefix}-interactive`; 2169 const fullPrefix = `data-$directivePrefix}-`; 2170 const namespaces = []; 2171 const currentNamespace = () => { 2172 var _namespaces; 2173 return (_namespaces = namespaces[namespaces.length - 1]) !== null && _namespaces !== void 0 ? _namespaces : null; 2174 }; 2175 const isObject = item => Boolean(item && typeof item === 'object' && item.constructor === Object); 2176 2177 // Regular expression for directive parsing. 2178 const directiveParser = new RegExp(`^data-$directivePrefix}-` + 2179 // ${p} must be a prefix string, like 'wp'. 2180 // Match alphanumeric characters including hyphen-separated 2181 // segments. It excludes underscore intentionally to prevent confusion. 2182 // E.g., "custom-directive". 2183 '([a-z0-9]+(?:-[a-z0-9]+)*)' + 2184 // (Optional) Match '--' followed by any alphanumeric charachters. It 2185 // excludes underscore intentionally to prevent confusion, but it can 2186 // contain multiple hyphens. E.g., "--custom-prefix--with-more-info". 2187 '(?:--([a-z0-9_-]+))?$', 'i' // Case insensitive. 2188 ); 2189 2190 // Regular expression for reference parsing. It can contain a namespace before 2191 // the reference, separated by `::`, like `some-namespace::state.somePath`. 2192 // Namespaces can contain any alphanumeric characters, hyphens, underscores or 2193 // forward slashes. References don't have any restrictions. 2194 const nsPathRegExp = /^([\w_\/-]+)::(.+)$/; 2195 const hydratedIslands = new WeakSet(); 2196 2197 /** 2198 * Recursive function that transforms a DOM tree into vDOM. 2199 * 2200 * @param root The root element or node to start traversing on. 2201 * @return The resulting vDOM tree. 2202 */ 2203 function toVdom(root) { 2204 const treeWalker = document.createTreeWalker(root, 205 // TEXT + CDATA_SECTION + COMMENT + PROCESSING_INSTRUCTION + ELEMENT 2205 ); 2206 function walk(node) { 2207 const { 2208 nodeType 2209 } = node; 2210 2211 // TEXT_NODE (3) 2212 if (nodeType === 3) { 2213 return [node.data]; 2214 } 2215 2216 // CDATA_SECTION_NODE (4) 2217 if (nodeType === 4) { 2218 var _nodeValue; 2219 const next = treeWalker.nextSibling(); 2220 node.replaceWith(new window.Text((_nodeValue = node.nodeValue) !== null && _nodeValue !== void 0 ? _nodeValue : '')); 2221 return [node.nodeValue, next]; 2222 } 2223 2224 // COMMENT_NODE (8) || PROCESSING_INSTRUCTION_NODE (7) 2225 if (nodeType === 8 || nodeType === 7) { 2226 const next = treeWalker.nextSibling(); 2227 node.remove(); 2228 return [null, next]; 2229 } 2230 const elementNode = node; 2231 const { 2232 attributes 2233 } = elementNode; 2234 const localName = elementNode.localName; 2235 const props = {}; 2236 const children = []; 2237 const directives = []; 2238 let ignore = false; 2239 let island = false; 2240 for (let i = 0; i < attributes.length; i++) { 2241 const attributeName = attributes[i].name; 2242 const attributeValue = attributes[i].value; 2243 if (attributeName[fullPrefix.length] && attributeName.slice(0, fullPrefix.length) === fullPrefix) { 2244 if (attributeName === ignoreAttr) { 2245 ignore = true; 2246 } else { 2247 var _regexResult$, _regexResult$2; 2248 const regexResult = nsPathRegExp.exec(attributeValue); 2249 const namespace = (_regexResult$ = regexResult?.[1]) !== null && _regexResult$ !== void 0 ? _regexResult$ : null; 2250 let value = (_regexResult$2 = regexResult?.[2]) !== null && _regexResult$2 !== void 0 ? _regexResult$2 : attributeValue; 2251 try { 2252 const parsedValue = JSON.parse(value); 2253 value = isObject(parsedValue) ? parsedValue : value; 2254 } catch {} 2255 if (attributeName === islandAttr) { 2256 island = true; 2257 const islandNamespace = 2258 // eslint-disable-next-line no-nested-ternary 2259 typeof value === 'string' ? value : typeof value?.namespace === 'string' ? value.namespace : null; 2260 namespaces.push(islandNamespace); 2261 } else { 2262 directives.push([attributeName, namespace, value]); 2263 } 2264 } 2265 } else if (attributeName === 'ref') { 2266 continue; 2267 } 2268 props[attributeName] = attributeValue; 2269 } 2270 if (ignore && !island) { 2271 return [_(localName, { 2272 ...props, 2273 innerHTML: elementNode.innerHTML, 2274 __directives: { 2275 ignore: true 2276 } 2277 })]; 2278 } 2279 if (island) { 2280 hydratedIslands.add(elementNode); 2281 } 2282 if (directives.length) { 2283 props.__directives = directives.reduce((obj, [name, ns, value]) => { 2284 const directiveMatch = directiveParser.exec(name); 2285 if (directiveMatch === null) { 2286 warn(`Found malformed directive name: $name}.`); 2287 return obj; 2288 } 2289 const prefix = directiveMatch[1] || ''; 2290 const suffix = directiveMatch[2] || 'default'; 2291 obj[prefix] = obj[prefix] || []; 2292 obj[prefix].push({ 2293 namespace: ns !== null && ns !== void 0 ? ns : currentNamespace(), 2294 value, 2295 suffix 2296 }); 2297 return obj; 2298 }, {}); 2299 } 2300 2301 // @ts-expect-error Fixed in upcoming preact release https://github.com/preactjs/preact/pull/4334 2302 if (localName === 'template') { 2303 props.content = [...elementNode.content.childNodes].map(childNode => toVdom(childNode)); 2304 } else { 2305 let child = treeWalker.firstChild(); 2306 if (child) { 2307 while (child) { 2308 const [vnode, nextChild] = walk(child); 2309 if (vnode) { 2310 children.push(vnode); 2311 } 2312 child = nextChild || treeWalker.nextSibling(); 2313 } 2314 treeWalker.parentNode(); 2315 } 2316 } 2317 2318 // Restore previous namespace. 2319 if (island) { 2320 namespaces.pop(); 2321 } 2322 return [_(localName, props, children)]; 2323 } 2324 return walk(treeWalker.currentNode); 2325 } 2326 2327 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/init.js 2328 /** 2329 * External dependencies 2330 */ 2331 2332 /** 2333 * Internal dependencies 2334 */ 2335 2336 2337 2338 2339 // Keep the same root fragment for each interactive region node. 2340 const regionRootFragments = new WeakMap(); 2341 const getRegionRootFragment = region => { 2342 if (!region.parentElement) { 2343 throw Error('The passed region should be an element with a parent.'); 2344 } 2345 if (!regionRootFragments.has(region)) { 2346 regionRootFragments.set(region, createRootFragment(region.parentElement, region)); 2347 } 2348 return regionRootFragments.get(region); 2349 }; 2350 2351 // Initial vDOM regions associated with its DOM element. 2352 const initialVdom = new WeakMap(); 2353 2354 // Initialize the router with the initial DOM. 2355 const init = async () => { 2356 const nodes = document.querySelectorAll(`[data-$directivePrefix}-interactive]`); 2357 for (const node of nodes) { 2358 if (!hydratedIslands.has(node)) { 2359 await splitTask(); 2360 const fragment = getRegionRootFragment(node); 2361 const vdom = toVdom(node); 2362 initialVdom.set(node, vdom); 2363 await splitTask(); 2364 D(vdom, fragment); 2365 } 2366 } 2367 }; 2368 2369 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/index.js 2370 /** 2371 * External dependencies 2372 */ 2373 2374 2375 2376 /** 2377 * Internal dependencies 2378 */ 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 const requiredConsent = 'I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress.'; 2392 const privateApis = lock => { 2393 if (lock === requiredConsent) { 2394 return { 2395 directivePrefix: directivePrefix, 2396 getRegionRootFragment: getRegionRootFragment, 2397 initialVdom: initialVdom, 2398 toVdom: toVdom, 2399 directive: directive, 2400 getNamespace: getNamespace, 2401 h: _, 2402 cloneElement: E, 2403 render: B, 2404 proxifyState: proxifyState, 2405 parseServerData: parseServerData, 2406 populateServerData: populateServerData, 2407 batch: signals_core_module_r 2408 }; 2409 } 2410 throw new Error('Forbidden access.'); 2411 }; 2412 directives(); 2413 init(); 2414 2415 ;// CONCATENATED MODULE: ./node_modules/@wordpress/interactivity/build-module/debug.js 2416 /** 2417 * External dependencies 2418 */ 2419 2420 2421 2422 var __webpack_exports__getConfig = __webpack_exports__.zj; 2423 var __webpack_exports__getContext = __webpack_exports__.SD; 2424 var __webpack_exports__getElement = __webpack_exports__.V6; 2425 var __webpack_exports__getServerContext = __webpack_exports__.$K; 2426 var __webpack_exports__getServerState = __webpack_exports__.vT; 2427 var __webpack_exports__privateApis = __webpack_exports__.jb; 2428 var __webpack_exports__splitTask = __webpack_exports__.yT; 2429 var __webpack_exports__store = __webpack_exports__.M_; 2430 var __webpack_exports__useCallback = __webpack_exports__.hb; 2431 var __webpack_exports__useEffect = __webpack_exports__.vJ; 2432 var __webpack_exports__useInit = __webpack_exports__.ip; 2433 var __webpack_exports__useLayoutEffect = __webpack_exports__.Nf; 2434 var __webpack_exports__useMemo = __webpack_exports__.Kr; 2435 var __webpack_exports__useRef = __webpack_exports__.li; 2436 var __webpack_exports__useState = __webpack_exports__.J0; 2437 var __webpack_exports__useWatch = __webpack_exports__.FH; 2438 var __webpack_exports__withScope = __webpack_exports__.v4; 2439 export { __webpack_exports__getConfig as getConfig, __webpack_exports__getContext as getContext, __webpack_exports__getElement as getElement, __webpack_exports__getServerContext as getServerContext, __webpack_exports__getServerState as getServerState, __webpack_exports__privateApis as privateApis, __webpack_exports__splitTask as splitTask, __webpack_exports__store as store, __webpack_exports__useCallback as useCallback, __webpack_exports__useEffect as useEffect, __webpack_exports__useInit as useInit, __webpack_exports__useLayoutEffect as useLayoutEffect, __webpack_exports__useMemo as useMemo, __webpack_exports__useRef as useRef, __webpack_exports__useState as useState, __webpack_exports__useWatch as useWatch, __webpack_exports__withScope as withScope };
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated : Tue Sep 24 08:20:01 2024 | Cross-referenced by PHPXref |