Plugin Directory

Changeset 3278699


Ignore:
Timestamp:
04/22/2025 06:36:57 AM (10 months ago)
Author:
codeatlantic
Message:

Update to version 2.6.2 from GitHub

Location:
content-control
Files:
98 edited
1 copied

Legend:

Unmodified
Added
Removed
  • content-control/tags/2.6.2/classes/Controllers/Frontend/Restrictions/PostContent.php

    r3137162 r3278699  
    9999        }
    100100
     101        /**
     102         * Prevent the default restriction message from being shown by returning a custom
     103         * message or content.
     104         *
     105         * @param null|string $pre_restrict_content The content to display.
     106         * @param string $content     The content.
     107         * @param \ContentControl\Models\Restriction $restriction The restriction.
     108         *
     109         * @return string
     110         */
     111        $pre_restrict_content = apply_filters( 'content_control/pre_restrict_content', null, $content, $restriction );
     112
     113        if ( null !== $pre_restrict_content ) {
     114            return $pre_restrict_content;
     115        }
     116
    101117        $message = \ContentControl\get_default_denial_message();
    102118
     
    119135         * Filter the message to display when a post is restricted.
    120136         *
    121          * @param string $message     Message to display.
    122          * @param object $restriction Restriction object.
     137         * @param string                             $message     Message to display.
     138         * @param \ContentControl\Models\Restriction $restriction The restriction.
    123139         *
    124140         * @return string
     
    156172        }
    157173
    158         $restriction = get_applicable_restriction();
     174        $restriction = get_applicable_restriction( $post->ID );
    159175
    160176        if ( false === $restriction ) {
    161177            return $post_excerpt;
     178        }
     179
     180        /**
     181         * Filter to bypass the default restriction message for excerpts.
     182         *
     183         * @since 2.0.0
     184         *
     185         * @param null|string                        $pre_excerpt      Return a non-null value to bypass.
     186         * @param string                             $post_excerpt     The original excerpt.
     187         * @param \ContentControl\Models\Restriction $restriction    The restriction object.
     188         */
     189        $pre_excerpt = apply_filters( 'content_control/pre_restrict_excerpt', null, $post_excerpt, $restriction );
     190
     191        if ( null !== $pre_excerpt ) {
     192            return $pre_excerpt;
    162193        }
    163194
  • content-control/tags/2.6.2/classes/Controllers/Shortcodes.php

    r3007200 r3278699  
    9494        $classes = implode( ' ', $classes );
    9595
    96         return sprintf( $container, esc_attr( $classes ), do_shortcode( $content ), do_shortcode( $atts['message'] ) );
     96        return sprintf(
     97            $container,
     98            esc_attr( $classes ),
     99            // Sanitize the content output, allowing safe HTML and processed shortcodes.
     100            wp_kses_post( do_shortcode( $content ) ),
     101            // Sanitize the message output, allowing safe HTML and processed shortcodes.
     102            wp_kses_post( do_shortcode( $atts['message'] ) )
     103        );
    97104    }
    98105
  • content-control/tags/2.6.2/content-control.php

    r3256177 r3278699  
    44 * Plugin URI: https://contentcontrolplugin.com/?utm_campaign=plugin-info&utm_source=php-file-header&utm_medium=plugin-ui&utm_content=plugin-uri
    55 * Description: Restrict content to logged in/out users or specific user roles. Restrict access to certain parts of a page/post. Control the visibility of widgets.
    6  * Version: 2.6.1
     6 * Version: 2.6.2
    77 * Author: Code Atlantic
    88 * Author URI: https://code-atlantic.com/?utm_campaign=plugin-info&utm_source=php-file-header&utm_medium=plugin-ui&utm_content=author-uri
     
    3131        'name'          => 'Content Control',
    3232        'slug'          => 'content-control',
    33         'version'       => '2.6.1',
     33        'version'       => '2.6.2',
    3434        'option_prefix' => 'content_control',
    3535        // Maybe remove this and simply prefix `name` with `'Popup Maker'`.
  • content-control/tags/2.6.2/dist/settings-page.asset.php

    r3253935 r3278699  
    1 <?php return array('dependencies' => array('content-control-components', 'content-control-core-data', 'content-control-data', 'content-control-fields', 'content-control-icons', 'content-control-rule-engine', 'content-control-utils', 'react', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => 'fe022002096ac8c37f72');
     1<?php return array('dependencies' => array('content-control-components', 'content-control-core-data', 'content-control-data', 'content-control-fields', 'content-control-icons', 'content-control-rule-engine', 'content-control-utils', 'react', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => 'dd59fa90b2f40090e9c2');
  • content-control/tags/2.6.2/dist/settings-page.js

    r3253935 r3278699  
    11!function(){var e={184:function(e,t){var n;!function(){"use strict";var o={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var l=typeof n;if("string"===l||"number"===l)e.push(n);else if(Array.isArray(n)){if(n.length){var a=r.apply(null,n);a&&e.push(a)}}else if("object"===l){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){e.push(n.toString());continue}for(var c in n)o.call(n,c)&&n[c]&&e.push(c)}}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var l=t[o]={exports:{}};return e[o](l,l.exports,n),l.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};!function(){"use strict";n.r(o),n.d(o,{init:function(){return gn}});var e,t,r=window.React;function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},l.apply(this,arguments)}(t=e||(e={})).Pop="POP",t.Push="PUSH",t.Replace="REPLACE";const a="popstate";function c(e,t){if(!1===e||null==e)throw new Error(t)}function s(e,t){return{usr:e.state,key:e.key,idx:t}}function i(e,t,n,o){return void 0===n&&(n=null),l({pathname:"string"==typeof e?e:e.pathname,search:"",hash:""},"string"==typeof t?d(t):t,{state:n,key:t&&t.key||o||Math.random().toString(36).substr(2,8)})}function u(e){let{pathname:t="/",search:n="",hash:o=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),o&&"#"!==o&&(t+="#"===o.charAt(0)?o:"#"+o),t}function d(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let o=e.indexOf("?");o>=0&&(t.search=e.substr(o),e=e.substr(0,o)),e&&(t.pathname=e)}return t}var m;function p(e,t,n,o){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(o)+"].  Please separate it out to the `to."+n+'` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.'}!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(m||(m={})),new Set(["lazy","caseSensitive","path","id","index","children"]);const g=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",h=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";Error;const _=["post","put","patch","delete"],v=(new Set(_),["get",..._]);new Set(v),new Set([301,302,303,307,308]),new Set([307,308]),"undefined"!=typeof window&&void 0!==window.document&&window.document.createElement,Symbol("deferred");const E="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},{useState:f,useEffect:b,useLayoutEffect:y,useDebugValue:w}=r;function C(e){const t=e.getSnapshot,n=e.value;try{const e=t();return!E(n,e)}catch(e){return!0}}"undefined"==typeof window||void 0===window.document||window.document.createElement;"useSyncExternalStore"in r&&r.useSyncExternalStore;const S=r.createContext(null),k=r.createContext(null),x=r.createContext(null),N=r.createContext({outlet:null,matches:[]});function P(){return null!=r.useContext(x)}function R(){return P()||c(!1),r.useContext(x).location}function T(){P()||c(!1);let{basename:e,navigator:t}=r.useContext(k),{matches:n}=r.useContext(N),{pathname:o}=R(),a=JSON.stringify(function(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}(n).map((e=>e.pathnameBase))),s=r.useRef(!1);r.useEffect((()=>{s.current=!0}));let i=r.useCallback((function(n,r){if(void 0===r&&(r={}),!s.current)return;if("number"==typeof n)return void t.go(n);let i=function(e,t,n,o){let r;void 0===o&&(o=!1),"string"==typeof e?r=d(e):(r=l({},e),c(!r.pathname||!r.pathname.includes("?"),p("?","pathname","search",r)),c(!r.pathname||!r.pathname.includes("#"),p("#","pathname","hash",r)),c(!r.search||!r.search.includes("#"),p("#","search","hash",r)));let a,s=""===e||""===r.pathname,i=s?"/":r.pathname;if(o||null==i)a=n;else{let e=t.length-1;if(i.startsWith("..")){let t=i.split("/");for(;".."===t[0];)t.shift(),e-=1;r.pathname=t.join("/")}a=e>=0?t[e]:"/"}let u=function(e,t){void 0===t&&(t="/");let{pathname:n,search:o="",hash:r=""}="string"==typeof e?d(e):e,l=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:l,search:g(o),hash:h(r)}}(r,a),m=i&&"/"!==i&&i.endsWith("/"),_=(s||"."===i)&&n.endsWith("/");return u.pathname.endsWith("/")||!m&&!_||(u.pathname+="/"),u}(n,JSON.parse(a),o,"path"===r.relative);"/"!==e&&(i.pathname="/"===i.pathname?e:[e,i.pathname].join("/").replace(/\/\/+/g,"/")),(r.replace?t.replace:t.push)(i,r.state,r)}),[e,t,a,o]);return i}var M,L,B,F,D;function A(t){let{basename:n="/",children:o=null,location:l,navigationType:a=e.Pop,navigator:s,static:i=!1}=t;P()&&c(!1);let u=n.replace(/^\/*/,"/"),m=r.useMemo((()=>({basename:u,navigator:s,static:i})),[u,s,i]);"string"==typeof l&&(l=d(l));let{pathname:p="/",search:g="",hash:h="",state:_=null,key:v="default"}=l,E=r.useMemo((()=>{let e=function(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,o=e.charAt(n);return o&&"/"!==o?null:e.slice(n)||"/"}(p,u);return null==e?null:{location:{pathname:e,search:g,hash:h,state:_,key:v},navigationType:a}}),[u,p,g,h,_,v,a]);return null==E?null:r.createElement(k.Provider,{value:m},r.createElement(x.Provider,{children:o,value:E}))}function O(t){let{basename:n,children:o,window:d}=t,m=r.useRef();null==m.current&&(m.current=function(t){return void 0===t&&(t={}),function(t,n,o,r){void 0===r&&(r={});let{window:d=document.defaultView,v5Compat:m=!1}=r,p=d.history,g=e.Pop,h=null,_=v();function v(){return(p.state||{idx:null}).idx}function E(){g=e.Pop;let t=v(),n=null==t?null:t-_;_=t,h&&h({action:g,location:b.location,delta:n})}function f(e){let t="null"!==d.location.origin?d.location.origin:d.location.href,n="string"==typeof e?e:u(e);return c(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==_&&(_=0,p.replaceState(l({},p.state,{idx:_}),""));let b={get action(){return g},get location(){return t(d,p)},listen(e){if(h)throw new Error("A history only accepts one active listener");return d.addEventListener(a,E),h=e,()=>{d.removeEventListener(a,E),h=null}},createHref(e){return n(d,e)},createURL:f,encodeLocation(e){let t=f(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(t,n){g=e.Push;let r=i(b.location,t,n);o&&o(r,t),_=v()+1;let l=s(r,_),a=b.createHref(r);try{p.pushState(l,"",a)}catch(e){d.location.assign(a)}m&&h&&h({action:g,location:b.location,delta:1})},replace:function(t,n){g=e.Replace;let r=i(b.location,t,n);o&&o(r,t),_=v();let l=s(r,_),a=b.createHref(r);p.replaceState(l,"",a),m&&h&&h({action:g,location:b.location,delta:0})},go(e){return p.go(e)}};return b}((function(e,t){let{pathname:n,search:o,hash:r}=e.location;return i("",{pathname:n,search:o,hash:r},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){return"string"==typeof t?t:u(t)}),null,t)}({window:d,v5Compat:!0}));let p=m.current,[g,h]=r.useState({action:p.action,location:p.location});return r.useLayoutEffect((()=>p.listen(h)),[p]),r.createElement(A,{basename:n,children:o,location:g.location,navigationType:g.action,navigator:p})}function I(e,t,n=!0){return{...e,default:t,decode:(...o)=>{const r=e.decode(...o);return void 0===r||n&&null===r?t:r}}}function U(e,t){if(null==e)return e;if(0===e.length&&(!t||t&&""!==e))return null;const n=e instanceof Array?e[0]:e;return null==n||t||""!==n?n:null}r.Component,function(e){e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator"}(M||(M={})),function(e){e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator"}(L||(L={})),function(e){e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error"}(B||(B={})),new Promise((()=>{})),r.Component,"undefined"!=typeof window&&void 0!==window.document&&window.document.createElement,function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmitImpl="useSubmitImpl",e.UseFetcher="useFetcher"}(F||(F={})),function(e){e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(D||(D={}));const V={encode:function(e){return null==e?e:String(e)},decode:function(e){const t=U(e,!0);return null==t?t:String(t)}},z={encode:function(e){return null==e?e:String(e)},decode:function(e){const t=U(e);return null==t?t:""===t?null:+t}},j={encode:function(e){return null==e?e:e?"1":"0"},decode:function(e){const t=U(e);return null==t?t:"1"===t||"0"!==t&&null}};'{}[],":'.split("").map((e=>[e,encodeURIComponent(e)]));const H=new class{constructor(){this.paramsMap=new Map,this.registeredParams=new Map}set(e,t,n,o){this.paramsMap.set(e,{stringified:t,decoded:n,decode:o})}has(e,t,n){if(!this.paramsMap.has(e))return!1;const o=this.paramsMap.get(e);return!!o&&o.stringified===t&&(null==n||o.decode===n)}get(e){var t;if(this.paramsMap.has(e))return null==(t=this.paramsMap.get(e))?void 0:t.decoded}registerParams(e){for(const t of e){const e=this.registeredParams.get(t)||0;this.registeredParams.set(t,e+1)}}unregisterParams(e){for(const t of e){const e=(this.registeredParams.get(t)||0)-1;e<=0?(this.registeredParams.delete(t),this.paramsMap.has(t)&&this.paramsMap.delete(t)):this.registeredParams.set(t,e)}}clear(){this.paramsMap.clear(),this.registeredParams.clear()}};function $(e,t,n,o){var r;if(!n||!t.length)return e;let l={...e},a=!1;for(const e of t)Object.prototype.hasOwnProperty.call(l,e)||(l[e]=null!=(r=n[e])?r:o,a=!0);return a?l:e}const W=Object.prototype.hasOwnProperty;function G(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function Q(e,t,n){var o,r;if(G(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const l=Object.keys(e),a=Object.keys(t);if(l.length!==a.length)return!1;for(let a=0;a<l.length;a++){const c=null!=(r=null==(o=null==n?void 0:n[l[a]])?void 0:o.equals)?r:G;if(!W.call(t,l[a])||!c(e[l[a]],t[l[a]]))return!1}return!0}function q(e,t,n){const o={},r=Object.keys(t);for(const l of r){const r=t[l],a=e[l];let c;if(n.has(l,a,r.decode))c=n.get(l);else{if(c=r.decode(a),r.equals&&n.has(l,a)){const e=n.get(l);r.equals(c,e)&&(c=e)}void 0!==c&&n.set(l,a,c,r.decode)}void 0===c&&void 0!==r.default&&(c=r.default),o[l]=c}return o}function Y(){let e;return function(t,n,o){const r=q(t,n,o);return null!=e&&Q(e,r)?e:(e=r,r)}}let K,J,Z,X={};const ee=(e,t,n)=>{if(K===t&&Z===e&&J===n)return X;K=t,Z=e;const o=e(null!=t?t:"");J=n;const r=function(e){if(e)return Object.fromEntries(e.split("\n").map((e=>e.split("\0"))))}(n);for(let[e,t]of Object.entries(o)){(null==r?void 0:r[e])&&(delete o[e],e=r[e],o[e]=t);const n=X[e];Q(t,n)&&(o[e]=n)}return X=o,o};function te(e,t){null==t&&(t={});const n={...e,...t};return t.params&&e.params&&(n.params={...e.params,...t.params}),n}const ne={adapter:{},options:{searchStringToObject:function(e){const t=new URLSearchParams(e),n={};for(let[e,o]of t)Object.prototype.hasOwnProperty.call(n,e)?Array.isArray(n[e])?n[e].push(o):n[e]=[n[e],o]:n[e]=o;return n},objectToSearchString:function(e){const t=new URLSearchParams,n=Object.entries(e);for(const[e,o]of n)if(null!=o)if(Array.isArray(o))for(const n of o)t.append(e,null!=n?n:"");else t.append(e,o);return t.toString()},updateType:"pushIn",includeKnownParams:void 0,includeAllParams:!1,removeDefaultsFromUrl:!1,enableBatching:!1,skipUpdateWhenNoChange:!0}},oe=r.createContext(ne);function re({children:e,adapter:t,options:n}){const{adapter:o,options:l}=r.useContext(oe),a=r.useMemo((()=>({adapter:null!=t?t:o,options:te(l,n)})),[t,n,o,l]);return r.createElement(oe.Provider,{value:a},e)}function le({children:e,adapter:t,options:n}){const o=t;return o?r.createElement(o,null,(t=>r.createElement(re,{adapter:t,options:n},e))):r.createElement(re,{options:n},e)}function ae({changes:e,updateType:t,currentSearchString:n,paramConfigMap:o,options:r}){const{searchStringToObject:l,objectToSearchString:a}=r;let c;null==t&&(t=r.updateType);const s=ee(l,n),i=$(o,Object.keys(e),r.params);let u,d;return u="function"==typeof e?e(q(s,i,H)):e,c=function(e,t){const n={},o=Object.keys(t);for(const r of o){const o=t[r];e[r]?n[r]=e[r].encode(t[r]):n[r]=null==o?o:String(o)}return n}(i,u),r.removeDefaultsFromUrl&&function(e,t){var n;for(const o in e)void 0!==(null==(n=t[o])?void 0:n.default)&&void 0!==e[o]&&t[o].encode(t[o].default)===e[o]&&(e[o]=void 0)}(c,i),c=function(e,t){var n;let o={};for(const r in e)null!=(null==(n=t[r])?void 0:n.urlName)?o[t[r].urlName]=e[r]:o[r]=e[r];return o}(c,i),d=a("push"===t||"replace"===t?c:{...s,...c}),(null==d?void 0:d.length)&&"?"!==d[0]&&(d=`?${d}`),null!=d?d:""}const ce=e=>e(),se=e=>setTimeout((()=>e()),0),ie=[];function ue(e,t){const{adapter:n,options:o}=function(){const e=r.useContext(oe);if(void 0===e||e===ne)throw new Error("useQueryParams must be used within a QueryParamProvider");return e}(),[l]=(0,r.useState)(Y),{paramConfigMap:a,options:c}=function(e,t){let n,o;return void 0===e?(n={},o=t):Array.isArray(e)?(n=Object.fromEntries(e.map((e=>[e,"inherit"]))),o=t):(n=e,o=t),{paramConfigMap:n,options:o}}(e,t),s=(0,r.useMemo)((()=>te(o,c)),[o,c]);let i=function(e,t){var n,o,r;const l={};let a=!1;const c=Object.keys(e);let s=c;if(t.includeKnownParams||!1!==t.includeKnownParams&&0===c.length){const e=Object.keys(null!=(n=t.params)?n:{});s.push(...e)}for(const n of s){const c=e[n];null==c||"object"!=typeof c?(a=!0,l[n]=null!=(r=null==(o=t.params)?void 0:o[n])?r:V):l[n]=c}return a?l:e}(a,s);const u=ee(s.searchStringToObject,n.location.search,function(e){let t;for(const n in e)if(e[n].urlName){const o=`${e[n].urlName}\0${n}`;t?t.push(o):t=[o]}return t?t.join("\n"):void 0}(i));s.includeAllParams&&(i=$(i,Object.keys(u),s.params,V));const d=l(u,i,H),m=Object.keys(i).join("\0");(0,r.useEffect)((()=>{const e=m.split("\0");return H.registerParams(e),()=>{H.unregisterParams(e)}}),[m]);const p={adapter:n,paramConfigMap:i,options:s},g=(0,r.useRef)(p);null==g.current&&(g.current=p),(0,r.useEffect)((()=>{g.current.adapter=n,g.current.paramConfigMap=i,g.current.options=s}),[n,i,s]);const[h]=(0,r.useState)((()=>(e,t)=>{const{adapter:n,paramConfigMap:o,options:r}=g.current;null==t&&(t=r.updateType),function(e,{immediate:t}={}){ie.push(e);let n=t?ce:se;1===ie.length&&n((()=>{const t=ie.slice();ie.length=0;const n=t[0].currentSearchString;let o;for(let e=0;e<t.length;++e)o=ae(0===e?t[e]:{...t[e],currentSearchString:o});e.options.skipUpdateWhenNoChange&&o===n||function({searchString:e,adapter:t,navigate:n,updateType:o}){const r={...t.location,search:e};n&&("string"==typeof o&&o.startsWith("replace")?t.replace(r):t.push(r))}({searchString:null!=o?o:"",adapter:t[t.length-1].adapter,navigate:!0,updateType:t[t.length-1].updateType})}))}({changes:e,updateType:t,currentSearchString:n.location.search,paramConfigMap:o,options:r,adapter:n},{immediate:!r.enableBatching})}));return[d,h]}var de=ue;const me=(e,t,n)=>{const o=(0,r.useMemo)((()=>({[e]:null!=t?t:"inherit"})),[e,t]),[l,a]=de(o,n);return[l[e],(0,r.useCallback)(((t,n)=>a("function"==typeof t?n=>{const o=t(n[e]);return{[e]:o}}:{[e]:t},n)),[e,a])]},pe=({children:e})=>{var t;const{navigator:n}=(0,r.useContext)(k),o=T(),l=null==(t=(0,r.useContext)(S))?void 0:t.router,a=R();return e({replace(e){o(e.search||"?",{replace:!0,state:e.state})},push(e){o(e.search||"?",{replace:!1,state:e.state})},get location(){var e,t,o;return null!=(o=null!=(t=null==(e=null==l?void 0:l.state)?void 0:e.location)?t:null==n?void 0:n.location)?o:a}})};var ge=window.contentControl.data,he=window.wp.data,_e=window.wp.element,ve=n(184),Ee=n.n(ve),fe=window.wp.i18n,be=window.wp.hooks,ye=window.contentControl.icons,we=window.wp.components,Ce=window.contentControl.coreData,Se=window.contentControl.components,ke=window.wp.primitives,xe=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{fillRule:"evenodd",d:"M17.375 15.656A6.47 6.47 0 0018.5 12a6.47 6.47 0 00-.943-3.374l-1.262.813c.448.749.705 1.625.705 2.561a4.977 4.977 0 01-.887 2.844l1.262.813zm-1.951 1.87l-.813-1.261A4.976 4.976 0 0112 17c-.958 0-1.852-.27-2.613-.736l-.812 1.261A6.47 6.47 0 0012 18.5a6.47 6.47 0 003.424-.974zm-8.8-1.87A6.47 6.47 0 015.5 12c0-1.235.344-2.39.943-3.373l1.261.812A4.977 4.977 0 007 12c0 1.056.328 2.036.887 2.843l-1.262.813zm2.581-7.803A4.977 4.977 0 0112 7c1.035 0 1.996.314 2.794.853l.812-1.262A6.47 6.47 0 0012 5.5a6.47 6.47 0 00-3.607 1.092l.812 1.261zM12 20a8 8 0 100-16 8 8 0 000 16zm0-4.5a3.5 3.5 0 100-7 3.5 3.5 0 000 7z",clipRule:"evenodd"})),Ne=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{d:"M7 13.8h6v-1.5H7v1.5zM18 16V4c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2zM5.5 16V4c0-.3.2-.5.5-.5h10c.3 0 .5.2.5.5v12c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5zM7 10.5h8V9H7v1.5zm0-3.3h8V5.8H7v1.4zM20.2 6v13c0 .7-.6 1.2-1.2 1.2H8v1.5h11c1.5 0 2.7-1.2 2.7-2.8V6h-1.5z"})),Pe=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{d:"M15.5 9.5a1 1 0 100-2 1 1 0 000 2zm0 1.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zm-2.25 6v-2a2.75 2.75 0 00-2.75-2.75h-4A2.75 2.75 0 003.75 15v2h1.5v-2c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v2h1.5zm7-2v2h-1.5v-2c0-.69-.56-1.25-1.25-1.25H15v-1.5h2.5A2.75 2.75 0 0120.25 15zM9.5 8.5a1 1 0 11-2 0 1 1 0 012 0zm1.5 0a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z",fillRule:"evenodd"})),Re=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{d:"M11 14.5l1.1 1.1 3-3 .5-.5-.6-.6-3-3-1 1 1.7 1.7H5v1.5h7.7L11 14.5zM16.8 5h-7c-1.1 0-2 .9-2 2v1.5h1.5V7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v10c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-1.5H7.8V17c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z"}));const{pluginUrl:Te,adminUrl:Me,wpVersion:Le}=contentControlSettingsPage,Be={showNotice:!1,ignoreNotice:!1,retryView:""};var Fe=({tabs:e})=>{const[t="restrictions",n]=me("view",V),o=(0,_e.useRef)(null),[l,a]=(0,_e.useState)(Be),{showNotice:c,ignoreNotice:s,retryView:i}=l,u=()=>a(Be),d=(0,he.useSelect)((e=>e(Ce.settingsStore).hasUnsavedChanges()),[]),{saveSettings:m}=(0,he.useDispatch)(Ce.settingsStore);return(0,_e.useEffect)((()=>{const e=e=>{d&&(e.preventDefault(),e.returnValue=!1)};return window.addEventListener("beforeunload",e),()=>{window.removeEventListener("beforeunload",e)}}),[d]),(0,_e.useEffect)((()=>(d||u(),d&&!s||!i||n(i),()=>u())),[d,s]),(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:"cc-settings-page__header"},(0,r.createElement)("h1",{className:"branding wp-heading-inline"},(0,r.createElement)("a",{href:"https://contentcontrolplugin.com?utm_campaign=plugin-info&utm_source=plugin-settings-page&utm_medium=plugin-ui&utm_content=header-logo",target:"_blank",rel:"noopener noreferrer"},(0,r.createElement)("img",{src:`${Te}assets/images/logo.svg`,alt:(0,fe.__)("Content Control","content-control")}),(0,fe.__)("Content Control","content-control"))),(0,r.createElement)(Se.ControlledTabPanel,{className:"tabs",orientation:"horizontal",selected:null!==t?t:void 0,onSelect:o=>{const r=e.find((e=>e.name===o));var c;r?.onClick&&!1===r.onClick()||(c=o,"settings"!==t||!d||s?n(c):a({...l,showNotice:!0,retryView:c}))},tabs:e}),(0,r.createElement)(we.DropdownMenu,{label:(0,fe.__)("Support","content-control"),icon:xe,toggleProps:Le>=6.2?{as:({onClick:e})=>(0,r.createElement)(we.Button,{icon:xe,variant:"link",onClick:e,className:"components-tab-panel__tabs-item support-link"},(0,r.createElement)("span",{ref:o},(0,fe.__)("Support","content-control")))}:void 0,popoverProps:{noArrow:!1,position:"bottom left",className:"cc-settings-page__support-menu",anchor:Le>=6.2?{getBoundingClientRect:()=>o?.current?.getBoundingClientRect()}:void 0}},(({onClose:e})=>(0,r.createElement)(r.Fragment,null,(0,r.createElement)(we.MenuGroup,null,(0,r.createElement)(we.MenuItem,{icon:Ne,href:"https://contentcontrolplugin.com/docs/?utm_campaign=plugin-support&utm_source=plugin-settings-page&utm_medium=plugin-ui&utm_content=view-documentation-link",target:"_blank"},(0,fe.__)("View Documentation","content-control")),(0,r.createElement)(we.MenuItem,{icon:Pe,href:"https://contentcontrolplugin.com/support/?utm_campaign=plugin-support&utm_source=plugin-settings-page&utm_medium=plugin-ui&utm_content=get-support-link",target:"_blank"},(0,fe.__)("Get Support","content-control"))),(0,r.createElement)(we.MenuGroup,null,(0,r.createElement)(we.MenuItem,{icon:Re,onClick:()=>{window.location.href=`${Me}options-general.php?page=grant-content-control-access`,e()}},(0,fe.__)("Grant Support Access","content-control"))))))),c&&(0,r.createElement)(we.Modal,{title:(0,fe.__)("Unsaved changes","content-control"),onRequestClose:()=>u()},(0,r.createElement)("p",null,(0,fe.__)("Changes you made may not be saved.","content-control")),(0,r.createElement)(we.Flex,{justify:"right"},(0,r.createElement)(we.Button,{isDestructive:!0,onClick:()=>a({...l,showNotice:!1,ignoreNotice:!0}),text:(0,fe.__)("Ignore","content-control")}),(0,r.createElement)(we.Button,{variant:"primary",onClick:()=>m(),text:(0,fe.__)("Save Settings","content-control")}))))},De=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{d:"M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z"})),Ae=window.contentControl.ruleEngine,Oe=n.n(Ae),Ie=()=>{const{isEditorActive:e,editorId:t}=(0,he.useSelect)((e=>{const t=e(Ce.restrictionsStore);return{editorId:t.getEditorId(),isEditorActive:t.isEditorActive()}}),[]),{changeEditorId:n}=(0,he.useDispatch)(Ce.restrictionsStore),[o,r]=ue({edit:z,add:j,tab:V}),l=()=>r({add:void 0,edit:void 0,tab:void 0}),{edit:a,add:c,tab:s}=o;return(0,_e.useEffect)((()=>{let e=a&&a>0?a:void 0;c&&(e="new"),e!==t&&n(e)}),[a,c,t,n]),(0,_e.useEffect)((()=>{c||a||e||l()}),[e,c,a]),{tab:s,setTab:e=>r({tab:e}),setEditorId:e=>{r({add:"new"===e||void 0,edit:"number"==typeof e&&e>0?e:void 0}),n(e)},clearEditorParams:l}},Ue=({values:e,updateSettings:t})=>(0,r.createElement)("div",{className:"content-tab"},(0,r.createElement)("h3",null,(0,fe.__)("Apply this restriction if the user views content that is:","content-control")),(0,r.createElement)("p",null,(0,fe.__)("When users visit your site, the plugin will check the viewed content against your selection below and permit or deny access.","content-control")),(0,r.createElement)(Oe(),{value:e.settings.conditions,onChange:e=>t({conditions:e}),options:{features:{notOperand:!0,groups:!0},rulesFilter:e=>(Array.isArray(e.context)?e.context:e.context.split(" ")).indexOf("content")>=0}})),Ve=window.contentControl.utils,ze=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{d:"M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"})),je=window.wp.compose,He=()=>{const{updateEditorValues:e}=(0,he.useDispatch)(Ce.restrictionsStore),{values:t={}}=(0,he.useSelect)((e=>({values:e(Ce.restrictionsStore).getEditorValues(),isEditorActive:e(Ce.restrictionsStore).isEditorActive()})),[]),{settings:n}=t,o=(0,_e.useCallback)((n=>{e({...t,settings:{...t?.settings,...n}})}),[e,t]),r=(e,t)=>{const o=(0,be.applyFilters)("contentControl.restrictionEditor.fieldIsVisible",void 0,e,n,t);return void 0===o||o},l=(0,_e.useMemo)((()=>(0,be.applyFilters)("contentControl.restrictionEditor.tabFields",{},n,o)),[n,o]);return{values:t,fieldIsVisible:r,getTabFields:e=>{var t;return(0,be.applyFilters)(`contentControl.restrictionEditor.tabFields.${e}`,null!==(t=l[e])&&void 0!==t?t:[]).sort(((e,t)=>e.priority-t.priority)).filter((t=>r(t.id,e))).map((t=>{const n=(0,be.applyFilters)("contentControl.restrictionEditor.renderField",t.component,t.id,e);return{...t,component:n}}))},updateSettings:o,updateField:(e,t)=>{o({[e]:t})}}},$e=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{d:"M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z"}));const We=[{value:"redirect",label:(0,fe.__)("Redirect","content-control"),icon:ye.protectedRedirect},{value:"replace",label:(0,fe.__)("Replace Content","content-control"),icon:ye.protectedMessage}],Ge=[{value:"login",label:(0,fe.__)("Login & Back","content-control"),icon:Re},{value:"home",label:(0,fe.__)("Home Page","content-control"),icon:$e},{value:"custom",label:(0,fe.__)("Custom URL","content-control"),icon:De}],Qe=[{value:"message",label:(0,fe.__)("Custom Message","content-control")},{value:"page",label:(0,fe.__)("Use Existing Page","content-control")}],qe=[{label:(0,fe.__)("Filter the restricted items' content.","content-control"),value:"filter_post_content"},{label:(0,fe.__)("Hide the restricted items from the archive page.","content-control"),value:"hide"},{label:(0,fe.__)("Replace the entire archive page with a custom page.","content-control"),value:"replace_archive_page"},{label:(0,fe.__)("Redirect to a different page.","content-control"),value:"redirect"}],Ye=[{label:(0,fe.__)("Filter the restricted items' content.","content-control"),value:"filter_post_content"},{label:(0,fe.__)("Hide the restricted items from the list page.","content-control"),value:"hide"}],{userRoles:Ke}=contentControlSettingsPage,Je=({settings:e,updateSettings:t})=>{var n;const o=(0,je.useInstanceId)(Je);let l=[];return Array.isArray(e.userRoles)?l=e.userRoles:"object"==typeof e.userRoles&&(l=Object.entries(e.userRoles).map((([e])=>e))),(0,r.createElement)(Se.FieldPanel,{title:(0,fe.__)("User Status","content-control")},(0,r.createElement)(Se.RadioButtonControl,{label:(0,fe.__)("Who can see this content?","content-control"),value:e.userStatus,onChange:e=>t({userStatus:e}),options:(0,be.applyFilters)("contentControl.restrictionEditor.userStatusOptions",[{value:"logged_in",label:(0,fe.__)("Logged In Users","content-control"),icon:ye.lockedUser},{value:"logged_out",label:(0,fe.__)("Logged Out Users","content-control"),icon:ye.incognito}]),className:"userStatus-field"}),"logged_in"===e.userStatus&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)("br",null),(0,r.createElement)("hr",null),(0,r.createElement)(Se.FieldRow,{id:`content-control-role-match-${o}`,label:(0,fe.__)("User Role","content-control"),description:(0,fe.__)("Which user roles should be allowed to see this content.","content-control"),className:"components-base-control__label"},(0,r.createElement)(we.SelectControl,{id:`content-control-role-match-${o}`,label:(0,fe.__)("User Role","content-control"),value:null!==(n=e.roleMatch)&&void 0!==n?n:"any",options:[{label:(0,fe.__)("Any","content-control"),value:"any"},{label:(0,fe.__)("Matching","content-control"),value:"match"},{label:(0,fe.__)("Excluding","content-control"),value:"exclude"}],onChange:e=>t({roleMatch:e}),className:"is-large roleMatch-field",hideLabelFromVision:!0,__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0})),"any"!==e.roleMatch&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)("hr",null),(0,r.createElement)("br",null),(0,r.createElement)(Se.SearchableMulticheckControl,{label:"exclude"===e.roleMatch?(0,fe.__)("Roles to exclude","content-control"):(0,fe.__)("Roles to include","content-control"),searchIcon:ze,placeholder:(0,fe.__)("Search roles…","content-control"),className:"is-large userRoles-field",value:l,onChange:e=>t({userRoles:e}),options:Object.entries(Ke).map((([e,t])=>({value:e,label:t})))}))))};(0,be.addFilter)("contentControl.restrictionEditor.tabFields","content-control",((e,t,n)=>{const o={settings:t,updateSettings:n};return{...e,general:[{id:"userStatus",priority:3,component:(0,r.createElement)(Je,{...o})}]}}));var Ze=({values:e,updateValues:t})=>{const{getTabFields:n}=He(),o=e.description.length/80,l=(0,Ve.clamp)(o,1,5);return(0,r.createElement)("div",{className:"general-tab"},(0,r.createElement)(we.TextControl,{label:(0,fe.__)("Restriction label","content-control"),hideLabelFromVision:!0,placeholder:(0,fe.__)("Name…","content-control"),className:"title-field",value:e.title,onChange:e=>t({title:e})}),(0,r.createElement)(we.TextareaControl,{rows:l,scrolling:l>5?"auto":"no",label:(0,fe.__)("Restriction description","content-control"),hideLabelFromVision:!0,placeholder:(0,fe.__)("Add description…","content-control"),className:"description-field",value:e.description,onChange:e=>t({description:e})}),e.title.length<=0&&(0,r.createElement)(we.Notice,{status:"warning",isDismissible:!1,className:"title-field-notice"},(0,fe.__)("Enter a label for this set.","content-control")),n("general").map((e=>(0,r.createElement)("div",{key:e.id},e.component))))};const{isProActivated:Xe=!1}=contentControlSettingsPage;(0,be.addFilter)("contentControl.restrictionEditor.tabFields","content-control",((e,t,n)=>{var o;const l=t.customMessage?.length/80,a=(0,Ve.clamp)(l,4,20);return{...e,protection:[{id:"protectionMethod",priority:1,component:(0,r.createElement)(Se.RadioButtonControl,{label:(0,fe.__)("How do you want to protect your content?","content-control"),value:t.protectionMethod,onChange:e=>n({protectionMethod:e}),options:(0,be.applyFilters)("contentControl.restrictionEditor.protectionMethodOptions",We)})},{id:"redirectType",priority:2,component:(0,r.createElement)(Se.RadioButtonControl,{label:(0,fe.__)("Where will the user be taken?","content-control"),value:t.redirectType,onChange:e=>n({redirectType:e}),options:Ge})},{id:"redirectUrl",priority:3,component:(0,r.createElement)(Se.URLControl,{label:(0,fe.__)("Custom Redirect URL","content-control"),className:"is-large",value:t.redirectUrl,onChange:({url:e})=>{n({redirectUrl:e})}})},{id:"replacementType",priority:4,component:(0,r.createElement)(Se.RadioButtonControl,{label:(0,fe.__)("Replacement Type","content-control"),value:t.replacementType,options:Qe,onChange:e=>n({replacementType:e})})},{id:"replacementPage",priority:5,component:(0,r.createElement)(Se.EntitySelectControl,{label:(0,fe.__)("Choose a page to replace the content with.","content-control"),placeholder:(0,fe.__)("Choose a page to replace the content with.","content-control"),value:t.replacementPage,multiple:!1,onChange:e=>n({replacementPage:e}),entityKind:"postType",entityType:"page",closeOnSelect:!0})},{id:"showExcerpts",priority:6,component:(0,r.createElement)(we.CheckboxControl,{label:(0,fe.__)("Show excerpts above access denied message?","content-control"),checked:t.showExcerpts,onChange:e=>n({showExcerpts:e})})},{id:"overrideMessage",priority:7,component:(0,r.createElement)(we.CheckboxControl,{label:(0,fe.__)("Override the default message?","content-control"),checked:t.overrideMessage,onChange:e=>n({overrideMessage:e}),help:(0,fe.__)("Edit the default message via the plugin's Settings page.","content-control")})},{id:"customMessage",priority:8,component:(0,r.createElement)(we.TextareaControl,{label:(0,fe.__)("Enter a custom message to display to restricted users","content-control"),rows:a,value:t.customMessage,onChange:e=>n({customMessage:e})})},{id:"showInSearch",priority:9,component:(0,r.createElement)(et,{settings:t,updateSettings:n})},{id:"archiveHandling",priority:10,component:(0,r.createElement)(we.RadioControl,{label:(0,fe.__)("Handling matches within archives","content-control"),help:(0,fe.__)("Choose how to handle matched content found within archive pages. This option applies to restricted content within the archive page, not the archive page itself.","content-control"),selected:t.archiveHandling,options:qe,onChange:e=>n({archiveHandling:e})})},{id:"archiveReplacementPage",priority:11,component:(0,r.createElement)(Se.EntitySelectControl,{label:(0,fe.__)("Choose a page to replace the archive with","content-control"),placeholder:(0,fe.__)("Choose a page to replace the archive with","content-control"),value:t.archiveReplacementPage,multiple:!1,onChange:e=>n({archiveReplacementPage:e}),entityKind:"postType",entityType:"page",closeOnSelect:!0})},{id:"archiveRedirectType",priority:12,component:(0,r.createElement)(Se.RadioButtonControl,{label:(0,fe.__)("Where will the user be taken?","content-control"),value:t.archiveRedirectType,onChange:e=>n({archiveRedirectType:e}),options:Ge})},{id:"archiveRedirectUrl",priority:13,component:(0,r.createElement)(Se.URLControl,{label:(0,fe.__)("Custom Redirect URL","content-control"),className:"is-large",value:t.archiveRedirectUrl,onChange:({url:e})=>{n({archiveRedirectUrl:e})}})},{id:"additionalQueryHandling",priority:14,component:(0,r.createElement)(we.RadioControl,{label:(0,fe.__)("Handling matches everywhere else","content-control"),help:(0,fe.__)("Choose how to handle matched content in all other areas outside the main content. This option applies to restricted content found in non-main queries, sidebars, widgets, footers, or within the page content itself.","content-control"),selected:t.additionalQueryHandling,options:Ye,onChange:e=>n({additionalQueryHandling:e})})},{id:"restApiQueryHandling",priority:15,component:(0,r.createElement)(we.BaseControl,{label:(0,fe.__)("Handling matches in REST API requests","content-control"),id:"restApiQueryHandling"},(0,r.createElement)("p",null,(0,r.createElement)("strong",null,(0,fe.__)('By default restricted posts in a REST API list will follow "everywhere else" rules set above, single posts & taxonomies will show restricted access notices.',"content-control"))),!Xe&&(0,r.createElement)("p",{dangerouslySetInnerHTML:{__html:(0,fe.sprintf)(
    22// translators: 1: Content Control Pro, 2: </a>
    3 (0,fe.__)("If you need more control over your REST API, try %1$sContent Control Pro%2$s:"),'<a href="https://contentcontrolplugin.com/features/rest-api/" target="_blank">',"</a>")}}))},...null!==(o=e.protection)&&void 0!==o?o:[]]}})),(0,be.addFilter)("contentControl.restrictionEditor.fieldIsVisible","content-control",((e,t,n)=>{switch(t){case"redirectType":return"redirect"===n.protectionMethod;case"redirectUrl":return"redirect"===n.protectionMethod&&"custom"===n.redirectType;case"replacementType":return"replace"===n.protectionMethod;case"replacementPage":return"replace"===n.protectionMethod&&"page"===n.replacementType;case"showExcerpts":case"showInSearch":case"overrideMessage":return"replace"===n.protectionMethod&&"message"===n.replacementType;case"customMessage":return"replace"===n.protectionMethod&&"message"===n.replacementType&&n.overrideMessage;case"archiveReplacementPage":return"replace_archive_page"===n.archiveHandling;case"archiveRedirectType":return"redirect"===n.archiveHandling;case"archiveRedirectUrl":return"redirect"===n.archiveHandling&&"custom"===n.archiveRedirectType;default:return e}}));const et=({settings:e,updateSettings:t})=>{const[n,o]=(0,r.useState)(!1);return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(we.CheckboxControl,{label:(0,fe.__)("Show in search results?","content-control"),help:(0,r.createElement)("div",null,(0,r.createElement)("p",null,(0,fe.__)("When enabled, restricted items will appear in search results but with a restricted access message. Disable to completely hide from search.","content-control")),e.showInSearch&&(0,r.createElement)("div",{className:"cc-warning-icon",style:{marginTop:"8px",color:"#757575",display:"inline-flex",alignItems:"center",gap:"4px",cursor:"help"},onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1)},(0,r.createElement)("span",null,"⚠️"," ",(0,fe.__)("Warning: Enabling this option may expose restricted content","content-control")),n&&(0,r.createElement)(we.Popover,{position:"bottom center",focusOnMount:!1,noArrow:!1,animate:!1},(0,r.createElement)("div",{className:"cc-warning-popover",style:{padding:"16px",maxWidth:"450px",minWidth:"450px"}},(0,r.createElement)("h4",{style:{marginTop:0}},"Security Consideration"),(0,r.createElement)("p",null,"Only enable this if you fully understand the risks or have properly mitigated them."),(0,r.createElement)("p",null,"WordPress search can reveal parts of your protected content through simple trial and error searching."),(0,r.createElement)("p",null,'For example: If your protected post contains "Annual Revenue: $500,000", someone could discover this by searching for "An", then "Ann", then "Annu", and so on. Each successful search confirms more of the content, even if they cannot access the full post.'),(0,r.createElement)("p",null,"With simple scripts a bot can discover restricted content in seconds if there is no brute force protection in place such as rate limiting."),(0,r.createElement)("p",null,"The issue can be mitigated, but not fully eliminated with rate limiting and/or blocking IPs with an active firewall."),(0,r.createElement)("p",{style:{margin:"0"}},"Learn more in"," ",(0,r.createElement)("a",{href:"https://contentcontrolplugin.com/docs/security/preventing-bots-from-discovering-restricted-content/?utm_source=plugin&utm_medium=settings-page&utm_campaign=show-in-search-warning",target:"_blank",rel:"noreferrer"},"our documentation")))))),checked:e.showInSearch,onChange:e=>t({showInSearch:e})}))};var tt=e=>{const{getTabFields:t}=He();return(0,r.createElement)("div",{className:"protection-tab"},(0,r.createElement)("h3",null,(0,fe.__)("Protecting Content","content-control")),(0,r.createElement)("p",null,(0,fe.__)("When a user does not have access, the following options help control their experience.","content-control")),t("protection").map((e=>(0,r.createElement)("div",{key:e.id},e.component))))};const nt=()=>{};var ot=({onSave:e=nt,onClose:t=nt})=>{const{tab:n,setTab:o,clearEditorParams:l}=Ie(),[a,c]=(0,_e.useState)(!1),[s,i]=(0,_e.useState)(null),{editorId:u,isEditorActive:d,values:m,isSaving:p,dispatchStatus:g,dispatchErrors:h}=(0,he.useSelect)((e=>({editorId:e(Ce.restrictionsStore).getEditorId(),values:e(Ce.restrictionsStore).getEditorValues(),isEditorActive:e(Ce.restrictionsStore).isEditorActive(),isSaving:e(Ce.restrictionsStore).isDispatching(["createRestriction","updateRestriction"]),dispatchStatus:{create:e(Ce.restrictionsStore).getDispatchStatus("createRestriction"),update:e(Ce.restrictionsStore).getDispatchStatus("updateRestriction")},dispatchErrors:{create:e(Ce.restrictionsStore).getDispatchError("createRestriction"),update:e(Ce.restrictionsStore).getDispatchError("updateRestriction")}})),[]),{updateEditorValues:_,createRestriction:v,updateRestriction:E,clearEditorData:f}=(0,he.useDispatch)(Ce.restrictionsStore);if((0,_e.useEffect)((()=>l),[]),(0,_e.useEffect)((()=>{var e;if(!a)return;if(Ce.Status.Success===g.create||Ce.Status.Success===g.update)return void b();const t=null!==(e=h.create)&&void 0!==e?e:h.update;void 0!==t&&i(t)}),[g,h]),!d)return null;if(!u)return(0,r.createElement)(r.Fragment,null,(0,fe.__)("Editor requires a valid id","content-control"));if(!m)return(0,r.createElement)(r.Fragment,null,(0,fe.__)("Editor requires a valid restriction.","content-control"));const b=()=>{f(),t()},y={values:m,updateValues:_,updateSettings:e=>{_({...m,settings:{...m?.settings,...e}})},onSave:e,onClose:t},w=(0,be.applyFilters)("contentControl.restrictionEditor.tabs",[{name:"general",title:(0,fe.__)("General","content-control"),comp:()=>(0,r.createElement)(Ze,{...y})},{name:"protection",title:(0,fe.__)("Protection","content-control"),comp:()=>(0,r.createElement)(tt,{...y})},{name:"content",title:(0,fe.__)("Content","content-control"),comp:()=>(0,r.createElement)(Ue,{...y})}]);if("object"==typeof s&&s?.tabName?.length){const e=w.find((e=>e.name===s.tabName));e&&(w[w.indexOf(e)].className=w[w.indexOf(e)].className?w[w.indexOf(e)].className+" error":"error")}const C=(0,fe.sprintf)(
     3(0,fe.__)("If you need more control over your REST API, try %1$sContent Control Pro%2$s:"),'<a href="https://contentcontrolplugin.com/features/rest-api/" target="_blank">',"</a>")}}))},...null!==(o=e.protection)&&void 0!==o?o:[]]}})),(0,be.addFilter)("contentControl.restrictionEditor.fieldIsVisible","content-control",((e,t,n)=>{switch(t){case"redirectType":return"redirect"===n.protectionMethod;case"redirectUrl":return"redirect"===n.protectionMethod&&"custom"===n.redirectType;case"replacementType":return"replace"===n.protectionMethod;case"replacementPage":return"replace"===n.protectionMethod&&"page"===n.replacementType;case"showExcerpts":case"showInSearch":case"overrideMessage":return"replace"===n.protectionMethod&&"message"===n.replacementType;case"customMessage":return"replace"===n.protectionMethod&&"message"===n.replacementType&&n.overrideMessage;case"archiveReplacementPage":return"replace_archive_page"===n.archiveHandling;case"archiveRedirectType":return"redirect"===n.archiveHandling;case"archiveRedirectUrl":return"redirect"===n.archiveHandling&&"custom"===n.archiveRedirectType;default:return e}}));const et=({settings:e,updateSettings:t})=>{const[n,o]=(0,r.useState)(!1);return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(we.CheckboxControl,{label:(0,fe.__)("Show in search results?","content-control"),help:(0,fe.__)("When enabled, restricted items will appear in search results but with a restricted access message. Disable to completely hide from search.","content-control"),checked:e.showInSearch,onChange:e=>t({showInSearch:e})}),e.showInSearch&&(0,r.createElement)("div",{className:"cc-warning-icon",style:{marginTop:"-20px",marginBottom:"32px",color:"#757575",cursor:"help"},onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1)},(0,r.createElement)("span",null,"⚠️"," ",(0,fe.__)("Warning: Enabling this option may expose restricted content","content-control")),n&&(0,r.createElement)(we.Popover,{offset:10,position:"bottom right",focusOnMount:!1,noArrow:!1,animate:!1},(0,r.createElement)("div",{className:"cc-warning-popover",style:{padding:"16px",maxWidth:"450px",minWidth:"450px"}},(0,r.createElement)("h4",{style:{marginTop:0}},"Security Consideration"),(0,r.createElement)("p",null,"Only enable this if you fully understand the risks or have properly mitigated them."),(0,r.createElement)("p",null,"WordPress search can reveal parts of your protected content through simple trial and error searching."),(0,r.createElement)("p",null,'For example: If your protected post contains "Annual Revenue: $500,000", someone could discover this by searching for "An", then "Ann", then "Annu", and so on. Each successful search confirms more of the content, even if they cannot access the full post.'),(0,r.createElement)("p",null,"With simple scripts a bot can discover restricted content in seconds if there is no brute force protection in place such as rate limiting."),(0,r.createElement)("p",null,"The issue can be mitigated, but not fully eliminated with rate limiting and/or blocking IPs with an active firewall."),(0,r.createElement)("p",{style:{margin:"0"}},"Learn more in"," ",(0,r.createElement)("a",{href:"https://contentcontrolplugin.com/docs/security/preventing-bots-from-discovering-restricted-content/?utm_source=plugin&utm_medium=settings-page&utm_campaign=show-in-search-warning",target:"_blank",rel:"noreferrer"},"our documentation"))))))};var tt=e=>{const{getTabFields:t}=He();return(0,r.createElement)("div",{className:"protection-tab"},(0,r.createElement)("h3",null,(0,fe.__)("Protecting Content","content-control")),(0,r.createElement)("p",null,(0,fe.__)("When a user does not have access, the following options help control their experience.","content-control")),t("protection").map((e=>(0,r.createElement)("div",{key:e.id},e.component))))};const nt=()=>{};var ot=({onSave:e=nt,onClose:t=nt})=>{const{tab:n,setTab:o,clearEditorParams:l}=Ie(),[a,c]=(0,_e.useState)(!1),[s,i]=(0,_e.useState)(null),{editorId:u,isEditorActive:d,values:m,isSaving:p,dispatchStatus:g,dispatchErrors:h}=(0,he.useSelect)((e=>({editorId:e(Ce.restrictionsStore).getEditorId(),values:e(Ce.restrictionsStore).getEditorValues(),isEditorActive:e(Ce.restrictionsStore).isEditorActive(),isSaving:e(Ce.restrictionsStore).isDispatching(["createRestriction","updateRestriction"]),dispatchStatus:{create:e(Ce.restrictionsStore).getDispatchStatus("createRestriction"),update:e(Ce.restrictionsStore).getDispatchStatus("updateRestriction")},dispatchErrors:{create:e(Ce.restrictionsStore).getDispatchError("createRestriction"),update:e(Ce.restrictionsStore).getDispatchError("updateRestriction")}})),[]),{updateEditorValues:_,createRestriction:v,updateRestriction:E,clearEditorData:f}=(0,he.useDispatch)(Ce.restrictionsStore);if((0,_e.useEffect)((()=>l),[]),(0,_e.useEffect)((()=>{var e;if(!a)return;if(Ce.Status.Success===g.create||Ce.Status.Success===g.update)return void b();const t=null!==(e=h.create)&&void 0!==e?e:h.update;void 0!==t&&i(t)}),[g,h]),!d)return null;if(!u)return(0,r.createElement)(r.Fragment,null,(0,fe.__)("Editor requires a valid id","content-control"));if(!m)return(0,r.createElement)(r.Fragment,null,(0,fe.__)("Editor requires a valid restriction.","content-control"));const b=()=>{f(),t()},y={values:m,updateValues:_,updateSettings:e=>{_({...m,settings:{...m?.settings,...e}})},onSave:e,onClose:t},w=(0,be.applyFilters)("contentControl.restrictionEditor.tabs",[{name:"general",title:(0,fe.__)("General","content-control"),comp:()=>(0,r.createElement)(Ze,{...y})},{name:"protection",title:(0,fe.__)("Protection","content-control"),comp:()=>(0,r.createElement)(tt,{...y})},{name:"content",title:(0,fe.__)("Content","content-control"),comp:()=>(0,r.createElement)(Ue,{...y})}],y);if("object"==typeof s&&s?.tabName?.length){const e=w.find((e=>e.name===s.tabName));e&&(w[w.indexOf(e)].className=w[w.indexOf(e)].className?w[w.indexOf(e)].className+" error":"error")}const C=(0,fe.sprintf)(
    44// translators: 1. Id of set to edit.
    55(0,fe.__)("Restriction Editor%s","content-control"),"new"===u?": "+(0,fe.__)("New Restriction","content-control"):`: #${m.id} - ${m.title}`);return(0,r.createElement)(we.Modal,{title:C,className:"restriction-editor",onRequestClose:()=>b(),shouldCloseOnClickOutside:!1},(0,r.createElement)("div",{className:Ee()(["restriction-enabled-toggle","publish"===m.status?"enabled":"disabled"])},(0,r.createElement)(we.ToggleControl,{label:"publish"===m.status?(0,fe.__)("Enabled","content-control"):(0,fe.__)("Disabled","content-control"),checked:"publish"===m.status,onChange:e=>_({...m,status:e?"publish":"draft"})})),s&&(0,r.createElement)(we.Notice,{status:"error",className:"restriction-editor-error",onDismiss:()=>{i(null)}},"string"==typeof s?s:s.message),(0,r.createElement)(we.TabPanel,{orientation:"vertical",initialTabName:null!=n?n:"general",onSelect:o,tabs:w,className:"editor-tabs"},(({title:e,comp:t})=>void 0===t?e:t())),(0,r.createElement)("div",{className:"modal-actions"},(0,r.createElement)(we.Button,{text:(0,fe.__)("Cancel","content-control"),variant:"tertiary",isDestructive:!0,onClick:()=>b(),disabled:p,className:"cancel-button"}),(0,r.createElement)(we.Button,{variant:"primary",disabled:p,onClick:()=>{const t=(0,Ce.validateRestriction)(m);!0===t?function(){if(!u||!m)return;const t="new"!==u&&u>0,n={...m,settings:{...m.settings,conditions:(0,Ae.removeEmptyItems)(m.settings.conditions)}};t?E(n):v(n),c(!0),i(null),e(n)}():"object"==typeof t&&i(t)}},p&&(0,r.createElement)(we.Spinner,null),"new"===u?(0,fe.__)("Add Restriction","content-control"):(0,fe.__)("Save Restriction","content-control")),(0,r.createElement)(we.Button,{text:(0,fe.__)("Documentation","content-control"),href:"https://contentcontrolplugin.com/docs/?utm_campaign=documentation&utm_source=restriction-editor&utm_medium=plugin-ui&utm_content=footer-documentation-link",target:"_blank",icon:De,iconSize:20})))},rt=()=>{const{setEditorId:e}=Ie(),{restrictions:t,isLoading:n}=(0,he.useSelect)((e=>{const t=e(Ce.restrictionsStore);return{restrictions:t.getRestrictions(),isLoading:t.isResolving("getRestrictions")}}),[]),o=t.length;return(0,r.createElement)("header",{className:"cc-settings-view__header"},(0,r.createElement)("h1",{className:"view-title wp-heading-inline"},(0,fe.__)("Restrictions","content-control")),(0,r.createElement)("span",{className:"item-count"},n?(0,r.createElement)(we.Spinner,null):(0,fe.sprintf)(/* translators: 1. Number of items */
  • content-control/tags/2.6.2/readme.txt

    r3256177 r3278699  
    77Requires at least: 6.2
    88Tested up to: 6.7.2
    9 Stable tag: 2.6.1
     9Stable tag: 2.6.2
    1010Requires PHP: 7.4
    1111License: GPLv3 (or later)
     
    111111== Changelog ==
    112112
     113= v2.6.2 - 04/22/2025 =
     114
     115* Security: Escaped `[content_control]` `message` attribute.
     116* Fix: Misc JS bugs in admin.
     117* Developer: Added new `content_control/pre_restrict_content` & `content_control/pre_restrict_excerpt` filters to allow overloading/short curcuiting the default restriction application.
     118
    113119= v2.6.1 - 03/15/2025 =
    114120
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Container.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Exception/ExpectedInvokableException.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Exception/FrozenServiceException.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Exception/InvalidServiceIdentifierException.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Exception/UnknownIdentifierException.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Psr11/Container.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Psr11/ServiceLocator.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/ServiceIterator.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/ServiceProviderInterface.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Tests/Fixtures/Invokable.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Tests/Fixtures/NonInvokable.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Tests/Fixtures/PimpleServiceProvider.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Tests/Fixtures/Service.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Tests/PimpleServiceProviderInterfaceTest.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Tests/PimpleTest.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Tests/Psr11/ContainerTest.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Tests/Psr11/ServiceLocatorTest.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/pimple/pimple/src/Pimple/Tests/ServiceIteratorTest.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/tags/2.6.2/vendor-prefixed/psr/container/src/ContainerExceptionInterface.php

    r3256177 r3278699  
    33 * @license MIT
    44 *
    5  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     5 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    66 */
    77
  • content-control/tags/2.6.2/vendor-prefixed/psr/container/src/ContainerInterface.php

    r3256177 r3278699  
    33 * @license MIT
    44 *
    5  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     5 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    66 */
    77
  • content-control/tags/2.6.2/vendor-prefixed/psr/container/src/NotFoundExceptionInterface.php

    r3256177 r3278699  
    33 * @license MIT
    44 *
    5  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     5 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    66 */
    77
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Admin.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Ajax.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Client.php

    r3256177 r3278699  
    1919 *
    2020 * @license GPL-2.0-or-later
    21  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     21 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2222 */
    2323
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Config.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Cron.php

    r3256177 r3278699  
    66 *
    77 * @license GPL-2.0-or-later
    8  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     8 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    99 */
    1010
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Encryption.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Endpoint.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Envelope.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Form.php

    r3256177 r3278699  
    33 * @license GPL-2.0-or-later
    44 *
    5  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     5 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    66 */
    77/**
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Logger.php

    r3256177 r3278699  
    1010 *
    1111 * @license GPL-2.0-or-later
    12  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     12 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1313 */
    1414
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Logging.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Remote.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/SecurityChecks.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/SiteAccess.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/SupportRole.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/SupportUser.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor-prefixed/trustedlogin/client/src/Utils.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/tags/2.6.2/vendor/autoload.php

    r3253935 r3278699  
    1515        }
    1616    }
    17     trigger_error(
    18         $err,
    19         E_USER_ERROR
    20     );
     17    throw new RuntimeException($err);
    2118}
    2219
    2320require_once __DIR__ . '/composer/autoload_real.php';
    2421
    25 return ComposerAutoloaderInit3caeeb2096468f7f7a6bae712d979445::getLoader();
     22return ComposerAutoloaderInit2590a902ca8d302f546143f2cb997562::getLoader();
  • content-control/tags/2.6.2/vendor/composer/InstalledVersions.php

    r3253935 r3278699  
    2727class InstalledVersions
    2828{
     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
    2935    /**
    3036     * @var mixed[]|null
     
    324330
    325331    /**
     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;
     341    }
     342
     343    /**
    326344     * @return array[]
    327345     * @psalm-return list<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[]}>}>
     
    337355
    338356        if (self::$canGetVendors) {
    339             $selfDir = strtr(__DIR__, '\\', '/');
     357            $selfDir = self::getSelfDir();
    340358            foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
    341359                $vendorDir = strtr($vendorDir, '\\', '/');
  • content-control/tags/2.6.2/vendor/composer/autoload_real.php

    r3253935 r3278699  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit3caeeb2096468f7f7a6bae712d979445
     5class ComposerAutoloaderInit2590a902ca8d302f546143f2cb997562
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit3caeeb2096468f7f7a6bae712d979445', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit2590a902ca8d302f546143f2cb997562', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit3caeeb2096468f7f7a6bae712d979445', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit2590a902ca8d302f546143f2cb997562', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInit3caeeb2096468f7f7a6bae712d979445::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit2590a902ca8d302f546143f2cb997562::getInitializer($loader));
    3333
    3434        $loader->register(true);
  • content-control/tags/2.6.2/vendor/composer/autoload_static.php

    r3253935 r3278699  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit3caeeb2096468f7f7a6bae712d979445
     7class ComposerStaticInit2590a902ca8d302f546143f2cb997562
    88{
    99    public static $prefixLengthsPsr4 = array (
     
    239239    {
    240240        return \Closure::bind(function () use ($loader) {
    241             $loader->prefixLengthsPsr4 = ComposerStaticInit3caeeb2096468f7f7a6bae712d979445::$prefixLengthsPsr4;
    242             $loader->prefixDirsPsr4 = ComposerStaticInit3caeeb2096468f7f7a6bae712d979445::$prefixDirsPsr4;
    243             $loader->classMap = ComposerStaticInit3caeeb2096468f7f7a6bae712d979445::$classMap;
     241            $loader->prefixLengthsPsr4 = ComposerStaticInit2590a902ca8d302f546143f2cb997562::$prefixLengthsPsr4;
     242            $loader->prefixDirsPsr4 = ComposerStaticInit2590a902ca8d302f546143f2cb997562::$prefixDirsPsr4;
     243            $loader->classMap = ComposerStaticInit2590a902ca8d302f546143f2cb997562::$classMap;
    244244
    245245        }, null, ClassLoader::class);
  • content-control/tags/2.6.2/vendor/composer/installed.php

    r3256177 r3278699  
    22    'root' => array(
    33        'name' => 'code-atlantic/content-control',
    4         'pretty_version' => '2.6.1',
    5         'version' => '2.6.1.0',
     4        'pretty_version' => '2.6.2',
     5        'version' => '2.6.2.0',
    66        'reference' => null,
    77        'type' => 'wordpress-plugin',
     
    1212    'versions' => array(
    1313        'code-atlantic/content-control' => array(
    14             'pretty_version' => '2.6.1',
    15             'version' => '2.6.1.0',
     14            'pretty_version' => '2.6.2',
     15            'version' => '2.6.2.0',
    1616            'reference' => null,
    1717            'type' => 'wordpress-plugin',
  • content-control/trunk/classes/Controllers/Frontend/Restrictions/PostContent.php

    r3137162 r3278699  
    9999        }
    100100
     101        /**
     102         * Prevent the default restriction message from being shown by returning a custom
     103         * message or content.
     104         *
     105         * @param null|string $pre_restrict_content The content to display.
     106         * @param string $content     The content.
     107         * @param \ContentControl\Models\Restriction $restriction The restriction.
     108         *
     109         * @return string
     110         */
     111        $pre_restrict_content = apply_filters( 'content_control/pre_restrict_content', null, $content, $restriction );
     112
     113        if ( null !== $pre_restrict_content ) {
     114            return $pre_restrict_content;
     115        }
     116
    101117        $message = \ContentControl\get_default_denial_message();
    102118
     
    119135         * Filter the message to display when a post is restricted.
    120136         *
    121          * @param string $message     Message to display.
    122          * @param object $restriction Restriction object.
     137         * @param string                             $message     Message to display.
     138         * @param \ContentControl\Models\Restriction $restriction The restriction.
    123139         *
    124140         * @return string
     
    156172        }
    157173
    158         $restriction = get_applicable_restriction();
     174        $restriction = get_applicable_restriction( $post->ID );
    159175
    160176        if ( false === $restriction ) {
    161177            return $post_excerpt;
     178        }
     179
     180        /**
     181         * Filter to bypass the default restriction message for excerpts.
     182         *
     183         * @since 2.0.0
     184         *
     185         * @param null|string                        $pre_excerpt      Return a non-null value to bypass.
     186         * @param string                             $post_excerpt     The original excerpt.
     187         * @param \ContentControl\Models\Restriction $restriction    The restriction object.
     188         */
     189        $pre_excerpt = apply_filters( 'content_control/pre_restrict_excerpt', null, $post_excerpt, $restriction );
     190
     191        if ( null !== $pre_excerpt ) {
     192            return $pre_excerpt;
    162193        }
    163194
  • content-control/trunk/classes/Controllers/Shortcodes.php

    r3007200 r3278699  
    9494        $classes = implode( ' ', $classes );
    9595
    96         return sprintf( $container, esc_attr( $classes ), do_shortcode( $content ), do_shortcode( $atts['message'] ) );
     96        return sprintf(
     97            $container,
     98            esc_attr( $classes ),
     99            // Sanitize the content output, allowing safe HTML and processed shortcodes.
     100            wp_kses_post( do_shortcode( $content ) ),
     101            // Sanitize the message output, allowing safe HTML and processed shortcodes.
     102            wp_kses_post( do_shortcode( $atts['message'] ) )
     103        );
    97104    }
    98105
  • content-control/trunk/content-control.php

    r3256177 r3278699  
    44 * Plugin URI: https://contentcontrolplugin.com/?utm_campaign=plugin-info&utm_source=php-file-header&utm_medium=plugin-ui&utm_content=plugin-uri
    55 * Description: Restrict content to logged in/out users or specific user roles. Restrict access to certain parts of a page/post. Control the visibility of widgets.
    6  * Version: 2.6.1
     6 * Version: 2.6.2
    77 * Author: Code Atlantic
    88 * Author URI: https://code-atlantic.com/?utm_campaign=plugin-info&utm_source=php-file-header&utm_medium=plugin-ui&utm_content=author-uri
     
    3131        'name'          => 'Content Control',
    3232        'slug'          => 'content-control',
    33         'version'       => '2.6.1',
     33        'version'       => '2.6.2',
    3434        'option_prefix' => 'content_control',
    3535        // Maybe remove this and simply prefix `name` with `'Popup Maker'`.
  • content-control/trunk/dist/settings-page.asset.php

    r3253935 r3278699  
    1 <?php return array('dependencies' => array('content-control-components', 'content-control-core-data', 'content-control-data', 'content-control-fields', 'content-control-icons', 'content-control-rule-engine', 'content-control-utils', 'react', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => 'fe022002096ac8c37f72');
     1<?php return array('dependencies' => array('content-control-components', 'content-control-core-data', 'content-control-data', 'content-control-fields', 'content-control-icons', 'content-control-rule-engine', 'content-control-utils', 'react', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => 'dd59fa90b2f40090e9c2');
  • content-control/trunk/dist/settings-page.js

    r3253935 r3278699  
    11!function(){var e={184:function(e,t){var n;!function(){"use strict";var o={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var l=typeof n;if("string"===l||"number"===l)e.push(n);else if(Array.isArray(n)){if(n.length){var a=r.apply(null,n);a&&e.push(a)}}else if("object"===l){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){e.push(n.toString());continue}for(var c in n)o.call(n,c)&&n[c]&&e.push(c)}}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var l=t[o]={exports:{}};return e[o](l,l.exports,n),l.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};!function(){"use strict";n.r(o),n.d(o,{init:function(){return gn}});var e,t,r=window.React;function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},l.apply(this,arguments)}(t=e||(e={})).Pop="POP",t.Push="PUSH",t.Replace="REPLACE";const a="popstate";function c(e,t){if(!1===e||null==e)throw new Error(t)}function s(e,t){return{usr:e.state,key:e.key,idx:t}}function i(e,t,n,o){return void 0===n&&(n=null),l({pathname:"string"==typeof e?e:e.pathname,search:"",hash:""},"string"==typeof t?d(t):t,{state:n,key:t&&t.key||o||Math.random().toString(36).substr(2,8)})}function u(e){let{pathname:t="/",search:n="",hash:o=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),o&&"#"!==o&&(t+="#"===o.charAt(0)?o:"#"+o),t}function d(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let o=e.indexOf("?");o>=0&&(t.search=e.substr(o),e=e.substr(0,o)),e&&(t.pathname=e)}return t}var m;function p(e,t,n,o){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(o)+"].  Please separate it out to the `to."+n+'` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.'}!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(m||(m={})),new Set(["lazy","caseSensitive","path","id","index","children"]);const g=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",h=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";Error;const _=["post","put","patch","delete"],v=(new Set(_),["get",..._]);new Set(v),new Set([301,302,303,307,308]),new Set([307,308]),"undefined"!=typeof window&&void 0!==window.document&&window.document.createElement,Symbol("deferred");const E="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},{useState:f,useEffect:b,useLayoutEffect:y,useDebugValue:w}=r;function C(e){const t=e.getSnapshot,n=e.value;try{const e=t();return!E(n,e)}catch(e){return!0}}"undefined"==typeof window||void 0===window.document||window.document.createElement;"useSyncExternalStore"in r&&r.useSyncExternalStore;const S=r.createContext(null),k=r.createContext(null),x=r.createContext(null),N=r.createContext({outlet:null,matches:[]});function P(){return null!=r.useContext(x)}function R(){return P()||c(!1),r.useContext(x).location}function T(){P()||c(!1);let{basename:e,navigator:t}=r.useContext(k),{matches:n}=r.useContext(N),{pathname:o}=R(),a=JSON.stringify(function(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}(n).map((e=>e.pathnameBase))),s=r.useRef(!1);r.useEffect((()=>{s.current=!0}));let i=r.useCallback((function(n,r){if(void 0===r&&(r={}),!s.current)return;if("number"==typeof n)return void t.go(n);let i=function(e,t,n,o){let r;void 0===o&&(o=!1),"string"==typeof e?r=d(e):(r=l({},e),c(!r.pathname||!r.pathname.includes("?"),p("?","pathname","search",r)),c(!r.pathname||!r.pathname.includes("#"),p("#","pathname","hash",r)),c(!r.search||!r.search.includes("#"),p("#","search","hash",r)));let a,s=""===e||""===r.pathname,i=s?"/":r.pathname;if(o||null==i)a=n;else{let e=t.length-1;if(i.startsWith("..")){let t=i.split("/");for(;".."===t[0];)t.shift(),e-=1;r.pathname=t.join("/")}a=e>=0?t[e]:"/"}let u=function(e,t){void 0===t&&(t="/");let{pathname:n,search:o="",hash:r=""}="string"==typeof e?d(e):e,l=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:l,search:g(o),hash:h(r)}}(r,a),m=i&&"/"!==i&&i.endsWith("/"),_=(s||"."===i)&&n.endsWith("/");return u.pathname.endsWith("/")||!m&&!_||(u.pathname+="/"),u}(n,JSON.parse(a),o,"path"===r.relative);"/"!==e&&(i.pathname="/"===i.pathname?e:[e,i.pathname].join("/").replace(/\/\/+/g,"/")),(r.replace?t.replace:t.push)(i,r.state,r)}),[e,t,a,o]);return i}var M,L,B,F,D;function A(t){let{basename:n="/",children:o=null,location:l,navigationType:a=e.Pop,navigator:s,static:i=!1}=t;P()&&c(!1);let u=n.replace(/^\/*/,"/"),m=r.useMemo((()=>({basename:u,navigator:s,static:i})),[u,s,i]);"string"==typeof l&&(l=d(l));let{pathname:p="/",search:g="",hash:h="",state:_=null,key:v="default"}=l,E=r.useMemo((()=>{let e=function(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,o=e.charAt(n);return o&&"/"!==o?null:e.slice(n)||"/"}(p,u);return null==e?null:{location:{pathname:e,search:g,hash:h,state:_,key:v},navigationType:a}}),[u,p,g,h,_,v,a]);return null==E?null:r.createElement(k.Provider,{value:m},r.createElement(x.Provider,{children:o,value:E}))}function O(t){let{basename:n,children:o,window:d}=t,m=r.useRef();null==m.current&&(m.current=function(t){return void 0===t&&(t={}),function(t,n,o,r){void 0===r&&(r={});let{window:d=document.defaultView,v5Compat:m=!1}=r,p=d.history,g=e.Pop,h=null,_=v();function v(){return(p.state||{idx:null}).idx}function E(){g=e.Pop;let t=v(),n=null==t?null:t-_;_=t,h&&h({action:g,location:b.location,delta:n})}function f(e){let t="null"!==d.location.origin?d.location.origin:d.location.href,n="string"==typeof e?e:u(e);return c(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==_&&(_=0,p.replaceState(l({},p.state,{idx:_}),""));let b={get action(){return g},get location(){return t(d,p)},listen(e){if(h)throw new Error("A history only accepts one active listener");return d.addEventListener(a,E),h=e,()=>{d.removeEventListener(a,E),h=null}},createHref(e){return n(d,e)},createURL:f,encodeLocation(e){let t=f(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(t,n){g=e.Push;let r=i(b.location,t,n);o&&o(r,t),_=v()+1;let l=s(r,_),a=b.createHref(r);try{p.pushState(l,"",a)}catch(e){d.location.assign(a)}m&&h&&h({action:g,location:b.location,delta:1})},replace:function(t,n){g=e.Replace;let r=i(b.location,t,n);o&&o(r,t),_=v();let l=s(r,_),a=b.createHref(r);p.replaceState(l,"",a),m&&h&&h({action:g,location:b.location,delta:0})},go(e){return p.go(e)}};return b}((function(e,t){let{pathname:n,search:o,hash:r}=e.location;return i("",{pathname:n,search:o,hash:r},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){return"string"==typeof t?t:u(t)}),null,t)}({window:d,v5Compat:!0}));let p=m.current,[g,h]=r.useState({action:p.action,location:p.location});return r.useLayoutEffect((()=>p.listen(h)),[p]),r.createElement(A,{basename:n,children:o,location:g.location,navigationType:g.action,navigator:p})}function I(e,t,n=!0){return{...e,default:t,decode:(...o)=>{const r=e.decode(...o);return void 0===r||n&&null===r?t:r}}}function U(e,t){if(null==e)return e;if(0===e.length&&(!t||t&&""!==e))return null;const n=e instanceof Array?e[0]:e;return null==n||t||""!==n?n:null}r.Component,function(e){e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator"}(M||(M={})),function(e){e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator"}(L||(L={})),function(e){e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error"}(B||(B={})),new Promise((()=>{})),r.Component,"undefined"!=typeof window&&void 0!==window.document&&window.document.createElement,function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmitImpl="useSubmitImpl",e.UseFetcher="useFetcher"}(F||(F={})),function(e){e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(D||(D={}));const V={encode:function(e){return null==e?e:String(e)},decode:function(e){const t=U(e,!0);return null==t?t:String(t)}},z={encode:function(e){return null==e?e:String(e)},decode:function(e){const t=U(e);return null==t?t:""===t?null:+t}},j={encode:function(e){return null==e?e:e?"1":"0"},decode:function(e){const t=U(e);return null==t?t:"1"===t||"0"!==t&&null}};'{}[],":'.split("").map((e=>[e,encodeURIComponent(e)]));const H=new class{constructor(){this.paramsMap=new Map,this.registeredParams=new Map}set(e,t,n,o){this.paramsMap.set(e,{stringified:t,decoded:n,decode:o})}has(e,t,n){if(!this.paramsMap.has(e))return!1;const o=this.paramsMap.get(e);return!!o&&o.stringified===t&&(null==n||o.decode===n)}get(e){var t;if(this.paramsMap.has(e))return null==(t=this.paramsMap.get(e))?void 0:t.decoded}registerParams(e){for(const t of e){const e=this.registeredParams.get(t)||0;this.registeredParams.set(t,e+1)}}unregisterParams(e){for(const t of e){const e=(this.registeredParams.get(t)||0)-1;e<=0?(this.registeredParams.delete(t),this.paramsMap.has(t)&&this.paramsMap.delete(t)):this.registeredParams.set(t,e)}}clear(){this.paramsMap.clear(),this.registeredParams.clear()}};function $(e,t,n,o){var r;if(!n||!t.length)return e;let l={...e},a=!1;for(const e of t)Object.prototype.hasOwnProperty.call(l,e)||(l[e]=null!=(r=n[e])?r:o,a=!0);return a?l:e}const W=Object.prototype.hasOwnProperty;function G(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function Q(e,t,n){var o,r;if(G(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const l=Object.keys(e),a=Object.keys(t);if(l.length!==a.length)return!1;for(let a=0;a<l.length;a++){const c=null!=(r=null==(o=null==n?void 0:n[l[a]])?void 0:o.equals)?r:G;if(!W.call(t,l[a])||!c(e[l[a]],t[l[a]]))return!1}return!0}function q(e,t,n){const o={},r=Object.keys(t);for(const l of r){const r=t[l],a=e[l];let c;if(n.has(l,a,r.decode))c=n.get(l);else{if(c=r.decode(a),r.equals&&n.has(l,a)){const e=n.get(l);r.equals(c,e)&&(c=e)}void 0!==c&&n.set(l,a,c,r.decode)}void 0===c&&void 0!==r.default&&(c=r.default),o[l]=c}return o}function Y(){let e;return function(t,n,o){const r=q(t,n,o);return null!=e&&Q(e,r)?e:(e=r,r)}}let K,J,Z,X={};const ee=(e,t,n)=>{if(K===t&&Z===e&&J===n)return X;K=t,Z=e;const o=e(null!=t?t:"");J=n;const r=function(e){if(e)return Object.fromEntries(e.split("\n").map((e=>e.split("\0"))))}(n);for(let[e,t]of Object.entries(o)){(null==r?void 0:r[e])&&(delete o[e],e=r[e],o[e]=t);const n=X[e];Q(t,n)&&(o[e]=n)}return X=o,o};function te(e,t){null==t&&(t={});const n={...e,...t};return t.params&&e.params&&(n.params={...e.params,...t.params}),n}const ne={adapter:{},options:{searchStringToObject:function(e){const t=new URLSearchParams(e),n={};for(let[e,o]of t)Object.prototype.hasOwnProperty.call(n,e)?Array.isArray(n[e])?n[e].push(o):n[e]=[n[e],o]:n[e]=o;return n},objectToSearchString:function(e){const t=new URLSearchParams,n=Object.entries(e);for(const[e,o]of n)if(null!=o)if(Array.isArray(o))for(const n of o)t.append(e,null!=n?n:"");else t.append(e,o);return t.toString()},updateType:"pushIn",includeKnownParams:void 0,includeAllParams:!1,removeDefaultsFromUrl:!1,enableBatching:!1,skipUpdateWhenNoChange:!0}},oe=r.createContext(ne);function re({children:e,adapter:t,options:n}){const{adapter:o,options:l}=r.useContext(oe),a=r.useMemo((()=>({adapter:null!=t?t:o,options:te(l,n)})),[t,n,o,l]);return r.createElement(oe.Provider,{value:a},e)}function le({children:e,adapter:t,options:n}){const o=t;return o?r.createElement(o,null,(t=>r.createElement(re,{adapter:t,options:n},e))):r.createElement(re,{options:n},e)}function ae({changes:e,updateType:t,currentSearchString:n,paramConfigMap:o,options:r}){const{searchStringToObject:l,objectToSearchString:a}=r;let c;null==t&&(t=r.updateType);const s=ee(l,n),i=$(o,Object.keys(e),r.params);let u,d;return u="function"==typeof e?e(q(s,i,H)):e,c=function(e,t){const n={},o=Object.keys(t);for(const r of o){const o=t[r];e[r]?n[r]=e[r].encode(t[r]):n[r]=null==o?o:String(o)}return n}(i,u),r.removeDefaultsFromUrl&&function(e,t){var n;for(const o in e)void 0!==(null==(n=t[o])?void 0:n.default)&&void 0!==e[o]&&t[o].encode(t[o].default)===e[o]&&(e[o]=void 0)}(c,i),c=function(e,t){var n;let o={};for(const r in e)null!=(null==(n=t[r])?void 0:n.urlName)?o[t[r].urlName]=e[r]:o[r]=e[r];return o}(c,i),d=a("push"===t||"replace"===t?c:{...s,...c}),(null==d?void 0:d.length)&&"?"!==d[0]&&(d=`?${d}`),null!=d?d:""}const ce=e=>e(),se=e=>setTimeout((()=>e()),0),ie=[];function ue(e,t){const{adapter:n,options:o}=function(){const e=r.useContext(oe);if(void 0===e||e===ne)throw new Error("useQueryParams must be used within a QueryParamProvider");return e}(),[l]=(0,r.useState)(Y),{paramConfigMap:a,options:c}=function(e,t){let n,o;return void 0===e?(n={},o=t):Array.isArray(e)?(n=Object.fromEntries(e.map((e=>[e,"inherit"]))),o=t):(n=e,o=t),{paramConfigMap:n,options:o}}(e,t),s=(0,r.useMemo)((()=>te(o,c)),[o,c]);let i=function(e,t){var n,o,r;const l={};let a=!1;const c=Object.keys(e);let s=c;if(t.includeKnownParams||!1!==t.includeKnownParams&&0===c.length){const e=Object.keys(null!=(n=t.params)?n:{});s.push(...e)}for(const n of s){const c=e[n];null==c||"object"!=typeof c?(a=!0,l[n]=null!=(r=null==(o=t.params)?void 0:o[n])?r:V):l[n]=c}return a?l:e}(a,s);const u=ee(s.searchStringToObject,n.location.search,function(e){let t;for(const n in e)if(e[n].urlName){const o=`${e[n].urlName}\0${n}`;t?t.push(o):t=[o]}return t?t.join("\n"):void 0}(i));s.includeAllParams&&(i=$(i,Object.keys(u),s.params,V));const d=l(u,i,H),m=Object.keys(i).join("\0");(0,r.useEffect)((()=>{const e=m.split("\0");return H.registerParams(e),()=>{H.unregisterParams(e)}}),[m]);const p={adapter:n,paramConfigMap:i,options:s},g=(0,r.useRef)(p);null==g.current&&(g.current=p),(0,r.useEffect)((()=>{g.current.adapter=n,g.current.paramConfigMap=i,g.current.options=s}),[n,i,s]);const[h]=(0,r.useState)((()=>(e,t)=>{const{adapter:n,paramConfigMap:o,options:r}=g.current;null==t&&(t=r.updateType),function(e,{immediate:t}={}){ie.push(e);let n=t?ce:se;1===ie.length&&n((()=>{const t=ie.slice();ie.length=0;const n=t[0].currentSearchString;let o;for(let e=0;e<t.length;++e)o=ae(0===e?t[e]:{...t[e],currentSearchString:o});e.options.skipUpdateWhenNoChange&&o===n||function({searchString:e,adapter:t,navigate:n,updateType:o}){const r={...t.location,search:e};n&&("string"==typeof o&&o.startsWith("replace")?t.replace(r):t.push(r))}({searchString:null!=o?o:"",adapter:t[t.length-1].adapter,navigate:!0,updateType:t[t.length-1].updateType})}))}({changes:e,updateType:t,currentSearchString:n.location.search,paramConfigMap:o,options:r,adapter:n},{immediate:!r.enableBatching})}));return[d,h]}var de=ue;const me=(e,t,n)=>{const o=(0,r.useMemo)((()=>({[e]:null!=t?t:"inherit"})),[e,t]),[l,a]=de(o,n);return[l[e],(0,r.useCallback)(((t,n)=>a("function"==typeof t?n=>{const o=t(n[e]);return{[e]:o}}:{[e]:t},n)),[e,a])]},pe=({children:e})=>{var t;const{navigator:n}=(0,r.useContext)(k),o=T(),l=null==(t=(0,r.useContext)(S))?void 0:t.router,a=R();return e({replace(e){o(e.search||"?",{replace:!0,state:e.state})},push(e){o(e.search||"?",{replace:!1,state:e.state})},get location(){var e,t,o;return null!=(o=null!=(t=null==(e=null==l?void 0:l.state)?void 0:e.location)?t:null==n?void 0:n.location)?o:a}})};var ge=window.contentControl.data,he=window.wp.data,_e=window.wp.element,ve=n(184),Ee=n.n(ve),fe=window.wp.i18n,be=window.wp.hooks,ye=window.contentControl.icons,we=window.wp.components,Ce=window.contentControl.coreData,Se=window.contentControl.components,ke=window.wp.primitives,xe=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{fillRule:"evenodd",d:"M17.375 15.656A6.47 6.47 0 0018.5 12a6.47 6.47 0 00-.943-3.374l-1.262.813c.448.749.705 1.625.705 2.561a4.977 4.977 0 01-.887 2.844l1.262.813zm-1.951 1.87l-.813-1.261A4.976 4.976 0 0112 17c-.958 0-1.852-.27-2.613-.736l-.812 1.261A6.47 6.47 0 0012 18.5a6.47 6.47 0 003.424-.974zm-8.8-1.87A6.47 6.47 0 015.5 12c0-1.235.344-2.39.943-3.373l1.261.812A4.977 4.977 0 007 12c0 1.056.328 2.036.887 2.843l-1.262.813zm2.581-7.803A4.977 4.977 0 0112 7c1.035 0 1.996.314 2.794.853l.812-1.262A6.47 6.47 0 0012 5.5a6.47 6.47 0 00-3.607 1.092l.812 1.261zM12 20a8 8 0 100-16 8 8 0 000 16zm0-4.5a3.5 3.5 0 100-7 3.5 3.5 0 000 7z",clipRule:"evenodd"})),Ne=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{d:"M7 13.8h6v-1.5H7v1.5zM18 16V4c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2zM5.5 16V4c0-.3.2-.5.5-.5h10c.3 0 .5.2.5.5v12c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5zM7 10.5h8V9H7v1.5zm0-3.3h8V5.8H7v1.4zM20.2 6v13c0 .7-.6 1.2-1.2 1.2H8v1.5h11c1.5 0 2.7-1.2 2.7-2.8V6h-1.5z"})),Pe=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{d:"M15.5 9.5a1 1 0 100-2 1 1 0 000 2zm0 1.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zm-2.25 6v-2a2.75 2.75 0 00-2.75-2.75h-4A2.75 2.75 0 003.75 15v2h1.5v-2c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v2h1.5zm7-2v2h-1.5v-2c0-.69-.56-1.25-1.25-1.25H15v-1.5h2.5A2.75 2.75 0 0120.25 15zM9.5 8.5a1 1 0 11-2 0 1 1 0 012 0zm1.5 0a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z",fillRule:"evenodd"})),Re=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{d:"M11 14.5l1.1 1.1 3-3 .5-.5-.6-.6-3-3-1 1 1.7 1.7H5v1.5h7.7L11 14.5zM16.8 5h-7c-1.1 0-2 .9-2 2v1.5h1.5V7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v10c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-1.5H7.8V17c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z"}));const{pluginUrl:Te,adminUrl:Me,wpVersion:Le}=contentControlSettingsPage,Be={showNotice:!1,ignoreNotice:!1,retryView:""};var Fe=({tabs:e})=>{const[t="restrictions",n]=me("view",V),o=(0,_e.useRef)(null),[l,a]=(0,_e.useState)(Be),{showNotice:c,ignoreNotice:s,retryView:i}=l,u=()=>a(Be),d=(0,he.useSelect)((e=>e(Ce.settingsStore).hasUnsavedChanges()),[]),{saveSettings:m}=(0,he.useDispatch)(Ce.settingsStore);return(0,_e.useEffect)((()=>{const e=e=>{d&&(e.preventDefault(),e.returnValue=!1)};return window.addEventListener("beforeunload",e),()=>{window.removeEventListener("beforeunload",e)}}),[d]),(0,_e.useEffect)((()=>(d||u(),d&&!s||!i||n(i),()=>u())),[d,s]),(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:"cc-settings-page__header"},(0,r.createElement)("h1",{className:"branding wp-heading-inline"},(0,r.createElement)("a",{href:"https://contentcontrolplugin.com?utm_campaign=plugin-info&utm_source=plugin-settings-page&utm_medium=plugin-ui&utm_content=header-logo",target:"_blank",rel:"noopener noreferrer"},(0,r.createElement)("img",{src:`${Te}assets/images/logo.svg`,alt:(0,fe.__)("Content Control","content-control")}),(0,fe.__)("Content Control","content-control"))),(0,r.createElement)(Se.ControlledTabPanel,{className:"tabs",orientation:"horizontal",selected:null!==t?t:void 0,onSelect:o=>{const r=e.find((e=>e.name===o));var c;r?.onClick&&!1===r.onClick()||(c=o,"settings"!==t||!d||s?n(c):a({...l,showNotice:!0,retryView:c}))},tabs:e}),(0,r.createElement)(we.DropdownMenu,{label:(0,fe.__)("Support","content-control"),icon:xe,toggleProps:Le>=6.2?{as:({onClick:e})=>(0,r.createElement)(we.Button,{icon:xe,variant:"link",onClick:e,className:"components-tab-panel__tabs-item support-link"},(0,r.createElement)("span",{ref:o},(0,fe.__)("Support","content-control")))}:void 0,popoverProps:{noArrow:!1,position:"bottom left",className:"cc-settings-page__support-menu",anchor:Le>=6.2?{getBoundingClientRect:()=>o?.current?.getBoundingClientRect()}:void 0}},(({onClose:e})=>(0,r.createElement)(r.Fragment,null,(0,r.createElement)(we.MenuGroup,null,(0,r.createElement)(we.MenuItem,{icon:Ne,href:"https://contentcontrolplugin.com/docs/?utm_campaign=plugin-support&utm_source=plugin-settings-page&utm_medium=plugin-ui&utm_content=view-documentation-link",target:"_blank"},(0,fe.__)("View Documentation","content-control")),(0,r.createElement)(we.MenuItem,{icon:Pe,href:"https://contentcontrolplugin.com/support/?utm_campaign=plugin-support&utm_source=plugin-settings-page&utm_medium=plugin-ui&utm_content=get-support-link",target:"_blank"},(0,fe.__)("Get Support","content-control"))),(0,r.createElement)(we.MenuGroup,null,(0,r.createElement)(we.MenuItem,{icon:Re,onClick:()=>{window.location.href=`${Me}options-general.php?page=grant-content-control-access`,e()}},(0,fe.__)("Grant Support Access","content-control"))))))),c&&(0,r.createElement)(we.Modal,{title:(0,fe.__)("Unsaved changes","content-control"),onRequestClose:()=>u()},(0,r.createElement)("p",null,(0,fe.__)("Changes you made may not be saved.","content-control")),(0,r.createElement)(we.Flex,{justify:"right"},(0,r.createElement)(we.Button,{isDestructive:!0,onClick:()=>a({...l,showNotice:!1,ignoreNotice:!0}),text:(0,fe.__)("Ignore","content-control")}),(0,r.createElement)(we.Button,{variant:"primary",onClick:()=>m(),text:(0,fe.__)("Save Settings","content-control")}))))},De=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{d:"M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z"})),Ae=window.contentControl.ruleEngine,Oe=n.n(Ae),Ie=()=>{const{isEditorActive:e,editorId:t}=(0,he.useSelect)((e=>{const t=e(Ce.restrictionsStore);return{editorId:t.getEditorId(),isEditorActive:t.isEditorActive()}}),[]),{changeEditorId:n}=(0,he.useDispatch)(Ce.restrictionsStore),[o,r]=ue({edit:z,add:j,tab:V}),l=()=>r({add:void 0,edit:void 0,tab:void 0}),{edit:a,add:c,tab:s}=o;return(0,_e.useEffect)((()=>{let e=a&&a>0?a:void 0;c&&(e="new"),e!==t&&n(e)}),[a,c,t,n]),(0,_e.useEffect)((()=>{c||a||e||l()}),[e,c,a]),{tab:s,setTab:e=>r({tab:e}),setEditorId:e=>{r({add:"new"===e||void 0,edit:"number"==typeof e&&e>0?e:void 0}),n(e)},clearEditorParams:l}},Ue=({values:e,updateSettings:t})=>(0,r.createElement)("div",{className:"content-tab"},(0,r.createElement)("h3",null,(0,fe.__)("Apply this restriction if the user views content that is:","content-control")),(0,r.createElement)("p",null,(0,fe.__)("When users visit your site, the plugin will check the viewed content against your selection below and permit or deny access.","content-control")),(0,r.createElement)(Oe(),{value:e.settings.conditions,onChange:e=>t({conditions:e}),options:{features:{notOperand:!0,groups:!0},rulesFilter:e=>(Array.isArray(e.context)?e.context:e.context.split(" ")).indexOf("content")>=0}})),Ve=window.contentControl.utils,ze=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{d:"M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"})),je=window.wp.compose,He=()=>{const{updateEditorValues:e}=(0,he.useDispatch)(Ce.restrictionsStore),{values:t={}}=(0,he.useSelect)((e=>({values:e(Ce.restrictionsStore).getEditorValues(),isEditorActive:e(Ce.restrictionsStore).isEditorActive()})),[]),{settings:n}=t,o=(0,_e.useCallback)((n=>{e({...t,settings:{...t?.settings,...n}})}),[e,t]),r=(e,t)=>{const o=(0,be.applyFilters)("contentControl.restrictionEditor.fieldIsVisible",void 0,e,n,t);return void 0===o||o},l=(0,_e.useMemo)((()=>(0,be.applyFilters)("contentControl.restrictionEditor.tabFields",{},n,o)),[n,o]);return{values:t,fieldIsVisible:r,getTabFields:e=>{var t;return(0,be.applyFilters)(`contentControl.restrictionEditor.tabFields.${e}`,null!==(t=l[e])&&void 0!==t?t:[]).sort(((e,t)=>e.priority-t.priority)).filter((t=>r(t.id,e))).map((t=>{const n=(0,be.applyFilters)("contentControl.restrictionEditor.renderField",t.component,t.id,e);return{...t,component:n}}))},updateSettings:o,updateField:(e,t)=>{o({[e]:t})}}},$e=(0,r.createElement)(ke.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(ke.Path,{d:"M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z"}));const We=[{value:"redirect",label:(0,fe.__)("Redirect","content-control"),icon:ye.protectedRedirect},{value:"replace",label:(0,fe.__)("Replace Content","content-control"),icon:ye.protectedMessage}],Ge=[{value:"login",label:(0,fe.__)("Login & Back","content-control"),icon:Re},{value:"home",label:(0,fe.__)("Home Page","content-control"),icon:$e},{value:"custom",label:(0,fe.__)("Custom URL","content-control"),icon:De}],Qe=[{value:"message",label:(0,fe.__)("Custom Message","content-control")},{value:"page",label:(0,fe.__)("Use Existing Page","content-control")}],qe=[{label:(0,fe.__)("Filter the restricted items' content.","content-control"),value:"filter_post_content"},{label:(0,fe.__)("Hide the restricted items from the archive page.","content-control"),value:"hide"},{label:(0,fe.__)("Replace the entire archive page with a custom page.","content-control"),value:"replace_archive_page"},{label:(0,fe.__)("Redirect to a different page.","content-control"),value:"redirect"}],Ye=[{label:(0,fe.__)("Filter the restricted items' content.","content-control"),value:"filter_post_content"},{label:(0,fe.__)("Hide the restricted items from the list page.","content-control"),value:"hide"}],{userRoles:Ke}=contentControlSettingsPage,Je=({settings:e,updateSettings:t})=>{var n;const o=(0,je.useInstanceId)(Je);let l=[];return Array.isArray(e.userRoles)?l=e.userRoles:"object"==typeof e.userRoles&&(l=Object.entries(e.userRoles).map((([e])=>e))),(0,r.createElement)(Se.FieldPanel,{title:(0,fe.__)("User Status","content-control")},(0,r.createElement)(Se.RadioButtonControl,{label:(0,fe.__)("Who can see this content?","content-control"),value:e.userStatus,onChange:e=>t({userStatus:e}),options:(0,be.applyFilters)("contentControl.restrictionEditor.userStatusOptions",[{value:"logged_in",label:(0,fe.__)("Logged In Users","content-control"),icon:ye.lockedUser},{value:"logged_out",label:(0,fe.__)("Logged Out Users","content-control"),icon:ye.incognito}]),className:"userStatus-field"}),"logged_in"===e.userStatus&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)("br",null),(0,r.createElement)("hr",null),(0,r.createElement)(Se.FieldRow,{id:`content-control-role-match-${o}`,label:(0,fe.__)("User Role","content-control"),description:(0,fe.__)("Which user roles should be allowed to see this content.","content-control"),className:"components-base-control__label"},(0,r.createElement)(we.SelectControl,{id:`content-control-role-match-${o}`,label:(0,fe.__)("User Role","content-control"),value:null!==(n=e.roleMatch)&&void 0!==n?n:"any",options:[{label:(0,fe.__)("Any","content-control"),value:"any"},{label:(0,fe.__)("Matching","content-control"),value:"match"},{label:(0,fe.__)("Excluding","content-control"),value:"exclude"}],onChange:e=>t({roleMatch:e}),className:"is-large roleMatch-field",hideLabelFromVision:!0,__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0})),"any"!==e.roleMatch&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)("hr",null),(0,r.createElement)("br",null),(0,r.createElement)(Se.SearchableMulticheckControl,{label:"exclude"===e.roleMatch?(0,fe.__)("Roles to exclude","content-control"):(0,fe.__)("Roles to include","content-control"),searchIcon:ze,placeholder:(0,fe.__)("Search roles…","content-control"),className:"is-large userRoles-field",value:l,onChange:e=>t({userRoles:e}),options:Object.entries(Ke).map((([e,t])=>({value:e,label:t})))}))))};(0,be.addFilter)("contentControl.restrictionEditor.tabFields","content-control",((e,t,n)=>{const o={settings:t,updateSettings:n};return{...e,general:[{id:"userStatus",priority:3,component:(0,r.createElement)(Je,{...o})}]}}));var Ze=({values:e,updateValues:t})=>{const{getTabFields:n}=He(),o=e.description.length/80,l=(0,Ve.clamp)(o,1,5);return(0,r.createElement)("div",{className:"general-tab"},(0,r.createElement)(we.TextControl,{label:(0,fe.__)("Restriction label","content-control"),hideLabelFromVision:!0,placeholder:(0,fe.__)("Name…","content-control"),className:"title-field",value:e.title,onChange:e=>t({title:e})}),(0,r.createElement)(we.TextareaControl,{rows:l,scrolling:l>5?"auto":"no",label:(0,fe.__)("Restriction description","content-control"),hideLabelFromVision:!0,placeholder:(0,fe.__)("Add description…","content-control"),className:"description-field",value:e.description,onChange:e=>t({description:e})}),e.title.length<=0&&(0,r.createElement)(we.Notice,{status:"warning",isDismissible:!1,className:"title-field-notice"},(0,fe.__)("Enter a label for this set.","content-control")),n("general").map((e=>(0,r.createElement)("div",{key:e.id},e.component))))};const{isProActivated:Xe=!1}=contentControlSettingsPage;(0,be.addFilter)("contentControl.restrictionEditor.tabFields","content-control",((e,t,n)=>{var o;const l=t.customMessage?.length/80,a=(0,Ve.clamp)(l,4,20);return{...e,protection:[{id:"protectionMethod",priority:1,component:(0,r.createElement)(Se.RadioButtonControl,{label:(0,fe.__)("How do you want to protect your content?","content-control"),value:t.protectionMethod,onChange:e=>n({protectionMethod:e}),options:(0,be.applyFilters)("contentControl.restrictionEditor.protectionMethodOptions",We)})},{id:"redirectType",priority:2,component:(0,r.createElement)(Se.RadioButtonControl,{label:(0,fe.__)("Where will the user be taken?","content-control"),value:t.redirectType,onChange:e=>n({redirectType:e}),options:Ge})},{id:"redirectUrl",priority:3,component:(0,r.createElement)(Se.URLControl,{label:(0,fe.__)("Custom Redirect URL","content-control"),className:"is-large",value:t.redirectUrl,onChange:({url:e})=>{n({redirectUrl:e})}})},{id:"replacementType",priority:4,component:(0,r.createElement)(Se.RadioButtonControl,{label:(0,fe.__)("Replacement Type","content-control"),value:t.replacementType,options:Qe,onChange:e=>n({replacementType:e})})},{id:"replacementPage",priority:5,component:(0,r.createElement)(Se.EntitySelectControl,{label:(0,fe.__)("Choose a page to replace the content with.","content-control"),placeholder:(0,fe.__)("Choose a page to replace the content with.","content-control"),value:t.replacementPage,multiple:!1,onChange:e=>n({replacementPage:e}),entityKind:"postType",entityType:"page",closeOnSelect:!0})},{id:"showExcerpts",priority:6,component:(0,r.createElement)(we.CheckboxControl,{label:(0,fe.__)("Show excerpts above access denied message?","content-control"),checked:t.showExcerpts,onChange:e=>n({showExcerpts:e})})},{id:"overrideMessage",priority:7,component:(0,r.createElement)(we.CheckboxControl,{label:(0,fe.__)("Override the default message?","content-control"),checked:t.overrideMessage,onChange:e=>n({overrideMessage:e}),help:(0,fe.__)("Edit the default message via the plugin's Settings page.","content-control")})},{id:"customMessage",priority:8,component:(0,r.createElement)(we.TextareaControl,{label:(0,fe.__)("Enter a custom message to display to restricted users","content-control"),rows:a,value:t.customMessage,onChange:e=>n({customMessage:e})})},{id:"showInSearch",priority:9,component:(0,r.createElement)(et,{settings:t,updateSettings:n})},{id:"archiveHandling",priority:10,component:(0,r.createElement)(we.RadioControl,{label:(0,fe.__)("Handling matches within archives","content-control"),help:(0,fe.__)("Choose how to handle matched content found within archive pages. This option applies to restricted content within the archive page, not the archive page itself.","content-control"),selected:t.archiveHandling,options:qe,onChange:e=>n({archiveHandling:e})})},{id:"archiveReplacementPage",priority:11,component:(0,r.createElement)(Se.EntitySelectControl,{label:(0,fe.__)("Choose a page to replace the archive with","content-control"),placeholder:(0,fe.__)("Choose a page to replace the archive with","content-control"),value:t.archiveReplacementPage,multiple:!1,onChange:e=>n({archiveReplacementPage:e}),entityKind:"postType",entityType:"page",closeOnSelect:!0})},{id:"archiveRedirectType",priority:12,component:(0,r.createElement)(Se.RadioButtonControl,{label:(0,fe.__)("Where will the user be taken?","content-control"),value:t.archiveRedirectType,onChange:e=>n({archiveRedirectType:e}),options:Ge})},{id:"archiveRedirectUrl",priority:13,component:(0,r.createElement)(Se.URLControl,{label:(0,fe.__)("Custom Redirect URL","content-control"),className:"is-large",value:t.archiveRedirectUrl,onChange:({url:e})=>{n({archiveRedirectUrl:e})}})},{id:"additionalQueryHandling",priority:14,component:(0,r.createElement)(we.RadioControl,{label:(0,fe.__)("Handling matches everywhere else","content-control"),help:(0,fe.__)("Choose how to handle matched content in all other areas outside the main content. This option applies to restricted content found in non-main queries, sidebars, widgets, footers, or within the page content itself.","content-control"),selected:t.additionalQueryHandling,options:Ye,onChange:e=>n({additionalQueryHandling:e})})},{id:"restApiQueryHandling",priority:15,component:(0,r.createElement)(we.BaseControl,{label:(0,fe.__)("Handling matches in REST API requests","content-control"),id:"restApiQueryHandling"},(0,r.createElement)("p",null,(0,r.createElement)("strong",null,(0,fe.__)('By default restricted posts in a REST API list will follow "everywhere else" rules set above, single posts & taxonomies will show restricted access notices.',"content-control"))),!Xe&&(0,r.createElement)("p",{dangerouslySetInnerHTML:{__html:(0,fe.sprintf)(
    22// translators: 1: Content Control Pro, 2: </a>
    3 (0,fe.__)("If you need more control over your REST API, try %1$sContent Control Pro%2$s:"),'<a href="https://contentcontrolplugin.com/features/rest-api/" target="_blank">',"</a>")}}))},...null!==(o=e.protection)&&void 0!==o?o:[]]}})),(0,be.addFilter)("contentControl.restrictionEditor.fieldIsVisible","content-control",((e,t,n)=>{switch(t){case"redirectType":return"redirect"===n.protectionMethod;case"redirectUrl":return"redirect"===n.protectionMethod&&"custom"===n.redirectType;case"replacementType":return"replace"===n.protectionMethod;case"replacementPage":return"replace"===n.protectionMethod&&"page"===n.replacementType;case"showExcerpts":case"showInSearch":case"overrideMessage":return"replace"===n.protectionMethod&&"message"===n.replacementType;case"customMessage":return"replace"===n.protectionMethod&&"message"===n.replacementType&&n.overrideMessage;case"archiveReplacementPage":return"replace_archive_page"===n.archiveHandling;case"archiveRedirectType":return"redirect"===n.archiveHandling;case"archiveRedirectUrl":return"redirect"===n.archiveHandling&&"custom"===n.archiveRedirectType;default:return e}}));const et=({settings:e,updateSettings:t})=>{const[n,o]=(0,r.useState)(!1);return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(we.CheckboxControl,{label:(0,fe.__)("Show in search results?","content-control"),help:(0,r.createElement)("div",null,(0,r.createElement)("p",null,(0,fe.__)("When enabled, restricted items will appear in search results but with a restricted access message. Disable to completely hide from search.","content-control")),e.showInSearch&&(0,r.createElement)("div",{className:"cc-warning-icon",style:{marginTop:"8px",color:"#757575",display:"inline-flex",alignItems:"center",gap:"4px",cursor:"help"},onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1)},(0,r.createElement)("span",null,"⚠️"," ",(0,fe.__)("Warning: Enabling this option may expose restricted content","content-control")),n&&(0,r.createElement)(we.Popover,{position:"bottom center",focusOnMount:!1,noArrow:!1,animate:!1},(0,r.createElement)("div",{className:"cc-warning-popover",style:{padding:"16px",maxWidth:"450px",minWidth:"450px"}},(0,r.createElement)("h4",{style:{marginTop:0}},"Security Consideration"),(0,r.createElement)("p",null,"Only enable this if you fully understand the risks or have properly mitigated them."),(0,r.createElement)("p",null,"WordPress search can reveal parts of your protected content through simple trial and error searching."),(0,r.createElement)("p",null,'For example: If your protected post contains "Annual Revenue: $500,000", someone could discover this by searching for "An", then "Ann", then "Annu", and so on. Each successful search confirms more of the content, even if they cannot access the full post.'),(0,r.createElement)("p",null,"With simple scripts a bot can discover restricted content in seconds if there is no brute force protection in place such as rate limiting."),(0,r.createElement)("p",null,"The issue can be mitigated, but not fully eliminated with rate limiting and/or blocking IPs with an active firewall."),(0,r.createElement)("p",{style:{margin:"0"}},"Learn more in"," ",(0,r.createElement)("a",{href:"https://contentcontrolplugin.com/docs/security/preventing-bots-from-discovering-restricted-content/?utm_source=plugin&utm_medium=settings-page&utm_campaign=show-in-search-warning",target:"_blank",rel:"noreferrer"},"our documentation")))))),checked:e.showInSearch,onChange:e=>t({showInSearch:e})}))};var tt=e=>{const{getTabFields:t}=He();return(0,r.createElement)("div",{className:"protection-tab"},(0,r.createElement)("h3",null,(0,fe.__)("Protecting Content","content-control")),(0,r.createElement)("p",null,(0,fe.__)("When a user does not have access, the following options help control their experience.","content-control")),t("protection").map((e=>(0,r.createElement)("div",{key:e.id},e.component))))};const nt=()=>{};var ot=({onSave:e=nt,onClose:t=nt})=>{const{tab:n,setTab:o,clearEditorParams:l}=Ie(),[a,c]=(0,_e.useState)(!1),[s,i]=(0,_e.useState)(null),{editorId:u,isEditorActive:d,values:m,isSaving:p,dispatchStatus:g,dispatchErrors:h}=(0,he.useSelect)((e=>({editorId:e(Ce.restrictionsStore).getEditorId(),values:e(Ce.restrictionsStore).getEditorValues(),isEditorActive:e(Ce.restrictionsStore).isEditorActive(),isSaving:e(Ce.restrictionsStore).isDispatching(["createRestriction","updateRestriction"]),dispatchStatus:{create:e(Ce.restrictionsStore).getDispatchStatus("createRestriction"),update:e(Ce.restrictionsStore).getDispatchStatus("updateRestriction")},dispatchErrors:{create:e(Ce.restrictionsStore).getDispatchError("createRestriction"),update:e(Ce.restrictionsStore).getDispatchError("updateRestriction")}})),[]),{updateEditorValues:_,createRestriction:v,updateRestriction:E,clearEditorData:f}=(0,he.useDispatch)(Ce.restrictionsStore);if((0,_e.useEffect)((()=>l),[]),(0,_e.useEffect)((()=>{var e;if(!a)return;if(Ce.Status.Success===g.create||Ce.Status.Success===g.update)return void b();const t=null!==(e=h.create)&&void 0!==e?e:h.update;void 0!==t&&i(t)}),[g,h]),!d)return null;if(!u)return(0,r.createElement)(r.Fragment,null,(0,fe.__)("Editor requires a valid id","content-control"));if(!m)return(0,r.createElement)(r.Fragment,null,(0,fe.__)("Editor requires a valid restriction.","content-control"));const b=()=>{f(),t()},y={values:m,updateValues:_,updateSettings:e=>{_({...m,settings:{...m?.settings,...e}})},onSave:e,onClose:t},w=(0,be.applyFilters)("contentControl.restrictionEditor.tabs",[{name:"general",title:(0,fe.__)("General","content-control"),comp:()=>(0,r.createElement)(Ze,{...y})},{name:"protection",title:(0,fe.__)("Protection","content-control"),comp:()=>(0,r.createElement)(tt,{...y})},{name:"content",title:(0,fe.__)("Content","content-control"),comp:()=>(0,r.createElement)(Ue,{...y})}]);if("object"==typeof s&&s?.tabName?.length){const e=w.find((e=>e.name===s.tabName));e&&(w[w.indexOf(e)].className=w[w.indexOf(e)].className?w[w.indexOf(e)].className+" error":"error")}const C=(0,fe.sprintf)(
     3(0,fe.__)("If you need more control over your REST API, try %1$sContent Control Pro%2$s:"),'<a href="https://contentcontrolplugin.com/features/rest-api/" target="_blank">',"</a>")}}))},...null!==(o=e.protection)&&void 0!==o?o:[]]}})),(0,be.addFilter)("contentControl.restrictionEditor.fieldIsVisible","content-control",((e,t,n)=>{switch(t){case"redirectType":return"redirect"===n.protectionMethod;case"redirectUrl":return"redirect"===n.protectionMethod&&"custom"===n.redirectType;case"replacementType":return"replace"===n.protectionMethod;case"replacementPage":return"replace"===n.protectionMethod&&"page"===n.replacementType;case"showExcerpts":case"showInSearch":case"overrideMessage":return"replace"===n.protectionMethod&&"message"===n.replacementType;case"customMessage":return"replace"===n.protectionMethod&&"message"===n.replacementType&&n.overrideMessage;case"archiveReplacementPage":return"replace_archive_page"===n.archiveHandling;case"archiveRedirectType":return"redirect"===n.archiveHandling;case"archiveRedirectUrl":return"redirect"===n.archiveHandling&&"custom"===n.archiveRedirectType;default:return e}}));const et=({settings:e,updateSettings:t})=>{const[n,o]=(0,r.useState)(!1);return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(we.CheckboxControl,{label:(0,fe.__)("Show in search results?","content-control"),help:(0,fe.__)("When enabled, restricted items will appear in search results but with a restricted access message. Disable to completely hide from search.","content-control"),checked:e.showInSearch,onChange:e=>t({showInSearch:e})}),e.showInSearch&&(0,r.createElement)("div",{className:"cc-warning-icon",style:{marginTop:"-20px",marginBottom:"32px",color:"#757575",cursor:"help"},onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1)},(0,r.createElement)("span",null,"⚠️"," ",(0,fe.__)("Warning: Enabling this option may expose restricted content","content-control")),n&&(0,r.createElement)(we.Popover,{offset:10,position:"bottom right",focusOnMount:!1,noArrow:!1,animate:!1},(0,r.createElement)("div",{className:"cc-warning-popover",style:{padding:"16px",maxWidth:"450px",minWidth:"450px"}},(0,r.createElement)("h4",{style:{marginTop:0}},"Security Consideration"),(0,r.createElement)("p",null,"Only enable this if you fully understand the risks or have properly mitigated them."),(0,r.createElement)("p",null,"WordPress search can reveal parts of your protected content through simple trial and error searching."),(0,r.createElement)("p",null,'For example: If your protected post contains "Annual Revenue: $500,000", someone could discover this by searching for "An", then "Ann", then "Annu", and so on. Each successful search confirms more of the content, even if they cannot access the full post.'),(0,r.createElement)("p",null,"With simple scripts a bot can discover restricted content in seconds if there is no brute force protection in place such as rate limiting."),(0,r.createElement)("p",null,"The issue can be mitigated, but not fully eliminated with rate limiting and/or blocking IPs with an active firewall."),(0,r.createElement)("p",{style:{margin:"0"}},"Learn more in"," ",(0,r.createElement)("a",{href:"https://contentcontrolplugin.com/docs/security/preventing-bots-from-discovering-restricted-content/?utm_source=plugin&utm_medium=settings-page&utm_campaign=show-in-search-warning",target:"_blank",rel:"noreferrer"},"our documentation"))))))};var tt=e=>{const{getTabFields:t}=He();return(0,r.createElement)("div",{className:"protection-tab"},(0,r.createElement)("h3",null,(0,fe.__)("Protecting Content","content-control")),(0,r.createElement)("p",null,(0,fe.__)("When a user does not have access, the following options help control their experience.","content-control")),t("protection").map((e=>(0,r.createElement)("div",{key:e.id},e.component))))};const nt=()=>{};var ot=({onSave:e=nt,onClose:t=nt})=>{const{tab:n,setTab:o,clearEditorParams:l}=Ie(),[a,c]=(0,_e.useState)(!1),[s,i]=(0,_e.useState)(null),{editorId:u,isEditorActive:d,values:m,isSaving:p,dispatchStatus:g,dispatchErrors:h}=(0,he.useSelect)((e=>({editorId:e(Ce.restrictionsStore).getEditorId(),values:e(Ce.restrictionsStore).getEditorValues(),isEditorActive:e(Ce.restrictionsStore).isEditorActive(),isSaving:e(Ce.restrictionsStore).isDispatching(["createRestriction","updateRestriction"]),dispatchStatus:{create:e(Ce.restrictionsStore).getDispatchStatus("createRestriction"),update:e(Ce.restrictionsStore).getDispatchStatus("updateRestriction")},dispatchErrors:{create:e(Ce.restrictionsStore).getDispatchError("createRestriction"),update:e(Ce.restrictionsStore).getDispatchError("updateRestriction")}})),[]),{updateEditorValues:_,createRestriction:v,updateRestriction:E,clearEditorData:f}=(0,he.useDispatch)(Ce.restrictionsStore);if((0,_e.useEffect)((()=>l),[]),(0,_e.useEffect)((()=>{var e;if(!a)return;if(Ce.Status.Success===g.create||Ce.Status.Success===g.update)return void b();const t=null!==(e=h.create)&&void 0!==e?e:h.update;void 0!==t&&i(t)}),[g,h]),!d)return null;if(!u)return(0,r.createElement)(r.Fragment,null,(0,fe.__)("Editor requires a valid id","content-control"));if(!m)return(0,r.createElement)(r.Fragment,null,(0,fe.__)("Editor requires a valid restriction.","content-control"));const b=()=>{f(),t()},y={values:m,updateValues:_,updateSettings:e=>{_({...m,settings:{...m?.settings,...e}})},onSave:e,onClose:t},w=(0,be.applyFilters)("contentControl.restrictionEditor.tabs",[{name:"general",title:(0,fe.__)("General","content-control"),comp:()=>(0,r.createElement)(Ze,{...y})},{name:"protection",title:(0,fe.__)("Protection","content-control"),comp:()=>(0,r.createElement)(tt,{...y})},{name:"content",title:(0,fe.__)("Content","content-control"),comp:()=>(0,r.createElement)(Ue,{...y})}],y);if("object"==typeof s&&s?.tabName?.length){const e=w.find((e=>e.name===s.tabName));e&&(w[w.indexOf(e)].className=w[w.indexOf(e)].className?w[w.indexOf(e)].className+" error":"error")}const C=(0,fe.sprintf)(
    44// translators: 1. Id of set to edit.
    55(0,fe.__)("Restriction Editor%s","content-control"),"new"===u?": "+(0,fe.__)("New Restriction","content-control"):`: #${m.id} - ${m.title}`);return(0,r.createElement)(we.Modal,{title:C,className:"restriction-editor",onRequestClose:()=>b(),shouldCloseOnClickOutside:!1},(0,r.createElement)("div",{className:Ee()(["restriction-enabled-toggle","publish"===m.status?"enabled":"disabled"])},(0,r.createElement)(we.ToggleControl,{label:"publish"===m.status?(0,fe.__)("Enabled","content-control"):(0,fe.__)("Disabled","content-control"),checked:"publish"===m.status,onChange:e=>_({...m,status:e?"publish":"draft"})})),s&&(0,r.createElement)(we.Notice,{status:"error",className:"restriction-editor-error",onDismiss:()=>{i(null)}},"string"==typeof s?s:s.message),(0,r.createElement)(we.TabPanel,{orientation:"vertical",initialTabName:null!=n?n:"general",onSelect:o,tabs:w,className:"editor-tabs"},(({title:e,comp:t})=>void 0===t?e:t())),(0,r.createElement)("div",{className:"modal-actions"},(0,r.createElement)(we.Button,{text:(0,fe.__)("Cancel","content-control"),variant:"tertiary",isDestructive:!0,onClick:()=>b(),disabled:p,className:"cancel-button"}),(0,r.createElement)(we.Button,{variant:"primary",disabled:p,onClick:()=>{const t=(0,Ce.validateRestriction)(m);!0===t?function(){if(!u||!m)return;const t="new"!==u&&u>0,n={...m,settings:{...m.settings,conditions:(0,Ae.removeEmptyItems)(m.settings.conditions)}};t?E(n):v(n),c(!0),i(null),e(n)}():"object"==typeof t&&i(t)}},p&&(0,r.createElement)(we.Spinner,null),"new"===u?(0,fe.__)("Add Restriction","content-control"):(0,fe.__)("Save Restriction","content-control")),(0,r.createElement)(we.Button,{text:(0,fe.__)("Documentation","content-control"),href:"https://contentcontrolplugin.com/docs/?utm_campaign=documentation&utm_source=restriction-editor&utm_medium=plugin-ui&utm_content=footer-documentation-link",target:"_blank",icon:De,iconSize:20})))},rt=()=>{const{setEditorId:e}=Ie(),{restrictions:t,isLoading:n}=(0,he.useSelect)((e=>{const t=e(Ce.restrictionsStore);return{restrictions:t.getRestrictions(),isLoading:t.isResolving("getRestrictions")}}),[]),o=t.length;return(0,r.createElement)("header",{className:"cc-settings-view__header"},(0,r.createElement)("h1",{className:"view-title wp-heading-inline"},(0,fe.__)("Restrictions","content-control")),(0,r.createElement)("span",{className:"item-count"},n?(0,r.createElement)(we.Spinner,null):(0,fe.sprintf)(/* translators: 1. Number of items */
  • content-control/trunk/readme.txt

    r3256177 r3278699  
    77Requires at least: 6.2
    88Tested up to: 6.7.2
    9 Stable tag: 2.6.1
     9Stable tag: 2.6.2
    1010Requires PHP: 7.4
    1111License: GPLv3 (or later)
     
    111111== Changelog ==
    112112
     113= v2.6.2 - 04/22/2025 =
     114
     115* Security: Escaped `[content_control]` `message` attribute.
     116* Fix: Misc JS bugs in admin.
     117* Developer: Added new `content_control/pre_restrict_content` & `content_control/pre_restrict_excerpt` filters to allow overloading/short curcuiting the default restriction application.
     118
    113119= v2.6.1 - 03/15/2025 =
    114120
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Container.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Exception/ExpectedInvokableException.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Exception/FrozenServiceException.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Exception/InvalidServiceIdentifierException.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Exception/UnknownIdentifierException.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Psr11/Container.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Psr11/ServiceLocator.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/ServiceIterator.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/ServiceProviderInterface.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Tests/Fixtures/Invokable.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Tests/Fixtures/NonInvokable.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Tests/Fixtures/PimpleServiceProvider.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Tests/Fixtures/Service.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Tests/PimpleServiceProviderInterfaceTest.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Tests/PimpleTest.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Tests/Psr11/ContainerTest.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Tests/Psr11/ServiceLocatorTest.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/pimple/pimple/src/Pimple/Tests/ServiceIteratorTest.php

    r3256177 r3278699  
    2424 * THE SOFTWARE.
    2525 *
    26  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     26 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2727 */
    2828
  • content-control/trunk/vendor-prefixed/psr/container/src/ContainerExceptionInterface.php

    r3256177 r3278699  
    33 * @license MIT
    44 *
    5  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     5 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    66 */
    77
  • content-control/trunk/vendor-prefixed/psr/container/src/ContainerInterface.php

    r3256177 r3278699  
    33 * @license MIT
    44 *
    5  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     5 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    66 */
    77
  • content-control/trunk/vendor-prefixed/psr/container/src/NotFoundExceptionInterface.php

    r3256177 r3278699  
    33 * @license MIT
    44 *
    5  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     5 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    66 */
    77
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Admin.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Ajax.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Client.php

    r3256177 r3278699  
    1919 *
    2020 * @license GPL-2.0-or-later
    21  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     21 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    2222 */
    2323
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Config.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Cron.php

    r3256177 r3278699  
    66 *
    77 * @license GPL-2.0-or-later
    8  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     8 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    99 */
    1010
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Encryption.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Endpoint.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Envelope.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Form.php

    r3256177 r3278699  
    33 * @license GPL-2.0-or-later
    44 *
    5  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     5 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    66 */
    77/**
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Logger.php

    r3256177 r3278699  
    1010 *
    1111 * @license GPL-2.0-or-later
    12  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     12 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1313 */
    1414
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Logging.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Remote.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/SecurityChecks.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/SiteAccess.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/SupportRole.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/SupportUser.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor-prefixed/trustedlogin/client/src/Utils.php

    r3256177 r3278699  
    88 *
    99 * @license GPL-2.0-or-later
    10  * Modified by code-atlantic on 15-March-2025 using {@see https://github.com/BrianHenryIE/strauss}.
     10 * Modified by code-atlantic on 22-April-2025 using {@see https://github.com/BrianHenryIE/strauss}.
    1111 */
    1212
  • content-control/trunk/vendor/autoload.php

    r3253935 r3278699  
    1515        }
    1616    }
    17     trigger_error(
    18         $err,
    19         E_USER_ERROR
    20     );
     17    throw new RuntimeException($err);
    2118}
    2219
    2320require_once __DIR__ . '/composer/autoload_real.php';
    2421
    25 return ComposerAutoloaderInit3caeeb2096468f7f7a6bae712d979445::getLoader();
     22return ComposerAutoloaderInit2590a902ca8d302f546143f2cb997562::getLoader();
  • content-control/trunk/vendor/composer/InstalledVersions.php

    r3253935 r3278699  
    2727class InstalledVersions
    2828{
     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
    2935    /**
    3036     * @var mixed[]|null
     
    324330
    325331    /**
     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;
     341    }
     342
     343    /**
    326344     * @return array[]
    327345     * @psalm-return list<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[]}>}>
     
    337355
    338356        if (self::$canGetVendors) {
    339             $selfDir = strtr(__DIR__, '\\', '/');
     357            $selfDir = self::getSelfDir();
    340358            foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
    341359                $vendorDir = strtr($vendorDir, '\\', '/');
  • content-control/trunk/vendor/composer/autoload_real.php

    r3253935 r3278699  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit3caeeb2096468f7f7a6bae712d979445
     5class ComposerAutoloaderInit2590a902ca8d302f546143f2cb997562
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit3caeeb2096468f7f7a6bae712d979445', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit2590a902ca8d302f546143f2cb997562', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit3caeeb2096468f7f7a6bae712d979445', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit2590a902ca8d302f546143f2cb997562', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInit3caeeb2096468f7f7a6bae712d979445::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit2590a902ca8d302f546143f2cb997562::getInitializer($loader));
    3333
    3434        $loader->register(true);
  • content-control/trunk/vendor/composer/autoload_static.php

    r3253935 r3278699  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit3caeeb2096468f7f7a6bae712d979445
     7class ComposerStaticInit2590a902ca8d302f546143f2cb997562
    88{
    99    public static $prefixLengthsPsr4 = array (
     
    239239    {
    240240        return \Closure::bind(function () use ($loader) {
    241             $loader->prefixLengthsPsr4 = ComposerStaticInit3caeeb2096468f7f7a6bae712d979445::$prefixLengthsPsr4;
    242             $loader->prefixDirsPsr4 = ComposerStaticInit3caeeb2096468f7f7a6bae712d979445::$prefixDirsPsr4;
    243             $loader->classMap = ComposerStaticInit3caeeb2096468f7f7a6bae712d979445::$classMap;
     241            $loader->prefixLengthsPsr4 = ComposerStaticInit2590a902ca8d302f546143f2cb997562::$prefixLengthsPsr4;
     242            $loader->prefixDirsPsr4 = ComposerStaticInit2590a902ca8d302f546143f2cb997562::$prefixDirsPsr4;
     243            $loader->classMap = ComposerStaticInit2590a902ca8d302f546143f2cb997562::$classMap;
    244244
    245245        }, null, ClassLoader::class);
  • content-control/trunk/vendor/composer/installed.php

    r3256177 r3278699  
    22    'root' => array(
    33        'name' => 'code-atlantic/content-control',
    4         'pretty_version' => '2.6.1',
    5         'version' => '2.6.1.0',
     4        'pretty_version' => '2.6.2',
     5        'version' => '2.6.2.0',
    66        'reference' => null,
    77        'type' => 'wordpress-plugin',
     
    1212    'versions' => array(
    1313        'code-atlantic/content-control' => array(
    14             'pretty_version' => '2.6.1',
    15             'version' => '2.6.1.0',
     14            'pretty_version' => '2.6.2',
     15            'version' => '2.6.2.0',
    1616            'reference' => null,
    1717            'type' => 'wordpress-plugin',
Note: See TracChangeset for help on using the changeset viewer.