From 69d7902117295b149e4ccf4faf2d43b693a5b18a Mon Sep 17 00:00:00 2001 From: "Patryk Rzucidlo (PTKDev)" Date: Tue, 19 May 2020 17:56:40 +0200 Subject: [PATCH] [Release] v2.6.1 --- CHANGELOG.md | 9 +- README.md | 4 +- dist/lib/en/instagram-widget.js | 4 +- dist/lib/en/instagram-widget.min.js | 4 +- dist/lib/it/instagram-widget.js | 4 +- dist/lib/it/instagram-widget.min.js | 4 +- dist/lib/pl/instagram-widget.js | 4 +- dist/lib/pl/instagram-widget.min.js | 4 +- .../instagram-widget-wordpress-plugin.zip | Bin 19065 -> 20299 bytes gulpfile.js | 30 ++++- package.json | 2 +- ...tos.php => last_9_photos_webcomponent.php} | 0 wordpress/readme.txt | 112 ++++++++---------- 13 files changed, 99 insertions(+), 82 deletions(-) rename wordpress/{last9photos.php => last_9_photos_webcomponent.php} (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d1965f..3cc0cfa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# v2.6.1 (May 19, 2020) +* New: Wordpress Plugin available on [store](https://wordpress.org/plugins/last-9-photos-webcomponent/). + +[![](https://img.shields.io/badge/donate-paypal-005EA6.svg?logo=paypal)](https://www.paypal.me/ptkdev) [![](https://img.shields.io/badge/donate-patreon-F87668.svg?logo=patreon)](https://www.patreon.com/ptkdev) [![](https://img.shields.io/badge/donate-sponsors-ea4aaa.svg?logo=github)](https://github.com/sponsors/ptkdev/) [![](https://img.shields.io/badge/donate-ko--fi-29abe0.svg?logo=ko-fi)](https://ko-fi.com/ptkdev) + + # v2.6.0 (May 18, 2020) * Feature: Overwrite CSS Style with selector `::part` * New attribute: mouse-hover @@ -5,9 +11,6 @@ * New attribute: shadows * Fix: Wordpress Plugin -[![](https://img.shields.io/badge/donate-paypal-005EA6.svg?logo=paypal)](https://www.paypal.me/ptkdev) [![](https://img.shields.io/badge/donate-patreon-F87668.svg?logo=patreon)](https://www.patreon.com/ptkdev) [![](https://img.shields.io/badge/donate-sponsors-ea4aaa.svg?logo=github)](https://github.com/sponsors/ptkdev/) [![](https://img.shields.io/badge/donate-ko--fi-29abe0.svg?logo=ko-fi)](https://ko-fi.com/ptkdev) - - # v2.5.0 (May 04, 2020) * Fix: now you can use multiple webcomponents in the same html page (#3) * NOTE: better to use the full close tag `` than short `/>` diff --git a/README.md b/README.md index 152064e..16155ed 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 🌉 WebComponent: Instagram Widget -[![](https://img.shields.io/badge/version-v2.6.0-lightgrey.svg)](https://github.com/ptkdev-components/webcomponent-instagram-widget/releases) [![](https://img.shields.io/npm/v/@ptkdev/webcomponent-instagram-widget.svg)](https://www.npmjs.com/package/@ptkdev/webcomponent-instagram-widget) [![](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://github.com/ptkdev-components/webcomponent-instagram-widget/blob/master/LICENSE.md) [![](https://img.shields.io/badge/ES-9-F7DF1E.svg)](https://wikipedia.org/wiki/ECMAScript) [![](https://snyk.io/test/github/ptkdev-components/webcomponent-instagram-widget/badge.svg)](https://snyk.io/test/github/ptkdev-components/webcomponent-instagram-widget) [![](https://discordapp.com/api/guilds/383373985666301975/embed.png)](http://discord.ptkdev.io) +[![](https://img.shields.io/badge/version-v2.6.1-lightgrey.svg)](https://github.com/ptkdev-components/webcomponent-instagram-widget/releases) [![](https://img.shields.io/npm/v/@ptkdev/webcomponent-instagram-widget.svg)](https://www.npmjs.com/package/@ptkdev/webcomponent-instagram-widget) [![](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://github.com/ptkdev-components/webcomponent-instagram-widget/blob/master/LICENSE.md) [![](https://img.shields.io/badge/ES-9-F7DF1E.svg)](https://wikipedia.org/wiki/ECMAScript) [![](https://snyk.io/test/github/ptkdev-components/webcomponent-instagram-widget/badge.svg)](https://snyk.io/test/github/ptkdev-components/webcomponent-instagram-widget) [![](https://discordapp.com/api/guilds/383373985666301975/embed.png)](http://discord.ptkdev.io) Last 9 Photos: Instagram Widget of your Instagram Profile for your blog. Show latest 9 pics from your instagram account. (Unofficial Instagram Widget) @@ -79,7 +79,7 @@ import '@ptkdev/webcomponent-instagram-widget'; See folder `examples`, run with `npm run example`. Below is available a description of `options` values and all logger methods. ## 📖 Installation (Wordpress) -1. Download [wordpress-plugin](https://github.com/ptkdev-components/webcomponent-instagram-widget/raw/master/dist/wordpress/instagram-widget-wordpress-plugin.zip) and install it. +1. Download wordpress plugin from [official store](https://wordpress.org/plugins/last-9-photos-webcomponent/) or [mirror](https://github.com/ptkdev-components/webcomponent-instagram-widget/raw/master/dist/wordpress/instagram-widget-wordpress-plugin.zip) and install it. 1. Add code to your html widget, example: `Appearance` --> `Widget` --> insert `HTML Widget` and paste html code (and replace `@ptkdev` with your instagram username): ```html diff --git a/dist/lib/en/instagram-widget.js b/dist/lib/en/instagram-widget.js index 7f62cc2..11631a2 100644 --- a/dist/lib/en/instagram-widget.js +++ b/dist/lib/en/instagram-widget.js @@ -1,4 +1,4 @@ -// WebComponent: InstagramWidget 2.6.0 - Collection of WebComponents by Patryk Rzucidlo [@PTKDev] +// WebComponent: InstagramWidget 2.6.1 - Collection of WebComponents by Patryk Rzucidlo [@PTKDev] // https://github.com/ptkdev-components/webcomponent-instagram-widget (function() { /** * InstagramWidget WebComponent @@ -15,7 +15,7 @@ class InstagramWidget extends HTMLElement { super(); const template = document.createElement("template"); - template.innerHTML = `
+ template.innerHTML = `
    diff --git a/dist/lib/en/instagram-widget.min.js b/dist/lib/en/instagram-widget.min.js index f275191..5193614 100644 --- a/dist/lib/en/instagram-widget.min.js +++ b/dist/lib/en/instagram-widget.min.js @@ -1,3 +1,3 @@ -// WebComponent: InstagramWidget 2.6.0 - Collection of WebComponents by Patryk Rzucidlo [@PTKDev] +// WebComponent: InstagramWidget 2.6.1 - Collection of WebComponents by Patryk Rzucidlo [@PTKDev] // https://github.com/ptkdev-components/webcomponent-instagram-widget -(function() { class InstagramWidget extends HTMLElement{constructor(){super();const t=document.createElement("template");t.innerHTML='
    \n\t
    \n\t\t
    \n\t\t\t
      \n\t\t
      \n\t
      \n
      ',this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(t.content.cloneNode(!0)),this.json=null,this.options_default={username:"@ptkdev","items-limit":"9","image-width":"100%","image-height":"100%",grid:"responsive",cache:"enabled","border-spacing":"2px","border-corners":"5","force-square":"yes",shadows:"disabled","mouse-hover":"disabled","show-title":"enabled"},this.options=Object.create(this.options_default),this.resizeAction=function(t){this.resize(t)}.bind(this)}connectedCallback(){window.addEventListener("resize",this.resizeAction)}buildHTML(){let t=this.json.graphql.user.edge_owner_to_timeline_media.edges,e=[];for(let i=0;i${`;switch(this.shadowRoot.querySelector(".instagram-widget-photos").innerHTML=i,this.options["mouse-hover"]){case"type1":this.shadowRoot.querySelector("#instagram-widget-style").innerHTML=this.shadowRoot.querySelector("#instagram-widget-style").innerHTML+"\n\t\t\t\t#instagram-widget .instagram-widget-photo{transition: opacity 0.3s ease-in-out;}\n\t\t\t\t#instagram-widget .instagram-widget-photo:hover{opacity: 0.70;}"}if(""!==this.options.grid&&null!==this.options.grid&&"responsive"!==this.options.grid){let t=this.options.grid.split("x"),e=100/parseInt(t[0]),i=this.shadowRoot.querySelectorAll(".instagram-widget-photos img");for(let s=0;s#instagram-widget *{margin:0;padding:0;line-height:0}#instagram-widget .instagram-widget-container{text-align:center;justify-content:center;font-weight:500}#instagram-widget .instagram-widget-photos li img{border-radius:5%;background-color:#f8f8ff;object-fit:cover;object-position:50% 50%;max-width:300px;max-height:300px;min-width:80px;min-height:80px;margin:2px}#instagram-widget .instagram-content ul{list-style-type:none;padding-inline-start:0;width:100%}#instagram-widget .instagram-widget-photos li{list-style-type:none;display:inline}
      \n\t
      \n\t\t
      \n\t\t\t
        \n\t\t
        \n\t
        \n
        ',this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(t.content.cloneNode(!0)),this.json=null,this.options_default={username:"@ptkdev","items-limit":"9","image-width":"100%","image-height":"100%",grid:"responsive",cache:"enabled","border-spacing":"2px","border-corners":"5","force-square":"yes",shadows:"disabled","mouse-hover":"disabled","show-title":"enabled"},this.options=Object.create(this.options_default),this.resizeAction=function(t){this.resize(t)}.bind(this)}connectedCallback(){window.addEventListener("resize",this.resizeAction)}buildHTML(){let t=this.json.graphql.user.edge_owner_to_timeline_media.edges,e=[];for(let i=0;i${`;switch(this.shadowRoot.querySelector(".instagram-widget-photos").innerHTML=i,this.options["mouse-hover"]){case"type1":this.shadowRoot.querySelector("#instagram-widget-style").innerHTML=this.shadowRoot.querySelector("#instagram-widget-style").innerHTML+"\n\t\t\t\t#instagram-widget .instagram-widget-photo{transition: opacity 0.3s ease-in-out;}\n\t\t\t\t#instagram-widget .instagram-widget-photo:hover{opacity: 0.70;}"}if(""!==this.options.grid&&null!==this.options.grid&&"responsive"!==this.options.grid){let t=this.options.grid.split("x"),e=100/parseInt(t[0]),i=this.shadowRoot.querySelectorAll(".instagram-widget-photos img");for(let s=0;s +// WebComponent: InstagramWidget 2.6.1 - Collection of WebComponents by Patryk Rzucidlo [@PTKDev] // https://github.com/ptkdev-components/webcomponent-instagram-widget (function() { /** * InstagramWidget WebComponent @@ -15,7 +15,7 @@ class InstagramWidget extends HTMLElement { super(); const template = document.createElement("template"); - template.innerHTML = `
        + template.innerHTML = `
          diff --git a/dist/lib/it/instagram-widget.min.js b/dist/lib/it/instagram-widget.min.js index f275191..5193614 100644 --- a/dist/lib/it/instagram-widget.min.js +++ b/dist/lib/it/instagram-widget.min.js @@ -1,3 +1,3 @@ -// WebComponent: InstagramWidget 2.6.0 - Collection of WebComponents by Patryk Rzucidlo [@PTKDev] +// WebComponent: InstagramWidget 2.6.1 - Collection of WebComponents by Patryk Rzucidlo [@PTKDev] // https://github.com/ptkdev-components/webcomponent-instagram-widget -(function() { class InstagramWidget extends HTMLElement{constructor(){super();const t=document.createElement("template");t.innerHTML='
          \n\t
          \n\t\t
          \n\t\t\t
            \n\t\t
            \n\t
            \n
            ',this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(t.content.cloneNode(!0)),this.json=null,this.options_default={username:"@ptkdev","items-limit":"9","image-width":"100%","image-height":"100%",grid:"responsive",cache:"enabled","border-spacing":"2px","border-corners":"5","force-square":"yes",shadows:"disabled","mouse-hover":"disabled","show-title":"enabled"},this.options=Object.create(this.options_default),this.resizeAction=function(t){this.resize(t)}.bind(this)}connectedCallback(){window.addEventListener("resize",this.resizeAction)}buildHTML(){let t=this.json.graphql.user.edge_owner_to_timeline_media.edges,e=[];for(let i=0;i${`;switch(this.shadowRoot.querySelector(".instagram-widget-photos").innerHTML=i,this.options["mouse-hover"]){case"type1":this.shadowRoot.querySelector("#instagram-widget-style").innerHTML=this.shadowRoot.querySelector("#instagram-widget-style").innerHTML+"\n\t\t\t\t#instagram-widget .instagram-widget-photo{transition: opacity 0.3s ease-in-out;}\n\t\t\t\t#instagram-widget .instagram-widget-photo:hover{opacity: 0.70;}"}if(""!==this.options.grid&&null!==this.options.grid&&"responsive"!==this.options.grid){let t=this.options.grid.split("x"),e=100/parseInt(t[0]),i=this.shadowRoot.querySelectorAll(".instagram-widget-photos img");for(let s=0;s#instagram-widget *{margin:0;padding:0;line-height:0}#instagram-widget .instagram-widget-container{text-align:center;justify-content:center;font-weight:500}#instagram-widget .instagram-widget-photos li img{border-radius:5%;background-color:#f8f8ff;object-fit:cover;object-position:50% 50%;max-width:300px;max-height:300px;min-width:80px;min-height:80px;margin:2px}#instagram-widget .instagram-content ul{list-style-type:none;padding-inline-start:0;width:100%}#instagram-widget .instagram-widget-photos li{list-style-type:none;display:inline}
            \n\t
            \n\t\t
            \n\t\t\t
              \n\t\t
              \n\t
              \n
              ',this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(t.content.cloneNode(!0)),this.json=null,this.options_default={username:"@ptkdev","items-limit":"9","image-width":"100%","image-height":"100%",grid:"responsive",cache:"enabled","border-spacing":"2px","border-corners":"5","force-square":"yes",shadows:"disabled","mouse-hover":"disabled","show-title":"enabled"},this.options=Object.create(this.options_default),this.resizeAction=function(t){this.resize(t)}.bind(this)}connectedCallback(){window.addEventListener("resize",this.resizeAction)}buildHTML(){let t=this.json.graphql.user.edge_owner_to_timeline_media.edges,e=[];for(let i=0;i${`;switch(this.shadowRoot.querySelector(".instagram-widget-photos").innerHTML=i,this.options["mouse-hover"]){case"type1":this.shadowRoot.querySelector("#instagram-widget-style").innerHTML=this.shadowRoot.querySelector("#instagram-widget-style").innerHTML+"\n\t\t\t\t#instagram-widget .instagram-widget-photo{transition: opacity 0.3s ease-in-out;}\n\t\t\t\t#instagram-widget .instagram-widget-photo:hover{opacity: 0.70;}"}if(""!==this.options.grid&&null!==this.options.grid&&"responsive"!==this.options.grid){let t=this.options.grid.split("x"),e=100/parseInt(t[0]),i=this.shadowRoot.querySelectorAll(".instagram-widget-photos img");for(let s=0;s +// WebComponent: InstagramWidget 2.6.1 - Collection of WebComponents by Patryk Rzucidlo [@PTKDev] // https://github.com/ptkdev-components/webcomponent-instagram-widget (function() { /** * InstagramWidget WebComponent @@ -15,7 +15,7 @@ class InstagramWidget extends HTMLElement { super(); const template = document.createElement("template"); - template.innerHTML = `
              + template.innerHTML = `
                diff --git a/dist/lib/pl/instagram-widget.min.js b/dist/lib/pl/instagram-widget.min.js index f275191..5193614 100644 --- a/dist/lib/pl/instagram-widget.min.js +++ b/dist/lib/pl/instagram-widget.min.js @@ -1,3 +1,3 @@ -// WebComponent: InstagramWidget 2.6.0 - Collection of WebComponents by Patryk Rzucidlo [@PTKDev] +// WebComponent: InstagramWidget 2.6.1 - Collection of WebComponents by Patryk Rzucidlo [@PTKDev] // https://github.com/ptkdev-components/webcomponent-instagram-widget -(function() { class InstagramWidget extends HTMLElement{constructor(){super();const t=document.createElement("template");t.innerHTML='
                \n\t
                \n\t\t
                \n\t\t\t
                  \n\t\t
                  \n\t
                  \n
                  ',this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(t.content.cloneNode(!0)),this.json=null,this.options_default={username:"@ptkdev","items-limit":"9","image-width":"100%","image-height":"100%",grid:"responsive",cache:"enabled","border-spacing":"2px","border-corners":"5","force-square":"yes",shadows:"disabled","mouse-hover":"disabled","show-title":"enabled"},this.options=Object.create(this.options_default),this.resizeAction=function(t){this.resize(t)}.bind(this)}connectedCallback(){window.addEventListener("resize",this.resizeAction)}buildHTML(){let t=this.json.graphql.user.edge_owner_to_timeline_media.edges,e=[];for(let i=0;i${`;switch(this.shadowRoot.querySelector(".instagram-widget-photos").innerHTML=i,this.options["mouse-hover"]){case"type1":this.shadowRoot.querySelector("#instagram-widget-style").innerHTML=this.shadowRoot.querySelector("#instagram-widget-style").innerHTML+"\n\t\t\t\t#instagram-widget .instagram-widget-photo{transition: opacity 0.3s ease-in-out;}\n\t\t\t\t#instagram-widget .instagram-widget-photo:hover{opacity: 0.70;}"}if(""!==this.options.grid&&null!==this.options.grid&&"responsive"!==this.options.grid){let t=this.options.grid.split("x"),e=100/parseInt(t[0]),i=this.shadowRoot.querySelectorAll(".instagram-widget-photos img");for(let s=0;s#instagram-widget *{margin:0;padding:0;line-height:0}#instagram-widget .instagram-widget-container{text-align:center;justify-content:center;font-weight:500}#instagram-widget .instagram-widget-photos li img{border-radius:5%;background-color:#f8f8ff;object-fit:cover;object-position:50% 50%;max-width:300px;max-height:300px;min-width:80px;min-height:80px;margin:2px}#instagram-widget .instagram-content ul{list-style-type:none;padding-inline-start:0;width:100%}#instagram-widget .instagram-widget-photos li{list-style-type:none;display:inline}
                  \n\t
                  \n\t\t
                  \n\t\t\t
                    \n\t\t
                    \n\t
                    \n
                    ',this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(t.content.cloneNode(!0)),this.json=null,this.options_default={username:"@ptkdev","items-limit":"9","image-width":"100%","image-height":"100%",grid:"responsive",cache:"enabled","border-spacing":"2px","border-corners":"5","force-square":"yes",shadows:"disabled","mouse-hover":"disabled","show-title":"enabled"},this.options=Object.create(this.options_default),this.resizeAction=function(t){this.resize(t)}.bind(this)}connectedCallback(){window.addEventListener("resize",this.resizeAction)}buildHTML(){let t=this.json.graphql.user.edge_owner_to_timeline_media.edges,e=[];for(let i=0;i${`;switch(this.shadowRoot.querySelector(".instagram-widget-photos").innerHTML=i,this.options["mouse-hover"]){case"type1":this.shadowRoot.querySelector("#instagram-widget-style").innerHTML=this.shadowRoot.querySelector("#instagram-widget-style").innerHTML+"\n\t\t\t\t#instagram-widget .instagram-widget-photo{transition: opacity 0.3s ease-in-out;}\n\t\t\t\t#instagram-widget .instagram-widget-photo:hover{opacity: 0.70;}"}if(""!==this.options.grid&&null!==this.options.grid&&"responsive"!==this.options.grid){let t=this.options.grid.split("x"),e=100/parseInt(t[0]),i=this.shadowRoot.querySelectorAll(".instagram-widget-photos img");for(let s=0;sRmM3tJ~=12abh8yYtYV>1(HT1%(j z9Q4JaSodf9I|m(OS~)E@pVvK7$?G}_k)TmvVlt7Wxk;u;)hmnNSBpxy@HSNT9yh(`B!NmBP9lp0ke6?i^97-mc zBZ7P**CwNtz_jDhJu$?ZyOszcPL*+vSi+2OG=g-cP@yoa6>2=X5_4J@lOG;6QZU0G zX*E8cbq5h$=!-oU=0oBiKZN?LDO+5`x69@ymgYcwgY2$Is-?#ApASxV=>9B?hQ^HQ zh!@iou8knT!gS?`N5M#CY^iV{g@7eeJL=5;*lFs>x`|k17;1%1EVPj+!Z;0(XOY)P1H0jPSMzP5fw-pTNYF*^6TmC3iq|i#0hBZ47{1gAJ9P!!-PMlEOzJmi zi9?&uD+^l#Z^PH$6 zr8%tAR{6Iqe=hij!A#KQ1I*VOuS-Oi0gHG2aNnT8CDII+$?=YCcB=b$iSm-U^V2=A zEP6f)Rd)iDsvMmY>t_OPDlPtWY^|;uU}=W>bh+5VE}*9tS`Rl|?z|ZfhEmM1N0qOzh;NrMr$&FKOkmgom)oJfoMRHNEDkOIOD}AR-_!4JZ4V8?9UM4 z+^$$dm`8ERkB~IoZUnN?C4UVn*CM(;ZOK*OWcq~KH0hv;aM-Gq?a^)Yl`=U{G3O4| z$scmYz`ZU~7A#_=5k@Fs8d4i=WBu7iofw9`UU0z(B0vx^z{ro%!oZw1#Sx)QF$flK zX)9iGf}gG%auq~H-pVu8YBCm)|1e4>!&D&8j{&obM8_{{sV&VY8~Qngr-{T*_&{@{ zva6AGkPUH#cgYD?+5-*yd$TTx1oao(V)pTP~79P(MK>ea4uKe!60W zwML3XTTw z9>7EK35f>iFKUxjd*4l9_Ts@@D3W|y+=~y!h>0k@qeF|3X|0D-bGHlb<2`eT5l9y_ z7TQJVE^=`R6xxMdH4gu~(Z%(=YH=IB1A36AZ(WRAVIUj-Tk8XDwH+B}%C6>2 zHtR*S#);Og(Zw|l3|d3hw8`%|2@eA@Wb}RbhH0R1y*XHK-Bs`b5@)L&sCq(C*~AnJ z)>|uD8c=5g`r!>?(4?Yx&L#99{B{vM1Y5=ejNt_VsAoWLYID0JAxyB{Bio0RCytQj zk~3n=AHbtVSqAKvjp-(CL;MPKRb+Fz-)SG-Mne&w(7t1Cmh5|+fY}|)9;=*WgY>$a zBbRkKJ&IkgIyjloLR4aMC9y$^XP9UL+d{~sq6>rkIH_vd+W{oqk4N~z+W;w1(-GJ< zJwDQ_$;hpF9AsjJDk5l3LjDN(!3M%*pIh-=H%SiJ$&ey^XUtw#vDNlxIR91r@4XE*T18C3wChvk?VImkvRh7((6Vf> zd+H^P;s|-*>!tnHG&MGDJ{@gqs%zjkM9?0=UO9Yd#zM!*+-i;b`vr(TSd8?(dj{A})O_h2G zJky~lyLC}SSY&HW>)tf4?US5m-`W=(Et-9II2%}k<2{gDxwe&)e&0;`rw%u3p7iAQ zAalMHX*Zb6go7wdHSC-Q8kbq>==odt;b5hm4_el1OPp5$IEpTdD$ff^0yjDvOK*hT zXL&h>s)mT}D0Y;fHRd1TWo6q2`+8)X42ssAGaNMq=8b(l&34uZLdm$O@w9H}KP>Cn z?Cn*|a|m>8jTm4sIMjcsqAR6p(X;9SCHKAVj8FEBm|M%eexcHYSIK_SRd32d z^*x|Vx#c6!gnIXNm*Y~wcd>7>2sJ3(sV>$n*Ql()( z-|v1KJaQ*_FVdu&{kf&zWaSLW~fY}pGZ*fD=mc2lV)<}$Lj6d2j`-s?KBJ<3!kZ}R-B zXnkTo$E-r0fVq*H;!;oZeQuXE64eT6aj0#ZLZc>FR1D`KCPW44LaXxewF0*prTJ2=%+o1N!#W$OgZFFAGAnOx%Wl9>Q+x{}>Bc-CwhwJ(C8@4X~u<|zh`%aLb zk?HSYUR!&nJWBZ;*BS%>(1H#Cu>Y6BJR1w!e-HH-Map!4w!aJYI@AxHmRXTrRy%G_K&pEaB|MG# zJ*wEzB|_J)7%9;)pi=MoW{~bB+s%kMRz)F9v4eWXM)DMxl=c%A?1W&6U`SARdWi@N z9MVU)qY&R(18()HebX7Uv7zr$PW4so8VPC09=w`)?~p0nKFFP-jwyxve&5vVeEw_! z9yu58FJqEGuHgBM^+9aI&)D?id!>)co?0>S@#F_#+~ww~_Q_qo`M`<0^)uX?c4CSZ z>>|`r=QmIfrcil-@stCu_UG3(v{x&fMBC}x8}yXoskPp3I@w1o`~()gb9xLqq)?6^ zLBLReN*ycs4|zANGee=$GZH7;Bq>?7Qh1ieY(2qypQoTX@O{&h4d2GcgfaEi-g{CG z$0t6;=9kBA++UhY#x8qMlyZX^Xvc5N*P)-WMf6?at{3qc5$JpkuxC?%9I8j&0E{Dg z=SF_D(y&C#gbVHOz~mBYhDvOMqf5=vYBI7Ko&NUh;FC@x-#?!&v0MI06P0-s$RUaj z;5LBHuNp{2NOf<_?)_}BvqVR1f+XJnT@mBSOpi?~O3}6qQvxoH>5fH2p9ebKzaUKU z$vv%8C1eJ)7mweTe(KC4`N!X#z#CF4&`*O26Dt+1nQVZqmGluwkRB>^eGLEXxtqst2V-#sk(??TrT|M+uxbgz!E(B zwu1~lK?ev4SiozcxvQn>$x+!ie)-HlULw1N{Q?f?H9XIRSV{o`W0vhhx|4}dCQnqr z^@xisj7%0;%saova5UPt5T(Wwway2Yy=>7GKDt{d5>OZlZmN{TTV)QmZqeoy?yN8i zvYR_djS9k{hd6sjnA}z6X%7OeyvR%z848ch>V&L8%9DgasyUFMPl3f7u^Bp6u|3jJ z_jYcA(bjT^ei&P&;lg&s(uW5JANTm<6?-@rCrbK=99aO09?0F-~8_MWkj)Ey9WJ+;f5;8?(s5qFAX>{^dHMC?uzQ~~>kwop5;uXj^n zHb+Ed6!jzs7pv6}Lp>1wK}^U8aA*3fy$ka@J<)r`auen$YlKg;=FkOLDOdUMO(tWi zCs-hUY1MCzo%W^eK;vzt=YjFc5h^nmAhi*6(gc()3|tmS3x}O0-!QJtQJVv{L%Txj zBGSZZQzX$=T`4^DCLOQ2W;^J*knt(c7VNIymCvg*W%vv}bH0r=TmepBKkE!z-lx}= zT1>p@tYaUL0rD&3Z7tF$i`}Yp5fVhFY7p#QmnMY%E-*iXp78!)d>sc%sseW$A^F({ zW476p34YT|hZ?Lk8xMCM`jcOQj@9k)o^r&EARx?i;&#ml9~xNS0YD#nW!4Ns{@Kts zn#cBDEge53;v{2(aMG9?3RCWbx{?ubetknPQCp%BWFV~cg`|M7G*xl;LI_p5KoyoB zIBUBdQV%kGZmsW|Bvw1FuqMw4hp11}X|1XILrQD6c1uS&Fn&hJVJBMWb5nA(7Dwe8 z0aaty1gl<&g*lk`o4Z=pF8G~U=6U>NQ|WZZY<-+XElqI7k)eC}&0=O}6uU~mivy2f zWJSL4iw)Dq4b!JSI5Igftx>Fxa`+oB9i|tCp(8B`05#NySsk901c#fjNc?&vF2*k* zssk;FHDwT=i)E^sb`i8p*sl(HfAtPmd6=v$yxSqR_ ztndn?$pERl*v$&%RBH3xr#1rr-fB(PVy_m!g*C=g<HCxlWmP=uA{d+Z`3&_tr6(lMqH>L$dzi_Mco~#y2N5TT6fJm+1r}5 z=$X6VnYQ5JxZq*E;Ay`1iEK{{G_JLE9E!*Kn5|O6X|)V&XtyHm)4?Pj6KVcLDnsW= zARD>L<^o4-z*>Fp!uBUJ$OR0+wd1MX0j$PuU;m5|xew&lw^2*D_KRO{MB&`h#PBGr zeedtw-Y-p(Bq$R)RgEzEgVf;AcU-Q{FMCej5Gg-o59a_GqJWa zqjh$7{w<@f^9PlxYUuv^W!4GGI(EyV2;TEm3w`92sN12&Vl~0c6=?$^zzYoD&^+j& z?IkKdmql~$oRDk2eDWeDnMwp^mP5L=bu)D}I|XHh@!KCa@Ql(*)_a7Fut)qt%GV9Y zLUotxtZBgrZflYej$|JsXh;pE40Ss|Df1%jWJOg69cb#dti}mb%GwKx6m?D8PN}Af zS(U@CAW|SnX+wWW7WaUDD+H!s{AmbmXy#53jG+({tb}qhR&AqEa6fpX>^4bi&AL{v zV0ea3$DP%1lGzvi3I>|;A!f=Hd=1EmrDUp&)2~B2GumP44oDvRT4VZF2-7x5VaffS zSs1&%NzaZ8ci;gq%`k0AD2(aZ3lM(%ZbfiYb60W?(1%_t20^RN!C2C`AqlhiYPR8f z{dg)tEi29LBDj4~7^$<9lQ$);M z`!;fhR5mpXNN~A&m01SP5u!swj>9{b5aGu~`*Z|LuogC5V}=NK8e@%MLOKV0FFxTJ!GQ@FYGKI(jl5G?E{~|Bm9bYBxQUD@0^gW~BpBs$ zlFgTDt0`sDqXHW86v6l2W))xw`{inkZgjRq#tzS84y4IjV$?6rjBDJdvuF1-7ObKH zqa{p_s|)R^+^XfmTp)~zSuQPLH7BltQJ-m}n;lw>cg5O7tA%ZCdHt~_j^I@Qe9U}H zjZ_^|_Q{Lt`(~8x^GfcE9rUYG`fio|MEKXV1_NhpJF}!TbIa>6{pF!v6;^C@wUpU9 zxU1D`-;?ayYgR8iunO`6_QaK!ENhIrRSvj0=Z*+K_Z&Z216{g9Z@v)|vcGJYl@*FzV0 zr2I&}{f+|wkoWRj=ezaJZpHMH!$4xsw(R)|%#Mn&P{YWByER(nJfv@Jjl)O9 z$;G{qMX4bzT#*U$IA=@k=BP@+h?Z`pwDMiVv$mw=p@@URzOAxSbI}|o4@ZK>6va5O z)T+~QH+xNlsNir6i}U6Be_O8JD`$t9im&1YN)i*!%hhYlt z5rp^<;{6V2q!c2 zwZ{BL+Bo0SSj%G*opnR`YQySaok^rR4yWU1a}@DVhbB4uC@;xi;hdY2_s%09lyL+F z20w7a?H+Wzh|5-*j`&( zJEN(tr{ikzwJ0Etv_Rt8cThc`(ZD9dXeNT>s$;g@#HQ;oY23iq*X!2&aCPTI_txI` z6WpK>DbUMD(4vd?Xgj;ujD&OO!jTR#{x@*dfp0hH2?b+_vGsz+$OENg{0D^7#XDeS z`atsJh%(=acf`O^Ap6&+De@T=q1=%RaG1}zh|r8@_Tb4ljts25oT=>{%g1gvdt&)_ z+QLIyIB7oPcLuJqMtRUI?*hrx^dWGIpl&8T*uUgGL}x~h6|V7x;^kt(C>ZV(8YPx* zVdB#92CV8xQ-)9_IdgJeiNB*4_@bg2pDC9m2p{hK9okx3i_+u9twMM*&r9s=V}2mq zz*>-Oz9H9+0G`6KXb&|@ROHEUI$sWldIUv}zGN}ysRzX}x%bnzZNHaGtvy`DZ*mYc zY^_{uC*>>Z%N$i|PMwfFN2O163 z92crIlrfS&TH^g85jun|mA0pQk@+kW-HDFK{o$-E3mwh-hDDzVdlzbCzy^lCzp3UJ zh~n{!v_%vF(V+Ufc~_vCrjw)k^@M9zPot5ou^O3$cV?9?VK4a>z+uTn9Xw8o1M$lsxuJIGw0OFn_KPrmz~h<0l&@h&UJskvYyQ>S~tH&Ya-=gB-N-l0`-! z^Q?t@Zx-~V_(K0E<8&V?_TCZpvScy#CN1~<@qvI~X0?X^fNhZ1)B=;-0Fcp~*%M!KodZk%NLMDxg*=FchXFu^Fl59M%o+;F)L8b`bK)43~Ns@H0X+oTz{7GO)o7v-)9PgkD{t};{EZ>_q8C94_ji~ z5cnf?VW}ZvsDwDd@gvf6r(~X$X{c&M2huM13 zX!@?vkp>1&q|}XQT2A6I56&}{5}0qGN0mPcyt}R*vJ@>6O!jT1Cy%T2^r@e>F$!IQ zjV*h8xoL{!?+jR?z$_xJ)vDM&*?I3-?XI^H$z|&PO<@R@lYwUHidBv=0qd#S^0d67 zvb>z-dhZY%n*&Bc*RK9(FI$nqml%o)7cHQT(b>)a!2!rC#^Eo z&|Z+aiNek_S`AgGcvYbI1}t)s+sTlJBIU?;oGvP6e(_NwtO8SE-yu=YmX71YMw!k^ zmqS_ma1JN&98nw`kW!qC&8Q>xOq__j@Prn-zt93V(tEcsx4V=XG%xwv)K%iB1eyc) zdBoQ!Ypi-BtGR^rgCjxpD(g!MLf6eFIhU9(?Gpv9kM&$>dtMWWnO+moUPrLIqlejU zB9UI&Q!NGZQoV6uYwroxN`Q&jeP53W3;#fX?{G~lhIX0Sl0y6i|@8x z0KP1H-D(WkjuXEy_*TP{(=)GjMF}py$bG5I#!=Ga0mAEGD#6HD=-ON)m>&V#8}iZ( z^quW{+073S7X0yi{Q*QUR_F;0X(jrI)D5J^EbkKp#ItL1ov(#M8glE$N*xl=#>qbN zaqSw|BI%tooM@Xj*sc$O>24&Z#S+NB3<~QPw@ZrgLx64o6%qH0C>%c?#fTz8tolXL zi#34c8*yX3#RG{3hJ>udgcOa_uRJprV5mGdb~ujOzY6DT2ff&3x*WLg!A|GP1`a?h z+gt*C0%lDlElkLl-sSJ`yCB8_!A?${AOmyXR@hGn;74a@9(%^G#)Pb<5y-t)D9lrI zUn+H)yShSX%TmJXl6Hvv0?2jh`eI+oA8xsSco?Lmi)SiQ>6n=BFx%EXy9RSW?d#7E z)ZX&#w#AoXRD+)=QT`tHlxBD%*r`OP0+%%=q~h2oS>=9M#JPfDRV{ksAT>$FP%|k! zMVuwphWa?HpSq2`gz{S~4Fh8mG&EYKmUoJkV@}Jgz5X^MM5#-~$lNh~06izOABW>J z#NXn+8$hl6v+Hau3@`w2^M z#Oc^g)1!n`9qKutyroG=1$7OWLBlYoQWQxk^{JK`aY*kgGlKA=rZi`JuzRFSf0sA~ zXZv}DWA~h+YHhQf!=@CxV9=aIdx%6kCRN5jA~G1NoYEvA0K-#bs&1<;#gtE06wEqDdS1&Xl^MrQ#sXxRmK62b1#UfFns!^@8d~ zV^tufeqQ=2Re3#Sv%WkzPdsDJFlZ&^Y#>46^%S-&9E#>FNG&$>JH_pM8G`nYrR40} z!rUoXIdsx#y7IRf#8q)>dqH&xQ$paXeFtM$w4EHom-x}pJ-20ta=S;o-}`azHf1E* zsmzBc;zHnbc(CE>E48+7rNz~F5FfVVEEKb~?XdV^I!4KzpX`xoea5lrC&_IaV z*v62}B?n%!5)SV)=rX3i?mnI4WjI7iF*W8{cKC{C&wGwD9|rP;?0L&k6@l!?NeLeT zs{zjRqRi;S#s-ut+g%zGlTU8z&w(j{+kkUl~8u7}^8?D1{gronk< zO}p^{$x8tNzY@R${82#V*8;zlMf%Tc zy!{Uv6@RJmTZyD!$^5edNxydm=!Zal0OXIaU-;@rSANL+=|Z3%%70QS>31jovz+}u zDxdzil>d3|D${Pk^f5lw{*Y%u6xt|6`B7h?hVBK7drS4%KuaD zohJD!^&bx&Rh0j`?xiLD7i9jSlRt}n{da%8sPz98<$uM!{|vnT@!m0I|E2ohVb~vi z{fS}!bh!In?H@VLAJu}nf2sCIs`J+u^dCcqKT7$C{!;3%0*N2;e-cE^+G8Jo-N=Nrk!q literal 19065 zcmeI4WmsI>lJ^^Tcemi~u0b0@fZ*;fjk|lW;O;>KA-KB}ED#(*iyLE?W$6ehk`}~{QMLGYLtFC`Oh5@fEZwF(8$HiVs)Y4s^{%r8DFC}HoXppKJE5A{5U(}LmlZo~6DqSK$%=(DWe>tLnf}EN z%nQ*|k8v)31V6G%xwy6@i4U^Q=@|Sr*~+FZ&m2lwQt&p9QaRSE-)wGN@SZ$g%DC~< zSd@=CYwhkdcSJ0hb#2uavOSBOZ6*v^%Q|?Q1skvMJZdt^x@Rru#erI!M#2@YbRCty zy16uEr@Z_)(Yc zlA;tC__?X;RX-_LovkA^-ZMtCUVT6&w^}z<3Ox_GXs6dp{iV>*P?`8V;8AI!o>fZ! z>-)=xow-${lpyut{ZgoPdc7o!i0}cveHSrg*xYcL(*?0ebE{Zu3M$NxrG16ss%-O) zAwE?SXJFluSCx=CW))(wpv!xOJ!-n_K`MtODlgd0_$*wn&4vEjs)p*JU^QSA{{-xJ zBgKt03+J!TJO;cFHZCO5?haO-ccXH0A%wo_2L`Kqsh)cB0C23;kwue%7YkEhL(S$R z0w!;ykDHEpnBVd(pTpsnbc>5o|`9Pkq(xad0rxS$HaD`e&!nePwZTgz-j6Vn(^%eJ~Wv~ojX z*A}!!S#MfYw-o3#7pd~3Vaka-X&AjGVg7t#kUQa}KhS z*TMYWkNasl!h%ThMw($=Sp5zDN4d^eZw1yE^0cSvJX0q%S?<*sOomW$Mzyvp?PMtv zIKYi6`vKd4C<7YZK0lK8inHXHd1s0pei%fB45fq|e9)chnbhUjB3Cbh zB@n6`rccfb)DOaFgDcOQz2urJpr#6#CCU^S3zB{`<_M5)c@U|0=N%NoxkvIgl7EQ! zT%V#BWM>!aK-uD3w zphCg6)67u|P;|l&+y6>>+ZmQ-k>|ErtKvCmy2G)=;j0mJlMy66iDFMZjy(a!pbZPq z#eVfdT)93R4n4*5Tnl=)2O@YkYY1kD=aW-`=Lj3b3l&^v>wu9`QiNt~9!j!7bF^a|*d2qVShp*YBP(rXJRvM~x@=_H;OEp!SHp~X88G@pdCT9nBbUhOq)1tg=nE&6(iVyFSy=fL&HI)nDS7JU?^f!sla5^5uQ_g&&0C4 z1(*tUL5fe;D1_-Y(Q6IE`gtcPkHGfwEQw%*=GhZ6EZJo}cq>qH#BDy_c$|2qUZDf} z^=YMY*8Z0Tm~MlamHbA^V)H}bA`_iSo&(Ylg^-3mItFE7F+j09tE z821u`l<;~}kGe&;kFyM~LneVrUonW6U@!MqiowpqueSulHYlT^zT}gR9W)SnU+N|v ze-1jJqwv#V9~0nn8z)unj|d-Ip>hCE&D0kha=o!Pwv=}|jy`|+NsGwSex>@oi#X?8 z8djuTsD6SUs2o06UgG6)ViD<=_}#8jo2?;~fG=csz4g^PC7huw;2yfRjn|KP%_o?+ zxpqW7bwHCuN@29xX>qn|_c=!sA|b5Ya!Q|}Ce{$X!y3LI{&5{C0*<<(&Js3vCg_a@L;AGM(1u!}3*k(4 zreW9|$CA931y4z-%~hRS^TO7SmtK9VmS#dET zN_xzQcqSRdzxqnQ{R&ZQ?jDUa+a)eCG~2dUv13nQt1jsM@criOXs0;pOE*oShC?Ib z#?HmbL?Rfz_Ikj}vpYe^tm{fZoN|C33NdD0vIk+=Aa$dn8a>Mg2w&*lI?H!GsndIdvZX-zS&N~C3LZ{S$!>7APoXT*9Nq^Rg zr3pk)(4@`E>hiu?cl%r09PEdp^flDTwd1h+2?pP|7XOf_g%kV3MrO`1`Xa+Fg_YyT z$nASLq0f_|9nYiRdy6k9zPYm5Y9j4x+sR4qon328L?997;ANY-6?;gl*ykPKp>MTO zvlG}e@N0%G6p@)zC4NDX&HZoMGWJWoIK5f25@1 z#uah7U5Qb)2T%GuREqTyPI{;<`N>p}9w{-9VqAnSV<-6zuM3#bS@6@E^b#5dY)2t5 zjqwF8#jJJcw~Rs^R0h>AlmWr)R^hM}nTZTc?>NjwW_yJzvTm3AEnTBh5yrM-+!fop z-iDE4(XS6vhH_j4`!5C&Kn!ZH!9cl+sPdYwdO2c zgm^J3%^Ve7KU<pvE<}ADC6*Ej3f?NWVYYop%&=7f9c-&An@e@79T#|6_4f7 z{bykMYn0d8mZO9rwOhXm2LLqV0RVjeQj}+BW&dB19*5LB{h!<4MSAU;2hK}8n2%pN zA;pPOE2v*L9JD539+~>ITa~o8DlVq`fVem$B`}TO7{X816rB5?tc$0A?oHiXCyFy& zt8SfNSrrNB2DIl-GsfdkmNdVfoM=`x)lWD?k>63xp9VXKN8IfKL5f)YlCgaiAS zg!)mH>#h{ck(GxO>E<1zc78wmD7w3XA7iS9U7*T}fPbTw8p!6qgo)D=p`mhbiJCMhEq+ZONRtS-LgJk?f6WZ>bB_g4~C%b5){F z84!i8l!mXgsDVj2onafwUq!iUW&6uy8QPg;fk13mNm6w#Mm_~Y|5C`5ox0CL8xArm zm3&f6F=y8Z-^>vTgOV5q+(2hn*DRMS0#sXBTgrS)vKci#sGWQtt^CCoeDVuEe4$2k z3kigL4Nz-V&vVTM@k|s#k1Kv$YXvg!=%foTj@f&`_C8D@@}r3=DpaEbW%~$>7kq?q z%zz*L}NK+2lGqx?j zHfS4LWq58KWQ0b}i*NN+NCAI6jvOwrKJscZ9@4QNZA$w&*IRoRc0$#*cp<2#u5{iRU_2$j7E^C{)D|HD#-Cqf1DkYlO|;fIfWf z44m}Fy^Gz=hQ8Rs*>R&oM3Lf`+lyA!?LPocanKSBIo%@Num!73gE@&fKb@t({~~ZaG>J(T@)QavcHZkk2|P^+ z*>g_IisXQ>?5L8JGqRSVKGqT(f`@7#%t;4G-64^@k znu^x$>*h27T|Wl$Ut9VJhb?P*Wne`0QV^8|O#8gYeeULSIGtCz*`uRD9cP~*(V)vhRi z#5RPxE;>`2Bl=ugt+Gw0QQIJVqp(moft1!!COpXbcJCQzV3ACl%A~Ej2{P&(hAXb9 zfJ!0H_ItrIUQz}SykM+@v{F3k7U_6K8&oFWL9l`KkT5heP$24z*T$=I07A2Jp!BWK zKy#XSCsj(Ze*kosGK))1KJ`6-P&-8+TtW_T&7PycKkQ&s0VQ{_6rw^rxYFAQY42mz z$8#M&gT06e@5y>7UULco29Jh#K?$YZuwBvWz1;A$YWr8;MZtmg02n zaNV3PRe>7Gp*5+k%Ch+`d;bd_I1&xVPUXg1aYTH%ot z)ke2AJ^ZYeB?VGXDK6FpX0>zbef>8#mvSj@3Vshe?7yd_6YNHncXMHxG$%HrZ$yxvE4XmMB?&mwY;Vw}&0w!Jvxc^WaI zP()vN5!NE%l(j^|zrE6I-65z%CIn1USR z5{w(VALnPFOg|TEEX$2%`(fS%LY+FR zt8YcSeS`z~zwXXawNd%tuR>xTGaILy+fvVHX}_Ksi{9DSLQw&inurkj(msr{SLiNC zvxXeHhA%X3ImB+HL=B{bEhh+f7~OB*A3IB+>3oZ^naaAc7C-kqD6aCV8;nMvuQMNY zXau7GXZYM=O~JfJY;Mgb2#`F|lkTmT&DCLcAIJ=M&J(F#FZvd`!Rhiewk!9pY{$zW zW*Ue*WEZ%($WbQ`Eg#e%gT6Ono%QcpzciAX&WssD3C>i43&CnEJkq@IY>6Ono%QcpzciAX&W zso!LD{WXy?v;P~BLiyh%Qa?;T5veC4^+cqeh}092dLmL!MCyr1JrSw@b42R*qP!;} z^+cqeh}092dLmL!MCyr1{eMcNeoea8E~!@1dM?_C1PK6K{wNk?`17RepVf!_zt$eI zfGk136x7*7cI(%rRQ!FKby1?8!!#RqSk-}nBQ^zddWPvDjEat7UZpIKS^0H03-h2O zW>qZ7eRXNx%3;S0+c& zD8!mBg*U1+M)WZ`tH)R;w6z1VJRru&tLnp4IXFl>|59lrgaNDRy(&_W=B&H}AGeaF z8rqOO9Xc>Mktgs}y}SUNgmq?X9n!&O=Ow=4p3$bLI0 z9de?X5gnS7i-WnbE@)EIE?J3rI^Qup zPC^vZ{lQtQlx=sMPo;*Ouy+_=v5*dO)kZS1)2Pdo?W+4^R)qZkGu_-&c*${@6eMzn zITrynPW!Owq>fH|DF2EKgRmaO{QR9s?AjWF8}HXl?r!{yhb^MRI`}vNj+{Oyf|EoU zlcDC6hnI-#4^5im?6C#UWKUiYK5IuNBW7VKYgRap$(5+1$($6_L^qnpuW)0^pkPhg zJ|6+2n62i+95!WA;oaH}q{HgzZx;dE{ncA7L zxOlkyGSlw&YV?t2YW{wvjcMvQP|4x=-Bj@<;!rkB9qDB8&6=A#JIc<>(IlGkWRO&T z-a4+)OFVv`Q+~`R?YV|PL4nS;4l{{}U}bGpuEU@qB5lkX~~E7cD;o}$MQaM`JyRd*{OE{1{&99 zqbjKR5mjDniqn!e`&YxJ>oiPix&!Z73%&eqf?`hdBV0$MUrX7rVRT27*r03AMjExN ze@W9zI}J1#Dqys@e?fyi*QEl_-*F^9Xs623r05CIf-HNRt?qetd0GdT+2ov4BR&K% ze3Q3j4}MqDvs1k-%qP-9hkLqySo+!g*_0zs+N(Z#v$6^K?NMm=3h^nev# zrKs@YL2lN~3SFsctT}^zMkaYUTXK5PIaqZ#UrZ}pWr6A$kJFkD6RqWkB%MSAgI=ZK zA$@x0K_3Hi$NirDC{5Jx9z3QHv-dMV7?RG3`YOo;M1sOx#^gBg0jvMn1xC_obt;YxTz3>grGST#Y<}uB0d)U>ZjX zmD?}%DtWePI&paHSN53SCu$zp+rE9*DV@2F8^6gpCMLO=u&yW7jShvqA2b#kF^9IU z=SR)QrzYSm*X*JyeqYxdhG-~GaH=#w6=E(ss7oiN zso0eJ+6L7LlZpf{K0I$HRW$U1N$#!0=js`le(nNlV8;OMGvi90K83QG+0#q~4`f1= zwT-Yfj}S_QNSux)TnIS7jSIH766Rz<4aC;mcr1gj;E{7_zk(=daLCb%FOa!q=$^~R z#v^Fcg;^pB7$G7>Ml>0vbGEGuLBuaoLPI1=3s9F+N{h}~-=JtHFU?rWgMuSjh z%t-uT)gw{zY4_5dhmI)cjaK8)HKy^x3*L24MWJV_7PbmAZm2DpL_{l|BIb{%ggP4L_hSG}p^=4|cc-8*jVZ^l9xJ0SQ~FgKFnOfW z2|waDC!LSItsh%@S00W7PbzL&zdsN+ z21#?jY*@WVK;@I?9323n=(m6CUGjgt&@d3owZa-t-@aJVEFpJ@-)?06B+4Pbc6AYL zLI_QaHC5t&k@~@#__cDe!XtM#-hBIln^XK1H8pwmjiJVH1OMCF zPVlP6W;}|B)hgGN~ z-bZNly=#BH<0)Biepb_Np4y<{q|L~tLOHK*wOXe^>aT0ycbaCoC4Il|a5@^zlmW_< zOc-I#Dk#PnOu@6qGtbod8XZcY7+fc8s+HEmZ3p(+$%vdJPsFu+)+EIdyV2GDxZz15 zY@c1oaf1(dY4F9__)yw1v3G~oqp@zES(kSuY>BN6J(@BGN;RZ1)GVA26{9tfuUB6c zqsi!%C5V`Hek^CquWC)%!(%K3uFr_EWM$MUaoD+Fn~~F(fDTcyWwp)9%LZI;uYDQ# zz8fv)?)^c+De0BtF3jOZ#PO6c*Tr${`c588K+@WU;=rVqlIM$5Y~Zk4bO9J!AKy;q6cT3~v?NAt!XGfC1@r zdoD!}4%S>AGz?f6#c>lJ9aLnqP_9UmFho7xnr7D(NRgq{CN`!LNJA`#JIHDi9H_;+yNox2cH7RLe6XaI0L@q)N0L+Iiv(B4 zq{-Zu$|gndqbM`x`|V({)Sf@HUr!l@!3e9Vz}6y_xXIpFiuCI%UBuj56XVr5`g$u# zPI`S?@8v_dFj+r*49dfFYCi%gOUKH1X)Jl#%(m1(+36BK(6FTDw*1 z!k0>iuU6{rd<=kav9)1Y=ujNTl69dQ(Mr?@WjdsD}axWN>(!1L;GZOOY{{ z9cKsnu!T^|n_1w6LRl)0y|b(n){d_W+>eDPuDUN?y=N1mv}U&jPe2lvShz6Dhnzuu z51`lpX`6O9s35i#FnER1E6H)4+$ROR!GMDo;T!+X#_cxjYM11v^Z5$-+qR8lZE_oy zZg*r3T0aWuR<%T>Kfn3sC<+rbv&}}nNOO|8V82U7;ajS5uU$+2u1xdK1V{nD6;S(gfnPe9{LeKg z{+mYSUuyi)&E(Hy{-~G9uS0?OA@DX3{>R}@eDz}}KV*LQt^E(>-|1@ds}ujIzV^4u z$3Jf6|6KXMNb(Q$->J0yvs?Jz-7AXqSL(l%=KQ7LH_K^^Y6}HOtybT`JZv`A7PT;{&!6H{#5-RpvjNX{)8sK w`@s8E?;qF6ztx)(_*1>#u9|;H{aiKwgA@$xkLL{l<;S-j1^_6Q{Q2uY0Q*;aJOBUy diff --git a/gulpfile.js b/gulpfile.js index af1dfa8..49944de 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -146,6 +146,25 @@ gulp.task("build-version-wordpress-plugin", function() { .pipe(gulp.dest(`./dist/wordpress/last-9-photos-webcomponent/`)); }); +gulp.task("cpy-changelog-wordpress-plugin", function() { + let files = [ + "./CHANGELOG.md" + ]; + + const translate = require(`./translations/${language}.js`); + delete require.cache[require.resolve(`./translations/${language}.js`)]; + + return gulp.src(files) + .pipe(gulp_data({package: pkg, translate: translate})) + .pipe(gulp_nunjucks_render({ + envOptions: {autoescape: false}, + path: [`./wordpress/`], + inheritExtension: true, + })) + .pipe(gulp_rename("changelog.txt")) + .pipe(gulp.dest(`./dist/wordpress/last-9-photos-webcomponent/`)); +}); + gulp.task("cpy-js-wordpress-plugin", function() { let files = [ "./dist/lib/**/*" @@ -154,6 +173,15 @@ gulp.task("cpy-js-wordpress-plugin", function() { return gulp.src(files).pipe(gulp.dest(`./dist/wordpress/last-9-photos-webcomponent/js/`)); }); +gulp.task("cpy-readme-wordpress-plugin", function() { + let files = [ + "./dist/wordpress/last-9-photos-webcomponent/readme.txt", + "./CHANGELOG.md" + ]; + + return gulp.src(files).pipe(gulp_concat({path: "readme.txt"})).pipe(gulp.dest(`./dist/wordpress/last-9-photos-webcomponent/`)); +}); + /** * Task: browser-sync * ===================== @@ -194,4 +222,4 @@ gulp.task("browser-sync", function() { gulp.task("start", gulp.series("build-css", "build-html", "build-js", "browser-sync")); gulp.task("dist", gulp.series("build-css", "build-html", "build-js", "build-js-minify")); gulp.task("release", gulp.series("build-version-latest-lib", "build-version-latest-lib-minify")); -gulp.task("wordpress-plugin", gulp.series("build-version-wordpress-plugin", "cpy-js-wordpress-plugin")); \ No newline at end of file +gulp.task("wordpress-plugin", gulp.series("build-version-wordpress-plugin", "cpy-js-wordpress-plugin", "cpy-changelog-wordpress-plugin", "cpy-readme-wordpress-plugin")); \ No newline at end of file diff --git a/package.json b/package.json index 633b13a..cd10e20 100755 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@ptkdev/webcomponent-instagram-widget", "description": "Last 9 Photos: Instagram Widget of your Instagram Profile for your blog. Show latest 9 pics from your instagram account. (Unofficial Instagram Widget)", - "version": "2.6.0", + "version": "2.6.1", "main": "dist/lib/en/instagram-widget.min.js", "author": "Patryk Rzucidło [@ptkdev] (https://ptk.dev)", "license": "MIT", diff --git a/wordpress/last9photos.php b/wordpress/last_9_photos_webcomponent.php similarity index 100% rename from wordpress/last9photos.php rename to wordpress/last_9_photos_webcomponent.php diff --git a/wordpress/readme.txt b/wordpress/readme.txt index f95d223..5875090 100644 --- a/wordpress/readme.txt +++ b/wordpress/readme.txt @@ -1,11 +1,11 @@ -=== {{ translate.title_wordpress }} - WebComponent === +=== {{translate.title_wordpress}} - WebComponent === Contributors: ptkdev Donate link: https://www.patreon.com/ptkdev Tags: instagram, widget, last 9 photos, instagram widget, webcomponents Requires at least: 5.0 Tested up to: 5.2 Requires PHP: 7.2 -Stable tag: {{ package.version }} +Stable tag: {{package.version}} License: MIT License URI: https://github.com/ptkdev-components/webcomponent-instagram-widget/blob/nightly/LICENSE.md @@ -15,18 +15,30 @@ Instagram Widget of your Instagram Profile for your blog. Show latest 9 pics fro # 🌉 WebComponent: Instagram Widget -[![](https://img.shields.io/badge/version-v{{ package.version }}-lightgrey.svg)](https://github.com/ptkdev-components/webcomponent-instagram-widget/releases) [![](https://img.shields.io/npm/v/@ptkdev/webcomponent-instagram-widget.svg)](https://www.npmjs.com/package/@ptkdev/webcomponent-instagram-widget) [![](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://github.com/ptkdev-components/webcomponent-instagram-widget/blob/master/LICENSE.md) [![](https://img.shields.io/badge/ES-9-F7DF1E.svg)](https://wikipedia.org/wiki/ECMAScript) [![](https://snyk.io/test/github/ptkdev-components/webcomponent-instagram-widget/badge.svg)](https://snyk.io/test/github/ptkdev-components/webcomponent-instagram-widget) [![](https://discordapp.com/api/guilds/383373985666301975/embed.png)](http://discord.ptkdev.io) +[![](https://img.shields.io/badge/version-v2.6.0-lightgrey.svg)](https://github.com/ptkdev-components/webcomponent-instagram-widget/releases) [![](https://img.shields.io/npm/v/@ptkdev/webcomponent-instagram-widget.svg)](https://www.npmjs.com/package/@ptkdev/webcomponent-instagram-widget) [![](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://github.com/ptkdev-components/webcomponent-instagram-widget/blob/master/LICENSE.md) [![](https://img.shields.io/badge/ES-9-F7DF1E.svg)](https://wikipedia.org/wiki/ECMAScript) [![](https://snyk.io/test/github/ptkdev-components/webcomponent-instagram-widget/badge.svg)](https://snyk.io/test/github/ptkdev-components/webcomponent-instagram-widget) [![](https://discordapp.com/api/guilds/383373985666301975/embed.png)](http://discord.ptkdev.io) -> Last 9 Photos: Instagram Widget of your Instagram Profile for your blog. Show latest 9 pics from your instagram account. (Unofficial Instagram Widget) +Last 9 Photos: Instagram Widget of your Instagram Profile for your blog. Show latest 9 pics from your instagram account. > ⛔ **DISCLAIMER**: This is an **unofficial** instagram library and offers no warranty! All trademarks and logos belong to their respective owners. -## 🎁 Support: Donate -> This project is **free**, **open source** and I try to provide excellent **free support**. Why donate? I work on this project several hours in my spare time and try to keep it up to date and working. **THANK YOU!** - -[![](https://img.shields.io/badge/donate-paypal-005EA6.svg?logo=paypal)](https://www.paypal.me/ptkdev) [![](https://img.shields.io/badge/donate-patreon-F87668.svg?logo=patreon)](https://www.patreon.com/ptkdev) [![](https://img.shields.io/badge/donate-sponsors-ea4aaa.svg?logo=github)](https://github.com/sponsors/ptkdev/) [![](https://img.shields.io/badge/donate-ko--fi-29abe0.svg?logo=ko-fi)](https://ko-fi.com/ptkdev) - -![](https://img.shields.io/badge/bitcoin-35jQmZCy4nsxoMM3QPFrnZePDVhdKaHMRH-E38B29.svg?logo=bitcoin) ![](https://img.shields.io/badge/ethereum-0x8b8171661bEb032828e82baBb0B5B98Ba8fBEBFc-4E8EE9.svg?logo=ethereum) +## 📎 Menu +- 💡 [Features](https://github.com/ptkdev-components/webcomponent-instagram-widget#-features) +- 🕹 [Demo](https://codepen.io/ptkdev/pen/WNQOYqy) +- 👔 [Screenshot](https://github.com/ptkdev-components/webcomponent-instagram-widget#-screenshot) +- 🚀 [How to use](https://github.com/ptkdev-components/webcomponent-instagram-widget#-installation) +- - 🌎 [Web](https://github.com/ptkdev-components/webcomponent-instagram-widget#-installation-web) +- - 📦 [Webpack/Browserify](https://github.com/ptkdev-components/webcomponent-instagram-widget#-installation-npm-module---browserifywebpack) +- - 📖 [Wordpress](https://github.com/ptkdev-components/webcomponent-instagram-widget#-installation-wordpress) +- - ⚛️ [React](https://github.com/ptkdev-components/webcomponent-instagram-widget#%EF%B8%8F-installation-react) +- - 🅰️ [Angular](https://github.com/ptkdev-components/webcomponent-instagram-widget#🅰%EF%B8%8F-installation-angular) +- 📚 [Documentation](https://github.com/ptkdev-components/webcomponent-instagram-widget#-documentation) +- - 🧰 [Options / Attributes](https://github.com/ptkdev-components/webcomponent-instagram-widget#-options--attributes) +- - 🎨 [CSS Customization](https://github.com/ptkdev-components/webcomponent-instagram-widget#-css-customization) +- 🔨 [Developer Mode](https://github.com/ptkdev-components/webcomponent-instagram-widget#-developer-mode) +- 👨‍💻 [Contributing](https://github.com/ptkdev-components/webcomponent-instagram-widget#-contributing) +- 🐛 [Known Bugs](https://github.com/ptkdev-components/webcomponent-instagram-widget/issues?q=is%3Aopen+is%3Aissue+label%3Abug) +- 🍻 Community: + - [Discord](http://discord.ptkdev.io) ([🇬🇧 English Channel](https://discord.gg/YkMG26f) | [🇮🇹 Italian Channel](https://discord.gg/HFtdBAJ) | [🇵🇱 Polish Channel](https://discord.gg/TV5EXFd)) ## 💡 Features * [✔️] Easy to use @@ -37,64 +49,38 @@ Instagram Widget of your Instagram Profile for your blog. Show latest 9 pics fro * [✔️] Photos Widget of your Instagram Profile for your blog or website with this WebComponent * [✔️] Translations: 🇬🇧 🇮🇹 🇵🇱 (Help me ❤️) +## 📖 Installation +1. Download wordpress-plugin and install it. +2. Add code to your html widget, example: `Appearance` --> `Widget` --> insert `HTML Widget` and paste html code: + + +``` + + +``` + +NOTE: Replace `@ptkdev` with your instagram username. More settings are available [here](https://github.com/ptkdev-components/webcomponent-instagram-widget#-options--attributes). + +You can insert this html code in posts, widget, html box or theme. Where you want see instagram photos box. + == Screenshots == -## 👔 Screenshot See [Demo here](https://codepen.io/ptkdev/pen/WNQOYqy). Photos from @ptkdev account: -[![WebComponent: InstagramWidget ](https://raw.githubusercontent.com/ptkdev-components/webcomponent-instagram-widget/nightly/.github/assets/screenshot/webcomponent-instagram-widget-screen1.png?)](https://raw.githubusercontent.com/ptkdev-components/webcomponent-instagram-widget/nightly/.github/assets/screenshot/webcomponent-instagram-widget-screen1.png) - == Installation == -## 📖 Installation (Wordpress) -1. Download wordprss plugin and install it. -1. Add code to your html widget, example: `Appearance` --> `Widget` --> insert `HTML Widget` and paste html code (and replace `@ptkdev` with your instagram username): -```html - +1. Download wordpress-plugin and install it. +2. Add code to your html widget, example: `Appearance` --> `Widget` --> insert `HTML Widget` and paste html code: + + ``` + + +``` + +NOTE: Replace `@ptkdev` with your instagram username. More settings are available [here](https://github.com/ptkdev-components/webcomponent-instagram-widget#-options--attributes). + +You can insert this html code in posts, widget, html box or theme. Where you want see instagram photos box. + -## 🧰 Options / Attributes - -| Parameter | Description | Values | Default value | Available since | -| --- | --- | --- | --- | --- | -| username | Set your instagram username | Your instagram username with or without @ | `@ptkdev` | v1.0.0 | -| items-limit | Set the max number of pictures | number: from `0` to `12` | `9` | v1.1.0 | -| grid | Set grid aspect ratio | `1x1`, `2x2`, `3x3`, etc... or `responsive` | `responsive` | v1.1.0 | -| image-width | Set width of images (NOTE: grid different than `responsive` overwrite this value) | length units: `100%`, `100px`, `100pt` | `100%` | v1.1.0 | -| image-height | Set height of images | length units: `100%`, `100px`, `100` | `100%` | v1.1.0 | -| border-spacing | Set spacing around images | length units: `5%`, `5px`, `5pt` | `2px` | v2.1.0 | -| border-corners | Set border radius of corners: `0`: square / `15`: rounded / `100`: circle | number: from `0` to `100` | `5` | v2.1.0 | -| force-square | Force square aspect ratio if you post photos with different size on your instagram | `yes` / `no` | `yes` | v2.4.0 | -| cache | Enable/disable cache | `enabled` / `disabled` | `enabled` | v2.1.0 | - -== Changelog == - -= v2.5.0 (May 04, 2020) = -* Fix: now you can use multiple webcomponents in the same html page (#3) -* NOTE: better to use the full close tag `` than short `/>` - -= v2.4.0 (May 02, 2020) = -* New attribute: `force-square` -* Feature: wordpress-plugin - -= v2.3.0 (May 01, 2020) = -* Fix: `border-corners` and `border-spacing` now work without `grid` attribute. -* Fix: NPM Module give errors with require/import -* Update: examples - -= v2.2.0 (April 30, 2020) = -* Fix: `grid` now is more responsive (now use `calc()` function: `100%` - `spacing/padding/margin`) -* Fix: default values now work (hello object reference my old dark friend) - -= v2.1.1 (April 28, 2020) = -* New attribute: cache -* New attribute: border-corners -* New attribute: border-spacing -* Performance: now component send api request only if you change `username` -* Fix: refresh attributes random don't work - -= v2.0.0 (April 28, 2020) = -* Removed "ptkdev-" prefix -* Module for Browserify/Webpack (run: `npm install @ptkdev/webcomponent-instagram-widget`) -* Fix: Grid bug -* Installation guidelines: Browserify / Webpack / ReactJS / Angular / Wordpress \ No newline at end of file +== Changelog == \ No newline at end of file