Gentoo Archives: gentoo-commits

From: "Anthony G. Basile" <blueness@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/blogs-gentoo:master commit in: plugins/public-post-preview/js/src/, plugins/public-post-preview/, ...
Date: Wed, 02 Jan 2019 03:20:35
Message-Id: 1546399216.662d15c1d2c5bb896985fd551a3649fcd280429e.blueness@gentoo
1 commit: 662d15c1d2c5bb896985fd551a3649fcd280429e
2 Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
3 AuthorDate: Wed Jan 2 03:20:16 2019 +0000
4 Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
5 CommitDate: Wed Jan 2 03:20:16 2019 +0000
6 URL: https://gitweb.gentoo.org/proj/blogs-gentoo.git/commit/?id=662d15c1
7
8 Update public-post-preview 2.8.0
9
10 Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
11
12 .../js/gutenberg-integration.js | 1 +
13 .../js/public-post-preview.dev.js | 111 -------------
14 .../public-post-preview/js/public-post-preview.js | 2 +-
15 .../js/public-post-preview.min.js | 2 +-
16 .../js/src/components/preview-toggle/index.js | 171 +++++++++++++++++++++
17 plugins/public-post-preview/js/src/index.js | 6 +
18 .../languages/public-post-preview.php | 19 +++
19 .../languages/public-post-preview.pot | 24 +++
20 .../public-post-preview/public-post-preview.php | 167 +++++++++++++-------
21 plugins/public-post-preview/readme.txt | 17 +-
22 10 files changed, 346 insertions(+), 174 deletions(-)
23
24 diff --git a/plugins/public-post-preview/js/gutenberg-integration.js b/plugins/public-post-preview/js/gutenberg-integration.js
25 new file mode 100644
26 index 0000000..6bf327c
27 --- /dev/null
28 +++ b/plugins/public-post-preview/js/gutenberg-integration.js
29 @@ -0,0 +1 @@
30 +this.publicPostPreview=this.publicPostPreview||{},this.publicPostPreview.main=function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=22)}([
31 function(e,t){!function(){e.exports=this.wp.element}()},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t){!function(){e.exports=this.wp.i18n}()},function(e,t,r){"use strict";(function(e){r.d(t,"a",function(){return c});var n=r(17),i=void 0!==e?e:{},a=Object(n.a)(i),c=(a.flush,a.hydrate,a.cx,a.merge,a.getRegisteredStyles,a.injectGlobal,a.keyframes,a.css);a.sheet,a.caches}).call(this,r(21))},function(e,t){!function(){e.exports=this.wp.components}()},function(e,t){!function(){e.exports=this.wp.compose}()},function(e,t){!function(){e.exports=this.wp.editPost}()},function(e,t){!function(){e.exports=this.wp.plugins}()},function(e,t,r){var n=r(18);e.exports=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},i=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Ob
32 ject.getOwnPropertyDescriptor(r,e).enumerable}))),i.forEach(function(t){n(e,t,r[t])})}return e}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}},function(e,t,r){var n=r(19),i=r(1);e.exports=function(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?i(e):t}},function(e,t){function r(t){return e.exports=r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(t)}e.exports=r},function(e,t,r){var n=r(20);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}
33 ),t&&n(e,t)}},function(e,t){!function(){e.exports=this.lodash}()},function(e,t,r){e.exports=function(){"use strict";return function(e){function t(t){if(t)try{e(t+"}")}catch(e){}}return function(r,n,i,a,c,o,s,u,l,f){switch(r){case 1:if(0===l&&64===n.charCodeAt(0))return e(n+";"),"";break;case 2:if(0===u)return n+"/*|*/";break;case 3:switch(u){case 102:case 112:return e(i[0]+n),"";default:return n+(0===f?"/*|*/":"")}case-2:n.split("/*|*/}").forEach(t)}}}}()},function(e,t){!function(){e.exports=this.wp.data}()},function(e,t,r){"use strict";var n=function(e){var t={};return function(r){return void 0===t[r]&&(t[r]=e(r)),t[r]}},i={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,fontWeight:1,lineHeight:
34 1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var a=function(e){for(var t,r=e.length,n=r^r,i=0;r>=4;)t=1540483477*(65535&(t=255&e.charCodeAt(i)|(255&e.charCodeAt(++i))<<8|(255&e.charCodeAt(++i))<<16|(255&e.charCodeAt(++i))<<24))+((1540483477*(t>>>16)&65535)<<16),n=1540483477*(65535&n)+((1540483477*(n>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),r-=4,++i;switch(r){case 3:n^=(255&e.charCodeAt(i+2))<<16;case 2:n^=(255&e.charCodeAt(i+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(i)))+((1540483477*(n>>>16)&65535)<<16)}return n=1540483477*(65535&(n^=n>>>13))+((1540483477*(n>>>16)&65535)<<16),((n^=n>>>15)>>>0).toString(36)};var c=function(e){function t(e,t,n){var i=t.trim().split(d);t=i;var a=i.length,c=e.length;switch(c){case 0:case 1:var o=0;for(e=0===c?"":e[0]+" ";o<a;++o)
35 t[o]=r(e,t[o],n).trim();break;default:var s=o=0;for(t=[];o<a;++o)for(var u=0;u<c;++u)t[s++]=r(e[u]+" ",i[o],n).trim()}return t}function r(e,t,r){var n=t.charCodeAt(0);switch(33>n&&(n=(t=t.trim()).charCodeAt(0)),n){case 38:return t.replace(b,"$1"+e.trim());case 58:return e.trim()+t.replace(b,"$1"+e.trim());default:if(0<1*r&&0<t.indexOf("\f"))return t.replace(b,(58===e.charCodeAt(0)?"":"$1")+e.trim())}return e+t}function n(e,t,r,a){var c=e+";",o=2*t+3*r+4*a;if(944===o){e=c.indexOf(":",9)+1;var s=c.substring(e,c.length-1).trim();return s=c.substring(0,e).trim()+s+";",1===_||2===_&&i(s,1)?"-webkit-"+s+s:s}if(0===_||2===_&&!i(c,1))return c;switch(o){case 1015:return 97===c.charCodeAt(10)?"-webkit-"+c+c:c;case 951:return 116===c.charCodeAt(3)?"-webkit-"+c+c:c;case 963:return 110===c.charCodeAt(5)?"-webkit-"+c+c:c;case 1009:if(100!==c.charCodeAt(4))break;case 969:case 942:return"-webkit-"+c+c;case 978:return"-webkit-"+c+"-moz-"+c+c;case 1019:case 983:return"-webkit-"+c+"-moz-"+c+"-ms-"+c+c
36 ;case 883:if(45===c.charCodeAt(8))return"-webkit-"+c+c;if(0<c.indexOf("image-set(",11))return c.replace(A,"$1-webkit-$2")+c;break;case 932:if(45===c.charCodeAt(4))switch(c.charCodeAt(5)){case 103:return"-webkit-box-"+c.replace("-grow","")+"-webkit-"+c+"-ms-"+c.replace("grow","positive")+c;case 115:return"-webkit-"+c+"-ms-"+c.replace("shrink","negative")+c;case 98:return"-webkit-"+c+"-ms-"+c.replace("basis","preferred-size")+c}return"-webkit-"+c+"-ms-"+c+c;case 964:return"-webkit-"+c+"-ms-flex-"+c+c;case 1023:if(99!==c.charCodeAt(8))break;return"-webkit-box-pack"+(s=c.substring(c.indexOf(":",15)).replace("flex-","").replace("space-between","justify"))+"-webkit-"+c+"-ms-flex-pack"+s+c;case 1005:return h.test(c)?c.replace(f,":-webkit-")+c.replace(f,":-moz-")+c:c;case 1e3:switch(t=(s=c.substring(13).trim()).indexOf("-")+1,s.charCodeAt(0)+s.charCodeAt(t)){case 226:s=c.replace(m,"tb");break;case 232:s=c.replace(m,"tb-rl");break;case 220:s=c.replace(m,"lr");break;default:return c}return"-w
37 ebkit-"+c+"-ms-"+s+c;case 1017:if(-1===c.indexOf("sticky",9))break;case 975:switch(t=(c=e).length-10,o=(s=(33===c.charCodeAt(t)?c.substring(0,t):c).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|s.charCodeAt(7))){case 203:if(111>s.charCodeAt(8))break;case 115:c=c.replace(s,"-webkit-"+s)+";"+c;break;case 207:case 102:c=c.replace(s,"-webkit-"+(102<o?"inline-":"")+"box")+";"+c.replace(s,"-webkit-"+s)+";"+c.replace(s,"-ms-"+s+"box")+";"+c}return c+";";case 938:if(45===c.charCodeAt(5))switch(c.charCodeAt(6)){case 105:return s=c.replace("-items",""),"-webkit-"+c+"-webkit-box-"+s+"-ms-flex-"+s+c;case 115:return"-webkit-"+c+"-ms-flex-item-"+c.replace(C,"")+c;default:return"-webkit-"+c+"-ms-flex-line-pack"+c.replace("align-content","").replace(C,"")+c}break;case 973:case 989:if(45!==c.charCodeAt(3)||122===c.charCodeAt(4))break;case 931:case 953:if(!0===O.test(e))return 115===(s=e.substring(e.indexOf(":")+1)).charCodeAt(0)?n(e.replace("stretch","fill-available"),t,r,a).replace(":fill-
38 available",":stretch"):c.replace(s,"-webkit-"+s)+c.replace(s,"-moz-"+s.replace("fill-",""))+c;break;case 962:if(c="-webkit-"+c+(102===c.charCodeAt(5)?"-ms-"+c:"")+c,211===r+a&&105===c.charCodeAt(13)&&0<c.indexOf("transform",10))return c.substring(0,c.indexOf(";",27)+1).replace(p,"$1-webkit-$2")+c}return c}function i(e,t){var r=e.indexOf(1===t?":":"{"),n=e.substring(0,3!==t?r:10);return r=e.substring(r+1,e.length-1),R(2!==t?n:n.replace(x,"$1"),r,t)}function a(e,t){var r=n(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return r!==t+";"?r.replace(k," or ($1)").substring(4):"("+t+")"}function c(e,t,r,n,i,a,c,o,u,l){for(var f,h=0,p=t;h<z;++h)switch(f=I[h].call(s,e,p,r,n,i,a,c,o,u,l)){case void 0:case!1:case!0:case null:break;default:p=f}if(p!==t)return p}function o(e){return void 0!==(e=e.prefix)&&(R=null,e?"function"!=typeof e?_=1:(_=2,R=e):_=0),o}function s(e,r){var o=e;if(33>o.charCodeAt(0)&&(o=o.trim()),o=[o],0<z){var s=c(-1,r,o,o,S,j,0,0,0,0);void 0!==s&&"string"==typeof s&&(r=s
39 )}var f=function e(r,o,s,f,h){for(var p,d,b,m,k,C=0,x=0,O=0,A=0,I=0,R=0,$=b=p=0,U=0,T=0,M=0,F=0,H=s.length,V=H-1,D="",G="",L="",W="";U<H;){if(d=s.charCodeAt(U),U===V&&0!==x+A+O+C&&(0!==x&&(d=47===x?10:47),A=O=C=0,H++,V++),0===x+A+O+C){if(U===V&&(0<T&&(D=D.replace(l,"")),0<D.trim().length)){switch(d){case 32:case 9:case 59:case 13:case 10:break;default:D+=s.charAt(U)}d=59}switch(d){case 123:for(p=(D=D.trim()).charCodeAt(0),b=1,F=++U;U<H;){switch(d=s.charCodeAt(U)){case 123:b++;break;case 125:b--;break;case 47:switch(d=s.charCodeAt(U+1)){case 42:case 47:e:{for($=U+1;$<V;++$)switch(s.charCodeAt($)){case 47:if(42===d&&42===s.charCodeAt($-1)&&U+2!==$){U=$+1;break e}break;case 10:if(47===d){U=$+1;break e}}U=$}}break;case 91:d++;case 40:d++;case 34:case 39:for(;U++<V&&s.charCodeAt(U)!==d;);}if(0===b)break;U++}switch(b=s.substring(F,U),0===p&&(p=(D=D.replace(u,"").trim()).charCodeAt(0)),p){case 64:switch(0<T&&(D=D.replace(l,"")),d=D.charCodeAt(1)){case 100:case 109:case 115:case 45:T=o;brea
40 k;default:T=P}if(F=(b=e(o,T,b,d,h+1)).length,0<z&&(k=c(3,b,T=t(P,D,M),o,S,j,F,d,h,f),D=T.join(""),void 0!==k&&0===(F=(b=k.trim()).length)&&(d=0,b="")),0<F)switch(d){case 115:D=D.replace(y,a);case 100:case 109:case 45:b=D+"{"+b+"}";break;case 107:b=(D=D.replace(v,"$1 $2"))+"{"+b+"}",b=1===_||2===_&&i("@"+b,3)?"@-webkit-"+b+"@"+b:"@"+b;break;default:b=D+b,112===f&&(G+=b,b="")}else b="";break;default:b=e(o,t(o,D,M),b,f,h+1)}L+=b,b=M=T=$=p=0,D="",d=s.charCodeAt(++U);break;case 125:case 59:if(1<(F=(D=(0<T?D.replace(l,""):D).trim()).length))switch(0===$&&(p=D.charCodeAt(0),45===p||96<p&&123>p)&&(F=(D=D.replace(" ",":")).length),0<z&&void 0!==(k=c(1,D,o,r,S,j,G.length,f,h,f))&&0===(F=(D=k.trim()).length)&&(D="\0\0"),p=D.charCodeAt(0),d=D.charCodeAt(1),p){case 0:break;case 64:if(105===d||99===d){W+=D+s.charAt(U);break}default:58!==D.charCodeAt(F-1)&&(G+=n(D,p,d,D.charCodeAt(2)))}M=T=$=p=0,D="",d=s.charCodeAt(++U)}}switch(d){case 13:case 10:47===x?x=0:0===1+p&&107!==f&&0<D.length&&(T=1,D+="\
41 0"),0<z*N&&c(0,D,o,r,S,j,G.length,f,h,f),j=1,S++;break;case 59:case 125:if(0===x+A+O+C){j++;break}default:switch(j++,m=s.charAt(U),d){case 9:case 32:if(0===A+C+x)switch(I){case 44:case 58:case 9:case 32:m="";break;default:32!==d&&(m=" ")}break;case 0:m="\\0";break;case 12:m="\\f";break;case 11:m="\\v";break;case 38:0===A+x+C&&(T=M=1,m="\f"+m);break;case 108:if(0===A+x+C+E&&0<$)switch(U-$){case 2:112===I&&58===s.charCodeAt(U-3)&&(E=I);case 8:111===R&&(E=R)}break;case 58:0===A+x+C&&($=U);break;case 44:0===x+O+A+C&&(T=1,m+="\r");break;case 34:case 39:0===x&&(A=A===d?0:0===A?d:A);break;case 91:0===A+x+O&&C++;break;case 93:0===A+x+O&&C--;break;case 41:0===A+x+C&&O--;break;case 40:if(0===A+x+C){if(0===p)switch(2*I+3*R){case 533:break;default:p=1}O++}break;case 64:0===x+O+A+C+$+b&&(b=1);break;case 42:case 47:if(!(0<A+C+O))switch(x){case 0:switch(2*d+3*s.charCodeAt(U+1)){case 235:x=47;break;case 220:F=U,x=42}break;case 42:47===d&&42===I&&F+2!==U&&(33===s.charCodeAt(F+2)&&(G+=s.substring(F,U
42 +1)),m="",x=0)}}0===x&&(D+=m)}R=I,I=d,U++}if(0<(F=G.length)){if(T=o,0<z&&void 0!==(k=c(2,G,T,r,S,j,F,f,h,f))&&0===(G=k).length)return W+G+L;if(G=T.join(",")+"{"+G+"}",0!=_*E){switch(2!==_||i(G,2)||(E=0),E){case 111:G=G.replace(g,":-moz-$1")+G;break;case 112:G=G.replace(w,"::-webkit-input-$1")+G.replace(w,"::-moz-$1")+G.replace(w,":-ms-input-$1")+G}E=0}}return W+G+L}(P,o,r,0,0);return 0<z&&void 0!==(s=c(-2,f,o,o,S,j,f.length,0,0,0))&&(f=s),E=0,j=S=1,f}var u=/^\0+/g,l=/[\0\r\f]/g,f=/: */g,h=/zoo|gra/,p=/([,: ])(transform)/g,d=/,\r+?/g,b=/([\t\r\n ])*\f?&/g,v=/@(k\w+)\s*(\S*)\s*/,w=/::(place)/g,g=/:(read-only)/g,m=/[svh]\w+-[tblr]{2}/,y=/\(\s*(.*)\s*\)/g,k=/([\s\S]*?);/g,C=/-self|flex-/g,x=/[^]*?(:[rp][el]a[\w-]+)[^]*/,O=/stretch|:\s*\w+\-(?:conte|avail)/,A=/([^-])(image-set\()/,j=1,S=1,E=0,_=1,P=[],I=[],z=0,R=null,N=0;return s.use=function e(t){switch(t){case void 0:case null:z=I.length=0;break;default:switch(t.constructor){case Array:for(var r=0,n=t.length;r<n;++r)e(t[r]);break;case
43 Function:I[z++]=t;break;case Boolean:N=0|!!t}}return e},s.set=o,void 0!==e&&o(e),s},o=r(15),s=r.n(o),u=/[A-Z]|^ms/g,l=n(function(e){return e.replace(u,"-$&").toLowerCase()}),f=function(e,t){return null==t||"boolean"==typeof t?"":1===i[e]||45===e.charCodeAt(1)||isNaN(t)||0===t?t:t+"px"},h=function e(t){for(var r=t.length,n=0,i="";n<r;n++){var a=t[n];if(null!=a){var c=void 0;switch(typeof a){case"boolean":break;case"function":0,c=e([a()]);break;case"object":if(Array.isArray(a))c=e(a);else for(var o in c="",a)a[o]&&o&&(c&&(c+=" "),c+=o);break;default:c=a}c&&(i&&(i+=" "),i+=c)}}return i},p="undefined"!=typeof document;function d(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key||""),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),(void 0!==e.container?e.container:document.head).appendChild(t),t}var b=function(){function e(e){this.isSpeedy=!0,this.tags=[],this.ctr=0,this.opts=e}var t=e.prototype;return t.injec
44 t=function(){if(this.injected)throw new Error("already injected!");this.tags[0]=d(this.opts),this.injected=!0},t.speedy=function(e){if(0!==this.ctr)throw new Error("cannot change speedy now");this.isSpeedy=!!e},t.insert=function(e,t){if(this.isSpeedy){var r=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(this.tags[this.tags.length-1]);try{r.insertRule(e,r.cssRules.length)}catch(e){0}}else{var n=d(this.opts);this.tags.push(n),n.appendChild(document.createTextNode(e+(t||"")))}this.ctr++,this.ctr%65e3==0&&this.tags.push(d(this.opts))},t.flush=function(){this.tags.forEach(function(e){return e.parentNode.removeChild(e)}),this.tags=[],this.ctr=0,this.injected=!1},e}();t.a=function(e,t){if(void 0!==e.__SECRET_EMOTION__)return e.__SECRET_EMOTION__;void 0===t&&(t={});var r,n,i=t.key||"css",o=s()(function(e){r+=e,p&&d.insert(e,w)});void 0!==t.prefix&&(n={prefix:t.prefix});var u={regist
45 ered:{},inserted:{},nonce:t.nonce,key:i},d=new b(t);p&&d.inject();var v=new c(n);v.use(t.stylisPlugins)(o);var w="";function g(e,t){if(null==e)return"";switch(typeof e){case"boolean":return"";case"function":if(void 0!==e.__emotion_styles){var r=e.toString();return r}return g.call(this,void 0===this?e():e(this.mergedProps,this.context),t);case"object":return function(e){if(k.has(e))return k.get(e);var t="";return Array.isArray(e)?e.forEach(function(e){t+=g.call(this,e,!1)},this):Object.keys(e).forEach(function(r){"object"!=typeof e[r]?void 0!==u.registered[e[r]]?t+=r+"{"+u.registered[e[r]]+"}":t+=l(r)+":"+f(r,e[r])+";":Array.isArray(e[r])&&"string"==typeof e[r][0]&&void 0===u.registered[e[r][0]]?e[r].forEach(function(e){t+=l(r)+":"+f(r,e)+";"}):t+=r+"{"+g.call(this,e[r],!1)+"}"},this),k.set(e,t),t}.call(this,e);default:var n=u.registered[e];return!1===t&&void 0!==n?n:e}}var m,y,k=new WeakMap,C=/label:\s*([^\s;\n{]+)\s*;/g,x=function(e){var t=!0,r="",n="";null==e||void 0===e.raw?(t=!1
46 ,r+=g.call(this,e,!1)):r+=e[0];for(var i=arguments.length,c=new Array(i>1?i-1:0),o=1;o<i;o++)c[o-1]=arguments[o];return c.forEach(function(n,i){r+=g.call(this,n,46===r.charCodeAt(r.length-1)),!0===t&&void 0!==e[i+1]&&(r+=e[i+1])},this),y=r,r=r.replace(C,function(e,t){return n+="-"+t,""}),m=function(e,t){return a(e+t)+t}(r,n),r};function O(e,t){void 0===u.inserted[m]&&(r="",v(e,t),u.inserted[m]=r)}var A=function(){var e=x.apply(this,arguments),t=i+"-"+m;return void 0===u.registered[t]&&(u.registered[t]=y),O("."+t,e),t};function j(e,t){var r="";return t.split(" ").forEach(function(t){void 0!==u.registered[t]?e.push(t):r+=t+" "}),r}function S(e,t){var r=[],n=j(r,e);return r.length<2?e:n+A(r,t)}function E(e){u.inserted[e]=!0}if(p){var _=document.querySelectorAll("[data-emotion-"+i+"]");Array.prototype.forEach.call(_,function(e){d.tags[0].parentNode.insertBefore(e,d.tags[0]),e.getAttribute("data-emotion-"+i).split(" ").forEach(E)})}var P={flush:function(){p&&(d.flush(),d.inject()),u.inse
47 rted={},u.registered={}},hydrate:function(e){e.forEach(E)},cx:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return S(h(t))},merge:S,getRegisteredStyles:j,injectGlobal:function(){O("",x.apply(this,arguments))},keyframes:function(){var e=x.apply(this,arguments),t="animation-"+m;return O("","@keyframes "+t+"{"+e+"}"),t},css:A,sheet:d,caches:u};return e.__SECRET_EMOTION__=P,P}},function(e,t){e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},function(e,t){function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(t){return"function"==typeof Symbol&&"symbol"===r(Symbol.iterator)?e.exports=n=function(e){return r(e)}:e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbo
48 l&&e!==Symbol.prototype?"symbol":r(e)},n(t)}e.exports=n},function(e,t){function r(t,n){return e.exports=r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(t,n)}e.exports=r},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";r.r(t);var n=r(7),i=r(8),a=r.n(i),c=r(9),o=r.n(c),s=r(10),u=r.n(s),l=r(11),f=r.n(l),h=r(12),p=r.n(h),d=r(13),b=r.n(d),v=r(1),w=r.n(v),g=r(0),m=r(14),y=r(3),k=r(2),C=r(4),x=r(16),O=r(6),A=r(5),j=window,S=j.ajaxurl,E=j.DSPublicPostPreviewData,_=Object(y.a)("flex-direction:column;align-items:stretch;margin-top:10px;"),P=Object(y.a)("width:100%;margin-right:12px;"),I=Object(y.a)("font-style:italic;color:#666;margin:.2em 0 0 !important;"),z=Object(y.a)("display:flex;justify-content:flex-start;align-items:center;margin:0;"),R=function(e){function t(e){var r;return o()(this,t),(r=f()(this,p()(t).call(this,e))).state={previewEnabled:E.p
49 reviewEnabled,previewUrl:E.previewUrl,hasCopied:!1},r.previewUrlInput=Object(g.createRef)(),r.onChange=r.onChange.bind(w()(w()(r))),r.onPreviewUrlInputFocus=r.onPreviewUrlInputFocus.bind(w()(w()(r))),r}return b()(t,e),u()(t,[{key:"onChange",value:function(e){var t=this;this.request({checked:e,post_ID:this.props.postId},function(){t.setState({previewEnabled:!t.state.previewEnabled})})}},{key:"onPreviewUrlInputFocus",value:function(){this.previewUrlInput.current.focus(),this.previewUrlInput.current.select()}},{key:"request",value:function(e,t){jQuery.ajax({type:"POST",url:S,data:a()({action:"public-post-preview",_ajax_nonce:E.nonce},e),success:t})}},{key:"render",value:function(){var e=this,t=this.state,r=t.previewEnabled,n=t.previewUrl,i=t.hasCopied,a=i?Object(k.__)("Preview URL copied","public-post-preview"):Object(k.__)("Copy the preview URL","public-post-preview");return Object(g.createElement)(g.Fragment,null,Object(g.createElement)(O.PluginPostStatusInfo,null,Object(g.createElem
50 ent)(C.CheckboxControl,{label:Object(k.__)("Enable public preview","public-post-preview"),checked:r,onChange:this.onChange})),r&&Object(g.createElement)(O.PluginPostStatusInfo,{className:_},Object(g.createElement)("p",{className:z},Object(g.createElement)("label",{htmlFor:"public-post-preview-url",className:"screen-reader-text"},Object(k.__)("Preview URL","public-post-preview")),Object(g.createElement)("input",{ref:this.previewUrlInput,type:"text",id:"public-post-preview-url",className:P,value:n,readOnly:!0,onFocus:this.onPreviewUrlInputFocus}),Object(g.createElement)(C.ClipboardButton,{text:n,label:a,onCopy:function(){return e.setState({hasCopied:!0})},onFinishCopy:function(){return e.setState({hasCopied:!1})},"aria-disabled":i,icon:Object(g.createElement)(C.SVG,{width:"20",height:"20",viewBox:"0 0 14 16",xmlns:"http://www.w3.org/2000/svg",focusable:"false"},Object(g.createElement)(C.Path,{fillRule:"evenodd",d:"M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9z
51 M2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"}))})),Object(g.createElement)("p",{className:I},Object(k.__)("Copy and share this preview URL.","public-post-preview"))))}}]),t}(g.Component),N=Object(A.compose)([Object(x.withSelect)(function(e){var t=e("core").getPostType,r=e("core/editor"),n=r.getCurrentPostId,i=r.getEditedPostAttribute,a=t(i("type"));return{postId:n(),status:i("status"),isViewable:Object(m.get)(a,["viewable"],!1)}}),Object(A.ifCondition)(function(e){return e.isViewable}),Object(A.ifCondition)(function(e){var t=e.status;return-1===["auto-draft","publish","private"].indexOf(t)})])(R);Object(n.registerPlugin)("public-post-preview",{render:N})}]);
52 \ No newline at end of file
53
54 diff --git a/plugins/public-post-preview/js/public-post-preview.dev.js b/plugins/public-post-preview/js/public-post-preview.dev.js
55 deleted file mode 100644
56 index bdd8e37..0000000
57 --- a/plugins/public-post-preview/js/public-post-preview.dev.js
58 +++ /dev/null
59 @@ -1,111 +0,0 @@
60 -( function( $ ) {
61 - DSPublicPostPreview = {
62 -
63 - /**
64 - * Initializes the plugin.
65 - *
66 - * @since 2.0.0
67 - */
68 - initialize : function() {
69 - var t = this;
70 -
71 - t.checkbox = $( '#public-post-preview' );
72 - t.link = $( '#public-post-preview-link' );
73 - t.nonce = $( '#public_post_preview_wpnonce' );
74 - t.status = $( '#public-post-preview-ajax' );
75 -
76 - if ( ! t.checkbox.prop( 'checked' ) )
77 - t.link.hide();
78 -
79 - t.checkbox.bind( 'change', function() {
80 - t.change();
81 - } );
82 - },
83 -
84 - /**
85 - * Handles a checkbox change.
86 - *
87 - * @since 2.0.0
88 - */
89 - change : function() {
90 - var t = this,
91 - checked = t.checkbox.prop( 'checked' ) ? 1 : 0;
92 -
93 - // Toggle visibility of the link
94 - t.link.toggle();
95 -
96 - // Disable the checkbox, to prevent double AJAX requests
97 - t.checkbox.prop( 'disabled', 'disabled' );
98 -
99 - t.request(
100 - {
101 - _ajax_nonce : t.nonce.val(),
102 - checked : checked,
103 - post_ID : $( '#post_ID' ).val()
104 - },
105 - function( data ) {
106 - // data is '1' if it's a successful request
107 - if ( data ) {
108 - if ( checked ) {
109 - t.status.text( DSPublicPostPreviewL10n.enabled );
110 - t._pulsate( t.status, 'green' );
111 - } else {
112 - t.status.text( DSPublicPostPreviewL10n.disabled );
113 - t._pulsate( t.status, 'red' );
114 - }
115 - }
116 -
117 - // Enable the checkbox again
118 - t.checkbox.prop('disabled', '');
119 - }
120 - );
121 - },
122 -
123 - /**
124 - * Does the AJAX request.
125 - *
126 - * @since 2.0.0
127 - *
128 - * @param {Object} data The data to send.
129 - * @param {Object} callback Callback function for a successfull request.
130 - */
131 - request : function( data, callback ) {
132 - $.ajax( {
133 - type: 'POST',
134 - url: ajaxurl,
135 - data: $.extend(
136 - data,
137 - {
138 - action: 'public-post-preview'
139 - }
140 - ),
141 - success : callback
142 - } );
143 - },
144 -
145 - /**
146 - * Helper for a pulse effect.
147 - *
148 - * @since 2.0.0
149 - *
150 - * @param {Object} e The element.
151 - * @param {String} color The text color of the element.
152 - */
153 - _pulsate : function( e, color ) {
154 - e.css( 'color', color )
155 - .animate( { opacity: 0 }, 600, 'linear' )
156 - .animate( { opacity: 1 }, 600, 'linear' )
157 - .animate( { opacity: 0 }, 600, 'linear' )
158 - .animate( { opacity: 1 }, 600, 'linear' )
159 - .animate( { opacity: 0 }, 600, 'linear', function() {
160 - e.text( '' );
161 - } );
162 - }
163 - };
164 -
165 - // Document is ready.
166 - $( function() {
167 - DSPublicPostPreview.initialize();
168 - } );
169 -
170 -} )( jQuery );
171
172 diff --git a/plugins/public-post-preview/js/public-post-preview.js b/plugins/public-post-preview/js/public-post-preview.js
173 index cc5d1e1..e25a188 100644
174 --- a/plugins/public-post-preview/js/public-post-preview.js
175 +++ b/plugins/public-post-preview/js/public-post-preview.js
176 @@ -32,7 +32,7 @@
177 */
178 change : function() {
179 var t = this,
180 - checked = t.checkbox.prop( 'checked' ) ? 1 : 0;
181 + checked = t.checkbox.prop( 'checked' ) ? 'true' : 'false';
182
183 // Toggle visibility of the link
184 t.link.toggle();
185
186 diff --git a/plugins/public-post-preview/js/public-post-preview.min.js b/plugins/public-post-preview/js/public-post-preview.min.js
187 index 09df216..4de40d9 100644
188 --- a/plugins/public-post-preview/js/public-post-preview.min.js
189 +++ b/plugins/public-post-preview/js/public-post-preview.min.js
190 @@ -1 +1 @@
191 -(function(a){DSPublicPostPreview={initialize:function(){var b=this;b.checkbox=a("#public-post-preview");b.link=a("#public-post-preview-link");b.nonce=a("#public_post_preview_wpnonce");b.status=a("#public-post-preview-ajax");b.status.css("opacity",0);b.checkbox.bind("change",function(){b.change();});b.link.find("input").on("focus",function(){a(this).select();});},change:function(){var b=this,c=b.checkbox.prop("checked")?1:0;b.link.toggle();b.checkbox.prop("disabled","disabled");b.request({_ajax_nonce:b.nonce.val(),checked:c,post_ID:a("#post_ID").val()},function(d){if(d){if(c){b.status.text(DSPublicPostPreviewL10n.enabled);b._pulsate(b.status,"green");}else{b.status.text(DSPublicPostPreviewL10n.disabled);b._pulsate(b.status,"red");}}b.checkbox.prop("disabled","");});},request:function(b,c){a.ajax({type:"POST",url:ajaxurl,data:a.extend(b,{action:"public-post-preview"}),success:c});},_pulsate:function(c,b){c.css("color",b).animate({opacity:1},600,"linear").animate({opacity:0},600,"linea
192 r",function(){c.empty();});}};a(DSPublicPostPreview.initialize());})(jQuery);
193 \ No newline at end of file
194 +(function(a){DSPublicPostPreview={initialize:function(){var b=this;b.checkbox=a("#public-post-preview");b.link=a("#public-post-preview-link");b.nonce=a("#public_post_preview_wpnonce");b.status=a("#public-post-preview-ajax");b.status.css("opacity",0);b.checkbox.bind("change",function(){b.change();});b.link.find("input").on("focus",function(){a(this).select();});},change:function(){var b=this,c=b.checkbox.prop("checked")?"true":"false";b.link.toggle();b.checkbox.prop("disabled","disabled");b.request({_ajax_nonce:b.nonce.val(),checked:c,post_ID:a("#post_ID").val()},function(d){if(d){if(c){b.status.text(DSPublicPostPreviewL10n.enabled);b._pulsate(b.status,"green");}else{b.status.text(DSPublicPostPreviewL10n.disabled);b._pulsate(b.status,"red");}}b.checkbox.prop("disabled","");});},request:function(b,c){a.ajax({type:"POST",url:ajaxurl,data:a.extend(b,{action:"public-post-preview"}),success:c});},_pulsate:function(c,b){c.css("color",b).animate({opacity:1},600,"linear").animate({opacity:0}
195 ,600,"linear",function(){c.empty();});}};a(DSPublicPostPreview.initialize());})(jQuery);
196 \ No newline at end of file
197
198 diff --git a/plugins/public-post-preview/js/src/components/preview-toggle/index.js b/plugins/public-post-preview/js/src/components/preview-toggle/index.js
199 new file mode 100644
200 index 0000000..9650286
201 --- /dev/null
202 +++ b/plugins/public-post-preview/js/src/components/preview-toggle/index.js
203 @@ -0,0 +1,171 @@
204 +/**
205 + * External dependencies
206 + */
207 +import { get } from 'lodash';
208 +import { css } from 'emotion'
209 +
210 +import { __ } from '@wordpress/i18n';
211 +import {
212 + CheckboxControl,
213 + ClipboardButton,
214 + Path,
215 + SVG,
216 +} from '@wordpress/components';
217 +import {
218 + Component,
219 + createRef,
220 + Fragment,
221 +} from '@wordpress/element';
222 +import { withSelect } from '@wordpress/data';
223 +import { PluginPostStatusInfo } from '@wordpress/edit-post';
224 +import { ifCondition, compose } from '@wordpress/compose';
225 +
226 +const {
227 + ajaxurl,
228 + DSPublicPostPreviewData,
229 +} = window;
230 +
231 +const pluginPostStatusInfoPreviewUrl = css`
232 + flex-direction: column;
233 + align-items: stretch;
234 + margin-top: 10px;
235 +`
236 +
237 +const pluginPostStatusInfoPreviewUrlInput = css`
238 + width: 100%;
239 + margin-right: 12px;
240 +`
241 +
242 +const pluginPostStatusInfoPreviewDescription = css`
243 + font-style: italic;
244 + color: #666;
245 + margin: .2em 0 0 !important;
246 +`
247 +
248 +const pluginPostStatusInfoPreviewUrlInputWrapper = css`
249 + display: flex;
250 + justify-content: flex-start;
251 + align-items: center;
252 + margin: 0;
253 +`
254 +
255 +class PreviewToggle extends Component {
256 +
257 + constructor( props ) {
258 + super( props )
259 +
260 + this.state = {
261 + previewEnabled: DSPublicPostPreviewData.previewEnabled,
262 + previewUrl: DSPublicPostPreviewData.previewUrl,
263 + hasCopied: false,
264 + }
265 +
266 + this.previewUrlInput = createRef();
267 +
268 + this.onChange = this.onChange.bind( this );
269 + this.onPreviewUrlInputFocus = this.onPreviewUrlInputFocus.bind( this );
270 + }
271 +
272 + onChange( checked ) {
273 + this.request( {
274 + checked,
275 + post_ID: this.props.postId
276 + }, () => {
277 + this.setState( { previewEnabled: ! this.state.previewEnabled } );
278 + } )
279 + }
280 +
281 + onPreviewUrlInputFocus() {
282 + this.previewUrlInput.current.focus();
283 + this.previewUrlInput.current.select();
284 + }
285 +
286 + request( data, callback ) {
287 + jQuery.ajax( {
288 + type: 'POST',
289 + url: ajaxurl,
290 + data: {
291 + action: 'public-post-preview',
292 + _ajax_nonce: DSPublicPostPreviewData.nonce,
293 + ...data
294 + },
295 + success: callback,
296 + } );
297 + }
298 +
299 + render() {
300 + const {
301 + previewEnabled,
302 + previewUrl,
303 + hasCopied
304 + } = this.state;
305 +
306 + const ariaCopyLabel = hasCopied ? __( 'Preview URL copied', 'public-post-preview' ) : __( 'Copy the preview URL', 'public-post-preview' );
307 +
308 + return (
309 + <Fragment>
310 + <PluginPostStatusInfo>
311 + <CheckboxControl
312 + label={ __( 'Enable public preview', 'public-post-preview' ) }
313 + checked={ previewEnabled }
314 + onChange={ this.onChange }
315 + />
316 + </PluginPostStatusInfo>
317 + { previewEnabled &&
318 + <PluginPostStatusInfo className={ pluginPostStatusInfoPreviewUrl }>
319 + <p className={ pluginPostStatusInfoPreviewUrlInputWrapper }>
320 + <label htmlFor="public-post-preview-url" className="screen-reader-text">{ __( 'Preview URL', 'public-post-preview' ) }</label>
321 + <input
322 + ref={ this.previewUrlInput }
323 + type="text"
324 + id="public-post-preview-url"
325 + className={ pluginPostStatusInfoPreviewUrlInput }
326 + value={ previewUrl }
327 + readOnly
328 + onFocus={ this.onPreviewUrlInputFocus }
329 + />
330 + <ClipboardButton
331 + text={ previewUrl }
332 + label={ ariaCopyLabel }
333 + onCopy={ () => this.setState( { hasCopied: true } ) }
334 + onFinishCopy={ () => this.setState( { hasCopied: false } ) }
335 + aria-disabled={ hasCopied }
336 + icon={ <SVG width="20" height="20" viewBox="0 0 14 16" xmlns="http://www.w3.org/2000/svg" focusable="false" ><Path fillRule="evenodd" d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"/></SVG> }
337 + />
338 + </p>
339 + <p className={ pluginPostStatusInfoPreviewDescription }>
340 + { __( 'Copy and share this preview URL.', 'public-post-preview' ) }
341 + </p>
342 + </PluginPostStatusInfo>
343 + }
344 + </Fragment>
345 + );
346 + }
347 +}
348 +
349 +export default compose( [
350 + withSelect( ( select ) => {
351 + const {
352 + getPostType,
353 + } = select( 'core' );
354 + const {
355 + getCurrentPostId,
356 + getEditedPostAttribute,
357 + } = select( 'core/editor' );
358 + const postType = getPostType( getEditedPostAttribute( 'type' ) );
359 +
360 + return {
361 + postId: getCurrentPostId(),
362 + status: getEditedPostAttribute( 'status' ),
363 + isViewable: get( postType, [ 'viewable' ], false ),
364 + };
365 + } ),
366 + ifCondition( ( { isViewable } ) => isViewable ),
367 + ifCondition( ( { status } ) => {
368 + return [
369 + 'auto-draft',
370 + 'publish',
371 + 'private',
372 + ].indexOf( status ) === -1;
373 + } ),
374 +] )( PreviewToggle );
375
376 diff --git a/plugins/public-post-preview/js/src/index.js b/plugins/public-post-preview/js/src/index.js
377 new file mode 100644
378 index 0000000..d56dfc6
379 --- /dev/null
380 +++ b/plugins/public-post-preview/js/src/index.js
381 @@ -0,0 +1,6 @@
382 +import { registerPlugin } from '@wordpress/plugins';
383 +import { default as PreviewToggle } from './components/preview-toggle';
384 +
385 +registerPlugin( 'public-post-preview', {
386 + render: PreviewToggle,
387 +} );
388
389 diff --git a/plugins/public-post-preview/languages/public-post-preview.php b/plugins/public-post-preview/languages/public-post-preview.php
390 new file mode 100644
391 index 0000000..118fa0f
392 --- /dev/null
393 +++ b/plugins/public-post-preview/languages/public-post-preview.php
394 @@ -0,0 +1,19 @@
395 +<?php
396 +/* THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY. */
397 +$generated_i18n_strings = array(
398 + // Reference: js/src/components/preview-toggle/index.js:103
399 + __( 'Preview URL copied', 'public-post-preview' ),
400 +
401 + // Reference: js/src/components/preview-toggle/index.js:103
402 + __( 'Copy the preview URL', 'public-post-preview' ),
403 +
404 + // Reference: js/src/components/preview-toggle/index.js:109
405 + __( 'Enable public preview', 'public-post-preview' ),
406 +
407 + // Reference: js/src/components/preview-toggle/index.js:117
408 + __( 'Preview URL', 'public-post-preview' ),
409 +
410 + // Reference: js/src/components/preview-toggle/index.js:137
411 + __( 'Copy and share this preview URL.', 'public-post-preview' )
412 +);
413 +/* THIS IS THE END OF THE GENERATED FILE */
414
415 diff --git a/plugins/public-post-preview/languages/public-post-preview.pot b/plugins/public-post-preview/languages/public-post-preview.pot
416 new file mode 100644
417 index 0000000..6939e77
418 --- /dev/null
419 +++ b/plugins/public-post-preview/languages/public-post-preview.pot
420 @@ -0,0 +1,24 @@
421 +msgid ""
422 +msgstr ""
423 +"Content-Type: text/plain; charset=utf-8\n"
424 +"X-Generator: babel-plugin-makepot\n"
425 +
426 +#: js/src/components/preview-toggle/index.js:103
427 +msgid "Preview URL copied"
428 +msgstr ""
429 +
430 +#: js/src/components/preview-toggle/index.js:103
431 +msgid "Copy the preview URL"
432 +msgstr ""
433 +
434 +#: js/src/components/preview-toggle/index.js:109
435 +msgid "Enable public preview"
436 +msgstr ""
437 +
438 +#: js/src/components/preview-toggle/index.js:117
439 +msgid "Preview URL"
440 +msgstr ""
441 +
442 +#: js/src/components/preview-toggle/index.js:137
443 +msgid "Copy and share this preview URL."
444 +msgstr ""
445 \ No newline at end of file
446
447 diff --git a/plugins/public-post-preview/public-post-preview.php b/plugins/public-post-preview/public-post-preview.php
448 index 5130a0a..742a93c 100644
449 --- a/plugins/public-post-preview/public-post-preview.php
450 +++ b/plugins/public-post-preview/public-post-preview.php
451 @@ -1,33 +1,31 @@
452 <?php
453 /**
454 * Plugin Name: Public Post Preview
455 - * Version: 2.6.0
456 + * Version: 2.8.0
457 * Description: Enables you to give a link to anonymous users for public preview of any post type before it is published.
458 * Author: Dominik Schilling
459 - * Author URI: http://wphelper.de/
460 + * Author URI: https://wphelper.de/
461 * Plugin URI: https://dominikschilling.de/wp-plugins/public-post-preview/en/
462 - *
463 * Text Domain: public-post-preview
464 - *
465 * License: GPLv2 or later
466 *
467 * Previously (2009-2011) maintained by Jonathan Dingman and Matt Martz.
468 *
469 - * Copyright (C) 2012-2017 Dominik Schilling
470 + * Copyright (C) 2012-2018 Dominik Schilling
471 *
472 - * This program is free software; you can redistribute it and/or
473 - * modify it under the terms of the GNU General Public License
474 - * as published by the Free Software Foundation; either version 2
475 - * of the License, or (at your option) any later version.
476 + * This program is free software; you can redistribute it and/or
477 + * modify it under the terms of the GNU General Public License
478 + * as published by the Free Software Foundation; either version 2
479 + * of the License, or (at your option) any later version.
480 *
481 - * This program is distributed in the hope that it will be useful,
482 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
483 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
484 - * GNU General Public License for more details.
485 + * This program is distributed in the hope that it will be useful,
486 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
487 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
488 + * GNU General Public License for more details.
489 *
490 - * You should have received a copy of the GNU General Public License
491 - * along with this program; if not, write to the Free Software
492 - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
493 + * You should have received a copy of the GNU General Public License
494 + * along with this program; if not, write to the Free Software
495 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
496 */
497
498 /**
499 @@ -63,7 +61,7 @@ class DS_Public_Post_Preview {
500 add_action( 'post_submitbox_misc_actions', array( __CLASS__, 'post_submitbox_misc_actions' ) );
501 add_action( 'save_post', array( __CLASS__, 'register_public_preview' ), 20, 2 );
502 add_action( 'wp_ajax_public-post-preview', array( __CLASS__, 'ajax_register_public_preview' ) );
503 - add_action( 'admin_enqueue_scripts' , array( __CLASS__, 'enqueue_script' ) );
504 + add_action( 'admin_enqueue_scripts', array( __CLASS__, 'enqueue_script' ) );
505 add_filter( 'display_post_states', array( __CLASS__, 'display_preview_state' ), 20, 2 );
506 }
507 }
508 @@ -89,24 +87,65 @@ class DS_Public_Post_Preview {
509 return;
510 }
511
512 - $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
513 + if (
514 + ( method_exists( get_current_screen(), 'is_block_editor' ) && get_current_screen()->is_block_editor() ) ||
515 + ( function_exists( 'is_gutenberg_page' ) && is_gutenberg_page() )
516 + ) {
517 + wp_enqueue_script(
518 + 'public-post-preview-gutenberg',
519 + plugins_url( 'js/gutenberg-integration.js', __FILE__ ),
520 + array(
521 + 'lodash',
522 + 'wp-compose',
523 + 'wp-components',
524 + 'wp-data',
525 + 'wp-edit-post',
526 + 'wp-element',
527 + 'wp-i18n',
528 + ),
529 + '20181127',
530 + true
531 + );
532
533 - wp_enqueue_script(
534 - 'public-post-preview',
535 - plugins_url( "js/public-post-preview$suffix.js", __FILE__ ),
536 - array( 'jquery' ),
537 - '20160403',
538 - true
539 - );
540 + $post = get_post();
541 + wp_localize_script(
542 + 'public-post-preview-gutenberg',
543 + 'DSPublicPostPreviewData',
544 + array(
545 + 'previewEnabled' => self::is_public_preview_enabled( $post ),
546 + 'previewUrl' => self::get_preview_link( $post ),
547 + 'nonce' => wp_create_nonce( 'public-post-preview_' . $post->ID ),
548 + )
549 + );
550
551 - wp_localize_script(
552 - 'public-post-preview',
553 - 'DSPublicPostPreviewL10n',
554 - array(
555 - 'enabled' => __( 'Enabled!', 'public-post-preview' ),
556 - 'disabled' => __( 'Disabled!', 'public-post-preview' ),
557 - )
558 - );
559 + if ( function_exists( 'gutenberg_get_jed_locale_data' ) ) {
560 + $locale_data = gutenberg_get_jed_locale_data( 'public-post-preview' );
561 + wp_add_inline_script(
562 + 'public-post-preview-gutenberg',
563 + 'wp.i18n.setLocaleData( ' . wp_json_encode( $locale_data ) . ', "public-post-preview" );',
564 + 'before'
565 + );
566 + }
567 + } else {
568 + $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
569 +
570 + wp_enqueue_script(
571 + 'public-post-preview',
572 + plugins_url( "js/public-post-preview$suffix.js", __FILE__ ),
573 + array( 'jquery' ),
574 + '20180914',
575 + true
576 + );
577 +
578 + wp_localize_script(
579 + 'public-post-preview',
580 + 'DSPublicPostPreviewL10n',
581 + array(
582 + 'enabled' => __( 'Enabled!', 'public-post-preview' ),
583 + 'disabled' => __( 'Disabled!', 'public-post-preview' ),
584 + )
585 + );
586 + }
587 }
588
589 /**
590 @@ -187,10 +226,9 @@ class DS_Public_Post_Preview {
591 $post = get_post();
592 }
593
594 - wp_nonce_field( 'public_post_preview', 'public_post_preview_wpnonce' );
595 + wp_nonce_field( 'public-post-preview_' . $post->ID, 'public_post_preview_wpnonce' );
596
597 - $preview_post_ids = self::get_preview_post_ids();
598 - $enabled = in_array( $post->ID, $preview_post_ids );
599 + $enabled = self::is_public_preview_enabled( $post );
600 ?>
601 <label><input type="checkbox"<?php checked( $enabled ); ?> name="public_post_preview" id="public-post-preview" value="1" />
602 <?php _e( 'Enable public preview', 'public-post-preview' ); ?> <span id="public-post-preview-ajax"></span></label>
603 @@ -198,12 +236,25 @@ class DS_Public_Post_Preview {
604 <div id="public-post-preview-link" style="margin-top:6px"<?php echo $enabled ? '' : ' class="hidden"'; ?>>
605 <label>
606 <input type="text" name="public_post_preview_link" class="regular-text" value="<?php echo esc_attr( self::get_preview_link( $post ) ); ?>" style="width:99%" readonly />
607 - <span class="description"><?php _e( '(Copy and share this link.)', 'public-post-preview' ); ?></span>
608 + <span class="description"><?php _e( 'Copy and share this preview URL.', 'public-post-preview' ); ?></span>
609 </label>
610 </div>
611 <?php
612 }
613
614 + /**
615 + * Checks if a public preview is enabled for a post.
616 + *
617 + * @since 2.7.0
618 + *
619 + * @param WP_Post $post The post object.
620 + * @return bool True if a public preview is enabled, false if not.
621 + */
622 + private static function is_public_preview_enabled( $post ) {
623 + $preview_post_ids = self::get_preview_post_ids();
624 + return in_array( $post->ID, $preview_post_ids, true );
625 + }
626 +
627 /**
628 * Returns the public preview link.
629 *
630 @@ -220,25 +271,25 @@ class DS_Public_Post_Preview {
631 public static function get_preview_link( $post ) {
632 if ( 'page' == $post->post_type ) {
633 $args = array(
634 - 'page_id' => $post->ID,
635 + 'page_id' => $post->ID,
636 );
637 - } else if ( 'post' == $post->post_type ) {
638 + } elseif ( 'post' == $post->post_type ) {
639 $args = array(
640 - 'p' => $post->ID,
641 + 'p' => $post->ID,
642 );
643 } else {
644 $args = array(
645 - 'p' => $post->ID,
646 - 'post_type' => $post->post_type,
647 + 'p' => $post->ID,
648 + 'post_type' => $post->post_type,
649 );
650 }
651
652 $args['preview'] = true;
653 - $args['_ppp'] = self::create_nonce( 'public_post_preview_' . $post->ID );
654 + $args['_ppp'] = self::create_nonce( 'public_post_preview_' . $post->ID );
655
656 $link = add_query_arg( $args, home_url( '/' ) );
657
658 - return apply_filters( 'ppp_preview_link', $link, $post->ID, $post );
659 + return apply_filters( 'ppp_preview_link', $link, $post->ID, $post );
660 }
661
662 /**
663 @@ -298,7 +349,7 @@ class DS_Public_Post_Preview {
664 * @return bool Returns false on a failure, true on a success.
665 */
666 public static function unregister_public_preview_on_status_change( $new_status, $old_status, $post ) {
667 - $disallowed_status = self::get_published_statuses();
668 + $disallowed_status = self::get_published_statuses();
669 $disallowed_status[] = 'trash';
670
671 if ( in_array( $new_status, $disallowed_status ) ) {
672 @@ -318,7 +369,7 @@ class DS_Public_Post_Preview {
673 * @return bool Returns false on a failure, true on a success.
674 */
675 public static function unregister_public_preview_on_edit( $post_id, $post ) {
676 - $disallowed_status = self::get_published_statuses();
677 + $disallowed_status = self::get_published_statuses();
678 $disallowed_status[] = 'trash';
679
680 if ( in_array( $post->post_status, $disallowed_status ) ) {
681 @@ -356,36 +407,37 @@ class DS_Public_Post_Preview {
682 * @since 2.0.0
683 */
684 public static function ajax_register_public_preview() {
685 - check_ajax_referer( 'public_post_preview' );
686 -
687 $preview_post_id = (int) $_POST['post_ID'];
688 +
689 + check_ajax_referer( 'public-post-preview_' . $preview_post_id );
690 +
691 $post = get_post( $preview_post_id );
692
693 - if ( ( 'page' == $post->post_type && ! current_user_can( 'edit_page', $preview_post_id ) ) || ! current_user_can( 'edit_post', $preview_post_id ) ) {
694 - wp_die( 0 );
695 + if ( ! current_user_can( 'edit_post', $preview_post_id ) ) {
696 + wp_send_json_error( 'cannot_edit' );
697 }
698
699 if ( in_array( $post->post_status, self::get_published_statuses() ) ) {
700 - wp_die( 0 );
701 + wp_send_json_error( 'invalid_post_status' );
702 }
703
704 $preview_post_ids = self::get_preview_post_ids();
705
706 - if ( empty( $_POST['checked'] ) && in_array( $preview_post_id, $preview_post_ids ) ) {
707 + if ( 'false' === $_POST['checked'] && in_array( $preview_post_id, $preview_post_ids ) ) {
708 $preview_post_ids = array_diff( $preview_post_ids, (array) $preview_post_id );
709 - } elseif ( ! empty( $_POST['checked'] ) && ! in_array( $preview_post_id, $preview_post_ids ) ) {
710 + } elseif ( 'true' === $_POST['checked'] && ! in_array( $preview_post_id, $preview_post_ids ) ) {
711 $preview_post_ids = array_merge( $preview_post_ids, (array) $preview_post_id );
712 } else {
713 - wp_die( 0 );
714 + wp_send_json_error( 'unknown_status' );
715 }
716
717 $ret = self::set_preview_post_ids( $preview_post_ids );
718
719 if ( ! $ret ) {
720 - wp_die( 0 );
721 + wp_send_json_error( 'not_saved' );
722 }
723
724 - wp_die( 1 );
725 + wp_send_json_success();
726 }
727
728 /**
729 @@ -423,6 +475,7 @@ class DS_Public_Post_Preview {
730 if ( ! headers_sent() ) {
731 nocache_headers();
732 }
733 + add_action( 'wp_head', 'wp_no_robots' );
734
735 add_filter( 'posts_results', array( __CLASS__, 'set_post_to_publish' ), 10, 2 );
736 }
737 @@ -449,7 +502,7 @@ class DS_Public_Post_Preview {
738 }
739
740 if ( ! in_array( $post_id, self::get_preview_post_ids() ) ) {
741 - wp_die( __( 'No Public Preview available!', 'public-post-preview' ) );
742 + wp_die( __( 'No public preview available!', 'public-post-preview' ) );
743 }
744
745 return true;
746
747 diff --git a/plugins/public-post-preview/readme.txt b/plugins/public-post-preview/readme.txt
748 index c286709..ebd6f19 100644
749 --- a/plugins/public-post-preview/readme.txt
750 +++ b/plugins/public-post-preview/readme.txt
751 @@ -1,9 +1,9 @@
752 === Public Post Preview ===
753 Contributors: ocean90
754 Tags: public, post, preview, posts, custom post types, draft
755 -Requires at least: 3.5
756 -Tested up to: 4.7
757 -Stable tag: 2.6.0
758 +Requires at least: 4.6
759 +Tested up to: 5.0
760 +Stable tag: 2.8.0
761 License: GPLv2 or later
762 License URI: http://www.gnu.org/licenses/gpl-2.0.html
763
764 @@ -40,7 +40,8 @@ To upload the plugin through WordPress, instead of FTP:
765
766 == Screenshots ==
767
768 -1. Edit Posts Page
769 +1. Setting in block editor
770 +2. Setting in classic editor
771
772 == Usage ==
773 * To enable a public post preview check the box below the edit post box.
774 @@ -71,6 +72,14 @@ function my_nonce_life() {
775 Or use the [Public Post Preview Configurator](https://wordpress.org/plugins/public-post-preview-configurator/).
776
777 == Change Log ==
778 +
779 += 2.8.0 (2018-11-27): =
780 +* Add support for WordPress 5.0 and the new block editor.
781 +
782 += 2.7.0 (2018-09-14): =
783 +* Initial support for Gutenberg.
784 +* Block robots for public post previews. Props [@westonruter](https://github.com/westonruter).
785 +
786 = 2.6.0 (2017-04-27): =
787 * Make `DS_Public_Post_Preview::get_preview_link()` public. Props [@rcstr](https://github.com/rcstr).
788 * Send no-cache headers for public post previews.