Changeset 3469652
- Timestamp:
- 02/25/2026 05:45:16 PM (4 weeks ago)
- Location:
- advanced-query-loop
- Files:
-
- 45 added
- 20 edited
-
tags/4.4.0 (added)
-
tags/4.4.0/build (added)
-
tags/4.4.0/build/legacy-pre-gb-19.asset.php (added)
-
tags/4.4.0/build/legacy-pre-gb-19.js (added)
-
tags/4.4.0/build/variations.asset.php (added)
-
tags/4.4.0/build/variations.js (added)
-
tags/4.4.0/includes (added)
-
tags/4.4.0/includes/Query_Params_Generator.php (added)
-
tags/4.4.0/includes/Traits (added)
-
tags/4.4.0/includes/Traits/Date_Query.php (added)
-
tags/4.4.0/includes/Traits/Disable_Pagination.php (added)
-
tags/4.4.0/includes/Traits/Enable_Caching.php (added)
-
tags/4.4.0/includes/Traits/Exclude_Current.php (added)
-
tags/4.4.0/includes/Traits/Exclude_Posts.php (added)
-
tags/4.4.0/includes/Traits/Exclude_Taxonomies.php (added)
-
tags/4.4.0/includes/Traits/Include_Posts.php (added)
-
tags/4.4.0/includes/Traits/Meta_Query.php (added)
-
tags/4.4.0/includes/Traits/Multiple_Posts.php (added)
-
tags/4.4.0/includes/Traits/OrderBy.php (added)
-
tags/4.4.0/includes/Traits/Post_Parent.php (added)
-
tags/4.4.0/includes/Traits/Tax_Query.php (added)
-
tags/4.4.0/includes/enqueues.php (added)
-
tags/4.4.0/includes/query-loop.php (added)
-
tags/4.4.0/includes/taxonomy.php (added)
-
tags/4.4.0/includes/utilities.php (added)
-
tags/4.4.0/index.php (added)
-
tags/4.4.0/readme.md (added)
-
tags/4.4.0/readme.txt (added)
-
tags/4.4.0/vendor (added)
-
tags/4.4.0/vendor/autoload.php (added)
-
tags/4.4.0/vendor/composer (added)
-
tags/4.4.0/vendor/composer/ClassLoader.php (added)
-
tags/4.4.0/vendor/composer/InstalledVersions.php (added)
-
tags/4.4.0/vendor/composer/LICENSE (added)
-
tags/4.4.0/vendor/composer/autoload_classmap.php (added)
-
tags/4.4.0/vendor/composer/autoload_files.php (added)
-
tags/4.4.0/vendor/composer/autoload_namespaces.php (added)
-
tags/4.4.0/vendor/composer/autoload_psr4.php (added)
-
tags/4.4.0/vendor/composer/autoload_real.php (added)
-
tags/4.4.0/vendor/composer/autoload_static.php (added)
-
tags/4.4.0/vendor/composer/installed.json (added)
-
tags/4.4.0/vendor/composer/installed.php (added)
-
tags/4.4.0/vendor/composer/platform_check.php (added)
-
trunk/build/variations.asset.php (modified) (1 diff)
-
trunk/build/variations.js (modified) (1 diff)
-
trunk/includes/Query_Params_Generator.php (modified) (4 diffs)
-
trunk/includes/Traits/Enable_Caching.php (added)
-
trunk/includes/Traits/Exclude_Current.php (modified) (1 diff)
-
trunk/includes/Traits/Exclude_Taxonomies.php (modified) (2 diffs)
-
trunk/includes/Traits/OrderBy.php (added)
-
trunk/includes/enqueues.php (modified) (2 diffs)
-
trunk/includes/query-loop.php (modified) (4 diffs)
-
trunk/includes/taxonomy.php (modified) (1 diff)
-
trunk/includes/utilities.php (modified) (2 diffs)
-
trunk/index.php (modified) (1 diff)
-
trunk/readme.md (modified) (5 diffs)
-
trunk/readme.txt (modified) (6 diffs)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/ClassLoader.php (modified) (27 diffs)
-
trunk/vendor/composer/InstalledVersions.php (modified) (6 diffs)
-
trunk/vendor/composer/autoload_classmap.php (modified) (2 diffs)
-
trunk/vendor/composer/autoload_real.php (modified) (2 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (4 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
-
trunk/vendor/composer/platform_check.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
advanced-query-loop/trunk/build/variations.asset.php
r3339814 r3469652 1 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-primitives'), 'version' => ' aef35b274d7db186fee3');1 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-primitives'), 'version' => '073f8c97461b01d3d038'); -
advanced-query-loop/trunk/build/variations.js
r3339814 r3469652 1 var aql;(()=>{"use strict";var e={d:(t,r)=>{for(var a in r)e.o(r,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:r[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{AQL:()=> ee,AQLControls:()=>c,AQLControlsInheritedQuery:()=>p});const r=window.wp.blocks,a=window.wp.i18n,n=window.React,l=window.wp.hooks,o=window.wp.blockEditor,u=window.wp.components,{Fill:d,Slot:i}=(0,u.createSlotFill)("AQLControls"),s=({children:e})=>(0,n.createElement)(d,null,e);s.Slot=({fillProps:e})=>(0,n.createElement)(i,{fillProps:e},(e=>e.length?e:null));const c=s,{Fill:y,Slot:m}=(0,u.createSlotFill)("AQLControlsInheritedQuery"),_=({children:e})=>(0,n.createElement)(y,null,e);_.Slot=m;const p=_,{Fill:q,Slot:h}=(0,u.createSlotFill)("AQLLegacyControls"),g=({children:e})=>(0,n.createElement)(q,null,e);g.Slot=({fillProps:e})=>(0,n.createElement)(h,{fillProps:e},(e=>e.length?e:null));const v=g,E={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let b;const f=new Uint8Array(16);function x(){if(!b&&(b="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!b))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return b(f)}const C=[];for(let e=0;e<256;++e)C.push((e+256).toString(16).slice(1));const w=function(e,t,r){if(E.randomUUID&&!t&&!e)return E.randomUUID();const a=(e=e||{}).random||(e.rng||x)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t){r=r||0;for(let e=0;e<16;++e)t[r+e]=a[e];return t}return function(e,t=0){return C[e[t+0]]+C[e[t+1]]+C[e[t+2]]+C[e[t+3]]+"-"+C[e[t+4]]+C[e[t+5]]+"-"+C[e[t+6]]+C[e[t+7]]+"-"+C[e[t+8]]+C[e[t+9]]+"-"+C[e[t+10]]+C[e[t+11]]+C[e[t+12]]+C[e[t+13]]+C[e[t+14]]+C[e[t+15]]}(a)},S=window.wp.coreData,T=window.wp.element,k=["=","!=",">",">=","<","<=","LIKE","NOT LIKE","IN","NOT IN","BETWEEN","NOT BETWEEN","EXISTS","NOT EXISTS","REGEXP","NOT REGEXP","RLIKE"],N=["CHAR","NUMERIC","BINARY","DATE","DATETIME","DECIMAL","SIGNED","TIME","UNSIGNED"],A={marginTop:"0.75em",marginBottom:"0.75em"},B=({registeredMetaKeys:e,id:t,queries:r,attributes:l,setAttributes:o})=>{const d=r.find((e=>e.id===t)),[i,s]=(0,T.useState)(!1),[c,y]=(0,T.useState)(!1);(0,T.useEffect)((()=>{d?.meta_type&&"CHAR"!==d?.meta_type||d?.meta_compare&&"="!==d?.meta_compare?(s(!0),y(!0)):y(!1)}),[d?.meta_type,d?.meta_compare]);const m=(e,t,r,a)=>e.map((e=>e.id===t?{...e,[r]:a}:e));return(0,n.createElement)(n.Fragment,null,(0,n.createElement)(u.FormTokenField,{label:(0,a.__)("Meta Key","advanced-query-loop"),value:d?.meta_key?.length?[d.meta_key]:[],__experimentalShowHowTo:!1,suggestions:e,maxLength:1,onChange:e=>{o({query:{...l.query,meta_query:{...l.query.meta_query,queries:m(r,t,"meta_key",e[0])}}})}}),d?.meta_key?.length>0&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(u.TextControl,{label:(0,a.__)("Meta Value","advanced-query-loop"),value:d.meta_value,onChange:e=>{o({query:{...l.query,meta_query:{...l.query.meta_query,queries:m(r,t,"meta_value",e)}}})}}),i&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(u.SelectControl,{label:(0,a.__)("Meta Compare","advanced-query-loop"),value:d.meta_compare,options:[...k.map((e=>({label:e,value:e})))],onChange:e=>{o({query:{...l.query,meta_query:{...l.query.meta_query,queries:m(r,t,"meta_compare",e)}}})}}),(0,n.createElement)(u.SelectControl,{label:(0,a.__)("Meta Type","advanced-query-loop"),value:d.meta_type,options:[...N.map((e=>({label:e,value:e})))],onChange:e=>{o({query:{...l.query,meta_query:{...l.query.meta_query,queries:m(r,t,"meta_type",e)}}})},__nextHasNoMarginBottom:!0}))),(0,n.createElement)("hr",null),(0,n.createElement)(u.__experimentalHStack,{alignment:d?.meta_key?"edge":"right",style:A},d?.meta_key&&(0,n.createElement)(u.ToggleControl,{checked:i,label:(0,a.__)("Advanced mode","advanced-query-loop"),onChange:()=>s(!i),disabled:c}),(0,n.createElement)(u.Button,{key:t,variant:"secondary",size:"small",isDestructive:!0,onClick:()=>{const e=r.filter((e=>e.id!==t));o({query:{...l.query,meta_query:{...l.query.meta_query,queries:e}}})}},(0,a.__)("Remove query","advanced-query-loop"))),(0,n.createElement)("hr",null),(0,n.createElement)("br",null))},D=window.wp.data,P=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{postType:l,meta_query:{relation:o="",queries:d=[]}={}}={}}=e,{records:i}=(0,S.useEntityRecords)("postType",l,{per_page:1}),[s]=(0,T.useState)(l);if((0,T.useEffect)((()=>{l!==s&&t({query:{...e.query,meta_query:{}}})}),[l]),!r.includes("post_meta_query"))return null;const c=(e=>({...e?.[0]?.meta,...e?.[0]?.acf}))(i);return(0,n.createElement)(n.Fragment,null,(0,n.createElement)(u.Dropdown,{popoverProps:{placement:"left-start",offset:36},renderToggle:({isOpen:e,onToggle:t})=>(0,n.createElement)(u.Button,{variant:e?"primary":"secondary",onClick:t,"aria-haspopup":"true","aria-expanded":e,disabled:0===Object.keys(c).length},e?(0,a.__)("Close Post meta query builder","advanced-query-loop"):(0,a.__)("Open Post Meta query builder","advanced-query-loop")),renderContent:()=>(0,n.createElement)(u.__experimentalDropdownContentWrapper,{paddingSize:"none",style:{width:"30rem"}},(0,n.createElement)(u.Panel,{header:(0,a.__)("Meta Query Builder","advanced-query-loop")},(0,n.createElement)(u.PanelBody,null,d.length>1&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(u.ToggleControl,{label:(0,a.__)("Match Any Condition","advanced-query-loop"),help:(0,a.__)("By default, conditions are combined using the AND operator, meaning all conditions must be met. Enable this option to use the OR operator instead, allowing results that match any of the conditions.","advanced-query-loop"),checked:"OR"===o,onChange:()=>{t({query:{...e.query,meta_query:{...e.query.meta_query,relation:"OR"===e.query.meta_query.relation?"AND":"OR"}}})},__nextHasNoMarginBottom:!1}),(0,n.createElement)("hr",null)),d.map((({id:r,meta_key:a,meta_value:l,compare:o})=>(0,n.createElement)(B,{key:r,id:r,metaKey:a,metaValue:l,metaCompare:o,registeredMetaKeys:Object.keys(c),queries:d,attributes:e,setAttributes:t}))),(0,n.createElement)(u.__experimentalHStack,null,(0,n.createElement)(u.Button,{variant:"primary",onClick:()=>{const r=[...d,{id:w(),meta_key:"",meta_value:"",meta_compare:""}];t({query:{...e.query,meta_query:{...e.query.meta_query,queries:r}}})}},(0,a.__)("Add new query","advanced-query-loop")),d.length>0&&(0,n.createElement)(u.Button,{variant:"primary",isDestructive:!0,onClick:()=>{t({query:{...e.query,meta_query:{}}})}},(0,a.__)("Reset queries","advanced-query-loop"))))))}))},M=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{date_query:{relation:l="",date_primary:o=new Date,date_secondary:d=new Date,inclusive:i=!1,range:s="",current_date_in_range:c=!1}={}}={}}=e;return(0,n.createElement)(n.Fragment,null,(0,n.createElement)("h2",null,(0,a.__)("Post Date Query","advanced-query-loop")),r.includes("date_query_dynamic_range")&&(0,n.createElement)(u.SelectControl,{label:(0,a.__)("Dynamic Range","advanced-query-loop"),help:(0,a.__)("Show posts from the last month, 3 months, 6 months, or 12 months. Posts are shown from the 1st of the month.","advanced-query-loop"),value:s,disabled:""!==l,options:[{label:(0,a.__)("None","advanced-query-loop"),value:""},{label:(0,a.__)("Last month","advanced-query-loop"),value:"last-month"},{label:(0,a.__)("Last 3 months","advanced-query-loop"),value:"three-months"},{label:(0,a.__)("Last 6 months","advanced-query-loop"),value:"six-months"},{label:(0,a.__)("Last 12 months","advanced-query-loop"),value:"twelve-months"}],onChange:r=>{t({query:{...e.query,date_query:{...e.query.date_query,range:r}}})},__nextHasNoMarginBottom:!0}),""!==s&&r.includes("date_query_dynamic_range")&&(0,n.createElement)(u.CheckboxControl,{label:(0,a.__)("Include up to current date","advanced-query-loop"),help:(0,a.__)("Should the dynamic range include up to the current date?","advanced-query-loop"),disabled:""===s,checked:c,onChange:r=>{t({query:{...e.query,date_query:{...e.query.date_query,current_date_in_range:r}}})}}),r.includes("date_query_relationship")&&(0,n.createElement)(u.SelectControl,{label:(0,a.__)("Date Relationship","advanced-query-loop"),help:(0,a.__)("Show posts before or after the current date, or before, after, or between specific dates.","advanced-query-loop"),value:l,disabled:r.includes("date_query_dynamic_range")&&""!==s,options:[{label:(0,a.__)("None","advanced-query-loop"),value:""},{label:(0,a.__)("Before current date","advanced-query-loop"),value:"before-current"},{label:(0,a.__)("After current date","advanced-query-loop"),value:"after-current"},{label:(0,a.__)("Before specific date","advanced-query-loop"),value:"before"},{label:(0,a.__)("After specific date","advanced-query-loop"),value:"after"},{label:(0,a.__)("Between specific dates","advanced-query-loop"),value:"between"}],onChange:r=>{t({query:{...e.query,date_query:""!==r?{...e.query.date_query,relation:r}:""}})},__nextHasNoMarginBottom:!0}),""!==l&&!l.includes("current")&&r.includes("date_query_relationship")&&(0,n.createElement)(n.Fragment,null,"between"===l&&(0,n.createElement)("h4",null,(0,a.__)("Start date","advanced-query-loop")),(0,n.createElement)(u.DatePicker,{currentDate:o,onChange:r=>{t({query:{...e.query,date_query:{...e.query.date_query,date_primary:r}}})}}),"between"===l&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)("h4",null,(0,a.__)("End date","advanced-query-loop")),(0,n.createElement)(u.DatePicker,{currentDate:d,onChange:r=>{t({query:{...e.query,date_query:{...e.query.date_query,date_secondary:r}}})}})),(0,n.createElement)("br",null),(0,n.createElement)(u.CheckboxControl,{label:(0,a.__)("Include selected date(s)","advanced-query-loop"),help:(0,a.__)("Should the selected date(s) be included in your query?","advanced-query-loop"),checked:i,onChange:r=>{t({query:{...e.query,date_query:{...e.query.date_query,inclusive:r}}})}})))},I=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{multiple_posts:l=[],postType:o}={}}=e,d=(0,D.useSelect)((e=>e(S.store).getPostTypes({per_page:50})?.filter((({viewable:e})=>e))?.map((({slug:e})=>e))),[]);return r.includes("additional_post_types")?d?(0,n.createElement)(u.BaseControl,{help:(0,a.__)("These post types will be queried in addition to the main post type.","advanced-query-loop"),__nextHasNoMarginBottom:!0},(0,n.createElement)(u.FormTokenField,{label:(0,a.__)("Additional Post Types","advanced-query-loop"),value:[...l.filter((e=>e!==o))],suggestions:[...d?.filter((e=>e!==o))],onChange:r=>{t({query:{...e.query,multiple_posts:r||[]}})},__experimentalExpandOnFocus:!0,__experimentalShowHowTo:!1,__nextHasNoMarginBottom:!0})):(0,n.createElement)("div",null,(0,a.__)("Loading…","advanced-query-loop")):null},F=[{label:(0,a.__)("Name","advanced-query-loop"),value:"name"},{label:(0,a.__)("Author","advanced-query-loop"),value:"author"},{label:(0,a.__)("Comment Count","advanced-query-loop"),value:"comment_count"},{label:(0,a.__)("Date","advanced-query-loop"),value:"date"},{label:(0,a.__)("Included Posts","advanced-query-loop"),value:"post__in"},{label:(0,a.__)("Last Modified Date","advanced-query-loop"),value:"modified"},{label:(0,a.__)("Menu Order","advanced-query-loop"),value:"menu_order"},{label:(0,a.__)("Meta Value","advanced-query-loop"),value:"meta_value"},{label:(0,a.__)("Meta Value Num","advanced-query-loop"),value:"meta_value_num"},{label:(0,a.__)("Post ID","advanced-query-loop"),value:"id"},{label:(0,a.__)("Random","advanced-query-loop"),value:"rand"},{label:(0,a.__)("Title","advanced-query-loop"),value:"title"}],O=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{order:l,orderBy:o}={}}=e;return r.includes("post_order")?(0,n.createElement)(n.Fragment,null,(0,n.createElement)(u.SelectControl,{label:(0,a.__)("Post Order By","advanced-query-loop"),value:o,help:"meta_value"===o||"meta_value_num"===o?(0,a.__)("Meta Value and Meta Value Num require that Meta Key is set in the Meta Query section.","advanced-query-loop"):"",options:F.sort(((e,t)=>e.label.localeCompare(t.label))),onChange:r=>{t({query:{...e.query,orderBy:r}})},__nextHasNoMarginBottom:!0}),(0,n.createElement)(u.ToggleControl,{label:(0,a.__)("Ascending Order","advanced-query-loop"),checked:"asc"===l,onChange:()=>{t({query:{...e.query,order:"asc"===l?"desc":"asc"}})},__nextHasNoMarginBottom:!0})):null},H=window.wp.htmlEntities,R=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{exclude_current:l,exclude_posts:o=[]}={}}=e;return r.includes("exclude_current_post")||r.includes("exclude_posts")?(0,n.createElement)(n.Fragment,null,(0,n.createElement)("h2",null," ",(0,a.__)("Exclude Posts","advanced-query-loop")),(0,n.createElement)(L,{attributes:e,setAttributes:t,allowedControls:r}),(0,n.createElement)(Q,{attributes:e,setAttributes:t,allowedControls:r})):null},L=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{exclude_current:l}={}}=e,{record:o}=(0,S.useEntityRecord)("root","site"),{currentPost:d,isAdmin:i}=(0,D.useSelect)((e=>({currentPost:e("core/editor").getCurrentPost(),isAdmin:e(S.store).canUser("update",{kind:"root",name:"site"})})),[]);if(!r.includes("exclude_current_post"))return null;if(!d)return(0,n.createElement)("div",null,(0,a.__)("Loading…","advanced-query-loop"));const s=()=>{if(!i)return!1;const{show_on_front:e}=o,t=["archive","search",..."posts"===e?["home","front-page"]:[]];return"wp_template"===d.type&&t.includes(d.slug)};return(0,n.createElement)(u.ToggleControl,{__nextHasNoMarginBottom:!0,label:(0,a.__)("Exclude Current Post","advanced-query-loop"),checked:!!l,disabled:s(),onChange:r=>{t({query:{...e.query,exclude_current:r?d.id:0}})},help:s()?(0,a.__)("This option is disabled for this template as there is no dedicated post to exclude.","advanced-query-loop"):(0,a.__)("Remove the associated post for this template/content from the query results.","advanced-query-loop")})},Q=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{exclude_posts:l=[],multiple_posts:o=[],postType:d}={}}=e,i=(0,D.useSelect)((e=>{const{getEntityRecords:t}=e("core");return[...o,d].reduce(((e,r)=>[...e,...t("postType",r,{per_page:-1})||[]]),[])}),[d,o]);return r.includes("exclude_posts")?i?(0,n.createElement)(u.BaseControl,{help:(0,a.__)("Start typing to search for a post title to exclude, or manually enter one.","advanced-query-loop")},(0,n.createElement)(u.FormTokenField,{label:(0,a.__)("Posts to Exclude","advanced-query-loop"),value:l.flatMap((e=>(e=>{const t=i.find((t=>t.id===e));return t?[(0,H.decodeEntities)(t.title.rendered.trim())]:[]})(e))),suggestions:i.map((e=>(0,H.decodeEntities)(e.title.rendered.trim()))),onChange:r=>{t({query:{...e.query,exclude_posts:r.flatMap((e=>(e=>{const t=i.find((t=>(0,H.decodeEntities)(t.title.rendered.trim())===e));return t?[t.id]:[]})(e)))||[]}})},__experimentalExpandOnFocus:!0,__experimentalShowHowTo:!1})):(0,n.createElement)("div",null,(0,a.__)("Loading…","advanced-query-loop")):null},z=window.wp.compose,U=(e,t,r,a)=>e.map((e=>e.id===t?{...e,[r]:a}:e)),V=["EXISTS","NOT EXISTS","AND"],K=["IN","NOT IN",...V],j={marginTop:"1.5em",marginBottom:"0.75em"},X=({id:e,taxonomy:t,terms:r,operator:l,includeChildren:o,availableTaxonomies:d,attributes:i,setAttributes:s})=>{const[c,y]=((e,t)=>{const[r,a]=(0,T.useState)(e);return[r,(0,z.useDebounce)(a,t)]})("",500),[m,_]=(0,T.useState)(!1),[p,q]=(0,T.useState)(!1),{records:h}=(0,S.useEntityRecords)("taxonomy",t,{per_page:10,search:c,_fields:"id,name",context:"view"}),g=(0,T.useMemo)((()=>(null!=h?h:[]).map((e=>e.name))),[h]);return(0,T.useEffect)((()=>{V.includes(l)||!1===o?(_(!0),q(!0)):q(!1)}),[l,o]),(0,n.createElement)(n.Fragment,null,(0,n.createElement)(u.SelectControl,{label:(0,a.__)("Taxonomy","advanced-query-loop"),value:t,options:[{label:"Choose taxonomy",value:""},...d.map((({name:e,slug:t})=>({label:e,value:t})))],onChange:t=>{s({query:{...i.query,tax_query:{...i.query.tax_query,queries:U(i.query.tax_query.queries,e,"taxonomy",t)}}})},__next40pxDefaultSize:!0}),t.length>1&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(u.FormTokenField,{label:(0,a.__)("Terms","advanced-query-loop"),suggestions:g,value:r,onInputChange:e=>{y(e)},onChange:t=>{s({query:{...i.query,tax_query:{...i.query.tax_query,queries:U(i.query.tax_query.queries,e,"terms",t)}}})},__next40pxDefaultSize:!0}),m?(0,n.createElement)(n.Fragment,null,(0,n.createElement)(u.SelectControl,{label:(0,a.__)("Operator","advanced-query-loop"),value:l,options:[...K.map((e=>({label:e,value:e})))],onChange:t=>{s({query:{...i.query,tax_query:{...i.query.tax_query,queries:U(i.query.tax_query.queries,e,"operator",t)}}})},__next40pxDefaultSize:!0}),(0,n.createElement)("div",{style:j},(0,n.createElement)(u.ToggleControl,{label:(0,a.__)("Include children","advanced-query-loop"),className:"advanced-query-loop__include-children",checked:o,onChange:t=>{s({query:{...i.query,tax_query:{...i.query.tax_query,queries:U(i.query.tax_query.queries,e,"include_children",t)}}})},__next40pxDefaultSize:!0}))):(0,n.createElement)(u.ToggleControl,{label:(0,a.__)("Exclude these terms from the query","advanced-query-loop"),checked:"NOT IN"===l,onChange:()=>{const t=i.query.tax_query.queries.find((t=>t.id===e));s({query:{...i.query,tax_query:{...i.query.tax_query,queries:U(i.query.tax_query.queries,e,"operator","IN"===t.operator?"NOT IN":"IN")}}})},__next40pxDefaultSize:!0})),(0,n.createElement)("hr",null),(0,n.createElement)(u.__experimentalHStack,{alignment:t?"edge":"right",style:j},t&&(0,n.createElement)(u.ToggleControl,{checked:m,label:(0,a.__)("Advanced mode","advanced-query-loop"),onChange:()=>_(!m),disabled:p,__nextHasNoMarginBottom:!0}),(0,n.createElement)(u.Button,{key:e,variant:"secondary",size:"small",isDestructive:!0,onClick:()=>s({query:{...i.query,tax_query:{...i.query.tax_query,queries:i.query.tax_query.queries.filter((({id:t})=>t!==e))}}})},(0,a.__)("Remove query","advanced-query-loop"))),(0,n.createElement)("hr",null),(0,n.createElement)("br",null))},G=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{postType:l,multiple_posts:o=[],tax_query:{relation:d="",queries:i=[]}={}}={}}=e,s=(0,D.useSelect)((e=>e(S.store).getTaxonomies({per_page:50})?.filter((({types:e})=>e.some((e=>[l,...o].includes(e)))))));return r.includes("taxonomy_query_builder")?(0,n.createElement)(n.Fragment,null,(0,n.createElement)(u.Dropdown,{popoverProps:{placement:"left-start",offset:36},renderToggle:({isOpen:e,onToggle:t})=>(0,n.createElement)(u.Button,{variant:e?"primary":"secondary",onClick:t,"aria-haspopup":"true","aria-expanded":e,disabled:0===s.length},e?(0,a.__)("Close Taxonomy query builder","advanced-query-loop"):(0,a.__)("Open Taxonomy query builder","advanced-query-loop")),renderContent:()=>(0,n.createElement)(u.__experimentalDropdownContentWrapper,{paddingSize:"none",style:{width:"30rem"}},(0,n.createElement)(u.Panel,{header:(0,a.__)("Taxonomy Query Builder","advanced-query-loop")},(0,n.createElement)(u.PanelBody,null,i.length>1&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(u.ToggleControl,{label:(0,a.__)("Combine filters","advanced-query-loop"),help:(0,a.__)("By default, filters are combined with the OR operator. Enable this option to combine filters with the AND operator.","advanced-query-loop"),checked:"AND"===d,onChange:()=>{t({query:{...e.query,tax_query:{...e.query.tax_query,relation:"OR"===e.query.tax_query.relation?"AND":"OR"}}})},__nextHasNoMarginBottom:!1}),(0,n.createElement)("hr",null)),i.map((({id:r,taxonomy:a,terms:l,operator:o,include_children:u})=>(0,n.createElement)(X,{key:r,taxonomy:a,operator:o,terms:l,id:r,relation:d,includeChildren:u,availableTaxonomies:s,setAttributes:t,attributes:e}))),(0,n.createElement)(u.__experimentalHStack,null,(0,n.createElement)(u.Button,{variant:"primary",onClick:()=>{t({query:{...e.query,tax_query:{relation:d||"OR",queries:[...i,{id:w(),taxonomy:"",terms:[],include_children:!0,operator:"IN"}]}}})}},(0,a.__)("Add new query","advanced-query-loop")),i.length>0&&(0,n.createElement)(u.Button,{variant:"primary",isDestructive:!0,onClick:()=>{t({query:{...e.query,tax_query:[]}})}},(0,a.__)("Reset queries","advanced-query-loop"))))))})):null},W=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{include_posts:l=[],postType:o,multiple_posts:d=[],exclude_current:i=0}={}}=e,[s,c]=(0,T.useState)(""),[y,m]=(0,T.useState)(d),_=(0,D.useSelect)((e=>{const{getEntityRecords:t}=e("core");return[...d,o].reduce(((e,r)=>[...e,...t("postType",r,{per_page:10,search:s,exclude:i?[i]:[]})||[]]),[])}),[o,d,i,s]);return(0,T.useEffect)((()=>{JSON.stringify(d)!==JSON.stringify(y)&&(t({query:{...e.query,include_posts:[]}}),m(d))}),[d]),r.includes("include_posts")?_?_.length>0&&!_[0].title?null:(0,n.createElement)(n.Fragment,null,(0,n.createElement)("h2",null," ",(0,a.__)("Include Posts","advanced-query-loop")),(0,n.createElement)(u.BaseControl,{help:(0,a.__)("Start typing to search for a post title or manually enter one.","advanced-query-loop"),__nextHasNoMarginBottom:!0},(0,n.createElement)(u.FormTokenField,{label:(0,a.__)("Posts","advanced-query-loop"),value:l.map((e=>(0,H.decodeEntities)(e.title))),suggestions:_.map((e=>(0,H.decodeEntities)(e?.title?.rendered||""))),onInputChange:e=>c(e),onChange:r=>{t({query:{...e.query,include_posts:r.map((e=>(e=>{const t=l.find((t=>(0,H.decodeEntities)(t.title)===e))||_.find((t=>(0,H.decodeEntities)(t.title.rendered.trim())===e));return t.title.rendered?{id:t.id,title:t.title.rendered}:t})(e)))||[]}}),c("")},__experimentalExpandOnFocus:!0,__experimentalShowHowTo:!1,__nextHasNoMarginBottom:!0}))):(0,n.createElement)("div",null,(0,a.__)("Loading…","advanced-query-loop")):null},J=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{disable_pagination:l}={}}=e;return r.includes("pagination")?(0,n.createElement)(u.ToggleControl,{label:(0,a.__)("Disable pagination","advanced-query-loop"),help:(0,a.__)("Disabling pagination will not show any pagination controls on the front end. It can also provide a performance improvement for complicated queries.","advanced-query-loop"),checked:!!l,onChange:()=>{t({query:{...e.query,disable_pagination:!l}})},__nextHasNoMarginBottom:!0}):null},Y=window.wp.editor,$=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{post_parent:l}={}}=e,{isHierarchial:o,postTypeName:d,postID:i}=(0,D.useSelect)((e=>{const t=e(Y.store).getCurrentPost(),r=e(Y.store).getCurrentPostType(),a=e(S.store).getPostType(r);return{isHierarchial:a?.hierarchical,postTypeName:r,postID:t?.id}}),[]);return r.includes("child_items_only")?(0,n.createElement)(u.ToggleControl,{__nextHasNoMarginBottom:!0,label:(0,a.__)("Show child items only","advanced-query-loop"),help:(0,a.__)("Only show child items of this item. This option is only available for hierarchical post types such as pages.","advanced-query-loop"),disabled:!o&&"wp_template"!==d,checked:!!l,onChange:r=>t({query:{...e.query,post_parent:r?i:0}})}):null};(0,l.addFilter)("editor.BlockEdit","aql/add-add-controls/core/query",(e=>t=>{if((e=>{const{attributes:{namespace:t}}=e;return t&&t===ee})(t)){const{allowedControls:r}=window?.aql,{attributes:l}=t,d=r.split(","),i={...t,allowedControls:d};return l.query.inherit?(0,n.createElement)(n.Fragment,null,(0,n.createElement)(e,{...t}),(0,n.createElement)(o.InspectorControls,null,(0,n.createElement)(u.PanelBody,{title:(0,a.__)("Advanced Query Settings","advanced-query-loop")},(0,n.createElement)(O,{...i}),(0,n.createElement)(p.Slot,{fillProps:{...i}})))):(0,n.createElement)(n.Fragment,null,(0,n.createElement)(e,{...t}),(0,n.createElement)(o.InspectorControls,null,(0,n.createElement)(u.PanelBody,{title:(0,a.__)("Advanced Query Settings","advanced-query-loop")},(0,n.createElement)(v.Slot,{fillProps:{...i}}),(0,n.createElement)(I,{...i}),(0,n.createElement)(u.BaseControl,{label:(0,a.__)("Query Builders","advanced-query-loop"),id:"query-builders"},(0,n.createElement)(u.__experimentalVStack,{alignment:"center"},(0,n.createElement)(G,{...i}),(0,n.createElement)(P,{...i}))),(0,n.createElement)(O,{...i}),(0,n.createElement)(R,{...i}),(0,n.createElement)(W,{...i}),(0,n.createElement)($,{...i}),(0,n.createElement)(M,{...i}),(0,n.createElement)(J,{...i}),(0,n.createElement)(c.Slot,{fillProps:{...i}}))))}return(0,n.createElement)(e,{...t})})),(0,l.addFilter)("blocks.registerBlockType","aql/add-transforms/query-block",(function(e,t){return"core/query"!==t?e:{...e,keywords:[...e.keywords,"AQL","aql"],transforms:{to:e?.transforms?.to||[],from:[...e?.transforms?.from||[],{type:"enter",regExp:/^(AQL|aql)$/,transform:()=>(0,r.createBlock)("core/query",{namespace:"advanced-query-loop"},[])}]}}}));const Z=window.wp.primitives,ee="advanced-query-loop";(0,r.registerBlockVariation)("core/query",{name:ee,title:(0,a.__)("Advanced Query Loop","advanced-query-loop"),description:(0,a.__)("Create advanced queries","advanced-query-loop"),icon:function(){return(0,n.createElement)(Z.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"none",viewBox:"0 0 24 24"},(0,n.createElement)(Z.Path,{fill:"#2D2B55",d:"M0 0h24v24H0V0z"}),(0,n.createElement)(Z.Path,{fill:"#fff",d:"M17.936 8.438h1.217v6.125h2.867v1.093h-4.084V8.437zM10.364 12.047c0 .515.11.97.33 1.361.22.392.519.701.897.928.385.22.815.33 1.289.33.481 0 .907-.106 1.279-.32.371-.22.663-.522.876-.907.213-.385.32-.825.32-1.32 0-.495-.107-.942-.32-1.34a2.455 2.455 0 00-.886-.95c-.372-.233-.812-.35-1.32-.35-.475 0-.898.11-1.269.33-.371.22-.663.526-.877.918-.213.385-.32.825-.32 1.32zm-1.29 0c0-.543.094-1.042.28-1.495.192-.454.456-.846.793-1.176a3.685 3.685 0 011.197-.784c.46-.185.955-.278 1.485-.278.543 0 1.041.093 1.495.278a3.57 3.57 0 011.186.784c.337.33.598.722.784 1.176.185.453.278.952.278 1.495 0 .536-.093 1.034-.278 1.495-.186.46-.447.86-.784 1.196-.33.337-.722.602-1.176.795a3.941 3.941 0 01-1.505.278 3.964 3.964 0 01-1.496-.278 3.676 3.676 0 01-1.196-.795 3.545 3.545 0 01-.784-1.196 3.964 3.964 0 01-.278-1.495zm3.425.515H13.9l3.248 3.146h-1.433l-3.217-3.146z"}),(0,n.createElement)(Z.Path,{fill:"#E76F51",d:"M3.546 13.8l.227-1.031h3.351l.237 1.031H3.546zm1.887-3.32l-1.134 2.65-.021.268-1 2.258H1.906l3.527-7.62 3.527 7.62H7.588l-.98-2.196-.03-.3-1.145-2.68z"}))},isActive:["namespace"],attributes:{namespace:ee},scope:["inserter","transform"]}),aql=t})();1 var aql;(()=>{"use strict";var e={d:(t,r)=>{for(var a in r)e.o(r,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:r[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{AQL:()=>ae,AQLControls:()=>_,AQLControlsInheritedQuery:()=>h});const r=window.wp.blocks,a=window.wp.i18n,n=window.React,l=window.wp.hooks,o=window.wp.blockEditor,u=window.wp.data,d=window.wp.components,s=window.wp.editor,{Fill:i,Slot:c}=(0,d.createSlotFill)("AQLControls"),y=({children:e})=>(0,n.createElement)(i,null,e);y.Slot=({fillProps:e})=>(0,n.createElement)(c,{fillProps:e},(e=>e.length?e:null));const _=y,{Fill:m,Slot:p}=(0,d.createSlotFill)("AQLControlsInheritedQuery"),q=({children:e})=>(0,n.createElement)(m,null,e);q.Slot=p;const h=q,{Fill:g,Slot:v}=(0,d.createSlotFill)("AQLLegacyControls"),E=({children:e})=>(0,n.createElement)(g,null,e);E.Slot=({fillProps:e})=>(0,n.createElement)(v,{fillProps:e},(e=>e.length?e:null));const b=E,f={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let C;const x=new Uint8Array(16);function w(){if(!C&&(C="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!C))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return C(x)}const T=[];for(let e=0;e<256;++e)T.push((e+256).toString(16).slice(1));const S=function(e,t,r){if(f.randomUUID&&!t&&!e)return f.randomUUID();const a=(e=e||{}).random||(e.rng||w)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t){r=r||0;for(let e=0;e<16;++e)t[r+e]=a[e];return t}return function(e,t=0){return T[e[t+0]]+T[e[t+1]]+T[e[t+2]]+T[e[t+3]]+"-"+T[e[t+4]]+T[e[t+5]]+"-"+T[e[t+6]]+T[e[t+7]]+"-"+T[e[t+8]]+T[e[t+9]]+"-"+T[e[t+10]]+T[e[t+11]]+T[e[t+12]]+T[e[t+13]]+T[e[t+14]]+T[e[t+15]]}(a)},k=window.wp.element,A=["=","!=",">",">=","<","<=","LIKE","NOT LIKE","IN","NOT IN","BETWEEN","NOT BETWEEN","EXISTS","NOT EXISTS","REGEXP","NOT REGEXP","RLIKE"],P=["CHAR","NUMERIC","BINARY","DATE","DATETIME","DECIMAL","SIGNED","TIME","UNSIGNED"],N={marginTop:"0.75em",marginBottom:"0.75em"},B=({registeredMetaKeys:e,id:t,queries:r,attributes:l,setAttributes:o})=>{const u=r.find((e=>e.id===t)),[s,i]=(0,k.useState)(!1),[c,y]=(0,k.useState)(!1);(0,k.useEffect)((()=>{u?.meta_type&&"CHAR"!==u?.meta_type||u?.meta_compare&&"="!==u?.meta_compare?(i(!0),y(!0)):y(!1)}),[u?.meta_type,u?.meta_compare]);const _=(e,t,r,a)=>e.map((e=>e.id===t?{...e,[r]:a}:e));return(0,n.createElement)(n.Fragment,null,(0,n.createElement)(d.FormTokenField,{label:(0,a.__)("Meta Key","advanced-query-loop"),value:u?.meta_key?.length?[u.meta_key]:[],__experimentalShowHowTo:!1,suggestions:e,maxLength:1,onChange:e=>{o({query:{...l.query,meta_query:{...l.query.meta_query,queries:_(r,t,"meta_key",e[0])}}})}}),u?.meta_key?.length>0&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(d.TextControl,{label:(0,a.__)("Meta Value","advanced-query-loop"),value:u.meta_value,onChange:e=>{o({query:{...l.query,meta_query:{...l.query.meta_query,queries:_(r,t,"meta_value",e)}}})}}),s&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(d.SelectControl,{label:(0,a.__)("Meta Compare","advanced-query-loop"),value:u.meta_compare,options:[...A.map((e=>({label:e,value:e})))],onChange:e=>{o({query:{...l.query,meta_query:{...l.query.meta_query,queries:_(r,t,"meta_compare",e)}}})}}),(0,n.createElement)(d.SelectControl,{label:(0,a.__)("Meta Type","advanced-query-loop"),value:u.meta_type,options:[...P.map((e=>({label:e,value:e})))],onChange:e=>{o({query:{...l.query,meta_query:{...l.query.meta_query,queries:_(r,t,"meta_type",e)}}})},__nextHasNoMarginBottom:!0}))),(0,n.createElement)("hr",null),(0,n.createElement)(d.__experimentalHStack,{alignment:u?.meta_key?"edge":"right",style:N},u?.meta_key&&(0,n.createElement)(d.ToggleControl,{checked:s,label:(0,a.__)("Advanced mode","advanced-query-loop"),onChange:()=>i(!s),disabled:c}),(0,n.createElement)(d.Button,{key:t,variant:"secondary",size:"small",isDestructive:!0,onClick:()=>{const e=r.filter((e=>e.id!==t));o({query:{...l.query,meta_query:{...l.query.meta_query,queries:e}}})}},(0,a.__)("Remove query","advanced-query-loop"))),(0,n.createElement)("hr",null),(0,n.createElement)("br",null))},D=window.wp.coreData,I=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{postType:l,multiple_posts:o=[],meta_query:{relation:s="",queries:i=[]}={}}={}}=e,c=(_=[l,...o],(0,u.useSelect)((e=>{let t={};return Array.isArray(_)&&0!==_.length?(_.filter(Boolean).forEach((r=>{const a=e(D.store).getEntityRecords("postType",r,{per_page:1});a&&void 0!==a?.[0]?.meta&&(t={...t,...a?.[0]?.meta,...a?.[0]?.acf})})),t):t}),[_])),[y]=(0,k.useState)(l);var _;return(0,k.useEffect)((()=>{l!==y&&t({query:{...e.query,meta_query:{}}})}),[l]),r.includes("post_meta_query")?(0,n.createElement)(n.Fragment,null,(0,n.createElement)(d.Dropdown,{popoverProps:{placement:"left-start",offset:36},renderToggle:({isOpen:e,onToggle:t})=>(0,n.createElement)(d.Button,{variant:e?"primary":"secondary",onClick:t,"aria-haspopup":"true","aria-expanded":e,disabled:0===Object.keys(c).length},e?(0,a.__)("Close Post meta query builder","advanced-query-loop"):(0,a.__)("Open Post Meta query builder","advanced-query-loop")),renderContent:()=>(0,n.createElement)(d.__experimentalDropdownContentWrapper,{paddingSize:"none",style:{width:"30rem"}},(0,n.createElement)(d.Panel,{header:(0,a.__)("Meta Query Builder","advanced-query-loop")},(0,n.createElement)(d.PanelBody,null,i.length>1&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(d.ToggleControl,{label:(0,a.__)("Match Any Condition","advanced-query-loop"),help:(0,a.__)("By default, conditions are combined using the AND operator, meaning all conditions must be met. Enable this option to use the OR operator instead, allowing results that match any of the conditions.","advanced-query-loop"),checked:"OR"===s,onChange:()=>{t({query:{...e.query,meta_query:{...e.query.meta_query,relation:"OR"===e.query.meta_query.relation?"AND":"OR"}}})},__nextHasNoMarginBottom:!1}),(0,n.createElement)("hr",null)),i.map((({id:r,meta_key:a,meta_value:l,compare:o})=>(0,n.createElement)(B,{key:r,id:r,metaKey:a,metaValue:l,metaCompare:o,registeredMetaKeys:Object.keys(c),queries:i,attributes:e,setAttributes:t}))),(0,n.createElement)(d.__experimentalHStack,null,(0,n.createElement)(d.Button,{variant:"primary",onClick:()=>{const r=[...i,{id:S(),meta_key:"",meta_value:"",meta_compare:""}];t({query:{...e.query,meta_query:{...e.query.meta_query,queries:r}}})}},(0,a.__)("Add new query","advanced-query-loop")),i.length>0&&(0,n.createElement)(d.Button,{variant:"primary",isDestructive:!0,onClick:()=>{t({query:{...e.query,meta_query:{}}})}},(0,a.__)("Reset queries","advanced-query-loop"))))))})):null},M=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{date_query:{relation:l="",date_primary:o=new Date,date_secondary:u=new Date,inclusive:s=!1,range:i="",current_date_in_range:c=!1}={}}={}}=e;return(0,n.createElement)(n.Fragment,null,(0,n.createElement)("h2",null,(0,a.__)("Post Date Query","advanced-query-loop")),r.includes("date_query_dynamic_range")&&(0,n.createElement)(d.SelectControl,{label:(0,a.__)("Dynamic Range","advanced-query-loop"),help:(0,a.__)("Show posts from the last month, 3 months, 6 months, or 12 months. Posts are shown from the 1st of the month.","advanced-query-loop"),value:i,disabled:""!==l,options:[{label:(0,a.__)("None","advanced-query-loop"),value:""},{label:(0,a.__)("Last month","advanced-query-loop"),value:"last-month"},{label:(0,a.__)("Last 3 months","advanced-query-loop"),value:"three-months"},{label:(0,a.__)("Last 6 months","advanced-query-loop"),value:"six-months"},{label:(0,a.__)("Last 12 months","advanced-query-loop"),value:"twelve-months"}],onChange:r=>{t({query:{...e.query,date_query:{...e.query.date_query,range:r}}})},__nextHasNoMarginBottom:!0}),""!==i&&r.includes("date_query_dynamic_range")&&(0,n.createElement)(d.CheckboxControl,{label:(0,a.__)("Include up to current date","advanced-query-loop"),help:(0,a.__)("Should the dynamic range include up to the current date?","advanced-query-loop"),disabled:""===i,checked:c,onChange:r=>{t({query:{...e.query,date_query:{...e.query.date_query,current_date_in_range:r}}})}}),r.includes("date_query_relationship")&&(0,n.createElement)(d.SelectControl,{label:(0,a.__)("Date Relationship","advanced-query-loop"),help:(0,a.__)("Show posts before or after the current date, or before, after, or between specific dates.","advanced-query-loop"),value:l,disabled:r.includes("date_query_dynamic_range")&&""!==i,options:[{label:(0,a.__)("None","advanced-query-loop"),value:""},{label:(0,a.__)("Before current date","advanced-query-loop"),value:"before-current"},{label:(0,a.__)("After current date","advanced-query-loop"),value:"after-current"},{label:(0,a.__)("Before specific date","advanced-query-loop"),value:"before"},{label:(0,a.__)("After specific date","advanced-query-loop"),value:"after"},{label:(0,a.__)("Between specific dates","advanced-query-loop"),value:"between"}],onChange:r=>{t({query:{...e.query,date_query:""!==r?{...e.query.date_query,relation:r}:""}})},__nextHasNoMarginBottom:!0}),""!==l&&!l.includes("current")&&r.includes("date_query_relationship")&&(0,n.createElement)(n.Fragment,null,"between"===l&&(0,n.createElement)("h4",null,(0,a.__)("Start date","advanced-query-loop")),(0,n.createElement)(d.DatePicker,{currentDate:o,onChange:r=>{t({query:{...e.query,date_query:{...e.query.date_query,date_primary:r}}})}}),"between"===l&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)("h4",null,(0,a.__)("End date","advanced-query-loop")),(0,n.createElement)(d.DatePicker,{currentDate:u,onChange:r=>{t({query:{...e.query,date_query:{...e.query.date_query,date_secondary:r}}})}})),(0,n.createElement)("br",null),(0,n.createElement)(d.CheckboxControl,{label:(0,a.__)("Include selected date(s)","advanced-query-loop"),help:(0,a.__)("Should the selected date(s) be included in your query?","advanced-query-loop"),checked:s,onChange:r=>{t({query:{...e.query,date_query:{...e.query.date_query,inclusive:r}}})}})))},F=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{multiple_posts:l=[],postType:o}={}}=e,s=(0,u.useSelect)((e=>e(D.store).getPostTypes({per_page:50})?.filter((({viewable:e})=>e))?.map((({slug:e})=>e))),[]);return r.includes("additional_post_types")?s?(0,n.createElement)(d.BaseControl,{help:(0,a.__)("These post types will be queried in addition to the main post type.","advanced-query-loop"),__nextHasNoMarginBottom:!0},(0,n.createElement)(d.FormTokenField,{label:(0,a.__)("Additional Post Types","advanced-query-loop"),value:[...l.filter((e=>e!==o))],suggestions:[...s?.filter((e=>e!==o))],onChange:r=>{t({query:{...e.query,multiple_posts:r||[]}})},__experimentalExpandOnFocus:!0,__experimentalShowHowTo:!1,__nextHasNoMarginBottom:!0})):(0,n.createElement)("div",null,(0,a.__)("Loading…","advanced-query-loop")):null},O=[{label:(0,a.__)("Name","advanced-query-loop"),value:"name"},{label:(0,a.__)("Author","advanced-query-loop"),value:"author"},{label:(0,a.__)("Comment Count","advanced-query-loop"),value:"comment_count"},{label:(0,a.__)("Date","advanced-query-loop"),value:"date"},{label:(0,a.__)("Included Posts","advanced-query-loop"),value:"post__in"},{label:(0,a.__)("Last Modified Date","advanced-query-loop"),value:"modified"},{label:(0,a.__)("Menu Order","advanced-query-loop"),value:"menu_order"},{label:(0,a.__)("Meta Value","advanced-query-loop"),value:"meta_value"},{label:(0,a.__)("Meta Value Num","advanced-query-loop"),value:"meta_value_num"},{label:(0,a.__)("Post ID","advanced-query-loop"),value:"id"},{label:(0,a.__)("Random","advanced-query-loop"),value:"rand"},{label:(0,a.__)("Title","advanced-query-loop"),value:"title"}],H=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{order:l,orderBy:o}={}}=e;return r.includes("post_order")?(0,n.createElement)(n.Fragment,null,(0,n.createElement)(d.SelectControl,{label:(0,a.__)("Post Order By","advanced-query-loop"),value:o,help:"meta_value"===o||"meta_value_num"===o?(0,a.__)("Meta Value and Meta Value Num require that Meta Key is set in the Meta Query section.","advanced-query-loop"):"",options:O.sort(((e,t)=>e.label.localeCompare(t.label))),onChange:r=>{t({query:{...e.query,orderBy:r,..."rand"===r&&{enable_caching:!1}}})},__nextHasNoMarginBottom:!0}),(0,n.createElement)(d.ToggleControl,{label:(0,a.__)("Ascending Order","advanced-query-loop"),checked:"asc"===l,onChange:()=>{t({query:{...e.query,order:"asc"===l?"desc":"asc"}})},__nextHasNoMarginBottom:!0})):null},R=window.wp.htmlEntities,L=({attributes:e,setAttributes:t,allowedControls:r})=>r.includes("exclude_current_post")||r.includes("exclude_posts")?(0,n.createElement)(n.Fragment,null,(0,n.createElement)("h2",null," ",(0,a.__)("Exclude Posts","advanced-query-loop")),(0,n.createElement)(Q,{attributes:e,setAttributes:t,allowedControls:r}),(0,n.createElement)(z,{attributes:e,setAttributes:t,allowedControls:r})):null,Q=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{exclude_current:l}={}}=e,{record:o}=(0,D.useEntityRecord)("root","site"),{currentPost:s,isAdmin:i}=(0,u.useSelect)((e=>({currentPost:e("core/editor").getCurrentPost(),isAdmin:e(D.store).canUser("update",{kind:"root",name:"site"})})),[]);if(!r.includes("exclude_current_post"))return null;if(!s)return(0,n.createElement)("div",null,(0,a.__)("Loading…","advanced-query-loop"));const c=()=>{if(!i||!s)return!1;if("wp_template"!==s.type)return!1;const{show_on_front:e}=o;return["archive","search",..."posts"===e?["home","front-page"]:[]].includes(s.slug)};return(0,n.createElement)(d.ToggleControl,{__nextHasNoMarginBottom:!0,label:(0,a.__)("Exclude Current Post","advanced-query-loop"),checked:!!l,disabled:c(),onChange:r=>{t({query:{...e.query,exclude_current:r}})},help:c()?(0,a.__)("This option is disabled for this template as there is no dedicated post to exclude.","advanced-query-loop"):(0,a.__)("Remove the associated post for this template/content from the query results.","advanced-query-loop")})},z=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{exclude_posts:l=[],multiple_posts:o=[],postType:s}={}}=e,i=(0,u.useSelect)((e=>{const{getEntityRecords:t}=e("core");return[...o,s].reduce(((e,r)=>[...e,...t("postType",r,{per_page:-1})||[]]),[])}),[s,o]);return r.includes("exclude_posts")?i?(0,n.createElement)(d.BaseControl,{help:(0,a.__)("Start typing to search for a post title to exclude, or manually enter one.","advanced-query-loop")},(0,n.createElement)(d.FormTokenField,{label:(0,a.__)("Posts to Exclude","advanced-query-loop"),value:l.flatMap((e=>(e=>{const t=i.find((t=>t.id===e));return t?[(0,R.decodeEntities)(t.title.rendered.trim())]:[]})(e))),suggestions:i.map((e=>(0,R.decodeEntities)(e.title.rendered.trim()))),onChange:r=>{t({query:{...e.query,exclude_posts:r.flatMap((e=>(e=>{const t=i.find((t=>(0,R.decodeEntities)(t.title.rendered.trim())===e));return t?[t.id]:[]})(e)))||[]}})},__experimentalExpandOnFocus:!0,__experimentalShowHowTo:!1})):(0,n.createElement)("div",null,(0,a.__)("Loading…","advanced-query-loop")):null},V=window.wp.compose,U=(e,t,r,a)=>e.map((e=>e.id===t?{...e,[r]:a}:e)),K=["EXISTS","NOT EXISTS","AND"],j=["IN","NOT IN",...K],X={marginTop:"1.5em",marginBottom:"0.75em"},G=({id:e,taxonomy:t,terms:r,operator:l,includeChildren:o,availableTaxonomies:u,attributes:s,setAttributes:i})=>{const[c,y]=((e,t)=>{const[r,a]=(0,k.useState)(e);return[r,(0,V.useDebounce)(a,t)]})("",500),[_,m]=(0,k.useState)(!1),[p,q]=(0,k.useState)(!1),{records:h}=(0,D.useEntityRecords)("taxonomy",t,{per_page:10,search:c,_fields:"id,name",context:"view"}),g=(0,k.useMemo)((()=>(null!=h?h:[]).map((e=>e.name))),[h]);return(0,k.useEffect)((()=>{K.includes(l)||!1===o?(m(!0),q(!0)):q(!1)}),[l,o]),(0,n.createElement)(n.Fragment,null,(0,n.createElement)(d.SelectControl,{label:(0,a.__)("Taxonomy","advanced-query-loop"),value:t,options:[{label:"Choose taxonomy",value:""},...u.map((({name:e,slug:t})=>({label:e,value:t})))],onChange:t=>{i({query:{...s.query,tax_query:{...s.query.tax_query,queries:U(s.query.tax_query.queries,e,"taxonomy",t)}}})},__next40pxDefaultSize:!0}),t.length>1&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(d.FormTokenField,{label:(0,a.__)("Terms","advanced-query-loop"),suggestions:g,value:r,onInputChange:e=>{y(e)},onChange:t=>{i({query:{...s.query,tax_query:{...s.query.tax_query,queries:U(s.query.tax_query.queries,e,"terms",t)}}})},__next40pxDefaultSize:!0}),_?(0,n.createElement)(n.Fragment,null,(0,n.createElement)(d.SelectControl,{label:(0,a.__)("Operator","advanced-query-loop"),value:l,options:[...j.map((e=>({label:e,value:e})))],onChange:t=>{i({query:{...s.query,tax_query:{...s.query.tax_query,queries:U(s.query.tax_query.queries,e,"operator",t)}}})},__next40pxDefaultSize:!0}),(0,n.createElement)("div",{style:X},(0,n.createElement)(d.ToggleControl,{label:(0,a.__)("Include children","advanced-query-loop"),className:"advanced-query-loop__include-children",checked:o,onChange:t=>{i({query:{...s.query,tax_query:{...s.query.tax_query,queries:U(s.query.tax_query.queries,e,"include_children",t)}}})},__next40pxDefaultSize:!0}))):(0,n.createElement)(d.ToggleControl,{label:(0,a.__)("Exclude these terms from the query","advanced-query-loop"),checked:"NOT IN"===l,onChange:()=>{const t=s.query.tax_query.queries.find((t=>t.id===e));i({query:{...s.query,tax_query:{...s.query.tax_query,queries:U(s.query.tax_query.queries,e,"operator","IN"===t.operator?"NOT IN":"IN")}}})},__next40pxDefaultSize:!0})),(0,n.createElement)("hr",null),(0,n.createElement)(d.__experimentalHStack,{alignment:t?"edge":"right",style:X},t&&(0,n.createElement)(d.ToggleControl,{checked:_,label:(0,a.__)("Advanced mode","advanced-query-loop"),onChange:()=>m(!_),disabled:p,__nextHasNoMarginBottom:!0}),(0,n.createElement)(d.Button,{key:e,variant:"secondary",size:"small",isDestructive:!0,onClick:()=>i({query:{...s.query,tax_query:{...s.query.tax_query,queries:s.query.tax_query.queries.filter((({id:t})=>t!==e))}}})},(0,a.__)("Remove query","advanced-query-loop"))),(0,n.createElement)("hr",null),(0,n.createElement)("br",null))},W=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{postType:l,multiple_posts:o=[],tax_query:{relation:s="",queries:i=[]}={}}={}}=e,c=(0,u.useSelect)((e=>e(D.store).getTaxonomies({per_page:50})?.filter((({types:e})=>e.some((e=>[l,...o].includes(e)))))));return r.includes("taxonomy_query_builder")?(0,n.createElement)(n.Fragment,null,(0,n.createElement)(d.Dropdown,{popoverProps:{placement:"left-start",offset:36},renderToggle:({isOpen:e,onToggle:t})=>(0,n.createElement)(d.Button,{variant:e?"primary":"secondary",onClick:t,"aria-haspopup":"true","aria-expanded":e,disabled:0===c.length},e?(0,a.__)("Close Taxonomy query builder","advanced-query-loop"):(0,a.__)("Open Taxonomy query builder","advanced-query-loop")),renderContent:()=>(0,n.createElement)(d.__experimentalDropdownContentWrapper,{paddingSize:"none",style:{width:"30rem"}},(0,n.createElement)(d.Panel,{header:(0,a.__)("Taxonomy Query Builder","advanced-query-loop")},(0,n.createElement)(d.PanelBody,null,i.length>1&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(d.ToggleControl,{label:(0,a.__)("Combine filters","advanced-query-loop"),help:(0,a.__)("By default, filters are combined with the OR operator. Enable this option to combine filters with the AND operator.","advanced-query-loop"),checked:"AND"===s,onChange:()=>{t({query:{...e.query,tax_query:{...e.query.tax_query,relation:"OR"===e.query.tax_query.relation?"AND":"OR"}}})},__nextHasNoMarginBottom:!1}),(0,n.createElement)("hr",null)),i.map((({id:r,taxonomy:a,terms:l,operator:o,include_children:u})=>(0,n.createElement)(G,{key:r,taxonomy:a,operator:o,terms:l,id:r,relation:s,includeChildren:u,availableTaxonomies:c,setAttributes:t,attributes:e}))),(0,n.createElement)(d.__experimentalHStack,null,(0,n.createElement)(d.Button,{variant:"primary",onClick:()=>{t({query:{...e.query,tax_query:{relation:s||"OR",queries:[...i,{id:S(),taxonomy:"",terms:[],include_children:!0,operator:"IN"}]}}})}},(0,a.__)("Add new query","advanced-query-loop")),i.length>0&&(0,n.createElement)(d.Button,{variant:"primary",isDestructive:!0,onClick:()=>{t({query:{...e.query,tax_query:[]}})}},(0,a.__)("Reset queries","advanced-query-loop"))))))})):null},J=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{include_posts:l=[],postType:o,multiple_posts:s=[],exclude_current:i=0}={}}=e,[c,y]=(0,k.useState)(""),[_,m]=(0,k.useState)(s),p=(0,u.useSelect)((e=>{const{getEntityRecords:t}=e("core");return[...s,o].reduce(((e,r)=>[...e,...t("postType",r,{per_page:10,search:c,exclude:i?[i]:[]})||[]]),[])}),[o,s,i,c]);return(0,k.useEffect)((()=>{JSON.stringify(s)!==JSON.stringify(_)&&(t({query:{...e.query,include_posts:[]}}),m(s))}),[s]),r.includes("include_posts")?p?p.length>0&&!p[0].title?null:(0,n.createElement)(n.Fragment,null,(0,n.createElement)("h2",null," ",(0,a.__)("Include Posts","advanced-query-loop")),(0,n.createElement)(d.BaseControl,{help:(0,a.__)("Start typing to search for a post title or manually enter one.","advanced-query-loop"),__nextHasNoMarginBottom:!0},(0,n.createElement)(d.FormTokenField,{label:(0,a.__)("Posts","advanced-query-loop"),value:l.map((e=>(0,R.decodeEntities)(e.title))),suggestions:p.map((e=>(0,R.decodeEntities)(e?.title?.rendered||""))),onInputChange:e=>y(e),onChange:r=>{t({query:{...e.query,include_posts:r.map((e=>(e=>{const t=l.find((t=>(0,R.decodeEntities)(t.title)===e))||p.find((t=>(0,R.decodeEntities)(t.title.rendered.trim())===e));return t.title.rendered?{id:t.id,title:t.title.rendered}:t})(e)))||[]}}),y("")},__experimentalExpandOnFocus:!0,__experimentalShowHowTo:!1,__nextHasNoMarginBottom:!0}))):(0,n.createElement)("div",null,(0,a.__)("Loading…","advanced-query-loop")):null},Y=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{disable_pagination:l}={}}=e;return r.includes("pagination")?(0,n.createElement)(d.ToggleControl,{label:(0,a.__)("Disable pagination","advanced-query-loop"),help:(0,a.__)("Disabling pagination will not show any pagination controls on the front end. It can also provide a performance improvement for complicated queries.","advanced-query-loop"),checked:!!l,onChange:()=>{t({query:{...e.query,disable_pagination:!l}})},__nextHasNoMarginBottom:!0}):null},$=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{post_parent:l}={}}=e,{isHierarchial:o,postTypeName:i,postID:c}=(0,u.useSelect)((e=>{const t=e(s.store).getCurrentPost(),r=e(s.store).getCurrentPostType(),a=e(D.store).getPostType(r);return{isHierarchial:a?.hierarchical,postTypeName:r,postID:t?.id}}),[]);return r.includes("child_items_only")?(0,n.createElement)(d.ToggleControl,{__nextHasNoMarginBottom:!0,label:(0,a.__)("Show child items only","advanced-query-loop"),help:(0,a.__)("Only show child items of this item. This option is only available for hierarchical post types such as pages.","advanced-query-loop"),disabled:!o&&"wp_template"!==i,checked:!!l,onChange:r=>t({query:{...e.query,post_parent:r?c:0}})}):null},Z=({attributes:e,setAttributes:t,allowedControls:r})=>{const{query:{enable_caching:l,orderBy:o}={}}=e;return r.includes("enable_caching")?(0,n.createElement)(d.__experimentalToolsPanel,{label:(0,a.__)("AQL: Performance Controls","advanced-query-loop"),resetAll:()=>t({query:{...e.query,enable_caching:!1}})},(0,n.createElement)(d.__experimentalToolsPanelItem,{hasValue:()=>!!l,label:(0,a.__)("Caching","advanced-query-loop"),onDeselect:()=>t({query:{...e.query,enable_caching:!1}})},(0,n.createElement)(d.ToggleControl,{label:(0,a.__)("Enable Caching for this query","advanced-query-loop"),help:(0,a.__)("Enabling caching will store the results for subsequent page loads and will work to improve your site performance. This may not be needed for simple queries.","advanced-query-loop"),disabled:"rand"===o,checked:!!l,onChange:()=>{t({query:{...e.query,enable_caching:!l}})},__nextHasNoMarginBottom:!0}))):null},ee=e=>{const{attributes:{namespace:t}}=e;return t&&t===ae},te=["additional_post_types","taxonomy_query_builder","post_meta_query","post_order","exclude_current_post","include_posts","child_items_only","date_query_dynamic_range","date_query_relationship","pagination","exclude_posts","enable_caching"];(0,l.addFilter)("editor.BlockEdit","aql/add-add-controls/core/query",(e=>t=>{const{currentPostId:r,currentPostType:l}=(0,u.useSelect)((e=>{if(!ee(t))return{currentPostId:void 0,currentPostType:void 0};const r=e(s.store);return{currentPostId:r.getCurrentPostId(),currentPostType:r.getCurrentPostType()}}),[t?.attributes?.namespace]);if(ee(t)){var i,c;const{allowedControls:u}=null!==(i=window?.aql)&&void 0!==i?i:{},{attributes:s}=t,y=null!==(c=u?.split(","))&&void 0!==c?c:te,m={...t,allowedControls:y,context:{...t.context,currentPostId:r,currentPostType:l}};return s.query.inherit?(0,n.createElement)(n.Fragment,null,(0,n.createElement)(e,{...t}),(0,n.createElement)(o.InspectorControls,null,(0,n.createElement)(d.PanelBody,{title:(0,a.__)("Advanced Query Settings","advanced-query-loop")},(0,n.createElement)(H,{...m}),(0,n.createElement)(h.Slot,{fillProps:{...m}})))):(0,n.createElement)(n.Fragment,null,(0,n.createElement)(e,{...t}),(0,n.createElement)(o.InspectorControls,null,(0,n.createElement)(d.PanelBody,{title:(0,a.__)("Advanced Query Settings","advanced-query-loop")},(0,n.createElement)(b.Slot,{fillProps:{...m}}),(0,n.createElement)(F,{...m}),(0,n.createElement)(d.BaseControl,{label:(0,a.__)("Query Builders","advanced-query-loop"),id:"query-builders"},(0,n.createElement)(d.__experimentalVStack,{alignment:"center"},(0,n.createElement)(W,{...m}),(0,n.createElement)(I,{...m}))),(0,n.createElement)(H,{...m}),(0,n.createElement)(L,{...m}),(0,n.createElement)(J,{...m}),(0,n.createElement)($,{...m}),(0,n.createElement)(M,{...m}),(0,n.createElement)(Y,{...m}),(0,n.createElement)(_.Slot,{fillProps:{...m}})),(0,n.createElement)(Z,{...m})))}return(0,n.createElement)(e,{...t})})),(0,l.addFilter)("blocks.registerBlockType","aql/add-transforms/query-block",(function(e,t){return"core/query"!==t?e:{...e,keywords:[...e.keywords,"AQL","aql"],transforms:{to:e?.transforms?.to||[],from:[...e?.transforms?.from||[],{type:"enter",regExp:/^(AQL|aql)$/,transform:()=>(0,r.createBlock)("core/query",{namespace:"advanced-query-loop"},[])}]}}}));const re=window.wp.primitives,ae="advanced-query-loop";(0,r.registerBlockVariation)("core/query",{name:ae,title:(0,a.__)("Advanced Query Loop","advanced-query-loop"),description:(0,a.__)("Create advanced queries","advanced-query-loop"),icon:function(){return(0,n.createElement)(re.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"none",viewBox:"0 0 24 24"},(0,n.createElement)(re.Path,{fill:"#2D2B55",d:"M0 0h24v24H0V0z"}),(0,n.createElement)(re.Path,{fill:"#fff",d:"M17.936 8.438h1.217v6.125h2.867v1.093h-4.084V8.437zM10.364 12.047c0 .515.11.97.33 1.361.22.392.519.701.897.928.385.22.815.33 1.289.33.481 0 .907-.106 1.279-.32.371-.22.663-.522.876-.907.213-.385.32-.825.32-1.32 0-.495-.107-.942-.32-1.34a2.455 2.455 0 00-.886-.95c-.372-.233-.812-.35-1.32-.35-.475 0-.898.11-1.269.33-.371.22-.663.526-.877.918-.213.385-.32.825-.32 1.32zm-1.29 0c0-.543.094-1.042.28-1.495.192-.454.456-.846.793-1.176a3.685 3.685 0 011.197-.784c.46-.185.955-.278 1.485-.278.543 0 1.041.093 1.495.278a3.57 3.57 0 011.186.784c.337.33.598.722.784 1.176.185.453.278.952.278 1.495 0 .536-.093 1.034-.278 1.495-.186.46-.447.86-.784 1.196-.33.337-.722.602-1.176.795a3.941 3.941 0 01-1.505.278 3.964 3.964 0 01-1.496-.278 3.676 3.676 0 01-1.196-.795 3.545 3.545 0 01-.784-1.196 3.964 3.964 0 01-.278-1.495zm3.425.515H13.9l3.248 3.146h-1.433l-3.217-3.146z"}),(0,n.createElement)(re.Path,{fill:"#E76F51",d:"M3.546 13.8l.227-1.031h3.351l.237 1.031H3.546zm1.887-3.32l-1.134 2.65-.021.268-1 2.258H1.906l3.527-7.62 3.527 7.62H7.588l-.98-2.196-.03-.3-1.145-2.68z"}))},isActive:["namespace"],attributes:{namespace:ae},scope:["inserter","transform"]}),aql=t})(); -
advanced-query-loop/trunk/includes/Query_Params_Generator.php
r3339814 r3469652 22 22 use Traits\Tax_Query; 23 23 use Traits\Post_Parent; 24 use Traits\Enable_Caching; 25 use Traits\OrderBy; 24 26 25 27 /** … … 30 32 'taxonomy_query_builder' => 'tax_query', 31 33 'post_meta_query' => 'meta_query', 32 'post_order' => ' post_order',34 'post_order' => 'orderBy', 33 35 'exclude_current_post' => 'exclude_current', 34 36 'include_posts' => 'include_posts', … … 38 40 'pagination' => 'disable_pagination', 39 41 'exclude_posts' => 'exclude_posts', 42 'enable_caching' => 'enable_caching', 40 43 ); 41 44 … … 60 63 * @var array 61 64 */ 62 private array $custom_args = array( );65 private array $custom_args = array( 'is_aql' => true ); 63 66 64 67 /** -
advanced-query-loop/trunk/includes/Traits/Exclude_Current.php
r3313905 r3469652 21 21 * Helper to generate the array 22 22 * 23 * @param mixed $to_excludeThe value to be excluded.23 * @param int $exclude_current_post The value to be excluded. 24 24 * 25 25 * @return array The ids to exclude 26 26 */ 27 public function get_exclude_ids( $ to_exclude) {27 public function get_exclude_ids( $exclude_current_post ) { 28 28 // If there are already posts to be excluded, we need to add to them. 29 $exclude_ids = $this->custom_args['post__not_in'] ?? array(); 29 $exclude_ids = $this->custom_args['post__not_in'] ?? array(); 30 $post_to_exclude = 0; 31 if ( true !== $exclude_current_post && is_numeric( $exclude_current_post ) && $exclude_current_post >= 1 ) { 32 $post_to_exclude = intval( $exclude_current_post ); 33 } else { 34 // Try to get the queried object ID (frontend context) 35 if ( function_exists( 'get_queried_object_id' ) ) { 36 $post_to_exclude = get_queried_object_id(); 37 } 30 38 31 if ( $this->is_post_id( $to_exclude ) ) { 32 array_push( $exclude_ids, intval( $to_exclude ) ); 33 } else { 34 // This is usually when this was set on a template. 35 global $post; 36 if ( $post ) { 37 array_push( $exclude_ids, $post->ID ); 39 // Fallback to global $post (editor, unit tests, etc.) 40 if ( ! $post_to_exclude ) { 41 global $post; 42 if ( $post && isset( $post->ID ) ) { 43 $post_to_exclude = $post->ID; 44 } 38 45 } 39 46 } 47 48 if ( $post_to_exclude > 0 ) { 49 array_push( $exclude_ids, intval( $post_to_exclude ) ); 50 } 51 40 52 return $exclude_ids; 41 53 } -
advanced-query-loop/trunk/includes/Traits/Exclude_Taxonomies.php
r3166016 r3469652 16 16 public function process_exclude_taxonomies(): void { 17 17 $taxonomies_to_exclude = $this->custom_params['exclude_taxonomies']; 18 if ( count( $taxonomies_to_exclude ) ) {18 if ( count( $taxonomies_to_exclude ) ) { 19 19 $tax_query = []; 20 20 foreach ( $taxonomies_to_exclude as $slug ) { 21 $tax_query[] = [21 $tax_query[] = [ 22 22 'taxonomy' => $slug, 23 'operator' => 'NOT EXISTS' 23 'operator' => 'NOT EXISTS', 24 24 ]; 25 25 } … … 28 28 } 29 29 } 30 -
advanced-query-loop/trunk/includes/enqueues.php
r3325173 r3469652 10 10 use function AdvancedQueryLoop\Utils\{ is_gutenberg_plugin_version_or_higher, is_core_version_or_higher }; 11 11 12 // Prevent direct access. 13 defined( 'ABSPATH' ) || exit; 12 14 13 15 // Bail on unit tests. … … 39 41 wp_add_inline_script( 40 42 'advanced-query-loop', 41 ' aql.allowedControls = "' . implode( ',', Query_Params_Generator::get_allowed_controls() ) . '";'43 'window.aql = window.aql || {}; window.aql.allowedControls = "' . implode( ',', Query_Params_Generator::get_allowed_controls() ) . '";' 42 44 ); 43 45 } -
advanced-query-loop/trunk/includes/query-loop.php
r3339814 r3469652 7 7 8 8 namespace AdvancedQueryLoop; 9 10 // Prevent direct access. 11 defined( 'ABSPATH' ) || exit; 9 12 10 13 // Bail on unit tests. … … 99 102 'init', 100 103 function () { 101 $registered_post_types = \get_post_types( array( 'show_in_rest' => true, 'public' => true ) ); 104 $registered_post_types = \get_post_types( 105 array( 106 'show_in_rest' => true, 107 'public' => true, 108 ) 109 ); 102 110 foreach ( $registered_post_types as $registered_post_type ) { 103 111 \add_filter( 'rest_' . $registered_post_type . '_query', __NAMESPACE__ . '\add_custom_query_params', 10, 2 ); … … 117 125 * 118 126 * @param array $query_params The query params. 119 * @param array $post_type The post type.120 127 * 121 128 * @return array … … 160 167 return $merged; 161 168 } 169 170 171 172 /** 173 * Retrieve any cached AQL instances and bypass making a query. 174 */ 175 176 add_filter( 177 'posts_pre_query', 178 function ( $null_return, $query ) { 179 180 if ( ! $query->is_admin && 181 isset( $query->query['is_aql'] ) && 182 isset( $query->query['enable_caching'] ) && 183 true === $query->query['enable_caching'] && 184 ! isset( $_GET['context'] ) && // phpcs:ignore 185 ! isset( $_GET['canvas'] ) // phpcs:ignore 186 ) { 187 $cached_query = get_transient( $query->query_vars_hash ); 188 if ( $cached_query ) { 189 $query->found_posts = $cached_query->found_posts; 190 $query->max_num_pages = $cached_query->max_num_pages; 191 return $cached_query->posts; 192 } 193 } 194 195 return $null_return; 196 }, 197 10, 198 2 199 ); 200 201 /** 202 * Create a cache for the Query generated by the AQL instance. 203 */ 204 add_filter( 205 'the_posts', 206 function ( $posts, $query ) { 207 if ( ! $query->is_admin && 208 isset( $query->query['is_aql'] ) && 209 isset( $query->query['enable_caching'] ) && 210 true === $query->query['enable_caching'] && 211 ! isset( $_GET['context'] ) && // phpcs:ignore 212 ! isset( $_GET['canvas'] ) // phpcs:ignore 213 ) { 214 if ( ! get_transient( $query->query_vars_hash ) ) { 215 set_transient( $query->query_vars_hash, $query, HOUR_IN_SECONDS ); 216 } 217 } 218 return $posts; 219 }, 220 10, 221 2 222 ); -
advanced-query-loop/trunk/includes/taxonomy.php
r3203196 r3469652 7 7 8 8 namespace AdvancedQueryLoop\Taxonomy; 9 10 // Prevent direct access. 11 defined( 'ABSPATH' ) || exit; 9 12 10 13 function convert_names_to_ids( $names, $tax ) { -
advanced-query-loop/trunk/includes/utilities.php
r3166016 r3469652 7 7 8 8 namespace AdvancedQueryLoop\Utils; 9 10 // Prevent direct access. 11 defined( 'ABSPATH' ) || exit; 9 12 10 13 /** … … 34 37 return version_compare( $core, $version, '>=' ); 35 38 } 36 -
advanced-query-loop/trunk/index.php
r3339814 r3469652 4 4 * Description: Query loop block variations to create custom queries. 5 5 * Plugin URI: https://github.com/ryanwelcher/advanced-query-loop/ 6 * Version: 4. 3.06 * Version: 4.4.0 7 7 * Requires at least: 6.2 8 8 * Requires PHP: 7.4 -
advanced-query-loop/trunk/readme.md
r3339814 r3469652 2 2 3 3  4  5  4 6 5 7 ## Description 6 8 7 This plugin introduces a Query Loop block variation that will empower users to be able to do much more complicated queries with the Query Loop block, such number of posts to display and post meta9 This plugin introduces a Query Loop block variation that will empower users to be able to do much more complicated queries with the Query Loop block, such as taxonomy queries, post meta queries, date queries, post ordering, and more 8 10 9 11 ### Support/Issues … … 29 31 Remove the current post from the query. 30 32 31 #### Exclude posts by category32 33 Choose to exclude posts from a list of categories.34 35 33 #### Exclude posts list 36 34 … … 50 48 51 49 - Author 50 - Comment Count 52 51 - Date 52 - Included Posts 53 53 - Last Modified Date 54 - Title54 - Menu Order (props to @jvanja) 55 55 - Meta Value 56 56 - Meta Value Num 57 - Random58 - Menu Order (props to @jvanja)59 57 - Name (props @philbee) 60 58 - Post ID (props to @markhowellsmead) 61 62 **Please note that this is a slight duplication of the existing sorting controls. They both work interchangeably but it just looks a bit odd in the UI** 59 - Random 60 - Title 63 61 64 62 #### Disable Pagination 65 63 66 Improve the performance of the query by disabling pagination. This is done automatically when there is now Pagination block in teh Post Template. 64 Improve the performance of the query by disabling pagination. 65 66 #### Enable Caching 67 68 Store query results in a transient for one hour to reduce database load on subsequent page loads. The caching toggle is unavailable when the order is set to Random, and switching to Random order will clear any existing caching setting. Found in the **AQL: Performance Controls** panel. 67 69 68 70 ## Filtering the available controls … … 96 98 - `'post_order'` 97 99 - `'exclude_current_post'` 100 - `'exclude_posts'` 98 101 - `'include_posts'` 99 102 - `'child_items_only'` … … 101 104 - `'date_query_relationship'` 102 105 - `'pagination'` 106 - `'enable_caching'` 103 107 104 108 ## Extending AQL -
advanced-query-loop/trunk/readme.txt
r3460887 r3469652 4 4 Requires at least: 6.2 5 5 Tested up to: 6.9 6 Stable tag: 4. 3.06 Stable tag: 4.4.0 7 7 Requires PHP: 7.4 8 8 License: GPL v2 or later … … 53 53 * **Exclude current post**: Automatically hide the post being viewed 54 54 * **Exclude a list of posts**: Curate a list of posts to exclude from the query 55 * **Category filtering**: Exclude posts from specific categories56 55 57 56 ==== 🔍 Advanced Post Meta Queries ==== … … 84 83 * **Post ID**: Sort by post ID 85 84 * **Comment Count**: Sort by engagement 85 * **Included Posts**: Sort by post inclusion order 86 86 87 87 ==== ⚡ Performance Optimization ==== 88 88 89 * **Smart pagination**: Automatically disable pagination when not needed 89 * **Disable pagination**: Reduce query overhead by turning off pagination when it is not needed 90 * **Enable caching**: Store query results in a transient for one hour to reduce database load on subsequent page loads. The caching toggle is unavailable when the order is set to Random, and switching to Random order will clear any existing caching setting 90 91 * **Efficient queries**: Optimized database queries for better performance 91 * **Caching friendly**: Works seamlessly with popular caching plugins92 92 93 93 === Customization & Extensibility === … … 117 117 * `'post_order'` - Sorting options 118 118 * `'exclude_current_post'` - Current post exclusion 119 * `'exclude_posts'` - Exclude a curated list of posts 119 120 * `'include_posts'` - Manual post inclusion 120 121 * `'child_items_only'` - Child post filtering … … 122 123 * `'date_query_relationship'` - Date query logic 123 124 * `'pagination'` - Pagination controls 125 * `'enable_caching'` - Query result caching 124 126 125 127 ==== Developer-Friendly ==== … … 156 158 == Changelog == 157 159 160 = 4.4.0 = 161 * Add transient caching for query results and related UI control. 162 * Add current post ID and post type to context for SlotFill extensions. 163 * Add E2E tests using Playground and expand unit test coverage. 164 * Add static linting for PHP and JavaScript. 165 * Fix and improve caching controls. 166 * Fix TypeError crash when window.aql.allowedControls is undefined. 167 * Fix Exclude Current Post for synced patterns and templates. 168 * Fix Post ID ordering not working on the frontend. 169 * Fix post meta fetching to include all selected post types. 170 * Small fixes to pass Plugin Check plugin tests. 171 158 172 = 4.3.0 = 159 173 * Exclude posts (props @darylldoyle, @Pulsar-X). -
advanced-query-loop/trunk/vendor/autoload.php
r3299559 r3469652 15 15 } 16 16 } 17 trigger_error( 18 $err, 19 E_USER_ERROR 20 ); 17 throw new RuntimeException($err); 21 18 } 22 19 -
advanced-query-loop/trunk/vendor/composer/ClassLoader.php
r3097589 r3469652 46 46 private static $includeFile; 47 47 48 /** @var ?string*/48 /** @var string|null */ 49 49 private $vendorDir; 50 50 51 51 // PSR-4 52 52 /** 53 * @var array[] 54 * @psalm-var array<string, array<string, int>> 53 * @var array<string, array<string, int>> 55 54 */ 56 55 private $prefixLengthsPsr4 = array(); 57 56 /** 58 * @var array[] 59 * @psalm-var array<string, array<int, string>> 57 * @var array<string, list<string>> 60 58 */ 61 59 private $prefixDirsPsr4 = array(); 62 60 /** 63 * @var array[] 64 * @psalm-var array<string, string> 61 * @var list<string> 65 62 */ 66 63 private $fallbackDirsPsr4 = array(); … … 68 65 // PSR-0 69 66 /** 70 * @var array[] 71 * @psalm-var array<string, array<string, string[]>> 67 * List of PSR-0 prefixes 68 * 69 * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) 70 * 71 * @var array<string, array<string, list<string>>> 72 72 */ 73 73 private $prefixesPsr0 = array(); 74 74 /** 75 * @var array[] 76 * @psalm-var array<string, string> 75 * @var list<string> 77 76 */ 78 77 private $fallbackDirsPsr0 = array(); … … 82 81 83 82 /** 84 * @var string[] 85 * @psalm-var array<string, string> 83 * @var array<string, string> 86 84 */ 87 85 private $classMap = array(); … … 91 89 92 90 /** 93 * @var bool[] 94 * @psalm-var array<string, bool> 91 * @var array<string, bool> 95 92 */ 96 93 private $missingClasses = array(); 97 94 98 /** @var ?string*/95 /** @var string|null */ 99 96 private $apcuPrefix; 100 97 101 98 /** 102 * @var self[]99 * @var array<string, self> 103 100 */ 104 101 private static $registeredLoaders = array(); 105 102 106 103 /** 107 * @param ?string$vendorDir104 * @param string|null $vendorDir 108 105 */ 109 106 public function __construct($vendorDir = null) … … 114 111 115 112 /** 116 * @return string[]113 * @return array<string, list<string>> 117 114 */ 118 115 public function getPrefixes() … … 126 123 127 124 /** 128 * @return array[] 129 * @psalm-return array<string, array<int, string>> 125 * @return array<string, list<string>> 130 126 */ 131 127 public function getPrefixesPsr4() … … 135 131 136 132 /** 137 * @return array[] 138 * @psalm-return array<string, string> 133 * @return list<string> 139 134 */ 140 135 public function getFallbackDirs() … … 144 139 145 140 /** 146 * @return array[] 147 * @psalm-return array<string, string> 141 * @return list<string> 148 142 */ 149 143 public function getFallbackDirsPsr4() … … 153 147 154 148 /** 155 * @return string[] Array of classname => path 156 * @psalm-return array<string, string> 149 * @return array<string, string> Array of classname => path 157 150 */ 158 151 public function getClassMap() … … 162 155 163 156 /** 164 * @param string[] $classMap Class to filename map 165 * @psalm-param array<string, string> $classMap 157 * @param array<string, string> $classMap Class to filename map 166 158 * 167 159 * @return void … … 180 172 * appending or prepending to the ones previously set for this prefix. 181 173 * 182 * @param string $prefix The prefix183 * @param string[]|string $paths The PSR-0 root directories184 * @param bool $prepend Whether to prepend the directories174 * @param string $prefix The prefix 175 * @param list<string>|string $paths The PSR-0 root directories 176 * @param bool $prepend Whether to prepend the directories 185 177 * 186 178 * @return void … … 188 180 public function add($prefix, $paths, $prepend = false) 189 181 { 182 $paths = (array) $paths; 190 183 if (!$prefix) { 191 184 if ($prepend) { 192 185 $this->fallbackDirsPsr0 = array_merge( 193 (array)$paths,186 $paths, 194 187 $this->fallbackDirsPsr0 195 188 ); … … 197 190 $this->fallbackDirsPsr0 = array_merge( 198 191 $this->fallbackDirsPsr0, 199 (array)$paths192 $paths 200 193 ); 201 194 } … … 206 199 $first = $prefix[0]; 207 200 if (!isset($this->prefixesPsr0[$first][$prefix])) { 208 $this->prefixesPsr0[$first][$prefix] = (array)$paths;201 $this->prefixesPsr0[$first][$prefix] = $paths; 209 202 210 203 return; … … 212 205 if ($prepend) { 213 206 $this->prefixesPsr0[$first][$prefix] = array_merge( 214 (array)$paths,207 $paths, 215 208 $this->prefixesPsr0[$first][$prefix] 216 209 ); … … 218 211 $this->prefixesPsr0[$first][$prefix] = array_merge( 219 212 $this->prefixesPsr0[$first][$prefix], 220 (array)$paths213 $paths 221 214 ); 222 215 } … … 227 220 * appending or prepending to the ones previously set for this namespace. 228 221 * 229 * @param string $prefix The prefix/namespace, with trailing '\\'230 * @param string[]|string $paths The PSR-4 base directories231 * @param bool $prepend Whether to prepend the directories222 * @param string $prefix The prefix/namespace, with trailing '\\' 223 * @param list<string>|string $paths The PSR-4 base directories 224 * @param bool $prepend Whether to prepend the directories 232 225 * 233 226 * @throws \InvalidArgumentException … … 237 230 public function addPsr4($prefix, $paths, $prepend = false) 238 231 { 232 $paths = (array) $paths; 239 233 if (!$prefix) { 240 234 // Register directories for the root namespace. 241 235 if ($prepend) { 242 236 $this->fallbackDirsPsr4 = array_merge( 243 (array)$paths,237 $paths, 244 238 $this->fallbackDirsPsr4 245 239 ); … … 247 241 $this->fallbackDirsPsr4 = array_merge( 248 242 $this->fallbackDirsPsr4, 249 (array)$paths243 $paths 250 244 ); 251 245 } … … 257 251 } 258 252 $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; 259 $this->prefixDirsPsr4[$prefix] = (array)$paths;253 $this->prefixDirsPsr4[$prefix] = $paths; 260 254 } elseif ($prepend) { 261 255 // Prepend directories for an already registered namespace. 262 256 $this->prefixDirsPsr4[$prefix] = array_merge( 263 (array)$paths,257 $paths, 264 258 $this->prefixDirsPsr4[$prefix] 265 259 ); … … 268 262 $this->prefixDirsPsr4[$prefix] = array_merge( 269 263 $this->prefixDirsPsr4[$prefix], 270 (array)$paths264 $paths 271 265 ); 272 266 } … … 277 271 * replacing any others previously set for this prefix. 278 272 * 279 * @param string $prefix The prefix280 * @param string[]|string $paths The PSR-0 base directories273 * @param string $prefix The prefix 274 * @param list<string>|string $paths The PSR-0 base directories 281 275 * 282 276 * @return void … … 295 289 * replacing any others previously set for this namespace. 296 290 * 297 * @param string $prefix The prefix/namespace, with trailing '\\'298 * @param string[]|string $paths The PSR-4 base directories291 * @param string $prefix The prefix/namespace, with trailing '\\' 292 * @param list<string>|string $paths The PSR-4 base directories 299 293 * 300 294 * @throws \InvalidArgumentException … … 430 424 { 431 425 if ($file = $this->findFile($class)) { 432 (self::$includeFile)($file); 426 $includeFile = self::$includeFile; 427 $includeFile($file); 433 428 434 429 return true; … … 481 476 482 477 /** 483 * Returns the currently registered loaders indexed by their corresponding vendor directories.484 * 485 * @return self[]478 * Returns the currently registered loaders keyed by their corresponding vendor directories. 479 * 480 * @return array<string, self> 486 481 */ 487 482 public static function getRegisteredLoaders() … … 561 556 } 562 557 563 private static function initializeIncludeClosure(): void 558 /** 559 * @return void 560 */ 561 private static function initializeIncludeClosure() 564 562 { 565 563 if (self::$includeFile !== null) { … … 575 573 * @return void 576 574 */ 577 self::$includeFile = static function($file) {575 self::$includeFile = \Closure::bind(static function($file) { 578 576 include $file; 579 } ;577 }, null, null); 580 578 } 581 579 } -
advanced-query-loop/trunk/vendor/composer/InstalledVersions.php
r3097589 r3469652 28 28 { 29 29 /** 30 * @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to 31 * @internal 32 */ 33 private static $selfDir = null; 34 35 /** 30 36 * @var mixed[]|null 31 37 * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null 32 38 */ 33 39 private static $installed; 40 41 /** 42 * @var bool 43 */ 44 private static $installedIsLocalDir; 34 45 35 46 /** … … 99 110 foreach (self::getInstalled() as $installed) { 100 111 if (isset($installed['versions'][$packageName])) { 101 return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);112 return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; 102 113 } 103 114 } … … 120 131 public static function satisfies(VersionParser $parser, $packageName, $constraint) 121 132 { 122 $constraint = $parser->parseConstraints( $constraint);133 $constraint = $parser->parseConstraints((string) $constraint); 123 134 $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); 124 135 … … 310 321 self::$installed = $data; 311 322 self::$installedByVendor = array(); 323 324 // when using reload, we disable the duplicate protection to ensure that self::$installed data is 325 // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, 326 // so we have to assume it does not, and that may result in duplicate data being returned when listing 327 // all installed packages for example 328 self::$installedIsLocalDir = false; 329 } 330 331 /** 332 * @return string 333 */ 334 private static function getSelfDir() 335 { 336 if (self::$selfDir === null) { 337 self::$selfDir = strtr(__DIR__, '\\', '/'); 338 } 339 340 return self::$selfDir; 312 341 } 313 342 … … 323 352 324 353 $installed = array(); 354 $copiedLocalDir = false; 325 355 326 356 if (self::$canGetVendors) { 357 $selfDir = self::getSelfDir(); 327 358 foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { 359 $vendorDir = strtr($vendorDir, '\\', '/'); 328 360 if (isset(self::$installedByVendor[$vendorDir])) { 329 361 $installed[] = self::$installedByVendor[$vendorDir]; 330 362 } elseif (is_file($vendorDir.'/composer/installed.php')) { 331 $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; 332 if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { 333 self::$installed = $installed[count($installed) - 1]; 363 /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ 364 $required = require $vendorDir.'/composer/installed.php'; 365 self::$installedByVendor[$vendorDir] = $required; 366 $installed[] = $required; 367 if (self::$installed === null && $vendorDir.'/composer' === $selfDir) { 368 self::$installed = $required; 369 self::$installedIsLocalDir = true; 334 370 } 371 } 372 if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) { 373 $copiedLocalDir = true; 335 374 } 336 375 } … … 341 380 // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 342 381 if (substr(__DIR__, -8, 1) !== 'C') { 343 self::$installed = require __DIR__ . '/installed.php'; 382 /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ 383 $required = require __DIR__ . '/installed.php'; 384 self::$installed = $required; 344 385 } else { 345 386 self::$installed = array(); 346 387 } 347 388 } 348 $installed[] = self::$installed; 389 390 if (self::$installed !== array() && !$copiedLocalDir) { 391 $installed[] = self::$installed; 392 } 349 393 350 394 return $installed; -
advanced-query-loop/trunk/vendor/composer/autoload_classmap.php
r3339814 r3469652 10 10 'AdvancedQueryLoop\\Traits\\Date_Query' => $baseDir . '/includes/Traits/Date_Query.php', 11 11 'AdvancedQueryLoop\\Traits\\Disable_Pagination' => $baseDir . '/includes/Traits/Disable_Pagination.php', 12 'AdvancedQueryLoop\\Traits\\Enable_Caching' => $baseDir . '/includes/Traits/Enable_Caching.php', 12 13 'AdvancedQueryLoop\\Traits\\Exclude_Current' => $baseDir . '/includes/Traits/Exclude_Current.php', 13 14 'AdvancedQueryLoop\\Traits\\Exclude_Posts' => $baseDir . '/includes/Traits/Exclude_Posts.php', … … 16 17 'AdvancedQueryLoop\\Traits\\Meta_Query' => $baseDir . '/includes/Traits/Meta_Query.php', 17 18 'AdvancedQueryLoop\\Traits\\Multiple_Posts' => $baseDir . '/includes/Traits/Multiple_Posts.php', 19 'AdvancedQueryLoop\\Traits\\OrderBy' => $baseDir . '/includes/Traits/OrderBy.php', 18 20 'AdvancedQueryLoop\\Traits\\Post_Parent' => $baseDir . '/includes/Traits/Post_Parent.php', 19 21 'AdvancedQueryLoop\\Traits\\Tax_Query' => $baseDir . '/includes/Traits/Tax_Query.php', -
advanced-query-loop/trunk/vendor/composer/autoload_real.php
r3299559 r3469652 35 35 36 36 $filesToLoad = \Composer\Autoload\ComposerStaticInit2c7947baa07b931fce151839e3d6ffbe::$files; 37 $requireFile = static function ($fileIdentifier, $file) {37 $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { 38 38 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { 39 39 $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; … … 41 41 require $file; 42 42 } 43 } ;43 }, null, null); 44 44 foreach ($filesToLoad as $fileIdentifier => $file) { 45 ($requireFile)($fileIdentifier, $file);45 $requireFile($fileIdentifier, $file); 46 46 } 47 47 -
advanced-query-loop/trunk/vendor/composer/autoload_static.php
r3339814 r3469652 14 14 15 15 public static $prefixLengthsPsr4 = array ( 16 'A' => 16 'A' => 17 17 array ( 18 18 'AdvancedQueryLoop\\' => 18, … … 21 21 22 22 public static $prefixDirsPsr4 = array ( 23 'AdvancedQueryLoop\\' => 23 'AdvancedQueryLoop\\' => 24 24 array ( 25 25 0 => __DIR__ . '/../..' . '/includes', … … 31 31 'AdvancedQueryLoop\\Traits\\Date_Query' => __DIR__ . '/../..' . '/includes/Traits/Date_Query.php', 32 32 'AdvancedQueryLoop\\Traits\\Disable_Pagination' => __DIR__ . '/../..' . '/includes/Traits/Disable_Pagination.php', 33 'AdvancedQueryLoop\\Traits\\Enable_Caching' => __DIR__ . '/../..' . '/includes/Traits/Enable_Caching.php', 33 34 'AdvancedQueryLoop\\Traits\\Exclude_Current' => __DIR__ . '/../..' . '/includes/Traits/Exclude_Current.php', 34 35 'AdvancedQueryLoop\\Traits\\Exclude_Posts' => __DIR__ . '/../..' . '/includes/Traits/Exclude_Posts.php', … … 37 38 'AdvancedQueryLoop\\Traits\\Meta_Query' => __DIR__ . '/../..' . '/includes/Traits/Meta_Query.php', 38 39 'AdvancedQueryLoop\\Traits\\Multiple_Posts' => __DIR__ . '/../..' . '/includes/Traits/Multiple_Posts.php', 40 'AdvancedQueryLoop\\Traits\\OrderBy' => __DIR__ . '/../..' . '/includes/Traits/OrderBy.php', 39 41 'AdvancedQueryLoop\\Traits\\Post_Parent' => __DIR__ . '/../..' . '/includes/Traits/Post_Parent.php', 40 42 'AdvancedQueryLoop\\Traits\\Tax_Query' => __DIR__ . '/../..' . '/includes/Traits/Tax_Query.php', -
advanced-query-loop/trunk/vendor/composer/installed.php
r3339814 r3469652 4 4 'pretty_version' => 'dev-trunk', 5 5 'version' => 'dev-trunk', 6 'reference' => ' 65d8d5a9b8e08f5c38bfa09042d2715a7c413680',6 'reference' => '4ba3c2cf4f6dc5e71453dfb0d0c398ca29915d2b', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-trunk', 15 15 'version' => 'dev-trunk', 16 'reference' => ' 65d8d5a9b8e08f5c38bfa09042d2715a7c413680',16 'reference' => '4ba3c2cf4f6dc5e71453dfb0d0c398ca29915d2b', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../', -
advanced-query-loop/trunk/vendor/composer/platform_check.php
r3104737 r3469652 20 20 } 21 21 } 22 trigger_error( 23 'Composer detected issues in your platform: ' . implode(' ', $issues), 24 E_USER_ERROR 22 throw new \RuntimeException( 23 'Composer detected issues in your platform: ' . implode(' ', $issues) 25 24 ); 26 25 }
Note: See TracChangeset
for help on using the changeset viewer.