File: /home/coopserp/www/pagelayer-pro.tar
css/premium-frontend.css 0000644 00000071360 15152652074 0011357 0 ustar 00 /*
Pagelayer Premium Frontend Framework
*/
/* Image hotspot */
.pagelayer-image-hotspots-anim:hover:before{
transform: scale(2);
}
.pagelayer-image-hotspots-anim .fas{
position: relative;
}
.pagelayer-image-hotspots-anim::before {
content: "";
transform: scale(1);
position: absolute;
top:0;
left:0;
bottom:0;
right:0;
pointer-events: none;
animation: pagelayer-hotspot 2s infinite;
}
@keyframes pagelayer-hotspot {
0% {transform: scale(1);opacity: 1;}
100% {transform: scale(1.5); opacity: 0;}
}
.pagelayer-hotspots-icon-holder .pagelayer-tooltip-text{
visibility:hidden;
}
.pagelayer-hotspots-hover .pagelayer-hotspots-icon-holder:hover .pagelayer-tooltip-text,
.pagelayer-hotspots-always .pagelayer-hotspots-icon-holder .pagelayer-tooltip-text,
.pagelayer-hotspots-icon-holder.pagelayer-clicked .pagelayer-tooltip-text{
visibility:visible;
}
/* Image Hotspot end */
/* Video Slider */
.pagelayer-imgsl-box{
position:relative;
}
.pagelayer-video_slider .pagelayer-imgsl-prev a:after{
content: "\f104";
}
.pagelayer-video_slider .pagelayer-imgsl-next a:after{
content: "\f105";
}
.pagelayer-video_slider .pagelayer-imgsl-controls li a:after{
font-family: "FontAwesome", "Font Awesome 5 Free";
background-image: none;
}
/* Video Slider End*/
/* Glow Button */
.pagelayer-btn-anim-glow{
color: #fff;
background: #111;
cursor: pointer;
position: relative;
z-index: 0;
display:inline-block;
line-height:1em;
}
.pagelayer-btn-anim-glow:before{
content: '';
background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000);
position: absolute;
top: -2px;
left:-2px;
background-size: 400%;
z-index: -1;
filter: blur(5px);
width: calc(100% + 4px);
height: calc(100% + 4px);
animation: glowing 20s linear infinite;
opacity: 0;
transition: opacity .3s ease-in-out;
}
.pagelayer-btn-anim-glow:active {
color: #000
}
.pagelayer-btn-anim-glow:active:after {
background: transparent;
}
.pagelayer-btn-anim-glow:hover:before {
opacity: 1;
}
.pagelayer-btn-anim-glow:after {
z-index: -1;
content: '';
position: absolute;
background: #111;
left: 0;
top: 0;
}
@keyframes glowing {
0% { background-position: 0 0; }
50% { background-position: 400% 0; }
100% { background-position: 0 0; }
}
/* Glow Button End */
/* Thin Button */
.pagelayer-btn-anim-thin{
transition: all 0.5s;
position: relative;
display: inline-block;
cursor: pointer;
line-height:1em;
z-index: 0;
}
.pagelayer-btn-anim-thin::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
transition: all 0.5s;
background-color: inherit;
border-color: inherit;
border-radius: inherit;
}
.pagelayer-btn-anim-thin::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
transition: all 0.5s;
background-color: inherit;
border-color: inherit;
border-radius: inherit;
}
.pagelayer-btn-anim-thin:hover::before {
transform: rotate(-45deg);
border-color: inherit;
border-radius: inherit;
}
.pagelayer-btn-anim-thin:hover::after {
transform: rotate(45deg);
border-color: inherit;
border-radius: inherit;
}
/* Thin Button End */
/* Slide Button */
.pagelayer-btn-anim-slide{
position: relative;
display: inline-block;
cursor: pointer;
transition: all .35s;
line-height:1em;
}
.pagelayer-btn-text{
position: relative;
z-index: 1;
}
.pagelayer-btn-anim-left:after{
position: absolute;
content: "";
top: 0;
left: 0;
width: 0;
height: 100%;
background: #00ff72;
transition: all .35s;
border-radius: 5px 5px 5px 5px;
}
.pagelayer-btn-anim-right:after{
position: absolute;
content: "";
top: 0;
right: 0;
width: 0;
height: 100%;
background: #00ff72;
transition: all .35s;
border-radius: 5px 5px 5px 5px;
}
.pagelayer-btn-anim-slide:hover{
color: #fff;
}
.pagelayer-btn-anim-slide:hover:after{
width: 100%;
}
/* Slide Button end*/
/* Slide overlay */
.pagelayer-slide-bg-overlay{
position:absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.pagelayer-content-slide-bg{
position:absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
animation-timing-function:ease;
animation-fill-mode: forwards;
}
.pagelayer-owl-item:not(.active) .pagelayer-content_slide .pagelayer-content-slide-bg,
.pagelayer-owl-item:not(.active) .pagelayer-content_slide .pagelayer-wow{
animation-name: none !important;
}
@keyframes pagelayerKenBurn {0%{transform: scale(1.0);}100%{transform: scale(1.2);}}
@keyframes pagelayerKenBurnReverse{0%{transform: scale(1.2);}100%{transform-origin: bottom left;transform: scale(1.0);}}
.pagelayer-slide-dot-pos-top .pagelayer-owl-dots{
position: absolute;
top: 0 ;
left: 50%;
transform: translateX(-50%);
}
.pagelayer-slide-dot-pos-left .pagelayer-owl-dots{
position:absolute;
left:0;
display:flex;
flex-direction:column;
top: 50% !important;
transform: translateY(-50%);
}
.pagelayer-slide-dot-pos-right .pagelayer-owl-dots{
position:absolute;
right:0;
display:flex;
flex-direction:column;
top: 50% !important;
transform: translateY(-50%);
}
.pagelayer-slide-arrow-pos-top .pagelayer-owl-prev,
.pagelayer-slide-arrow-pos-top .pagelayer-owl-next{
position:relative;
top:unset;
transform:none;
}
.pagelayer-slide-arrow-pos-top .pagelayer-owl-holder {
display:flex !important;
flex-direction:column;
}
.pagelayer-slide-arrow-pos-top .pagelayer-owl-stage-outer {
order:2 !important;
}
.pagelayer-slide-arrow-pos-top .pagelayer-owl-nav {
order:1 !important;
display:flex;
}
.pagelayer-slide-arrow-pos-top .pagelayer-owl-dots {
order:3 !important;
}
.pagelayer-slide-arrow-pos-bottom .pagelayer-owl-prev,
.pagelayer-slide-arrow-pos-bottom .pagelayer-owl-next {
position:relative;
top:unset;
transform:none;
}
.pagelayer-slide-arrow-pos-bottom .pagelayer-owl-nav {
display:flex;
}
.pagelayer-slide-dot-number .pagelayer-owl-dots {
counter-reset: plSlidePager;
}
.pagelayer-slide-dot-number .pagelayer-owl-dot span::before {
counter-increment: plSlidePager;
content: counter(plSlidePager);
font-weight: 600;
}
/* Audio */
.mejs-container,
.mejs-controls{
background: none !important;
}
.mejs-container{
width: 100% !important;
height:unset !important;
}
.mejs-playpause-button button,
.mejs-volume-button button{
position: relative !important;
margin: 0 !important;
padding: 15px !important;
width: unset !important;
}
.mejs-playpause-button button:after,
.mejs-volume-button button:after{
font-size: inherit;
font-family: "FontAwesome", "Font Awesome 5 Free";
position: absolute;
top: 50%;
font-weight: 900;
left: 50%;
transform: translate(-35%, -50%);
}
.mejs-play button:after{
content: '\f04b';
}
.mejs-replay button:after{
content: '\f01e';
}
.mejs-mute button:after{
content: '\f028';
}
.mejs-unmute button:after{
content: '\f026';
}
.mejs-button>button{
background: none !important;
}
.mejs-pause button:after{
content: '\f04c';
}
.mejs-controls,
.mejs-horizontal-volume-total,
.mejs-horizontal-volume-current{
position:unset !important;
}
.mejs-controls > * {
width: unset !important;
display: flex !important;
align-items: center;
padding: 0 5px !important;
}
.mejs-controls{
padding:0 !important;
}
.mejs-time-slider,
.mejs-time-rail{
margin: 0 !important;
}
.mejs-horizontal-volume-current{
height: 100% !important;
}
.mejs-time-total{
width: calc( 100% - 10px ) !important;
}
.pagelayer-audio-container *{
height: unset !important;
}
.mejs-time-handle,
.mejs-time-handle-content{
height: 100% !important;
top: 0 !important;
}
.pagelayer-audio-container .mejs-time-buffering,
.pagelayer-audio-container .mejs-time-loaded,
.pagelayer-audio-container .mejs-time-current,
.pagelayer-audio-container .mejs-time-hovered,
.pagelayer-audio-container .mejs-time-float,
.pagelayer-audio-container .mejs-time-float-corner,
.pagelayer-audio-container .mejs-time-float,
.pagelayer-audio-container .mejs-horizontal-volume-current{
height:100% !important;
}
/* Audio end */
/*** Menu List ***/
.pagelayer-menu-item,
.pagelayer-menu-title{
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.pagelayer-menu-separeter,
.pagelayer-menu-details{
-webkit-box-flex: 1;
-webkit-flex-grow: 1;
-ms-flex-positive: 1;
flex-grow: 1;
}
.pagelayer-menu-includes{
margin-top: -7px;
}
/*** Postfolio ***/
.pagelayer-postfolio-container{
display: grid;
}
.pagelayer-postfolio-thumb{
display:inline-block;
position:relative;
background-size:cover !important;
background-position:center !important;
}
.pagelayer-postfolio-content{
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
}
.pagelayer-postfolio-content .pagelayer-entry-title{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 95%;
text-align: center;
}
.pagelayer-postfolio-content .pagelayer-entry-title,
.pagelayer-postfolio-content:hover .pagelayer-entry-title{
padding:0;
margin:0;
opacity: 0;
}
.pagelayer-postfolio-filter{
text-align:center;
}
.pagelayer-postfolio-btn{
display:inline-block;
padding: 5px 15px;
cursor:pointer;
}
/*** Postfolio End ***/
/* Search Form */
.pagelayer-search-classic .pagelayer-search-fields{
display: flex;
overflow:hidden;
}
.pagelayer-search-classic .pagelayer-search-fields input.pagelayer-search-input{
border-width:0px;
}
.pagelayer-search-classic .pagelayer-search-fields .pagelayer-search-submit{
border-radius:0px;
}
.pagelayer-search-toggle,
.pagelayer-search-full-screen .pagelayer-search-fields{
display:none;
}
.pagelayer-search-full-screen .pagelayer-search-toggle{
display:inline-block;
text-align: center;
}
.pagelayer-search-full-screen .pagelayer-search-fields.show{
position: fixed;
top: 0;
left: 0;
background: #211c1c;
bottom: 0;
right: 0;
z-index: 99;
align-items: center;
display: flex;
text-align: center;
flex-direction: column;
}
.pagelayer-search-full-screen .pagelayer-search-input,
.pagelayer-search-full-screen .pagelayer-search-input:focus{
width: 60%;
text-align: center;
background: transparent;
border-width: 0;
border-bottom-width: 2px;
position: absolute;
top: 50%;
color:#fff;
}
.pagelayer-search-full-screen .pagelayer-search-submit{
display:none;
}
/* Search Form end*/
/* Slide */
.pagelayer-slide-btns>div{
display: inline-block;
}
.pagelayer-slides{
overflow:hidden;
}
.pagelayer-slides .pagelayer-slide,
.pagelayer-slides .pagelayer-content-slide{
height:80vh;
}
.pagelayer-content-slide > *{
flex:1
}
.pagelayer-slides .pagelayer-content-slide{
align-items: center;
display: flex;
flex-wrap:wrap;
}
.pagelayer-slides *{
line-height:1.4;
}
.pagelayer-slide{
height:100%;
}
.pagelayer-slide-holder{
width:50%;
position:relative;
}
/* Slide End */
/* Author Box*/
.pagelayer-author-image{
width: 100px;
}
.pagelayer-author-btn{
display: inline-block;
}
.pagelayer-layout-left{
display:flex;
}
.pagelayer-layout-left .pagelayer-author-profile-desc,
.pagelayer-layout-right .pagelayer-author-profile-desc{
flex:1;
}
.pagelayer-layout-center{
display:black;
}
.pagelayer-layout-right{
display:flex;
flex-direction: row-reverse;
}
/* Author Box end*/
/* Login Box start */
.pagelayer-login-input-field{
display:block;
width:100%;
margin-left:auto;
margin-right:auto;
}
.pagelayer-login-form .pagelayer-rememberMe{
display:inline-block !important;
margin:5px;
}
.pagelayer-login-form .pagelayer-login-wrappers:last-child{
margin-bottom: none !important;
}
.pagelayer-login-input-left{
margin-left: unset;
}
.pagelayer-login-input-right{
margin-right: unset;
}
.pagelayer-login-div label{
display: inline-block;
}
/* Login Box end */
/* SiteMap start */
.pagelayer-sitemap-flex-wrapper{
display:flex;
flex-flow:row wrap;
}
.pagelayer-sitemap-section{
}
/* SiteMap end */
/* Post slider Start*/
.pagelayer-posts-slider-post{
margin:10px;
border:1px solid #c5c5c5;
box-shadow:1px 1px 10px #c6bfbf;
}
.pagelayer-posts-slider-img{
width:100%;
height:12em;
object-fit: cover;
-o-object-fit: cover;
}
.pagelayer-posts-slider-content{
padding:0px 10px 20px;
}
.pagelayer-posts-slider-content p{
margin:0px;
}
.pagelayer-posts-slider-title{
font-size: 20px;
color:#000000;
font-weight: 600;
line-height: 1.2;
margin-top:20px !Important;
margin-bottom: 20px !Important;
}
.pagelayer-posts-slider-excerpt p{
color:#636060;
}
.pagelayer-posts-slider-main{
padding:0px;
list-style-type: none;
}
.pagelayer-posts-slider-post .blog-grid-button{
display: none;
}
.pagelayer-posts-slider-container[hide-posts-title="true"] .pagelayer-posts-slider-title,
.pagelayer-posts-slider-container[hide-posts-image="true"] .pagelayer-posts-slider-featured-img,
.pagelayer-posts-slider-container[hide-posts-date="true"] .pagelayer-post-slider-date,
.pagelayer-posts-slider-container[hide-post-link="true"] .pagelayer-posts-slider-link{
display:none;
}
.pagelayer-prev-arrow:before{
font-family: "fontawesome" !Important;
content: "\f053" !Important;
color: Red !Important;
font-size:30px !Important;
}
.pagelayer-next-arrow:before{
font-family: "fontawesome" !Important;
content: "\f054" !Important;
color: Red !Important;
font-size:30px !Important;
}
.pagelayer-posts-slider-main .slick-slide{
display: none;
float: left;
height: auto;
min-height: 1px;
}
/*post slider css end*/
/*fb buttons css start*/
.pagelayer-fb-btn-details{
padding:20px;
}
/*Review Start*/
.pagelayer-review-author{
position: relative;
}
.pagelayer-review-author .pagelayer-icon-holder{
position: absolute;
top:0px;
right:10px;
}
.pagelayer-review-slide{
border:1px solid #000000;
margin: 0px 0px 5px 0px;
}
.pagelayer-review-slide hr{
margin:0;
}
.pagelayer-review-author-img,
.pagelayer-review-author-details{
display:inline-block;
vertical-align: middle;
}
.pagelayer-review-author-img img{
max-width: 150px;
object-fit: cover;
-o-object-fit: cover;
}
.pagelayer-review-author-details{
vertical-align: middle;
}
.pagelayer-review-text,
.pagelayer-review-author{
margin:5px 10px;
}
/*Review End*/
/*WooCommerce Menu Cart*/
.pagelayer-cart-button-icon[data-counter]:before{
display:none;
}
.pagelayer-menu-cart-toggle[pagelayer-icon="bubble"] .pagelayer-cart-button-icon[data-counter]:before{
content: attr(data-counter);
display: block;
position: absolute;
min-width: 1.6em;
height: 1.6em;
line-height: 1.5em;
top: -.7em;
right: -.7em;
border-radius: 100%;
color: #ffffff;
background-color: #000;
text-align: center;
font-size: 10px;
}
.pagelayer-menu-cart-toggle[pagelayer-icon="plain"] .pagelayer-cart-button-icon[data-counter]:before {
content: attr(data-counter);
display: inline-block;
}
.pagelayer-menu-cart-toggle[pagelayer-empty-indicator="true"] .pagelayer-cart-button-icon[data-counter="0"]:before{
display:none;
}
.pagelayer-menu-cart-hidden{
display:none;
}
.pagelayer-cart-button-icon{
position:relative;
}
.pagelayer-menu-cart-container{
background-color:#e1e1e1;
z-index:999;
padding:20px;
display:none;
}
[pagelayer-container-position="fixed_right"] .pagelayer-menu-cart-container{
position:fixed;
top:0;
right:0;
height:100%;
}
[pagelayer-container-position="fixed_left"] .pagelayer-menu-cart-container{
position:fixed;
top:0;
left:0;
height:100%;
}
[pagelayer-container-position="dropdown"] .pagelayer-menu-cart-container{
position:absolute;
left:auto;
right:auto;
}
.pagelayer-menu-cart-close{
cursor:pointer;
}
.pagelayer-cart-button{
display:inline-block;
}
.pagelayer-menu-cart-container{
overflow-y:auto;
}
.pagelayer-menu-cart-container .woocommerce-mini-cart-item img,
.pagelayer-menu-cart-container .woocommerce-mini-cart-item a{
margin-right:10px;
}
.pagelayer-menu-cart-container .woocommerce-mini-cart-item{
list-style:none
}
/*WooCommerce Menu Cart End*/
/* Call to action */
.pagelayer-cta-img-holder{
overflow:hidden;
width:100%;
}
.pagelayer-cta-image{
-o-object-fit: cover;
object-fit: cover;
/* height:100%; */
background-size: cover;
background-position: center;
}
.pagelayer-cta-image:before{
content:'';
position:absolute;
width:100%;
height:100%;
z-index:1;
}
.pagelayer-call[class*="pagelayer-cta-align"]{
display:flex;
flex-wrap:wrap;
position:relative;
}
.pagelayer-cta-align-right{
flex-direction:row-reverse;
}
.pagelayer-cta-content-holder{
display:flex;
flex-grow:1;
}
.pagelayer-cta-content{
width:100%;
}
.pagelayer-cta-ribbon:before {
content: "";
height: 0;
width: 0;
display: block;
position: absolute;
border-top: solid;
border-bottom: solid;
z-index: -1;
}
.pagelayer-cta-ribbon:after{
content: "";
width: 100%;
left:0;
position:absolute;
}
.pagelayer-cta-ribbon-left:before{
right: 0;
border-right: solid transparent;
}
.pagelayer-cta-ribbon-right:before{
left: 0;
border-left: solid transparent;
}
.pagelayer-cta-ribbon-text{
height:100%;
}
.pagelayer-cta-ribbon-text:before{
content: "";
height: 0;
width: 0;
display: block;
position: absolute;
top: 0;
border-top: solid;
border-bottom: solid;
border-right: solid transparent;
border-left: solid transparent;
}
.pagelayer-cta-layout-overlay .pagelayer-cta-image{
width:100%;
}
.pagelayer-cta-layout-overlay .pagelayer-cta-content-holder{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.pagelayer-cta-zoomin:hover .pagelayer-cta-image{
-ms-transform: scale(1.5);
-webkit-transform: scale(1.5);
transform:scale(1.5);
}
.pagelayer-cta-zoomout:hover .pagelayer-cta-image{
-ms-transform: scale(0.5);
-webkit-transform: scale(0.5);
transform:scale(0.5);
}
.pagelayer-cta-moveup:hover .pagelayer-cta-image{
background-position: top;
}
.pagelayer-cta-movedown:hover .pagelayer-cta-image{
background-position: bottom;
}
.pagelayer-cta-moveleft:hover .pagelayer-cta-image{
background-position: left;
}
.pagelayer-cta-moveright:hover .pagelayer-cta-image{
background-position: right;
}
.pagelayer-cta-content-holder{
z-index:1;
}
/* Call to action end */
/* Table start */
.pagelayer-table{
overflow-x: auto;
}
.pagelayer-table-holder{
width:100%;
}
.pagelayer-table-holder > tbody > tr > td{
word-break:break-word;
}
/* Table end */
/* Pop-up templates start */
.pagelayer-popup-modal{
position: fixed;
height: 100%;
width: 100%;
top: 0;
left: 0;
z-index: 9999;
display:none;
align-items:center;
justify-content:center;
pointer-events:none;
}
.pagelayer-popup-modal-content{
width: 375px;
background-color:#ffffff;
min-height:70px;
position:relative;
pointer-events:all;
}
.pagelayer-popup-content{
height:100%;
overflow:auto;
}
.pagelayer-popup-close{
position:absolute;
top:2%;
left:95%;
cursor:pointer;
display:none;
}
/* Pop-up templates end */
/* Image Portfolio */
.pagelayer-category-holder{
text-align:center;
padding-bottom:20px;
}
.pagelayer-pfbtn{
border:none;
padding:10px 10px;
background-color:#333;
color:#fff;
margin:0 5px;
cursor:pointer;
}
.pagelayer-img_portfolio-holder>div{
width:33%;
}
.pagelayer-single_img{
padding:10px;
}
.pagelayer-pf-img{
position:relative;
}
.pagelayer-pf-img .pagelayer-image-overlay-content{
text-align: center;
width:100%;
}
.pagelayer-single_img .pagelayer-image-overlay{
height: 0%;
opacity:1;
overflow:hidden;
background-color:rgba(3,3,3,0.5);
align-items: center;
}
.pagelayer-single_img:hover .pagelayer-image-overlay{
height: 100%;
}
.pagelayer-overlay-heading{
color:#ffffff;
}
.pagelayer-single_img .pagelayer-image-overlay-text{
color: #c7b7b7;
}
.pagelayer-single_img .pagelayer-image-overlay-icon{
font-size: 40px;
color: #ffffff;
}
.pagelayer-scrolling-effects{
transition: background .3s,border .3s,-webkit-border-radius .3s,-webkit-box-shadow .3s !important;
-webkit-transition: background .3s,border .3s,-webkit-border-radius .3s,-webkit-box-shadow .3s !important;
transition-delay:0s !important;
-webkit-transition-delay:0s !important;
transition-timing-function: cubic-bezier(0,.32,.07,1.03) !important;
-webkit-transition-timing-function: cubic-bezier(0,.32,.07,1.03) !important;
position:relative;
z-index:1;
}
.pagelayer-mouse-effects{
transition-delay:0s !important;
-webkit-transition-delay:0s !important;
transition-timing-function: cubic-bezier(0,.32,.07,1.03) !important;
-webkit-transition-timing-function: cubic-bezier(0,.32,.07,1.03) !important;
position:relative;
z-index:1;
}
/*Timeline widget*/
/* The actual timeline (the vertical ruler) */
.pagelayer-timeline {
position: relative;
margin: 0 auto;
}
/* The actual timeline (the vertical ruler) */
.pagelayer-timeline::after {
content: '';
position: absolute;
width: 6px;
top: 0;
bottom: 0;
left: 50%;
margin-left: -3px;
}
/* Container around content */
.pagelayer-timeline-container {
padding: 10px 40px;
position: relative;
background-color: inherit;
width: 100%;
display:flex;
box-sizing: border-box;
}
.pagelayer-timeline .pagelayer-timeline-container{
padding-bottom:50px;
}
.pagelayer-timeline-center-circle-container{
height:inherit;
width:40px;
position:relative;
margin-left:auto;
margin-right:auto;
box-sizing: border-box;
}
/* The circles on the timeline */
.pagelayer-timeline-center-circle{
position: absolute;
text-align:center;
background-color: white;
display: flex;
flex-direction: column;
justify-content: center;
z-index: 1;
box-sizing: border-box;
}
.pagelayer-timeline-circle-text p{
margin-top:auto;
margin-bottom:auto;
}
/* Place the container to the left */
.pagelayer-timeline-container-left {
width:50%;
}
.pagelayer-timeline-container-left .pagelayer-timeline-content{
margin-left:auto;
margin-right:10%;
}
/* Place the container to the right */
.pagelayer-timeline-container-right {
width:50%;
}
.pagelayer-timeline-container-right .pagelayer-timeline-content{
margin-left:10%;
margin-right:auto;
}
/*both side container css*/
.pagelayer-timeline-left .pagelayer-timeline-container-right,
.pagelayer-timeline-right .pagelayer-timeline-container-left{
visibility:hidden;
}
/* The actual content */
.pagelayer-timeline-content {
padding: 20px 30px;
position: relative;
word-break: break-word;
box-sizing: border-box;
overflow:hidden;
}
.pagelayer-timeline-content .pagelayer-heading-holder *{
margin:0px;
}
@media screen and (max-width: 600px) {
.pagelayer-timeline::after {
left: 31px;
}
.pagelayer-timeline-center-circle-container {
position:absolute;
height:100%;
left:11px;
top:0;
}
.pagelayer-timeline-container{
display:inline-block;
}
.pagelayer-timeline-container-left, .pagelayer-timeline-container-right{
width:100%;
margin:10px !important;
margin-left: 30px !important;
}
.pagelayer-timeline-container-left .pagelayer-timeline-content, .pagelayer-timeline-container-right .pagelayer-timeline-content{
margin:0;
}
}
/*Timeline widget end*/
/*facebook page css start*/
.pagelayer-fb-page-container, .pagelayer-fb-embed-container{
text-align:center;
}
.pagelayer-fb-embed-container .fb-embed{
width:100%;
}
.pagelayer-fb-btn-container .fb-like iframe{
width:auto !important;
}
/*facebook page css end*/
/* pagelayer sticky */
.pagelayer-sticky-ele{
transition: none;
}
/*pagelayer sticky end*/
/* Product image css */
.pagelayer-woo-gallery-left ol{
padding: 0px !important;
margin: 0px !important;
order: 1;
display: grid;
grid-template-columns: repeat(1,auto);
overflow: hidden;
list-style: none;
}
.pagelayer-woo-gallery-left ol li img,
.gallery-thumb-position-left ol li{
width: 100% !important;
height:100%
}
.pagelayer-woo-gallery-left .flex-viewport{
order:2;
}
.pagelayer-woo-gallery-left .woocommerce-product-gallery{
grid-template-columns: 20% 80%;
display: grid;
overflow: hidden;
box-sizing: border-box;
}
.pagelayer-woo-gallery-right ol{
text-align: left;
display: grid;
grid-template-columns: repeat(1,auto);
overflow: hidden;
list-style: none;
padding: 0px !important;
margin: 0px !important;
}
.pagelayer-woo-gallery-right ol li img,
.gallery-thumb-position-right ol li{
width: 100% !important;
height:100%;
}
.pagelayer-woo-gallery-right .woocommerce-product-gallery{
grid-template-columns: 80% 20%;
display: grid;
overflow: hidden;
padding: 0;
margin: 0;
}
.pagelayer-woo-gallery-top .flex-viewport{
order:2;
}
.pagelayer-woo-gallery-top ol{
width: 100%;
order: 1;
text-align: left;
display: flex !important;
overflow: hidden;
list-style: none;
padding: 0px !important;
margin: 0px !important;
}
.pagelayer-woo-gallery-top ol li{
flex: 1;
width: 100%;
}
.pagelayer-woo-gallery-top ol li img{
width: 100%;
height: 100%;
}
.pagelayer-woo-gallery-top .woocommerce-product-gallery{
grid-template-columns: repeat(1, auto);
display: grid;
overflow: hidden;
padding: 0;
margin: 0;
}
.pagelayer-woo-gallery-bottom ol{
width: 100%;
text-align: left;
display: flex !important;
overflow: hidden;
list-style: none;
padding: 0px !important;
margin: 0px !important;
}
.pagelayer-woo-gallery-bottom ol li{
flex: 1;
width: 100%;
}
.pagelayer-woo-gallery-bottom ol li img{
width: 100%;
height: 100%;
}
.pagelayer-woo-gallery-top .woocommerce-product-gallery{
grid-template-columns: repeat(1, auto);
display: grid;
overflow: hidden;
padding: 0;
margin: 0;
}
.pagelayer-product-images-container .woocommerce-product-gallery,
.pagelayer-product-images-container .flex-control-nav li{
width: 100% !important;
}
.pagelayer-data-tabs-container .woocommerce div.product .woocommerce-tabs ul.tabs li {
margin:0 -2px !important;
border:auto !important;
}
.pagelayer-data-tabs-container .wc-tabs{
margin-bottom:0px !important;
}
/* Product image end*/
/* Before After Start*/
.pagelayer-before-after-container{
width:100%;
height: auto;
margin:0;
}
.pagelayer-before-after-slider{
width:100%;
position:relative;
overflow:hidden;
line-height: 0 !important;
}
.pagelayer-after-image{
position:absolute;
width: 100%;
height:100%;
top:0;
left:0;
overflow:hidden;
z-index:1;
line-height: 0 !important;
clip-path:polygon(50% 0%, 100% 0%, 100% 100%, 50% 100%);
}
.pagelayer-before-image{
height: 100% !important;
}
.pagelayer-before-after-slider-vertical .pagelayer-after-image{
clip-path:polygon(0% 50%, 100% 50%, 100% 100%, 0% 100%);
}
.pagelayer-before-image img,
.pagelayer-after-image img{
width: 100%;
background: hsla(0,0%,100%,.65);
height: 100%;
user-select: none;
object-fit: fill;
}
.pagelayer-resizer{
position: absolute;
display: flex !important;
align-items: center;
top: 0;
height: 100%;
width: 4px;
left: 50%;
background: white;
-ms-touch-action: pan-y;
touch-action: pan-y;
z-index: 1;
cursor: e-resize !important;
}
.pagelayer-before-after-slider-horizontal.resize{
cursor: e-resize !important;
}
.pagelayer-before-after-slider-vertical.resize{
cursor: n-resize !important;
}
.pagelayer-before-after-slider-vertical .pagelayer-resizer{
width: 100%;
height: 4px;
top: 50%;
left: 0% !important;
z-index: 1;
cursor: n-resize !important;
}
.pagelayer-resizer:before{
background: #42414f;
font-weight: 900;
display: flex;
justify-content: center;
align-items: center;
color: white;
position: absolute;
min-width: 20px;
min-height: 20px;
border-radius: 50%;
border: 2px solid;
border-color: rgb(255, 255, 255);
top: 50%;
left: 50%;
box-sizing: unset;
padding: 5px;
transform: translateX(-50%) translateY(-50%);
}
.pagelayer-before-btn,
.pagelayer-after-btn{
font-size: 14px;
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 0;
color: white;
background-color: #129efaff;
font-size: 13px;
padding: 8px 17px;
border: 0px solid #42414f;
cursor: pointer;
border-radius: 2px;
text-align: center;
z-index: 1;
}
.pagelayer-after-btn{
left: auto;
right: 0;
}
.pagelayer-before-after-slider-vertical .pagelayer-before-btn{
top: 0;
left: 50%;
transform: translateX(-50%);
}
.pagelayer-before-after-slider-vertical .pagelayer-after-btn{
left: 50%;
transform: translateX(-50%);
bottom:0%;
top:initial;
right: auto;
}
.pagelayer-before-after-container[data-resize-event="none"] .pagelayer-resizer{
cursor: auto !important;
}
.pagelayer-before-after-container[data-resize-event="none"] .pagelayer-resizer:before{
display:none;
}
/* Before After End*/
/* Image Map Widget */
.pagelayer-imgmap-container {
position: relative;
overflow: hidden;
}
.pagelayer-imgmap-wrapper {
position: absolute;
width: 100%;
height: 100%;
}
.pagelayer-imgmap-svg {
width: 100%;
height: 100%;
margin: 0 !important;
} js/combined.js 0000644 00001243444 15152652074 0007321 0 ustar 00 /*
PAGELAYER
http://pagelayer.com/
(c) Pagelayer Team
*/
var pagelayer_doc_width;
// Things to do on document load
jQuery(document).ready(function(){
// Current width
pagelayer_doc_width = jQuery(document).width();
// Rows
jQuery('.pagelayer-row-stretch-full').each(function(){
pagelayer_pl_row_full(jQuery(this));
});
jQuery('.pagelayer-anim_heading').each(function(){
pagelayer_anim_heading(jQuery(this));
});
// Setup any sliders
jQuery('.pagelayer-image_slider').each(function(){
pagelayer_pl_image_slider(jQuery(this));
});
jQuery('.pagelayer-accordion').each(function(){
pagelayer_pl_accordion(jQuery(this));
});
jQuery('.pagelayer-collapse').each(function(){
pagelayer_pl_collapse(jQuery(this));
});
jQuery('.pagelayer-tabs').each(function(){
pagelayer_pl_tabs(jQuery(this));
});
jQuery('.pagelayer-video').each(function(){
pagelayer_pl_video(jQuery(this));
});
jQuery('.pagelayer-image').each(function(){
pagelayer_pl_image(jQuery(this));
});
jQuery('.pagelayer-grid_gallery').each(function(){
pagelayer_pl_grid_lightbox(jQuery(this));
});
jQuery('.pagelayer-row, .pagelayer-inner_row, .pagelayer-col').each(function(){
pagelayer_pl_row_video(jQuery(this));
});
jQuery('.pagelayer-parallax-window img').each(function(){
pagelayer_pl_row_parallax(jQuery(this));
});
jQuery('.pagelayer-recaptcha, .pagelayer-g-recaptcha-v3-token').each(function(){
pagelayer_recaptcha_loader(jQuery(this));
});
jQuery('.pagelayer-wp_menu').each(function(){
pagelayer_primary_menu(jQuery(this));
});
jQuery('.pagelayer-contact').each(function(){
pagelayer_contact_form(jQuery(this));
});
jQuery('.pagelayer-countdown').each(function(){
pagelayer_countdown(jQuery(this));
});
jQuery('.pagelayer-testimonial_slider').each(function(){
pagelayer_pl_testimonial_slider(jQuery(this));
});
jQuery('.pagelayer-social_grp').each(function(){
pagelayer_pl_social_profile(jQuery(this));
});
jQuery('.pagelayer-scroll-to-element').each(function () {
pagelayer_button_element_scroll(jQuery(this));
});
jQuery('.pagelayer-bgimg-slider').each(function () {
pagelayer_pl_row_slider(jQuery(this));
});
jQuery('.pagelayer-stars-container').each(function(){
pagelayer_stars(jQuery(this));
});
jQuery('.pagelayer-infinite-posts').each(function(){
pagelayer_infinite_posts(jQuery(this));
});
jQuery('.pagelayer-youtube-video').each(function(){
pagelayer_create_yt_player(jQuery(this));
});
// We need to call the is visible thing to show the widgets loading effect
if(jQuery('.pagelayer-counter-content,.pagelayer-progress-container').length > 0){
// First Call
pagelayer_counter();
pagelayer_progress();
jQuery(window).scroll(function() {
pagelayer_progress();
pagelayer_counter();
});
}
new WOW({boxClass:'pagelayer-wow'}).init();
// Remove pagelayer-wow temporary style after wow init added from wp_head
jQuery('#pagelayer-wow-animation-style').remove();
});
// For automatic row change
jQuery(window).resize(function() {
// Primary Menu
jQuery('.pagelayer-wp_menu').each(function(){
pagelayer_primary_menu(jQuery(this));
});
var new_vw = jQuery(document).width();
if(new_vw == pagelayer_doc_width){
return false;
}
pagelayer_doc_width = new_vw;
// Remove style
jQuery('.pagelayer-row-stretch-full').removeAttr('style');
// Set a timeout to prevent bubbling
setTimeout(function(){
jQuery('.pagelayer-row-stretch-full').each(function(){
pagelayer_pl_row_full(jQuery(this));
});
}, 200);
});
// Get document for gutenberg
function pagelayerGetDocumentElement(){
// Find the iframe element with the name "editor-canvas".
const editorIframe = document.querySelectorAll( 'iframe[name="editor-canvas"]' );
if(! editorIframe?.[ 0 ]){
return document;
}
// Get the document of the iframe.
const iframeDocument = editorIframe[ 0 ]?.contentWindow?.document || editorIframe[ 0 ]?.contentDocument;
if ( ! iframeDocument ) {
return document;
}
// Set the root element to the iframe document.
return iframeDocument;
};
// Get Window for gutenberg
function pagelayerGetCurrentWindow(){
var doc = pagelayerGetDocumentElement();
return doc.defaultView || window;
}
// Modify jQuery for gutenberg tablet and mobile
function pagelayer_query(sel, doc) {
doc = doc || pagelayerGetDocumentElement();
return jQuery(sel, doc);
}
// Check if element is visible
function pagelayer_isVisible(ele) {
var win = pagelayerGetCurrentWindow();
var offset = win.innerHeight;
var viewTop = win.pageYOffset;
var viewBottom = viewTop + offset - Math.min(ele.height(), ele.innerHeight());
var top = ele.offset().top;
var bottom = top + ele.innerHeight();
if(top <= viewBottom && bottom >= viewTop){
return true;
}
return false;
}
// Get media mode
function pagelayer_get_media_mode(){
var win = pagelayerGetCurrentWindow();
if(win.matchMedia("(min-width: "+ (pagelayer_settings['tablet_breakpoint'] + 1) +"px)").matches){
return 'desktop';
}
if(win.matchMedia("(max-width: "+ pagelayer_settings['tablet_breakpoint'] +"px) and (min-width: "+ (pagelayer_settings['mobile_breakpoint'] + 1) +"px)").matches){
return 'tablet';
}
if(win.matchMedia("(max-width: "+ pagelayer_settings['mobile_breakpoint'] +"px)").matches){
return 'mobile';
}
return 'desktop';
}
// Row background video and parallax
function pagelayer_pl_row_video(jEle){
var vEle = jEle.children('.pagelayer-background-video');
// Not a video in the element
if(vEle.length < 1){
return true;
}
var setup = vEle.attr('pagelayer-setup');
if(setup && setup.length > 0){
return true;
}
var frame_width = vEle.width();
var frame_height = (frame_width/100)*56.25;
var height = vEle.height();
if(frame_height < height){
frame_height = height;
}
vEle.children().css({'width':frame_width+'px','height':frame_height+'px'});
if(vEle.find('.pagelayer-youtube-video').length > 0){
pagelayer_create_yt_player(vEle.find('.pagelayer-youtube-video'));
}
vEle.attr('pagelayer-setup', 1);
}
function pagelayer_create_yt_player(jEle){
var pEle = jEle.parent(),
aspectRatioSetting = '16:9',
containerWidth = pEle.outerWidth(),
containerHeight = pEle.outerHeight(),
aspectRatioArray = aspectRatioSetting.split(':'),
aspectRatio = aspectRatioArray[0] / aspectRatioArray[1],
isWidthFixed = containerWidth / containerHeight > aspectRatio,
width= isWidthFixed ? containerWidth : containerHeight * aspectRatio,
height= isWidthFixed ? containerWidth / aspectRatio : containerHeight;
var yt_api_interval = setInterval(function(){
if(!(window.YT && YT.loaded)){
return
}
clearInterval(yt_api_interval);
var settings ={};
settings.loop = jEle.attr('data-loop');
settings.videoid = jEle.attr('data-videoid');
settings.mute = jEle.attr('data-mute');
var player;
var onPlayerReady = function(event) {
event.target.playVideo();
}
player = new YT.Player(jEle[0], {
width: width,
height: height,
videoId: settings.videoid,
playerVars: {
controls: 0,
rel: 0,
loop: settings.loop,
mute:settings.mute,
playsinline: 1,
playlist: settings.videoid,
},
events: {
'onReady': onPlayerReady,
}
});
}, 500);
}
// Row background parallax
function pagelayer_pl_row_parallax(jEle){
//Parallax background
var setup = jEle.attr('pagelayer-setup');
if(setup && setup.length > 0){
return true;
}
new pagelayerParallax(jEle);
jEle.attr('pagelayer-setup', 1);
}
// Adjust rows
function pagelayer_pl_row_full(jEle, html){
html = html || pagelayer_query('html');
// Get current width
var vw = html[0].clientWidth;
// Now give the row the width
jEle.css({'width': vw, 'max-width': '100vw'});
// Set the offset
jEle.offset({left: 0});
// Set a timeout as well as some themes can interfere with us
setTimeout(function(){
jEle.offset({left: 0});
}, 500);
};
// Modal open
function pagelayer_render_pl_modal(e){
jQuery(e.target).closest('.pagelayer-modal-container').find('.pagelayer-modal-content').show();
};
// Modal close
function pagelayer_pl_modal_close(e){
jQuery(e.target).closest('.pagelayer-modal-content').hide();
}
// Setup the image slider
function pagelayer_pl_image_slider(jEle){
var ul = jEle.find('.pagelayer-image-slider-ul');
// Build the options
var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-');
pagelayer_owl_init(jEle, ul, options);
}
function pagelayer_get_tab_ele(temp_tabCont){
if(!pagelayer_empty(temp_tabCont.children('.pagelayer-ele-wrap').length)){
return temp_tabCont.children('.pagelayer-ele-wrap').children('.pagelayer-tab');
}else{
return temp_tabCont.children('.pagelayer-tab');
}
}
function pagelayer_tab_show(el, pl_id) {
var parent_id = jQuery(el).closest('.pagelayer-tabs').attr('pagelayer-id');
var temp_tabCont = pagelayer_query('[pagelayer-id='+pl_id+']').closest('.pagelayer-tabcontainer');
pagelayer_get_tab_ele(temp_tabCont).hide();
pagelayer_query('[pagelayer-id='+pl_id+']').show();
jQuery(el).parent().find('.pagelayer-tablinks').each(function(){
jQuery(this).removeClass('active');
});
jQuery(el).addClass("active");
}
var pagelayer_tab_timers = {};
function pagelayer_pl_tabs(jEle) {
var default_active = '';
var jEle_id = jEle.attr('pagelayer-id');
var hashTabId = '';
var tabCont = jEle.children('.pagelayer-tabcontainer');
var children = pagelayer_get_tab_ele(tabCont);
// Loop thru
children.each(function(){
var tEle = jQuery(this);
var pl_id = tEle.attr('pagelayer-id');
var title = tEle.attr('pagelayer-tab-title') || 'Tab';
var id = tEle.attr('id');
var func = "pagelayer_tab_show(this, '"+pl_id+"')";
var icon = '';
if(tEle.attr('pagelayer-tab-icon')){
icon = tEle.attr('pagelayer-tab-icon');
}
// Set the default tab
if(tEle.attr('pagelayer-default_active') && !pagelayer_empty(pl_id)){
default_active = pl_id;
}
jEle.children('.pagelayer-tabs-holder').append('<span tab-id="'+pl_id+'" id="'+id+'" class="pagelayer-tablinks" onclick="'+func+'"> <i class="'+icon+'"></i> <span>'+title+'</span></span>');
});
// Default Active by Hash
var hash = location.hash.slice(1);
if (!pagelayer_empty(hash)) {
var hashTab = jEle.find('#' + hash);
if (!pagelayer_empty(hashTab) && hashTab.length > 0) {
var currentTab = hashTab.closest('.pagelayer-tablinks');
if (currentTab.length > 0) {
var currentTabId = currentTab.attr('tab-id');
hashTabId = currentTabId;
}
}
}
if(hashTabId.length > 0){
pagelayer_tab_show(jEle.find('[tab-id=' + hashTabId + ']'), hashTabId);
// Set the default tab
}else if(default_active.length > 0){
pagelayer_tab_show(jEle.find('[tab-id='+default_active+']'), default_active);
// Set the first tab as active
}else{
var first_tab = jEle.find('[tab-id]').first();
pagelayer_tab_show(first_tab, first_tab.attr('tab-id'));
}
try{
clearInterval(pagelayer_tab_timers[jEle_id]);
}catch(e){};
var rotate = parseInt(jEle.attr('pagelayer-tabs-rotate'));
// Are we to rotate
if(rotate > 0){
var i= 0;
pagelayer_tab_timers[jEle_id] = setInterval(function () {
if(i >= children.length){
i = 0;
}
var tabCont = jEle.children('.pagelayer-tabcontainer');
var tmp_pl_ele = pagelayer_get_tab_ele(tabCont)[i];
var tmp_btn_ele = jEle.find('.pagelayer-tablinks')[i]
var tmp_pl_id = jQuery(tmp_pl_ele).attr('pagelayer-id');
jEle.find('.pagelayer-tablinks').each(function(){
jQuery(this).removeClass('active');
});
jQuery(tmp_btn_ele).addClass("active");
pagelayer_tab_show(tmp_btn_ele, tmp_pl_id);
i++;
}, rotate);
}
}
// Setup the Accordion
function pagelayer_pl_accordion(jEle){
var holder = jEle.find('.pagelayer-accordion-holder');
var accHolder = jEle.find('.pagelayer-accordion_item');
var scrolltop = false;
if(accHolder.length < 1){
return false;
}
var icon = holder.attr('data-icon');
var active_icon = holder.attr('data-active_icon');
accHolder.find('.pagelayer-accordion-tabs span i').attr('class', icon);
var currentActiveTab = jEle.find('.pagelayer-accordion_item.active').first();
// Any URL HASH ?
var hash = location.hash.slice(1);
if(!pagelayer_empty(hash)){
var scrollTab = jEle.find('#'+hash);
if(!pagelayer_empty(scrollTab) && scrollTab.length > 0){
currentActiveTab = scrollTab.closest('.pagelayer-accordion_item');
}
}
holder.unbind('click');
holder.on('click', '.pagelayer-accordion-tabs', function(){
var currentTab = jQuery(this).closest('.pagelayer-accordion_item');
if(currentTab.hasClass('active') && currentTab.children('.pagelayer-accordion-panel').is(':visible')){
currentTab.removeClass('active').children('.pagelayer-accordion-panel').slideUp('slow');
currentTab.find('.pagelayer-accordion-tabs span i').attr('class', icon);
return true;
}
accHolder.find('.pagelayer-accordion-tabs span i').attr('class', icon);
accHolder.removeClass('active').filter(function(index){
return accHolder[index]!=currentTab[0];
}).children('.pagelayer-accordion-panel').slideUp('slow');
currentTab.addClass('active').children('.pagelayer-accordion-panel').slideDown('slow');
currentTab.find('.pagelayer-accordion-tabs span i').attr('class', active_icon);
});
// To prevent default active click in gutenberg
var setup = jEle.attr('pagelayer-setup');
// Already setup ?
if(setup && setup.length > 0){
return;
}
jEle.attr('pagelayer-setup', 1);
// If active first tab from all active tabs
currentActiveTab.removeClass('active');
currentActiveTab.find('.pagelayer-accordion-tabs').click();
}
// Setup the Collapse
function pagelayer_pl_collapse(jEle){
var holder = jEle.find('.pagelayer-collapse-holder');
var tabs = jEle.find('.pagelayer-accordion_item');
if(tabs.length < 1){
return false;
}
var setup = tabs.attr('pagelayer-setup');
var icon = holder.attr('data-icon');
var active_icon = holder.attr('data-active_icon');
// Any URL HASH ?
var hash = location.hash.slice(1);
if(!pagelayer_empty(hash)){
var scrollTab = jEle.find('#'+hash);
if(!pagelayer_empty(scrollTab) && scrollTab.length > 0){
scrollTab.closest('.pagelayer-accordion_item').addClass('active');
}
}
var activeTabs = jEle.find('.pagelayer-accordion_item.active');
tabs.find('.pagelayer-accordion-tabs span i').attr('class', icon);
jQuery(activeTabs).addClass('active').children('.pagelayer-accordion-panel').slideDown('slow');
jQuery(activeTabs).find('.pagelayer-accordion-tabs span i').attr('class', active_icon);
// Already setup ?
if(setup && setup.length > 0){
tabs.find('.pagelayer-accordion-tabs').unbind('click');
}
tabs.find('.pagelayer-accordion-tabs').click(function(){
var currentTab = jQuery(this).closest('.pagelayer-accordion_item');
if(currentTab.hasClass('active')){
currentTab.removeClass('active').children('.pagelayer-accordion-panel').slideUp('slow');
currentTab.find('.pagelayer-accordion-tabs span i').attr('class', icon);
return true;
}
currentTab.addClass('active').children('.pagelayer-accordion-panel').slideDown('slow');
currentTab.find('.pagelayer-accordion-tabs span i').attr('class', active_icon);
});
// Set that we have setup everything
tabs.attr('pagelayer-setup', 1);
}
// Counter
function pagelayer_counter(){
pagelayer_query('.pagelayer-counter-content').each(function(){
var jEle = jQuery(this);
if(pagelayer_isVisible(jEle)){
var setup = jEle.attr('pagelayer-setup');
// Already setup ?
if(setup && setup.length > 0){
return true;
}
var options = {};
options['duration'] = jEle.children('.pagelayer-counter-display').attr('pagelayer-counter-animation-duration');
options['delimiter'] = jEle.children('.pagelayer-counter-display').attr('pagelayer-counter-seperator-type');
options['toValue'] = jEle.children('.pagelayer-counter-display').attr('pagelayer-counter-last-value');
jEle.children('.pagelayer-counter-display').numerator( options );
// Set that we have setup everything
jEle.attr('pagelayer-setup', 1);
}
});
}
function pagelayer_progress(){
pagelayer_query('.pagelayer-progress-container').each(function(){
var jEle = jQuery(this);
if(pagelayer_isVisible(jEle)){
var setup = jEle.attr('pagelayer-setup');
if(setup && setup.length > 0){
return true;
}
var progress_width = jEle.children('.pagelayer-progress-bar').attr('pagelayer-progress-width');
if(progress_width == undefined){
progress_width = "1";
}
var width = 0;
var interval;
var progress = function(){
if (width >= progress_width) {
clearInterval(interval);
} else {
width++;
jEle.children('.pagelayer-progress-bar').css('width', width + '%');
jEle.find('.pagelayer-progress-percent').text(width * 1 + '%');
}
}
interval = setInterval(progress, 30);
jEle.attr('pagelayer-setup', 1);
}
});
}
// Dismiss Alert Function
function pagelayer_dismiss_alert(x){
if(!pagelayer_empty(pagelayer_is_live)){
return;
}
jQuery(x).parent().parent().fadeOut();
}
// Video light box handler
function pagelayer_pl_video(jEle){
var videoIframe = jEle.find('.pagelayer-video-iframe');
// Adding loop, autoplay and mute properties on video before loading
videoIframe.on('load', function() {
// Checking of video source if it is youtube or vimeo because
// TODO: Need to check, if this is not local file then return
if(jQuery(this)[0].src.indexOf('youtube.com') != -1 || jQuery(this)[0].src.indexOf('vimeo.com') != -1){
return;
}
var vidElm = jQuery(this).contents().find('video');
var vidSrc = (pagelayer_empty(vidElm[0].src)) ? vidElm.children()[0].src : vidElm[0].src;
if(vidSrc[vidSrc.indexOf('&loop=')+6] == 1){
vidElm.attr('loop','loop');
}
if(vidSrc[vidSrc.indexOf('&autoplay=')+10] == 0){
vidElm.removeAttr('autoplay');
vidElm[0].pause();
}else if(vidSrc[vidSrc.indexOf('&autoplay=')+10] == 1){
vidElm.attr('autoplay','');
vidElm.attr('playsinline','');
}
if(vidSrc[vidSrc.indexOf('&mute=')+6] == 1){
vidElm[0].muted = "muted";
vidElm.attr('muted','');
}
});
// A tag will be there ONLY if the lightbox is on
var overlayval = jEle.find('.pagelayer-video-overlay');
var a = jEle.find(".pagelayer-video-holder a");
// No lightbox
if(a.length < 1 && pagelayer_empty(overlayval)){
return;
}
a.nivoLightbox({
effect: "fadeScale",
});
jEle.find(".pagelayer-video-holder .pagelayer-video-overlay").on("click", function(ev) {
var target = jQuery(ev.target);
if (!target.parent("a").length) {
videoIframe[0].src = videoIframe[0].src.replace("&autoplay=0", "rel=0&autoplay=1");
jQuery(this).hide();
}
});
}
// Image light box handler
function pagelayer_pl_image(jEle){
// Drag and Drop function for image
if (typeof pagelayer_preDAndD_image !== "undefined") {
pagelayer_preDAndD_image(jEle);
}
// A tag will be there ONLY if the lightbox is on
var a = jEle.find("[pagelayer-image-link-type=lightbox]");
// No lightbox
if(a.length < 1){
return;
}
a.nivoLightbox({
effect: "fadeScale",
});
}
function pagelayer_stars(jEle){
var setup = jEle.attr('pagelayer-setup');
if(setup && setup.length > 0){
return true;
}
var count = jEle.attr('pagelayer-stars-count');
if (isNaN(count)) {
count = '0';
}
i = 0;
var stars = "";
while(i < count){
stars +='<div class="pagelayer-stars-icon pagelayer-stars-empty"><i class="fas fa-star" aria-hidden="true"></i></div>';
i++;
}
jEle.empty();
jEle.append(stars);
var starsval = jEle.attr('pagelayer-stars-value');
if (isNaN(starsval)) {
starsval = count;
}
starsval = starsval.split('.');
var fullstars = starsval[0];
var value = starsval[1];
var halfstar = parseInt(fullstars) + 1;
var emptystars = parseInt(fullstars) + 2;
jEle.children('.pagelayer-stars-icon').attr("class","pagelayer-stars-icon");
jEle.children('.pagelayer-stars-icon:nth-child(-n+'+ fullstars +')').addClass('pagelayer-stars-full');
if(value != undefined){
jEle.children('.pagelayer-stars-icon:nth-child('+ halfstar +')').addClass('pagelayer-stars-'+value);
}else{
jEle.children('.pagelayer-stars-icon:nth-child('+ halfstar +')').addClass('pagelayer-stars-empty');
}
jEle.children('.pagelayer-stars-icon:nth-child(n+'+ emptystars +')').addClass('pagelayer-stars-empty');
jEle.attr('pagelayer-setup', 1);
}
// Grid Gallery pagination Off On function
function pagelayer_pl_grid_paginate(gridCont, pagination, pageValue, gridValue){
gridCont.hide();
pagination.removeClass('active');
pagination.eq(pageValue).addClass('active');
gridCont.eq(gridValue).show();
}
//Grid Gallery Lightbox
function pagelayer_pl_grid_lightbox(jEle){
// Grid Gallery pagination settings
var gridCont = jEle.find('.pagelayer-grid-gallery-container').children();
var pagination = jEle.find('.pagelayer-grid-gallery-pagination ul').children();
gridCont.hide();
gridCont.eq(0).show();
// Adding event listners to pagination
jEle.find('.pagelayer-grid-page-item').each(function(){
jQuery(this).on('click', function(event){
var text = jQuery(this).text();
switch(text){
case '«':
pagelayer_pl_grid_paginate(gridCont, pagination, 1, 0);
break;
case '»':
pagelayer_pl_grid_paginate(gridCont, pagination, (pagination.length-2), (gridCont.length-1));
break;
default:
pagelayer_pl_grid_paginate(gridCont, pagination, text, text-1);
break;
}
});
});
// A tag will be there ONLY if the lightbox is on
var a = jEle.find("[pagelayer-grid-gallery-type=lightbox]");
// No lightbox
if(a.length < 1){
return;
}
a.nivoLightbox({
effect: "fadeScale",
keyboardNav: true,
clickImgToClose: false,
clickOverlayToClose: true,
});
}
// Is string?
function pagelayer_is_string(str){
if(typeof str == 'string'){
return true;
}
return false;
}
// PHP equivalent empty()
function pagelayer_empty(mixed_var) {
var undef, key, i, len;
var emptyValues = [undef, null, false, 0, '', '0'];
for (i = 0, len = emptyValues.length; i < len; i++) {
if (mixed_var === emptyValues[i]) {
return true;
}
}
if (typeof mixed_var === 'object') {
for (key in mixed_var) {
// TODO: should we check for own properties only?
//if (mixed_var.hasOwnProperty(key)) {
return false;
//}
}
return true;
}
return false;
};
function pagelayer_fetch_dataAttrs(ele, prefix){
var options = {};
jQuery.each(ele.get(0).attributes, function(i, attrib){
//console.log(attrib);
if(attrib.name.includes(prefix)){
var opt_name = attrib.name.substring(prefix.length);
// Check for any Uppercase attribute
if(opt_name.includes('-')){
opt_name = opt_name.split('-');
//console.log(opt_name);
var opt_arr = [];
jQuery.each(opt_name, function(key, value) {
if(key != 0){
opt_arr.push(value.charAt(0).toUpperCase() + value.slice(1));
}else{
opt_arr.push(value);
}
});
//console.log(opt_arr);
opt_name = opt_arr.join('');
}
// Make the values correct
var val = attrib.value;
if(val == 'true') val = true;
if(val == 'false') val = false;
if(jQuery.isNumeric(val)) val = parseInt(val);
options[opt_name] = val;
}
});
//console.log(options);
if(options['controls']){
switch(options['controls']){
case 'arrows':
options['nav'] = true;
options['dots'] = false;
break;
case 'pager':
options['dots'] = true;
options['nav'] = false;
break;
case 'none':
options['nav'] = false;
options['dots'] = false;
break;
}
}else{
options['nav'] = true;
options['dots'] = true;
}
if(options['animateIn']){
switch(options['controls']){
case 'horizontal':
options['animateIn'] = 'slideInLeft';
break;
case 'vertical':
options['animateIn'] = 'slideInDown';
break;
case 'kenburns':
options['animateIn'] = 'zoomIn';
break;
default:
options['animateIn'] = options['animateIn'];
}
}
if(!options['items']){
options['items'] = 1;
}
options['responsive'] = {
0:{items: 1},
500:{items: options['items']}
}
options['responsiveRefreshRate'] = 1000;
// If we are in editor don't loop the Owl items
if (window.location.href.indexOf('pagelayer-live=1') > -1) {
//console.log('here');
options['loop'] = false;
}
return options;
}
function pagelayer_owl_init(jEle, ul, options){
//console.log(options);
var setup = jEle.attr('pagelayer-setup');
var id = jEle.closest('[pagelayer-id]').attr('[pagelayer-id]');
if( options.navtext ) {
var right = options.navtext.replace('left','right');
options.navText = [`<i class="${options.navtext}"></i>`, `<i class="${right}"></i>`];
}
// Already setup ?
if(setup && setup.length > 0){
return true;
}
const wind = pagelayerGetCurrentWindow();
options['responsiveBaseElement'] = wind;
var owlCar = ul.pagelayerOwlCarousel(options);
// Refreshing Image slider after first load of page.
var referrerOwl = function(){
setTimeout(function(){
owlCar.trigger('refresh.owl.carousel');
},700);
}
referrerOwl();
// To prevent slider drag inside the editable area
jEle.on('mousedown', function(e){
var target = e.target;
var isEditable = jQuery(target).closest('[contenteditable="true"]');
if(isEditable.length < 1){
return;
}
isEditable.on('mousedown.owl.core dragstart.owl.core selectstart.owl.core touchstart.owl.core touchcancel.owl.core', function(e){
e.stopPropagation();
});
});
// Gutenberg responsive Handler
if(wind != window){
jQuery(wind).unbind('resize.pl_'+id, referrerOwl);
jQuery(wind).on('resize.pl_'+id, referrerOwl);
}
// Set that we have setup everything
jEle.attr('pagelayer-setup', 1);
}
// recaptcha handler
function pagelayer_recaptcha_loader(jEle, loadScript){
loadScript = loadScript || false;
// Render recaptcha
var reParam = '';
var sitekey = jEle.data("sitekey");
if(!pagelayer_empty(pagelayer_recaptch_lang)){
reParam = '&hl='+pagelayer_recaptch_lang;
}
// Add recaptcha script
if(pagelayer_empty(window.grecaptcha) && !pagelayer_empty(loadScript)){
var render = (pagelayer_recaptch_version == 'v3') ? sitekey : 'explicit';
pagelayer_query('body').append('<script src="https://www.google.com/recaptcha/api.js?render='+render+reParam+'" async defer></script>');
}
// Render recaptcha
var recaptcha_interval = setInterval(function(){
if(!pagelayer_empty(window.grecaptcha)){
grecaptcha.ready(function() {
try{
// Call grecaptcha.execute() to trigger reCAPTCHA v3 and get a token
if(pagelayer_recaptch_version == 'v3'){
var form = jEle.closest('form');
form.find('[type="submit"]').off('click').on('click', function(e){
e.preventDefault();
grecaptcha.execute(sitekey, { action: 'submit' }).then(function (token) {
// Append the token to the form or element to be submitted
form.find('input.pagelayer-g-recaptcha-v3-token').val(token);
if(form[0].requestSubmit){
form[0].requestSubmit();
}else{
form.submit();
}
});
});
}else{
var widgetID = grecaptcha.render(jEle.get(0), {'sitekey' : sitekey});
jEle.attr('recaptcha-widget-id', widgetID);
}
}catch(e){
console.log("There is some issue in rendering reCaptcha. Please check your recaptcha site-key !");
}
});
clearInterval(recaptcha_interval);
}
}, 500);
}
// Scroll to element button effect
function pagelayer_button_element_scroll(jEle) {
var speed = parseInt(jEle.attr('pagelayer_scrollto_speed') * 1000);
var idspacing = 0;
var scrollId = jEle.attr('pagelayer_scrollto_id');
if(jEle.attr('pagelayer_scrollto_type') == 'toid'){
var scrolltoEle = pagelayer_query('#' + scrollId);
if(pagelayer_empty(scrollId) || scrolltoEle.length < 1){
return;
}
var idpos = parseInt(scrolltoEle.offset().top);
var spacing = parseInt(jEle.attr('pagelayer_scrollto_id_viewport'));
if (isNaN(spacing)) {
spacing = 0;
}
idspacing = idpos + spacing;
}
jEle.on('click', function (e) {
e.preventDefault();
pagelayer_query('html, body').animate({ scrollTop: idspacing }, speed);
});
}
////////////
// Freemium
////////////
// Contact Form handler - Premium
function pagelayer_contact_form(jEle){
jEle = jQuery(jEle);
var id = jEle.attr('pagelayer-id');
// Set pagelayer id to input field
jEle.find('form input[name="cfa-pagelayer-id"]').val(id);
}
// Contact Form Submit handler - Premium
function pagelayer_contact_submit(jEle, e){
e.preventDefault();
// Checking for required checkboxes.
for(var checkbox_div of jQuery(jEle).find('.pagelayer-contact-checkbox')){
checkbox_div = jQuery(checkbox_div);
if(checkbox_div.attr('required') == 'required'){
if(pagelayer_empty(checkbox_div.find('input:checked').length)){
alert('Kindly select the required checkbox');
return;
}
}
}
// Trigger an action
jQuery(document).trigger('pagelayer_contact_submit', e, jEle);
// Disabling submit button with loading animation.
jQuery(jEle).find('.pagelayer-contact-submit-btn').prop('disabled', true);
jQuery(jEle).find('.pagelayer-contact-submit-btn .fa-spin').show('0.6');
//var fdata = jQuery(jEle).closest('form').serialize();
var redirect = jQuery(jEle).find('input[name="cfa-redirect"]');
var formData = new FormData( jQuery(jEle)[0] );
var par = jQuery(jEle).parent();
// Append the nonce
formData.append('pagelayer_nonce', pagelayer_global_nonce);
// Hide any message
par.find(".pagelayer-message-box").hide();
// Message pos to use ?
var msg_pos = 'top';
if(par.parent().hasClass('pagelayer-message-box-bottom')){
msg_pos = 'bottom';
}
par.find(".pagelayer-message-box").removeClass('pagelayer-cf-msg-err pagelayer-cf-msg-suc');
jQuery.ajax({
url: pagelayer_ajaxurl+'action=pagelayer_contact_submit',
type: "POST",
data: formData,
processData: false,
contentType: false,
cache:false,
success:function(result){
var json = jQuery.parseJSON(result);
jQuery(jEle).find('.pagelayer-contact-submit-btn').prop('disabled', false);
jQuery(jEle).find('.pagelayer-contact-submit-btn .fa-spin').hide('0.6');
if('success' in json){
par.find(".pagelayer-message-"+msg_pos).addClass('pagelayer-cf-msg-suc').html(json['success']).fadeIn();
if(redirect.length > 0 && !pagelayer_empty(redirect.val())){
window.location.href = redirect.val();
}
}else{
par.find(".pagelayer-message-"+msg_pos).addClass('pagelayer-cf-msg-err').html(json['failed']).fadeIn();
}
},
error:function(result){
par.find(".pagelayer-message-"+msg_pos).addClass('pagelayer-cf-msg-err').html(json['failed']).fadeIn();
}
});
jEle.reset();
jQuery(jEle).find('.pagelayer-recaptcha').each(function(){
var widgetID = jQuery(this).attr('recaptcha-widget-id');
if(!pagelayer_empty(window.grecaptcha)){
grecaptcha.reset(widgetID);
}
});
return false;
}
// Primary Menu Handler - Premium
function pagelayer_primary_menu(jEle){
var container = jEle.find('.pagelayer-wp-menu-container');
var menu_bar = jEle.find('.pagelayer-primary-menu-bar i');
var menu_holder = jEle.find('.pagelayer-wp-menu-holder');
var layout = menu_holder.attr('data-layout');
var submenu_ind = menu_holder.attr('data-submenu_ind');
var responsive = menu_holder.attr('data-responsive');
var drop_breakpoint = menu_holder.attr('data-drop_breakpoint');
var close = jEle.find('.pagelayer-wp_menu-close');
var media_mode = pagelayer_get_media_mode();
if( (drop_breakpoint == 'tablet' && (media_mode == 'tablet' || media_mode == 'mobile')) || (drop_breakpoint == 'mobile' && media_mode == 'mobile') ){
menu_holder.addClass('pagelayer-wp-menu-dropdown');
container.addClass('pagelayer-menu-type-dropdown');
container.removeClass('pagelayer-menu-type-'+layout);
layout = 'dropdown';
}else{
menu_holder.removeClass('pagelayer-wp-menu-dropdown');
container.removeClass('pagelayer-menu-type-dropdown');
container.addClass('pagelayer-menu-type-'+layout);
}
// Set mega menu width
// Wait for all other animations to finish
setTimeout(function(){
container.find('.pagelayer-mega-menu-item, .pagelayer-mega-column-item').each(function(){
var liEle = jQuery(this),
lEle = liEle.find('.pagelayer-nav_menu_item').first(),
megaHolder = lEle.closest('.pagelayer-mega-menu'),
setClass = 'pagelayer-set-position';
if(liEle.hasClass('pagelayer-mega-column-item')){
megaHolder = liEle.children('.sub-menu');
}
if(megaHolder.length < 1){
return;
}
var Css = {};
// Remove all css settings
jQuery(document).unbind('scroll.megaMenu');
megaHolder.css({'width' : '', 'left' : '', 'max-width' : '', 'max-height' : ''});
if(layout == 'dropdown'){
return;
}
// Set active to get position
megaHolder.addClass(setClass);
var megaLeft = megaHolder.offset().left,
megaWidth = lEle.attr('pagelayer-mega-width'),
wContainer = lEle.closest('.pagelayer-wp-menu-container'),
megaCustomWidth = lEle.attr('pagelayer-mega-custom-width') || '',
widthEle;
// Is vertical menu?
if(layout == 'vertical'){
var docWidth = jQuery('body').width();
var vWidth = docWidth - megaLeft;
Css['max-width'] = vWidth;
Css['width'] = vWidth;
if(megaWidth == 'custom'){
Css['width'] = megaCustomWidth;
}
megaHolder.css(Css);
megaHolder.removeClass(setClass);
return;
}
var megaMenuHeight = function(e){
if(!pagelayer_empty(e) && megaHolder.is(':visible')){
return;
}
var windowHeight = jQuery(window).height();
var ulBottom = megaHolder.closest('.pagelayer-wp_menu-ul')[0].getBoundingClientRect().bottom;
megaHolder.css('max-height', windowHeight - ulBottom);
};
megaMenuHeight();
jQuery(document).on('scroll.megaMenu', megaMenuHeight);
switch(megaWidth){
case 'row_container':
widthEle = lEle.closest('.pagelayer-row[pagelayer-id]');
Css['width'] = widthEle.width();
break;
case 'custom':
widthEle = lEle.closest('li');
Css['width'] = megaCustomWidth;
break;
default :
widthEle = wContainer;
Css['width'] = widthEle.width();
}
if(widthEle.length > 0){
var wLeft = widthEle.offset().left;
if( wLeft < megaLeft ){
Css['left'] = (wLeft) - (megaLeft);
}
}
megaHolder.css(Css);
var mRect = megaHolder[0].getBoundingClientRect();
var wRect = wContainer[0].getBoundingClientRect();
// Set mega menu position
if(megaWidth != 'custom' || mRect.right < wRect.right){
megaHolder.removeClass(setClass);
return;
}
var left = parseInt(megaHolder.css('left'));
var moveLeft = mRect.right - wRect.right;
if(mRect.left < moveLeft){
moveLeft = moveLeft - (moveLeft - mRect.left);
}
left = left - moveLeft;
megaHolder.css({'left': left});
megaHolder.removeClass(setClass);
});
}, 500);
// Menu toggle
var toggle_class;
jQuery(menu_bar).unbind('click');
jQuery(menu_bar).click(function(){
jQuery(container).toggleClass('pagelayer-togglt-on');
toggle_class = jQuery(this).data('icon');
toggle_class = ( pagelayer_empty(toggle_class) ? 'fas fa-bars' : toggle_class );
if(jQuery(container).hasClass('pagelayer-togglt-on')){
jQuery(this).removeClass(toggle_class);
jQuery(this).addClass('fas fa-times');
}else{
jQuery(this).removeClass('fas fa-times');
jQuery(this).addClass(toggle_class);
}
});
// If has sub-menu the as icon
var sub_menuEle = jQuery(container).find('.pagelayer-wp_menu-ul li.menu-item-has-children:not(.pagelayer-mega-menu-item), .pagelayer-wp_menu-ul li.pagelayer-mega-menu-item');
var aEle_sub_menu = sub_menuEle.children('a');
var afterIconSpan = aEle_sub_menu.children('.after-icon')
if (aEle_sub_menu.children('.after-icon').length < 1) {
aEle_sub_menu.append('<span class="after-icon fa fa-' + submenu_ind + '"></span>');
}else{
// For gutenberg
afterIconSpan.attr('class', 'after-icon fa fa-' + submenu_ind);
}
// Toggle Sub nav
var after_icon = jQuery(container).find('.pagelayer-wp_menu-ul li.menu-item-has-children .after-icon, .pagelayer-wp_menu-ul li.pagelayer-mega-menu-item .after-icon');
after_icon.unbind('click');
after_icon.click(function(e){
e.preventDefault();
if(window.matchMedia("(max-width: "+pagelayer_settings['tablet_breakpoint']+"px)").matches || layout != 'horizontal'){
jQuery(this).closest('li').toggleClass('pagelayer-active-sub-menu');
}else{
jQuery(this).closest('li').removeClass('pagelayer-active-sub-menu');
}
});
close.unbind('click');
close.click(function(){
jQuery(container).toggleClass('pagelayer-togglt-on');
jQuery(menu_bar).removeClass('fas fa-times');
jQuery(menu_bar).addClass(toggle_class);
});
// To edit the mega menu in live editor
jQuery(document).trigger('pagelayer_primary_menu_setup_end', [jEle]);
}
var count_int ={};
// Show countdown render
function pagelayer_countdown(jEle){
var expiry_date = jEle.find('.pagelayer-countdown-container').attr('pagelayer-expiry-date');
var timetype = jEle.find('.pagelayer-countdown-container').attr('pagelayer-time-type');
var jEle_id = jEle.attr('pagelayer-id');
if(pagelayer_empty(expiry_date) || expiry_date == "{{date}}"){
var expiry_date = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);
}
var now;
if(timetype == "server"){
now = new Date(pagelayer_server_time*1000).getTime();
}else{
now = new Date().getTime();
}
var countDownDate = new Date(expiry_date).getTime();
var distance = countDownDate - now;
clearInterval(count_int[jEle_id]);
count_int[jEle_id] = setInterval(function() {
// Time calculations for days, hours, minutes and seconds
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
jEle.find('.pagelayer-days-count').html(days);
jEle.find('.pagelayer-hours-count').html(hours);
jEle.find('.pagelayer-minutes-count').html(minutes);
jEle.find('.pagelayer-seconds-count').html(seconds);
// If the count down is over, write some text
if(distance < 0) {
clearInterval(count_int[jEle_id]);
jEle.find('.pagelayer-countdown-expired').show();
jEle.find('.pagelayer-countdown-counter').hide();
}
distance = distance - 1000;
}, 1000);
}
function pagelayer_pl_testimonial_slider(jEle){
var ul = jEle.find('.pagelayer-testimonials-holder');
// Build the options
var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-');
pagelayer_owl_init(jEle, ul, options);
}
var pagelayerAnimTimer = {};
function pagelayer_anim_heading(jEle){
var animationDelay = 2500,
//loading bar effect
barAnimationDelay = 3800,
barWaiting = barAnimationDelay - 3000, //3000 is the duration of the transition on the loading bar - set in the scss/css file
//letters effect
lettersDelay = 50,
//type effect
typeLettersDelay = 150,
selectionDuration = 500,
typeAnimationDelay = selectionDuration + 800,
//clip effect
revealDuration = 600,
revealAnimationDelay = 1500;
var id = jEle.attr('pagelayer-id');
if(pagelayer_empty(pagelayerAnimTimer[id])){
pagelayerAnimTimer[id] = {};
}
// Clear the previous animations
for( var time in pagelayerAnimTimer[id] ){
clearTimeout(pagelayerAnimTimer[id][time]);
}
initHeadline();
function initHeadline(){
// Re-set styles
jEle.find('.pagelayer-aheading-holder').find('span').css('opacity', '');
//insert <i> element for each letter of a changing word
singleLetters(jEle.find('.pagelayer-aheading-holder.letters').find('span'));
//initialise headline animation
animateHeadline(jEle.find('.pagelayer-aheading-holder'));
}
function singleLetters($words){
$words.each(function(){
var word = jQuery(this),
letters = word.text().split(''),
selected = word.hasClass('pagelayer-is-visible');
for (i in letters) {
if(word.parents('.pagelayer-aheading-rotate2').length > 0) letters[i] = '<b>' + letters[i] + '</b>';
letters[i] = (selected) ? '<strong class="pagelayer-aheading-in">' + letters[i] + '</strong>': '<strong>' + letters[i] + '</strong>';
}
var newLetters = letters.join('');
word.html(newLetters).css('opacity', 1);
});
}
function animateHeadline($headlines){
var duration = animationDelay;
$headlines.each(function(){
var headline = jQuery(this);
if(headline.hasClass('pagelayer-aheading-loading-bar')){
duration = barAnimationDelay;
setTimeout(function(){ headline.find('.pagelayer-words-wrapper').addClass('pagelayer-is-loading') }, barWaiting);
}else if(headline.hasClass('pagelayer-aheading-clip')){
var spanWrapper = headline.find('.pagelayer-words-wrapper'),
newWidth = spanWrapper.width() + 10;
spanWrapper.css('width', newWidth);
} else if (!headline.hasClass('type') ){
var words = headline.find('.pagelayer-words-wrapper span'),
width = 0;
words.each(function(){
var wordWidth = jQuery(this).width();
if (wordWidth > width) width = wordWidth;
});
headline.find('.pagelayer-words-wrapper').css('width', width);
};
//trigger animation
setTimeout(function(){
hideWord( headline.find('.pagelayer-is-visible').eq(0) );
}, duration);
});
}
function hideWord($word){
var nextWord = takeNext($word);
if($word.parents('.pagelayer-aheading-holder').hasClass('letters')){
var bool = ($word.children('strong').length >= nextWord.children('strong').length) ? true : false;
hideLetter($word.find('strong').eq(0), $word, bool, lettersDelay);
showLetter(nextWord.find('strong').eq(0), nextWord, bool, lettersDelay);
}else if($word.parents('.pagelayer-aheading-holder').hasClass('pagelayer-aheading-clip')){
$word.parents('.pagelayer-words-wrapper').animate({ width : '2px' }, revealDuration, function(){
switchWord($word, nextWord);
showWord(nextWord);
});
}else if($word.parents('.pagelayer-aheading-holder').hasClass('pagelayer-aheading-loading-bar')){
$word.parents('.pagelayer-words-wrapper').removeClass('pagelayer-is-loading');
switchWord($word, nextWord);
clearTimeout(pagelayerAnimTimer[id][0]);
pagelayerAnimTimer[id][0] = setTimeout(function(){
hideWord(nextWord);
}, barAnimationDelay);
clearTimeout(pagelayerAnimTimer[id][1]);
pagelayerAnimTimer[id][1] = setTimeout(function(){
$word.parents('.pagelayer-words-wrapper').addClass('pagelayer-is-loading');
}, barWaiting);
}else{
switchWord($word, nextWord);
clearTimeout(pagelayerAnimTimer[id][2]);
pagelayerAnimTimer[id][2] = setTimeout(function(){
hideWord(nextWord) ;
}, animationDelay);
}
}
function showWord($word, $duration){
if($word.parents('.pagelayer-aheading-holder').hasClass('pagelayer-aheading-clip')){
$word.parents('.pagelayer-words-wrapper').animate({ 'width' : $word.width() + 10 }, revealDuration, function(){
clearTimeout(pagelayerAnimTimer[id][3]);
pagelayerAnimTimer[id][3] = setTimeout(function(){
hideWord($word);
}, revealAnimationDelay);
});
}
}
function hideLetter($letter, $word, $bool, $duration){
$letter.removeClass('pagelayer-aheading-in').addClass('pagelayer-aheading-out');
if(!$letter.is(':last-child')){
clearTimeout(pagelayerAnimTimer[id][4]);
pagelayerAnimTimer[id][4] = setTimeout(function(){
hideLetter($letter.next(), $word, $bool, $duration);
}, $duration);
}else if($bool){
clearTimeout(pagelayerAnimTimer[id][5]);
pagelayerAnimTimer[id][5] = setTimeout(function(){
hideWord(takeNext($word));
}, animationDelay);
}
if($letter.is(':last-child') && pagelayer_query('html').hasClass('pagelayer-no-csstransitions')){
var nextWord = takeNext($word);
switchWord($word, nextWord);
}
}
function showLetter($letter, $word, $bool, $duration){
$letter.addClass('pagelayer-aheading-in').removeClass('pagelayer-aheading-out');
if(!$word.hasClass('pagelayer-is-visible')){
$word.parent().children().removeClass('pagelayer-is-visible');
$word.addClass('pagelayer-is-visible');
}
if(!$letter.is(':last-child')){
clearTimeout(pagelayerAnimTimer[id][6]);
pagelayerAnimTimer[id][6] = setTimeout(function(){
showLetter($letter.next(), $word, $bool, $duration);
}, $duration);
}else{
if(!$bool) {
clearTimeout(pagelayerAnimTimer[id][7]);
pagelayerAnimTimer[id][7] = setTimeout(function(){
hideWord($word);
}, animationDelay)
}
}
}
function takeNext($word){
return (!$word.is(':last-child')) ? $word.next() : $word.parent().children().eq(0);
}
function switchWord($oldWord, $newWord){
$oldWord.removeClass('pagelayer-is-visible').addClass('pagelayer-is-hidden');
if(!$newWord.hasClass('pagelayer-is-visible')){
$newWord.removeClass('pagelayer-is-hidden').addClass('pagelayer-is-visible');
}
}
}
var pagelayerSetInterval = {};
function pagelayer_pl_row_slider(jEle){
var index = 0;
var id = jEle.closest('[pagelayer-id]').attr('pagelayer-id');
var imageEls = jEle.find('.pagelayer-bgimg-slide'); // Get the images to be cycled.
var speed = parseFloat(jEle.attr('data-speed')); // Get the speed of loop.
imageEls.first().addClass('pagelayer-slide-show');
clearInterval(pagelayerSetInterval[id]);
pagelayerSetInterval[id] = setInterval(function (){
// Get the next index. If at end, restart to the beginning.
index = index + 1 < imageEls.length ? index + 1 : 0;
// Show the next
imageEls.eq(index).addClass('pagelayer-slide-show');
// Hide the previous
imageEls.eq(index - 1).removeClass('pagelayer-slide-show');
}, speed);
}
function pagelayer_pl_social_profile(jEle){
var icon_holder = jEle.find('.pagelayer-icon-holder');
// Assigning animation classes to icon holder
if(!pagelayer_empty(jEle.attr('pagelayer-animation'))){
icon_holder.addClass('pagelayer-animation-'+jEle.attr('pagelayer-animation'));
}
}
// Post infinite scroll handler
function pagelayer_infinite_posts(jEle) {
var loader = jEle.find('.pagelayer-btn-load');
var autoScroll = jEle.find('.pagelayer-infinite-scroll-auto').length < 1;
loader.on('click', function(){
var bEle = jQuery(this);
var loaded = jEle.attr('pagelayer-post-data-loading');
// Is loading?
if(!pagelayer_empty(loaded)){
return;
}
jEle.attr('pagelayer-post-data-loading', 1);
var current = bEle.attr('data-current') || 1;
var nextPage = parseInt(current) + 1;
var load_btn = jEle.find('.pagelayer_load_button');
bEle.hide();
load_btn.find('.pagelayer-loader-holder').show();
if(jEle.find('.pagelayer-post-max').attr('data-max') <= 1) {
load_btn.text(load_btn.data('text'));
return;
}
// Get Data from local variable
var data = window['pagelayer_local_scripts']['pagelayer_post_' + jEle.attr("pagelayer-id")];
// Add next page number to load
if(!pagelayer_empty(data.atts)){
data.atts['paged'] = nextPage;
}
// Get the Posts
jQuery.ajax({
url: pagelayer_ajaxurl + 'action=pagelayer_infinite_posts',
type: 'POST',
data: {
pagelayer_nonce: pagelayer_global_nonce,
data: data,
},
success: function(result){
var json = jQuery.parseJSON(result);
var content = jQuery(json['posts']).find('.pagelayer-posts-container').html();
jEle.find('.pagelayer-posts-container').append(content);
load_btn.find('.pagelayer-loader-holder').hide();
if (jEle.find('.pagelayer-post-max').attr('data-max') == nextPage) {
load_btn.text(load_btn.data('text'));
}else if(autoScroll){
bEle.show();
}
bEle.attr('data-current', nextPage);
},
complete: function(){
jEle.removeAttr('pagelayer-post-data-loading');
}
});
});
// If already scrolled
if(pagelayer_isVisible(loader)){
loader.click();
}
// Auto scroll?
if(autoScroll){
return;
}
var win = jQuery(pagelayerGetCurrentWindow());
win.on('scroll.archive_posts', function(){
var current = parseInt(loader.attr('data-current')) || 1;
var total = loader.attr('data-max');
if(win.scrollTop() + win.height() < jEle.height() || current >= total) {
return;
}
loader.click();
});
}
////////////////
// Freemium End
////////////////
/*
* Nivo Lightbox v1.3.1
* http://dev7studios.com/nivo-lightbox
*
* Copyright 2013, Dev7studios
* Free to use and abuse under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
!function(t,i,o,e){function n(i,o){this.el=i,this.$el=t(this.el),this.options=t.extend({},l,o),this._defaults=l,this._name=a,this.init()}var a="nivoLightbox",l={effect:"fade",theme:"default",keyboardNav:!0,clickImgToClose:!1,clickOverlayToClose:!0,onInit:function(){},beforeShowLightbox:function(){},afterShowLightbox:function(t){},beforeHideLightbox:function(){},afterHideLightbox:function(){},beforePrev:function(t){},onPrev:function(t){},beforeNext:function(t){},onNext:function(t){},errorMessage:"The requested content cannot be loaded. Please try again later."};n.prototype={init:function(){var i=this;t("html").hasClass("nivo-lightbox-notouch")||t("html").addClass("nivo-lightbox-notouch"),"ontouchstart"in o&&t("html").removeClass("nivo-lightbox-notouch"),this.$el.on("click",function(t){i.showLightbox(t)}),this.options.keyboardNav&&t("body").off("keyup").on("keyup",function(o){var e=o.keyCode?o.keyCode:o.which;27==e&&i.destructLightbox(),37==e&&t(".nivo-lightbox-prev").trigger("click"),39==e&&t(".nivo-lightbox-next").trigger("click")}),this.options.onInit.call(this)},showLightbox:function(i){var o=this,e=this.$el,n=this.checkContent(e);if(n){i.preventDefault(),this.options.beforeShowLightbox.call(this);var a=this.constructLightbox();if(a){var l=a.find(".nivo-lightbox-content");if(l){if(t("body").addClass("nivo-lightbox-body-effect-"+this.options.effect),this.processContent(l,e),this.$el.attr("data-lightbox-gallery")){var h=t('[data-lightbox-gallery="'+this.$el.attr("data-lightbox-gallery")+'"]');t(".nivo-lightbox-nav").show(),t(".nivo-lightbox-prev").off("click").on("click",function(i){i.preventDefault();var n=h.index(e);e=h.eq(n-1),t(e).length||(e=h.last()),t.when(o.options.beforePrev.call(this,[e])).done(function(){o.processContent(l,e),o.options.onPrev.call(this,[e])})}),t(".nivo-lightbox-next").off("click").on("click",function(i){i.preventDefault();var n=h.index(e);e=h.eq(n+1),t(e).length||(e=h.first()),t.when(o.options.beforeNext.call(this,[e])).done(function(){o.processContent(l,e),o.options.onNext.call(this,[e])})})}setTimeout(function(){a.addClass("nivo-lightbox-open"),o.options.afterShowLightbox.call(this,[a])},1)}}}},checkContent:function(t){var i=t.attr("href"),o=i.match(/(youtube|youtube-nocookie|youtu|vimeo)\.(com|be)\/(video\/(.)+|watch\?v=([\w-]+)|([\w-]+))/);return null!==i.match(/\.(jpeg|jpg|gif|png)$/i)||(!!o||("ajax"==t.attr("data-lightbox-type")||("#"==i.substring(0,1)&&"inline"==t.attr("data-lightbox-type")||"iframe"==t.attr("data-lightbox-type"))))},processContent:function(o,e){var n=this,a=e.attr("href"),l=a.match(/(youtube|youtube-nocookie|youtu|vimeo)\.(com|be)\/(video\/(.)+|watch\?v=([\w-]+)|([\w-]+))/);if(o.html("").addClass("nivo-lightbox-loading"),this.isHidpi()&&e.attr("data-lightbox-hidpi")&&(a=e.attr("data-lightbox-hidpi")),null!==a.match(/\.(jpeg|jpg|gif|png)$/i)){var h=t("<img>",{src:a,class:"nivo-lightbox-image-display"});h.one("load",function(){var e=t('<div class="nivo-lightbox-image" />');e.append(h),o.html(e).removeClass("nivo-lightbox-loading"),e.css({"line-height":t(".nivo-lightbox-content").height()+"px",height:t(".nivo-lightbox-content").height()+"px"}),t(i).resize(function(){e.css({"line-height":t(".nivo-lightbox-content").height()+"px",height:t(".nivo-lightbox-content").height()+"px"})})}).each(function(){this.complete&&t(this).load()}),h.error(function(){var i=t('<div class="nivo-lightbox-error"><p>'+n.options.errorMessage+"</p></div>");o.html(i).removeClass("nivo-lightbox-loading")})}else if(l){var s="",r="nivo-lightbox-video";if("youtube"==l[1]&&(s="//www.youtube.com/embed/"+l[5],r="nivo-lightbox-youtube"),"youtube-nocookie"==l[1]&&(s=a,r="nivo-lightbox-youtube"),"youtu"==l[1]&&(s="//www.youtube.com/embed/"+l[3],r="nivo-lightbox-youtube"),"vimeo"==l[1]&&(s="//player.vimeo.com/video/"+(l[3].replace('video/','')),r="nivo-lightbox-vimeo"),s){var c=t("<iframe>",{src:s,class:r,frameborder:0,vspace:0,hspace:0,scrolling:"auto"});o.html(c),c.load(function(){o.removeClass("nivo-lightbox-loading")})}}else if("ajax"==e.attr("data-lightbox-type"))t.ajax({url:a,cache:!1,success:function(e){var n=t('<div class="nivo-lightbox-ajax" />');n.append(e),o.html(n).removeClass("nivo-lightbox-loading"),n.outerHeight()<o.height()&&n.css({position:"relative",top:"50%","margin-top":-(n.outerHeight()/2)+"px"}),t(i).resize(function(){n.outerHeight()<o.height()&&n.css({position:"relative",top:"50%","margin-top":-(n.outerHeight()/2)+"px"})})},error:function(){var i=t('<div class="nivo-lightbox-error"><p>'+n.options.errorMessage+"</p></div>");o.html(i).removeClass("nivo-lightbox-loading")}});else if("#"==a.substring(0,1)&&"inline"==e.attr("data-lightbox-type"))if(t(a).length){var g=t('<div class="nivo-lightbox-inline" />');g.append(t(a).clone().show()),o.html(g).removeClass("nivo-lightbox-loading"),g.outerHeight()<o.height()&&g.css({position:"relative",top:"50%","margin-top":-(g.outerHeight()/2)+"px"}),t(i).resize(function(){g.outerHeight()<o.height()&&g.css({position:"relative",top:"50%","margin-top":-(g.outerHeight()/2)+"px"})})}else{var v=t('<div class="nivo-lightbox-error"><p>'+n.options.errorMessage+"</p></div>");o.html(v).removeClass("nivo-lightbox-loading")}else{if("iframe"!=e.attr("data-lightbox-type"))return!1;var b=t("<iframe>",{src:a,class:"nivo-lightbox-item",frameborder:0,vspace:0,hspace:0,scrolling:"auto"});o.html(b),b.load(function(){o.removeClass("nivo-lightbox-loading")})}if(e.attr("title")){var x=t("<span>",{class:"nivo-lightbox-title"});x.text(e.attr("title")),t(".nivo-lightbox-title-wrap").html(x)}else t(".nivo-lightbox-title-wrap").html("")},constructLightbox:function(){if(t(".nivo-lightbox-overlay").length)return t(".nivo-lightbox-overlay");var i=t("<div>",{class:"nivo-lightbox-overlay nivo-lightbox-theme-"+this.options.theme+" nivo-lightbox-effect-"+this.options.effect}),o=t("<div>",{class:"nivo-lightbox-wrap"}),e=t("<div>",{class:"nivo-lightbox-content"}),n=t('<a href="#" class="nivo-lightbox-nav nivo-lightbox-prev">Previous</a><a href="#" class="nivo-lightbox-nav nivo-lightbox-next">Next</a>'),a=t('<a href="#" class="nivo-lightbox-close" title="Close">Close</a>'),l=t("<div>",{class:"nivo-lightbox-title-wrap"}),h=/*@cc_on!@*/0;h&&i.addClass("nivo-lightbox-ie"),o.append(e),o.append(l),i.append(o),i.append(n),i.append(a),t("body").append(i);var s=this;return s.options.clickOverlayToClose&&i.on("click",function(i){(i.target===this||t(i.target).hasClass("nivo-lightbox-content")||t(i.target).hasClass("nivo-lightbox-image"))&&s.destructLightbox()}),s.options.clickImgToClose&&i.on("click",function(i){(i.target===this||t(i.target).hasClass("nivo-lightbox-image-display"))&&s.destructLightbox()}),a.on("click",function(t){t.preventDefault(),s.destructLightbox()}),i},destructLightbox:function(){var i=this;this.options.beforeHideLightbox.call(this),t(".nivo-lightbox-overlay").removeClass("nivo-lightbox-open"),t(".nivo-lightbox-nav").hide(),t("body").removeClass("nivo-lightbox-body-effect-"+i.options.effect);var o=/*@cc_on!@*/0;o&&(t(".nivo-lightbox-overlay iframe").attr("src"," "),t(".nivo-lightbox-overlay iframe").remove()),t(".nivo-lightbox-prev").off("click"),t(".nivo-lightbox-next").off("click"),t(".nivo-lightbox-content").empty(),this.options.afterHideLightbox.call(this)},isHidpi:function(){var t="(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)";return i.devicePixelRatio>1||!(!i.matchMedia||!i.matchMedia(t).matches)}},t.fn[a]=function(i){return this.each(function(){t.data(this,a)||t.data(this,a,new n(this,i))})}}(jQuery,window,document);
/*! WOW wow.js - v1.3.0 - 2016-10-04
* https://wowjs.uk
* Copyright (c) 2016 Thomas Grainger; Licensed MIT */!function(a,b){if("function"==typeof define&&define.amd)define(["module","exports"],b);else if("undefined"!=typeof exports)b(module,exports);else{var c={exports:{}};b(c,c.exports),a.WOW=c.exports}}(this,function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function d(a,b){return b.indexOf(a)>=0}function e(a,b){for(var c in b)if(null==a[c]){var d=b[c];a[c]=d}return a}function f(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)}function g(a){var b=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],c=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],d=arguments.length<=3||void 0===arguments[3]?null:arguments[3],e=void 0;return null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e}function h(a,b){null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)&&a["on"+b]()}function i(a,b,c){null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c}function j(a,b,c){null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]}function k(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight}Object.defineProperty(b,"__esModule",{value:!0});var l,m,n=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),o=window.WeakMap||window.MozWeakMap||function(){function a(){c(this,a),this.keys=[],this.values=[]}return n(a,[{key:"get",value:function(a){for(var b=0;b<this.keys.length;b++){var c=this.keys[b];if(c===a)return this.values[b]}}},{key:"set",value:function(a,b){for(var c=0;c<this.keys.length;c++){var d=this.keys[c];if(d===a)return this.values[c]=b,this}return this.keys.push(a),this.values.push(b),this}}]),a}(),p=window.MutationObserver||window.WebkitMutationObserver||window.MozMutationObserver||(m=l=function(){function a(){c(this,a),"undefined"!=typeof console&&null!==console&&(console.warn("MutationObserver is not supported by your browser."),console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content."))}return n(a,[{key:"observe",value:function(){}}]),a}(),l.notSupported=!0,m),q=window.getComputedStyle||function(a){var b=/(\-([a-z]){1})/g;return{getPropertyValue:function(c){"float"===c&&(c="styleFloat"),b.test(c)&&c.replace(b,function(a,b){return b.toUpperCase()});var d=a.currentStyle;return(null!=d?d[c]:void 0)||null}}},r=function(){function a(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];c(this,a),this.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null,resetAnimation:!0},this.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),this.vendors=["moz","webkit"],this.start=this.start.bind(this),this.resetAnimation=this.resetAnimation.bind(this),this.scrollHandler=this.scrollHandler.bind(this),this.scrollCallback=this.scrollCallback.bind(this),this.scrolled=!0,this.config=e(b,this.defaults),null!=b.scrollContainer&&(this.config.scrollContainer=document.querySelector(b.scrollContainer)),this.animationNameCache=new o,this.wowEvent=g(this.config.boxClass)}return n(a,[{key:"init",value:function(){this.element=window.document.documentElement,d(document.readyState,["interactive","complete"])?this.start():i(document,"DOMContentLoaded",this.start),this.finished=[]}},{key:"start",value:function(){var a=this;if(this.stopped=!1,this.boxes=[].slice.call(this.element.querySelectorAll("."+this.config.boxClass)),this.all=this.boxes.slice(0),this.boxes.length)if(this.disabled())this.resetStyle();else for(var b=0;b<this.boxes.length;b++){var c=this.boxes[b];this.applyStyle(c,!0)}if(this.disabled()||(i(this.config.scrollContainer||window,"scroll",this.scrollHandler),i(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live){var d=new p(function(b){for(var c=0;c<b.length;c++)for(var d=b[c],e=0;e<d.addedNodes.length;e++){var f=d.addedNodes[e];a.doSync(f)}});d.observe(document.body,{childList:!0,subtree:!0})}}},{key:"stop",value:function(){this.stopped=!0,j(this.config.scrollContainer||window,"scroll",this.scrollHandler),j(window,"resize",this.scrollHandler),null!=this.interval&&clearInterval(this.interval)}},{key:"sync",value:function(){p.notSupported&&this.doSync(this.element)}},{key:"doSync",value:function(a){if("undefined"!=typeof a&&null!==a||(a=this.element),1===a.nodeType){a=a.parentNode||a;for(var b=a.querySelectorAll("."+this.config.boxClass),c=0;c<b.length;c++){var e=b[c];d(e,this.all)||(this.boxes.push(e),this.all.push(e),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(e,!0),this.scrolled=!0)}}}},{key:"show",value:function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),h(a,this.wowEvent),this.config.resetAnimation&&(i(a,"animationend",this.resetAnimation),i(a,"oanimationend",this.resetAnimation),i(a,"webkitAnimationEnd",this.resetAnimation),i(a,"MSAnimationEnd",this.resetAnimation)),a}},{key:"applyStyle",value:function(a,b){var c=this,d=a.getAttribute("data-wow-duration"),e=a.getAttribute("data-wow-delay"),f=a.getAttribute("data-wow-iteration");return this.animate(function(){return c.customStyle(a,b,d,e,f)})}},{key:"resetStyle",value:function(){for(var a=0;a<this.boxes.length;a++){var b=this.boxes[a];b.style.visibility="visible"}}},{key:"resetAnimation",value:function(a){if(a.type.toLowerCase().indexOf("animationend")>=0){var b=a.target||a.srcElement;b.className=b.className.replace(this.config.animateClass,"").trim()}}},{key:"customStyle",value:function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a}},{key:"vendorSet",value:function(a,b){for(var c in b)if(b.hasOwnProperty(c)){var d=b[c];a[""+c]=d;for(var e=0;e<this.vendors.length;e++){var f=this.vendors[e];a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=d}}}},{key:"vendorCSS",value:function(a,b){for(var c=q(a),d=c.getPropertyCSSValue(b),e=0;e<this.vendors.length;e++){var f=this.vendors[e];d=d||c.getPropertyCSSValue("-"+f+"-"+b)}return d}},{key:"animationName",value:function(a){var b=void 0;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=q(a).getPropertyValue("animation-name")}return"none"===b?"":b}},{key:"cacheAnimationName",value:function(a){return this.animationNameCache.set(a,this.animationName(a))}},{key:"cachedAnimationName",value:function(a){return this.animationNameCache.get(a)}},{key:"scrollHandler",value:function(){this.scrolled=!0}},{key:"scrollCallback",value:function(){if(this.scrolled){this.scrolled=!1;for(var a=[],b=0;b<this.boxes.length;b++){var c=this.boxes[b];if(c){if(this.isVisible(c)){this.show(c);continue}a.push(c)}}this.boxes=a,this.boxes.length||this.config.live||this.stop()}}},{key:"offsetTop",value:function(a){for(;void 0===a.offsetTop;)a=a.parentNode;for(var b=a.offsetTop;a.offsetParent;)a=a.offsetParent,b+=a.offsetTop;return b}},{key:"isVisible",value:function(a){var b=a.getAttribute("data-wow-offset")||this.config.offset,c=this.config.scrollContainer&&this.config.scrollContainer.scrollTop||window.pageYOffset,d=c+Math.min(this.element.clientHeight,k())-b,e=this.offsetTop(a),f=e+a.clientHeight;return d>=e&&f>=c}},{key:"disabled",value:function(){return!this.config.mobile&&f(navigator.userAgent)}}]),a}();b["default"]=r,a.exports=b["default"]});
/*
* jQuery Numerator Plugin 0.2.1
* https://github.com/garethdn/jquery-numerator
*
* Copyright 2015, Gareth Nolan
* http://ie.linkedin.com/in/garethnolan/
* Based on jQuery Boilerplate by Zeno Rocha with the help of Addy Osmani
* http://jqueryboilerplate.com
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/
;(function (factory) {
'use strict';
if (typeof define === 'function' && define.amd) {
// AMD is used - Register as an anonymous module.
define(['jquery'], factory);
} else if (typeof exports === 'object') {
factory(require('jquery'));
} else {
// Neither AMD nor CommonJS used. Use global variables.
if (typeof jQuery === 'undefined') {
throw 'jquery-numerator requires jQuery to be loaded first';
}
factory(jQuery);
}
}(function ($) {
var pluginName = "numerator",
defaults = {
easing: 'swing',
duration: 500,
delimiter: undefined,
rounding: 0,
toValue: undefined,
fromValue: undefined,
queue: false,
onStart: function(){},
onStep: function(){},
onProgress: function(){},
onComplete: function(){}
};
function Plugin ( element, options ) {
this.element = element;
this.settings = $.extend( {}, defaults, options );
this._defaults = defaults;
this._name = pluginName;
this.init();
}
Plugin.prototype = {
init: function () {
this.parseElement();
this.setValue();
},
parseElement: function () {
var elText = $.trim($(this.element).text());
this.settings.fromValue = this.settings.fromValue || this.format(elText);
},
setValue: function() {
var self = this;
$({value: self.settings.fromValue}).animate({value: self.settings.toValue}, {
duration: parseInt(self.settings.duration, 10),
easing: self.settings.easing,
start: self.settings.onStart,
step: function(now, fx) {
$(self.element).text(self.format(now));
// accepts two params - (now, fx)
self.settings.onStep(now, fx);
},
// accepts three params - (animation object, progress ratio, time remaining(ms))
progress: self.settings.onProgress,
complete: self.settings.onComplete
});
},
format: function(value){
var self = this;
if ( parseInt(this.settings.rounding ) < 1) {
value = parseInt(value, 10);
} else {
value = parseFloat(value).toFixed( parseInt(this.settings.rounding) );
}
if (self.settings.delimiter) {
return this.delimit(value)
} else {
return value;
}
},
// TODO: Add comments to this function
delimit: function(value){
var self = this;
value = value.toString();
if (self.settings.rounding && parseInt(self.settings.rounding, 10) > 0) {
var decimals = value.substring( (value.length - (self.settings.rounding + 1)), value.length ),
wholeValue = value.substring( 0, (value.length - (self.settings.rounding + 1)));
return self.addDelimiter(wholeValue) + decimals;
} else {
return self.addDelimiter(value);
}
},
addDelimiter: function(value){
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.settings.delimiter);
}
};
$.fn[ pluginName ] = function ( options ) {
return this.each(function() {
if ( $.data( this, "plugin_" + pluginName ) ) {
$.data(this, 'plugin_' + pluginName, null);
}
$.data( this, "plugin_" + pluginName, new Plugin( this, options ) );
});
};
}));
/**
* simple-parallax-js - simpleParallax is a simple and lightweight JS plugin that gives your website parallax animations on the images
* @version v4.2.1
* @date: 09-03-2019 17:4:39
* @link https://simpleparallax.com/
*/
"use strict";var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},_createClass=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}(),_typeof="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};function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}!function(e,t){"function"==typeof define&&define.amd?define([],function(){return t(e)}):"object"===("undefined"==typeof exports?"undefined":_typeof(exports))?module.exports=t(e):e.pagelayerParallax=t(e)}("undefined"!=typeof global?global:"undefined"!=typeof window?window:void 0,function(o){var i=function(){for(var e,t="transform webkitTransform mozTransform oTransform msTransform".split(" "),n=0;void 0===e;)e=null!=document.createElement("div").style[t[n]]?t[n]:void 0,n++;return e}();!function(){for(var a=0,e=["ms","moz","webkit","o"],t=0;t<e.length&&!o.requestAnimationFrame;++t)o.requestAnimationFrame=o[e[t]+"RequestAnimationFrame"],o.cancelAnimationFrame=o[e[t]+"CancelAnimationFrame"]||o[e[t]+"CancelRequestAnimationFrame"];o.requestAnimationFrame||(o.requestAnimationFrame=function(e,t){var n=(new Date).getTime(),i=Math.max(0,16-(n-a)),s=o.setTimeout(function(){e(n+i)},i);return a=n+i,s}),o.cancelAnimationFrame||(o.cancelAnimationFrame=function(e){clearTimeout(e)})}(),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(e){var t=this;if(!document.documentElement.contains(t))return null;do{if(t.matches(e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null});var s=[],t=-1,a=void 0,r=void 0,l=void 0,h=void 0,m=!1,u=function(){function n(e,t){_classCallCheck(this,n),this.element=e,this.elementContainer=e,this.defaults={delay:.6,orientation:"up",scale:1.3,overflow:!1,transition:"cubic-bezier(0,0,0,1)",breakpoint:!1},this.settings=_extends(this.defaults,t),this.settings.breakpoint&&document.documentElement.clientWidth<=this.settings.breakpoint||(this.init=this.init.bind(this),this.animationFrame=this.animationFrame.bind(this),this.handleResize=this.handleResize.bind(this),this.isImageLoaded(this.element)?this.init():this.element.addEventListener("load",this.init),s.push(this),m||(m=!0,this.getViewportOffsetHeight(),this.animationFrame()))}return _createClass(n,[{key:"init",value:function(){this.isInit||(!1===this.settings.overflow&&this.wrapElement(),this.setStyle(),this.getElementOffset(),this.getTranslateValue(),this.animate(),o.addEventListener("resize",this.handleResize),this.isInit=!0)}},{key:"isImageLoaded",value:function(){return!!this.element.complete&&(void 0===this.element.naturalWidth||0!==this.element.naturalWidth)}},{key:"isVisible",value:function(){return this.elementBottomX>a&&this.elementTopX<r}},{key:"wrapElement",value:function(){var e=this.element.closest("picture")||this.element,t=document.createElement("div");t.classList.add("pagelayerParallax"),t.style.overflow="hidden",e.parentNode.insertBefore(t,e),t.appendChild(e),this.elementContainer=t}},{key:"unWrapElement",value:function(){var e=this.elementContainer.parentNode;if(e){for(;this.elementContainer.firstChild;)e.insertBefore(this.elementContainer.firstChild,this.elementContainer);e.removeChild(this.elementContainer)}}},{key:"setStyle",value:function(){!1===this.settings.overflow&&(this.element.style[i]="scale("+this.settings.scale+")"),0<this.settings.delay&&(this.element.style.transition="transform "+this.settings.delay+"s "+this.settings.transition),this.element.style.willChange="transform"}},{key:"unSetStyle",value:function(){this.element.style.willChange="",this.element.style[i]="",this.element.style.transition=""}},{key:"getElementOffset",value:function(){var e=this.elementContainer.getBoundingClientRect();this.elementHeight=e.height,this.elementTopX=e.top+o.pageYOffset,this.elementBottomX=this.elementHeight+this.elementTopX}},{key:"getViewportOffsetTop",value:function(){a=o.pageYOffset}},{key:"getViewportOffsetHeight",value:function(){l=document.documentElement.clientHeight}},{key:"getViewportOffsetBottom",value:function(){r=a+l}},{key:"handleResize",value:function(){this.getViewportOffsetHeight(),this.getElementOffset(),this.getRangeMax()}},{key:"getRangeMax",value:function(){var e=this.element.clientHeight;this.rangeMax=e*this.settings.scale-e,"down"!==this.settings.orientation&&"right"!==this.settings.orientation||(this.rangeMax*=-1)}},{key:"getTranslateValue",value:function(){var e=((r-this.elementTopX)/((l+this.elementHeight)/100)).toFixed(1);return e=Math.min(100,Math.max(0,e)),this.oldPercentage!==e&&(this.rangeMax||this.getRangeMax(),this.translateValue=(e/100*this.rangeMax-this.rangeMax/2).toFixed(0),this.oldTranslateValue!==this.translateValue&&(this.oldPercentage=e,this.oldTranslateValue=this.translateValue,!0))}},{key:"animate",value:function(){var e=0,t=0,n=void 0;"left"===this.settings.orientation||"right"===this.settings.orientation?t=this.translateValue+"px":e=this.translateValue+"px",n=!1===this.settings.overflow?"translate3d("+t+", "+e+", 0) scale("+this.settings.scale+")":"translate3d("+t+", "+e+", 0)",this.element.style[i]=n}},{key:"proceedElement",value:function(e){e.isVisible()&&e.getTranslateValue()&&e.animate()}},{key:"animationFrame",value:function(){if(this.getViewportOffsetTop(),t!==a){this.getViewportOffsetBottom();for(var e=0;e<s.length;e++)this.proceedElement(s[e]);h=o.requestAnimationFrame(this.animationFrame),t=a}else h=o.requestAnimationFrame(this.animationFrame)}},{key:"destroy",value:function(){this.isDestroyed||(this.unSetStyle(),!1===this.settings.overflow&&this.unWrapElement(),s.splice(s.indexOf(this),1),s.length||(m=!1,o.cancelAnimationFrame(h)),o.removeEventListener("resize",this.handleResize))}},{key:"isDestroyed",get:function(){return-1===s.indexOf(this)}}]),n}();return function(e,t){var n=[];if(e.length)for(var i=0;i<e.length;i++)n.push(new u(e[i],t));else n.push(new u(e,t));return n}});
/**
* Owl Carousel v2.3.4
* Copyright 2013-2018 David Deutsch
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
*/
!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,checkVisibility:!0,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",slideTransition:"",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"pagelayer-owl-refresh",loadedClass:"pagelayer-owl-loaded",loadingClass:"pagelayer-owl-loading",rtlClass:"pagelayer-owl-rtl",responsiveClass:"pagelayer-owl-responsive",dragClass:"pagelayer-owl-drag",itemClass:"pagelayer-owl-item",stageClass:"pagelayer-owl-stage",stageOuterClass:"pagelayer-owl-stage-outer",grabClass:"pagelayer-owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g>0;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i,g-=1;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c<b;)d=f[c-1]||0,e=this._widths[this.relative(c)]+this.settings.margin,f.push(d+e*a);this._coordinates=f}},{filter:["width","items","settings"],run:function(){var a=this.settings.stagePadding,b=this._coordinates,c={width:Math.ceil(Math.abs(b[b.length-1]))+2*a,"padding-left":a||"","padding-right":a||""};this.$stage.css(c)}},{filter:["width","items","settings"],run:function(a){var b=this._coordinates.length,c=!this.settings.autoWidth,d=this.$stage.children();if(c&&a.items.merge)for(;b--;)a.css.width=this._widths[this.relative(b)],d.eq(b).css(a.css);else c&&(a.css.width=a.items.width,d.css(a.css))}},{filter:["items"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(a){a.current=a.current?this.$stage.children().index(a.current):0,a.current=Math.max(this.minimum(),Math.min(this.maximum(),a.current)),this.reset(a.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;c<d;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.$stage.children(".center").removeClass("center"),this.settings.center&&this.$stage.children().eq(this.current()).addClass("center")}}],e.prototype.initializeStage=function(){this.$stage=this.$element.find("."+this.settings.stageClass),this.$stage.length||(this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+">",{class:this.settings.stageClass}).wrap(a("<div/>",{class:this.settings.stageOuterClass})),this.$element.append(this.$stage.parent()))},e.prototype.initializeItems=function(){var b=this.$element.find(".pagelayer-owl-item");if(b.length)return this._items=b.get().map(function(b){return a(b)}),this._mergers=this._items.map(function(){return 1}),void this.refresh();this.replace(this.$element.children().not(this.$stage.parent())),this.isVisible()?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)},e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var a,b,c;a=this.$element.find("img"),b=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,c=this.$element.children(b).width(),a.length&&c<=0&&this.preloadAutoWidthImages(a)}this.initializeStage(),this.initializeItems(),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.isVisible=function(){return!this.settings.checkVisibility||this.$element.is(":visible")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b<c;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.isVisible()&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)<Math.abs(d.y)&&this.is("valid")||(b.preventDefault(),this.enter("dragging"),this.trigger("drag"))},this)))},e.prototype.onDragMove=function(a){var b=null,c=null,d=null,e=this.difference(this._drag.pointer,this.pointer(a)),f=this.difference(this._drag.stage.start,e);this.is("dragging")&&(a.preventDefault(),this.settings.loop?(b=this.coordinates(this.minimum()),c=this.coordinates(this.maximum()+1)-b,f.x=((f.x-b)%c+c)%c+b):(b=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),c=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),d=this.settings.pullDrag?-1*e.x/5:0,f.x=Math.max(Math.min(f.x,b+d),c+d)),this._drag.stage.current=f,this.animate(f.x))},e.prototype.onDragEnd=function(b){var d=this.difference(this._drag.pointer,this.pointer(b)),e=this._drag.stage.current,f=d.x>0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var e=-1,f=30,g=this.width(),h=this.coordinates();return this.settings.freeDrag||a.each(h,a.proxy(function(a,i){return"left"===c&&b>i-f&&b<i+f?e=a:"right"===c&&b>i-g-f&&b<i-g+f?e=a+1:this.op(b,"<",i)&&this.op(b,">",h[a+1]!==d?h[a+1]:i-g)&&(e="left"===c?a+1:a),-1===e},this)),this.settings.loop||(this.op(b,">",h[this.minimum()])?e=b=this.minimum():this.op(b,"<",h[this.maximum()])&&(e=b=this.maximum())),e},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"+(this.settings.slideTransition?" "+this.settings.slideTransition:"")}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){(a=this.normalize(a))!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){if(b=this._items.length)for(c=this._items[--b].width(),d=this.$element.width();b--&&!((c+=this._items[b].width()+this.settings.margin)>d););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2==0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=-1*f*g),a=c+e,(d=((a-h)%g+g)%g+h)!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.isVisible()&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){(a=this.normalize(a,!0))!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),!1!==this.settings.responsive&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.remove(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a<c;case">":return d?a<c:a>c;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&-1!==a.namespace.indexOf("owl")?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.pagelayerOwlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.pagelayerOwlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.isVisible(),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.isVisible()!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("pagelayer-owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type)){var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&-1*e||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);for(c.lazyLoadEager>0&&(e+=c.lazyLoadEager,c.loop&&(g-=c.lazyLoadEager,e++));f++<e;)this.load(h/2+this._core.relative(g)),h&&a.each(this._core.clones(this._core.relative(g)),i),g++}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={lazyLoad:!1,lazyLoadEager:0},e.prototype.load=function(c){var d=this._core.$stage.children().eq(c),e=d&&d.find(".pagelayer-owl-lazy");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src")||f.attr("data-srcset");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):f.is("source")?f.one("load.owl.lazy",a.proxy(function(){this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("srcset",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(c){this._core=c,this._previousHeight=null,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"===a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._intervalId=null;var d=this;a(b).on("load",function(){d._core.settings.autoHeight&&d.update()}),a(b).resize(function(){d._core.settings.autoHeight&&(null!=d._intervalId&&clearTimeout(d._intervalId),d._intervalId=setTimeout(function(){d.update()},250))})};e.Defaults={autoHeight:!1,autoHeightClass:"pagelayer-owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.settings.lazyLoad,e=this._core.$stage.children().toArray().slice(b,c),f=[],g=0;a.each(e,function(b,c){f.push(a(c).height())}),g=Math.max.apply(null,f),g<=1&&d&&this._previousHeight&&(g=this._previousHeight),this._previousHeight=g,this._core.$stage.parent().height(g).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .pagelayer-owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".pagelayer-owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".pagelayer-owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?"width:"+c.width+"px;height:"+c.height+"px;":"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(c){e='<div class="pagelayer-owl-video-play-icon"></div>',d=k.lazyLoad?a("<div/>",{class:"pagelayer-owl-video-tn "+j,srcType:c}):a("<div/>",{class:"pagelayer-owl-video-tn",style:"opacity:1;background-image:url("+c+")"}),b.after(d),b.after(e)};if(b.wrap(a("<div/>",{class:"pagelayer-owl-video-wrapper",style:g})),this._core.settings.lazyLoad&&(i="data-src",j="pagelayer-owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".pagelayer-owl-video-frame").remove(),this._playing.removeClass("pagelayer-owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),c=a('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>'),c.attr("height",h),c.attr("width",g),"youtube"===f.type?c.attr("src","//www.youtube.com/embed/"+f.id+"?autoplay=1&rel=0&v="+f.id):"vimeo"===f.type?c.attr("src","//player.vimeo.com/video/"+f.id+"?autoplay=1"):"vzaar"===f.type&&c.attr("src","//view.vzaar.com/"+f.id+"/player?autoplay=true"),a(c).wrap('<div class="pagelayer-owl-video-frame" />').insertAfter(e.find(".pagelayer-owl-video")),this._playing=e.addClass("pagelayer-owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("pagelayer-owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,
animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated pagelayer-owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated pagelayer-owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated pagelayer-owl-animated-out pagelayer-owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._call=null,this._time=0,this._timeout=0,this._paused=!0,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._paused&&(this._time=0)},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype._next=function(d){this._call=b.setTimeout(a.proxy(this._next,this,d),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read()),this._core.is("interacting")||c.hidden||this._core.next(d||this._core.settings.autoplaySpeed)},e.prototype.read=function(){return(new Date).getTime()-this._time},e.prototype.play=function(c,d){var e;this._core.is("rotating")||this._core.enter("rotating"),c=c||this._core.settings.autoplayTimeout,e=Math.min(this._time%(this._timeout||c),c),this._paused?(this._time=this.read(),this._paused=!1):b.clearTimeout(this._call),this._time+=this.read()%c-e,this._timeout=c,this._call=b.setTimeout(a.proxy(this._next,this,d),c-e)},e.prototype.stop=function(){this._core.is("rotating")&&(this._time=0,this._paused=!0,b.clearTimeout(this._call),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&!this._paused&&(this._time=this.read(),this._paused=!0,b.clearTimeout(this._call))},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('<div class="'+this._core.settings.dotClass+'">'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:['<span aria-label="Previous">‹</span>','<span aria-label="Next">›</span>'],navSpeed:!1,navElement:'button type="button" role="presentation"',navContainer:!1,navContainerClass:"pagelayer-owl-nav",navClass:["pagelayer-owl-prev","pagelayer-owl-next"],slideBy:1,dotClass:"pagelayer-owl-dot",dotsClass:"pagelayer-owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("<div>").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a('<button role="button">').addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","button",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d,e;e=this._core.settings;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)"$relative"===b&&e.navContainer?this._controls[b].html(""):this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if("page"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||"page"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a<e;a++){if(b>=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass("disabled",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass("disabled",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join("")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass("active"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Navigation=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(c){c.namespace&&"URLHash"===this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!c)return;this._hashes[c]=b.content}},this),"changed.owl.carousel":a.proxy(function(c){if(c.namespace&&"position"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+" "+h.join(f+" ")+f).split(" "),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a("<support>").get(0).style,h="Webkit Moz O ms".split(" "),i={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},j={csstransforms:function(){return!!e("transform")},csstransforms3d:function(){return!!e("perspective")},csstransitions:function(){return!!e("transition")},cssanimations:function(){return!!e("animation")}};j.csstransitions()&&(a.support.transition=new String(f("transition")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f("animation")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f("transform")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document);
/*!
* Chart.js v2.8.0
* https://www.chartjs.org
* (c) 2019 Chart.js Contributors
* Released under the MIT License
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(function(){try{return require("moment")}catch(t){}}()):"function"==typeof define&&define.amd?define(["require"],function(t){return e(function(){try{return t("moment")}catch(t){}}())}):t.Chart=e(t.moment)}(this,function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e={rgb2hsl:i,rgb2hsv:n,rgb2hwb:a,rgb2cmyk:o,rgb2keyword:s,rgb2xyz:l,rgb2lab:d,rgb2lch:function(t){return x(d(t))},hsl2rgb:u,hsl2hsv:function(t){var e=t[0],i=t[1]/100,n=t[2]/100;if(0===n)return[0,0,0];return[e,100*(2*(i*=(n*=2)<=1?n:2-n)/(n+i)),100*((n+i)/2)]},hsl2hwb:function(t){return a(u(t))},hsl2cmyk:function(t){return o(u(t))},hsl2keyword:function(t){return s(u(t))},hsv2rgb:h,hsv2hsl:function(t){var e,i,n=t[0],a=t[1]/100,o=t[2]/100;return e=a*o,[n,100*(e=(e/=(i=(2-a)*o)<=1?i:2-i)||0),100*(i/=2)]},hsv2hwb:function(t){return a(h(t))},hsv2cmyk:function(t){return o(h(t))},hsv2keyword:function(t){return s(h(t))},hwb2rgb:c,hwb2hsl:function(t){return i(c(t))},hwb2hsv:function(t){return n(c(t))},hwb2cmyk:function(t){return o(c(t))},hwb2keyword:function(t){return s(c(t))},cmyk2rgb:f,cmyk2hsl:function(t){return i(f(t))},cmyk2hsv:function(t){return n(f(t))},cmyk2hwb:function(t){return a(f(t))},cmyk2keyword:function(t){return s(f(t))},keyword2rgb:w,keyword2hsl:function(t){return i(w(t))},keyword2hsv:function(t){return n(w(t))},keyword2hwb:function(t){return a(w(t))},keyword2cmyk:function(t){return o(w(t))},keyword2lab:function(t){return d(w(t))},keyword2xyz:function(t){return l(w(t))},xyz2rgb:p,xyz2lab:m,xyz2lch:function(t){return x(m(t))},lab2xyz:v,lab2rgb:y,lab2lch:x,lch2lab:k,lch2xyz:function(t){return v(k(t))},lch2rgb:function(t){return y(k(t))}};function i(t){var e,i,n=t[0]/255,a=t[1]/255,o=t[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),i=(r+s)/2,[e,100*(s==r?0:i<=.5?l/(s+r):l/(2-s-r)),100*i]}function n(t){var e,i,n=t[0],a=t[1],o=t[2],r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return i=0==s?0:l/s*1e3/10,s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),[e,i,s/255*1e3/10]}function a(t){var e=t[0],n=t[1],a=t[2];return[i(t)[0],100*(1/255*Math.min(e,Math.min(n,a))),100*(a=1-1/255*Math.max(e,Math.max(n,a)))]}function o(t){var e,i=t[0]/255,n=t[1]/255,a=t[2]/255;return[100*((1-i-(e=Math.min(1-i,1-n,1-a)))/(1-e)||0),100*((1-n-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]}function s(t){return _[JSON.stringify(t)]}function l(t){var e=t[0]/255,i=t[1]/255,n=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)+.1805*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)),100*(.2126*e+.7152*i+.0722*n),100*(.0193*e+.1192*i+.9505*n)]}function d(t){var e=l(t),i=e[0],n=e[1],a=e[2];return n/=100,a/=108.883,i=(i/=95.047)>.008856?Math.pow(i,1/3):7.787*i+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(i-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function u(t){var e,i,n,a,o,r=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[o=255*l,o,o];e=2*l-(i=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var d=0;d<3;d++)(n=r+1/3*-(d-1))<0&&n++,n>1&&n--,o=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e,a[d]=255*o;return a}function h(t){var e=t[0]/60,i=t[1]/100,n=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*n*(1-i),s=255*n*(1-i*o),l=255*n*(1-i*(1-o));n*=255;switch(a){case 0:return[n,l,r];case 1:return[s,n,r];case 2:return[r,n,l];case 3:return[r,s,n];case 4:return[l,r,n];case 5:return[n,r,s]}}function c(t){var e,i,n,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,d=s+l;switch(d>1&&(s/=d,l/=d),n=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(n=1-n),a=s+n*((i=1-l)-s),e){default:case 6:case 0:r=i,g=a,b=s;break;case 1:r=a,g=i,b=s;break;case 2:r=s,g=i,b=a;break;case 3:r=s,g=a,b=i;break;case 4:r=a,g=s,b=i;break;case 5:r=i,g=s,b=a}return[255*r,255*g,255*b]}function f(t){var e=t[0]/100,i=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function p(t){var e,i,n,a=t[0]/100,o=t[1]/100,r=t[2]/100;return i=-.9689*a+1.8758*o+.0415*r,n=.0557*a+-.204*o+1.057*r,e=(e=3.2406*a+-1.5372*o+-.4986*r)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1))]}function m(t){var e=t[0],i=t[1],n=t[2];return i/=100,n/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(e-i),200*(i-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]}function v(t){var e,i,n,a,o=t[0],r=t[1],s=t[2];return o<=8?a=(i=100*o/903.3)/100*7.787+16/116:(i=100*Math.pow((o+16)/116,3),a=Math.pow(i/100,1/3)),[e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i,n=n/108.883<=.008859?n=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3)]}function x(t){var e,i=t[0],n=t[1],a=t[2];return(e=360*Math.atan2(a,n)/2/Math.PI)<0&&(e+=360),[i,Math.sqrt(n*n+a*a),e]}function y(t){return p(v(t))}function k(t){var e,i=t[0],n=t[1];return e=t[2]/360*2*Math.PI,[i,n*Math.cos(e),n*Math.sin(e)]}function w(t){return M[t]}var M={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},_={};for(var C in M)_[JSON.stringify(M[C])]=C;var S=function(){return new T};for(var P in e){S[P+"Raw"]=function(t){return function(i){return"number"==typeof i&&(i=Array.prototype.slice.call(arguments)),e[t](i)}}(P);var I=/(\w+)2(\w+)/.exec(P),A=I[1],D=I[2];(S[A]=S[A]||{})[D]=S[P]=function(t){return function(i){"number"==typeof i&&(i=Array.prototype.slice.call(arguments));var n=e[t](i);if("string"==typeof n||void 0===n)return n;for(var a=0;a<n.length;a++)n[a]=Math.round(n[a]);return n}}(P)}var T=function(){this.convs={}};T.prototype.routeSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i))},T.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},T.prototype.getValues=function(t){var e=this.convs[t];if(!e){var i=this.space,n=this.convs[i];e=S[i][t](n),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){T.prototype[t]=function(e){return this.routeSpace(t,arguments)}});var F=S,L={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},R={getRgba:O,getHsla:z,getRgb:function(t){var e=O(t);return e&&e.slice(0,3)},getHsl:function(t){var e=z(t);return e&&e.slice(0,3)},getHwb:B,getAlpha:function(t){var e=O(t);if(e)return e[3];if(e=z(t))return e[3];if(e=B(t))return e[3]},hexString:function(t,e){var e=void 0!==e&&3===t.length?e:t[3];return"#"+H(t[0])+H(t[1])+H(t[2])+(e>=0&&e<1?H(Math.round(255*e)):"")},rgbString:function(t,e){if(e<1||t[3]&&t[3]<1)return N(t,e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:N,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return W(t,e);var i=Math.round(t[0]/255*100),n=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+i+"%, "+n+"%, "+a+"%)"},percentaString:W,hslString:function(t,e){if(e<1||t[3]&&t[3]<1)return V(t,e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:V,hwbString:function(t,e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return j[t.slice(0,3)]}};function O(t){if(t){var e=[0,0,0],i=1,n=t.match(/^#([a-fA-F0-9]{3,4})$/i),a="";if(n){a=(n=n[1])[3];for(var o=0;o<e.length;o++)e[o]=parseInt(n[o]+n[o],16);a&&(i=Math.round(parseInt(a+a,16)/255*100)/100)}else if(n=t.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)){a=n[2],n=n[1];for(o=0;o<e.length;o++)e[o]=parseInt(n.slice(2*o,2*o+2),16);a&&(i=Math.round(parseInt(a,16)/255*100)/100)}else if(n=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=parseInt(n[o+1]);i=parseFloat(n[4])}else if(n=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=Math.round(2.55*parseFloat(n[o+1]));i=parseFloat(n[4])}else if(n=t.match(/(\w+)/)){if("transparent"==n[1])return[0,0,0,0];if(!(e=L[n[1]]))return}for(o=0;o<e.length;o++)e[o]=E(e[o],0,255);return i=i||0==i?E(i,0,1):1,e[3]=i,e}}function z(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[E(parseInt(e[1]),0,360),E(parseFloat(e[2]),0,100),E(parseFloat(e[3]),0,100),E(isNaN(i)?1:i,0,1)]}}}function B(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[E(parseInt(e[1]),0,360),E(parseFloat(e[2]),0,100),E(parseFloat(e[3]),0,100),E(isNaN(i)?1:i,0,1)]}}}function N(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function W(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function V(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function E(t,e,i){return Math.min(Math.max(e,t),i)}function H(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var j={};for(var q in L)j[L[q]]=q;var Y=function(t){return t instanceof Y?t:this instanceof Y?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof t?(e=R.getRgba(t))?this.setValues("rgb",e):(e=R.getHsla(t))?this.setValues("hsl",e):(e=R.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new Y(t);var e};Y.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return R.hexString(this.values.rgb)},rgbString:function(){return R.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return R.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return R.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return R.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return R.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return R.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return R.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],i=0;i<t.length;i++){var n=t[i]/255;e[i]=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),i=t.luminosity();return e>i?(e+.05)/(i+.05):(i+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,i=(e[0]+t)%360;return e[0]=i<0?360+i:i,this.setValues("hsl",e),this},mix:function(t,e){var i=t,n=void 0===e?.5:e,a=2*n-1,o=this.alpha()-i.alpha(),r=((a*o==-1?a:(a+o)/(1+a*o))+1)/2,s=1-r;return this.rgb(r*this.red()+s*i.red(),r*this.green()+s*i.green(),r*this.blue()+s*i.blue()).alpha(this.alpha()*n+i.alpha()*(1-n))},toJSON:function(){return this.rgb()},clone:function(){var t,e,i=new Y,n=this.values,a=i.values;for(var o in n)n.hasOwnProperty(o)&&(t=n[o],"[object Array]"===(e={}.toString.call(t))?a[o]=t.slice(0):"[object Number]"===e?a[o]=t:console.error("unexpected color value:",t));return i}},Y.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},Y.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},Y.prototype.getValues=function(t){for(var e=this.values,i={},n=0;n<t.length;n++)i[t.charAt(n)]=e[t][n];return 1!==e.alpha&&(i.a=e.alpha),i},Y.prototype.setValues=function(t,e){var i,n,a=this.values,o=this.spaces,r=this.maxes,s=1;if(this.valid=!0,"alpha"===t)s=e;else if(e.length)a[t]=e.slice(0,t.length),s=e[t.length];else if(void 0!==e[t.charAt(0)]){for(i=0;i<t.length;i++)a[t][i]=e[t.charAt(i)];s=e.a}else if(void 0!==e[o[t][0]]){var l=o[t];for(i=0;i<t.length;i++)a[t][i]=e[l[i]];s=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void 0===s?a.alpha:s)),"alpha"===t)return!1;for(i=0;i<t.length;i++)n=Math.max(0,Math.min(r[t][i],a[t][i])),a[t][i]=Math.round(n);for(var d in o)d!==t&&(a[d]=F[t][d](a[t]));return!0},Y.prototype.setSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i),this)},Y.prototype.setChannel=function(t,e,i){var n=this.values[t];return void 0===i?n[e]:i===n[e]?this:(n[e]=i,this.setValues(t,n),this)},"undefined"!=typeof window&&(window.Color=Y);var U,X=Y,K={noop:function(){},uid:(U=0,function(){return U++}),isNullOrUndef:function(t){return null==t},isArray:function(t){if(Array.isArray&&Array.isArray(t))return!0;var e=Object.prototype.toString.call(t);return"[object"===e.substr(0,7)&&"Array]"===e.substr(-6)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},isFinite:function(t){return("number"==typeof t||t instanceof Number)&&isFinite(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,i){return K.valueOrDefault(K.isArray(t)?t[e]:t,i)},callback:function(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)},each:function(t,e,i,n){var a,o,r;if(K.isArray(t))if(o=t.length,n)for(a=o-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a<o;a++)e.call(i,t[a],a);else if(K.isObject(t))for(o=(r=Object.keys(t)).length,a=0;a<o;a++)e.call(i,t[r[a]],r[a])},arrayEquals:function(t,e){var i,n,a,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,n=t.length;i<n;++i)if(a=t[i],o=e[i],a instanceof Array&&o instanceof Array){if(!K.arrayEquals(a,o))return!1}else if(a!==o)return!1;return!0},clone:function(t){if(K.isArray(t))return t.map(K.clone);if(K.isObject(t)){for(var e={},i=Object.keys(t),n=i.length,a=0;a<n;++a)e[i[a]]=K.clone(t[i[a]]);return e}return t},_merger:function(t,e,i,n){var a=e[t],o=i[t];K.isObject(a)&&K.isObject(o)?K.merge(a,o,n):e[t]=K.clone(o)},_mergerIf:function(t,e,i){var n=e[t],a=i[t];K.isObject(n)&&K.isObject(a)?K.mergeIf(n,a):e.hasOwnProperty(t)||(e[t]=K.clone(a))},merge:function(t,e,i){var n,a,o,r,s,l=K.isArray(e)?e:[e],d=l.length;if(!K.isObject(t))return t;for(n=(i=i||{}).merger||K._merger,a=0;a<d;++a)if(e=l[a],K.isObject(e))for(s=0,r=(o=Object.keys(e)).length;s<r;++s)n(o[s],t,e,i);return t},mergeIf:function(t,e){return K.merge(t,e,{merger:K._mergerIf})},extend:function(t){for(var e=function(e,i){t[i]=e},i=1,n=arguments.length;i<n;++i)K.each(arguments[i],e);return t},inherits:function(t){var e=this,i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},n=function(){this.constructor=i};return n.prototype=e.prototype,i.prototype=new n,i.extend=K.inherits,t&&K.extend(i.prototype,t),i.__super__=e.prototype,i}},G=K;K.callCallback=K.callback,K.indexOf=function(t,e,i){return Array.prototype.indexOf.call(t,e,i)},K.getValueOrDefault=K.valueOrDefault,K.getValueAtIndexOrDefault=K.valueAtIndexOrDefault;var Z={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i))},easeOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)},easeInOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:2==(t/=.5)?1:(i||(i=.45),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),t<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-Z.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*Z.easeInBounce(2*t):.5*Z.easeOutBounce(2*t-1)+.5}},$={effects:Z};G.easingEffects=Z;var J=Math.PI,Q=J/180,tt=2*J,et=J/2,it=J/4,nt=2*J/3,at={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,i,n,a,o){if(o){var r=Math.min(o,a/2,n/2),s=e+r,l=i+r,d=e+n-r,u=i+a-r;t.moveTo(e,l),s<d&&l<u?(t.arc(s,l,r,-J,-et),t.arc(d,l,r,-et,0),t.arc(d,u,r,0,et),t.arc(s,u,r,et,J)):s<d?(t.moveTo(s,i),t.arc(d,l,r,-et,et),t.arc(s,l,r,et,J+et)):l<u?(t.arc(s,l,r,-J,0),t.arc(s,u,r,0,J)):t.arc(s,l,r,-J,J),t.closePath(),t.moveTo(e,i)}else t.rect(e,i,n,a)},drawPoint:function(t,e,i,n,a,o){var r,s,l,d,u,h=(o||0)*Q;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(r=e.toString())&&"[object HTMLCanvasElement]"!==r){if(!(isNaN(i)||i<=0)){switch(t.beginPath(),e){default:t.arc(n,a,i,0,tt),t.closePath();break;case"triangle":t.moveTo(n+Math.sin(h)*i,a-Math.cos(h)*i),h+=nt,t.lineTo(n+Math.sin(h)*i,a-Math.cos(h)*i),h+=nt,t.lineTo(n+Math.sin(h)*i,a-Math.cos(h)*i),t.closePath();break;case"rectRounded":d=i-(u=.516*i),s=Math.cos(h+it)*d,l=Math.sin(h+it)*d,t.arc(n-s,a-l,u,h-J,h-et),t.arc(n+l,a-s,u,h-et,h),t.arc(n+s,a+l,u,h,h+et),t.arc(n-l,a+s,u,h+et,h+J),t.closePath();break;case"rect":if(!o){d=Math.SQRT1_2*i,t.rect(n-d,a-d,2*d,2*d);break}h+=it;case"rectRot":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+l,a-s),t.lineTo(n+s,a+l),t.lineTo(n-l,a+s),t.closePath();break;case"crossRot":h+=it;case"cross":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s);break;case"star":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s),h+=it,s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s);break;case"line":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l);break;case"dash":t.moveTo(n,a),t.lineTo(n+Math.cos(h)*i,a+Math.sin(h)*i)}t.fill(),t.stroke()}}else t.drawImage(e,n-e.width/2,a-e.height/2,e.width,e.height)},_isPointInArea:function(t,e){return t.x>e.left-1e-6&&t.x<e.right+1e-6&&t.y>e.top-1e-6&&t.y<e.bottom+1e-6},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,i,n){var a=i.steppedLine;if(a){if("middle"===a){var o=(e.x+i.x)/2;t.lineTo(o,n?i.y:e.y),t.lineTo(o,n?e.y:i.y)}else"after"===a&&!n||"after"!==a&&n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}else i.tension?t.bezierCurveTo(n?e.controlPointPreviousX:e.controlPointNextX,n?e.controlPointPreviousY:e.controlPointNextY,n?i.controlPointNextX:i.controlPointPreviousX,n?i.controlPointNextY:i.controlPointPreviousY,i.x,i.y):t.lineTo(i.x,i.y)}},ot=at;G.clear=at.clear,G.drawRoundedRectangle=function(t){t.beginPath(),at.roundedRect.apply(at,arguments)};var rt={_set:function(t,e){return G.merge(this[t]||(this[t]={}),e)}};rt._set("global",{defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",defaultLineHeight:1.2,showLines:!0});var st=rt,lt=G.valueOrDefault;var dt={toLineHeight:function(t,e){var i=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,i,n,a;return G.isObject(t)?(e=+t.top||0,i=+t.right||0,n=+t.bottom||0,a=+t.left||0):e=i=n=a=+t||0,{top:e,right:i,bottom:n,left:a,height:e+n,width:a+i}},_parseFont:function(t){var e=st.global,i=lt(t.fontSize,e.defaultFontSize),n={family:lt(t.fontFamily,e.defaultFontFamily),lineHeight:G.options.toLineHeight(lt(t.lineHeight,e.defaultLineHeight),i),size:i,style:lt(t.fontStyle,e.defaultFontStyle),weight:null,string:""};return n.string=function(t){return!t||G.isNullOrUndef(t.size)||G.isNullOrUndef(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(n),n},resolve:function(t,e,i){var n,a,o;for(n=0,a=t.length;n<a;++n)if(void 0!==(o=t[n])&&(void 0!==e&&"function"==typeof o&&(o=o(e)),void 0!==i&&G.isArray(o)&&(o=o[i]),void 0!==o))return o}},ut=G,ht=$,ct=ot,ft=dt;ut.easing=ht,ut.canvas=ct,ut.options=ft;var gt=function(t){ut.extend(this,t),this.initialize.apply(this,arguments)};ut.extend(gt.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=ut.clone(t._model)),t._start={},t},transition:function(t){var e=this,i=e._model,n=e._start,a=e._view;return i&&1!==t?(a||(a=e._view={}),n||(n=e._start={}),function(t,e,i,n){var a,o,r,s,l,d,u,h,c,f=Object.keys(i);for(a=0,o=f.length;a<o;++a)if(d=i[r=f[a]],e.hasOwnProperty(r)||(e[r]=d),(s=e[r])!==d&&"_"!==r[0]){if(t.hasOwnProperty(r)||(t[r]=s),(u=typeof d)==typeof(l=t[r]))if("string"===u){if((h=X(l)).valid&&(c=X(d)).valid){e[r]=c.mix(h,n).rgbString();continue}}else if(ut.isFinite(l)&&ut.isFinite(d)){e[r]=l+(d-l)*n;continue}e[r]=d}}(n,a,i,t),e):(e._view=i,e._start=null,e)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return ut.isNumber(this._model.x)&&ut.isNumber(this._model.y)}}),gt.extend=ut.inherits;var pt=gt,mt=pt.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),vt=mt;Object.defineProperty(mt.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(mt.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}}),st._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:ut.noop,onComplete:ut.noop}});var bt={animations:[],request:null,addAnimation:function(t,e,i,n){var a,o,r=this.animations;for(e.chart=t,e.startTime=Date.now(),e.duration=i,n||(t.animating=!0),a=0,o=r.length;a<o;++a)if(r[a].chart===t)return void(r[a]=e);r.push(e),1===r.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var e=ut.findIndex(this.animations,function(e){return e.chart===t});-1!==e&&(this.animations.splice(e,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=ut.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){this.advance(),this.animations.length>0&&this.requestAnimationFrame()},advance:function(){for(var t,e,i,n,a=this.animations,o=0;o<a.length;)e=(t=a[o]).chart,i=t.numSteps,n=Math.floor((Date.now()-t.startTime)/t.duration*i)+1,t.currentStep=Math.min(n,i),ut.callback(t.render,[e,t],e),ut.callback(t.onAnimationProgress,[t],e),t.currentStep>=i?(ut.callback(t.onAnimationComplete,[t],e),e.animating=!1,a.splice(o,1)):++o}},xt=ut.options.resolve,yt=["push","pop","shift","splice","unshift"];function kt(t,e){var i=t._chartjs;if(i){var n=i.listeners,a=n.indexOf(e);-1!==a&&n.splice(a,1),n.length>0||(yt.forEach(function(e){delete t[e]}),delete t._chartjs)}}var wt=function(t,e){this.initialize(t,e)};ut.extend(wt.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),i=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=i.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=i.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this.update(!0)},destroy:function(){this._data&&kt(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,i=this.getMeta(),n=this.getDataset().data||[],a=i.data;for(t=0,e=n.length;t<e;++t)a[t]=a[t]||this.createMetaData(t);i.dataset=i.dataset||this.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t,e,i=this,n=i.getDataset(),a=n.data||(n.data=[]);i._data!==a&&(i._data&&kt(i._data,i),a&&Object.isExtensible(a)&&(e=i,(t=a)._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),yt.forEach(function(e){var i="onData"+e.charAt(0).toUpperCase()+e.slice(1),n=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),a=n.apply(this,e);return ut.each(t._chartjs.listeners,function(t){"function"==typeof t[i]&&t[i].apply(t,e)}),a}})}))),i._data=a),i.resyncElements()},update:ut.noop,transition:function(t){for(var e=this.getMeta(),i=e.data||[],n=i.length,a=0;a<n;++a)i[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],i=e.length,n=0;for(t.dataset&&t.dataset.draw();n<i;++n)e[n].draw()},removeHoverStyle:function(t){ut.merge(t._model,t.$previousStyle||{}),delete t.$previousStyle},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},a=t._model,o=ut.getHoverColor;t.$previousStyle={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderWidth:a.borderWidth},a.backgroundColor=xt([n.hoverBackgroundColor,e.hoverBackgroundColor,o(a.backgroundColor)],void 0,i),a.borderColor=xt([n.hoverBorderColor,e.hoverBorderColor,o(a.borderColor)],void 0,i),a.borderWidth=xt([n.hoverBorderWidth,e.hoverBorderWidth,a.borderWidth],void 0,i)},resyncElements:function(){var t=this.getMeta(),e=this.getDataset().data,i=t.data.length,n=e.length;n<i?t.data.splice(n,i-n):n>i&&this.insertElements(i,n-i)},insertElements:function(t,e){for(var i=0;i<e;++i)this.addElementAndReset(t+i)},onDataPush:function(){var t=arguments.length;this.insertElements(this.getDataset().data.length-t,t)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),wt.extend=ut.inherits;var Mt=wt;st._set("global",{elements:{arc:{backgroundColor:st.global.defaultColor,borderColor:"#fff",borderWidth:2,borderAlign:"center"}}});var _t=pt.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var i=this._view;if(i){for(var n=ut.getAngleFromPoint(i,{x:t,y:e}),a=n.angle,o=n.distance,r=i.startAngle,s=i.endAngle;s<r;)s+=2*Math.PI;for(;a>s;)a-=2*Math.PI;for(;a<r;)a+=2*Math.PI;var l=a>=r&&a<=s,d=o>=i.innerRadius&&o<=i.outerRadius;return l&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,i=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,i=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},draw:function(){var t,e=this._chart.ctx,i=this._view,n=i.startAngle,a=i.endAngle,o="inner"===i.borderAlign?.33:0;e.save(),e.beginPath(),e.arc(i.x,i.y,Math.max(i.outerRadius-o,0),n,a),e.arc(i.x,i.y,i.innerRadius,a,n,!0),e.closePath(),e.fillStyle=i.backgroundColor,e.fill(),i.borderWidth&&("inner"===i.borderAlign?(e.beginPath(),t=o/i.outerRadius,e.arc(i.x,i.y,i.outerRadius,n-t,a+t),i.innerRadius>o?(t=o/i.innerRadius,e.arc(i.x,i.y,i.innerRadius-o,a+t,n-t,!0)):e.arc(i.x,i.y,o,a+Math.PI/2,n-Math.PI/2),e.closePath(),e.clip(),e.beginPath(),e.arc(i.x,i.y,i.outerRadius,n,a),e.arc(i.x,i.y,i.innerRadius,a,n,!0),e.closePath(),e.lineWidth=2*i.borderWidth,e.lineJoin="round"):(e.lineWidth=i.borderWidth,e.lineJoin="bevel"),e.strokeStyle=i.borderColor,e.stroke()),e.restore()}}),Ct=ut.valueOrDefault,St=st.global.defaultColor;st._set("global",{elements:{line:{tension:.4,backgroundColor:St,borderWidth:3,borderColor:St,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var Pt=pt.extend({draw:function(){var t,e,i,n,a=this._view,o=this._chart.ctx,r=a.spanGaps,s=this._children.slice(),l=st.global,d=l.elements.line,u=-1;for(this._loop&&s.length&&s.push(s[0]),o.save(),o.lineCap=a.borderCapStyle||d.borderCapStyle,o.setLineDash&&o.setLineDash(a.borderDash||d.borderDash),o.lineDashOffset=Ct(a.borderDashOffset,d.borderDashOffset),o.lineJoin=a.borderJoinStyle||d.borderJoinStyle,o.lineWidth=Ct(a.borderWidth,d.borderWidth),o.strokeStyle=a.borderColor||l.defaultColor,o.beginPath(),u=-1,t=0;t<s.length;++t)e=s[t],i=ut.previousItem(s,t),n=e._view,0===t?n.skip||(o.moveTo(n.x,n.y),u=t):(i=-1===u?i:s[u],n.skip||(u!==t-1&&!r||-1===u?o.moveTo(n.x,n.y):ut.canvas.lineTo(o,i._view,e._view),u=t));o.stroke(),o.restore()}}),It=ut.valueOrDefault,At=st.global.defaultColor;function Dt(t){var e=this._view;return!!e&&Math.abs(t-e.x)<e.radius+e.hitRadius}st._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:At,borderColor:At,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}});var Tt=pt.extend({inRange:function(t,e){var i=this._view;return!!i&&Math.pow(t-i.x,2)+Math.pow(e-i.y,2)<Math.pow(i.hitRadius+i.radius,2)},inLabelRange:Dt,inXRange:Dt,inYRange:function(t){var e=this._view;return!!e&&Math.abs(t-e.y)<e.radius+e.hitRadius},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,i=this._chart.ctx,n=e.pointStyle,a=e.rotation,o=e.radius,r=e.x,s=e.y,l=st.global,d=l.defaultColor;e.skip||(void 0===t||ut.canvas._isPointInArea(e,t))&&(i.strokeStyle=e.borderColor||d,i.lineWidth=It(e.borderWidth,l.elements.point.borderWidth),i.fillStyle=e.backgroundColor||d,ut.canvas.drawPoint(i,n,o,r,s,a))}}),Ft=st.global.defaultColor;function Lt(t){return t&&void 0!==t.width}function Rt(t){var e,i,n,a,o;return Lt(t)?(o=t.width/2,e=t.x-o,i=t.x+o,n=Math.min(t.y,t.base),a=Math.max(t.y,t.base)):(o=t.height/2,e=Math.min(t.x,t.base),i=Math.max(t.x,t.base),n=t.y-o,a=t.y+o),{left:e,top:n,right:i,bottom:a}}function Ot(t,e,i){return t===e?i:t===i?e:t}function zt(t,e,i){var n,a,o,r,s=t.borderWidth,l=function(t){var e=t.borderSkipped,i={};return e?(t.horizontal?t.base>t.x&&(e=Ot(e,"left","right")):t.base<t.y&&(e=Ot(e,"bottom","top")),i[e]=!0,i):i}(t);return ut.isObject(s)?(n=+s.top||0,a=+s.right||0,o=+s.bottom||0,r=+s.left||0):n=a=o=r=+s||0,{t:l.top||n<0?0:n>i?i:n,r:l.right||a<0?0:a>e?e:a,b:l.bottom||o<0?0:o>i?i:o,l:l.left||r<0?0:r>e?e:r}}function Bt(t,e,i){var n=null===e,a=null===i,o=!(!t||n&&a)&&Rt(t);return o&&(n||e>=o.left&&e<=o.right)&&(a||i>=o.top&&i<=o.bottom)}st._set("global",{elements:{rectangle:{backgroundColor:Ft,borderColor:Ft,borderSkipped:"bottom",borderWidth:0}}});var Nt=pt.extend({draw:function(){var t=this._chart.ctx,e=this._view,i=function(t){var e=Rt(t),i=e.right-e.left,n=e.bottom-e.top,a=zt(t,i/2,n/2);return{outer:{x:e.left,y:e.top,w:i,h:n},inner:{x:e.left+a.l,y:e.top+a.t,w:i-a.l-a.r,h:n-a.t-a.b}}}(e),n=i.outer,a=i.inner;t.fillStyle=e.backgroundColor,t.fillRect(n.x,n.y,n.w,n.h),n.w===a.w&&n.h===a.h||(t.save(),t.beginPath(),t.rect(n.x,n.y,n.w,n.h),t.clip(),t.fillStyle=e.borderColor,t.rect(a.x,a.y,a.w,a.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return Bt(this._view,t,e)},inLabelRange:function(t,e){var i=this._view;return Lt(i)?Bt(i,t,null):Bt(i,null,e)},inXRange:function(t){return Bt(this._view,t,null)},inYRange:function(t){return Bt(this._view,null,t)},getCenterPoint:function(){var t,e,i=this._view;return Lt(i)?(t=i.x,e=(i.y+i.base)/2):(t=(i.x+i.base)/2,e=i.y),{x:t,y:e}},getArea:function(){var t=this._view;return Lt(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),Wt={},Vt=_t,Et=Pt,Ht=Tt,jt=Nt;Wt.Arc=Vt,Wt.Line=Et,Wt.Point=Ht,Wt.Rectangle=jt;var qt=ut.options.resolve;st._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}});var Yt=Mt.extend({dataElementType:Wt.Rectangle,initialize:function(){var t;Mt.prototype.initialize.apply(this,arguments),(t=this.getMeta()).stack=this.getDataset().stack,t.bar=!0},update:function(t){var e,i,n=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,i=n.length;e<i;++e)this.updateElement(n[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.getMeta(),o=n.getDataset(),r=n._resolveElementOptions(t,e);t._xScale=n.getScaleForId(a.xAxisID),t._yScale=n.getScaleForId(a.yAxisID),t._datasetIndex=n.index,t._index=e,t._model={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderSkipped:r.borderSkipped,borderWidth:r.borderWidth,datasetLabel:o.label,label:n.chart.data.labels[e]},n._updateElementGeometry(t,e,i),t.pivot()},_updateElementGeometry:function(t,e,i){var n=this,a=t._model,o=n._getValueScale(),r=o.getBasePixel(),s=o.isHorizontal(),l=n._ruler||n.getRuler(),d=n.calculateBarValuePixels(n.index,e),u=n.calculateBarIndexPixels(n.index,e,l);a.horizontal=s,a.base=i?r:d.base,a.x=s?i?r:d.head:u.center,a.y=s?u.center:i?r:d.head,a.height=s?u.size:void 0,a.width=s?void 0:u.size},_getStacks:function(t){var e,i,n=this.chart,a=this._getIndexScale().options.stacked,o=void 0===t?n.data.datasets.length:t+1,r=[];for(e=0;e<o;++e)(i=n.getDatasetMeta(e)).bar&&n.isDatasetVisible(e)&&(!1===a||!0===a&&-1===r.indexOf(i.stack)||void 0===a&&(void 0===i.stack||-1===r.indexOf(i.stack)))&&r.push(i.stack);return r},getStackCount:function(){return this._getStacks().length},getStackIndex:function(t,e){var i=this._getStacks(t),n=void 0!==e?i.indexOf(e):-1;return-1===n?i.length-1:n},getRuler:function(){var t,e,i=this._getIndexScale(),n=this.getStackCount(),a=this.index,o=i.isHorizontal(),r=o?i.left:i.top,s=r+(o?i.width:i.height),l=[];for(t=0,e=this.getMeta().data.length;t<e;++t)l.push(i.getPixelForValue(null,t,a));return{min:ut.isNullOrUndef(i.options.barThickness)?function(t,e){var i,n,a,o,r=t.isHorizontal()?t.width:t.height,s=t.getTicks();for(a=1,o=e.length;a<o;++a)r=Math.min(r,Math.abs(e[a]-e[a-1]));for(a=0,o=s.length;a<o;++a)n=t.getPixelForTick(a),r=a>0?Math.min(r,n-i):r,i=n;return r}(i,l):-1,pixels:l,start:r,end:s,stackCount:n,scale:i}},calculateBarValuePixels:function(t,e){var i,n,a,o,r,s,l=this.chart,d=this.getMeta(),u=this._getValueScale(),h=u.isHorizontal(),c=l.data.datasets,f=+u.getRightValue(c[t].data[e]),g=u.options.minBarLength,p=u.options.stacked,m=d.stack,v=0;if(p||void 0===p&&void 0!==m)for(i=0;i<t;++i)(n=l.getDatasetMeta(i)).bar&&n.stack===m&&n.controller._getValueScaleId()===u.id&&l.isDatasetVisible(i)&&(a=+u.getRightValue(c[i].data[e]),(f<0&&a<0||f>=0&&a>0)&&(v+=a));return o=u.getPixelForValue(v),s=(r=u.getPixelForValue(v+f))-o,void 0!==g&&Math.abs(s)<g&&(s=g,r=f>=0&&!h||f<0&&h?o-g:o+g),{size:s,base:o,head:r,center:r+s/2}},calculateBarIndexPixels:function(t,e,i){var n=i.scale.options,a="flex"===n.barThickness?function(t,e,i){var n,a=e.pixels,o=a[t],r=t>0?a[t-1]:null,s=t<a.length-1?a[t+1]:null,l=i.categoryPercentage;return null===r&&(r=o-(null===s?e.end-e.start:s-o)),null===s&&(s=o+o-r),n=o-(o-Math.min(r,s))/2*l,{chunk:Math.abs(s-r)/2*l/e.stackCount,ratio:i.barPercentage,start:n}}(e,i,n):function(t,e,i){var n,a,o=i.barThickness,r=e.stackCount,s=e.pixels[t];return ut.isNullOrUndef(o)?(n=e.min*i.categoryPercentage,a=i.barPercentage):(n=o*r,a=1),{chunk:n/r,ratio:a,start:s-n/2}}(e,i,n),o=this.getStackIndex(t,this.getMeta().stack),r=a.start+a.chunk*o+a.chunk/2,s=Math.min(ut.valueOrDefault(n.maxBarThickness,1/0),a.chunk*a.ratio);return{base:r-s/2,head:r+s/2,center:r,size:s}},draw:function(){var t=this.chart,e=this._getValueScale(),i=this.getMeta().data,n=this.getDataset(),a=i.length,o=0;for(ut.canvas.clipArea(t.ctx,t.chartArea);o<a;++o)isNaN(e.getRightValue(n.data[o]))||i[o].draw();ut.canvas.unclipArea(t.ctx)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.rectangle,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderSkipped","borderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=qt([s[a],r[a],l[a]],u,e);return d}}),Ut=ut.valueOrDefault,Xt=ut.options.resolve;st._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.datasets[t.datasetIndex].label||"",n=e.datasets[t.datasetIndex].data[t.index];return i+": ("+t.xLabel+", "+t.yLabel+", "+n.r+")"}}}});var Kt=Mt.extend({dataElementType:Wt.Point,update:function(t){var e=this,i=e.getMeta().data;ut.each(i,function(i,n){e.updateElement(i,n,t)})},updateElement:function(t,e,i){var n=this,a=n.getMeta(),o=t.custom||{},r=n.getScaleForId(a.xAxisID),s=n.getScaleForId(a.yAxisID),l=n._resolveElementOptions(t,e),d=n.getDataset().data[e],u=n.index,h=i?r.getPixelForDecimal(.5):r.getPixelForValue("object"==typeof d?d:NaN,e,u),c=i?s.getBasePixel():s.getPixelForValue(d,e,u);t._xScale=r,t._yScale=s,t._options=l,t._datasetIndex=u,t._index=e,t._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,rotation:l.rotation,radius:i?0:l.radius,skip:o.skip||isNaN(h)||isNaN(c),x:h,y:c},t.pivot()},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Ut(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Ut(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Ut(i.hoverBorderWidth,i.borderWidth),e.radius=i.radius+i.hoverRadius},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d=r.data[e],u={},h={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},c=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"];for(i=0,n=c.length;i<n;++i)u[a=c[i]]=Xt([s[a],r[a],l[a]],h,e);return u.radius=Xt([s.radius,d?d.r:void 0,r.radius,l.radius],h,e),u}}),Gt=ut.options.resolve,Zt=ut.valueOrDefault;st._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),o=e.datasets[0],r=a.data[n],s=r&&r.custom||{},l=t.options.elements.arc;return{text:i,fillStyle:Gt([s.backgroundColor,o.backgroundColor,l.backgroundColor],void 0,n),strokeStyle:Gt([s.borderColor,o.borderColor,l.borderColor],void 0,n),lineWidth:Gt([s.borderWidth,o.borderWidth,l.borderWidth],void 0,n),hidden:isNaN(o.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o]&&(a.data[o].hidden=!a.data[o].hidden);r.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.labels[t.index],n=": "+e.datasets[t.datasetIndex].data[t.index];return ut.isArray(i)?(i=i.slice())[0]+=n:i+=n,i}}}});var $t=Mt.extend({dataElementType:Wt.Arc,linkScales:ut.noop,getRingIndex:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&++e;return e},update:function(t){var e,i,n=this,a=n.chart,o=a.chartArea,r=a.options,s=o.right-o.left,l=o.bottom-o.top,d=Math.min(s,l),u={x:0,y:0},h=n.getMeta(),c=h.data,f=r.cutoutPercentage,g=r.circumference,p=n._getRingWeight(n.index);if(g<2*Math.PI){var m=r.rotation%(2*Math.PI),v=(m+=2*Math.PI*(m>=Math.PI?-1:m<-Math.PI?1:0))+g,b={x:Math.cos(m),y:Math.sin(m)},x={x:Math.cos(v),y:Math.sin(v)},y=m<=0&&v>=0||m<=2*Math.PI&&2*Math.PI<=v,k=m<=.5*Math.PI&&.5*Math.PI<=v||m<=2.5*Math.PI&&2.5*Math.PI<=v,w=m<=-Math.PI&&-Math.PI<=v||m<=Math.PI&&Math.PI<=v,M=m<=.5*-Math.PI&&.5*-Math.PI<=v||m<=1.5*Math.PI&&1.5*Math.PI<=v,_=f/100,C={x:w?-1:Math.min(b.x*(b.x<0?1:_),x.x*(x.x<0?1:_)),y:M?-1:Math.min(b.y*(b.y<0?1:_),x.y*(x.y<0?1:_))},S={x:y?1:Math.max(b.x*(b.x>0?1:_),x.x*(x.x>0?1:_)),y:k?1:Math.max(b.y*(b.y>0?1:_),x.y*(x.y>0?1:_))},P={width:.5*(S.x-C.x),height:.5*(S.y-C.y)};d=Math.min(s/P.width,l/P.height),u={x:-.5*(S.x+C.x),y:-.5*(S.y+C.y)}}for(e=0,i=c.length;e<i;++e)c[e]._options=n._resolveElementOptions(c[e],e);for(a.borderWidth=n.getMaxBorderWidth(),a.outerRadius=Math.max((d-a.borderWidth)/2,0),a.innerRadius=Math.max(f?a.outerRadius/100*f:0,0),a.radiusLength=(a.outerRadius-a.innerRadius)/(n._getVisibleDatasetWeightTotal()||1),a.offsetX=u.x*a.outerRadius,a.offsetY=u.y*a.outerRadius,h.total=n.calculateTotal(),n.outerRadius=a.outerRadius-a.radiusLength*n._getRingWeightOffset(n.index),n.innerRadius=Math.max(n.outerRadius-a.radiusLength*p,0),e=0,i=c.length;e<i;++e)n.updateElement(c[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.chart,o=a.chartArea,r=a.options,s=r.animation,l=(o.left+o.right)/2,d=(o.top+o.bottom)/2,u=r.rotation,h=r.rotation,c=n.getDataset(),f=i&&s.animateRotate?0:t.hidden?0:n.calculateCircumference(c.data[e])*(r.circumference/(2*Math.PI)),g=i&&s.animateScale?0:n.innerRadius,p=i&&s.animateScale?0:n.outerRadius,m=t._options||{};ut.extend(t,{_datasetIndex:n.index,_index:e,_model:{backgroundColor:m.backgroundColor,borderColor:m.borderColor,borderWidth:m.borderWidth,borderAlign:m.borderAlign,x:l+a.offsetX,y:d+a.offsetY,startAngle:u,endAngle:h,circumference:f,outerRadius:p,innerRadius:g,label:ut.valueAtIndexOrDefault(c.label,e,a.data.labels[e])}});var v=t._model;i&&s.animateRotate||(v.startAngle=0===e?r.rotation:n.getMeta().data[e-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),t.pivot()},calculateTotal:function(){var t,e=this.getDataset(),i=this.getMeta(),n=0;return ut.each(i.data,function(i,a){t=e.data[a],isNaN(t)||i.hidden||(n+=Math.abs(t))}),n},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,i,n,a,o,r,s,l,d=0,u=this.chart;if(!t)for(e=0,i=u.data.datasets.length;e<i;++e)if(u.isDatasetVisible(e)){t=(n=u.getDatasetMeta(e)).data,e!==this.index&&(o=n.controller);break}if(!t)return 0;for(e=0,i=t.length;e<i;++e)a=t[e],"inner"!==(r=o?o._resolveElementOptions(a,e):a._options).borderAlign&&(s=r.borderWidth,d=(l=r.hoverBorderWidth)>(d=s>d?s:d)?l:d);return d},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=Zt(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Zt(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Zt(i.hoverBorderWidth,i.borderWidth)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=this.getDataset(),s=t.custom||{},l=o.options.elements.arc,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=Gt([s[a],r[a],l[a]],u,e);return d},_getRingWeightOffset:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&(e+=this._getRingWeight(i));return e},_getRingWeight:function(t){return Math.max(Zt(this.chart.data.datasets[t].weight,1),0)},_getVisibleDatasetWeightTotal:function(){return this._getRingWeightOffset(this.chart.data.datasets.length)}});st._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{type:"category",position:"left",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{mode:"index",axis:"y"}});var Jt=Yt.extend({_getValueScaleId:function(){return this.getMeta().xAxisID},_getIndexScaleId:function(){return this.getMeta().yAxisID}}),Qt=ut.valueOrDefault,te=ut.options.resolve,ee=ut.canvas._isPointInArea;function ie(t,e){return Qt(t.showLine,e.showLines)}st._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});var ne=Mt.extend({datasetElementType:Wt.Line,dataElementType:Wt.Point,update:function(t){var e,i,n=this,a=n.getMeta(),o=a.dataset,r=a.data||[],s=n.getScaleForId(a.yAxisID),l=n.getDataset(),d=ie(l,n.chart.options);for(d&&(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=n.index,o._children=r,o._model=n._resolveLineOptions(o),o.pivot()),e=0,i=r.length;e<i;++e)n.updateElement(r[e],e,t);for(d&&0!==o._model.tension&&n.updateBezierControlPoints(),e=0,i=r.length;e<i;++e)r[e].pivot()},updateElement:function(t,e,i){var n,a,o=this,r=o.getMeta(),s=t.custom||{},l=o.getDataset(),d=o.index,u=l.data[e],h=o.getScaleForId(r.yAxisID),c=o.getScaleForId(r.xAxisID),f=r.dataset._model,g=o._resolvePointOptions(t,e);n=c.getPixelForValue("object"==typeof u?u:NaN,e,d),a=i?h.getBasePixel():o.calculatePointY(u,e,d),t._xScale=c,t._yScale=h,t._options=g,t._datasetIndex=d,t._index=e,t._model={x:n,y:a,skip:s.skip||isNaN(n)||isNaN(a),radius:g.radius,pointStyle:g.pointStyle,rotation:g.rotation,backgroundColor:g.backgroundColor,borderColor:g.borderColor,borderWidth:g.borderWidth,tension:Qt(s.tension,f?f.tension:0),steppedLine:!!f&&f.steppedLine,hitRadius:g.hitRadius}},_resolvePointOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},c=Object.keys(h);for(i=0,n=c.length;i<n;++i)d[a=c[i]]=te([s[a],r[h[a]],r[a],l[a]],u,e);return d},_resolveLineOptions:function(t){var e,i,n,a=this.chart,o=a.data.datasets[this.index],r=t.custom||{},s=a.options,l=s.elements.line,d={},u=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill","cubicInterpolationMode"];for(e=0,i=u.length;e<i;++e)d[n=u[e]]=te([r[n],o[n],l[n]]);return d.spanGaps=Qt(o.spanGaps,s.spanGaps),d.tension=Qt(o.lineTension,l.tension),d.steppedLine=te([r.steppedLine,o.steppedLine,l.stepped]),d},calculatePointY:function(t,e,i){var n,a,o,r=this.chart,s=this.getMeta(),l=this.getScaleForId(s.yAxisID),d=0,u=0;if(l.options.stacked){for(n=0;n<i;n++)if(a=r.data.datasets[n],"line"===(o=r.getDatasetMeta(n)).type&&o.yAxisID===l.id&&r.isDatasetVisible(n)){var h=Number(l.getRightValue(a.data[e]));h<0?u+=h||0:d+=h||0}var c=Number(l.getRightValue(t));return c<0?l.getPixelForValue(u+c):l.getPixelForValue(d+c)}return l.getPixelForValue(t)},updateBezierControlPoints:function(){var t,e,i,n,a=this.chart,o=this.getMeta(),r=o.dataset._model,s=a.chartArea,l=o.data||[];function d(t,e,i){return Math.max(Math.min(t,i),e)}if(r.spanGaps&&(l=l.filter(function(t){return!t._model.skip})),"monotone"===r.cubicInterpolationMode)ut.splineCurveMonotone(l);else for(t=0,e=l.length;t<e;++t)i=l[t]._model,n=ut.splineCurve(ut.previousItem(l,t)._model,i,ut.nextItem(l,t)._model,r.tension),i.controlPointPreviousX=n.previous.x,i.controlPointPreviousY=n.previous.y,i.controlPointNextX=n.next.x,i.controlPointNextY=n.next.y;if(a.options.elements.line.capBezierPoints)for(t=0,e=l.length;t<e;++t)i=l[t]._model,ee(i,s)&&(t>0&&ee(l[t-1]._model,s)&&(i.controlPointPreviousX=d(i.controlPointPreviousX,s.left,s.right),i.controlPointPreviousY=d(i.controlPointPreviousY,s.top,s.bottom)),t<l.length-1&&ee(l[t+1]._model,s)&&(i.controlPointNextX=d(i.controlPointNextX,s.left,s.right),i.controlPointNextY=d(i.controlPointNextY,s.top,s.bottom)))},draw:function(){var t,e=this.chart,i=this.getMeta(),n=i.data||[],a=e.chartArea,o=n.length,r=0;for(ie(this.getDataset(),e.options)&&(t=(i.dataset._model.borderWidth||0)/2,ut.canvas.clipArea(e.ctx,{left:a.left,right:a.right,top:a.top-t,bottom:a.bottom+t}),i.dataset.draw(),ut.canvas.unclipArea(e.ctx));r<o;++r)n[r].draw(a)},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Qt(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Qt(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Qt(i.hoverBorderWidth,i.borderWidth),e.radius=Qt(i.hoverRadius,i.radius)}}),ae=ut.options.resolve;st._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),o=e.datasets[0],r=a.data[n].custom||{},s=t.options.elements.arc;return{text:i,fillStyle:ae([r.backgroundColor,o.backgroundColor,s.backgroundColor],void 0,n),strokeStyle:ae([r.borderColor,o.borderColor,s.borderColor],void 0,n),lineWidth:ae([r.borderWidth,o.borderWidth,s.borderWidth],void 0,n),hidden:isNaN(o.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o].hidden=!a.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}});var oe=Mt.extend({dataElementType:Wt.Arc,linkScales:ut.noop,update:function(t){var e,i,n,a=this,o=a.getDataset(),r=a.getMeta(),s=a.chart.options.startAngle||0,l=a._starts=[],d=a._angles=[],u=r.data;for(a._updateRadius(),r.count=a.countVisibleElements(),e=0,i=o.data.length;e<i;e++)l[e]=s,n=a._computeAngle(e),d[e]=n,s+=n;for(e=0,i=u.length;e<i;++e)u[e]._options=a._resolveElementOptions(u[e],e),a.updateElement(u[e],e,t)},_updateRadius:function(){var t=this,e=t.chart,i=e.chartArea,n=e.options,a=Math.min(i.right-i.left,i.bottom-i.top);e.outerRadius=Math.max(a/2,0),e.innerRadius=Math.max(n.cutoutPercentage?e.outerRadius/100*n.cutoutPercentage:1,0),e.radiusLength=(e.outerRadius-e.innerRadius)/e.getVisibleDatasetCount(),t.outerRadius=e.outerRadius-e.radiusLength*t.index,t.innerRadius=t.outerRadius-e.radiusLength},updateElement:function(t,e,i){var n=this,a=n.chart,o=n.getDataset(),r=a.options,s=r.animation,l=a.scale,d=a.data.labels,u=l.xCenter,h=l.yCenter,c=r.startAngle,f=t.hidden?0:l.getDistanceFromCenterForValue(o.data[e]),g=n._starts[e],p=g+(t.hidden?0:n._angles[e]),m=s.animateScale?0:l.getDistanceFromCenterForValue(o.data[e]),v=t._options||{};ut.extend(t,{_datasetIndex:n.index,_index:e,_scale:l,_model:{backgroundColor:v.backgroundColor,borderColor:v.borderColor,borderWidth:v.borderWidth,borderAlign:v.borderAlign,x:u,y:h,innerRadius:0,outerRadius:i?m:f,startAngle:i&&s.animateRotate?c:g,endAngle:i&&s.animateRotate?c:p,label:ut.valueAtIndexOrDefault(d,e,d[e])}}),t.pivot()},countVisibleElements:function(){var t=this.getDataset(),e=this.getMeta(),i=0;return ut.each(e.data,function(e,n){isNaN(t.data[n])||e.hidden||i++}),i},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor,a=ut.valueOrDefault;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=a(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=a(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=a(i.hoverBorderWidth,i.borderWidth)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=this.getDataset(),s=t.custom||{},l=o.options.elements.arc,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=ae([s[a],r[a],l[a]],u,e);return d},_computeAngle:function(t){var e=this,i=this.getMeta().count,n=e.getDataset(),a=e.getMeta();if(isNaN(n.data[t])||a.data[t].hidden)return 0;var o={chart:e.chart,dataIndex:t,dataset:n,datasetIndex:e.index};return ae([e.chart.options.elements.arc.angle,2*Math.PI/i],o,t)}});st._set("pie",ut.clone(st.doughnut)),st._set("pie",{cutoutPercentage:0});var re=$t,se=ut.valueOrDefault,le=ut.options.resolve;st._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}});var de=Mt.extend({datasetElementType:Wt.Line,dataElementType:Wt.Point,linkScales:ut.noop,update:function(t){var e,i,n=this,a=n.getMeta(),o=a.dataset,r=a.data||[],s=n.chart.scale,l=n.getDataset();for(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=n.index,o._children=r,o._loop=!0,o._model=n._resolveLineOptions(o),o.pivot(),e=0,i=r.length;e<i;++e)n.updateElement(r[e],e,t);for(n.updateBezierControlPoints(),e=0,i=r.length;e<i;++e)r[e].pivot()},updateElement:function(t,e,i){var n=this,a=t.custom||{},o=n.getDataset(),r=n.chart.scale,s=r.getPointPositionForValue(e,o.data[e]),l=n._resolvePointOptions(t,e),d=n.getMeta().dataset._model,u=i?r.xCenter:s.x,h=i?r.yCenter:s.y;t._scale=r,t._options=l,t._datasetIndex=n.index,t._index=e,t._model={x:u,y:h,skip:a.skip||isNaN(u)||isNaN(h),radius:l.radius,pointStyle:l.pointStyle,rotation:l.rotation,backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,tension:se(a.tension,d?d.tension:0),hitRadius:l.hitRadius}},_resolvePointOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},c=Object.keys(h);for(i=0,n=c.length;i<n;++i)d[a=c[i]]=le([s[a],r[h[a]],r[a],l[a]],u,e);return d},_resolveLineOptions:function(t){var e,i,n,a=this.chart,o=a.data.datasets[this.index],r=t.custom||{},s=a.options.elements.line,l={},d=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill"];for(e=0,i=d.length;e<i;++e)l[n=d[e]]=le([r[n],o[n],s[n]]);return l.tension=se(o.lineTension,s.tension),l},updateBezierControlPoints:function(){var t,e,i,n,a=this.getMeta(),o=this.chart.chartArea,r=a.data||[];function s(t,e,i){return Math.max(Math.min(t,i),e)}for(t=0,e=r.length;t<e;++t)i=r[t]._model,n=ut.splineCurve(ut.previousItem(r,t,!0)._model,i,ut.nextItem(r,t,!0)._model,i.tension),i.controlPointPreviousX=s(n.previous.x,o.left,o.right),i.controlPointPreviousY=s(n.previous.y,o.top,o.bottom),i.controlPointNextX=s(n.next.x,o.left,o.right),i.controlPointNextY=s(n.next.y,o.top,o.bottom)},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=se(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=se(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=se(i.hoverBorderWidth,i.borderWidth),e.radius=se(i.hoverRadius,i.radius)}});st._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}});var ue={bar:Yt,bubble:Kt,doughnut:$t,horizontalBar:Jt,line:ne,polarArea:oe,pie:re,radar:de,scatter:ne};function he(t,e){return t.native?{x:t.x,y:t.y}:ut.getRelativePosition(t,e)}function ce(t,e){var i,n,a,o,r;for(n=0,o=t.data.datasets.length;n<o;++n)if(t.isDatasetVisible(n))for(a=0,r=(i=t.getDatasetMeta(n)).data.length;a<r;++a){var s=i.data[a];s._view.skip||e(s)}}function fe(t,e){var i=[];return ce(t,function(t){t.inRange(e.x,e.y)&&i.push(t)}),i}function ge(t,e,i,n){var a=Number.POSITIVE_INFINITY,o=[];return ce(t,function(t){if(!i||t.inRange(e.x,e.y)){var r=t.getCenterPoint(),s=n(e,r);s<a?(o=[t],a=s):s===a&&o.push(t)}}),o}function pe(t){var e=-1!==t.indexOf("x"),i=-1!==t.indexOf("y");return function(t,n){var a=e?Math.abs(t.x-n.x):0,o=i?Math.abs(t.y-n.y):0;return Math.sqrt(Math.pow(a,2)+Math.pow(o,2))}}function me(t,e,i){var n=he(e,t);i.axis=i.axis||"x";var a=pe(i.axis),o=i.intersect?fe(t,n):ge(t,n,!1,a),r=[];return o.length?(t.data.datasets.forEach(function(e,i){if(t.isDatasetVisible(i)){var n=t.getDatasetMeta(i).data[o[0]._index];n&&!n._view.skip&&r.push(n)}}),r):[]}var ve={modes:{single:function(t,e){var i=he(e,t),n=[];return ce(t,function(t){if(t.inRange(i.x,i.y))return n.push(t),n}),n.slice(0,1)},label:me,index:me,dataset:function(t,e,i){var n=he(e,t);i.axis=i.axis||"xy";var a=pe(i.axis),o=i.intersect?fe(t,n):ge(t,n,!1,a);return o.length>0&&(o=t.getDatasetMeta(o[0]._datasetIndex).data),o},"x-axis":function(t,e){return me(t,e,{intersect:!1})},point:function(t,e){return fe(t,he(e,t))},nearest:function(t,e,i){var n=he(e,t);i.axis=i.axis||"xy";var a=pe(i.axis);return ge(t,n,i.intersect,a)},x:function(t,e,i){var n=he(e,t),a=[],o=!1;return ce(t,function(t){t.inXRange(n.x)&&a.push(t),t.inRange(n.x,n.y)&&(o=!0)}),i.intersect&&!o&&(a=[]),a},y:function(t,e,i){var n=he(e,t),a=[],o=!1;return ce(t,function(t){t.inYRange(n.y)&&a.push(t),t.inRange(n.x,n.y)&&(o=!0)}),i.intersect&&!o&&(a=[]),a}}};function be(t,e){return ut.where(t,function(t){return t.position===e})}function xe(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,i){var n=e?i:t,a=e?t:i;return n.weight===a.weight?n._tmpIndex_-a._tmpIndex_:n.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}function ye(t,e){ut.each(t,function(t){e[t.position]+=t.isHorizontal()?t.height:t.width})}st._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var ke={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure:function(t,e,i){for(var n,a=["fullWidth","position","weight"],o=a.length,r=0;r<o;++r)n=a[r],i.hasOwnProperty(n)&&(e[n]=i[n])},update:function(t,e,i){if(t){var n=t.options.layout||{},a=ut.options.toPadding(n.padding),o=a.left,r=a.right,s=a.top,l=a.bottom,d=be(t.boxes,"left"),u=be(t.boxes,"right"),h=be(t.boxes,"top"),c=be(t.boxes,"bottom"),f=be(t.boxes,"chartArea");xe(d,!0),xe(u,!1),xe(h,!0),xe(c,!1);var g,p=d.concat(u),m=h.concat(c),v=p.concat(m),b=e-o-r,x=i-s-l,y=(e-b/2)/p.length,k=b,w=x,M={top:s,left:o,bottom:l,right:r},_=[];ut.each(v,function(t){var e,i=t.isHorizontal();i?(e=t.update(t.fullWidth?b:k,x/2),w-=e.height):(e=t.update(y,w),k-=e.width),_.push({horizontal:i,width:e.width,box:t})}),g=function(t){var e=0,i=0,n=0,a=0;return ut.each(t,function(t){if(t.getPadding){var o=t.getPadding();e=Math.max(e,o.top),i=Math.max(i,o.left),n=Math.max(n,o.bottom),a=Math.max(a,o.right)}}),{top:e,left:i,bottom:n,right:a}}(v),ut.each(p,T),ye(p,M),ut.each(m,T),ye(m,M),ut.each(p,function(t){var e=ut.findNextWhere(_,function(e){return e.box===t}),i={left:0,right:0,top:M.top,bottom:M.bottom};e&&t.update(e.width,w,i)}),ye(v,M={top:s,left:o,bottom:l,right:r});var C=Math.max(g.left-M.left,0);M.left+=C,M.right+=Math.max(g.right-M.right,0);var S=Math.max(g.top-M.top,0);M.top+=S,M.bottom+=Math.max(g.bottom-M.bottom,0);var P=i-M.top-M.bottom,I=e-M.left-M.right;I===k&&P===w||(ut.each(p,function(t){t.height=P}),ut.each(m,function(t){t.fullWidth||(t.width=I)}),w=P,k=I);var A=o+C,D=s+S;ut.each(d.concat(h),F),A+=k,D+=w,ut.each(u,F),ut.each(c,F),t.chartArea={left:M.left,top:M.top,right:M.left+k,bottom:M.top+w},ut.each(f,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(k,w)})}function T(t){var e=ut.findNextWhere(_,function(e){return e.box===t});if(e)if(e.horizontal){var i={left:Math.max(M.left,g.left),right:Math.max(M.right,g.right),top:0,bottom:0};t.update(t.fullWidth?b:k,x/2,i)}else t.update(e.width,w)}function F(t){t.isHorizontal()?(t.left=t.fullWidth?o:M.left,t.right=t.fullWidth?e-r:M.left+k,t.top=D,t.bottom=D+t.height,D=t.bottom):(t.left=A,t.right=A+t.width,t.top=M.top,t.bottom=M.top+w,A=t.right)}}};var we,Me=(we=Object.freeze({default:"@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&we.default||we,_e="$chartjs",Ce="chartjs-size-monitor",Se="chartjs-render-monitor",Pe="chartjs-render-animation",Ie=["animationstart","webkitAnimationStart"],Ae={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function De(t,e){var i=ut.getStyle(t,e),n=i&&i.match(/^(\d+)(\.\d+)?px$/);return n?Number(n[1]):void 0}var Te=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function Fe(t,e,i){t.addEventListener(e,i,Te)}function Le(t,e,i){t.removeEventListener(e,i,Te)}function Re(t,e,i,n,a){return{type:t,chart:e,native:a||null,x:void 0!==i?i:null,y:void 0!==n?n:null}}function Oe(t){var e=document.createElement("div");return e.className=t||"",e}function ze(t,e,i){var n,a,o,r,s=t[_e]||(t[_e]={}),l=s.resizer=function(t){var e=Oe(Ce),i=Oe(Ce+"-expand"),n=Oe(Ce+"-shrink");i.appendChild(Oe()),n.appendChild(Oe()),e.appendChild(i),e.appendChild(n),e._reset=function(){i.scrollLeft=1e6,i.scrollTop=1e6,n.scrollLeft=1e6,n.scrollTop=1e6};var a=function(){e._reset(),t()};return Fe(i,"scroll",a.bind(i,"expand")),Fe(n,"scroll",a.bind(n,"shrink")),e}((n=function(){if(s.resizer){var n=i.options.maintainAspectRatio&&t.parentNode,a=n?n.clientWidth:0;e(Re("resize",i)),n&&n.clientWidth<a&&i.canvas&&e(Re("resize",i))}},o=!1,r=[],function(){r=Array.prototype.slice.call(arguments),a=a||this,o||(o=!0,ut.requestAnimFrame.call(window,function(){o=!1,n.apply(a,r)}))}));!function(t,e){var i=t[_e]||(t[_e]={}),n=i.renderProxy=function(t){t.animationName===Pe&&e()};ut.each(Ie,function(e){Fe(t,e,n)}),i.reflow=!!t.offsetParent,t.classList.add(Se)}(t,function(){if(s.resizer){var e=t.parentNode;e&&e!==l.parentNode&&e.insertBefore(l,e.firstChild),l._reset()}})}function Be(t){var e=t[_e]||{},i=e.resizer;delete e.resizer,function(t){var e=t[_e]||{},i=e.renderProxy;i&&(ut.each(Ie,function(e){Le(t,e,i)}),delete e.renderProxy),t.classList.remove(Se)}(t),i&&i.parentNode&&i.parentNode.removeChild(i)}var Ne={disableCSSInjection:!1,_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,_ensureLoaded:function(){var t,e,i;this._loaded||(this._loaded=!0,this.disableCSSInjection||(e=Me,i=(t=this)._style||document.createElement("style"),t._style||(t._style=i,e="/* Chart.js */\n"+e,i.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(i)),i.appendChild(document.createTextNode(e))))},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext("2d");return this._ensureLoaded(),i&&i.canvas===t?(function(t,e){var i=t.style,n=t.getAttribute("height"),a=t.getAttribute("width");if(t[_e]={initial:{height:n,width:a,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",null===a||""===a){var o=De(t,"width");void 0!==o&&(t.width=o)}if(null===n||""===n)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var r=De(t,"height");void 0!==o&&(t.height=r)}}(t,e),i):null},releaseContext:function(t){var e=t.canvas;if(e[_e]){var i=e[_e].initial;["height","width"].forEach(function(t){var n=i[t];ut.isNullOrUndef(n)?e.removeAttribute(t):e.setAttribute(t,n)}),ut.each(i.style||{},function(t,i){e.style[i]=t}),e.width=e.width,delete e[_e]}},addEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=i[_e]||(i[_e]={});Fe(n,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){i(function(t,e){var i=Ae[t.type]||t.type,n=ut.getRelativePosition(t,e);return Re(i,e,n.x,n.y,t)}(e,t))})}else ze(n,i,t)},removeEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=((i[_e]||{}).proxies||{})[t.id+"_"+e];a&&Le(n,e,a)}else Be(n)}};ut.addEvent=Fe,ut.removeEvent=Le;var We=Ne._enabled?Ne:{acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}},Ve=ut.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},We);st._set("global",{plugins:{}});var Ee={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var i=e.indexOf(t);-1!==i&&e.splice(i,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,i){var n,a,o,r,s,l=this.descriptors(t),d=l.length;for(n=0;n<d;++n)if("function"==typeof(s=(o=(a=l[n]).plugin)[e])&&((r=[t].concat(i||[])).push(a.options),!1===s.apply(o,r)))return!1;return!0},descriptors:function(t){var e=t.$plugins||(t.$plugins={});if(e.id===this._cacheId)return e.descriptors;var i=[],n=[],a=t&&t.config||{},o=a.options&&a.options.plugins||{};return this._plugins.concat(a.plugins||[]).forEach(function(t){if(-1===i.indexOf(t)){var e=t.id,a=o[e];!1!==a&&(!0===a&&(a=ut.clone(st.global.plugins[e])),i.push(t),n.push({plugin:t,options:a||{}}))}}),e.descriptors=n,e.id=this._cacheId,n},_invalidate:function(t){delete t.$plugins}},He={constructors:{},defaults:{},registerScaleType:function(t,e,i){this.constructors[t]=e,this.defaults[t]=ut.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?ut.merge({},[st.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=ut.extend(this.defaults[t],e))},addScalesToLayout:function(t){ut.each(t.scales,function(e){e.fullWidth=e.options.fullWidth,e.position=e.options.position,e.weight=e.options.weight,ke.addBox(t,e)})}},je=ut.valueOrDefault;st._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:ut.noop,title:function(t,e){var i="",n=e.labels,a=n?n.length:0;if(t.length>0){var o=t[0];o.label?i=o.label:o.xLabel?i=o.xLabel:a>0&&o.index<a&&(i=n[o.index])}return i},afterTitle:ut.noop,beforeBody:ut.noop,beforeLabel:ut.noop,label:function(t,e){var i=e.datasets[t.datasetIndex].label||"";return i&&(i+=": "),ut.isNullOrUndef(t.value)?i+=t.yLabel:i+=t.value,i},labelColor:function(t,e){var i=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:i.borderColor,backgroundColor:i.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:ut.noop,afterBody:ut.noop,beforeFooter:ut.noop,footer:ut.noop,afterFooter:ut.noop}}});var qe={average:function(t){if(!t.length)return!1;var e,i,n=0,a=0,o=0;for(e=0,i=t.length;e<i;++e){var r=t[e];if(r&&r.hasValue()){var s=r.tooltipPosition();n+=s.x,a+=s.y,++o}}return{x:n/o,y:a/o}},nearest:function(t,e){var i,n,a,o=e.x,r=e.y,s=Number.POSITIVE_INFINITY;for(i=0,n=t.length;i<n;++i){var l=t[i];if(l&&l.hasValue()){var d=l.getCenterPoint(),u=ut.distanceBetweenPoints(e,d);u<s&&(s=u,a=l)}}if(a){var h=a.tooltipPosition();o=h.x,r=h.y}return{x:o,y:r}}};function Ye(t,e){return e&&(ut.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Ue(t){return("string"==typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function Xe(t){var e=st.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:je(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:je(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:je(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:je(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:je(t.titleFontStyle,e.defaultFontStyle),titleFontSize:je(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:je(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:je(t.footerFontStyle,e.defaultFontStyle),footerFontSize:je(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function Ke(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function Ge(t){return Ye([],Ue(t))}var Ze=pt.extend({initialize:function(){this._model=Xe(this._options),this._lastActive=[]},getTitle:function(){var t=this._options.callbacks,e=t.beforeTitle.apply(this,arguments),i=t.title.apply(this,arguments),n=t.afterTitle.apply(this,arguments),a=[];return a=Ye(a,Ue(e)),a=Ye(a,Ue(i)),a=Ye(a,Ue(n))},getBeforeBody:function(){return Ge(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var i=this,n=i._options.callbacks,a=[];return ut.each(t,function(t){var o={before:[],lines:[],after:[]};Ye(o.before,Ue(n.beforeLabel.call(i,t,e))),Ye(o.lines,n.label.call(i,t,e)),Ye(o.after,Ue(n.afterLabel.call(i,t,e))),a.push(o)}),a},getAfterBody:function(){return Ge(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this._options.callbacks,e=t.beforeFooter.apply(this,arguments),i=t.footer.apply(this,arguments),n=t.afterFooter.apply(this,arguments),a=[];return a=Ye(a,Ue(e)),a=Ye(a,Ue(i)),a=Ye(a,Ue(n))},update:function(t){var e,i,n,a,o,r,s,l,d,u,h=this,c=h._options,f=h._model,g=h._model=Xe(c),p=h._active,m=h._data,v={xAlign:f.xAlign,yAlign:f.yAlign},b={x:f.x,y:f.y},x={width:f.width,height:f.height},y={x:f.caretX,y:f.caretY};if(p.length){g.opacity=1;var k=[],w=[];y=qe[c.position].call(h,p,h._eventPosition);var M=[];for(e=0,i=p.length;e<i;++e)M.push((n=p[e],a=void 0,o=void 0,r=void 0,s=void 0,l=void 0,d=void 0,u=void 0,a=n._xScale,o=n._yScale||n._scale,r=n._index,s=n._datasetIndex,l=n._chart.getDatasetMeta(s).controller,d=l._getIndexScale(),u=l._getValueScale(),{xLabel:a?a.getLabelForIndex(r,s):"",yLabel:o?o.getLabelForIndex(r,s):"",label:d?""+d.getLabelForIndex(r,s):"",value:u?""+u.getLabelForIndex(r,s):"",index:r,datasetIndex:s,x:n._model.x,y:n._model.y}));c.filter&&(M=M.filter(function(t){return c.filter(t,m)})),c.itemSort&&(M=M.sort(function(t,e){return c.itemSort(t,e,m)})),ut.each(M,function(t){k.push(c.callbacks.labelColor.call(h,t,h._chart)),w.push(c.callbacks.labelTextColor.call(h,t,h._chart))}),g.title=h.getTitle(M,m),g.beforeBody=h.getBeforeBody(M,m),g.body=h.getBody(M,m),g.afterBody=h.getAfterBody(M,m),g.footer=h.getFooter(M,m),g.x=y.x,g.y=y.y,g.caretPadding=c.caretPadding,g.labelColors=k,g.labelTextColors=w,g.dataPoints=M,x=function(t,e){var i=t._chart.ctx,n=2*e.yPadding,a=0,o=e.body,r=o.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);r+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,l=e.footer.length,d=e.titleFontSize,u=e.bodyFontSize,h=e.footerFontSize;n+=s*d,n+=s?(s-1)*e.titleSpacing:0,n+=s?e.titleMarginBottom:0,n+=r*u,n+=r?(r-1)*e.bodySpacing:0,n+=l?e.footerMarginTop:0,n+=l*h,n+=l?(l-1)*e.footerSpacing:0;var c=0,f=function(t){a=Math.max(a,i.measureText(t).width+c)};return i.font=ut.fontString(d,e._titleFontStyle,e._titleFontFamily),ut.each(e.title,f),i.font=ut.fontString(u,e._bodyFontStyle,e._bodyFontFamily),ut.each(e.beforeBody.concat(e.afterBody),f),c=e.displayColors?u+2:0,ut.each(o,function(t){ut.each(t.before,f),ut.each(t.lines,f),ut.each(t.after,f)}),c=0,i.font=ut.fontString(h,e._footerFontStyle,e._footerFontFamily),ut.each(e.footer,f),{width:a+=2*e.xPadding,height:n}}(this,g),b=function(t,e,i,n){var a=t.x,o=t.y,r=t.caretSize,s=t.caretPadding,l=t.cornerRadius,d=i.xAlign,u=i.yAlign,h=r+s,c=l+s;return"right"===d?a-=e.width:"center"===d&&((a-=e.width/2)+e.width>n.width&&(a=n.width-e.width),a<0&&(a=0)),"top"===u?o+=h:o-="bottom"===u?e.height+h:e.height/2,"center"===u?"left"===d?a+=h:"right"===d&&(a-=h):"left"===d?a-=c:"right"===d&&(a+=c),{x:a,y:o}}(g,x,v=function(t,e){var i,n,a,o,r,s=t._model,l=t._chart,d=t._chart.chartArea,u="center",h="center";s.y<e.height?h="top":s.y>l.height-e.height&&(h="bottom");var c=(d.left+d.right)/2,f=(d.top+d.bottom)/2;"center"===h?(i=function(t){return t<=c},n=function(t){return t>c}):(i=function(t){return t<=e.width/2},n=function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},o=function(t){return t-e.width-s.caretSize-s.caretPadding<0},r=function(t){return t<=f?"top":"bottom"},i(s.x)?(u="left",a(s.x)&&(u="center",h=r(s.y))):n(s.x)&&(u="right",o(s.x)&&(u="center",h=r(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:u,yAlign:g.yAlign?g.yAlign:h}}(this,x),h._chart)}else g.opacity=0;return g.xAlign=v.xAlign,g.yAlign=v.yAlign,g.x=b.x,g.y=b.y,g.width=x.width,g.height=x.height,g.caretX=y.x,g.caretY=y.y,h._model=g,t&&c.custom&&c.custom.call(h,g),h},drawCaret:function(t,e){var i=this._chart.ctx,n=this._view,a=this.getCaretPosition(t,e,n);i.lineTo(a.x1,a.y1),i.lineTo(a.x2,a.y2),i.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,i){var n,a,o,r,s,l,d=i.caretSize,u=i.cornerRadius,h=i.xAlign,c=i.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if("center"===c)s=g+m/2,"left"===h?(a=(n=f)-d,o=n,r=s+d,l=s-d):(a=(n=f+p)+d,o=n,r=s-d,l=s+d);else if("left"===h?(n=(a=f+u+d)-d,o=a+d):"right"===h?(n=(a=f+p-u-d)-d,o=a+d):(n=(a=i.caretX)-d,o=a+d),"top"===c)s=(r=g)-d,l=r;else{s=(r=g+m)+d,l=r;var v=o;o=n,n=v}return{x1:n,x2:a,x3:o,y1:r,y2:s,y3:l}},drawTitle:function(t,e,i){var n=e.title;if(n.length){t.x=Ke(e,e._titleAlign),i.textAlign=e._titleAlign,i.textBaseline="top";var a,o,r=e.titleFontSize,s=e.titleSpacing;for(i.fillStyle=e.titleFontColor,i.font=ut.fontString(r,e._titleFontStyle,e._titleFontFamily),a=0,o=n.length;a<o;++a)i.fillText(n[a],t.x,t.y),t.y+=r+s,a+1===n.length&&(t.y+=e.titleMarginBottom-s)}},drawBody:function(t,e,i){var n,a=e.bodyFontSize,o=e.bodySpacing,r=e._bodyAlign,s=e.body,l=e.displayColors,d=e.labelColors,u=0,h=l?Ke(e,"left"):0;i.textAlign=r,i.textBaseline="top",i.font=ut.fontString(a,e._bodyFontStyle,e._bodyFontFamily),t.x=Ke(e,r);var c=function(e){i.fillText(e,t.x+u,t.y),t.y+=a+o};i.fillStyle=e.bodyFontColor,ut.each(e.beforeBody,c),u=l&&"right"!==r?"center"===r?a/2+1:a+2:0,ut.each(s,function(o,r){n=e.labelTextColors[r],i.fillStyle=n,ut.each(o.before,c),ut.each(o.lines,function(o){l&&(i.fillStyle=e.legendColorBackground,i.fillRect(h,t.y,a,a),i.lineWidth=1,i.strokeStyle=d[r].borderColor,i.strokeRect(h,t.y,a,a),i.fillStyle=d[r].backgroundColor,i.fillRect(h+1,t.y+1,a-2,a-2),i.fillStyle=n),c(o)}),ut.each(o.after,c)}),u=0,ut.each(e.afterBody,c),t.y-=o},drawFooter:function(t,e,i){var n=e.footer;n.length&&(t.x=Ke(e,e._footerAlign),t.y+=e.footerMarginTop,i.textAlign=e._footerAlign,i.textBaseline="top",i.fillStyle=e.footerFontColor,i.font=ut.fontString(e.footerFontSize,e._footerFontStyle,e._footerFontFamily),ut.each(n,function(n){i.fillText(n,t.x,t.y),t.y+=e.footerFontSize+e.footerSpacing}))},drawBackground:function(t,e,i,n){i.fillStyle=e.backgroundColor,i.strokeStyle=e.borderColor,i.lineWidth=e.borderWidth;var a=e.xAlign,o=e.yAlign,r=t.x,s=t.y,l=n.width,d=n.height,u=e.cornerRadius;i.beginPath(),i.moveTo(r+u,s),"top"===o&&this.drawCaret(t,n),i.lineTo(r+l-u,s),i.quadraticCurveTo(r+l,s,r+l,s+u),"center"===o&&"right"===a&&this.drawCaret(t,n),i.lineTo(r+l,s+d-u),i.quadraticCurveTo(r+l,s+d,r+l-u,s+d),"bottom"===o&&this.drawCaret(t,n),i.lineTo(r+u,s+d),i.quadraticCurveTo(r,s+d,r,s+d-u),"center"===o&&"left"===a&&this.drawCaret(t,n),i.lineTo(r,s+u),i.quadraticCurveTo(r,s,r+u,s),i.closePath(),i.fill(),e.borderWidth>0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var i={width:e.width,height:e.height},n={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(t.save(),t.globalAlpha=a,this.drawBackground(n,e,t,i),n.y+=e.yPadding,this.drawTitle(n,e,t),this.drawBody(n,e,t),this.drawFooter(n,e,t),t.restore())}},handleEvent:function(t){var e,i=this,n=i._options;return i._lastActive=i._lastActive||[],"mouseout"===t.type?i._active=[]:i._active=i._chart.getElementsAtEventForMode(t,n.mode,n),(e=!ut.arrayEquals(i._active,i._lastActive))&&(i._lastActive=i._active,(n.enabled||n.custom)&&(i._eventPosition={x:t.x,y:t.y},i.update(!0),i.pivot())),e}}),$e=qe,Je=Ze;Je.positioners=$e;var Qe=ut.valueOrDefault;function ti(){return ut.merge({},[].slice.call(arguments),{merger:function(t,e,i,n){if("xAxes"===t||"yAxes"===t){var a,o,r,s=i[t].length;for(e[t]||(e[t]=[]),a=0;a<s;++a)r=i[t][a],o=Qe(r.type,"xAxes"===t?"category":"linear"),a>=e[t].length&&e[t].push({}),!e[t][a].type||r.type&&r.type!==e[t][a].type?ut.merge(e[t][a],[He.getScaleDefaults(o),r]):ut.merge(e[t][a],r)}else ut._merger(t,e,i,n)}})}function ei(){return ut.merge({},[].slice.call(arguments),{merger:function(t,e,i,n){var a=e[t]||{},o=i[t];"scales"===t?e[t]=ti(a,o):"scale"===t?e[t]=ut.merge(a,[He.getScaleDefaults(o.type),o]):ut._merger(t,e,i,n)}})}function ii(t){return"top"===t||"bottom"===t}st._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var ni=function(t,e){return this.construct(t,e),this};ut.extend(ni.prototype,{construct:function(t,e){var i=this;e=function(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=ei(st.global,st[t.type],t.options||{}),t}(e);var n=Ve.acquireContext(t,e),a=n&&n.canvas,o=a&&a.height,r=a&&a.width;i.id=ut.uid(),i.ctx=n,i.canvas=a,i.config=e,i.width=r,i.height=o,i.aspectRatio=o?r/o:null,i.options=e.options,i._bufferedRender=!1,i.chart=i,i.controller=i,ni.instances[i.id]=i,Object.defineProperty(i,"data",{get:function(){return i.config.data},set:function(t){i.config.data=t}}),n&&a?(i.initialize(),i.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return Ee.notify(t,"beforeInit"),ut.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),Ee.notify(t,"afterInit"),t},clear:function(){return ut.canvas.clear(this),this},stop:function(){return bt.cancelAnimation(this),this},resize:function(t){var e=this,i=e.options,n=e.canvas,a=i.maintainAspectRatio&&e.aspectRatio||null,o=Math.max(0,Math.floor(ut.getMaximumWidth(n))),r=Math.max(0,Math.floor(a?o/a:ut.getMaximumHeight(n)));if((e.width!==o||e.height!==r)&&(n.width=e.width=o,n.height=e.height=r,n.style.width=o+"px",n.style.height=r+"px",ut.retinaScale(e,i.devicePixelRatio),!t)){var s={width:o,height:r};Ee.notify(e,"resize",[s]),i.onResize&&i.onResize(e,s),e.stop(),e.update({duration:i.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},i=t.scale;ut.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),ut.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,i=t.scales||{},n=[],a=Object.keys(i).reduce(function(t,e){return t[e]=!1,t},{});e.scales&&(n=n.concat((e.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(e.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),e.scale&&n.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),ut.each(n,function(e){var n=e.options,o=n.id,r=Qe(n.type,e.dtype);ii(n.position)!==ii(e.dposition)&&(n.position=e.dposition),a[o]=!0;var s=null;if(o in i&&i[o].type===r)(s=i[o]).options=n,s.ctx=t.ctx,s.chart=t;else{var l=He.getScaleConstructor(r);if(!l)return;s=new l({id:o,type:r,options:n,ctx:t.ctx,chart:t}),i[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)}),ut.each(a,function(t,e){t||delete i[e]}),t.scales=i,He.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t=this,e=[];return ut.each(t.data.datasets,function(i,n){var a=t.getDatasetMeta(n),o=i.type||t.config.type;if(a.type&&a.type!==o&&(t.destroyDatasetMeta(n),a=t.getDatasetMeta(n)),a.type=o,a.controller)a.controller.updateIndex(n),a.controller.linkScales();else{var r=ue[a.type];if(void 0===r)throw new Error('"'+a.type+'" is not a chart type.');a.controller=new r(t,n),e.push(a.controller)}},t),e},resetElements:function(){var t=this;ut.each(t.data.datasets,function(e,i){t.getDatasetMeta(i).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e,i,n=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),i=(e=n).options,ut.each(e.scales,function(t){ke.removeBox(e,t)}),i=ei(st.global,st[e.config.type],i),e.options=e.config.options=i,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=i.tooltips,e.tooltip.initialize(),Ee._invalidate(n),!1!==Ee.notify(n,"beforeUpdate")){n.tooltip._data=n.data;var a=n.buildOrUpdateControllers();ut.each(n.data.datasets,function(t,e){n.getDatasetMeta(e).controller.buildOrUpdateElements()},n),n.updateLayout(),n.options.animation&&n.options.animation.duration&&ut.each(a,function(t){t.reset()}),n.updateDatasets(),n.tooltip.initialize(),n.lastActive=[],Ee.notify(n,"afterUpdate"),n._bufferedRender?n._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:n.render(t)}},updateLayout:function(){!1!==Ee.notify(this,"beforeLayout")&&(ke.update(this,this.width,this.height),Ee.notify(this,"afterScaleUpdate"),Ee.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==Ee.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t<e;++t)this.updateDataset(t);Ee.notify(this,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this.getDatasetMeta(t),i={meta:e,index:t};!1!==Ee.notify(this,"beforeDatasetUpdate",[i])&&(e.controller.update(),Ee.notify(this,"afterDatasetUpdate",[i]))},render:function(t){var e=this;t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]});var i=e.options.animation,n=Qe(t.duration,i&&i.duration),a=t.lazy;if(!1!==Ee.notify(e,"beforeRender")){var o=function(t){Ee.notify(e,"afterRender"),ut.callback(i&&i.onComplete,[t],e)};if(i&&n){var r=new vt({numSteps:n/16.66,easing:t.easing||i.easing,render:function(t,e){var i=ut.easing.effects[e.easing],n=e.currentStep,a=n/e.numSteps;t.draw(i(a),a,n)},onAnimationProgress:i.onProgress,onAnimationComplete:o});bt.addAnimation(e,r,n,a)}else e.draw(),o(new vt({numSteps:0,chart:e}));return e}},draw:function(t){var e=this;e.clear(),ut.isNullOrUndef(t)&&(t=1),e.transition(t),e.width<=0||e.height<=0||!1!==Ee.notify(e,"beforeDraw",[t])&&(ut.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.drawDatasets(t),e._drawTooltip(t),Ee.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=0,i=(this.data.datasets||[]).length;e<i;++e)this.isDatasetVisible(e)&&this.getDatasetMeta(e).controller.transition(t);this.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==Ee.notify(e,"beforeDatasetsDraw",[t])){for(var i=(e.data.datasets||[]).length-1;i>=0;--i)e.isDatasetVisible(i)&&e.drawDataset(i,t);Ee.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var i=this.getDatasetMeta(t),n={meta:i,index:t,easingValue:e};!1!==Ee.notify(this,"beforeDatasetDraw",[n])&&(i.controller.draw(e),Ee.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(t){var e=this.tooltip,i={tooltip:e,easingValue:t};!1!==Ee.notify(this,"beforeTooltipDraw",[i])&&(e.draw(),Ee.notify(this,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return ve.modes.single(this,t)},getElementsAtEvent:function(t){return ve.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return ve.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,i){var n=ve.modes[e];return"function"==typeof n?n(this,t,i):[]},getDatasetAtEvent:function(t){return ve.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var i=e._meta[this.id];return i||(i=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,i=this.data.datasets.length;e<i;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,i=this.data.datasets[t],n=i._meta&&i._meta[e];n&&(n.controller.destroy(),delete i._meta[e])},destroy:function(){var t,e,i=this,n=i.canvas;for(i.stop(),t=0,e=i.data.datasets.length;t<e;++t)i.destroyDatasetMeta(t);n&&(i.unbindEvents(),ut.canvas.clear(i),Ve.releaseContext(i.ctx),i.canvas=null,i.ctx=null),Ee.notify(i,"destroy"),delete ni.instances[i.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var t=this;t.tooltip=new Je({_chart:t,_chartInstance:t,_data:t.data,_options:t.options.tooltips},t)},bindEvents:function(){var t=this,e=t._listeners={},i=function(){t.eventHandler.apply(t,arguments)};ut.each(t.options.events,function(n){Ve.addEventListener(t,n,i),e[n]=i}),t.options.responsive&&(i=function(){t.resize()},Ve.addEventListener(t,"resize",i),e.resize=i)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,ut.each(e,function(e,i){Ve.removeEventListener(t,i,e)}))},updateHoverStyle:function(t,e,i){var n,a,o,r=i?"setHoverStyle":"removeHoverStyle";for(a=0,o=t.length;a<o;++a)(n=t[a])&&this.getDatasetMeta(n._datasetIndex).controller[r](n)},eventHandler:function(t){var e=this,i=e.tooltip;if(!1!==Ee.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var n=e.handleEvent(t);i&&(n=i._start?i.handleEvent(t):n|i.handleEvent(t)),Ee.notify(e,"afterEvent",[t]);var a=e._bufferedRequest;return a?e.render(a):n&&!e.animating&&(e.stop(),e.render({duration:e.options.hover.animationDuration,lazy:!0})),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e,i=this,n=i.options||{},a=n.hover;return i.lastActive=i.lastActive||[],"mouseout"===t.type?i.active=[]:i.active=i.getElementsAtEventForMode(t,a.mode,a),ut.callback(n.onHover||n.hover.onHover,[t.native,i.active],i),"mouseup"!==t.type&&"click"!==t.type||n.onClick&&n.onClick.call(i,t.native,i.active),i.lastActive.length&&i.updateHoverStyle(i.lastActive,a.mode,!1),i.active.length&&a.mode&&i.updateHoverStyle(i.active,a.mode,!0),e=!ut.arrayEquals(i.active,i.lastActive),i.lastActive=i.active,e}}),ni.instances={};var ai=ni;ni.Controller=ni,ni.types={},ut.configMerge=ei,ut.scaleMerge=ti;function oi(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function ri(t){this.options=t||{}}ut.extend(ri.prototype,{formats:oi,parse:oi,format:oi,add:oi,diff:oi,startOf:oi,endOf:oi,_create:function(t){return t}}),ri.override=function(t){ut.extend(ri.prototype,t)};var si={_date:ri},li={formatters:{values:function(t){return ut.isArray(t)?t:""+t},linear:function(t,e,i){var n=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(n)>1&&t!==Math.floor(t)&&(n=t-Math.floor(t));var a=ut.log10(Math.abs(n)),o="";if(0!==t)if(Math.max(Math.abs(i[0]),Math.abs(i[i.length-1]))<1e-4){var r=ut.log10(Math.abs(t));o=t.toExponential(Math.floor(r)-Math.floor(a))}else{var s=-1*Math.floor(a);s=Math.max(Math.min(s,20),0),o=t.toFixed(s)}else o="0";return o},logarithmic:function(t,e,i){var n=t/Math.pow(10,Math.floor(ut.log10(t)));return 0===t?"0":1===n||2===n||5===n||0===e||e===i.length-1?t.toExponential():""}}},di=ut.valueOrDefault,ui=ut.valueAtIndexOrDefault;function hi(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(t[e].label);return n}function ci(t,e,i){return ut.isArray(e)?ut.longestText(t,i,e):t.measureText(e).width}st._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:li.formatters.values,minor:{},major:{}}});var fi=pt.extend({getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;for(var e in!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1}),t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){ut.callback(this.options.beforeUpdate,[this])},update:function(t,e,i){var n,a,o,r,s,l,d=this;for(d.beforeUpdate(),d.maxWidth=t,d.maxHeight=e,d.margins=ut.extend({left:0,right:0,top:0,bottom:0},i),d._maxLabelLines=0,d.longestLabelWidth=0,d.longestTextCache=d.longestTextCache||{},d.beforeSetDimensions(),d.setDimensions(),d.afterSetDimensions(),d.beforeDataLimits(),d.determineDataLimits(),d.afterDataLimits(),d.beforeBuildTicks(),s=d.buildTicks()||[],s=d.afterBuildTicks(s)||s,d.beforeTickToLabelConversion(),o=d.convertTicksToLabels(s)||d.ticks,d.afterTickToLabelConversion(),d.ticks=o,n=0,a=o.length;n<a;++n)r=o[n],(l=s[n])?l.label=r:s.push(l={label:r,major:!1});return d._ticks=s,d.beforeCalculateTickRotation(),d.calculateTickRotation(),d.afterCalculateTickRotation(),d.beforeFit(),d.fit(),d.afterFit(),d.afterUpdate(),d.minSize},afterUpdate:function(){ut.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){ut.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){ut.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){ut.callback(this.options.beforeDataLimits,[this])},determineDataLimits:ut.noop,afterDataLimits:function(){ut.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){ut.callback(this.options.beforeBuildTicks,[this])},buildTicks:ut.noop,afterBuildTicks:function(t){var e=this;return ut.isArray(t)&&t.length?ut.callback(e.options.afterBuildTicks,[e,t]):(e.ticks=ut.callback(e.options.afterBuildTicks,[e,e.ticks])||e.ticks,t)},beforeTickToLabelConversion:function(){ut.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this.options.ticks;this.ticks=this.ticks.map(t.userCallback||t.callback,this)},afterTickToLabelConversion:function(){ut.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){ut.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,i=t.options.ticks,n=hi(t._ticks),a=ut.options._parseFont(i);e.font=a.string;var o=i.minRotation||0;if(n.length&&t.options.display&&t.isHorizontal())for(var r,s=ut.longestText(e,a.string,n,t.longestTextCache),l=s,d=t.getPixelForTick(1)-t.getPixelForTick(0)-6;l>d&&o<i.maxRotation;){var u=ut.toRadians(o);if(r=Math.cos(u),Math.sin(u)*s>t.maxHeight){o--;break}o++,l=r*s}t.labelRotation=o},afterCalculateTickRotation:function(){ut.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){ut.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},i=hi(t._ticks),n=t.options,a=n.ticks,o=n.scaleLabel,r=n.gridLines,s=t._isVisible(),l=n.position,d=t.isHorizontal(),u=ut.options._parseFont,h=u(a),c=n.gridLines.tickMarkLength;if(e.width=d?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:s&&r.drawTicks?c:0,e.height=d?s&&r.drawTicks?c:0:t.maxHeight,o.display&&s){var f=u(o),g=ut.options.toPadding(o.padding),p=f.lineHeight+g.height;d?e.height+=p:e.width+=p}if(a.display&&s){var m=ut.longestText(t.ctx,h.string,i,t.longestTextCache),v=ut.numberOfLabelLines(i),b=.5*h.size,x=t.options.ticks.padding;if(t._maxLabelLines=v,t.longestLabelWidth=m,d){var y=ut.toRadians(t.labelRotation),k=Math.cos(y),w=Math.sin(y)*m+h.lineHeight*v+b;e.height=Math.min(t.maxHeight,e.height+w+x),t.ctx.font=h.string;var M,_,C=ci(t.ctx,i[0],h.string),S=ci(t.ctx,i[i.length-1],h.string),P=t.getPixelForTick(0)-t.left,I=t.right-t.getPixelForTick(i.length-1);0!==t.labelRotation?(M="bottom"===l?k*C:k*b,_="bottom"===l?k*b:k*S):(M=C/2,_=S/2),t.paddingLeft=Math.max(M-P,0)+3,t.paddingRight=Math.max(_-I,0)+3}else a.mirror?m=0:m+=x+b,e.width=Math.min(t.maxWidth,e.width+m),t.paddingTop=h.size/2,t.paddingBottom=h.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){ut.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(ut.isNullOrUndef(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:ut.noop,getPixelForValue:ut.noop,getValueForPixel:ut.noop,getPixelForTick:function(t){var e=this,i=e.options.offset;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(i?0:1),1),a=n*t+e.paddingLeft;i&&(a+=n/2);var o=e.left+a;return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,n=e.left+i;return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,i,n=this,a=n.isHorizontal(),o=n.options.ticks.minor,r=t.length,s=!1,l=o.maxTicksLimit,d=n._tickSize()*(r-1),u=a?n.width-(n.paddingLeft+n.paddingRight):n.height-(n.paddingTop+n.PaddingBottom),h=[];for(d>u&&(s=1+Math.floor(d/u)),r>l&&(s=Math.max(s,1+Math.floor(r/l))),e=0;e<r;e++)i=t[e],s>1&&e%s>0&&delete i.label,h.push(i);return h},_tickSize:function(){var t=this,e=t.isHorizontal(),i=t.options.ticks.minor,n=ut.toRadians(t.labelRotation),a=Math.abs(Math.cos(n)),o=Math.abs(Math.sin(n)),r=i.autoSkipPadding||0,s=t.longestLabelWidth+r||0,l=ut.options._parseFont(i),d=t._maxLabelLines*l.lineHeight+r||0;return e?d*a>s*o?s/a:d/o:d*o<s*a?d/a:s/o},_isVisible:function(){var t,e,i,n=this.chart,a=this.options.display;if("auto"!==a)return!!a;for(t=0,e=n.data.datasets.length;t<e;++t)if(n.isDatasetVisible(t)&&((i=n.getDatasetMeta(t)).xAxisID===this.id||i.yAxisID===this.id))return!0;return!1},draw:function(t){var e=this,i=e.options;if(e._isVisible()){var n,a,o,r=e.chart,s=e.ctx,l=st.global.defaultFontColor,d=i.ticks.minor,u=i.ticks.major||d,h=i.gridLines,c=i.scaleLabel,f=i.position,g=0!==e.labelRotation,p=d.mirror,m=e.isHorizontal(),v=ut.options._parseFont,b=d.display&&d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),x=di(d.fontColor,l),y=v(d),k=y.lineHeight,w=di(u.fontColor,l),M=v(u),_=d.padding,C=d.labelOffset,S=h.drawTicks?h.tickMarkLength:0,P=di(c.fontColor,l),I=v(c),A=ut.options.toPadding(c.padding),D=ut.toRadians(e.labelRotation),T=[],F=h.drawBorder?ui(h.lineWidth,0,0):0,L=ut._alignPixel;"top"===f?(n=L(r,e.bottom,F),a=e.bottom-S,o=n-F/2):"bottom"===f?(n=L(r,e.top,F),a=n+F/2,o=e.top+S):"left"===f?(n=L(r,e.right,F),a=e.right-S,o=n-F/2):(n=L(r,e.left,F),a=n+F/2,o=e.left+S);if(ut.each(b,function(n,s){if(!ut.isNullOrUndef(n.label)){var l,d,u,c,v,b,x,y,w,M,P,I,A,R,O,z,B=n.label;s===e.zeroLineIndex&&i.offset===h.offsetGridLines?(l=h.zeroLineWidth,d=h.zeroLineColor,u=h.zeroLineBorderDash||[],c=h.zeroLineBorderDashOffset||0):(l=ui(h.lineWidth,s),d=ui(h.color,s),u=h.borderDash||[],c=h.borderDashOffset||0);var N=ut.isArray(B)?B.length:1,W=function(t,e,i){var n=t.getPixelForTick(e);return i&&(1===t.getTicks().length?n-=t.isHorizontal()?Math.max(n-t.left,t.right-n):Math.max(n-t.top,t.bottom-n):n-=0===e?(t.getPixelForTick(1)-n)/2:(n-t.getPixelForTick(e-1))/2),n}(e,s,h.offsetGridLines);if(m){var V=S+_;W<e.left-1e-7&&(d="rgba(0,0,0,0)"),v=x=w=P=L(r,W,l),b=a,y=o,A=e.getPixelForTick(s)+C,"top"===f?(M=L(r,t.top,F)+F/2,I=t.bottom,O=((g?1:.5)-N)*k,z=g?"left":"center",R=e.bottom-V):(M=t.top,I=L(r,t.bottom,F)-F/2,O=(g?0:.5)*k,z=g?"right":"center",R=e.top+V)}else{var E=(p?0:S)+_;W<e.top-1e-7&&(d="rgba(0,0,0,0)"),v=a,x=o,b=y=M=I=L(r,W,l),R=e.getPixelForTick(s)+C,O=(1-N)*k/2,"left"===f?(w=L(r,t.left,F)+F/2,P=t.right,z=p?"left":"right",A=e.right-E):(w=t.left,P=L(r,t.right,F)-F/2,z=p?"right":"left",A=e.left+E)}T.push({tx1:v,ty1:b,tx2:x,ty2:y,x1:w,y1:M,x2:P,y2:I,labelX:A,labelY:R,glWidth:l,glColor:d,glBorderDash:u,glBorderDashOffset:c,rotation:-1*D,label:B,major:n.major,textOffset:O,textAlign:z})}}),ut.each(T,function(t){var e=t.glWidth,i=t.glColor;if(h.display&&e&&i&&(s.save(),s.lineWidth=e,s.strokeStyle=i,s.setLineDash&&(s.setLineDash(t.glBorderDash),s.lineDashOffset=t.glBorderDashOffset),s.beginPath(),h.drawTicks&&(s.moveTo(t.tx1,t.ty1),s.lineTo(t.tx2,t.ty2)),h.drawOnChartArea&&(s.moveTo(t.x1,t.y1),s.lineTo(t.x2,t.y2)),s.stroke(),s.restore()),d.display){s.save(),s.translate(t.labelX,t.labelY),s.rotate(t.rotation),s.font=t.major?M.string:y.string,s.fillStyle=t.major?w:x,s.textBaseline="middle",s.textAlign=t.textAlign;var n=t.label,a=t.textOffset;if(ut.isArray(n))for(var o=0;o<n.length;++o)s.fillText(""+n[o],0,a),a+=k;else s.fillText(n,0,a);s.restore()}}),c.display){var R,O,z=0,B=I.lineHeight/2;if(m)R=e.left+(e.right-e.left)/2,O="bottom"===f?e.bottom-B-A.bottom:e.top+B+A.top;else{var N="left"===f;R=N?e.left+B+A.top:e.right-B-A.top,O=e.top+(e.bottom-e.top)/2,z=N?-.5*Math.PI:.5*Math.PI}s.save(),s.translate(R,O),s.rotate(z),s.textAlign="center",s.textBaseline="middle",s.fillStyle=P,s.font=I.string,s.fillText(c.labelString,0,0),s.restore()}if(F){var W,V,E,H,j=F,q=ui(h.lineWidth,b.length-1,0);m?(W=L(r,e.left,j)-j/2,V=L(r,e.right,q)+q/2,E=H=n):(E=L(r,e.top,j)-j/2,H=L(r,e.bottom,q)+q/2,W=V=n),s.lineWidth=F,s.strokeStyle=ui(h.color,0),s.beginPath(),s.moveTo(W,E),s.lineTo(V,H),s.stroke()}}}}),gi=fi.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,i=e.getLabels();e.minIndex=0,e.maxIndex=i.length-1,void 0!==e.options.ticks.min&&(t=i.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=i.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=i[e.minIndex],e.max=i[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var i=this,n=i.chart;return n.getDatasetMeta(e).controller._getValueScaleId()===i.id?i.getRightValue(n.data.datasets[e].data[t]):i.ticks[t-i.minIndex]},getPixelForValue:function(t,e){var i,n=this,a=n.options.offset,o=Math.max(n.maxIndex+1-n.minIndex-(a?0:1),1);if(null!=t&&(i=n.isHorizontal()?t.x:t.y),void 0!==i||void 0!==t&&isNaN(e)){t=i||t;var r=n.getLabels().indexOf(t);e=-1!==r?r:e}if(n.isHorizontal()){var s=n.width/o,l=s*(e-n.minIndex);return a&&(l+=s/2),n.left+l}var d=n.height/o,u=d*(e-n.minIndex);return a&&(u+=d/2),n.top+u},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,i=e.options.offset,n=Math.max(e._ticks.length-(i?0:1),1),a=e.isHorizontal(),o=(a?e.width:e.height)/n;return t-=a?e.left:e.top,i&&(t-=o/2),(t<=0?0:Math.round(t/o))+e.minIndex},getBasePixel:function(){return this.bottom}}),pi={position:"bottom"};gi._defaults=pi;var mi=ut.noop,vi=ut.isNullOrUndef;var bi=fi.extend({getRightValue:function(t){return"string"==typeof t?+t:fi.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var i=ut.sign(t.min),n=ut.sign(t.max);i<0&&n<0?t.max=0:i>0&&n>0&&(t.min=0)}var a=void 0!==e.min||void 0!==e.suggestedMin,o=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),a!==o&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this.options.ticks,i=e.stepSize,n=e.maxTicksLimit;return i?t=Math.ceil(this.max/i)-Math.floor(this.min/i)+1:(t=this._computeTickLimit(),n=n||11),n&&(t=Math.min(n,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:mi,buildTicks:function(){var t=this,e=t.options.ticks,i=t.getTickLimit(),n={maxTicks:i=Math.max(2,i),min:e.min,max:e.max,precision:e.precision,stepSize:ut.valueOrDefault(e.fixedStepSize,e.stepSize)},a=t.ticks=function(t,e){var i,n,a,o,r=[],s=t.stepSize,l=s||1,d=t.maxTicks-1,u=t.min,h=t.max,c=t.precision,f=e.min,g=e.max,p=ut.niceNum((g-f)/d/l)*l;if(p<1e-14&&vi(u)&&vi(h))return[f,g];(o=Math.ceil(g/p)-Math.floor(f/p))>d&&(p=ut.niceNum(o*p/d/l)*l),s||vi(c)?i=Math.pow(10,ut._decimalPlaces(p)):(i=Math.pow(10,c),p=Math.ceil(p*i)/i),n=Math.floor(f/p)*p,a=Math.ceil(g/p)*p,s&&(!vi(u)&&ut.almostWhole(u/p,p/1e3)&&(n=u),!vi(h)&&ut.almostWhole(h/p,p/1e3)&&(a=h)),o=(a-n)/p,o=ut.almostEquals(o,Math.round(o),p/1e3)?Math.round(o):Math.ceil(o),n=Math.round(n*i)/i,a=Math.round(a*i)/i,r.push(vi(u)?n:u);for(var m=1;m<o;++m)r.push(Math.round((n+m*p)*i)/i);return r.push(vi(h)?a:h),r}(n,t);t.handleDirectionalChanges(),t.max=ut.max(a),t.min=ut.min(a),e.reverse?(a.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var t=this;t.ticksAsNumbers=t.ticks.slice(),t.zeroLineIndex=t.ticks.indexOf(0),fi.prototype.convertTicksToLabels.call(t)}}),xi={position:"left",ticks:{callback:li.formatters.linear}},yi=bi.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,a=t.isHorizontal();function o(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null;var r=e.stacked;if(void 0===r&&ut.each(n,function(t,e){if(!r){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&o(n)&&void 0!==n.stack&&(r=!0)}}),e.stacked||r){var s={};ut.each(n,function(n,a){var r=i.getDatasetMeta(a),l=[r.type,void 0===e.stacked&&void 0===r.stack?a:"",r.stack].join(".");void 0===s[l]&&(s[l]={positiveValues:[],negativeValues:[]});var d=s[l].positiveValues,u=s[l].negativeValues;i.isDatasetVisible(a)&&o(r)&&ut.each(n.data,function(i,n){var a=+t.getRightValue(i);isNaN(a)||r.data[n].hidden||(d[n]=d[n]||0,u[n]=u[n]||0,e.relativePoints?d[n]=100:a<0?u[n]+=a:d[n]+=a)})}),ut.each(s,function(e){var i=e.positiveValues.concat(e.negativeValues),n=ut.min(i),a=ut.max(i);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?a:Math.max(t.max,a)})}else ut.each(n,function(e,n){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&o(a)&&ut.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||a.data[i].hidden||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},_computeTickLimit:function(){var t;return this.isHorizontal()?Math.ceil(this.width/40):(t=ut.options._parseFont(this.options.ticks),Math.ceil(this.height/t.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,i=e.start,n=+e.getRightValue(t),a=e.end-i;return e.isHorizontal()?e.left+e.width/a*(n-i):e.bottom-e.height/a*(n-i)},getValueForPixel:function(t){var e=this,i=e.isHorizontal(),n=i?e.width:e.height,a=(i?t-e.left:e.bottom-t)/n;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}}),ki=xi;yi._defaults=ki;var wi=ut.valueOrDefault;var Mi={position:"left",ticks:{callback:li.formatters.logarithmic}};function _i(t,e){return ut.isFinite(t)&&t>=0?t:e}var Ci=fi.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,a=t.isHorizontal();function o(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var r=e.stacked;if(void 0===r&&ut.each(n,function(t,e){if(!r){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&o(n)&&void 0!==n.stack&&(r=!0)}}),e.stacked||r){var s={};ut.each(n,function(n,a){var r=i.getDatasetMeta(a),l=[r.type,void 0===e.stacked&&void 0===r.stack?a:"",r.stack].join(".");i.isDatasetVisible(a)&&o(r)&&(void 0===s[l]&&(s[l]=[]),ut.each(n.data,function(e,i){var n=s[l],a=+t.getRightValue(e);isNaN(a)||r.data[i].hidden||a<0||(n[i]=n[i]||0,n[i]+=a)}))}),ut.each(s,function(e){if(e.length>0){var i=ut.min(e),n=ut.max(e);t.min=null===t.min?i:Math.min(t.min,i),t.max=null===t.max?n:Math.max(t.max,n)}})}else ut.each(n,function(e,n){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&o(a)&&ut.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||a.data[i].hidden||n<0||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n),0!==n&&(null===t.minNotZero||n<t.minNotZero)&&(t.minNotZero=n))})});this.handleTickRangeOptions()},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;t.min=_i(e.min,t.min),t.max=_i(e.max,t.max),t.min===t.max&&(0!==t.min&&null!==t.min?(t.min=Math.pow(10,Math.floor(ut.log10(t.min))-1),t.max=Math.pow(10,Math.floor(ut.log10(t.max))+1)):(t.min=1,t.max=10)),null===t.min&&(t.min=Math.pow(10,Math.floor(ut.log10(t.max))-1)),null===t.max&&(t.max=0!==t.min?Math.pow(10,Math.floor(ut.log10(t.min))+1):10),null===t.minNotZero&&(t.min>0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(ut.log10(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,i=!t.isHorizontal(),n={min:_i(e.min),max:_i(e.max)},a=t.ticks=function(t,e){var i,n,a=[],o=wi(t.min,Math.pow(10,Math.floor(ut.log10(e.min)))),r=Math.floor(ut.log10(e.max)),s=Math.ceil(e.max/Math.pow(10,r));0===o?(i=Math.floor(ut.log10(e.minNotZero)),n=Math.floor(e.minNotZero/Math.pow(10,i)),a.push(o),o=n*Math.pow(10,i)):(i=Math.floor(ut.log10(o)),n=Math.floor(o/Math.pow(10,i)));var l=i<0?Math.pow(10,Math.abs(i)):1;do{a.push(o),10==++n&&(n=1,l=++i>=0?1:l),o=Math.round(n*Math.pow(10,i)*l)/l}while(i<r||i===r&&n<s);var d=wi(t.max,o);return a.push(d),a}(n,t);t.max=ut.max(a),t.min=ut.min(a),e.reverse?(i=!i,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),i&&a.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),fi.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},_getFirstTickValue:function(t){var e=Math.floor(ut.log10(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},getPixelForValue:function(t){var e,i,n,a,o,r=this,s=r.options.ticks,l=s.reverse,d=ut.log10,u=r._getFirstTickValue(r.minNotZero),h=0;return t=+r.getRightValue(t),l?(n=r.end,a=r.start,o=-1):(n=r.start,a=r.end,o=1),r.isHorizontal()?(e=r.width,i=l?r.right:r.left):(e=r.height,o*=-1,i=l?r.top:r.bottom),t!==n&&(0===n&&(e-=h=wi(s.fontSize,st.global.defaultFontSize),n=u),0!==t&&(h+=e/(d(a)-d(n))*(d(t)-d(n))),i+=o*h),i},getValueForPixel:function(t){var e,i,n,a,o=this,r=o.options.ticks,s=r.reverse,l=ut.log10,d=o._getFirstTickValue(o.minNotZero);if(s?(i=o.end,n=o.start):(i=o.start,n=o.end),o.isHorizontal()?(e=o.width,a=s?o.right-t:t-o.left):(e=o.height,a=s?t-o.top:o.bottom-t),a!==i){if(0===i){var u=wi(r.fontSize,st.global.defaultFontSize);a-=u,e-=u,i=d}a*=l(n)-l(i),a/=e,a=Math.pow(10,l(i)+a)}return a}}),Si=Mi;Ci._defaults=Si;var Pi=ut.valueOrDefault,Ii=ut.valueAtIndexOrDefault,Ai=ut.options.resolve,Di={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:li.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function Ti(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function Fi(t){var e=t.ticks;return e.display&&t.display?Pi(e.fontSize,st.global.defaultFontSize)+2*e.backdropPaddingY:0}function Li(t,e,i,n,a){return t===n||t===a?{start:e-i/2,end:e+i/2}:t<n||t>a?{start:e-i,end:e}:{start:e,end:e+i}}function Ri(t){return 0===t||180===t?"center":t<180?"left":"right"}function Oi(t,e,i,n){var a,o,r=i.y+n/2;if(ut.isArray(e))for(a=0,o=e.length;a<o;++a)t.fillText(e[a],i.x,r),r+=n;else t.fillText(e,i.x,r)}function zi(t,e,i){90===t||270===t?i.y-=e.h/2:(t>270||t<90)&&(i.y-=e.h)}function Bi(t){return ut.isNumber(t)?t:0}var Ni=bi.extend({setDimensions:function(){var t=this;t.width=t.maxWidth,t.height=t.maxHeight,t.paddingTop=Fi(t.options)/2,t.xCenter=Math.floor(t.width/2),t.yCenter=Math.floor((t.height-t.paddingTop)/2),t.drawingArea=Math.min(t.height-t.paddingTop,t.width)/2},determineDataLimits:function(){var t=this,e=t.chart,i=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY;ut.each(e.data.datasets,function(a,o){if(e.isDatasetVisible(o)){var r=e.getDatasetMeta(o);ut.each(a.data,function(e,a){var o=+t.getRightValue(e);isNaN(o)||r.data[a].hidden||(i=Math.min(o,i),n=Math.max(o,n))})}}),t.min=i===Number.POSITIVE_INFINITY?0:i,t.max=n===Number.NEGATIVE_INFINITY?0:n,t.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/Fi(this.options))},convertTicksToLabels:function(){var t=this;bi.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map(t.options.pointLabels.callback,t)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t=this.options;t.display&&t.pointLabels.display?function(t){var e,i,n,a=ut.options._parseFont(t.options.pointLabels),o={l:0,r:t.width,t:0,b:t.height-t.paddingTop},r={};t.ctx.font=a.string,t._pointLabelSizes=[];var s,l,d,u=Ti(t);for(e=0;e<u;e++){n=t.getPointPosition(e,t.drawingArea+5),s=t.ctx,l=a.lineHeight,d=t.pointLabels[e]||"",i=ut.isArray(d)?{w:ut.longestText(s,s.font,d),h:d.length*l}:{w:s.measureText(d).width,h:l},t._pointLabelSizes[e]=i;var h=t.getIndexAngle(e),c=ut.toDegrees(h)%360,f=Li(c,n.x,i.w,0,180),g=Li(c,n.y,i.h,90,270);f.start<o.l&&(o.l=f.start,r.l=h),f.end>o.r&&(o.r=f.end,r.r=h),g.start<o.t&&(o.t=g.start,r.t=h),g.end>o.b&&(o.b=g.end,r.b=h)}t.setReductions(t.drawingArea,o,r)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(t,e,i){var n=this,a=e.l/Math.sin(i.l),o=Math.max(e.r-n.width,0)/Math.sin(i.r),r=-e.t/Math.cos(i.t),s=-Math.max(e.b-(n.height-n.paddingTop),0)/Math.cos(i.b);a=Bi(a),o=Bi(o),r=Bi(r),s=Bi(s),n.drawingArea=Math.min(Math.floor(t-(a+o)/2),Math.floor(t-(r+s)/2)),n.setCenterPoint(a,o,r,s)},setCenterPoint:function(t,e,i,n){var a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,s=i+a.drawingArea,l=a.height-a.paddingTop-n-a.drawingArea;a.xCenter=Math.floor((r+o)/2+a.left),a.yCenter=Math.floor((s+l)/2+a.top+a.paddingTop)},getIndexAngle:function(t){return t*(2*Math.PI/Ti(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var i=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*i:(t-e.min)*i},getPointPosition:function(t,e){var i=this.getIndexAngle(t)-Math.PI/2;return{x:Math.cos(i)*e+this.xCenter,y:Math.sin(i)*e+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,e=t.options,i=e.gridLines,n=e.ticks;if(e.display){var a=t.ctx,o=this.getIndexAngle(0),r=ut.options._parseFont(n);(e.angleLines.display||e.pointLabels.display)&&function(t){var e=t.ctx,i=t.options,n=i.angleLines,a=i.gridLines,o=i.pointLabels,r=Pi(n.lineWidth,a.lineWidth),s=Pi(n.color,a.color),l=Fi(i);e.save(),e.lineWidth=r,e.strokeStyle=s,e.setLineDash&&(e.setLineDash(Ai([n.borderDash,a.borderDash,[]])),e.lineDashOffset=Ai([n.borderDashOffset,a.borderDashOffset,0]));var d=t.getDistanceFromCenterForValue(i.ticks.reverse?t.min:t.max),u=ut.options._parseFont(o);e.font=u.string,e.textBaseline="middle";for(var h=Ti(t)-1;h>=0;h--){if(n.display&&r&&s){var c=t.getPointPosition(h,d);e.beginPath(),e.moveTo(t.xCenter,t.yCenter),e.lineTo(c.x,c.y),e.stroke()}if(o.display){var f=0===h?l/2:0,g=t.getPointPosition(h,d+f+5),p=Ii(o.fontColor,h,st.global.defaultFontColor);e.fillStyle=p;var m=t.getIndexAngle(h),v=ut.toDegrees(m);e.textAlign=Ri(v),zi(v,t._pointLabelSizes[h],g),Oi(e,t.pointLabels[h]||"",g,u.lineHeight)}}e.restore()}(t),ut.each(t.ticks,function(e,s){if(s>0||n.reverse){var l=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(i.display&&0!==s&&function(t,e,i,n){var a,o=t.ctx,r=e.circular,s=Ti(t),l=Ii(e.color,n-1),d=Ii(e.lineWidth,n-1);if((r||s)&&l&&d){if(o.save(),o.strokeStyle=l,o.lineWidth=d,o.setLineDash&&(o.setLineDash(e.borderDash||[]),o.lineDashOffset=e.borderDashOffset||0),o.beginPath(),r)o.arc(t.xCenter,t.yCenter,i,0,2*Math.PI);else{a=t.getPointPosition(0,i),o.moveTo(a.x,a.y);for(var u=1;u<s;u++)a=t.getPointPosition(u,i),o.lineTo(a.x,a.y)}o.closePath(),o.stroke(),o.restore()}}(t,i,l,s),n.display){var d=Pi(n.fontColor,st.global.defaultFontColor);if(a.font=r.string,a.save(),a.translate(t.xCenter,t.yCenter),a.rotate(o),n.showLabelBackdrop){var u=a.measureText(e).width;a.fillStyle=n.backdropColor,a.fillRect(-u/2-n.backdropPaddingX,-l-r.size/2-n.backdropPaddingY,u+2*n.backdropPaddingX,r.size+2*n.backdropPaddingY)}a.textAlign="center",a.textBaseline="middle",a.fillStyle=d,a.fillText(e,0,-l),a.restore()}}})}}}),Wi=Di;Ni._defaults=Wi;var Vi=ut.valueOrDefault,Ei=Number.MIN_SAFE_INTEGER||-9007199254740991,Hi=Number.MAX_SAFE_INTEGER||9007199254740991,ji={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},qi=Object.keys(ji);function Yi(t,e){return t-e}function Ui(t){var e,i,n,a={},o=[];for(e=0,i=t.length;e<i;++e)a[n=t[e]]||(a[n]=!0,o.push(n));return o}function Xi(t,e,i,n){var a=function(t,e,i){for(var n,a,o,r=0,s=t.length-1;r>=0&&r<=s;){if(a=t[(n=r+s>>1)-1]||null,o=t[n],!a)return{lo:null,hi:o};if(o[e]<i)r=n+1;else{if(!(a[e]>i))return{lo:a,hi:o};s=n-1}}return{lo:o,hi:null}}(t,e,i),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],r=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=r[e]-o[e],l=s?(i-o[e])/s:0,d=(r[n]-o[n])*l;return o[n]+d}function Ki(t,e){var i=t._adapter,n=t.options.time,a=n.parser,o=a||n.format,r=e;return"function"==typeof a&&(r=a(r)),ut.isFinite(r)||(r="string"==typeof o?i.parse(r,o):i.parse(r)),null!==r?+r:(a||"function"!=typeof o||(r=o(e),ut.isFinite(r)||(r=i.parse(r))),r)}function Gi(t,e){if(ut.isNullOrUndef(e))return null;var i=t.options.time,n=Ki(t,t.getRightValue(e));return null===n?n:(i.round&&(n=+t._adapter.startOf(n,i.round)),n)}function Zi(t){for(var e=qi.indexOf(t)+1,i=qi.length;e<i;++e)if(ji[qi[e]].common)return qi[e]}function $i(t,e,i,n){var a,o=t._adapter,r=t.options,s=r.time,l=s.unit||function(t,e,i,n){var a,o,r,s=qi.length;for(a=qi.indexOf(t);a<s-1;++a)if(r=(o=ji[qi[a]]).steps?o.steps[o.steps.length-1]:Hi,o.common&&Math.ceil((i-e)/(r*o.size))<=n)return qi[a];return qi[s-1]}(s.minUnit,e,i,n),d=Zi(l),u=Vi(s.stepSize,s.unitStepSize),h="week"===l&&s.isoWeekday,c=r.ticks.major.enabled,f=ji[l],g=e,p=i,m=[];for(u||(u=function(t,e,i,n){var a,o,r,s=e-t,l=ji[i],d=l.size,u=l.steps;if(!u)return Math.ceil(s/(n*d));for(a=0,o=u.length;a<o&&(r=u[a],!(Math.ceil(s/(d*r))<=n));++a);return r}(e,i,l,n)),h&&(g=+o.startOf(g,"isoWeek",h),p=+o.startOf(p,"isoWeek",h)),g=+o.startOf(g,h?"day":l),(p=+o.startOf(p,h?"day":l))<i&&(p=+o.add(p,1,l)),a=g,c&&d&&!h&&!s.round&&(a=+o.startOf(a,d),a=+o.add(a,~~((g-a)/(f.size*u))*u,l));a<p;a=+o.add(a,u,l))m.push(+a);return m.push(+a),m}var Ji=fi.extend({initialize:function(){this.mergeTicksOptions(),fi.prototype.initialize.call(this)},update:function(){var t=this.options,e=t.time||(t.time={}),i=this._adapter=new si._date(t.adapters.date);return e.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),ut.mergeIf(e.displayFormats,i.formats()),fi.prototype.update.apply(this,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),fi.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,i,n,a,o,r=this,s=r.chart,l=r._adapter,d=r.options.time,u=d.unit||"day",h=Hi,c=Ei,f=[],g=[],p=[],m=s.data.labels||[];for(t=0,i=m.length;t<i;++t)p.push(Gi(r,m[t]));for(t=0,i=(s.data.datasets||[]).length;t<i;++t)if(s.isDatasetVisible(t))if(a=s.data.datasets[t].data,ut.isObject(a[0]))for(g[t]=[],e=0,n=a.length;e<n;++e)o=Gi(r,a[e]),f.push(o),g[t][e]=o;else{for(e=0,n=p.length;e<n;++e)f.push(p[e]);g[t]=p.slice(0)}else g[t]=[];p.length&&(p=Ui(p).sort(Yi),h=Math.min(h,p[0]),c=Math.max(c,p[p.length-1])),f.length&&(f=Ui(f).sort(Yi),h=Math.min(h,f[0]),c=Math.max(c,f[f.length-1])),h=Gi(r,d.min)||h,c=Gi(r,d.max)||c,h=h===Hi?+l.startOf(Date.now(),u):h,c=c===Ei?+l.endOf(Date.now(),u)+1:c,r.min=Math.min(h,c),r.max=Math.max(h+1,c),r._horizontal=r.isHorizontal(),r._table=[],r._timestamps={data:f,datasets:g,labels:p}},buildTicks:function(){var t,e,i,n=this,a=n.min,o=n.max,r=n.options,s=r.time,l=[],d=[];switch(r.ticks.source){case"data":l=n._timestamps.data;break;case"labels":l=n._timestamps.labels;break;case"auto":default:l=$i(n,a,o,n.getLabelCapacity(a))}for("ticks"===r.bounds&&l.length&&(a=l[0],o=l[l.length-1]),a=Gi(n,s.min)||a,o=Gi(n,s.max)||o,t=0,e=l.length;t<e;++t)(i=l[t])>=a&&i<=o&&d.push(i);return n.min=a,n.max=o,n._unit=s.unit||function(t,e,i,n,a){var o,r;for(o=qi.length-1;o>=qi.indexOf(i);o--)if(r=qi[o],ji[r].common&&t._adapter.diff(a,n,r)>=e.length)return r;return qi[i?qi.indexOf(i):0]}(n,d,s.minUnit,n.min,n.max),n._majorUnit=Zi(n._unit),n._table=function(t,e,i,n){if("linear"===n||!t.length)return[{time:e,pos:0},{time:i,pos:1}];var a,o,r,s,l,d=[],u=[e];for(a=0,o=t.length;a<o;++a)(s=t[a])>e&&s<i&&u.push(s);for(u.push(i),a=0,o=u.length;a<o;++a)l=u[a+1],r=u[a-1],s=u[a],void 0!==r&&void 0!==l&&Math.round((l+r)/2)===s||d.push({time:s,pos:a/(o-1)});return d}(n._timestamps.data,a,o,r.distribution),n._offsets=function(t,e,i,n,a){var o,r,s=0,l=0;return a.offset&&e.length&&(a.time.min||(o=Xi(t,"time",e[0],"pos"),s=1===e.length?1-o:(Xi(t,"time",e[1],"pos")-o)/2),a.time.max||(r=Xi(t,"time",e[e.length-1],"pos"),l=1===e.length?r:(r-Xi(t,"time",e[e.length-2],"pos"))/2)),{start:s,end:l}}(n._table,d,0,0,r),r.ticks.reverse&&d.reverse(),function(t,e,i){var n,a,o,r,s=[];for(n=0,a=e.length;n<a;++n)o=e[n],r=!!i&&o===+t._adapter.startOf(o,i),s.push({value:o,major:r});return s}(n,d,n._majorUnit)},getLabelForIndex:function(t,e){var i=this,n=i._adapter,a=i.chart.data,o=i.options.time,r=a.labels&&t<a.labels.length?a.labels[t]:"",s=a.datasets[e].data[t];return ut.isObject(s)&&(r=i.getRightValue(s)),o.tooltipFormat?n.format(Ki(i,r),o.tooltipFormat):"string"==typeof r?r:n.format(Ki(i,r),o.displayFormats.datetime)},tickFormatFunction:function(t,e,i,n){var a=this._adapter,o=this.options,r=o.time.displayFormats,s=r[this._unit],l=this._majorUnit,d=r[l],u=+a.startOf(t,l),h=o.ticks.major,c=h.enabled&&l&&d&&t===u,f=a.format(t,n||(c?d:s)),g=c?h:o.ticks.minor,p=Vi(g.callback,g.userCallback);return p?p(f,e,i):f},convertTicksToLabels:function(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(this.tickFormatFunction(t[e].value,e,t));return n},getPixelForOffset:function(t){var e=this,i=e.options.ticks.reverse,n=e._horizontal?e.width:e.height,a=e._horizontal?i?e.right:e.left:i?e.bottom:e.top,o=Xi(e._table,"time",t,"pos"),r=n*(e._offsets.start+o)/(e._offsets.start+1+e._offsets.end);return i?a-r:a+r},getPixelForValue:function(t,e,i){var n=null;if(void 0!==e&&void 0!==i&&(n=this._timestamps.datasets[i][e]),null===n&&(n=Gi(this,t)),null!==n)return this.getPixelForOffset(n)},getPixelForTick:function(t){var e=this.getTicks();return t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,i=e._horizontal?e.width:e.height,n=e._horizontal?e.left:e.top,a=(i?(t-n)/i:0)*(e._offsets.start+1+e._offsets.start)-e._offsets.end,o=Xi(e._table,"pos",a,"time");return e._adapter._create(o)},getLabelWidth:function(t){var e=this.options.ticks,i=this.ctx.measureText(t).width,n=ut.toRadians(e.maxRotation),a=Math.cos(n),o=Math.sin(n);return i*a+Vi(e.fontSize,st.global.defaultFontSize)*o},getLabelCapacity:function(t){var e=this,i=e.options.time.displayFormats.millisecond,n=e.tickFormatFunction(t,0,[],i),a=e.getLabelWidth(n),o=e.isHorizontal()?e.width:e.height,r=Math.floor(o/a);return r>0?r:1}}),Qi={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};Ji._defaults=Qi;var tn={category:gi,linear:yi,logarithmic:Ci,radialLinear:Ni,time:Ji},en={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};si._date.override("function"==typeof t?{_id:"moment",formats:function(){return en},parse:function(e,i){return"string"==typeof e&&"string"==typeof i?e=t(e,i):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,i){return t(e).format(i)},add:function(e,i,n){return t(e).add(i,n).valueOf()},diff:function(e,i,n){return t.duration(t(e).diff(t(i))).as(n)},startOf:function(e,i,n){return e=t(e),"isoWeek"===i?e.isoWeekday(n).valueOf():e.startOf(i).valueOf()},endOf:function(e,i){return t(e).endOf(i).valueOf()},_create:function(e){return t(e)}}:{}),st._set("global",{plugins:{filler:{propagate:!0}}});var nn={dataset:function(t){var e=t.fill,i=t.chart,n=i.getDatasetMeta(e),a=n&&i.isDatasetVisible(e)&&n.dataset._children||[],o=a.length||0;return o?function(t,e){return e<o&&a[e]._view||null}:null},boundary:function(t){var e=t.boundary,i=e?e.x:null,n=e?e.y:null;return function(t){return{x:null===i?t.x:i,y:null===n?t.y:n}}}};function an(t,e,i){var n,a=t._model||{},o=a.fill;if(void 0===o&&(o=!!a.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(n=parseFloat(o,10),isFinite(n)&&Math.floor(n)===n)return"-"!==o[0]&&"+"!==o[0]||(n=e+n),!(n===e||n<0||n>=i)&&n;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function on(t){var e,i=t.el._model||{},n=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if("start"===a?o=void 0===i.scaleBottom?n.bottom:i.scaleBottom:"end"===a?o=void 0===i.scaleTop?n.top:i.scaleTop:void 0!==i.scaleZero?o=i.scaleZero:n.getBasePosition?o=n.getBasePosition():n.getBasePixel&&(o=n.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if(ut.isFinite(o))return{x:(e=n.isHorizontal())?o:null,y:e?null:o}}return null}function rn(t,e,i){var n,a=t[e].fill,o=[e];if(!i)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(n=t[a]))return!1;if(n.visible)return a;o.push(a),a=n.fill}return!1}function sn(t){var e=t.fill,i="dataset";return!1===e?null:(isFinite(e)||(i="boundary"),nn[i](t))}function ln(t){return t&&!t.skip}function dn(t,e,i,n,a){var o;if(n&&a){for(t.moveTo(e[0].x,e[0].y),o=1;o<n;++o)ut.canvas.lineTo(t,e[o-1],e[o]);for(t.lineTo(i[a-1].x,i[a-1].y),o=a-1;o>0;--o)ut.canvas.lineTo(t,i[o],i[o-1],!0)}}var un={id:"filler",afterDatasetsUpdate:function(t,e){var i,n,a,o,r=(t.data.datasets||[]).length,s=e.propagate,l=[];for(n=0;n<r;++n)o=null,(a=(i=t.getDatasetMeta(n)).dataset)&&a._model&&a instanceof Wt.Line&&(o={visible:t.isDatasetVisible(n),fill:an(a,n,r),chart:t,el:a}),i.$filler=o,l.push(o);for(n=0;n<r;++n)(o=l[n])&&(o.fill=rn(l,n,s),o.boundary=on(o),o.mapper=sn(o))},beforeDatasetDraw:function(t,e){var i=e.meta.$filler;if(i){var n=t.ctx,a=i.el,o=a._view,r=a._children||[],s=i.mapper,l=o.backgroundColor||st.global.defaultColor;s&&l&&r.length&&(ut.canvas.clipArea(n,t.chartArea),function(t,e,i,n,a,o){var r,s,l,d,u,h,c,f=e.length,g=n.spanGaps,p=[],m=[],v=0,b=0;for(t.beginPath(),r=0,s=f+!!o;r<s;++r)u=i(d=e[l=r%f]._view,l,n),h=ln(d),c=ln(u),h&&c?(v=p.push(d),b=m.push(u)):v&&b&&(g?(h&&p.push(d),c&&m.push(u)):(dn(t,p,m,v,b),v=b=0,p=[],m=[]));dn(t,p,m,v,b),t.closePath(),t.fillStyle=a,t.fill()}(n,r,s,o,l,a._loop),ut.canvas.unclipArea(n))}}},hn=ut.noop,cn=ut.valueOrDefault;function fn(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}st._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var i=e.datasetIndex,n=this.chart,a=n.getDatasetMeta(i);a.hidden=null===a.hidden?!n.data.datasets[i].hidden:null,n.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return ut.isArray(e.datasets)?e.datasets.map(function(e,i){return{text:e.label,fillStyle:ut.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(i),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:i}},this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var i=0;i<t.data.datasets.length;i++)e.push('<li><span style="background-color:'+t.data.datasets[i].backgroundColor+'"></span>'),t.data.datasets[i].label&&e.push(t.data.datasets[i].label),e.push("</li>");return e.push("</ul>"),e.join("")}});var gn=pt.extend({initialize:function(t){ut.extend(this,t),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:hn,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:hn,beforeSetDimensions:hn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:hn,beforeBuildLabels:hn,buildLabels:function(){var t=this,e=t.options.labels||{},i=ut.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(i=i.filter(function(i){return e.filter(i,t.chart.data)})),t.options.reverse&&i.reverse(),t.legendItems=i},afterBuildLabels:hn,beforeFit:hn,fit:function(){var t=this,e=t.options,i=e.labels,n=e.display,a=t.ctx,o=ut.options._parseFont(i),r=o.size,s=t.legendHitBoxes=[],l=t.minSize,d=t.isHorizontal();if(d?(l.width=t.maxWidth,l.height=n?10:0):(l.width=n?10:0,l.height=t.maxHeight),n)if(a.font=o.string,d){var u=t.lineWidths=[0],h=0;a.textAlign="left",a.textBaseline="top",ut.each(t.legendItems,function(t,e){var n=fn(i,r)+r/2+a.measureText(t.text).width;(0===e||u[u.length-1]+n+i.padding>l.width)&&(h+=r+i.padding,u[u.length-(e>0?0:1)]=i.padding),s[e]={left:0,top:0,width:n,height:r},u[u.length-1]+=n+i.padding}),l.height+=h}else{var c=i.padding,f=t.columnWidths=[],g=i.padding,p=0,m=0,v=r+c;ut.each(t.legendItems,function(t,e){var n=fn(i,r)+r/2+a.measureText(t.text).width;e>0&&m+v>l.height-c&&(g+=p+i.padding,f.push(p),p=0,m=0),p=Math.max(p,n),m+=v,s[e]={left:0,top:0,width:n,height:r}}),g+=p,f.push(p),l.width+=g}t.width=l.width,t.height=l.height},afterFit:hn,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,i=e.labels,n=st.global,a=n.defaultColor,o=n.elements.line,r=t.width,s=t.lineWidths;if(e.display){var l,d=t.ctx,u=cn(i.fontColor,n.defaultFontColor),h=ut.options._parseFont(i),c=h.size;d.textAlign="left",d.textBaseline="middle",d.lineWidth=.5,d.strokeStyle=u,d.fillStyle=u,d.font=h.string;var f=fn(i,c),g=t.legendHitBoxes,p=t.isHorizontal();l=p?{x:t.left+(r-s[0])/2+i.padding,y:t.top+i.padding,line:0}:{x:t.left+i.padding,y:t.top+i.padding,line:0};var m=c+i.padding;ut.each(t.legendItems,function(n,u){var h=d.measureText(n.text).width,v=f+c/2+h,b=l.x,x=l.y;p?u>0&&b+v+i.padding>t.left+t.minSize.width&&(x=l.y+=m,l.line++,b=l.x=t.left+(r-s[l.line])/2+i.padding):u>0&&x+m>t.top+t.minSize.height&&(b=l.x=b+t.columnWidths[l.line]+i.padding,x=l.y=t.top+i.padding,l.line++),function(t,i,n){if(!(isNaN(f)||f<=0)){d.save();var r=cn(n.lineWidth,o.borderWidth);if(d.fillStyle=cn(n.fillStyle,a),d.lineCap=cn(n.lineCap,o.borderCapStyle),d.lineDashOffset=cn(n.lineDashOffset,o.borderDashOffset),d.lineJoin=cn(n.lineJoin,o.borderJoinStyle),d.lineWidth=r,d.strokeStyle=cn(n.strokeStyle,a),d.setLineDash&&d.setLineDash(cn(n.lineDash,o.borderDash)),e.labels&&e.labels.usePointStyle){var s=f*Math.SQRT2/2,l=t+f/2,u=i+c/2;ut.canvas.drawPoint(d,n.pointStyle,s,l,u)}else 0!==r&&d.strokeRect(t,i,f,c),d.fillRect(t,i,f,c);d.restore()}}(b,x,n),g[u].left=b,g[u].top=x,function(t,e,i,n){var a=c/2,o=f+a+t,r=e+a;d.fillText(i.text,o,r),i.hidden&&(d.beginPath(),d.lineWidth=2,d.moveTo(o,r),d.lineTo(o+n,r),d.stroke())}(b,x,n,h),p?l.x+=v+i.padding:l.y+=m})}},_getLegendItemAt:function(t,e){var i,n,a,o=this;if(t>=o.left&&t<=o.right&&e>=o.top&&e<=o.bottom)for(a=o.legendHitBoxes,i=0;i<a.length;++i)if(t>=(n=a[i]).left&&t<=n.left+n.width&&e>=n.top&&e<=n.top+n.height)return o.legendItems[i];return null},handleEvent:function(t){var e,i=this,n=i.options,a="mouseup"===t.type?"click":t.type;if("mousemove"===a){if(!n.onHover&&!n.onLeave)return}else{if("click"!==a)return;if(!n.onClick)return}e=i._getLegendItemAt(t.x,t.y),"click"===a?e&&n.onClick&&n.onClick.call(i,t.native,e):(n.onLeave&&e!==i._hoveredItem&&(i._hoveredItem&&n.onLeave.call(i,t.native,i._hoveredItem),i._hoveredItem=e),n.onHover&&e&&n.onHover.call(i,t.native,e))}});function pn(t,e){var i=new gn({ctx:t.ctx,options:e,chart:t});ke.configure(t,i,e),ke.addBox(t,i),t.legend=i}var mn={id:"legend",_element:gn,beforeInit:function(t){var e=t.options.legend;e&&pn(t,e)},beforeUpdate:function(t){var e=t.options.legend,i=t.legend;e?(ut.mergeIf(e,st.global.legend),i?(ke.configure(t,i,e),i.options=e):pn(t,e)):i&&(ke.removeBox(t,i),delete t.legend)},afterEvent:function(t,e){var i=t.legend;i&&i.handleEvent(e)}},vn=ut.noop;st._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var bn=pt.extend({initialize:function(t){ut.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:vn,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:vn,beforeSetDimensions:vn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:vn,beforeBuildLabels:vn,buildLabels:vn,afterBuildLabels:vn,beforeFit:vn,fit:function(){var t=this,e=t.options,i=e.display,n=t.minSize,a=ut.isArray(e.text)?e.text.length:1,o=ut.options._parseFont(e),r=i?a*o.lineHeight+2*e.padding:0;t.isHorizontal()?(n.width=t.maxWidth,n.height=r):(n.width=r,n.height=t.maxHeight),t.width=n.width,t.height=n.height},afterFit:vn,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,i=t.options;if(i.display){var n,a,o,r=ut.options._parseFont(i),s=r.lineHeight,l=s/2+i.padding,d=0,u=t.top,h=t.left,c=t.bottom,f=t.right;e.fillStyle=ut.valueOrDefault(i.fontColor,st.global.defaultFontColor),e.font=r.string,t.isHorizontal()?(a=h+(f-h)/2,o=u+l,n=f-h):(a="left"===i.position?h+l:f-l,o=u+(c-u)/2,n=c-u,d=Math.PI*("left"===i.position?-.5:.5)),e.save(),e.translate(a,o),e.rotate(d),e.textAlign="center",e.textBaseline="middle";var g=i.text;if(ut.isArray(g))for(var p=0,m=0;m<g.length;++m)e.fillText(g[m],0,p,n),p+=s;else e.fillText(g,0,0,n);e.restore()}}});function xn(t,e){var i=new bn({ctx:t.ctx,options:e,chart:t});ke.configure(t,i,e),ke.addBox(t,i),t.titleBlock=i}var yn={},kn=un,wn=mn,Mn={id:"title",_element:bn,beforeInit:function(t){var e=t.options.title;e&&xn(t,e)},beforeUpdate:function(t){var e=t.options.title,i=t.titleBlock;e?(ut.mergeIf(e,st.global.title),i?(ke.configure(t,i,e),i.options=e):xn(t,e)):i&&(ke.removeBox(t,i),delete t.titleBlock)}};for(var _n in yn.filler=kn,yn.legend=wn,yn.title=Mn,ai.helpers=ut,function(){function t(t,e,i){var n;return"string"==typeof t?(n=parseInt(t,10),-1!==t.indexOf("%")&&(n=n/100*e.parentNode[i])):n=t,n}function e(t){return null!=t&&"none"!==t}function i(i,n,a){var o=document.defaultView,r=ut._getParentNode(i),s=o.getComputedStyle(i)[n],l=o.getComputedStyle(r)[n],d=e(s),u=e(l),h=Number.POSITIVE_INFINITY;return d||u?Math.min(d?t(s,i,a):h,u?t(l,r,a):h):"none"}ut.where=function(t,e){if(ut.isArray(t)&&Array.prototype.filter)return t.filter(e);var i=[];return ut.each(t,function(t){e(t)&&i.push(t)}),i},ut.findIndex=Array.prototype.findIndex?function(t,e,i){return t.findIndex(e,i)}:function(t,e,i){i=void 0===i?t:i;for(var n=0,a=t.length;n<a;++n)if(e.call(i,t[n],n,t))return n;return-1},ut.findNextWhere=function(t,e,i){ut.isNullOrUndef(i)&&(i=-1);for(var n=i+1;n<t.length;n++){var a=t[n];if(e(a))return a}},ut.findPreviousWhere=function(t,e,i){ut.isNullOrUndef(i)&&(i=t.length);for(var n=i-1;n>=0;n--){var a=t[n];if(e(a))return a}},ut.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},ut.almostEquals=function(t,e,i){return Math.abs(t-e)<i},ut.almostWhole=function(t,e){var i=Math.round(t);return i-e<t&&i+e>t},ut.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},ut.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},ut.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},ut.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,i=Math.round(e);return t===Math.pow(10,i)?i:e},ut.toRadians=function(t){return t*(Math.PI/180)},ut.toDegrees=function(t){return t*(180/Math.PI)},ut._decimalPlaces=function(t){if(ut.isFinite(t)){for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}},ut.getAngleFromPoint=function(t,e){var i=e.x-t.x,n=e.y-t.y,a=Math.sqrt(i*i+n*n),o=Math.atan2(n,i);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},ut.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},ut.aliasPixel=function(t){return t%2==0?0:.5},ut._alignPixel=function(t,e,i){var n=t.currentDevicePixelRatio,a=i/2;return Math.round((e-a)*n)/n+a},ut.splineCurve=function(t,e,i,n){var a=t.skip?e:t,o=e,r=i.skip?e:i,s=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),l=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),d=s/(s+l),u=l/(s+l),h=n*(d=isNaN(d)?0:d),c=n*(u=isNaN(u)?0:u);return{previous:{x:o.x-h*(r.x-a.x),y:o.y-h*(r.y-a.y)},next:{x:o.x+c*(r.x-a.x),y:o.y+c*(r.y-a.y)}}},ut.EPSILON=Number.EPSILON||1e-14,ut.splineCurveMonotone=function(t){var e,i,n,a,o,r,s,l,d,u=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),h=u.length;for(e=0;e<h;++e)if(!(n=u[e]).model.skip){if(i=e>0?u[e-1]:null,(a=e<h-1?u[e+1]:null)&&!a.model.skip){var c=a.model.x-n.model.x;n.deltaK=0!==c?(a.model.y-n.model.y)/c:0}!i||i.model.skip?n.mK=n.deltaK:!a||a.model.skip?n.mK=i.deltaK:this.sign(i.deltaK)!==this.sign(n.deltaK)?n.mK=0:n.mK=(i.deltaK+n.deltaK)/2}for(e=0;e<h-1;++e)n=u[e],a=u[e+1],n.model.skip||a.model.skip||(ut.almostEquals(n.deltaK,0,this.EPSILON)?n.mK=a.mK=0:(o=n.mK/n.deltaK,r=a.mK/n.deltaK,(l=Math.pow(o,2)+Math.pow(r,2))<=9||(s=3/Math.sqrt(l),n.mK=o*s*n.deltaK,a.mK=r*s*n.deltaK)));for(e=0;e<h;++e)(n=u[e]).model.skip||(i=e>0?u[e-1]:null,a=e<h-1?u[e+1]:null,i&&!i.model.skip&&(d=(n.model.x-i.model.x)/3,n.model.controlPointPreviousX=n.model.x-d,n.model.controlPointPreviousY=n.model.y-d*n.mK),a&&!a.model.skip&&(d=(a.model.x-n.model.x)/3,n.model.controlPointNextX=n.model.x+d,n.model.controlPointNextY=n.model.y+d*n.mK))},ut.nextItem=function(t,e,i){return i?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},ut.previousItem=function(t,e,i){return i?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},ut.niceNum=function(t,e){var i=Math.floor(ut.log10(t)),n=t/Math.pow(10,i);return(e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*Math.pow(10,i)},ut.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},ut.getRelativePosition=function(t,e){var i,n,a=t.originalEvent||t,o=t.target||t.srcElement,r=o.getBoundingClientRect(),s=a.touches;s&&s.length>0?(i=s[0].clientX,n=s[0].clientY):(i=a.clientX,n=a.clientY);var l=parseFloat(ut.getStyle(o,"padding-left")),d=parseFloat(ut.getStyle(o,"padding-top")),u=parseFloat(ut.getStyle(o,"padding-right")),h=parseFloat(ut.getStyle(o,"padding-bottom")),c=r.right-r.left-l-u,f=r.bottom-r.top-d-h;return{x:i=Math.round((i-r.left-l)/c*o.width/e.currentDevicePixelRatio),y:n=Math.round((n-r.top-d)/f*o.height/e.currentDevicePixelRatio)}},ut.getConstraintWidth=function(t){return i(t,"max-width","clientWidth")},ut.getConstraintHeight=function(t){return i(t,"max-height","clientHeight")},ut._calculatePadding=function(t,e,i){return(e=ut.getStyle(t,e)).indexOf("%")>-1?i*parseInt(e,10)/100:parseInt(e,10)},ut._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},ut.getMaximumWidth=function(t){var e=ut._getParentNode(t);if(!e)return t.clientWidth;var i=e.clientWidth,n=i-ut._calculatePadding(e,"padding-left",i)-ut._calculatePadding(e,"padding-right",i),a=ut.getConstraintWidth(t);return isNaN(a)?n:Math.min(n,a)},ut.getMaximumHeight=function(t){var e=ut._getParentNode(t);if(!e)return t.clientHeight;var i=e.clientHeight,n=i-ut._calculatePadding(e,"padding-top",i)-ut._calculatePadding(e,"padding-bottom",i),a=ut.getConstraintHeight(t);return isNaN(a)?n:Math.min(n,a)},ut.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},ut.retinaScale=function(t,e){var i=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==i){var n=t.canvas,a=t.height,o=t.width;n.height=a*i,n.width=o*i,t.ctx.scale(i,i),n.style.height||n.style.width||(n.style.height=a+"px",n.style.width=o+"px")}},ut.fontString=function(t,e,i){return e+" "+t+"px "+i},ut.longestText=function(t,e,i,n){var a=(n=n||{}).data=n.data||{},o=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(a=n.data={},o=n.garbageCollect=[],n.font=e),t.font=e;var r=0;ut.each(i,function(e){null!=e&&!0!==ut.isArray(e)?r=ut.measureText(t,a,o,r,e):ut.isArray(e)&&ut.each(e,function(e){null==e||ut.isArray(e)||(r=ut.measureText(t,a,o,r,e))})});var s=o.length/2;if(s>i.length){for(var l=0;l<s;l++)delete a[o[l]];o.splice(0,s)}return r},ut.measureText=function(t,e,i,n,a){var o=e[a];return o||(o=e[a]=t.measureText(a).width,i.push(a)),o>n&&(n=o),n},ut.numberOfLabelLines=function(t){var e=1;return ut.each(t,function(t){ut.isArray(t)&&t.length>e&&(e=t.length)}),e},ut.color=X?function(t){return t instanceof CanvasGradient&&(t=st.global.defaultColor),X(t)}:function(t){return console.error("Color.js not found!"),t},ut.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:ut.color(t).saturate(.5).darken(.1).rgbString()}}(),ai._adapters=si,ai.Animation=vt,ai.animationService=bt,ai.controllers=ue,ai.DatasetController=Mt,ai.defaults=st,ai.Element=pt,ai.elements=Wt,ai.Interaction=ve,ai.layouts=ke,ai.platform=Ve,ai.plugins=Ee,ai.Scale=fi,ai.scaleService=He,ai.Ticks=li,ai.Tooltip=Je,ai.helpers.each(tn,function(t,e){ai.scaleService.registerScaleType(e,t,t._defaults)}),yn)yn.hasOwnProperty(_n)&&ai.plugins.register(yn[_n]);ai.platform.initialize();var Cn=ai;return"undefined"!=typeof window&&(window.Chart=ai),ai.Chart=ai,ai.Legend=yn.legend._element,ai.Title=yn.title._element,ai.pluginService=ai.plugins,ai.PluginBase=ai.Element.extend({}),ai.canvasHelpers=ai.helpers.canvas,ai.layoutService=ai.layouts,ai.LinearScaleBase=bi,ai.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],function(t){ai[t]=function(e,i){return new ai(e,ai.helpers.merge(i||{},{type:t.charAt(0).toLowerCase()+t.slice(1)}))}}),Cn});
/*
PAGELAYER
http://pagelayer.com/
(c) Pagelayer Team
*/
// Things to do on document load
jQuery(document).ready(function(){
jQuery('.pagelayer-slides').each(function(){
pagelayer_pl_slides(jQuery(this));
});
jQuery('.pagelayer-featured_img').each(function(){
pagelayer_pl_image(jQuery(this));
});
jQuery('.pagelayer-wp_posts_slider').each(function(){
pagelayer_wp_posts_slider(jQuery(this));
});
jQuery('.pagelayer-review_slider').each(function(){
pagelayer_reviews_slider(jQuery(this));
});
// Facebook Apps
if(jQuery('[pagelayer-facebook-load]')){
pagelayer_fb_apps(jQuery(this));
}
// For Pagelayer Pro
jQuery('.pagelayer-image_hotspot').each(function(){
pagelayer_image_hotspot(jQuery(this));
});
jQuery('.pagelayer-chart').each(function(){
pagelayer_chart(jQuery(this));
});
jQuery('.pagelayer-table').each(function(){
pagelayer_table(jQuery(this));
});
jQuery('.pagelayer-audio').each(function(){
pagelayer_audio(jQuery(this));
});
jQuery('.pagelayer-post_folio').each(function(){
pagelayer_post_folio(jQuery(this));
});
jQuery('.pagelayer-search').each(function(){
pagelayer_search_form(jQuery(this));
});
jQuery('.pagelayer-sitemap').each(function(){
pagelayer_sitemap_add_attributes(jQuery(this));
});
jQuery('.pagelayer-posts').each(function(){
var is_slider = jQuery(this).find('.pagelayer-posts-container').data('enable_slider');
if(is_slider){
pagelayer_pl_posts(jQuery(this));
}
});
jQuery('.pagelayer-video_slider').each(function(){
pagelayer_pl_video_slider(jQuery(this));
});
jQuery('.pagelayer-woo_menu_cart').each(function(){
pagelayer_woo_menu_cart(jQuery(this));
});
jQuery('.pagelayer-popup-modal').each(function(){
pagelayer_popup_setup(jQuery(this));
});
jQuery('.pagelayer-sticky-ele').each(function(){
pagelayer_ele_sticky_handler(jQuery(this));
});
jQuery('.pagelayer-scrolling-effects').each(function(){
pagelayer_scrolling_effects(jQuery(this));
});
jQuery('.pagelayer-mouse-effects').each(function(){
pagelayer_mouse_effects(jQuery(this));
});
jQuery('.pagelayer-img_portfolio').each(function(){
pagelayer_pl_img_portfolio(jQuery(this));
});
jQuery('.pagelayer-single_img').each(function(){
pagelayer_pl_image(jQuery(this));
});
jQuery('.pagelayer-splash-container').each(function(){
pagelayer_pl_splash_screen(jQuery(this));
});
jQuery('.pagelayer-fb-page-container, .pagelayer-fb-embed-container').each(function(){
pagelayer_fb_width(jQuery(this));
});
jQuery('.pagelayer-before_after').each(function(){
pagelayer_before_after_slider(jQuery(this));
});
jQuery('.pagelayer-image_map').each(function(){
pagelayer_pl_image_map(jQuery(this));
// Make image map editable
if(!pagelayer_empty(pagelayer_is_live)){
pagelayer_imgmap_handler(jQuery(this));
}
});
});
jQuery(window).resize(function(){
jQuery('.pagelayer-scrolling-effects').each(function(){
pagelayer_scrolling_effects(jQuery(this));
});
});
// Add all shuffle instance in this object
var shuffleInstance = {};
// Portfolio Gallery
function pagelayer_pl_img_portfolio(jEle){
var id = jEle.attr('pagelayer-id');
var arr = [];
// Fetch all categories in array
jEle.find('[port-cat]').each(function(){
var cat = jQuery(this).attr('port-cat');
if(cat){
//var sel = jQuery(this).parent('.pagelayer-ele-wrap') ? jQuery(this).parent('.pagelayer-ele-wrap') : jQuery(this);
jQuery(this).attr('data-groups','["'+cat+'"]');
if(!arr.includes(cat)){
arr.push(cat);
}
}
})
// Create category button html
var html = '<button class="pagelayer-pfbtn" data-pgl_pfbtn="all">All</button>';
arr.forEach(function(val){
if(val && val != 'all'){
html += '<button class="pagelayer-pfbtn" data-pgl_pfbtn="'+val+'">'+val+'</button>';
}
});
// Append category buttons to holder
jEle.find('.pagelayer-category-holder').empty().append(html);
var setup = jEle.attr('pagelayer-setup');
// Already setup ? then distroy shuffle
if(setup && setup.length > 0 && !pagelayer_empty(shuffleInstance[id])){
shuffleInstance[id].destroy();
}
// Create an shuffle instance
var Shuffle = window.Shuffle;
var element = jEle.find('.pagelayer-img_portfolio-holder');
var sizer = jEle.find('.pagelayer-img_portfolio-holder');
shuffleInstance[id] = new Shuffle(element,{
itemSelector: '.pagelayer-img_portfolio-holder>div',
//sizer: sizer // could also be a selector: '.my-sizer-element'
});
// set click events on category buttons
if(!window.location.href.includes('pagelayer-live=1')){
jEle.find('button').on("click", function(){
shuffleInstance[id].filter(jQuery(this).attr('data-pgl_pfbtn'));
});
}
// Set that we have setup everything
jEle.attr('pagelayer-setup', 1);
}
// Reset Scrolling effects
function pagelayer_reset_scrolling(jEle, parentEle){
if(jEle.length < 1){
return;
}
var style = jEle.get(0).style;
style.setProperty("--transY", 0 +"px");
style.setProperty("--transX", 0 +"px");
style.setProperty("--rot", 0 +"deg");
jEle.css({"transform":"" , "opacity":"1" , "filter":"none"});
parentEle.off('scroll.'+jEle.attr('pagelayer-id'));
}
// Handle the scrolling effects
function pagelayer_scrolling_effects(jEle, parentEle){
parentEle = parentEle || jQuery(pagelayerGetDocumentElement());
var win = pagelayerGetCurrentWindow();
pagelayer_reset_scrolling(jEle, parentEle);
// Is this element to be scrolled on this Screen Size ?
var screens = jEle.attr('ele_motion_effect_on');
if(pagelayer_empty(screens) || screens.search(pagelayer_get_media_mode()) == -1){
return;
}
var style = jEle.get(0).style;
var totalProperty = '';
var documentHeight = parentEle.height();
var screenMiddle = documentHeight/2;
var eMid = documentHeight/2;// By default motion_area-entire_page
if(jEle.attr('motion_area') == 'viewport'){
jEle.css('top', '0px');
// For viewPort in Gutenberg
if (parentEle.hasClass('interface-interface-skeleton__content')) {
var scrollTopOfDiv = parentEle.scrollTop();
var offsetFromTopOfDiv = jEle.parent().offset().top - parentEle.offset().top + scrollTopOfDiv;
eMid = offsetFromTopOfDiv + jEle.parent().height() / 2;
}else{
eMid = jEle.parent().offset().top + jEle.parent().height() / 2;
}
screenMiddle = jQuery(win).height() / 2;
}
var screenHeightPercent = screenMiddle/100;
// Vertical Scroll
if(jEle.attr('ele_vertical_scroll')){
if(jEle.attr('motion_area')=='entire_page'){
jEle.offset({top:(documentHeight/2)});
}
totalProperty += "translateY(var(--transY))";
var vertical_top = Math.ceil(jEle.attr('ele_v_sc_top_viewport')*(screenHeightPercent));
var vertical_bottom = -Math.ceil(jEle.attr('ele_v_sc_bottom_viewport')*(screenHeightPercent));
}
// Horizontal scroll
if(jEle.attr('ele_horizontal_scroll')){
totalProperty += "translateX(var(--transX))";
var screenWidthPercent = jQuery(win).width()/200;
var horizontal_right = (Math.ceil(jEle.attr('ele_h_sc_right_viewport')*(screenWidthPercent)));
var horizontal_left = -(Math.ceil(jEle.attr('ele_h_sc_left_viewport')*(screenWidthPercent)));
}
// Transparency
if(jEle.attr('ele_transparency')){
var fadingLevel = 1-jEle.attr('ele_transp_level')/10;
var transparency_top = Math.ceil(jEle.attr('ele_transp_top_viewport')*(screenHeightPercent));
var transparency_bottom = Math.ceil(jEle.attr('ele_transp_bottom_viewport')*(screenHeightPercent));
}
// Blur
if(jEle.attr('ele_blur')){
var blurringLevel = jEle.attr('ele_blur_level');
var blur_top = Math.ceil(jEle.attr('ele_blur_top_viewport')*(screenHeightPercent));
var blur_bottom = Math.ceil(jEle.attr('ele_blur_bottom_viewport')*(screenHeightPercent));
}
// Rotate
if(jEle.attr('ele_rotate')){
totalProperty += "rotate(var(--rot))";
var rotate_top = Math.ceil(jEle.attr('ele_rot_top_viewport')*(screenHeightPercent));
var rotate_bottom = -Math.ceil(jEle.attr('ele_rot_bottom_viewport')*(screenHeightPercent));
}
// Scale
if(jEle.attr('ele_scale')){
var childScale = jEle.children("div");
var scalingLevel = jEle.attr('ele_scl_level');
var scale_top = Math.ceil(jEle.attr('ele_scl_top_viewport')*(screenHeightPercent));
var scale_bottom = Math.ceil(jEle.attr('ele_scl_bottom_viewport')*(screenHeightPercent));
}
if(totalProperty != ''){
jEle.css('transform', totalProperty);
}
// On Scroll calc and set
parentEle.on('scroll.'+jEle.attr('pagelayer-id'), function(){
var vpMid = parentEle.scrollTop() + jQuery(win).height()/2;
if(jEle.attr('ele_vertical_scroll')){
var preCalc = ((eMid-vpMid)/10)*(jEle.attr('ele_v_sc_speed'));
if(jEle.attr('ele_v_sc_direction') == 'opposite'){
if(-preCalc<=vertical_top && -preCalc>vertical_bottom){
style.setProperty("--transY", preCalc +"px");
}
}else if(jEle.attr('ele_v_sc_direction') == 'similar'){
if(preCalc<=vertical_top && preCalc>vertical_bottom){
style.setProperty("--transY", -preCalc +"px");
}
}
}
if(jEle.attr('ele_horizontal_scroll')){
var preCalc = (eMid-vpMid)*(jEle.attr('ele_h_sc_speed')/2);
if(jEle.attr('ele_h_sc_direction')=='toleft'){
if(preCalc<=horizontal_right && preCalc>horizontal_left)
style.setProperty("--transX", preCalc +"px");
}else if(jEle.attr('ele_h_sc_direction')=='toright'){
if(-preCalc<=horizontal_right && -preCalc>horizontal_left)
style.setProperty("--transX", -preCalc +"px");
}
}
if(jEle.attr('ele_transparency')){
var preCalc = (vpMid)-eMid;
if(preCalc>(-transparency_bottom) && preCalc<=transparency_top){
var eMidB = eMid-transparency_bottom;
var eMidT = eMid+transparency_top;
var eMidTB = eMidT-eMidB;
if(jEle.attr('ele_transp_type')=='fadein'){
var fadeIn = ((vpMid-eMidB)/eMidTB)+fadingLevel;
jEle.css("opacity",fadeIn);
}else if(jEle.attr('ele_transp_type')=='fadeout'){
var fadeOut = ((eMidT-vpMid)/eMidTB)+fadingLevel;
jEle.css("opacity",fadeOut);
}else if(jEle.attr('ele_transp_type')=='fadeinout'){
var fadeInOut1 = ((vpMid-eMidB)/(eMidTB/2))+fadingLevel;
var fadeInOut2 = ((eMidT-vpMid)/(eMidTB/2))+fadingLevel;
if(fadeInOut1<1+fadingLevel && fadeInOut1>0+fadingLevel){
jEle.css("opacity",fadeInOut1);
}else if(fadeInOut2<1+fadingLevel && fadeInOut2>0+fadingLevel){
jEle.css("opacity",fadeInOut2);
}
}else if(jEle.attr('ele_transp_type')=='fadeoutin'){
var fadeOutIn1 = (((vpMid-eMidB)/(eMidTB/2)-1))+fadingLevel;
var fadeOutIn2 = (((eMidT-vpMid)/(eMidTB/2)-1))+fadingLevel;
if(fadeOutIn2<1+fadingLevel && fadeOutIn2>0+fadingLevel){
jEle.css("opacity",fadeOutIn2);
}else if(fadeOutIn1<1+fadingLevel && fadeOutIn1>0+fadingLevel){
jEle.css("opacity",fadeOutIn1);
}
}
}
}
if(jEle.attr('ele_blur')){
var preCalc = vpMid-eMid;
if(preCalc>-(blur_bottom) && preCalc<=blur_top){
var eMidB = eMid-blur_bottom;
var eMidT = eMid+blur_top;
var eMidTB = eMidT-eMidB;
if(jEle.attr('ele_blur_type')=='blurin'){
var blurIn = ((eMidT-vpMid)/eMidTB)*blurringLevel;
jEle.css("filter","blur("+blurIn+"px)");
}else if(jEle.attr('ele_blur_type')=='blurout'){
var blurOut = ((vpMid-eMidB)/eMidTB)*blurringLevel;
jEle.css("filter","blur("+blurOut+"px)");
}else if(jEle.attr('ele_blur_type')=='blurinout'){
var blurInOut1 = (vpMid-eMidB)/(eMidTB/2)*blurringLevel;
var blurInOut2 = (eMidT-vpMid)/(eMidTB/2)*blurringLevel;
if(blurInOut1<1*blurringLevel && blurInOut1>0.01*blurringLevel){
jEle.css("filter","blur("+blurInOut1+"px)");
}else if(blurInOut2<1*blurringLevel && blurInOut2>0.01*blurringLevel){
jEle.css("filter","blur("+blurInOut2+"px)");
}
}else if(jEle.attr('ele_blur_type')=='bluroutin'){
var blurOutIn1 = ((vpMid-eMidB)/(eMidTB/2)-1)*blurringLevel;
var blurOutIn2 = ((eMidT-vpMid)/(eMidTB/2)-1)*blurringLevel;
if(blurOutIn2<1*blurringLevel && blurOutIn2>0.01*blurringLevel){
jEle.css("filter","blur("+blurOutIn2+"px)");
}else if(blurOutIn1<1*blurringLevel && blurOutIn1>0.01*blurringLevel){
jEle.css("filter","blur("+blurOutIn1+"px)");
}
}
}
}
if(jEle.attr('ele_rotate')){
var preCalc = ((vpMid-eMid)/2);
var rotSpeed = jEle.attr('ele_rot_speed')/2;
if(jEle.attr('ele_rot_direction')=='clockwise'){
if(preCalc<=rotate_top && preCalc>rotate_bottom){
style.setProperty("--rot", preCalc*rotSpeed +"deg");
}
}else if(jEle.attr('ele_rot_direction')=='anticlockwise'){
if(preCalc<=rotate_top && preCalc>rotate_bottom){
style.setProperty("--rot", -preCalc*rotSpeed +"deg");
}
}
}
if(jEle.attr('ele_scale')){
var preCalc = vpMid-eMid;
if(preCalc>-(scale_bottom) && preCalc<=scale_top){
var eMidB = eMid-scale_bottom;
var eMidT = eMid+scale_top;
var eMidTB = eMidT-eMidB;
if(jEle.attr('ele_scl_direction')=='scaleup'){
var scaleUp = ((vpMid-eMidB)/eMidTB)*scalingLevel+1;
childScale.css("transform","scale("+ scaleUp +")");
}else if(jEle.attr('ele_scl_direction')=='scaledown'){
var scaleDown = ((eMidT-vpMid)/eMidTB)*scalingLevel+1;
childScale.css("transform","scale("+ scaleDown +")");
}else if(jEle.attr('ele_scl_direction')=='scaleupdown'){
var scaleUpDown2 = (vpMid-eMidB)/(eMidTB/2)*scalingLevel+1;
var scaleUpDown1 = (eMidT-vpMid)/(eMidTB/2)*scalingLevel+1;
if(scaleUpDown1<1*scalingLevel && scaleUpDown1>0.1*scalingLevel){
childScale.css("transform","scale("+ scaleUpDown1 +")");
}else if(scaleUpDown2<1*scalingLevel && scaleUpDown2>0.1*scalingLevel){
childScale.css("transform","scale("+ scaleUpDown2 +")");
}
}else if(jEle.attr('ele_scl_direction')=='scaledownup'){
var scaleDownUp1 = ((vpMid-eMidB)/(eMidTB/2)-1)*scalingLevel+1;
var scaleDownUp2 = ((eMidT-vpMid)/(eMidTB/2)-1)*scalingLevel+1;
if(scaleDownUp1<1*scalingLevel && scaleDownUp1>0.1*scalingLevel){
childScale.css("transform","scale("+ scaleDownUp1 +")");
}else if(scaleDownUp2<1*scalingLevel && scaleDownUp2>0.1*scalingLevel){
childScale.css("transform","scale("+ scaleDownUp2 +")");
}
}
}
}
});
};
function pagelayer_mouse_reset(jEle){
var win = pagelayerGetCurrentWindow();
jEle.css("transform", "");
var style = jEle.get(0).style;
style.setProperty("--transY", 0 +"px");
style.setProperty("--transX", 0 +"px");
style.setProperty("--rotX", 0 +"deg");
style.setProperty("--rotY", 0 +"deg");
jQuery(win).off('mousemove.'+jEle.attr('pagelayer-id'));
}
// Mouse Effects setup
function pagelayer_mouse_effects(jEle){
pagelayer_mouse_reset(jEle);
var style = jEle.get(0).style;
var mouseproperty = '';
var halfWidth = jEle.parent().offset().left+jEle.parent().width()/2;
var halfHeight = jEle.parent().offset().top+jEle.parent().height()/2;
if(jEle.attr('ele_m_track')){
mouseproperty += 'translateX(var(--transX)) translateY(var(--transY))';
var mouseLevel = jEle.attr('ele_m_tr_level');
}
if(jEle.attr('ele_3d_tilt')){
mouseproperty += ' rotateX(var(--rotX)) rotateY(var(--rotY))';
jEle.parent().css("perspective", "1200px");
var tiltLevel = jEle.attr('ele_3d_tilt_level');
}
if(mouseproperty != ''){
jEle.css("transform", mouseproperty);
}
var win = pagelayerGetCurrentWindow();
jQuery(win).bind('mousemove.'+jEle.attr('pagelayer-id'), function(event){
if(jEle.attr('ele_m_track')){
if(jEle.attr('ele_m_tr_direction') == 'opposite'){
var x =((event.pageX - halfWidth)*mouseLevel)/10;
var y =((event.pageY - halfHeight)*mouseLevel)/10;
style.setProperty("--transX",-x +"px");
style.setProperty("--transY",-y +"px");
//console.log(halfWidth +" "+ mouseLevel);
}else if(jEle.attr('ele_m_tr_direction') == 'same'){
var x =((event.pageX - halfWidth)*mouseLevel)/10;
var y = ((event.pageY-halfHeight)*mouseLevel)/10;
style.setProperty("--transX",x +"px");
style.setProperty("--transY",y +"px");
}
}
if(jEle.attr('ele_3d_tilt')){
if(jEle.attr('ele_3d_tilt_direction')=='opposite'){
var x=((event.pageX - halfWidth)*tiltLevel)/100;
var y=((event.pageY - halfHeight)*tiltLevel)/100;
style.setProperty("--rotX", y +"deg");
style.setProperty("--rotY",-x + "deg");
}else if(jEle.attr('ele_3d_tilt_direction')=='same'){
var x=((event.pageX - halfWidth)*tiltLevel)/100;
var y=((event.pageY - halfHeight)*tiltLevel)/100;
style.setProperty("--rotX",-y + "deg");
style.setProperty("--rotY",x +"deg");
}
}
});
}
// Element sticky handler
function pagelayer_ele_sticky_handler(jEle, parentEle){
// Set element stickied
if(jEle.attr('pagelayer-stickied-ele') == 1){
return;
}
parentEle = parentEle || jQuery(window);
jEle.attr('pagelayer-stickied-ele', 1);
var jEleTop = jEle.offset().top;
var jEleW = jEle[0].clientWidth +'px';
var oldstyle = jEle.attr('style') || '';
var pagelayer_sticky = function(){
var position = jEle.attr('data-sticky-position') || '';
var offset = jEle.attr('data-sticky-offset') || 0;
var sticky_in_col = jEle.attr('data-sticky_in_col') || '';
var sticky_on = jEle.attr('data-sticky-on') || '';
sticky_on = sticky_on.split(',');
// If match the media
var do_sticky = false;
for(var x in sticky_on){
if(pagelayer_get_media_mode() == sticky_on[x]){
do_sticky = true;
}
}
// If there is a wrapper
var wrapper = jEle.parent('.pagelayer-ele-wrap');
if(wrapper.length > 0 ){
// Reset jEle
jEle.next('.pagelayer-sticky-space-holder').remove();
jEle.attr('style', oldstyle);
// Get wrapper old syle
oldstyle = wrapper.attr('oldstyle') || '';
if(pagelayer_empty(oldstyle)){
oldstyle = wrapper.attr('style') || '1';
wrapper.attr('oldstyle', oldstyle);
}else if(oldstyle == '1'){
oldstyle = '';
}
}else{
wrapper = jEle;
}
var parentHeight = parentEle.height();
var parentScrollTop = parentEle.scrollTop();
var topToCheck = jEleTop - parentScrollTop;
// Do fixed the element
var pagelayer_fixed = function(){
var opp_position = (position == 'top') ? 'bottom' : 'top';
var fixed_css = {'position': 'fixed', 'width': jEleW, 'max-width': jEleW, [position] : offset +'px', [opp_position]: 'auto','z-index' : '99'}
// For the sticky in columns
if(!pagelayer_empty(sticky_in_col)){
//fixed_css['position'] = 'sticky';
var container = wrapper.parent();
var containerTop = container.offset().top;
if((containerTop + container.height()) - parentScrollTop <= wrapper.outerHeight(true) + offset || containerTop - parentScrollTop >= parentHeight - wrapper.outerHeight(true) - offset){
fixed_css['position'] = 'absolute';
fixed_css[opp_position] = '0px';
fixed_css[position] = 'auto';
}
}
// Add position holder element
if(wrapper.next('.pagelayer-sticky-space-holder').length < 1 ){
var clone = wrapper.clone(true);
clone.addClass('pagelayer-sticky-space-holder');
clone.css({'visibility' : 'hidden', 'transition': 'none 0s ease 0s', 'animation': '0s ease 0s 1 normal none running none'});
// Remove pagelayer-parent attributes to avoid group children list double
if(!pagelayer_empty(pagelayer_is_live)){
clone.removeClass('pagelayer-ele-wrap');
clone.removeClass('pagelayer-ele');
clone.find('.pagelayer-ele').removeClass('pagelayer-ele');
clone.find('[pagelayer-id]').removeAttr('pagelayer-id');
}
// Add
wrapper.after(clone);
//wrapper.after('<div class="pagelayer-sticky-space-holder" style="width:'+wrapper.outerWidth(true)+'px;height:'+wrapper.outerHeight(true)+'px;visibility:hidden;margin:0px;"></div>');
}
// Css for fixed the element
wrapper.css(fixed_css);
}
// TODO: manage margin
var mTopEle = parseFloat(wrapper.css('margin-top'));
var mBottomEle = parseFloat(wrapper.css('margin-bottom'));
// Fixed on top
if( position == 'top' && (topToCheck <= offset+mTopEle && do_sticky) ){
pagelayer_fixed();
// Fixed on bottom
}else if( position == 'bottom' && topToCheck + wrapper.outerHeight()+mBottomEle >= parentHeight - offset && do_sticky) {
pagelayer_fixed();
// Set old style
}else{
wrapper.attr('style', oldstyle);
wrapper.next('.pagelayer-sticky-space-holder').remove();
jEleW = wrapper[0].clientWidth +'px';
jEleTop = wrapper.offset().top;
}
return true;
};
// Run for the first time
pagelayer_sticky();
// On window scroll
parentEle.scroll(pagelayer_sticky);
parentEle.resize(pagelayer_sticky);
}
function pagelayer_pl_posts(jEle){
var ul = jEle.find('.pagelayer-posts-container');
ul.addClass('pagelayer-owl-carousel pagelayer-owl-theme');
// Build the options
var options = pagelayer_fetch_dataAttrs(ul, 'data-owl-');
// Already setup ?
var setup = jEle.attr('pagelayer-setup');
// If already setup then Destroy Owl
if(setup && setup.length > 0){
ul.pagelayerOwlCarousel('destroy');
ul.find('[class^="pagelayer-owl-"]').remove();
}
//console.log(options);
ul.pagelayerOwlCarousel(options);
// Set that we have setup everything
jEle.attr('pagelayer-setup', 1);
}
function pagelayer_pl_slides(jEle){
var ul = jEle.find('.pagelayer-slides-holder');
// Build the options
var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-');
var blurNav = false;
if(pagelayer_is_live){
if(!options.nav && !options.dots) {
options.nav = true;
options.dots = true;
blurNav = true;
}
options.mouseDrag = false;
}
pagelayer_owl_init(jEle, ul, options);
if(blurNav){
ul.find('.pagelayer-owl-nav button').css({'filter': 'blur(2px)'});
ul.find('.pagelayer-owl-dot').css({'filter': 'blur(2px)'});
}
// Shows element animations after slide change
ul.on('refresh.owl.carousel translate.owl.carousel', function(e) {
var slide = jQuery(this);
if(!pagelayer_is_live) {
slide.find('.pagelayer-wow').addClass('animated');
return;
}
slide.find('.pagelayer-ele').each(function() {
var ele = jQuery(this);
if(ele.css('animation-name') == 'none') {
return;
}
ele.addClass('pagelayer-wow animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
ele.removeClass('pagelayer-wow animated');
});
});
});
}
// For Pagelayer Pro
// Show tooltip in image hotspot
function pagelayer_image_hotspot(jEle){
// Drag and Drop function for image
if (typeof pagelayer_preDAndD_image !== "undefined") {
pagelayer_preDAndD_image(jEle);
}
var tooltip_click = jEle.find('.pagelayer-icon-holder');
var icon_holder = jEle.find('.pagelayer-hotspots-icon-holder');
icon_holder.off('click');
icon_holder.find('.pagelayer-tooltip-text').removeClass('pagelayer-tooltip-on-click');
if(tooltip_click.hasClass('pagelayer-hotspots-click')){
icon_holder.each(function(){
jQuery(this).click(function(){
jQuery(this).find( '.pagelayer-tooltip-text' ).toggleClass('pagelayer-tooltip-on-click');
})
});
}
// Assigning animation classes to icon holder
if(!pagelayer_empty(tooltip_click.attr('pagelayer-animation'))){
icon_holder.addClass('pagelayer-animation-'+tooltip_click.attr('pagelayer-animation'));
}
}
var pagelayer_chart_objects = {};
// Show Chart render
function pagelayer_chart(jEle){
var holder = jEle.find('.pagelayer-chart-holder');
var id = jEle.attr('pagelayer-id');
var type = holder.attr('chart-type');
var labels = holder.attr('chart-labels') || '';
var legend = holder.attr('chart-legend');
var chart_datasets = [];
labels = labels.split(',');
//console.log(labels);
jEle.find('.pagelayer-chart-child-holder').find('.pagelayer-chart-datasets').each(function(){
var tmp_dataset = {};
//console.log(jQuery(this).attr('chart-datasets'));
var chartDatasets = jQuery(this).attr('chart-datasets') || '';
tmp_dataset['data'] = chartDatasets.split(',');
//tmp_dataset['data'] = [734,784,2478,5267,433];
tmp_dataset['label'] = jQuery(this).attr('datasets-label');
tmp_dataset['backgroundColor'] = ( holder.attr('chart-colors') ? holder.attr('chart-colors').split(',') : jQuery(this).attr('dataset-bg') );
tmp_dataset['borderColor'] = jQuery(this).attr('border-color');
tmp_dataset['borderWidth'] = 1;
tmp_dataset['fill'] = ( jQuery(this).attr('dataset-fill') ? true : false );
chart_datasets.push(tmp_dataset);
});
//console.log(chart_datasets);
//chart_datasets = chart_datasets.join(',');
if(id in pagelayer_chart_objects && typeof pagelayer_chart_objects[id].destroy == 'function'){
pagelayer_chart_objects[id].destroy();
}
pagelayer_chart_objects[id] = new Chart(jEle.find('.pagelayer-chart-holder'), {
type: type,
data: {
labels: labels,
datasets:
chart_datasets
},
options: {
//rotation: holder.attr('data-pierotate') * Math.PI,
//circumference: holder.attr('data-circumference') * Math.PI,
maintainAspectRatio: ( holder.attr('chart-height') ? false : true ),
legend: {
display: ( legend ? true : false ),
position: legend,
},
scales: {
xAxes: [
{
barPercentage: 1,
categoryPercentage: 0.9,
ticks:{
beginAtZero: holder.attr('data-xbegin'),
fontColor: holder.attr('data-xcolor'),
fontSize: holder.attr('data-xsize'),
autoSkip: false,
maxRotation: holder.attr('data-xrotate'),
minRotation: holder.attr('data-xrotate')
},
//stacked: true
}
],
yAxes:[
{
ticks:{
beginAtZero: holder.attr('data-ybegin'),
fontColor: holder.attr('data-ycolor'),
fontSize: holder.attr('data-ysize'),
autoSkip: false,
maxRotation: holder.attr('data-yrotate'),
minRotation: holder.attr('data-yrotate')
},
//stacked: true
}
]
}
}
});
}
// Show table render
function pagelayer_table(jEle){
var tHolder = jEle.find('.pagelayer-table-holder');
var dHolder = jEle.find('.pagelayer-data-holder');
var trEle = dHolder.find(".pagelayer-table_row");
var tdlength = 0;
tHolder.empty();
/*trEle.each(function(){
var tdEle = jQuery(this).find(".pagelayer-table_col").length;
if(tdlength < tdEle){tdlength = tdEle}
});*/
// Add rows
trEle.each(function(){
var this_trEle = jQuery(this);
var this_trId = this_trEle.attr('pagelayer-id');
var tdEle = this_trEle.find(".pagelayer-table_col");
var html = '';
// Add columns
tdEle.each(function(){
var td_data_Holder = jQuery(this).find('.pagelayer-col-data');
var td_id = jQuery(this).attr('pagelayer-id');
var tdata = td_data_Holder.attr('data-td') || '';
var t_tag = td_data_Holder.attr('data-tag') || '';
var attrs = {};
var col_attr = '';
attrs['colspan']= td_data_Holder.attr('data-colspan') || '';
attrs['rowspan'] = td_data_Holder.attr('data-rowspan') || '';
if(!pagelayer_empty(pagelayer_is_live)){
attrs['pagelayer-ref-id'] = td_id;
attrs['pagelayer-editable'] = 'data';
attrs['contenteditable'] = 'true';
}
for(var key in attrs){
if(!pagelayer_empty(attrs[key])){
col_attr += key+'="'+attrs[key]+'"';
}
}
html = html+'<'+t_tag +' '+col_attr+' pagelayer-table-id="'+td_id+'">'+tdata+'</'+t_tag+'>';
});
/* if(tdlength > tdEle.length){
var extra_td = tdlength - tdEle.length;
for(var i=0; extra_td >i; i++){
html = html+'<td></td>';
}
} */
tHolder.append('<tr pagelayer-table-id="'+this_trId+'">'+html+'</tr>');
});
if(!pagelayer_empty(pagelayer_is_live)){
tHolder.on('input', '[contenteditable]', function(){
var jEle = jQuery(this);
var val = pagelayer_trim(jEle.html());
var id = jEle.closest('[pagelayer-ref-id]').attr('pagelayer-ref-id');
if(pagelayer_empty(id)){
return;
}
jQuery('[pagelayer-id='+id+']').find('.pagelayer-col-data').attr('data-td', val);
});
}
}
function pagelayer_audio(jEle){
var audio = jQuery(jEle.find('audio'));
var container = jEle.find('.pagelayer-audio-container');
var features = ['playpause','tracks','fullscreen'];
(container.attr('show_duration') ? features.push('duration') : '' );
(container.attr('show_progress') ? features.push('progress') : '' );
(container.attr('show_current') ? features.push('current') : '' );
(container.attr('show_volume') ? features.push('volume') : '' );
audio.mediaelementplayer({
//features: ['playpause','duration','progress','current','volume','tracks','fullscreen']
features: features
});
}
// Post Portfolio Handler - Premium
function pagelayer_post_folio(jEle){
var btn = jEle.find('.pagelayer-postfolio-btn');
var thumb = jEle.find('.pagelayer-postfolio-thumb');
btn.unbind('click');
btn.on('click', function(){
var btn_cat = jQuery(this).data("filter");
if(btn_cat == 'all'){
jQuery(thumb).fadeIn(1200);
}else{
thumb.each(function(){
var thumb_cat = jQuery(this).data("category");
if(!pagelayer_empty(thumb_cat)){
thumb_cat = thumb_cat.split(' ');
if(jQuery.inArray( btn_cat, thumb_cat ) == -1){
jQuery(this).hide();
}else{
jQuery(this).fadeIn(600);
}
}else{
jQuery(this).hide();
}
});
}
});
}
// Search Form handler - Premium
function pagelayer_search_form(jEle){
// In full screen mode set auto complete offscreenBuffering
jEle.find('.pagelayer-search-full-screen form').attr('autocomplete', 'off');
jEle.find('.pagelayer-search-toggle').click(function(){
jEle.find('.pagelayer-search-fields').toggleClass('show');
});
jEle.find('.pagelayer-search-fields').click(function(e){
e = window.event || e;
if(this === e.target) {
jQuery(this).removeClass('show');
}
});
}
// Login Form handler - Premium
function pagelayer_login_submit(jEle, e){
e.preventDefault();
var fdata = new FormData( jQuery(jEle).closest('form')[0] );
// Append the nonce
fdata.append('pagelayer_nonce', pagelayer_global_nonce);
jQuery.ajax({
url: pagelayer_ajaxurl+'action=pagelayer_login_submit',
type: "POST",
data: fdata,
processData: false,
contentType: false,
cache:false,
success:function(result){
var json = jQuery.parseJSON(result);
// console.log(json);
if(!pagelayer_empty(json['error'])){
jQuery(".pagelayer-login-error-box").html(json['error']).fadeIn().delay(10000).fadeOut();
}else{
if(!pagelayer_empty(json['redirect'])){
window.location.href = json['redirect'];
}else{
location.reload(true);
}
}
}
});
}
//Review slider handler - Premium
function pagelayer_reviews_slider(jEle){
var ul = jEle.find('.pagelayer-reviews-holder');
// Build the options
var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-');
pagelayer_owl_init(jEle, ul, options);
}
// Facebook App ID handler - Premium
function pagelayer_fb_apps(jEle){
var app_id = jEle.find('.pagelayer-app-details').attr('pagelayer-app-id');
if(pagelayer_empty(app_id) || app_id == "{{fb-app-id}}"){
app_id = pagelayer_facebook_id;
}
// If still empty
if(pagelayer_empty(app_id)){
return;
}
var win = pagelayerGetCurrentWindow();
var doc = pagelayerGetDocumentElement();
win.fbAsyncInit = function() {
win.FB.init({
appId : app_id,
autoLogAppEvents : true,
xfbml : true,
version : 'v3.3'
});
};
win.FB = null;
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
js = d.createElement(s); js.id = id;
js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0";
fjs.parentNode.insertBefore(js, fjs);
}(doc, 'script', 'facebook-jssdk'));
}
// SiteMap Attribute Handler- Premium
function pagelayer_sitemap_add_attributes(jEle){
var nofollow = jEle.find('.pagelayer-sitemap-div-holder').data('nofollow');
if(!pagelayer_empty(nofollow)){
jEle.find('.pagelayer-sitemap-section .pagelayer-sitemap-list-item a').attr('rel','nofollow');
}
}
// Initialize video slider
function pagelayer_pl_video_slider(jEle){
var ul = jEle.find('.pagelayer-video-slider-holder');
// Build the options
var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-');
pagelayer_owl_init(jEle, ul, options);
}
// Splash widget
function pagelayer_pl_splash_screen(jEle){
if(!pagelayer_empty(pagelayer_is_live)){
return;
}
if( jEle.attr('display_type') == "once"){
if (!sessionStorage.isVisited) {
sessionStorage.isVisited = "true";
jEle.delay(jEle.attr('delay')).fadeIn();
}
}else{
jEle.delay(jEle.attr('delay')).fadeIn();
}
jEle.find('.pagelayer-splash-close, .pagelayer-splash-bg-close').on('click', function(){
jEle.fadeOut();
});
}
// Facebook width adjustment function
function pagelayer_fb_width(jEle){
var facebook = (jEle.find('.fb-page').length ? jEle.find('.fb-page') : jEle.find('.fb-embed'));
var fb_resize = function(){
facebook.attr('data-width', jEle.width());
FB.XFBML.parse();
};
setTimeout(fb_resize, 1000);
var win = pagelayerGetCurrentWindow();
jQuery(win).on('resize', function(){
setTimeout(fb_resize, 1000);
});
}
// WooCommenrce cart
function pagelayer_woo_menu_cart(jEle){
// On click menu cart
jEle.find('.pagelayer-menu-cart-toggle').click(function(e){
e.preventDefault();
jEle.find('.pagelayer-menu-cart-container').toggle();
});
// On click menu cart close
jEle.find('.pagelayer-menu-cart-close').click(function(){
jEle.find('.pagelayer-menu-cart-container').hide();
});
}
// Setup the pop-ups
function pagelayer_popup_setup(popEle){
var jEle = popEle.find('.pagelayer-popup').first();
var id = jEle.attr('pagelayer-id');
var popup_content = popEle.find('.pagelayer-popup-modal-content');
var data = new Object();
// Set the Pou-up id
popEle.attr('pagelayer-popup-id', id);
if(jEle.length < 1) return;
jQuery.each(jEle[0].attributes, function(index, att){
if(att.name.match(/data\-/i)){
data[att.name.substr(5)] = att.value;
}
});
// Show pop-up
var popup_show = function(force){
// Is there a cookie?
if( !pagelayer_empty(data['popup_cookie_session']) && !pagelayer_empty(data['popup_cookie_name']) && pagelayer_empty(force)){
var name = data['popup_cookie_name']+ "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return;
}
}
}
// Avoid multi time open
if(!pagelayer_empty(popEle.attr('pagelayer-popup-Shown')) && pagelayer_empty(data['popup_multi_time'])){
return;
}
popEle.css({'display' : 'flex'});
popEle.attr('pagelayer-popup-Shown', 1);
// Animate the Pop-up content
if(!pagelayer_empty(data['popup_animation'])){
popup_content.addClass(data['popup_animation'] + ' animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
jQuery(this).removeClass(data['popup_animation']+ ' animated');
});
}
// Auto close
if(!pagelayer_empty(data['popup_auto_close'])){
var cSecond = parseFloat(data['popup_auto_close']);
setTimeout(function(){
popEle.find('.pagelayer-popup-close').click();
}, cSecond * 1000);
}
}
// Append the close element
// remove close element
popEle.find('.pagelayer-popup-close').remove();
// Put close button inside or outside
if(data['popup_cbtn_position'] == 'outside'){
popEle.append('<div class="pagelayer-popup-close"><i class="fas fa-times" ></i></div>');
}else{
popEle.find('.pagelayer-popup-modal-content').append('<div class="pagelayer-popup-close"><i class="fas fa-times" ></i></div>');
}
var closer = popEle.find('.pagelayer-popup-close');
// On click close
closer.click(function(e){
jQuery(document).trigger('pagelayer_popup_close', e, popEle);
e.preventDefault();
e.stopPropagation();
popEle.hide();
});
// Hide pop-up on click modal container
if ( !pagelayer_empty(data['overlay_close']) ){
popEle.click(function(e){
if(jQuery(e.target).closest('.pagelayer-popup-modal-content').length > 0) return;
closer.click();
});
}
// Hide pop-up click on selector
if ( !pagelayer_empty(data['selector_close']) ){
jQuery(data['selector_close']).click(function(e){
closer.click();
});
}
// Is there a cookie to be set to be remembered ?
if( !pagelayer_empty(data['popup_cookie_session']) && !pagelayer_empty(data['popup_cookie_name']) ){
// Set cookie on close as well ?
if(!pagelayer_empty(data['popup_cookie_close'])){
data['popup_cookie_selector'] = '.pagelayer-popup-close'+(pagelayer_empty(data['popup_cookie_selector']) ? '' : ','+data['popup_cookie_selector']);
}
if(!pagelayer_empty(data['popup_cookie_selector'])){
pagelayer_popup_set_cookie(data, closer);
}
}
// Pop-up triggers
// If we are in editor
if ( !pagelayer_empty(popEle.attr('pagelayer-popup-editor')) ) {
closer.unbind('click');
popEle.unbind('click');
popEle.removeAttr('pagelayer-popup-Shown');
popup_show(true);
}
// Click popup show
if(!pagelayer_empty(data['trig_click'])){
jQuery(data['trig_click_ele']).click(popup_show);
}
// Popup show on load
if(!pagelayer_empty(data['trig_load'])){
var second = parseFloat(data['trig_load_sec'] || 0);
setTimeout(popup_show, second * 1000);
}
// Popup show on scroll
if(!pagelayer_empty(data['trig_scroll'])){
// Initial state
var scrollPos = 0;
// adding scroll event
jQuery(window).on('scroll', function(){
// detects new state and compares it with the new one
if ( scrollY > scrollPos){
if(data['trig_scroll_dir'] == 'down'){
let scroll_per = scrollY*100/(jQuery(document).height() - innerHeight);
let scr_per =parseInt(data['trig_scroll_per']) || 0;
if( scr_per <= scroll_per){
popup_show();
}
}
}else if(data['trig_scroll_dir'] == 'up'){
popup_show();
}
// saves the new position for iteration.
scrollPos = scrollY;
});
}
// Popup show on scroll to element
if(!pagelayer_empty(data['trig_scroll_to_ele'])){
// adding scroll event
jEle.find(data['trig_scroll_to_ele_sel']).on('scroll', function(){
popup_show();
});
}
// On scroll popup show
if(!pagelayer_empty(data['trig_page_exit_intent'])){
jQuery(document).on('mouseleave', popup_show);
}
// When page load popup hide
if(!pagelayer_empty(data['trig_before_load'])){
closer.click();
}
}
// Sets the cookie
function pagelayer_popup_set_cookie(data, closer){
jQuery(data['popup_cookie_selector']).click(function(e){
var exdays = data['popup_cookie_exp'] || 0;
var d = new Date();
d.setTime(d.getTime() + ( parseFloat(exdays) *24*60*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = data['popup_cookie_name'] + "=1;" + expires + ";path=/";
if(closer && !jQuery(e.target).is(closer)){
closer.click();
}
});
}
// Before After Slider Handler
function pagelayer_before_after_slider(jEle){
let event = jEle.find('.pagelayer-before-after-container').attr('data-resize-event'),
slider = jEle.find('.pagelayer-before-after-slider'),
after = jEle.find('.pagelayer-after-image'),
resizer = jEle.find('.pagelayer-resizer'),
buttons = jEle.find('.pagelayer-before-btn, .pagelayer-after-btn'),
plID = jEle.attr('pagelayer-id');
resizer.removeAttr('style');
after.removeAttr('style');
// z - Custom value for both
var slideIt = function(e, z){
z = z || false;
let x, y;
if(z != false){
x = y = z;
}else{
let pos = slider.offset(),
eleWidth = slider.width(),
eleHeight = slider.height();
x = Math.min( (e.pageX - pos.left), eleWidth ) * 100 / eleWidth;
y = Math.min( (e.pageY - pos.top), eleHeight) * 100 / eleHeight;
}
if(x < 0 || x > 99.7 || y < 0 || y > 99.7){
return false;
}
if(slider.hasClass('pagelayer-before-after-slider-vertical')){
resizer.css({'top': y+'%'});
after.css({'clip-path': 'polygon(0px '+y+'%, 100% '+y+'%, 100% 100%, 0% 100%)'});
return;
}
resizer.css({'left': x+'%'});
after.css({'clip-path': 'polygon('+x+'% 0%, 100% 0%, 100% 100%, '+x+'% 100%)'});
}
var resizeOn = function(){
slider.addClass('resize');
}
var resizeOff = function(){
slider.removeClass('resize');
}
// Before After Button click handler
jEle.on('click', '.pagelayer-after-btn, .pagelayer-before-btn', function(e){
e.stopPropagation();
e.preventDefault();
var slide = (jQuery(this).hasClass('pagelayer-before-btn')) ? 90 : 10;
// Start resizing
resizeOn();
slideIt(e, slide);
// Stop resizing
resizeOff();
});
var win = pagelayerGetCurrentWindow();
var doc = pagelayerGetDocumentElement();
// Unbind All events
jQuery(win).unbind('mousemove.bf_slider'+plID);
slider.unbind('click mouseover mouseout');
resizer.unbind('mousedown');
jQuery(doc).unbind('mouseup.bf_slider'+plID);
// If there is no events
if(event == 'none' || pagelayer_empty(event)){
return;
}
if(event == 'hover'){
// No need of buttons while hover effect
buttons.fadeOut();
slider.on('mouseover', resizeOn);
slider.on('mouseout', resizeOff);
}else{
resizer.on('mousedown', function(e){
// To prevent widgets from being dragged.
e.stopPropagation();
e.preventDefault();
resizeOn();
buttons.fadeOut();
});
jQuery(doc).on('mouseup.bf_slider'+plID, function(e){
resizeOff();
buttons.fadeIn();
});
}
jQuery(win).on('mousemove.bf_slider'+plID, function(e){
if(!slider.hasClass('resize')){
return;
}
// Stop divs being selected.
e.stopPropagation();
e.preventDefault();
slideIt(e);
});
slider.on('click', slideIt);
}
// Image Map Widget
function pagelayer_pl_image_map(jEle){
var svgEle = jEle.find('.pagelayer-imgmap-svg');
var data = [];
svgEle.find('.pagelayer-imgmap-item').each(function(){
var data_link = jQuery(this).attr('data-link');
var data_id = jQuery(this).attr('data-id');
data[data_id] = data_link;
});
pagelayer_resize_imgmap(jEle);
jQuery(pagelayerGetCurrentWindow()).off('resize.plimgmap').on('resize.plimgmap',function(){
pagelayer_resize_imgmap(jEle);
});
if(!pagelayer_is_live){
for (const key in data) {
if(data == undefined || data[key].length === 0){
continue;
}
var elem = jEle.find('[data-id='+key+']');
elem.css({'cursor':'pointer'});
elem.off('click').on('click',function(){
window.open(data[key], "_blank");
});
}
svgEle.addClass('pagelayer-imgmap-hover-active');
}
}
function pagelayer_resize_imgmap(jEle){
var svgEle = jEle.find('svg');
var pathEles = svgEle.find('path');
if(pathEles.length > 0){
for (var i = 0; i < pathEles.length; i++) {
pagelayer_resize_imgmap_item(jQuery(pathEles[i]), jEle);
}
}
}
function pagelayer_resize_imgmap_item(path_ele, jEle = ''){
var wrap = jEle.find('.pagelayer-imgmap-wrapper');
var img_ele = jEle.find('img');
// Delay while resizing map
setTimeout(() => {
// Auto resize wrapper
wrap.css('cssText','width:'+img_ele.width()+'px;height:'+img_ele.height()+'px;left:'+img_ele.position().left+'px;top:'+img_ele.position().top+'px;');
var mapWidth = wrap.width();
var mapHeight = wrap.height();
var cords = path_ele.attr('data-cord');
var isActive = path_ele.hasClass('pagelayer-map-item-active') ? true : false;
cords = cords.split(',');
var tmpArr = [];
var tmpCord = '';
var count = 0;
cords.forEach((ele,index) => {
var prefix = index == 1 ? 'M' : 'L';
var perc = ele;
if(tmpCord.length == 0){
tmpCord = (mapWidth / 100) * perc;
}else{
var cord = (mapHeight / 100) * perc;
if(pagelayer_is_live){
var cordWrap = jEle.find('.pagelayer-imgmap-coordinates-wraper');
var mapId = path_ele.attr('data-id');
var cord_ele = jEle.find('.pl-cord-'+mapId).eq(count);
if(cord_ele.length == 0){
var cordHTML = `<div class="pagelayer-imgmap-coord pl-cord-`+mapId+`" title="Drag to reposition" data-id="`+count+`" style="left:`+(tmpCord)+`px;top:`+(cord)+`px" style="display:block;">
<span class="pagelayer-imgmap-remove-cord fa fa-trash"></span>
</div>`;
cordWrap.append(cordHTML);
}else{
var visibility = isActive ? 'display:block' : '';
cord_ele.css('cssText','left:'+tmpCord+'px;top:'+cord+'px;'+visibility);
}
}
tmpArr.push(prefix + tmpCord+' '+cord);
tmpCord = '';
count++;
}
});
// Close path denoted by z
var endOpr = pagelayer_is_live ? '' : 'z';
var value = tmpArr.join('').toString() + endOpr;
cords = cords.toString();
path_ele.attr('data-cord',cords);
path_ele.attr('d',value);
}, 10);
}
function pagelayer_create_imgmap_svg(classes = [], attrs = []){
// Create svg path element and append in the svg
var elem = document.createElementNS('http://www.w3.org/2000/svg', 'path');
if(classes.length > 0){
classes.forEach(cls => {
elem.classList.add(cls);
});
}
if(attrs.length > 0){
attrs.forEach(attr => {
elem.setAttribute(attr[0],attr[1]);
});
}
return elem;
}
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Shuffle=e()}(this,function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function i(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}function n(t){return(n=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function o(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function r(){}r.prototype={on:function(t,e,i){var n=this.e||(this.e={});return(n[t]||(n[t]=[])).push({fn:e,ctx:i}),this},once:function(t,e,i){var n=this;function s(){n.off(t,s),e.apply(i,arguments)}return s._=e,this.on(t,s,i)},emit:function(t){for(var e=[].slice.call(arguments,1),i=((this.e||(this.e={}))[t]||[]).slice(),n=0,s=i.length;n<s;n++)i[n].fn.apply(i[n].ctx,e);return this},off:function(t,e){var i=this.e||(this.e={}),n=i[t],s=[];if(n&&e)for(var o=0,r=n.length;o<r;o++)n[o].fn!==e&&n[o].fn._!==e&&s.push(n[o]);return s.length?i[t]=s:delete i[t],this}};var l=r,a=r;l.TinyEmitter=a;var u="undefined"!=typeof Element?Element.prototype:{},h=u.matches||u.matchesSelector||u.webkitMatchesSelector||u.mozMatchesSelector||u.msMatchesSelector||u.oMatchesSelector,f=function(t,e){if(!t||1!==t.nodeType)return!1;if(h)return h.call(t,e);for(var i=t.parentNode.querySelectorAll(e),n=0;n<i.length;n++)if(i[n]==t)return!0;return!1};var c=function(t,e){var i,n,s,o,r=0;return function(){i=this,n=arguments;var t=new Date-r;return o||(t>=e?l():o=setTimeout(l,e-t)),s};function l(){o=0,r=+new Date,s=t.apply(i,n),i=null,n=null}};function d(){}function m(t){return parseFloat(t)||0}var p=function(){function e(i,n){t(this,e),this.x=m(i),this.y=m(n)}return i(e,null,[{key:"equals",value:function(t,e){return t.x===e.x&&t.y===e.y}}]),e}(),v=function(){function e(i,n,s,o,r){t(this,e),this.id=r,this.left=i,this.top=n,this.width=s,this.height=o}return i(e,null,[{key:"intersects",value:function(t,e){return t.left<e.left+e.width&&e.left<t.left+t.width&&t.top<e.top+e.height&&e.top<t.top+t.height}}]),e}(),y={BASE:"shuffle",SHUFFLE_ITEM:"shuffle-item",VISIBLE:"shuffle-item--visible",HIDDEN:"shuffle-item--hidden"},g=0,_=function(){function e(i){t(this,e),g+=1,this.id=g,this.element=i,this.isVisible=!0,this.isHidden=!1}return i(e,[{key:"show",value:function(){this.isVisible=!0,this.element.classList.remove(y.HIDDEN),this.element.classList.add(y.VISIBLE),this.element.removeAttribute("aria-hidden")}},{key:"hide",value:function(){this.isVisible=!1,this.element.classList.remove(y.VISIBLE),this.element.classList.add(y.HIDDEN),this.element.setAttribute("aria-hidden",!0)}},{key:"init",value:function(){this.addClasses([y.SHUFFLE_ITEM,y.VISIBLE]),this.applyCss(e.Css.INITIAL),this.scale=e.Scale.VISIBLE,this.point=new p}},{key:"addClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.add(t)})}},{key:"removeClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.remove(t)})}},{key:"applyCss",value:function(t){var e=this;Object.keys(t).forEach(function(i){e.element.style[i]=t[i]})}},{key:"dispose",value:function(){this.removeClasses([y.HIDDEN,y.VISIBLE,y.SHUFFLE_ITEM]),this.element.removeAttribute("style"),this.element=null}}]),e}();_.Css={INITIAL:{position:"absolute",top:0,left:0,visibility:"visible",willChange:"transform"},VISIBLE:{before:{opacity:1,visibility:"visible"},after:{transitionDelay:""}},HIDDEN:{before:{opacity:0},after:{visibility:"hidden",transitionDelay:""}}},_.Scale={VISIBLE:1,HIDDEN:.001};var E=null,I=function(){if(null!==E)return E;var t=document.body||document.documentElement,e=document.createElement("div");return e.style.cssText="width:10px;padding:2px;box-sizing:border-box;",t.appendChild(e),E="10px"===window.getComputedStyle(e,null).width,t.removeChild(e),E};function b(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.getComputedStyle(t,null),n=m(i[e]);return I()||"width"!==e?I()||"height"!==e||(n+=m(i.paddingTop)+m(i.paddingBottom)+m(i.borderTopWidth)+m(i.borderBottomWidth)):n+=m(i.paddingLeft)+m(i.paddingRight)+m(i.borderLeftWidth)+m(i.borderRightWidth),n}var S={reverse:!1,by:null,compare:null,randomize:!1,key:"element"};function T(t,e){var i=Object.assign({},S,e),n=Array.from(t),s=!1;return t.length?i.randomize?function(t){for(var e=t.length;e;){e-=1;var i=Math.floor(Math.random()*(e+1)),n=t[i];t[i]=t[e],t[e]=n}return t}(t):("function"==typeof i.by?t.sort(function(t,e){if(s)return 0;var n=i.by(t[i.key]),o=i.by(e[i.key]);return void 0===n&&void 0===o?(s=!0,0):n<o||"sortFirst"===n||"sortLast"===o?-1:n>o||"sortLast"===n||"sortFirst"===o?1:0}):"function"==typeof i.compare&&t.sort(i.compare),s?n:(i.reverse&&t.reverse(),t)):[]}var k={},w="transitionend",C=0;function L(t){return!!k[t]&&(k[t].element.removeEventListener(w,k[t].listener),k[t]=null,!0)}function D(t,e){var i=w+(C+=1),n=function(t){t.currentTarget===t.target&&(L(i),e(t))};return t.addEventListener(w,n),k[i]={element:t,listener:n},i}function z(t){return Math.max.apply(Math,t)}function M(t,e,i,n){var s=t/e;return Math.abs(Math.round(s)-s)<n&&(s=Math.round(s)),Math.min(Math.ceil(s),i)}function A(t,e,i){if(1===e)return t;for(var n=[],s=0;s<=i-e;s++)n.push(z(t.slice(s,s+e)));return n}function F(t,e){for(var i,n=(i=t,Math.min.apply(Math,i)),s=0,o=t.length;s<o;s++)if(t[s]>=n-e&&t[s]<=n+e)return s;return 0}function x(t,e){var i={};t.forEach(function(t){i[t.top]?i[t.top].push(t):i[t.top]=[t]});var n=[],s=[],o=[];return Object.keys(i).forEach(function(t){var r=i[t];s.push(r);var l,a=r[r.length-1],u=a.left+a.width,h=Math.round((e-u)/2),f=r,c=!1;if(h>0){var d=[];(c=r.every(function(t){var e=new v(t.left+h,t.top,t.width,t.height,t.id),i=!n.some(function(t){return v.intersects(e,t)});return d.push(e),i}))&&(f=d)}if(!c&&r.some(function(t){return n.some(function(e){var i=v.intersects(t,e);return i&&(l=e),i})})){var m=o.findIndex(function(t){return t.includes(l)});o.splice(m,1,s[m])}n=n.concat(f),o.push(f)}),[].concat.apply([],o).sort(function(t,e){return t.id-e.id}).map(function(t){return new p(t.left,t.top)})}function O(t){return Array.from(new Set(t))}var N=0,H=function(e){function r(e){var i,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,r),(i=o(this,n(r).call(this))).options=Object.assign({},r.options,s),i.options.delimeter&&(i.options.delimiter=i.options.delimeter),i.lastSort={},i.group=r.ALL_ITEMS,i.lastFilter=r.ALL_ITEMS,i.isEnabled=!0,i.isDestroyed=!1,i.isInitialized=!1,i._transitions=[],i.isTransitioning=!1,i._queue=[];var l=i._getElementOption(e);if(!l)throw new TypeError("Shuffle needs to be initialized with an element.");return i.element=l,i.id="shuffle_"+N,N+=1,i._init(),i.isInitialized=!0,i}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(r,l),i(r,[{key:"_init",value:function(){if(this.items=this._getItems(),this.options.sizer=this._getElementOption(this.options.sizer),this.element.classList.add(r.Classes.BASE),this._initItems(this.items),this._onResize=this._getResizeFunction(),window.addEventListener("resize",this._onResize),"complete"!==document.readyState){var t=this.layout.bind(this);window.addEventListener("load",function e(){window.removeEventListener("load",e),t()})}var e=window.getComputedStyle(this.element,null),i=r.getSize(this.element).width;this._validateStyles(e),this._setColumns(i),this.filter(this.options.group,this.options.initialSort),this.element.offsetWidth,this.setItemTransitions(this.items),this.element.style.transition="height ".concat(this.options.speed,"ms ").concat(this.options.easing)}},{key:"_getResizeFunction",value:function(){var t=this._handleResize.bind(this);return this.options.throttle?this.options.throttle(t,this.options.throttleTime):t}},{key:"_getElementOption",value:function(t){return"string"==typeof t?this.element.querySelector(t):t&&t.nodeType&&1===t.nodeType?t:t&&t.jquery?t[0]:null}},{key:"_validateStyles",value:function(t){"static"===t.position&&(this.element.style.position="relative"),"hidden"!==t.overflow&&(this.element.style.overflow="hidden")}},{key:"_filter",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastFilter,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.items,i=this._getFilteredSets(t,e);return this._toggleFilterClasses(i),this.lastFilter=t,"string"==typeof t&&(this.group=t),i}},{key:"_getFilteredSets",value:function(t,e){var i=this,n=[],s=[];return t===r.ALL_ITEMS?n=e:e.forEach(function(e){i._doesPassFilter(t,e.element)?n.push(e):s.push(e)}),{visible:n,hidden:s}}},{key:"_doesPassFilter",value:function(t,e){if("function"==typeof t)return t.call(e,e,this);var i=e.getAttribute("data-"+r.FILTER_ATTRIBUTE_KEY),n=this.options.delimiter?i.split(this.options.delimiter):JSON.parse(i);function s(t){return n.includes(t)}return Array.isArray(t)?this.options.filterMode===r.FilterMode.ANY?t.some(s):t.every(s):n.includes(t)}},{key:"_toggleFilterClasses",value:function(t){var e=t.visible,i=t.hidden;e.forEach(function(t){t.show()}),i.forEach(function(t){t.hide()})}},{key:"_initItems",value:function(t){t.forEach(function(t){t.init()})}},{key:"_disposeItems",value:function(t){t.forEach(function(t){t.dispose()})}},{key:"_updateItemCount",value:function(){this.visibleItems=this._getFilteredItems().length}},{key:"setItemTransitions",value:function(t){var e=this.options,i=e.speed,n=e.easing,s=this.options.useTransforms?["transform"]:["top","left"],o=Object.keys(_.Css.HIDDEN.before).map(function(t){return t.replace(/([A-Z])/g,function(t,e){return"-".concat(e.toLowerCase())})}),r=s.concat(o).join();t.forEach(function(t){t.element.style.transitionDuration=i+"ms",t.element.style.transitionTimingFunction=n,t.element.style.transitionProperty=r})}},{key:"_getItems",value:function(){var t=this;return Array.from(this.element.children).filter(function(e){return f(e,t.options.itemSelector)}).map(function(t){return new _(t)})}},{key:"_mergeNewItems",value:function(t){var e=Array.from(this.element.children);return T(this.items.concat(t),{by:function(t){return e.indexOf(t)}})}},{key:"_getFilteredItems",value:function(){return this.items.filter(function(t){return t.isVisible})}},{key:"_getConcealedItems",value:function(){return this.items.filter(function(t){return!t.isVisible})}},{key:"_getColumnSize",value:function(t,e){var i;return 0===(i="function"==typeof this.options.columnWidth?this.options.columnWidth(t):this.options.sizer?r.getSize(this.options.sizer).width:this.options.columnWidth?this.options.columnWidth:this.items.length>0?r.getSize(this.items[0].element,!0).width:t)&&(i=t),i+e}},{key:"_getGutterSize",value:function(t){return"function"==typeof this.options.gutterWidth?this.options.gutterWidth(t):this.options.sizer?b(this.options.sizer,"marginLeft"):this.options.gutterWidth}},{key:"_setColumns",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r.getSize(this.element).width,e=this._getGutterSize(t),i=this._getColumnSize(t,e),n=(t+e)/i;Math.abs(Math.round(n)-n)<this.options.columnThreshold&&(n=Math.round(n)),this.cols=Math.max(Math.floor(n||0),1),this.containerWidth=t,this.colWidth=i}},{key:"_setContainerSize",value:function(){this.element.style.height=this._getContainerSize()+"px"}},{key:"_getContainerSize",value:function(){return z(this.positions)}},{key:"_getStaggerAmount",value:function(t){return Math.min(t*this.options.staggerAmount,this.options.staggerAmountMax)}},{key:"_dispatch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.isDestroyed||(e.shuffle=this,this.emit(t,e))}},{key:"_resetCols",value:function(){var t=this.cols;for(this.positions=[];t;)t-=1,this.positions.push(0)}},{key:"_layout",value:function(t){var e=this,i=this._getNextPositions(t),n=0;t.forEach(function(t,s){function o(){t.applyCss(_.Css.VISIBLE.after)}if(p.equals(t.point,i[s])&&!t.isHidden)return t.applyCss(_.Css.VISIBLE.before),void o();t.point=i[s],t.scale=_.Scale.VISIBLE,t.isHidden=!1;var r=e.getStylesForTransition(t,_.Css.VISIBLE.before);r.transitionDelay=e._getStaggerAmount(n)+"ms",e._queue.push({item:t,styles:r,callback:o}),n+=1})}},{key:"_getNextPositions",value:function(t){var e=this;if(this.options.isCentered){var i=t.map(function(t,i){var n=r.getSize(t.element,!0),s=e._getItemPosition(n);return new v(s.x,s.y,n.width,n.height,i)});return this.getTransformedPositions(i,this.containerWidth)}return t.map(function(t){return e._getItemPosition(r.getSize(t.element,!0))})}},{key:"_getItemPosition",value:function(t){return function(t){for(var e=t.itemSize,i=t.positions,n=t.gridSize,s=t.total,o=t.threshold,r=t.buffer,l=M(e.width,n,s,o),a=A(i,l,s),u=F(a,r),h=new p(n*u,a[u]),f=a[u]+e.height,c=0;c<l;c++)i[u+c]=f;return h}({itemSize:t,positions:this.positions,gridSize:this.colWidth,total:this.cols,threshold:this.options.columnThreshold,buffer:this.options.buffer})}},{key:"getTransformedPositions",value:function(t,e){return x(t,e)}},{key:"_shrink",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._getConcealedItems(),i=0;e.forEach(function(e){function n(){e.applyCss(_.Css.HIDDEN.after)}if(e.isHidden)return e.applyCss(_.Css.HIDDEN.before),void n();e.scale=_.Scale.HIDDEN,e.isHidden=!0;var s=t.getStylesForTransition(e,_.Css.HIDDEN.before);s.transitionDelay=t._getStaggerAmount(i)+"ms",t._queue.push({item:e,styles:s,callback:n}),i+=1})}},{key:"_handleResize",value:function(){this.isEnabled&&!this.isDestroyed&&this.update()}},{key:"getStylesForTransition",value:function(t,e){var i=Object.assign({},e);if(this.options.useTransforms){var n=this.options.roundTransforms?Math.round(t.point.x):t.point.x,s=this.options.roundTransforms?Math.round(t.point.y):t.point.y;i.transform="translate(".concat(n,"px, ").concat(s,"px) scale(").concat(t.scale,")")}else i.left=t.point.x+"px",i.top=t.point.y+"px";return i}},{key:"_whenTransitionDone",value:function(t,e,i){var n=D(t,function(t){e(),i(null,t)});this._transitions.push(n)}},{key:"_getTransitionFunction",value:function(t){var e=this;return function(i){t.item.applyCss(t.styles),e._whenTransitionDone(t.item.element,t.callback,i)}}},{key:"_processQueue",value:function(){this.isTransitioning&&this._cancelMovement();var t=this.options.speed>0,e=this._queue.length>0;e&&t&&this.isInitialized?this._startTransitions(this._queue):e?(this._styleImmediately(this._queue),this._dispatch(r.EventType.LAYOUT)):this._dispatch(r.EventType.LAYOUT),this._queue.length=0}},{key:"_startTransitions",value:function(t){var e=this;this.isTransitioning=!0,function(t,e,i){i||("function"==typeof e?(i=e,e=null):i=d);var n=t&&t.length;if(!n)return i(null,[]);var s=!1,o=new Array(n);function r(t){return function(e,r){if(!s){if(e)return i(e,o),void(s=!0);o[t]=r,--n||i(null,o)}}}t.forEach(e?function(t,i){t.call(e,r(i))}:function(t,e){t(r(e))})}(t.map(function(t){return e._getTransitionFunction(t)}),this._movementFinished.bind(this))}},{key:"_cancelMovement",value:function(){this._transitions.forEach(L),this._transitions.length=0,this.isTransitioning=!1}},{key:"_styleImmediately",value:function(t){if(t.length){var e=t.map(function(t){return t.item.element});r._skipTransitions(e,function(){t.forEach(function(t){t.item.applyCss(t.styles),t.callback()})})}}},{key:"_movementFinished",value:function(){this._transitions.length=0,this.isTransitioning=!1,this._dispatch(r.EventType.LAYOUT)}},{key:"filter",value:function(t,e){this.isEnabled&&((!t||t&&0===t.length)&&(t=r.ALL_ITEMS),this._filter(t),this._shrink(),this._updateItemCount(),this.sort(e))}},{key:"sort",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastSort;if(this.isEnabled){this._resetCols();var e=T(this._getFilteredItems(),t);this._layout(e),this._processQueue(),this._setContainerSize(),this.lastSort=t}}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isEnabled&&(t||this._setColumns(),this.sort())}},{key:"layout",value:function(){this.update(!0)}},{key:"add",value:function(t){var e=this,i=O(t).map(function(t){return new _(t)});this._initItems(i),this._resetCols();var n=T(this._mergeNewItems(i),this.lastSort),s=this._filter(this.lastFilter,n),o=function(t){return i.includes(t)},r=function(t){t.scale=_.Scale.HIDDEN,t.isHidden=!0,t.applyCss(_.Css.HIDDEN.before),t.applyCss(_.Css.HIDDEN.after)},l=this._getNextPositions(s.visible);s.visible.forEach(function(t,i){o(t)&&(t.point=l[i],r(t),t.applyCss(e.getStylesForTransition(t,{})))}),s.hidden.forEach(function(t){o(t)&&r(t)}),this.element.offsetWidth,this.setItemTransitions(i),this.items=this._mergeNewItems(i),this.filter(this.lastFilter)}},{key:"disable",value:function(){this.isEnabled=!1}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.isEnabled=!0,t&&this.update()}},{key:"remove",value:function(t){var e=this;if(t.length){var i=O(t),n=i.map(function(t){return e.getItemByElement(t)}).filter(function(t){return!!t});this._toggleFilterClasses({visible:[],hidden:n}),this._shrink(n),this.sort(),this.items=this.items.filter(function(t){return!n.includes(t)}),this._updateItemCount(),this.once(r.EventType.LAYOUT,function(){e._disposeItems(n),i.forEach(function(t){t.parentNode.removeChild(t)}),e._dispatch(r.EventType.REMOVED,{collection:i})})}}},{key:"getItemByElement",value:function(t){return this.items.find(function(e){return e.element===t})}},{key:"resetItems",value:function(){var t=this;this._disposeItems(this.items),this.isInitialized=!1,this.items=this._getItems(),this._initItems(this.items),this.once(r.EventType.LAYOUT,function(){t.setItemTransitions(t.items),t.isInitialized=!0}),this.filter(this.lastFilter)}},{key:"destroy",value:function(){this._cancelMovement(),window.removeEventListener("resize",this._onResize),this.element.classList.remove("shuffle"),this.element.removeAttribute("style"),this._disposeItems(this.items),this.items.length=0,this._transitions.length=0,this.options.sizer=null,this.element=null,this.isDestroyed=!0,this.isEnabled=!1}}],[{key:"getSize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=window.getComputedStyle(t,null),n=b(t,"width",i),s=b(t,"height",i);if(e){var o=b(t,"marginLeft",i),r=b(t,"marginRight",i),l=b(t,"marginTop",i),a=b(t,"marginBottom",i);n+=o+r,s+=l+a}return{width:n,height:s}}},{key:"_skipTransitions",value:function(t,e){var i=t.map(function(t){var e=t.style,i=e.transitionDuration,n=e.transitionDelay;return e.transitionDuration="0ms",e.transitionDelay="0ms",{duration:i,delay:n}});e(),t[0].offsetWidth,t.forEach(function(t,e){t.style.transitionDuration=i[e].duration,t.style.transitionDelay=i[e].delay})}}]),r}();return H.ShuffleItem=_,H.ALL_ITEMS="all",H.FILTER_ATTRIBUTE_KEY="groups",H.EventType={LAYOUT:"shuffle:layout",REMOVED:"shuffle:removed"},H.Classes=y,H.FilterMode={ANY:"any",ALL:"all"},H.options={group:H.ALL_ITEMS,speed:250,easing:"cubic-bezier(0.4, 0.0, 0.2, 1)",itemSelector:"*",sizer:null,gutterWidth:0,columnWidth:0,delimiter:null,buffer:0,columnThreshold:.01,initialSort:null,throttle:c,throttleTime:300,staggerAmount:15,staggerAmountMax:150,useTransforms:!0,filterMode:H.FilterMode.ANY,isCentered:!1,roundTransforms:!0},H.Point=p,H.Rect=v,H.__sorter=T,H.__getColumnSpan=M,H.__getAvailablePositions=A,H.__getShortColumn=F,H.__getCenteredPositions=x,H});
//# sourceMappingURL=shuffle.min.js.map
js/chart.min.js 0000644 00000462061 15152652075 0007422 0 ustar 00 /*!
* Chart.js v2.8.0
* https://www.chartjs.org
* (c) 2019 Chart.js Contributors
* Released under the MIT License
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(function(){try{return require("moment")}catch(t){}}()):"function"==typeof define&&define.amd?define(["require"],function(t){return e(function(){try{return t("moment")}catch(t){}}())}):t.Chart=e(t.moment)}(this,function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e={rgb2hsl:i,rgb2hsv:n,rgb2hwb:a,rgb2cmyk:o,rgb2keyword:s,rgb2xyz:l,rgb2lab:d,rgb2lch:function(t){return x(d(t))},hsl2rgb:u,hsl2hsv:function(t){var e=t[0],i=t[1]/100,n=t[2]/100;if(0===n)return[0,0,0];return[e,100*(2*(i*=(n*=2)<=1?n:2-n)/(n+i)),100*((n+i)/2)]},hsl2hwb:function(t){return a(u(t))},hsl2cmyk:function(t){return o(u(t))},hsl2keyword:function(t){return s(u(t))},hsv2rgb:h,hsv2hsl:function(t){var e,i,n=t[0],a=t[1]/100,o=t[2]/100;return e=a*o,[n,100*(e=(e/=(i=(2-a)*o)<=1?i:2-i)||0),100*(i/=2)]},hsv2hwb:function(t){return a(h(t))},hsv2cmyk:function(t){return o(h(t))},hsv2keyword:function(t){return s(h(t))},hwb2rgb:c,hwb2hsl:function(t){return i(c(t))},hwb2hsv:function(t){return n(c(t))},hwb2cmyk:function(t){return o(c(t))},hwb2keyword:function(t){return s(c(t))},cmyk2rgb:f,cmyk2hsl:function(t){return i(f(t))},cmyk2hsv:function(t){return n(f(t))},cmyk2hwb:function(t){return a(f(t))},cmyk2keyword:function(t){return s(f(t))},keyword2rgb:w,keyword2hsl:function(t){return i(w(t))},keyword2hsv:function(t){return n(w(t))},keyword2hwb:function(t){return a(w(t))},keyword2cmyk:function(t){return o(w(t))},keyword2lab:function(t){return d(w(t))},keyword2xyz:function(t){return l(w(t))},xyz2rgb:p,xyz2lab:m,xyz2lch:function(t){return x(m(t))},lab2xyz:v,lab2rgb:y,lab2lch:x,lch2lab:k,lch2xyz:function(t){return v(k(t))},lch2rgb:function(t){return y(k(t))}};function i(t){var e,i,n=t[0]/255,a=t[1]/255,o=t[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),i=(r+s)/2,[e,100*(s==r?0:i<=.5?l/(s+r):l/(2-s-r)),100*i]}function n(t){var e,i,n=t[0],a=t[1],o=t[2],r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return i=0==s?0:l/s*1e3/10,s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),[e,i,s/255*1e3/10]}function a(t){var e=t[0],n=t[1],a=t[2];return[i(t)[0],100*(1/255*Math.min(e,Math.min(n,a))),100*(a=1-1/255*Math.max(e,Math.max(n,a)))]}function o(t){var e,i=t[0]/255,n=t[1]/255,a=t[2]/255;return[100*((1-i-(e=Math.min(1-i,1-n,1-a)))/(1-e)||0),100*((1-n-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]}function s(t){return _[JSON.stringify(t)]}function l(t){var e=t[0]/255,i=t[1]/255,n=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)+.1805*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)),100*(.2126*e+.7152*i+.0722*n),100*(.0193*e+.1192*i+.9505*n)]}function d(t){var e=l(t),i=e[0],n=e[1],a=e[2];return n/=100,a/=108.883,i=(i/=95.047)>.008856?Math.pow(i,1/3):7.787*i+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(i-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function u(t){var e,i,n,a,o,r=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[o=255*l,o,o];e=2*l-(i=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var d=0;d<3;d++)(n=r+1/3*-(d-1))<0&&n++,n>1&&n--,o=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e,a[d]=255*o;return a}function h(t){var e=t[0]/60,i=t[1]/100,n=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*n*(1-i),s=255*n*(1-i*o),l=255*n*(1-i*(1-o));n*=255;switch(a){case 0:return[n,l,r];case 1:return[s,n,r];case 2:return[r,n,l];case 3:return[r,s,n];case 4:return[l,r,n];case 5:return[n,r,s]}}function c(t){var e,i,n,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,d=s+l;switch(d>1&&(s/=d,l/=d),n=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(n=1-n),a=s+n*((i=1-l)-s),e){default:case 6:case 0:r=i,g=a,b=s;break;case 1:r=a,g=i,b=s;break;case 2:r=s,g=i,b=a;break;case 3:r=s,g=a,b=i;break;case 4:r=a,g=s,b=i;break;case 5:r=i,g=s,b=a}return[255*r,255*g,255*b]}function f(t){var e=t[0]/100,i=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function p(t){var e,i,n,a=t[0]/100,o=t[1]/100,r=t[2]/100;return i=-.9689*a+1.8758*o+.0415*r,n=.0557*a+-.204*o+1.057*r,e=(e=3.2406*a+-1.5372*o+-.4986*r)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1))]}function m(t){var e=t[0],i=t[1],n=t[2];return i/=100,n/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(e-i),200*(i-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]}function v(t){var e,i,n,a,o=t[0],r=t[1],s=t[2];return o<=8?a=(i=100*o/903.3)/100*7.787+16/116:(i=100*Math.pow((o+16)/116,3),a=Math.pow(i/100,1/3)),[e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i,n=n/108.883<=.008859?n=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3)]}function x(t){var e,i=t[0],n=t[1],a=t[2];return(e=360*Math.atan2(a,n)/2/Math.PI)<0&&(e+=360),[i,Math.sqrt(n*n+a*a),e]}function y(t){return p(v(t))}function k(t){var e,i=t[0],n=t[1];return e=t[2]/360*2*Math.PI,[i,n*Math.cos(e),n*Math.sin(e)]}function w(t){return M[t]}var M={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},_={};for(var C in M)_[JSON.stringify(M[C])]=C;var S=function(){return new T};for(var P in e){S[P+"Raw"]=function(t){return function(i){return"number"==typeof i&&(i=Array.prototype.slice.call(arguments)),e[t](i)}}(P);var I=/(\w+)2(\w+)/.exec(P),A=I[1],D=I[2];(S[A]=S[A]||{})[D]=S[P]=function(t){return function(i){"number"==typeof i&&(i=Array.prototype.slice.call(arguments));var n=e[t](i);if("string"==typeof n||void 0===n)return n;for(var a=0;a<n.length;a++)n[a]=Math.round(n[a]);return n}}(P)}var T=function(){this.convs={}};T.prototype.routeSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i))},T.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},T.prototype.getValues=function(t){var e=this.convs[t];if(!e){var i=this.space,n=this.convs[i];e=S[i][t](n),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){T.prototype[t]=function(e){return this.routeSpace(t,arguments)}});var F=S,L={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},R={getRgba:O,getHsla:z,getRgb:function(t){var e=O(t);return e&&e.slice(0,3)},getHsl:function(t){var e=z(t);return e&&e.slice(0,3)},getHwb:B,getAlpha:function(t){var e=O(t);if(e)return e[3];if(e=z(t))return e[3];if(e=B(t))return e[3]},hexString:function(t,e){var e=void 0!==e&&3===t.length?e:t[3];return"#"+H(t[0])+H(t[1])+H(t[2])+(e>=0&&e<1?H(Math.round(255*e)):"")},rgbString:function(t,e){if(e<1||t[3]&&t[3]<1)return N(t,e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:N,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return W(t,e);var i=Math.round(t[0]/255*100),n=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+i+"%, "+n+"%, "+a+"%)"},percentaString:W,hslString:function(t,e){if(e<1||t[3]&&t[3]<1)return V(t,e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:V,hwbString:function(t,e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return j[t.slice(0,3)]}};function O(t){if(t){var e=[0,0,0],i=1,n=t.match(/^#([a-fA-F0-9]{3,4})$/i),a="";if(n){a=(n=n[1])[3];for(var o=0;o<e.length;o++)e[o]=parseInt(n[o]+n[o],16);a&&(i=Math.round(parseInt(a+a,16)/255*100)/100)}else if(n=t.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)){a=n[2],n=n[1];for(o=0;o<e.length;o++)e[o]=parseInt(n.slice(2*o,2*o+2),16);a&&(i=Math.round(parseInt(a,16)/255*100)/100)}else if(n=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=parseInt(n[o+1]);i=parseFloat(n[4])}else if(n=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=Math.round(2.55*parseFloat(n[o+1]));i=parseFloat(n[4])}else if(n=t.match(/(\w+)/)){if("transparent"==n[1])return[0,0,0,0];if(!(e=L[n[1]]))return}for(o=0;o<e.length;o++)e[o]=E(e[o],0,255);return i=i||0==i?E(i,0,1):1,e[3]=i,e}}function z(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[E(parseInt(e[1]),0,360),E(parseFloat(e[2]),0,100),E(parseFloat(e[3]),0,100),E(isNaN(i)?1:i,0,1)]}}}function B(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[E(parseInt(e[1]),0,360),E(parseFloat(e[2]),0,100),E(parseFloat(e[3]),0,100),E(isNaN(i)?1:i,0,1)]}}}function N(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function W(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function V(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function E(t,e,i){return Math.min(Math.max(e,t),i)}function H(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var j={};for(var q in L)j[L[q]]=q;var Y=function(t){return t instanceof Y?t:this instanceof Y?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof t?(e=R.getRgba(t))?this.setValues("rgb",e):(e=R.getHsla(t))?this.setValues("hsl",e):(e=R.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new Y(t);var e};Y.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return R.hexString(this.values.rgb)},rgbString:function(){return R.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return R.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return R.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return R.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return R.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return R.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return R.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],i=0;i<t.length;i++){var n=t[i]/255;e[i]=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),i=t.luminosity();return e>i?(e+.05)/(i+.05):(i+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,i=(e[0]+t)%360;return e[0]=i<0?360+i:i,this.setValues("hsl",e),this},mix:function(t,e){var i=t,n=void 0===e?.5:e,a=2*n-1,o=this.alpha()-i.alpha(),r=((a*o==-1?a:(a+o)/(1+a*o))+1)/2,s=1-r;return this.rgb(r*this.red()+s*i.red(),r*this.green()+s*i.green(),r*this.blue()+s*i.blue()).alpha(this.alpha()*n+i.alpha()*(1-n))},toJSON:function(){return this.rgb()},clone:function(){var t,e,i=new Y,n=this.values,a=i.values;for(var o in n)n.hasOwnProperty(o)&&(t=n[o],"[object Array]"===(e={}.toString.call(t))?a[o]=t.slice(0):"[object Number]"===e?a[o]=t:console.error("unexpected color value:",t));return i}},Y.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},Y.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},Y.prototype.getValues=function(t){for(var e=this.values,i={},n=0;n<t.length;n++)i[t.charAt(n)]=e[t][n];return 1!==e.alpha&&(i.a=e.alpha),i},Y.prototype.setValues=function(t,e){var i,n,a=this.values,o=this.spaces,r=this.maxes,s=1;if(this.valid=!0,"alpha"===t)s=e;else if(e.length)a[t]=e.slice(0,t.length),s=e[t.length];else if(void 0!==e[t.charAt(0)]){for(i=0;i<t.length;i++)a[t][i]=e[t.charAt(i)];s=e.a}else if(void 0!==e[o[t][0]]){var l=o[t];for(i=0;i<t.length;i++)a[t][i]=e[l[i]];s=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void 0===s?a.alpha:s)),"alpha"===t)return!1;for(i=0;i<t.length;i++)n=Math.max(0,Math.min(r[t][i],a[t][i])),a[t][i]=Math.round(n);for(var d in o)d!==t&&(a[d]=F[t][d](a[t]));return!0},Y.prototype.setSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i),this)},Y.prototype.setChannel=function(t,e,i){var n=this.values[t];return void 0===i?n[e]:i===n[e]?this:(n[e]=i,this.setValues(t,n),this)},"undefined"!=typeof window&&(window.Color=Y);var U,X=Y,K={noop:function(){},uid:(U=0,function(){return U++}),isNullOrUndef:function(t){return null==t},isArray:function(t){if(Array.isArray&&Array.isArray(t))return!0;var e=Object.prototype.toString.call(t);return"[object"===e.substr(0,7)&&"Array]"===e.substr(-6)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},isFinite:function(t){return("number"==typeof t||t instanceof Number)&&isFinite(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,i){return K.valueOrDefault(K.isArray(t)?t[e]:t,i)},callback:function(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)},each:function(t,e,i,n){var a,o,r;if(K.isArray(t))if(o=t.length,n)for(a=o-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a<o;a++)e.call(i,t[a],a);else if(K.isObject(t))for(o=(r=Object.keys(t)).length,a=0;a<o;a++)e.call(i,t[r[a]],r[a])},arrayEquals:function(t,e){var i,n,a,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,n=t.length;i<n;++i)if(a=t[i],o=e[i],a instanceof Array&&o instanceof Array){if(!K.arrayEquals(a,o))return!1}else if(a!==o)return!1;return!0},clone:function(t){if(K.isArray(t))return t.map(K.clone);if(K.isObject(t)){for(var e={},i=Object.keys(t),n=i.length,a=0;a<n;++a)e[i[a]]=K.clone(t[i[a]]);return e}return t},_merger:function(t,e,i,n){var a=e[t],o=i[t];K.isObject(a)&&K.isObject(o)?K.merge(a,o,n):e[t]=K.clone(o)},_mergerIf:function(t,e,i){var n=e[t],a=i[t];K.isObject(n)&&K.isObject(a)?K.mergeIf(n,a):e.hasOwnProperty(t)||(e[t]=K.clone(a))},merge:function(t,e,i){var n,a,o,r,s,l=K.isArray(e)?e:[e],d=l.length;if(!K.isObject(t))return t;for(n=(i=i||{}).merger||K._merger,a=0;a<d;++a)if(e=l[a],K.isObject(e))for(s=0,r=(o=Object.keys(e)).length;s<r;++s)n(o[s],t,e,i);return t},mergeIf:function(t,e){return K.merge(t,e,{merger:K._mergerIf})},extend:function(t){for(var e=function(e,i){t[i]=e},i=1,n=arguments.length;i<n;++i)K.each(arguments[i],e);return t},inherits:function(t){var e=this,i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},n=function(){this.constructor=i};return n.prototype=e.prototype,i.prototype=new n,i.extend=K.inherits,t&&K.extend(i.prototype,t),i.__super__=e.prototype,i}},G=K;K.callCallback=K.callback,K.indexOf=function(t,e,i){return Array.prototype.indexOf.call(t,e,i)},K.getValueOrDefault=K.valueOrDefault,K.getValueAtIndexOrDefault=K.valueAtIndexOrDefault;var Z={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i))},easeOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)},easeInOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:2==(t/=.5)?1:(i||(i=.45),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),t<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-Z.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*Z.easeInBounce(2*t):.5*Z.easeOutBounce(2*t-1)+.5}},$={effects:Z};G.easingEffects=Z;var J=Math.PI,Q=J/180,tt=2*J,et=J/2,it=J/4,nt=2*J/3,at={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,i,n,a,o){if(o){var r=Math.min(o,a/2,n/2),s=e+r,l=i+r,d=e+n-r,u=i+a-r;t.moveTo(e,l),s<d&&l<u?(t.arc(s,l,r,-J,-et),t.arc(d,l,r,-et,0),t.arc(d,u,r,0,et),t.arc(s,u,r,et,J)):s<d?(t.moveTo(s,i),t.arc(d,l,r,-et,et),t.arc(s,l,r,et,J+et)):l<u?(t.arc(s,l,r,-J,0),t.arc(s,u,r,0,J)):t.arc(s,l,r,-J,J),t.closePath(),t.moveTo(e,i)}else t.rect(e,i,n,a)},drawPoint:function(t,e,i,n,a,o){var r,s,l,d,u,h=(o||0)*Q;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(r=e.toString())&&"[object HTMLCanvasElement]"!==r){if(!(isNaN(i)||i<=0)){switch(t.beginPath(),e){default:t.arc(n,a,i,0,tt),t.closePath();break;case"triangle":t.moveTo(n+Math.sin(h)*i,a-Math.cos(h)*i),h+=nt,t.lineTo(n+Math.sin(h)*i,a-Math.cos(h)*i),h+=nt,t.lineTo(n+Math.sin(h)*i,a-Math.cos(h)*i),t.closePath();break;case"rectRounded":d=i-(u=.516*i),s=Math.cos(h+it)*d,l=Math.sin(h+it)*d,t.arc(n-s,a-l,u,h-J,h-et),t.arc(n+l,a-s,u,h-et,h),t.arc(n+s,a+l,u,h,h+et),t.arc(n-l,a+s,u,h+et,h+J),t.closePath();break;case"rect":if(!o){d=Math.SQRT1_2*i,t.rect(n-d,a-d,2*d,2*d);break}h+=it;case"rectRot":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+l,a-s),t.lineTo(n+s,a+l),t.lineTo(n-l,a+s),t.closePath();break;case"crossRot":h+=it;case"cross":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s);break;case"star":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s),h+=it,s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s);break;case"line":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l);break;case"dash":t.moveTo(n,a),t.lineTo(n+Math.cos(h)*i,a+Math.sin(h)*i)}t.fill(),t.stroke()}}else t.drawImage(e,n-e.width/2,a-e.height/2,e.width,e.height)},_isPointInArea:function(t,e){return t.x>e.left-1e-6&&t.x<e.right+1e-6&&t.y>e.top-1e-6&&t.y<e.bottom+1e-6},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,i,n){var a=i.steppedLine;if(a){if("middle"===a){var o=(e.x+i.x)/2;t.lineTo(o,n?i.y:e.y),t.lineTo(o,n?e.y:i.y)}else"after"===a&&!n||"after"!==a&&n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}else i.tension?t.bezierCurveTo(n?e.controlPointPreviousX:e.controlPointNextX,n?e.controlPointPreviousY:e.controlPointNextY,n?i.controlPointNextX:i.controlPointPreviousX,n?i.controlPointNextY:i.controlPointPreviousY,i.x,i.y):t.lineTo(i.x,i.y)}},ot=at;G.clear=at.clear,G.drawRoundedRectangle=function(t){t.beginPath(),at.roundedRect.apply(at,arguments)};var rt={_set:function(t,e){return G.merge(this[t]||(this[t]={}),e)}};rt._set("global",{defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",defaultLineHeight:1.2,showLines:!0});var st=rt,lt=G.valueOrDefault;var dt={toLineHeight:function(t,e){var i=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,i,n,a;return G.isObject(t)?(e=+t.top||0,i=+t.right||0,n=+t.bottom||0,a=+t.left||0):e=i=n=a=+t||0,{top:e,right:i,bottom:n,left:a,height:e+n,width:a+i}},_parseFont:function(t){var e=st.global,i=lt(t.fontSize,e.defaultFontSize),n={family:lt(t.fontFamily,e.defaultFontFamily),lineHeight:G.options.toLineHeight(lt(t.lineHeight,e.defaultLineHeight),i),size:i,style:lt(t.fontStyle,e.defaultFontStyle),weight:null,string:""};return n.string=function(t){return!t||G.isNullOrUndef(t.size)||G.isNullOrUndef(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(n),n},resolve:function(t,e,i){var n,a,o;for(n=0,a=t.length;n<a;++n)if(void 0!==(o=t[n])&&(void 0!==e&&"function"==typeof o&&(o=o(e)),void 0!==i&&G.isArray(o)&&(o=o[i]),void 0!==o))return o}},ut=G,ht=$,ct=ot,ft=dt;ut.easing=ht,ut.canvas=ct,ut.options=ft;var gt=function(t){ut.extend(this,t),this.initialize.apply(this,arguments)};ut.extend(gt.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=ut.clone(t._model)),t._start={},t},transition:function(t){var e=this,i=e._model,n=e._start,a=e._view;return i&&1!==t?(a||(a=e._view={}),n||(n=e._start={}),function(t,e,i,n){var a,o,r,s,l,d,u,h,c,f=Object.keys(i);for(a=0,o=f.length;a<o;++a)if(d=i[r=f[a]],e.hasOwnProperty(r)||(e[r]=d),(s=e[r])!==d&&"_"!==r[0]){if(t.hasOwnProperty(r)||(t[r]=s),(u=typeof d)==typeof(l=t[r]))if("string"===u){if((h=X(l)).valid&&(c=X(d)).valid){e[r]=c.mix(h,n).rgbString();continue}}else if(ut.isFinite(l)&&ut.isFinite(d)){e[r]=l+(d-l)*n;continue}e[r]=d}}(n,a,i,t),e):(e._view=i,e._start=null,e)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return ut.isNumber(this._model.x)&&ut.isNumber(this._model.y)}}),gt.extend=ut.inherits;var pt=gt,mt=pt.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),vt=mt;Object.defineProperty(mt.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(mt.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}}),st._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:ut.noop,onComplete:ut.noop}});var bt={animations:[],request:null,addAnimation:function(t,e,i,n){var a,o,r=this.animations;for(e.chart=t,e.startTime=Date.now(),e.duration=i,n||(t.animating=!0),a=0,o=r.length;a<o;++a)if(r[a].chart===t)return void(r[a]=e);r.push(e),1===r.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var e=ut.findIndex(this.animations,function(e){return e.chart===t});-1!==e&&(this.animations.splice(e,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=ut.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){this.advance(),this.animations.length>0&&this.requestAnimationFrame()},advance:function(){for(var t,e,i,n,a=this.animations,o=0;o<a.length;)e=(t=a[o]).chart,i=t.numSteps,n=Math.floor((Date.now()-t.startTime)/t.duration*i)+1,t.currentStep=Math.min(n,i),ut.callback(t.render,[e,t],e),ut.callback(t.onAnimationProgress,[t],e),t.currentStep>=i?(ut.callback(t.onAnimationComplete,[t],e),e.animating=!1,a.splice(o,1)):++o}},xt=ut.options.resolve,yt=["push","pop","shift","splice","unshift"];function kt(t,e){var i=t._chartjs;if(i){var n=i.listeners,a=n.indexOf(e);-1!==a&&n.splice(a,1),n.length>0||(yt.forEach(function(e){delete t[e]}),delete t._chartjs)}}var wt=function(t,e){this.initialize(t,e)};ut.extend(wt.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),i=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=i.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=i.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this.update(!0)},destroy:function(){this._data&&kt(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,i=this.getMeta(),n=this.getDataset().data||[],a=i.data;for(t=0,e=n.length;t<e;++t)a[t]=a[t]||this.createMetaData(t);i.dataset=i.dataset||this.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t,e,i=this,n=i.getDataset(),a=n.data||(n.data=[]);i._data!==a&&(i._data&&kt(i._data,i),a&&Object.isExtensible(a)&&(e=i,(t=a)._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),yt.forEach(function(e){var i="onData"+e.charAt(0).toUpperCase()+e.slice(1),n=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),a=n.apply(this,e);return ut.each(t._chartjs.listeners,function(t){"function"==typeof t[i]&&t[i].apply(t,e)}),a}})}))),i._data=a),i.resyncElements()},update:ut.noop,transition:function(t){for(var e=this.getMeta(),i=e.data||[],n=i.length,a=0;a<n;++a)i[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],i=e.length,n=0;for(t.dataset&&t.dataset.draw();n<i;++n)e[n].draw()},removeHoverStyle:function(t){ut.merge(t._model,t.$previousStyle||{}),delete t.$previousStyle},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},a=t._model,o=ut.getHoverColor;t.$previousStyle={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderWidth:a.borderWidth},a.backgroundColor=xt([n.hoverBackgroundColor,e.hoverBackgroundColor,o(a.backgroundColor)],void 0,i),a.borderColor=xt([n.hoverBorderColor,e.hoverBorderColor,o(a.borderColor)],void 0,i),a.borderWidth=xt([n.hoverBorderWidth,e.hoverBorderWidth,a.borderWidth],void 0,i)},resyncElements:function(){var t=this.getMeta(),e=this.getDataset().data,i=t.data.length,n=e.length;n<i?t.data.splice(n,i-n):n>i&&this.insertElements(i,n-i)},insertElements:function(t,e){for(var i=0;i<e;++i)this.addElementAndReset(t+i)},onDataPush:function(){var t=arguments.length;this.insertElements(this.getDataset().data.length-t,t)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),wt.extend=ut.inherits;var Mt=wt;st._set("global",{elements:{arc:{backgroundColor:st.global.defaultColor,borderColor:"#fff",borderWidth:2,borderAlign:"center"}}});var _t=pt.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var i=this._view;if(i){for(var n=ut.getAngleFromPoint(i,{x:t,y:e}),a=n.angle,o=n.distance,r=i.startAngle,s=i.endAngle;s<r;)s+=2*Math.PI;for(;a>s;)a-=2*Math.PI;for(;a<r;)a+=2*Math.PI;var l=a>=r&&a<=s,d=o>=i.innerRadius&&o<=i.outerRadius;return l&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,i=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,i=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},draw:function(){var t,e=this._chart.ctx,i=this._view,n=i.startAngle,a=i.endAngle,o="inner"===i.borderAlign?.33:0;e.save(),e.beginPath(),e.arc(i.x,i.y,Math.max(i.outerRadius-o,0),n,a),e.arc(i.x,i.y,i.innerRadius,a,n,!0),e.closePath(),e.fillStyle=i.backgroundColor,e.fill(),i.borderWidth&&("inner"===i.borderAlign?(e.beginPath(),t=o/i.outerRadius,e.arc(i.x,i.y,i.outerRadius,n-t,a+t),i.innerRadius>o?(t=o/i.innerRadius,e.arc(i.x,i.y,i.innerRadius-o,a+t,n-t,!0)):e.arc(i.x,i.y,o,a+Math.PI/2,n-Math.PI/2),e.closePath(),e.clip(),e.beginPath(),e.arc(i.x,i.y,i.outerRadius,n,a),e.arc(i.x,i.y,i.innerRadius,a,n,!0),e.closePath(),e.lineWidth=2*i.borderWidth,e.lineJoin="round"):(e.lineWidth=i.borderWidth,e.lineJoin="bevel"),e.strokeStyle=i.borderColor,e.stroke()),e.restore()}}),Ct=ut.valueOrDefault,St=st.global.defaultColor;st._set("global",{elements:{line:{tension:.4,backgroundColor:St,borderWidth:3,borderColor:St,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var Pt=pt.extend({draw:function(){var t,e,i,n,a=this._view,o=this._chart.ctx,r=a.spanGaps,s=this._children.slice(),l=st.global,d=l.elements.line,u=-1;for(this._loop&&s.length&&s.push(s[0]),o.save(),o.lineCap=a.borderCapStyle||d.borderCapStyle,o.setLineDash&&o.setLineDash(a.borderDash||d.borderDash),o.lineDashOffset=Ct(a.borderDashOffset,d.borderDashOffset),o.lineJoin=a.borderJoinStyle||d.borderJoinStyle,o.lineWidth=Ct(a.borderWidth,d.borderWidth),o.strokeStyle=a.borderColor||l.defaultColor,o.beginPath(),u=-1,t=0;t<s.length;++t)e=s[t],i=ut.previousItem(s,t),n=e._view,0===t?n.skip||(o.moveTo(n.x,n.y),u=t):(i=-1===u?i:s[u],n.skip||(u!==t-1&&!r||-1===u?o.moveTo(n.x,n.y):ut.canvas.lineTo(o,i._view,e._view),u=t));o.stroke(),o.restore()}}),It=ut.valueOrDefault,At=st.global.defaultColor;function Dt(t){var e=this._view;return!!e&&Math.abs(t-e.x)<e.radius+e.hitRadius}st._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:At,borderColor:At,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}});var Tt=pt.extend({inRange:function(t,e){var i=this._view;return!!i&&Math.pow(t-i.x,2)+Math.pow(e-i.y,2)<Math.pow(i.hitRadius+i.radius,2)},inLabelRange:Dt,inXRange:Dt,inYRange:function(t){var e=this._view;return!!e&&Math.abs(t-e.y)<e.radius+e.hitRadius},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,i=this._chart.ctx,n=e.pointStyle,a=e.rotation,o=e.radius,r=e.x,s=e.y,l=st.global,d=l.defaultColor;e.skip||(void 0===t||ut.canvas._isPointInArea(e,t))&&(i.strokeStyle=e.borderColor||d,i.lineWidth=It(e.borderWidth,l.elements.point.borderWidth),i.fillStyle=e.backgroundColor||d,ut.canvas.drawPoint(i,n,o,r,s,a))}}),Ft=st.global.defaultColor;function Lt(t){return t&&void 0!==t.width}function Rt(t){var e,i,n,a,o;return Lt(t)?(o=t.width/2,e=t.x-o,i=t.x+o,n=Math.min(t.y,t.base),a=Math.max(t.y,t.base)):(o=t.height/2,e=Math.min(t.x,t.base),i=Math.max(t.x,t.base),n=t.y-o,a=t.y+o),{left:e,top:n,right:i,bottom:a}}function Ot(t,e,i){return t===e?i:t===i?e:t}function zt(t,e,i){var n,a,o,r,s=t.borderWidth,l=function(t){var e=t.borderSkipped,i={};return e?(t.horizontal?t.base>t.x&&(e=Ot(e,"left","right")):t.base<t.y&&(e=Ot(e,"bottom","top")),i[e]=!0,i):i}(t);return ut.isObject(s)?(n=+s.top||0,a=+s.right||0,o=+s.bottom||0,r=+s.left||0):n=a=o=r=+s||0,{t:l.top||n<0?0:n>i?i:n,r:l.right||a<0?0:a>e?e:a,b:l.bottom||o<0?0:o>i?i:o,l:l.left||r<0?0:r>e?e:r}}function Bt(t,e,i){var n=null===e,a=null===i,o=!(!t||n&&a)&&Rt(t);return o&&(n||e>=o.left&&e<=o.right)&&(a||i>=o.top&&i<=o.bottom)}st._set("global",{elements:{rectangle:{backgroundColor:Ft,borderColor:Ft,borderSkipped:"bottom",borderWidth:0}}});var Nt=pt.extend({draw:function(){var t=this._chart.ctx,e=this._view,i=function(t){var e=Rt(t),i=e.right-e.left,n=e.bottom-e.top,a=zt(t,i/2,n/2);return{outer:{x:e.left,y:e.top,w:i,h:n},inner:{x:e.left+a.l,y:e.top+a.t,w:i-a.l-a.r,h:n-a.t-a.b}}}(e),n=i.outer,a=i.inner;t.fillStyle=e.backgroundColor,t.fillRect(n.x,n.y,n.w,n.h),n.w===a.w&&n.h===a.h||(t.save(),t.beginPath(),t.rect(n.x,n.y,n.w,n.h),t.clip(),t.fillStyle=e.borderColor,t.rect(a.x,a.y,a.w,a.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return Bt(this._view,t,e)},inLabelRange:function(t,e){var i=this._view;return Lt(i)?Bt(i,t,null):Bt(i,null,e)},inXRange:function(t){return Bt(this._view,t,null)},inYRange:function(t){return Bt(this._view,null,t)},getCenterPoint:function(){var t,e,i=this._view;return Lt(i)?(t=i.x,e=(i.y+i.base)/2):(t=(i.x+i.base)/2,e=i.y),{x:t,y:e}},getArea:function(){var t=this._view;return Lt(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),Wt={},Vt=_t,Et=Pt,Ht=Tt,jt=Nt;Wt.Arc=Vt,Wt.Line=Et,Wt.Point=Ht,Wt.Rectangle=jt;var qt=ut.options.resolve;st._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}});var Yt=Mt.extend({dataElementType:Wt.Rectangle,initialize:function(){var t;Mt.prototype.initialize.apply(this,arguments),(t=this.getMeta()).stack=this.getDataset().stack,t.bar=!0},update:function(t){var e,i,n=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,i=n.length;e<i;++e)this.updateElement(n[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.getMeta(),o=n.getDataset(),r=n._resolveElementOptions(t,e);t._xScale=n.getScaleForId(a.xAxisID),t._yScale=n.getScaleForId(a.yAxisID),t._datasetIndex=n.index,t._index=e,t._model={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderSkipped:r.borderSkipped,borderWidth:r.borderWidth,datasetLabel:o.label,label:n.chart.data.labels[e]},n._updateElementGeometry(t,e,i),t.pivot()},_updateElementGeometry:function(t,e,i){var n=this,a=t._model,o=n._getValueScale(),r=o.getBasePixel(),s=o.isHorizontal(),l=n._ruler||n.getRuler(),d=n.calculateBarValuePixels(n.index,e),u=n.calculateBarIndexPixels(n.index,e,l);a.horizontal=s,a.base=i?r:d.base,a.x=s?i?r:d.head:u.center,a.y=s?u.center:i?r:d.head,a.height=s?u.size:void 0,a.width=s?void 0:u.size},_getStacks:function(t){var e,i,n=this.chart,a=this._getIndexScale().options.stacked,o=void 0===t?n.data.datasets.length:t+1,r=[];for(e=0;e<o;++e)(i=n.getDatasetMeta(e)).bar&&n.isDatasetVisible(e)&&(!1===a||!0===a&&-1===r.indexOf(i.stack)||void 0===a&&(void 0===i.stack||-1===r.indexOf(i.stack)))&&r.push(i.stack);return r},getStackCount:function(){return this._getStacks().length},getStackIndex:function(t,e){var i=this._getStacks(t),n=void 0!==e?i.indexOf(e):-1;return-1===n?i.length-1:n},getRuler:function(){var t,e,i=this._getIndexScale(),n=this.getStackCount(),a=this.index,o=i.isHorizontal(),r=o?i.left:i.top,s=r+(o?i.width:i.height),l=[];for(t=0,e=this.getMeta().data.length;t<e;++t)l.push(i.getPixelForValue(null,t,a));return{min:ut.isNullOrUndef(i.options.barThickness)?function(t,e){var i,n,a,o,r=t.isHorizontal()?t.width:t.height,s=t.getTicks();for(a=1,o=e.length;a<o;++a)r=Math.min(r,Math.abs(e[a]-e[a-1]));for(a=0,o=s.length;a<o;++a)n=t.getPixelForTick(a),r=a>0?Math.min(r,n-i):r,i=n;return r}(i,l):-1,pixels:l,start:r,end:s,stackCount:n,scale:i}},calculateBarValuePixels:function(t,e){var i,n,a,o,r,s,l=this.chart,d=this.getMeta(),u=this._getValueScale(),h=u.isHorizontal(),c=l.data.datasets,f=+u.getRightValue(c[t].data[e]),g=u.options.minBarLength,p=u.options.stacked,m=d.stack,v=0;if(p||void 0===p&&void 0!==m)for(i=0;i<t;++i)(n=l.getDatasetMeta(i)).bar&&n.stack===m&&n.controller._getValueScaleId()===u.id&&l.isDatasetVisible(i)&&(a=+u.getRightValue(c[i].data[e]),(f<0&&a<0||f>=0&&a>0)&&(v+=a));return o=u.getPixelForValue(v),s=(r=u.getPixelForValue(v+f))-o,void 0!==g&&Math.abs(s)<g&&(s=g,r=f>=0&&!h||f<0&&h?o-g:o+g),{size:s,base:o,head:r,center:r+s/2}},calculateBarIndexPixels:function(t,e,i){var n=i.scale.options,a="flex"===n.barThickness?function(t,e,i){var n,a=e.pixels,o=a[t],r=t>0?a[t-1]:null,s=t<a.length-1?a[t+1]:null,l=i.categoryPercentage;return null===r&&(r=o-(null===s?e.end-e.start:s-o)),null===s&&(s=o+o-r),n=o-(o-Math.min(r,s))/2*l,{chunk:Math.abs(s-r)/2*l/e.stackCount,ratio:i.barPercentage,start:n}}(e,i,n):function(t,e,i){var n,a,o=i.barThickness,r=e.stackCount,s=e.pixels[t];return ut.isNullOrUndef(o)?(n=e.min*i.categoryPercentage,a=i.barPercentage):(n=o*r,a=1),{chunk:n/r,ratio:a,start:s-n/2}}(e,i,n),o=this.getStackIndex(t,this.getMeta().stack),r=a.start+a.chunk*o+a.chunk/2,s=Math.min(ut.valueOrDefault(n.maxBarThickness,1/0),a.chunk*a.ratio);return{base:r-s/2,head:r+s/2,center:r,size:s}},draw:function(){var t=this.chart,e=this._getValueScale(),i=this.getMeta().data,n=this.getDataset(),a=i.length,o=0;for(ut.canvas.clipArea(t.ctx,t.chartArea);o<a;++o)isNaN(e.getRightValue(n.data[o]))||i[o].draw();ut.canvas.unclipArea(t.ctx)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.rectangle,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderSkipped","borderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=qt([s[a],r[a],l[a]],u,e);return d}}),Ut=ut.valueOrDefault,Xt=ut.options.resolve;st._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.datasets[t.datasetIndex].label||"",n=e.datasets[t.datasetIndex].data[t.index];return i+": ("+t.xLabel+", "+t.yLabel+", "+n.r+")"}}}});var Kt=Mt.extend({dataElementType:Wt.Point,update:function(t){var e=this,i=e.getMeta().data;ut.each(i,function(i,n){e.updateElement(i,n,t)})},updateElement:function(t,e,i){var n=this,a=n.getMeta(),o=t.custom||{},r=n.getScaleForId(a.xAxisID),s=n.getScaleForId(a.yAxisID),l=n._resolveElementOptions(t,e),d=n.getDataset().data[e],u=n.index,h=i?r.getPixelForDecimal(.5):r.getPixelForValue("object"==typeof d?d:NaN,e,u),c=i?s.getBasePixel():s.getPixelForValue(d,e,u);t._xScale=r,t._yScale=s,t._options=l,t._datasetIndex=u,t._index=e,t._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,rotation:l.rotation,radius:i?0:l.radius,skip:o.skip||isNaN(h)||isNaN(c),x:h,y:c},t.pivot()},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Ut(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Ut(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Ut(i.hoverBorderWidth,i.borderWidth),e.radius=i.radius+i.hoverRadius},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d=r.data[e],u={},h={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},c=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"];for(i=0,n=c.length;i<n;++i)u[a=c[i]]=Xt([s[a],r[a],l[a]],h,e);return u.radius=Xt([s.radius,d?d.r:void 0,r.radius,l.radius],h,e),u}}),Gt=ut.options.resolve,Zt=ut.valueOrDefault;st._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),o=e.datasets[0],r=a.data[n],s=r&&r.custom||{},l=t.options.elements.arc;return{text:i,fillStyle:Gt([s.backgroundColor,o.backgroundColor,l.backgroundColor],void 0,n),strokeStyle:Gt([s.borderColor,o.borderColor,l.borderColor],void 0,n),lineWidth:Gt([s.borderWidth,o.borderWidth,l.borderWidth],void 0,n),hidden:isNaN(o.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o]&&(a.data[o].hidden=!a.data[o].hidden);r.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.labels[t.index],n=": "+e.datasets[t.datasetIndex].data[t.index];return ut.isArray(i)?(i=i.slice())[0]+=n:i+=n,i}}}});var $t=Mt.extend({dataElementType:Wt.Arc,linkScales:ut.noop,getRingIndex:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&++e;return e},update:function(t){var e,i,n=this,a=n.chart,o=a.chartArea,r=a.options,s=o.right-o.left,l=o.bottom-o.top,d=Math.min(s,l),u={x:0,y:0},h=n.getMeta(),c=h.data,f=r.cutoutPercentage,g=r.circumference,p=n._getRingWeight(n.index);if(g<2*Math.PI){var m=r.rotation%(2*Math.PI),v=(m+=2*Math.PI*(m>=Math.PI?-1:m<-Math.PI?1:0))+g,b={x:Math.cos(m),y:Math.sin(m)},x={x:Math.cos(v),y:Math.sin(v)},y=m<=0&&v>=0||m<=2*Math.PI&&2*Math.PI<=v,k=m<=.5*Math.PI&&.5*Math.PI<=v||m<=2.5*Math.PI&&2.5*Math.PI<=v,w=m<=-Math.PI&&-Math.PI<=v||m<=Math.PI&&Math.PI<=v,M=m<=.5*-Math.PI&&.5*-Math.PI<=v||m<=1.5*Math.PI&&1.5*Math.PI<=v,_=f/100,C={x:w?-1:Math.min(b.x*(b.x<0?1:_),x.x*(x.x<0?1:_)),y:M?-1:Math.min(b.y*(b.y<0?1:_),x.y*(x.y<0?1:_))},S={x:y?1:Math.max(b.x*(b.x>0?1:_),x.x*(x.x>0?1:_)),y:k?1:Math.max(b.y*(b.y>0?1:_),x.y*(x.y>0?1:_))},P={width:.5*(S.x-C.x),height:.5*(S.y-C.y)};d=Math.min(s/P.width,l/P.height),u={x:-.5*(S.x+C.x),y:-.5*(S.y+C.y)}}for(e=0,i=c.length;e<i;++e)c[e]._options=n._resolveElementOptions(c[e],e);for(a.borderWidth=n.getMaxBorderWidth(),a.outerRadius=Math.max((d-a.borderWidth)/2,0),a.innerRadius=Math.max(f?a.outerRadius/100*f:0,0),a.radiusLength=(a.outerRadius-a.innerRadius)/(n._getVisibleDatasetWeightTotal()||1),a.offsetX=u.x*a.outerRadius,a.offsetY=u.y*a.outerRadius,h.total=n.calculateTotal(),n.outerRadius=a.outerRadius-a.radiusLength*n._getRingWeightOffset(n.index),n.innerRadius=Math.max(n.outerRadius-a.radiusLength*p,0),e=0,i=c.length;e<i;++e)n.updateElement(c[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.chart,o=a.chartArea,r=a.options,s=r.animation,l=(o.left+o.right)/2,d=(o.top+o.bottom)/2,u=r.rotation,h=r.rotation,c=n.getDataset(),f=i&&s.animateRotate?0:t.hidden?0:n.calculateCircumference(c.data[e])*(r.circumference/(2*Math.PI)),g=i&&s.animateScale?0:n.innerRadius,p=i&&s.animateScale?0:n.outerRadius,m=t._options||{};ut.extend(t,{_datasetIndex:n.index,_index:e,_model:{backgroundColor:m.backgroundColor,borderColor:m.borderColor,borderWidth:m.borderWidth,borderAlign:m.borderAlign,x:l+a.offsetX,y:d+a.offsetY,startAngle:u,endAngle:h,circumference:f,outerRadius:p,innerRadius:g,label:ut.valueAtIndexOrDefault(c.label,e,a.data.labels[e])}});var v=t._model;i&&s.animateRotate||(v.startAngle=0===e?r.rotation:n.getMeta().data[e-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),t.pivot()},calculateTotal:function(){var t,e=this.getDataset(),i=this.getMeta(),n=0;return ut.each(i.data,function(i,a){t=e.data[a],isNaN(t)||i.hidden||(n+=Math.abs(t))}),n},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,i,n,a,o,r,s,l,d=0,u=this.chart;if(!t)for(e=0,i=u.data.datasets.length;e<i;++e)if(u.isDatasetVisible(e)){t=(n=u.getDatasetMeta(e)).data,e!==this.index&&(o=n.controller);break}if(!t)return 0;for(e=0,i=t.length;e<i;++e)a=t[e],"inner"!==(r=o?o._resolveElementOptions(a,e):a._options).borderAlign&&(s=r.borderWidth,d=(l=r.hoverBorderWidth)>(d=s>d?s:d)?l:d);return d},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=Zt(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Zt(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Zt(i.hoverBorderWidth,i.borderWidth)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=this.getDataset(),s=t.custom||{},l=o.options.elements.arc,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=Gt([s[a],r[a],l[a]],u,e);return d},_getRingWeightOffset:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&(e+=this._getRingWeight(i));return e},_getRingWeight:function(t){return Math.max(Zt(this.chart.data.datasets[t].weight,1),0)},_getVisibleDatasetWeightTotal:function(){return this._getRingWeightOffset(this.chart.data.datasets.length)}});st._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{type:"category",position:"left",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{mode:"index",axis:"y"}});var Jt=Yt.extend({_getValueScaleId:function(){return this.getMeta().xAxisID},_getIndexScaleId:function(){return this.getMeta().yAxisID}}),Qt=ut.valueOrDefault,te=ut.options.resolve,ee=ut.canvas._isPointInArea;function ie(t,e){return Qt(t.showLine,e.showLines)}st._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});var ne=Mt.extend({datasetElementType:Wt.Line,dataElementType:Wt.Point,update:function(t){var e,i,n=this,a=n.getMeta(),o=a.dataset,r=a.data||[],s=n.getScaleForId(a.yAxisID),l=n.getDataset(),d=ie(l,n.chart.options);for(d&&(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=n.index,o._children=r,o._model=n._resolveLineOptions(o),o.pivot()),e=0,i=r.length;e<i;++e)n.updateElement(r[e],e,t);for(d&&0!==o._model.tension&&n.updateBezierControlPoints(),e=0,i=r.length;e<i;++e)r[e].pivot()},updateElement:function(t,e,i){var n,a,o=this,r=o.getMeta(),s=t.custom||{},l=o.getDataset(),d=o.index,u=l.data[e],h=o.getScaleForId(r.yAxisID),c=o.getScaleForId(r.xAxisID),f=r.dataset._model,g=o._resolvePointOptions(t,e);n=c.getPixelForValue("object"==typeof u?u:NaN,e,d),a=i?h.getBasePixel():o.calculatePointY(u,e,d),t._xScale=c,t._yScale=h,t._options=g,t._datasetIndex=d,t._index=e,t._model={x:n,y:a,skip:s.skip||isNaN(n)||isNaN(a),radius:g.radius,pointStyle:g.pointStyle,rotation:g.rotation,backgroundColor:g.backgroundColor,borderColor:g.borderColor,borderWidth:g.borderWidth,tension:Qt(s.tension,f?f.tension:0),steppedLine:!!f&&f.steppedLine,hitRadius:g.hitRadius}},_resolvePointOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},c=Object.keys(h);for(i=0,n=c.length;i<n;++i)d[a=c[i]]=te([s[a],r[h[a]],r[a],l[a]],u,e);return d},_resolveLineOptions:function(t){var e,i,n,a=this.chart,o=a.data.datasets[this.index],r=t.custom||{},s=a.options,l=s.elements.line,d={},u=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill","cubicInterpolationMode"];for(e=0,i=u.length;e<i;++e)d[n=u[e]]=te([r[n],o[n],l[n]]);return d.spanGaps=Qt(o.spanGaps,s.spanGaps),d.tension=Qt(o.lineTension,l.tension),d.steppedLine=te([r.steppedLine,o.steppedLine,l.stepped]),d},calculatePointY:function(t,e,i){var n,a,o,r=this.chart,s=this.getMeta(),l=this.getScaleForId(s.yAxisID),d=0,u=0;if(l.options.stacked){for(n=0;n<i;n++)if(a=r.data.datasets[n],"line"===(o=r.getDatasetMeta(n)).type&&o.yAxisID===l.id&&r.isDatasetVisible(n)){var h=Number(l.getRightValue(a.data[e]));h<0?u+=h||0:d+=h||0}var c=Number(l.getRightValue(t));return c<0?l.getPixelForValue(u+c):l.getPixelForValue(d+c)}return l.getPixelForValue(t)},updateBezierControlPoints:function(){var t,e,i,n,a=this.chart,o=this.getMeta(),r=o.dataset._model,s=a.chartArea,l=o.data||[];function d(t,e,i){return Math.max(Math.min(t,i),e)}if(r.spanGaps&&(l=l.filter(function(t){return!t._model.skip})),"monotone"===r.cubicInterpolationMode)ut.splineCurveMonotone(l);else for(t=0,e=l.length;t<e;++t)i=l[t]._model,n=ut.splineCurve(ut.previousItem(l,t)._model,i,ut.nextItem(l,t)._model,r.tension),i.controlPointPreviousX=n.previous.x,i.controlPointPreviousY=n.previous.y,i.controlPointNextX=n.next.x,i.controlPointNextY=n.next.y;if(a.options.elements.line.capBezierPoints)for(t=0,e=l.length;t<e;++t)i=l[t]._model,ee(i,s)&&(t>0&&ee(l[t-1]._model,s)&&(i.controlPointPreviousX=d(i.controlPointPreviousX,s.left,s.right),i.controlPointPreviousY=d(i.controlPointPreviousY,s.top,s.bottom)),t<l.length-1&&ee(l[t+1]._model,s)&&(i.controlPointNextX=d(i.controlPointNextX,s.left,s.right),i.controlPointNextY=d(i.controlPointNextY,s.top,s.bottom)))},draw:function(){var t,e=this.chart,i=this.getMeta(),n=i.data||[],a=e.chartArea,o=n.length,r=0;for(ie(this.getDataset(),e.options)&&(t=(i.dataset._model.borderWidth||0)/2,ut.canvas.clipArea(e.ctx,{left:a.left,right:a.right,top:a.top-t,bottom:a.bottom+t}),i.dataset.draw(),ut.canvas.unclipArea(e.ctx));r<o;++r)n[r].draw(a)},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Qt(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Qt(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Qt(i.hoverBorderWidth,i.borderWidth),e.radius=Qt(i.hoverRadius,i.radius)}}),ae=ut.options.resolve;st._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),o=e.datasets[0],r=a.data[n].custom||{},s=t.options.elements.arc;return{text:i,fillStyle:ae([r.backgroundColor,o.backgroundColor,s.backgroundColor],void 0,n),strokeStyle:ae([r.borderColor,o.borderColor,s.borderColor],void 0,n),lineWidth:ae([r.borderWidth,o.borderWidth,s.borderWidth],void 0,n),hidden:isNaN(o.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o].hidden=!a.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}});var oe=Mt.extend({dataElementType:Wt.Arc,linkScales:ut.noop,update:function(t){var e,i,n,a=this,o=a.getDataset(),r=a.getMeta(),s=a.chart.options.startAngle||0,l=a._starts=[],d=a._angles=[],u=r.data;for(a._updateRadius(),r.count=a.countVisibleElements(),e=0,i=o.data.length;e<i;e++)l[e]=s,n=a._computeAngle(e),d[e]=n,s+=n;for(e=0,i=u.length;e<i;++e)u[e]._options=a._resolveElementOptions(u[e],e),a.updateElement(u[e],e,t)},_updateRadius:function(){var t=this,e=t.chart,i=e.chartArea,n=e.options,a=Math.min(i.right-i.left,i.bottom-i.top);e.outerRadius=Math.max(a/2,0),e.innerRadius=Math.max(n.cutoutPercentage?e.outerRadius/100*n.cutoutPercentage:1,0),e.radiusLength=(e.outerRadius-e.innerRadius)/e.getVisibleDatasetCount(),t.outerRadius=e.outerRadius-e.radiusLength*t.index,t.innerRadius=t.outerRadius-e.radiusLength},updateElement:function(t,e,i){var n=this,a=n.chart,o=n.getDataset(),r=a.options,s=r.animation,l=a.scale,d=a.data.labels,u=l.xCenter,h=l.yCenter,c=r.startAngle,f=t.hidden?0:l.getDistanceFromCenterForValue(o.data[e]),g=n._starts[e],p=g+(t.hidden?0:n._angles[e]),m=s.animateScale?0:l.getDistanceFromCenterForValue(o.data[e]),v=t._options||{};ut.extend(t,{_datasetIndex:n.index,_index:e,_scale:l,_model:{backgroundColor:v.backgroundColor,borderColor:v.borderColor,borderWidth:v.borderWidth,borderAlign:v.borderAlign,x:u,y:h,innerRadius:0,outerRadius:i?m:f,startAngle:i&&s.animateRotate?c:g,endAngle:i&&s.animateRotate?c:p,label:ut.valueAtIndexOrDefault(d,e,d[e])}}),t.pivot()},countVisibleElements:function(){var t=this.getDataset(),e=this.getMeta(),i=0;return ut.each(e.data,function(e,n){isNaN(t.data[n])||e.hidden||i++}),i},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor,a=ut.valueOrDefault;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=a(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=a(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=a(i.hoverBorderWidth,i.borderWidth)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=this.getDataset(),s=t.custom||{},l=o.options.elements.arc,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=ae([s[a],r[a],l[a]],u,e);return d},_computeAngle:function(t){var e=this,i=this.getMeta().count,n=e.getDataset(),a=e.getMeta();if(isNaN(n.data[t])||a.data[t].hidden)return 0;var o={chart:e.chart,dataIndex:t,dataset:n,datasetIndex:e.index};return ae([e.chart.options.elements.arc.angle,2*Math.PI/i],o,t)}});st._set("pie",ut.clone(st.doughnut)),st._set("pie",{cutoutPercentage:0});var re=$t,se=ut.valueOrDefault,le=ut.options.resolve;st._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}});var de=Mt.extend({datasetElementType:Wt.Line,dataElementType:Wt.Point,linkScales:ut.noop,update:function(t){var e,i,n=this,a=n.getMeta(),o=a.dataset,r=a.data||[],s=n.chart.scale,l=n.getDataset();for(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=n.index,o._children=r,o._loop=!0,o._model=n._resolveLineOptions(o),o.pivot(),e=0,i=r.length;e<i;++e)n.updateElement(r[e],e,t);for(n.updateBezierControlPoints(),e=0,i=r.length;e<i;++e)r[e].pivot()},updateElement:function(t,e,i){var n=this,a=t.custom||{},o=n.getDataset(),r=n.chart.scale,s=r.getPointPositionForValue(e,o.data[e]),l=n._resolvePointOptions(t,e),d=n.getMeta().dataset._model,u=i?r.xCenter:s.x,h=i?r.yCenter:s.y;t._scale=r,t._options=l,t._datasetIndex=n.index,t._index=e,t._model={x:u,y:h,skip:a.skip||isNaN(u)||isNaN(h),radius:l.radius,pointStyle:l.pointStyle,rotation:l.rotation,backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,tension:se(a.tension,d?d.tension:0),hitRadius:l.hitRadius}},_resolvePointOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},c=Object.keys(h);for(i=0,n=c.length;i<n;++i)d[a=c[i]]=le([s[a],r[h[a]],r[a],l[a]],u,e);return d},_resolveLineOptions:function(t){var e,i,n,a=this.chart,o=a.data.datasets[this.index],r=t.custom||{},s=a.options.elements.line,l={},d=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill"];for(e=0,i=d.length;e<i;++e)l[n=d[e]]=le([r[n],o[n],s[n]]);return l.tension=se(o.lineTension,s.tension),l},updateBezierControlPoints:function(){var t,e,i,n,a=this.getMeta(),o=this.chart.chartArea,r=a.data||[];function s(t,e,i){return Math.max(Math.min(t,i),e)}for(t=0,e=r.length;t<e;++t)i=r[t]._model,n=ut.splineCurve(ut.previousItem(r,t,!0)._model,i,ut.nextItem(r,t,!0)._model,i.tension),i.controlPointPreviousX=s(n.previous.x,o.left,o.right),i.controlPointPreviousY=s(n.previous.y,o.top,o.bottom),i.controlPointNextX=s(n.next.x,o.left,o.right),i.controlPointNextY=s(n.next.y,o.top,o.bottom)},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=se(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=se(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=se(i.hoverBorderWidth,i.borderWidth),e.radius=se(i.hoverRadius,i.radius)}});st._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}});var ue={bar:Yt,bubble:Kt,doughnut:$t,horizontalBar:Jt,line:ne,polarArea:oe,pie:re,radar:de,scatter:ne};function he(t,e){return t.native?{x:t.x,y:t.y}:ut.getRelativePosition(t,e)}function ce(t,e){var i,n,a,o,r;for(n=0,o=t.data.datasets.length;n<o;++n)if(t.isDatasetVisible(n))for(a=0,r=(i=t.getDatasetMeta(n)).data.length;a<r;++a){var s=i.data[a];s._view.skip||e(s)}}function fe(t,e){var i=[];return ce(t,function(t){t.inRange(e.x,e.y)&&i.push(t)}),i}function ge(t,e,i,n){var a=Number.POSITIVE_INFINITY,o=[];return ce(t,function(t){if(!i||t.inRange(e.x,e.y)){var r=t.getCenterPoint(),s=n(e,r);s<a?(o=[t],a=s):s===a&&o.push(t)}}),o}function pe(t){var e=-1!==t.indexOf("x"),i=-1!==t.indexOf("y");return function(t,n){var a=e?Math.abs(t.x-n.x):0,o=i?Math.abs(t.y-n.y):0;return Math.sqrt(Math.pow(a,2)+Math.pow(o,2))}}function me(t,e,i){var n=he(e,t);i.axis=i.axis||"x";var a=pe(i.axis),o=i.intersect?fe(t,n):ge(t,n,!1,a),r=[];return o.length?(t.data.datasets.forEach(function(e,i){if(t.isDatasetVisible(i)){var n=t.getDatasetMeta(i).data[o[0]._index];n&&!n._view.skip&&r.push(n)}}),r):[]}var ve={modes:{single:function(t,e){var i=he(e,t),n=[];return ce(t,function(t){if(t.inRange(i.x,i.y))return n.push(t),n}),n.slice(0,1)},label:me,index:me,dataset:function(t,e,i){var n=he(e,t);i.axis=i.axis||"xy";var a=pe(i.axis),o=i.intersect?fe(t,n):ge(t,n,!1,a);return o.length>0&&(o=t.getDatasetMeta(o[0]._datasetIndex).data),o},"x-axis":function(t,e){return me(t,e,{intersect:!1})},point:function(t,e){return fe(t,he(e,t))},nearest:function(t,e,i){var n=he(e,t);i.axis=i.axis||"xy";var a=pe(i.axis);return ge(t,n,i.intersect,a)},x:function(t,e,i){var n=he(e,t),a=[],o=!1;return ce(t,function(t){t.inXRange(n.x)&&a.push(t),t.inRange(n.x,n.y)&&(o=!0)}),i.intersect&&!o&&(a=[]),a},y:function(t,e,i){var n=he(e,t),a=[],o=!1;return ce(t,function(t){t.inYRange(n.y)&&a.push(t),t.inRange(n.x,n.y)&&(o=!0)}),i.intersect&&!o&&(a=[]),a}}};function be(t,e){return ut.where(t,function(t){return t.position===e})}function xe(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,i){var n=e?i:t,a=e?t:i;return n.weight===a.weight?n._tmpIndex_-a._tmpIndex_:n.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}function ye(t,e){ut.each(t,function(t){e[t.position]+=t.isHorizontal()?t.height:t.width})}st._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var ke={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure:function(t,e,i){for(var n,a=["fullWidth","position","weight"],o=a.length,r=0;r<o;++r)n=a[r],i.hasOwnProperty(n)&&(e[n]=i[n])},update:function(t,e,i){if(t){var n=t.options.layout||{},a=ut.options.toPadding(n.padding),o=a.left,r=a.right,s=a.top,l=a.bottom,d=be(t.boxes,"left"),u=be(t.boxes,"right"),h=be(t.boxes,"top"),c=be(t.boxes,"bottom"),f=be(t.boxes,"chartArea");xe(d,!0),xe(u,!1),xe(h,!0),xe(c,!1);var g,p=d.concat(u),m=h.concat(c),v=p.concat(m),b=e-o-r,x=i-s-l,y=(e-b/2)/p.length,k=b,w=x,M={top:s,left:o,bottom:l,right:r},_=[];ut.each(v,function(t){var e,i=t.isHorizontal();i?(e=t.update(t.fullWidth?b:k,x/2),w-=e.height):(e=t.update(y,w),k-=e.width),_.push({horizontal:i,width:e.width,box:t})}),g=function(t){var e=0,i=0,n=0,a=0;return ut.each(t,function(t){if(t.getPadding){var o=t.getPadding();e=Math.max(e,o.top),i=Math.max(i,o.left),n=Math.max(n,o.bottom),a=Math.max(a,o.right)}}),{top:e,left:i,bottom:n,right:a}}(v),ut.each(p,T),ye(p,M),ut.each(m,T),ye(m,M),ut.each(p,function(t){var e=ut.findNextWhere(_,function(e){return e.box===t}),i={left:0,right:0,top:M.top,bottom:M.bottom};e&&t.update(e.width,w,i)}),ye(v,M={top:s,left:o,bottom:l,right:r});var C=Math.max(g.left-M.left,0);M.left+=C,M.right+=Math.max(g.right-M.right,0);var S=Math.max(g.top-M.top,0);M.top+=S,M.bottom+=Math.max(g.bottom-M.bottom,0);var P=i-M.top-M.bottom,I=e-M.left-M.right;I===k&&P===w||(ut.each(p,function(t){t.height=P}),ut.each(m,function(t){t.fullWidth||(t.width=I)}),w=P,k=I);var A=o+C,D=s+S;ut.each(d.concat(h),F),A+=k,D+=w,ut.each(u,F),ut.each(c,F),t.chartArea={left:M.left,top:M.top,right:M.left+k,bottom:M.top+w},ut.each(f,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(k,w)})}function T(t){var e=ut.findNextWhere(_,function(e){return e.box===t});if(e)if(e.horizontal){var i={left:Math.max(M.left,g.left),right:Math.max(M.right,g.right),top:0,bottom:0};t.update(t.fullWidth?b:k,x/2,i)}else t.update(e.width,w)}function F(t){t.isHorizontal()?(t.left=t.fullWidth?o:M.left,t.right=t.fullWidth?e-r:M.left+k,t.top=D,t.bottom=D+t.height,D=t.bottom):(t.left=A,t.right=A+t.width,t.top=M.top,t.bottom=M.top+w,A=t.right)}}};var we,Me=(we=Object.freeze({default:"@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&we.default||we,_e="$chartjs",Ce="chartjs-size-monitor",Se="chartjs-render-monitor",Pe="chartjs-render-animation",Ie=["animationstart","webkitAnimationStart"],Ae={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function De(t,e){var i=ut.getStyle(t,e),n=i&&i.match(/^(\d+)(\.\d+)?px$/);return n?Number(n[1]):void 0}var Te=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function Fe(t,e,i){t.addEventListener(e,i,Te)}function Le(t,e,i){t.removeEventListener(e,i,Te)}function Re(t,e,i,n,a){return{type:t,chart:e,native:a||null,x:void 0!==i?i:null,y:void 0!==n?n:null}}function Oe(t){var e=document.createElement("div");return e.className=t||"",e}function ze(t,e,i){var n,a,o,r,s=t[_e]||(t[_e]={}),l=s.resizer=function(t){var e=Oe(Ce),i=Oe(Ce+"-expand"),n=Oe(Ce+"-shrink");i.appendChild(Oe()),n.appendChild(Oe()),e.appendChild(i),e.appendChild(n),e._reset=function(){i.scrollLeft=1e6,i.scrollTop=1e6,n.scrollLeft=1e6,n.scrollTop=1e6};var a=function(){e._reset(),t()};return Fe(i,"scroll",a.bind(i,"expand")),Fe(n,"scroll",a.bind(n,"shrink")),e}((n=function(){if(s.resizer){var n=i.options.maintainAspectRatio&&t.parentNode,a=n?n.clientWidth:0;e(Re("resize",i)),n&&n.clientWidth<a&&i.canvas&&e(Re("resize",i))}},o=!1,r=[],function(){r=Array.prototype.slice.call(arguments),a=a||this,o||(o=!0,ut.requestAnimFrame.call(window,function(){o=!1,n.apply(a,r)}))}));!function(t,e){var i=t[_e]||(t[_e]={}),n=i.renderProxy=function(t){t.animationName===Pe&&e()};ut.each(Ie,function(e){Fe(t,e,n)}),i.reflow=!!t.offsetParent,t.classList.add(Se)}(t,function(){if(s.resizer){var e=t.parentNode;e&&e!==l.parentNode&&e.insertBefore(l,e.firstChild),l._reset()}})}function Be(t){var e=t[_e]||{},i=e.resizer;delete e.resizer,function(t){var e=t[_e]||{},i=e.renderProxy;i&&(ut.each(Ie,function(e){Le(t,e,i)}),delete e.renderProxy),t.classList.remove(Se)}(t),i&&i.parentNode&&i.parentNode.removeChild(i)}var Ne={disableCSSInjection:!1,_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,_ensureLoaded:function(){var t,e,i;this._loaded||(this._loaded=!0,this.disableCSSInjection||(e=Me,i=(t=this)._style||document.createElement("style"),t._style||(t._style=i,e="/* Chart.js */\n"+e,i.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(i)),i.appendChild(document.createTextNode(e))))},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext("2d");return this._ensureLoaded(),i&&i.canvas===t?(function(t,e){var i=t.style,n=t.getAttribute("height"),a=t.getAttribute("width");if(t[_e]={initial:{height:n,width:a,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",null===a||""===a){var o=De(t,"width");void 0!==o&&(t.width=o)}if(null===n||""===n)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var r=De(t,"height");void 0!==o&&(t.height=r)}}(t,e),i):null},releaseContext:function(t){var e=t.canvas;if(e[_e]){var i=e[_e].initial;["height","width"].forEach(function(t){var n=i[t];ut.isNullOrUndef(n)?e.removeAttribute(t):e.setAttribute(t,n)}),ut.each(i.style||{},function(t,i){e.style[i]=t}),e.width=e.width,delete e[_e]}},addEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=i[_e]||(i[_e]={});Fe(n,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){i(function(t,e){var i=Ae[t.type]||t.type,n=ut.getRelativePosition(t,e);return Re(i,e,n.x,n.y,t)}(e,t))})}else ze(n,i,t)},removeEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=((i[_e]||{}).proxies||{})[t.id+"_"+e];a&&Le(n,e,a)}else Be(n)}};ut.addEvent=Fe,ut.removeEvent=Le;var We=Ne._enabled?Ne:{acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}},Ve=ut.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},We);st._set("global",{plugins:{}});var Ee={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var i=e.indexOf(t);-1!==i&&e.splice(i,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,i){var n,a,o,r,s,l=this.descriptors(t),d=l.length;for(n=0;n<d;++n)if("function"==typeof(s=(o=(a=l[n]).plugin)[e])&&((r=[t].concat(i||[])).push(a.options),!1===s.apply(o,r)))return!1;return!0},descriptors:function(t){var e=t.$plugins||(t.$plugins={});if(e.id===this._cacheId)return e.descriptors;var i=[],n=[],a=t&&t.config||{},o=a.options&&a.options.plugins||{};return this._plugins.concat(a.plugins||[]).forEach(function(t){if(-1===i.indexOf(t)){var e=t.id,a=o[e];!1!==a&&(!0===a&&(a=ut.clone(st.global.plugins[e])),i.push(t),n.push({plugin:t,options:a||{}}))}}),e.descriptors=n,e.id=this._cacheId,n},_invalidate:function(t){delete t.$plugins}},He={constructors:{},defaults:{},registerScaleType:function(t,e,i){this.constructors[t]=e,this.defaults[t]=ut.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?ut.merge({},[st.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=ut.extend(this.defaults[t],e))},addScalesToLayout:function(t){ut.each(t.scales,function(e){e.fullWidth=e.options.fullWidth,e.position=e.options.position,e.weight=e.options.weight,ke.addBox(t,e)})}},je=ut.valueOrDefault;st._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:ut.noop,title:function(t,e){var i="",n=e.labels,a=n?n.length:0;if(t.length>0){var o=t[0];o.label?i=o.label:o.xLabel?i=o.xLabel:a>0&&o.index<a&&(i=n[o.index])}return i},afterTitle:ut.noop,beforeBody:ut.noop,beforeLabel:ut.noop,label:function(t,e){var i=e.datasets[t.datasetIndex].label||"";return i&&(i+=": "),ut.isNullOrUndef(t.value)?i+=t.yLabel:i+=t.value,i},labelColor:function(t,e){var i=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:i.borderColor,backgroundColor:i.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:ut.noop,afterBody:ut.noop,beforeFooter:ut.noop,footer:ut.noop,afterFooter:ut.noop}}});var qe={average:function(t){if(!t.length)return!1;var e,i,n=0,a=0,o=0;for(e=0,i=t.length;e<i;++e){var r=t[e];if(r&&r.hasValue()){var s=r.tooltipPosition();n+=s.x,a+=s.y,++o}}return{x:n/o,y:a/o}},nearest:function(t,e){var i,n,a,o=e.x,r=e.y,s=Number.POSITIVE_INFINITY;for(i=0,n=t.length;i<n;++i){var l=t[i];if(l&&l.hasValue()){var d=l.getCenterPoint(),u=ut.distanceBetweenPoints(e,d);u<s&&(s=u,a=l)}}if(a){var h=a.tooltipPosition();o=h.x,r=h.y}return{x:o,y:r}}};function Ye(t,e){return e&&(ut.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Ue(t){return("string"==typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function Xe(t){var e=st.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:je(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:je(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:je(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:je(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:je(t.titleFontStyle,e.defaultFontStyle),titleFontSize:je(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:je(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:je(t.footerFontStyle,e.defaultFontStyle),footerFontSize:je(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function Ke(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function Ge(t){return Ye([],Ue(t))}var Ze=pt.extend({initialize:function(){this._model=Xe(this._options),this._lastActive=[]},getTitle:function(){var t=this._options.callbacks,e=t.beforeTitle.apply(this,arguments),i=t.title.apply(this,arguments),n=t.afterTitle.apply(this,arguments),a=[];return a=Ye(a,Ue(e)),a=Ye(a,Ue(i)),a=Ye(a,Ue(n))},getBeforeBody:function(){return Ge(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var i=this,n=i._options.callbacks,a=[];return ut.each(t,function(t){var o={before:[],lines:[],after:[]};Ye(o.before,Ue(n.beforeLabel.call(i,t,e))),Ye(o.lines,n.label.call(i,t,e)),Ye(o.after,Ue(n.afterLabel.call(i,t,e))),a.push(o)}),a},getAfterBody:function(){return Ge(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this._options.callbacks,e=t.beforeFooter.apply(this,arguments),i=t.footer.apply(this,arguments),n=t.afterFooter.apply(this,arguments),a=[];return a=Ye(a,Ue(e)),a=Ye(a,Ue(i)),a=Ye(a,Ue(n))},update:function(t){var e,i,n,a,o,r,s,l,d,u,h=this,c=h._options,f=h._model,g=h._model=Xe(c),p=h._active,m=h._data,v={xAlign:f.xAlign,yAlign:f.yAlign},b={x:f.x,y:f.y},x={width:f.width,height:f.height},y={x:f.caretX,y:f.caretY};if(p.length){g.opacity=1;var k=[],w=[];y=qe[c.position].call(h,p,h._eventPosition);var M=[];for(e=0,i=p.length;e<i;++e)M.push((n=p[e],a=void 0,o=void 0,r=void 0,s=void 0,l=void 0,d=void 0,u=void 0,a=n._xScale,o=n._yScale||n._scale,r=n._index,s=n._datasetIndex,l=n._chart.getDatasetMeta(s).controller,d=l._getIndexScale(),u=l._getValueScale(),{xLabel:a?a.getLabelForIndex(r,s):"",yLabel:o?o.getLabelForIndex(r,s):"",label:d?""+d.getLabelForIndex(r,s):"",value:u?""+u.getLabelForIndex(r,s):"",index:r,datasetIndex:s,x:n._model.x,y:n._model.y}));c.filter&&(M=M.filter(function(t){return c.filter(t,m)})),c.itemSort&&(M=M.sort(function(t,e){return c.itemSort(t,e,m)})),ut.each(M,function(t){k.push(c.callbacks.labelColor.call(h,t,h._chart)),w.push(c.callbacks.labelTextColor.call(h,t,h._chart))}),g.title=h.getTitle(M,m),g.beforeBody=h.getBeforeBody(M,m),g.body=h.getBody(M,m),g.afterBody=h.getAfterBody(M,m),g.footer=h.getFooter(M,m),g.x=y.x,g.y=y.y,g.caretPadding=c.caretPadding,g.labelColors=k,g.labelTextColors=w,g.dataPoints=M,x=function(t,e){var i=t._chart.ctx,n=2*e.yPadding,a=0,o=e.body,r=o.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);r+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,l=e.footer.length,d=e.titleFontSize,u=e.bodyFontSize,h=e.footerFontSize;n+=s*d,n+=s?(s-1)*e.titleSpacing:0,n+=s?e.titleMarginBottom:0,n+=r*u,n+=r?(r-1)*e.bodySpacing:0,n+=l?e.footerMarginTop:0,n+=l*h,n+=l?(l-1)*e.footerSpacing:0;var c=0,f=function(t){a=Math.max(a,i.measureText(t).width+c)};return i.font=ut.fontString(d,e._titleFontStyle,e._titleFontFamily),ut.each(e.title,f),i.font=ut.fontString(u,e._bodyFontStyle,e._bodyFontFamily),ut.each(e.beforeBody.concat(e.afterBody),f),c=e.displayColors?u+2:0,ut.each(o,function(t){ut.each(t.before,f),ut.each(t.lines,f),ut.each(t.after,f)}),c=0,i.font=ut.fontString(h,e._footerFontStyle,e._footerFontFamily),ut.each(e.footer,f),{width:a+=2*e.xPadding,height:n}}(this,g),b=function(t,e,i,n){var a=t.x,o=t.y,r=t.caretSize,s=t.caretPadding,l=t.cornerRadius,d=i.xAlign,u=i.yAlign,h=r+s,c=l+s;return"right"===d?a-=e.width:"center"===d&&((a-=e.width/2)+e.width>n.width&&(a=n.width-e.width),a<0&&(a=0)),"top"===u?o+=h:o-="bottom"===u?e.height+h:e.height/2,"center"===u?"left"===d?a+=h:"right"===d&&(a-=h):"left"===d?a-=c:"right"===d&&(a+=c),{x:a,y:o}}(g,x,v=function(t,e){var i,n,a,o,r,s=t._model,l=t._chart,d=t._chart.chartArea,u="center",h="center";s.y<e.height?h="top":s.y>l.height-e.height&&(h="bottom");var c=(d.left+d.right)/2,f=(d.top+d.bottom)/2;"center"===h?(i=function(t){return t<=c},n=function(t){return t>c}):(i=function(t){return t<=e.width/2},n=function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},o=function(t){return t-e.width-s.caretSize-s.caretPadding<0},r=function(t){return t<=f?"top":"bottom"},i(s.x)?(u="left",a(s.x)&&(u="center",h=r(s.y))):n(s.x)&&(u="right",o(s.x)&&(u="center",h=r(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:u,yAlign:g.yAlign?g.yAlign:h}}(this,x),h._chart)}else g.opacity=0;return g.xAlign=v.xAlign,g.yAlign=v.yAlign,g.x=b.x,g.y=b.y,g.width=x.width,g.height=x.height,g.caretX=y.x,g.caretY=y.y,h._model=g,t&&c.custom&&c.custom.call(h,g),h},drawCaret:function(t,e){var i=this._chart.ctx,n=this._view,a=this.getCaretPosition(t,e,n);i.lineTo(a.x1,a.y1),i.lineTo(a.x2,a.y2),i.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,i){var n,a,o,r,s,l,d=i.caretSize,u=i.cornerRadius,h=i.xAlign,c=i.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if("center"===c)s=g+m/2,"left"===h?(a=(n=f)-d,o=n,r=s+d,l=s-d):(a=(n=f+p)+d,o=n,r=s-d,l=s+d);else if("left"===h?(n=(a=f+u+d)-d,o=a+d):"right"===h?(n=(a=f+p-u-d)-d,o=a+d):(n=(a=i.caretX)-d,o=a+d),"top"===c)s=(r=g)-d,l=r;else{s=(r=g+m)+d,l=r;var v=o;o=n,n=v}return{x1:n,x2:a,x3:o,y1:r,y2:s,y3:l}},drawTitle:function(t,e,i){var n=e.title;if(n.length){t.x=Ke(e,e._titleAlign),i.textAlign=e._titleAlign,i.textBaseline="top";var a,o,r=e.titleFontSize,s=e.titleSpacing;for(i.fillStyle=e.titleFontColor,i.font=ut.fontString(r,e._titleFontStyle,e._titleFontFamily),a=0,o=n.length;a<o;++a)i.fillText(n[a],t.x,t.y),t.y+=r+s,a+1===n.length&&(t.y+=e.titleMarginBottom-s)}},drawBody:function(t,e,i){var n,a=e.bodyFontSize,o=e.bodySpacing,r=e._bodyAlign,s=e.body,l=e.displayColors,d=e.labelColors,u=0,h=l?Ke(e,"left"):0;i.textAlign=r,i.textBaseline="top",i.font=ut.fontString(a,e._bodyFontStyle,e._bodyFontFamily),t.x=Ke(e,r);var c=function(e){i.fillText(e,t.x+u,t.y),t.y+=a+o};i.fillStyle=e.bodyFontColor,ut.each(e.beforeBody,c),u=l&&"right"!==r?"center"===r?a/2+1:a+2:0,ut.each(s,function(o,r){n=e.labelTextColors[r],i.fillStyle=n,ut.each(o.before,c),ut.each(o.lines,function(o){l&&(i.fillStyle=e.legendColorBackground,i.fillRect(h,t.y,a,a),i.lineWidth=1,i.strokeStyle=d[r].borderColor,i.strokeRect(h,t.y,a,a),i.fillStyle=d[r].backgroundColor,i.fillRect(h+1,t.y+1,a-2,a-2),i.fillStyle=n),c(o)}),ut.each(o.after,c)}),u=0,ut.each(e.afterBody,c),t.y-=o},drawFooter:function(t,e,i){var n=e.footer;n.length&&(t.x=Ke(e,e._footerAlign),t.y+=e.footerMarginTop,i.textAlign=e._footerAlign,i.textBaseline="top",i.fillStyle=e.footerFontColor,i.font=ut.fontString(e.footerFontSize,e._footerFontStyle,e._footerFontFamily),ut.each(n,function(n){i.fillText(n,t.x,t.y),t.y+=e.footerFontSize+e.footerSpacing}))},drawBackground:function(t,e,i,n){i.fillStyle=e.backgroundColor,i.strokeStyle=e.borderColor,i.lineWidth=e.borderWidth;var a=e.xAlign,o=e.yAlign,r=t.x,s=t.y,l=n.width,d=n.height,u=e.cornerRadius;i.beginPath(),i.moveTo(r+u,s),"top"===o&&this.drawCaret(t,n),i.lineTo(r+l-u,s),i.quadraticCurveTo(r+l,s,r+l,s+u),"center"===o&&"right"===a&&this.drawCaret(t,n),i.lineTo(r+l,s+d-u),i.quadraticCurveTo(r+l,s+d,r+l-u,s+d),"bottom"===o&&this.drawCaret(t,n),i.lineTo(r+u,s+d),i.quadraticCurveTo(r,s+d,r,s+d-u),"center"===o&&"left"===a&&this.drawCaret(t,n),i.lineTo(r,s+u),i.quadraticCurveTo(r,s,r+u,s),i.closePath(),i.fill(),e.borderWidth>0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var i={width:e.width,height:e.height},n={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(t.save(),t.globalAlpha=a,this.drawBackground(n,e,t,i),n.y+=e.yPadding,this.drawTitle(n,e,t),this.drawBody(n,e,t),this.drawFooter(n,e,t),t.restore())}},handleEvent:function(t){var e,i=this,n=i._options;return i._lastActive=i._lastActive||[],"mouseout"===t.type?i._active=[]:i._active=i._chart.getElementsAtEventForMode(t,n.mode,n),(e=!ut.arrayEquals(i._active,i._lastActive))&&(i._lastActive=i._active,(n.enabled||n.custom)&&(i._eventPosition={x:t.x,y:t.y},i.update(!0),i.pivot())),e}}),$e=qe,Je=Ze;Je.positioners=$e;var Qe=ut.valueOrDefault;function ti(){return ut.merge({},[].slice.call(arguments),{merger:function(t,e,i,n){if("xAxes"===t||"yAxes"===t){var a,o,r,s=i[t].length;for(e[t]||(e[t]=[]),a=0;a<s;++a)r=i[t][a],o=Qe(r.type,"xAxes"===t?"category":"linear"),a>=e[t].length&&e[t].push({}),!e[t][a].type||r.type&&r.type!==e[t][a].type?ut.merge(e[t][a],[He.getScaleDefaults(o),r]):ut.merge(e[t][a],r)}else ut._merger(t,e,i,n)}})}function ei(){return ut.merge({},[].slice.call(arguments),{merger:function(t,e,i,n){var a=e[t]||{},o=i[t];"scales"===t?e[t]=ti(a,o):"scale"===t?e[t]=ut.merge(a,[He.getScaleDefaults(o.type),o]):ut._merger(t,e,i,n)}})}function ii(t){return"top"===t||"bottom"===t}st._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var ni=function(t,e){return this.construct(t,e),this};ut.extend(ni.prototype,{construct:function(t,e){var i=this;e=function(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=ei(st.global,st[t.type],t.options||{}),t}(e);var n=Ve.acquireContext(t,e),a=n&&n.canvas,o=a&&a.height,r=a&&a.width;i.id=ut.uid(),i.ctx=n,i.canvas=a,i.config=e,i.width=r,i.height=o,i.aspectRatio=o?r/o:null,i.options=e.options,i._bufferedRender=!1,i.chart=i,i.controller=i,ni.instances[i.id]=i,Object.defineProperty(i,"data",{get:function(){return i.config.data},set:function(t){i.config.data=t}}),n&&a?(i.initialize(),i.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return Ee.notify(t,"beforeInit"),ut.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),Ee.notify(t,"afterInit"),t},clear:function(){return ut.canvas.clear(this),this},stop:function(){return bt.cancelAnimation(this),this},resize:function(t){var e=this,i=e.options,n=e.canvas,a=i.maintainAspectRatio&&e.aspectRatio||null,o=Math.max(0,Math.floor(ut.getMaximumWidth(n))),r=Math.max(0,Math.floor(a?o/a:ut.getMaximumHeight(n)));if((e.width!==o||e.height!==r)&&(n.width=e.width=o,n.height=e.height=r,n.style.width=o+"px",n.style.height=r+"px",ut.retinaScale(e,i.devicePixelRatio),!t)){var s={width:o,height:r};Ee.notify(e,"resize",[s]),i.onResize&&i.onResize(e,s),e.stop(),e.update({duration:i.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},i=t.scale;ut.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),ut.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,i=t.scales||{},n=[],a=Object.keys(i).reduce(function(t,e){return t[e]=!1,t},{});e.scales&&(n=n.concat((e.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(e.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),e.scale&&n.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),ut.each(n,function(e){var n=e.options,o=n.id,r=Qe(n.type,e.dtype);ii(n.position)!==ii(e.dposition)&&(n.position=e.dposition),a[o]=!0;var s=null;if(o in i&&i[o].type===r)(s=i[o]).options=n,s.ctx=t.ctx,s.chart=t;else{var l=He.getScaleConstructor(r);if(!l)return;s=new l({id:o,type:r,options:n,ctx:t.ctx,chart:t}),i[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)}),ut.each(a,function(t,e){t||delete i[e]}),t.scales=i,He.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t=this,e=[];return ut.each(t.data.datasets,function(i,n){var a=t.getDatasetMeta(n),o=i.type||t.config.type;if(a.type&&a.type!==o&&(t.destroyDatasetMeta(n),a=t.getDatasetMeta(n)),a.type=o,a.controller)a.controller.updateIndex(n),a.controller.linkScales();else{var r=ue[a.type];if(void 0===r)throw new Error('"'+a.type+'" is not a chart type.');a.controller=new r(t,n),e.push(a.controller)}},t),e},resetElements:function(){var t=this;ut.each(t.data.datasets,function(e,i){t.getDatasetMeta(i).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e,i,n=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),i=(e=n).options,ut.each(e.scales,function(t){ke.removeBox(e,t)}),i=ei(st.global,st[e.config.type],i),e.options=e.config.options=i,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=i.tooltips,e.tooltip.initialize(),Ee._invalidate(n),!1!==Ee.notify(n,"beforeUpdate")){n.tooltip._data=n.data;var a=n.buildOrUpdateControllers();ut.each(n.data.datasets,function(t,e){n.getDatasetMeta(e).controller.buildOrUpdateElements()},n),n.updateLayout(),n.options.animation&&n.options.animation.duration&&ut.each(a,function(t){t.reset()}),n.updateDatasets(),n.tooltip.initialize(),n.lastActive=[],Ee.notify(n,"afterUpdate"),n._bufferedRender?n._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:n.render(t)}},updateLayout:function(){!1!==Ee.notify(this,"beforeLayout")&&(ke.update(this,this.width,this.height),Ee.notify(this,"afterScaleUpdate"),Ee.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==Ee.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t<e;++t)this.updateDataset(t);Ee.notify(this,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this.getDatasetMeta(t),i={meta:e,index:t};!1!==Ee.notify(this,"beforeDatasetUpdate",[i])&&(e.controller.update(),Ee.notify(this,"afterDatasetUpdate",[i]))},render:function(t){var e=this;t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]});var i=e.options.animation,n=Qe(t.duration,i&&i.duration),a=t.lazy;if(!1!==Ee.notify(e,"beforeRender")){var o=function(t){Ee.notify(e,"afterRender"),ut.callback(i&&i.onComplete,[t],e)};if(i&&n){var r=new vt({numSteps:n/16.66,easing:t.easing||i.easing,render:function(t,e){var i=ut.easing.effects[e.easing],n=e.currentStep,a=n/e.numSteps;t.draw(i(a),a,n)},onAnimationProgress:i.onProgress,onAnimationComplete:o});bt.addAnimation(e,r,n,a)}else e.draw(),o(new vt({numSteps:0,chart:e}));return e}},draw:function(t){var e=this;e.clear(),ut.isNullOrUndef(t)&&(t=1),e.transition(t),e.width<=0||e.height<=0||!1!==Ee.notify(e,"beforeDraw",[t])&&(ut.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.drawDatasets(t),e._drawTooltip(t),Ee.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=0,i=(this.data.datasets||[]).length;e<i;++e)this.isDatasetVisible(e)&&this.getDatasetMeta(e).controller.transition(t);this.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==Ee.notify(e,"beforeDatasetsDraw",[t])){for(var i=(e.data.datasets||[]).length-1;i>=0;--i)e.isDatasetVisible(i)&&e.drawDataset(i,t);Ee.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var i=this.getDatasetMeta(t),n={meta:i,index:t,easingValue:e};!1!==Ee.notify(this,"beforeDatasetDraw",[n])&&(i.controller.draw(e),Ee.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(t){var e=this.tooltip,i={tooltip:e,easingValue:t};!1!==Ee.notify(this,"beforeTooltipDraw",[i])&&(e.draw(),Ee.notify(this,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return ve.modes.single(this,t)},getElementsAtEvent:function(t){return ve.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return ve.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,i){var n=ve.modes[e];return"function"==typeof n?n(this,t,i):[]},getDatasetAtEvent:function(t){return ve.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var i=e._meta[this.id];return i||(i=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,i=this.data.datasets.length;e<i;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,i=this.data.datasets[t],n=i._meta&&i._meta[e];n&&(n.controller.destroy(),delete i._meta[e])},destroy:function(){var t,e,i=this,n=i.canvas;for(i.stop(),t=0,e=i.data.datasets.length;t<e;++t)i.destroyDatasetMeta(t);n&&(i.unbindEvents(),ut.canvas.clear(i),Ve.releaseContext(i.ctx),i.canvas=null,i.ctx=null),Ee.notify(i,"destroy"),delete ni.instances[i.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var t=this;t.tooltip=new Je({_chart:t,_chartInstance:t,_data:t.data,_options:t.options.tooltips},t)},bindEvents:function(){var t=this,e=t._listeners={},i=function(){t.eventHandler.apply(t,arguments)};ut.each(t.options.events,function(n){Ve.addEventListener(t,n,i),e[n]=i}),t.options.responsive&&(i=function(){t.resize()},Ve.addEventListener(t,"resize",i),e.resize=i)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,ut.each(e,function(e,i){Ve.removeEventListener(t,i,e)}))},updateHoverStyle:function(t,e,i){var n,a,o,r=i?"setHoverStyle":"removeHoverStyle";for(a=0,o=t.length;a<o;++a)(n=t[a])&&this.getDatasetMeta(n._datasetIndex).controller[r](n)},eventHandler:function(t){var e=this,i=e.tooltip;if(!1!==Ee.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var n=e.handleEvent(t);i&&(n=i._start?i.handleEvent(t):n|i.handleEvent(t)),Ee.notify(e,"afterEvent",[t]);var a=e._bufferedRequest;return a?e.render(a):n&&!e.animating&&(e.stop(),e.render({duration:e.options.hover.animationDuration,lazy:!0})),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e,i=this,n=i.options||{},a=n.hover;return i.lastActive=i.lastActive||[],"mouseout"===t.type?i.active=[]:i.active=i.getElementsAtEventForMode(t,a.mode,a),ut.callback(n.onHover||n.hover.onHover,[t.native,i.active],i),"mouseup"!==t.type&&"click"!==t.type||n.onClick&&n.onClick.call(i,t.native,i.active),i.lastActive.length&&i.updateHoverStyle(i.lastActive,a.mode,!1),i.active.length&&a.mode&&i.updateHoverStyle(i.active,a.mode,!0),e=!ut.arrayEquals(i.active,i.lastActive),i.lastActive=i.active,e}}),ni.instances={};var ai=ni;ni.Controller=ni,ni.types={},ut.configMerge=ei,ut.scaleMerge=ti;function oi(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function ri(t){this.options=t||{}}ut.extend(ri.prototype,{formats:oi,parse:oi,format:oi,add:oi,diff:oi,startOf:oi,endOf:oi,_create:function(t){return t}}),ri.override=function(t){ut.extend(ri.prototype,t)};var si={_date:ri},li={formatters:{values:function(t){return ut.isArray(t)?t:""+t},linear:function(t,e,i){var n=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(n)>1&&t!==Math.floor(t)&&(n=t-Math.floor(t));var a=ut.log10(Math.abs(n)),o="";if(0!==t)if(Math.max(Math.abs(i[0]),Math.abs(i[i.length-1]))<1e-4){var r=ut.log10(Math.abs(t));o=t.toExponential(Math.floor(r)-Math.floor(a))}else{var s=-1*Math.floor(a);s=Math.max(Math.min(s,20),0),o=t.toFixed(s)}else o="0";return o},logarithmic:function(t,e,i){var n=t/Math.pow(10,Math.floor(ut.log10(t)));return 0===t?"0":1===n||2===n||5===n||0===e||e===i.length-1?t.toExponential():""}}},di=ut.valueOrDefault,ui=ut.valueAtIndexOrDefault;function hi(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(t[e].label);return n}function ci(t,e,i){return ut.isArray(e)?ut.longestText(t,i,e):t.measureText(e).width}st._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:li.formatters.values,minor:{},major:{}}});var fi=pt.extend({getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;for(var e in!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1}),t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){ut.callback(this.options.beforeUpdate,[this])},update:function(t,e,i){var n,a,o,r,s,l,d=this;for(d.beforeUpdate(),d.maxWidth=t,d.maxHeight=e,d.margins=ut.extend({left:0,right:0,top:0,bottom:0},i),d._maxLabelLines=0,d.longestLabelWidth=0,d.longestTextCache=d.longestTextCache||{},d.beforeSetDimensions(),d.setDimensions(),d.afterSetDimensions(),d.beforeDataLimits(),d.determineDataLimits(),d.afterDataLimits(),d.beforeBuildTicks(),s=d.buildTicks()||[],s=d.afterBuildTicks(s)||s,d.beforeTickToLabelConversion(),o=d.convertTicksToLabels(s)||d.ticks,d.afterTickToLabelConversion(),d.ticks=o,n=0,a=o.length;n<a;++n)r=o[n],(l=s[n])?l.label=r:s.push(l={label:r,major:!1});return d._ticks=s,d.beforeCalculateTickRotation(),d.calculateTickRotation(),d.afterCalculateTickRotation(),d.beforeFit(),d.fit(),d.afterFit(),d.afterUpdate(),d.minSize},afterUpdate:function(){ut.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){ut.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){ut.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){ut.callback(this.options.beforeDataLimits,[this])},determineDataLimits:ut.noop,afterDataLimits:function(){ut.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){ut.callback(this.options.beforeBuildTicks,[this])},buildTicks:ut.noop,afterBuildTicks:function(t){var e=this;return ut.isArray(t)&&t.length?ut.callback(e.options.afterBuildTicks,[e,t]):(e.ticks=ut.callback(e.options.afterBuildTicks,[e,e.ticks])||e.ticks,t)},beforeTickToLabelConversion:function(){ut.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this.options.ticks;this.ticks=this.ticks.map(t.userCallback||t.callback,this)},afterTickToLabelConversion:function(){ut.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){ut.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,i=t.options.ticks,n=hi(t._ticks),a=ut.options._parseFont(i);e.font=a.string;var o=i.minRotation||0;if(n.length&&t.options.display&&t.isHorizontal())for(var r,s=ut.longestText(e,a.string,n,t.longestTextCache),l=s,d=t.getPixelForTick(1)-t.getPixelForTick(0)-6;l>d&&o<i.maxRotation;){var u=ut.toRadians(o);if(r=Math.cos(u),Math.sin(u)*s>t.maxHeight){o--;break}o++,l=r*s}t.labelRotation=o},afterCalculateTickRotation:function(){ut.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){ut.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},i=hi(t._ticks),n=t.options,a=n.ticks,o=n.scaleLabel,r=n.gridLines,s=t._isVisible(),l=n.position,d=t.isHorizontal(),u=ut.options._parseFont,h=u(a),c=n.gridLines.tickMarkLength;if(e.width=d?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:s&&r.drawTicks?c:0,e.height=d?s&&r.drawTicks?c:0:t.maxHeight,o.display&&s){var f=u(o),g=ut.options.toPadding(o.padding),p=f.lineHeight+g.height;d?e.height+=p:e.width+=p}if(a.display&&s){var m=ut.longestText(t.ctx,h.string,i,t.longestTextCache),v=ut.numberOfLabelLines(i),b=.5*h.size,x=t.options.ticks.padding;if(t._maxLabelLines=v,t.longestLabelWidth=m,d){var y=ut.toRadians(t.labelRotation),k=Math.cos(y),w=Math.sin(y)*m+h.lineHeight*v+b;e.height=Math.min(t.maxHeight,e.height+w+x),t.ctx.font=h.string;var M,_,C=ci(t.ctx,i[0],h.string),S=ci(t.ctx,i[i.length-1],h.string),P=t.getPixelForTick(0)-t.left,I=t.right-t.getPixelForTick(i.length-1);0!==t.labelRotation?(M="bottom"===l?k*C:k*b,_="bottom"===l?k*b:k*S):(M=C/2,_=S/2),t.paddingLeft=Math.max(M-P,0)+3,t.paddingRight=Math.max(_-I,0)+3}else a.mirror?m=0:m+=x+b,e.width=Math.min(t.maxWidth,e.width+m),t.paddingTop=h.size/2,t.paddingBottom=h.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){ut.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(ut.isNullOrUndef(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:ut.noop,getPixelForValue:ut.noop,getValueForPixel:ut.noop,getPixelForTick:function(t){var e=this,i=e.options.offset;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(i?0:1),1),a=n*t+e.paddingLeft;i&&(a+=n/2);var o=e.left+a;return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,n=e.left+i;return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,i,n=this,a=n.isHorizontal(),o=n.options.ticks.minor,r=t.length,s=!1,l=o.maxTicksLimit,d=n._tickSize()*(r-1),u=a?n.width-(n.paddingLeft+n.paddingRight):n.height-(n.paddingTop+n.PaddingBottom),h=[];for(d>u&&(s=1+Math.floor(d/u)),r>l&&(s=Math.max(s,1+Math.floor(r/l))),e=0;e<r;e++)i=t[e],s>1&&e%s>0&&delete i.label,h.push(i);return h},_tickSize:function(){var t=this,e=t.isHorizontal(),i=t.options.ticks.minor,n=ut.toRadians(t.labelRotation),a=Math.abs(Math.cos(n)),o=Math.abs(Math.sin(n)),r=i.autoSkipPadding||0,s=t.longestLabelWidth+r||0,l=ut.options._parseFont(i),d=t._maxLabelLines*l.lineHeight+r||0;return e?d*a>s*o?s/a:d/o:d*o<s*a?d/a:s/o},_isVisible:function(){var t,e,i,n=this.chart,a=this.options.display;if("auto"!==a)return!!a;for(t=0,e=n.data.datasets.length;t<e;++t)if(n.isDatasetVisible(t)&&((i=n.getDatasetMeta(t)).xAxisID===this.id||i.yAxisID===this.id))return!0;return!1},draw:function(t){var e=this,i=e.options;if(e._isVisible()){var n,a,o,r=e.chart,s=e.ctx,l=st.global.defaultFontColor,d=i.ticks.minor,u=i.ticks.major||d,h=i.gridLines,c=i.scaleLabel,f=i.position,g=0!==e.labelRotation,p=d.mirror,m=e.isHorizontal(),v=ut.options._parseFont,b=d.display&&d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),x=di(d.fontColor,l),y=v(d),k=y.lineHeight,w=di(u.fontColor,l),M=v(u),_=d.padding,C=d.labelOffset,S=h.drawTicks?h.tickMarkLength:0,P=di(c.fontColor,l),I=v(c),A=ut.options.toPadding(c.padding),D=ut.toRadians(e.labelRotation),T=[],F=h.drawBorder?ui(h.lineWidth,0,0):0,L=ut._alignPixel;"top"===f?(n=L(r,e.bottom,F),a=e.bottom-S,o=n-F/2):"bottom"===f?(n=L(r,e.top,F),a=n+F/2,o=e.top+S):"left"===f?(n=L(r,e.right,F),a=e.right-S,o=n-F/2):(n=L(r,e.left,F),a=n+F/2,o=e.left+S);if(ut.each(b,function(n,s){if(!ut.isNullOrUndef(n.label)){var l,d,u,c,v,b,x,y,w,M,P,I,A,R,O,z,B=n.label;s===e.zeroLineIndex&&i.offset===h.offsetGridLines?(l=h.zeroLineWidth,d=h.zeroLineColor,u=h.zeroLineBorderDash||[],c=h.zeroLineBorderDashOffset||0):(l=ui(h.lineWidth,s),d=ui(h.color,s),u=h.borderDash||[],c=h.borderDashOffset||0);var N=ut.isArray(B)?B.length:1,W=function(t,e,i){var n=t.getPixelForTick(e);return i&&(1===t.getTicks().length?n-=t.isHorizontal()?Math.max(n-t.left,t.right-n):Math.max(n-t.top,t.bottom-n):n-=0===e?(t.getPixelForTick(1)-n)/2:(n-t.getPixelForTick(e-1))/2),n}(e,s,h.offsetGridLines);if(m){var V=S+_;W<e.left-1e-7&&(d="rgba(0,0,0,0)"),v=x=w=P=L(r,W,l),b=a,y=o,A=e.getPixelForTick(s)+C,"top"===f?(M=L(r,t.top,F)+F/2,I=t.bottom,O=((g?1:.5)-N)*k,z=g?"left":"center",R=e.bottom-V):(M=t.top,I=L(r,t.bottom,F)-F/2,O=(g?0:.5)*k,z=g?"right":"center",R=e.top+V)}else{var E=(p?0:S)+_;W<e.top-1e-7&&(d="rgba(0,0,0,0)"),v=a,x=o,b=y=M=I=L(r,W,l),R=e.getPixelForTick(s)+C,O=(1-N)*k/2,"left"===f?(w=L(r,t.left,F)+F/2,P=t.right,z=p?"left":"right",A=e.right-E):(w=t.left,P=L(r,t.right,F)-F/2,z=p?"right":"left",A=e.left+E)}T.push({tx1:v,ty1:b,tx2:x,ty2:y,x1:w,y1:M,x2:P,y2:I,labelX:A,labelY:R,glWidth:l,glColor:d,glBorderDash:u,glBorderDashOffset:c,rotation:-1*D,label:B,major:n.major,textOffset:O,textAlign:z})}}),ut.each(T,function(t){var e=t.glWidth,i=t.glColor;if(h.display&&e&&i&&(s.save(),s.lineWidth=e,s.strokeStyle=i,s.setLineDash&&(s.setLineDash(t.glBorderDash),s.lineDashOffset=t.glBorderDashOffset),s.beginPath(),h.drawTicks&&(s.moveTo(t.tx1,t.ty1),s.lineTo(t.tx2,t.ty2)),h.drawOnChartArea&&(s.moveTo(t.x1,t.y1),s.lineTo(t.x2,t.y2)),s.stroke(),s.restore()),d.display){s.save(),s.translate(t.labelX,t.labelY),s.rotate(t.rotation),s.font=t.major?M.string:y.string,s.fillStyle=t.major?w:x,s.textBaseline="middle",s.textAlign=t.textAlign;var n=t.label,a=t.textOffset;if(ut.isArray(n))for(var o=0;o<n.length;++o)s.fillText(""+n[o],0,a),a+=k;else s.fillText(n,0,a);s.restore()}}),c.display){var R,O,z=0,B=I.lineHeight/2;if(m)R=e.left+(e.right-e.left)/2,O="bottom"===f?e.bottom-B-A.bottom:e.top+B+A.top;else{var N="left"===f;R=N?e.left+B+A.top:e.right-B-A.top,O=e.top+(e.bottom-e.top)/2,z=N?-.5*Math.PI:.5*Math.PI}s.save(),s.translate(R,O),s.rotate(z),s.textAlign="center",s.textBaseline="middle",s.fillStyle=P,s.font=I.string,s.fillText(c.labelString,0,0),s.restore()}if(F){var W,V,E,H,j=F,q=ui(h.lineWidth,b.length-1,0);m?(W=L(r,e.left,j)-j/2,V=L(r,e.right,q)+q/2,E=H=n):(E=L(r,e.top,j)-j/2,H=L(r,e.bottom,q)+q/2,W=V=n),s.lineWidth=F,s.strokeStyle=ui(h.color,0),s.beginPath(),s.moveTo(W,E),s.lineTo(V,H),s.stroke()}}}}),gi=fi.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,i=e.getLabels();e.minIndex=0,e.maxIndex=i.length-1,void 0!==e.options.ticks.min&&(t=i.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=i.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=i[e.minIndex],e.max=i[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var i=this,n=i.chart;return n.getDatasetMeta(e).controller._getValueScaleId()===i.id?i.getRightValue(n.data.datasets[e].data[t]):i.ticks[t-i.minIndex]},getPixelForValue:function(t,e){var i,n=this,a=n.options.offset,o=Math.max(n.maxIndex+1-n.minIndex-(a?0:1),1);if(null!=t&&(i=n.isHorizontal()?t.x:t.y),void 0!==i||void 0!==t&&isNaN(e)){t=i||t;var r=n.getLabels().indexOf(t);e=-1!==r?r:e}if(n.isHorizontal()){var s=n.width/o,l=s*(e-n.minIndex);return a&&(l+=s/2),n.left+l}var d=n.height/o,u=d*(e-n.minIndex);return a&&(u+=d/2),n.top+u},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,i=e.options.offset,n=Math.max(e._ticks.length-(i?0:1),1),a=e.isHorizontal(),o=(a?e.width:e.height)/n;return t-=a?e.left:e.top,i&&(t-=o/2),(t<=0?0:Math.round(t/o))+e.minIndex},getBasePixel:function(){return this.bottom}}),pi={position:"bottom"};gi._defaults=pi;var mi=ut.noop,vi=ut.isNullOrUndef;var bi=fi.extend({getRightValue:function(t){return"string"==typeof t?+t:fi.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var i=ut.sign(t.min),n=ut.sign(t.max);i<0&&n<0?t.max=0:i>0&&n>0&&(t.min=0)}var a=void 0!==e.min||void 0!==e.suggestedMin,o=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),a!==o&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this.options.ticks,i=e.stepSize,n=e.maxTicksLimit;return i?t=Math.ceil(this.max/i)-Math.floor(this.min/i)+1:(t=this._computeTickLimit(),n=n||11),n&&(t=Math.min(n,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:mi,buildTicks:function(){var t=this,e=t.options.ticks,i=t.getTickLimit(),n={maxTicks:i=Math.max(2,i),min:e.min,max:e.max,precision:e.precision,stepSize:ut.valueOrDefault(e.fixedStepSize,e.stepSize)},a=t.ticks=function(t,e){var i,n,a,o,r=[],s=t.stepSize,l=s||1,d=t.maxTicks-1,u=t.min,h=t.max,c=t.precision,f=e.min,g=e.max,p=ut.niceNum((g-f)/d/l)*l;if(p<1e-14&&vi(u)&&vi(h))return[f,g];(o=Math.ceil(g/p)-Math.floor(f/p))>d&&(p=ut.niceNum(o*p/d/l)*l),s||vi(c)?i=Math.pow(10,ut._decimalPlaces(p)):(i=Math.pow(10,c),p=Math.ceil(p*i)/i),n=Math.floor(f/p)*p,a=Math.ceil(g/p)*p,s&&(!vi(u)&&ut.almostWhole(u/p,p/1e3)&&(n=u),!vi(h)&&ut.almostWhole(h/p,p/1e3)&&(a=h)),o=(a-n)/p,o=ut.almostEquals(o,Math.round(o),p/1e3)?Math.round(o):Math.ceil(o),n=Math.round(n*i)/i,a=Math.round(a*i)/i,r.push(vi(u)?n:u);for(var m=1;m<o;++m)r.push(Math.round((n+m*p)*i)/i);return r.push(vi(h)?a:h),r}(n,t);t.handleDirectionalChanges(),t.max=ut.max(a),t.min=ut.min(a),e.reverse?(a.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var t=this;t.ticksAsNumbers=t.ticks.slice(),t.zeroLineIndex=t.ticks.indexOf(0),fi.prototype.convertTicksToLabels.call(t)}}),xi={position:"left",ticks:{callback:li.formatters.linear}},yi=bi.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,a=t.isHorizontal();function o(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null;var r=e.stacked;if(void 0===r&&ut.each(n,function(t,e){if(!r){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&o(n)&&void 0!==n.stack&&(r=!0)}}),e.stacked||r){var s={};ut.each(n,function(n,a){var r=i.getDatasetMeta(a),l=[r.type,void 0===e.stacked&&void 0===r.stack?a:"",r.stack].join(".");void 0===s[l]&&(s[l]={positiveValues:[],negativeValues:[]});var d=s[l].positiveValues,u=s[l].negativeValues;i.isDatasetVisible(a)&&o(r)&&ut.each(n.data,function(i,n){var a=+t.getRightValue(i);isNaN(a)||r.data[n].hidden||(d[n]=d[n]||0,u[n]=u[n]||0,e.relativePoints?d[n]=100:a<0?u[n]+=a:d[n]+=a)})}),ut.each(s,function(e){var i=e.positiveValues.concat(e.negativeValues),n=ut.min(i),a=ut.max(i);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?a:Math.max(t.max,a)})}else ut.each(n,function(e,n){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&o(a)&&ut.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||a.data[i].hidden||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},_computeTickLimit:function(){var t;return this.isHorizontal()?Math.ceil(this.width/40):(t=ut.options._parseFont(this.options.ticks),Math.ceil(this.height/t.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,i=e.start,n=+e.getRightValue(t),a=e.end-i;return e.isHorizontal()?e.left+e.width/a*(n-i):e.bottom-e.height/a*(n-i)},getValueForPixel:function(t){var e=this,i=e.isHorizontal(),n=i?e.width:e.height,a=(i?t-e.left:e.bottom-t)/n;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}}),ki=xi;yi._defaults=ki;var wi=ut.valueOrDefault;var Mi={position:"left",ticks:{callback:li.formatters.logarithmic}};function _i(t,e){return ut.isFinite(t)&&t>=0?t:e}var Ci=fi.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,a=t.isHorizontal();function o(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var r=e.stacked;if(void 0===r&&ut.each(n,function(t,e){if(!r){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&o(n)&&void 0!==n.stack&&(r=!0)}}),e.stacked||r){var s={};ut.each(n,function(n,a){var r=i.getDatasetMeta(a),l=[r.type,void 0===e.stacked&&void 0===r.stack?a:"",r.stack].join(".");i.isDatasetVisible(a)&&o(r)&&(void 0===s[l]&&(s[l]=[]),ut.each(n.data,function(e,i){var n=s[l],a=+t.getRightValue(e);isNaN(a)||r.data[i].hidden||a<0||(n[i]=n[i]||0,n[i]+=a)}))}),ut.each(s,function(e){if(e.length>0){var i=ut.min(e),n=ut.max(e);t.min=null===t.min?i:Math.min(t.min,i),t.max=null===t.max?n:Math.max(t.max,n)}})}else ut.each(n,function(e,n){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&o(a)&&ut.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||a.data[i].hidden||n<0||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n),0!==n&&(null===t.minNotZero||n<t.minNotZero)&&(t.minNotZero=n))})});this.handleTickRangeOptions()},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;t.min=_i(e.min,t.min),t.max=_i(e.max,t.max),t.min===t.max&&(0!==t.min&&null!==t.min?(t.min=Math.pow(10,Math.floor(ut.log10(t.min))-1),t.max=Math.pow(10,Math.floor(ut.log10(t.max))+1)):(t.min=1,t.max=10)),null===t.min&&(t.min=Math.pow(10,Math.floor(ut.log10(t.max))-1)),null===t.max&&(t.max=0!==t.min?Math.pow(10,Math.floor(ut.log10(t.min))+1):10),null===t.minNotZero&&(t.min>0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(ut.log10(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,i=!t.isHorizontal(),n={min:_i(e.min),max:_i(e.max)},a=t.ticks=function(t,e){var i,n,a=[],o=wi(t.min,Math.pow(10,Math.floor(ut.log10(e.min)))),r=Math.floor(ut.log10(e.max)),s=Math.ceil(e.max/Math.pow(10,r));0===o?(i=Math.floor(ut.log10(e.minNotZero)),n=Math.floor(e.minNotZero/Math.pow(10,i)),a.push(o),o=n*Math.pow(10,i)):(i=Math.floor(ut.log10(o)),n=Math.floor(o/Math.pow(10,i)));var l=i<0?Math.pow(10,Math.abs(i)):1;do{a.push(o),10==++n&&(n=1,l=++i>=0?1:l),o=Math.round(n*Math.pow(10,i)*l)/l}while(i<r||i===r&&n<s);var d=wi(t.max,o);return a.push(d),a}(n,t);t.max=ut.max(a),t.min=ut.min(a),e.reverse?(i=!i,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),i&&a.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),fi.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},_getFirstTickValue:function(t){var e=Math.floor(ut.log10(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},getPixelForValue:function(t){var e,i,n,a,o,r=this,s=r.options.ticks,l=s.reverse,d=ut.log10,u=r._getFirstTickValue(r.minNotZero),h=0;return t=+r.getRightValue(t),l?(n=r.end,a=r.start,o=-1):(n=r.start,a=r.end,o=1),r.isHorizontal()?(e=r.width,i=l?r.right:r.left):(e=r.height,o*=-1,i=l?r.top:r.bottom),t!==n&&(0===n&&(e-=h=wi(s.fontSize,st.global.defaultFontSize),n=u),0!==t&&(h+=e/(d(a)-d(n))*(d(t)-d(n))),i+=o*h),i},getValueForPixel:function(t){var e,i,n,a,o=this,r=o.options.ticks,s=r.reverse,l=ut.log10,d=o._getFirstTickValue(o.minNotZero);if(s?(i=o.end,n=o.start):(i=o.start,n=o.end),o.isHorizontal()?(e=o.width,a=s?o.right-t:t-o.left):(e=o.height,a=s?t-o.top:o.bottom-t),a!==i){if(0===i){var u=wi(r.fontSize,st.global.defaultFontSize);a-=u,e-=u,i=d}a*=l(n)-l(i),a/=e,a=Math.pow(10,l(i)+a)}return a}}),Si=Mi;Ci._defaults=Si;var Pi=ut.valueOrDefault,Ii=ut.valueAtIndexOrDefault,Ai=ut.options.resolve,Di={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:li.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function Ti(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function Fi(t){var e=t.ticks;return e.display&&t.display?Pi(e.fontSize,st.global.defaultFontSize)+2*e.backdropPaddingY:0}function Li(t,e,i,n,a){return t===n||t===a?{start:e-i/2,end:e+i/2}:t<n||t>a?{start:e-i,end:e}:{start:e,end:e+i}}function Ri(t){return 0===t||180===t?"center":t<180?"left":"right"}function Oi(t,e,i,n){var a,o,r=i.y+n/2;if(ut.isArray(e))for(a=0,o=e.length;a<o;++a)t.fillText(e[a],i.x,r),r+=n;else t.fillText(e,i.x,r)}function zi(t,e,i){90===t||270===t?i.y-=e.h/2:(t>270||t<90)&&(i.y-=e.h)}function Bi(t){return ut.isNumber(t)?t:0}var Ni=bi.extend({setDimensions:function(){var t=this;t.width=t.maxWidth,t.height=t.maxHeight,t.paddingTop=Fi(t.options)/2,t.xCenter=Math.floor(t.width/2),t.yCenter=Math.floor((t.height-t.paddingTop)/2),t.drawingArea=Math.min(t.height-t.paddingTop,t.width)/2},determineDataLimits:function(){var t=this,e=t.chart,i=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY;ut.each(e.data.datasets,function(a,o){if(e.isDatasetVisible(o)){var r=e.getDatasetMeta(o);ut.each(a.data,function(e,a){var o=+t.getRightValue(e);isNaN(o)||r.data[a].hidden||(i=Math.min(o,i),n=Math.max(o,n))})}}),t.min=i===Number.POSITIVE_INFINITY?0:i,t.max=n===Number.NEGATIVE_INFINITY?0:n,t.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/Fi(this.options))},convertTicksToLabels:function(){var t=this;bi.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map(t.options.pointLabels.callback,t)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t=this.options;t.display&&t.pointLabels.display?function(t){var e,i,n,a=ut.options._parseFont(t.options.pointLabels),o={l:0,r:t.width,t:0,b:t.height-t.paddingTop},r={};t.ctx.font=a.string,t._pointLabelSizes=[];var s,l,d,u=Ti(t);for(e=0;e<u;e++){n=t.getPointPosition(e,t.drawingArea+5),s=t.ctx,l=a.lineHeight,d=t.pointLabels[e]||"",i=ut.isArray(d)?{w:ut.longestText(s,s.font,d),h:d.length*l}:{w:s.measureText(d).width,h:l},t._pointLabelSizes[e]=i;var h=t.getIndexAngle(e),c=ut.toDegrees(h)%360,f=Li(c,n.x,i.w,0,180),g=Li(c,n.y,i.h,90,270);f.start<o.l&&(o.l=f.start,r.l=h),f.end>o.r&&(o.r=f.end,r.r=h),g.start<o.t&&(o.t=g.start,r.t=h),g.end>o.b&&(o.b=g.end,r.b=h)}t.setReductions(t.drawingArea,o,r)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(t,e,i){var n=this,a=e.l/Math.sin(i.l),o=Math.max(e.r-n.width,0)/Math.sin(i.r),r=-e.t/Math.cos(i.t),s=-Math.max(e.b-(n.height-n.paddingTop),0)/Math.cos(i.b);a=Bi(a),o=Bi(o),r=Bi(r),s=Bi(s),n.drawingArea=Math.min(Math.floor(t-(a+o)/2),Math.floor(t-(r+s)/2)),n.setCenterPoint(a,o,r,s)},setCenterPoint:function(t,e,i,n){var a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,s=i+a.drawingArea,l=a.height-a.paddingTop-n-a.drawingArea;a.xCenter=Math.floor((r+o)/2+a.left),a.yCenter=Math.floor((s+l)/2+a.top+a.paddingTop)},getIndexAngle:function(t){return t*(2*Math.PI/Ti(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var i=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*i:(t-e.min)*i},getPointPosition:function(t,e){var i=this.getIndexAngle(t)-Math.PI/2;return{x:Math.cos(i)*e+this.xCenter,y:Math.sin(i)*e+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,e=t.options,i=e.gridLines,n=e.ticks;if(e.display){var a=t.ctx,o=this.getIndexAngle(0),r=ut.options._parseFont(n);(e.angleLines.display||e.pointLabels.display)&&function(t){var e=t.ctx,i=t.options,n=i.angleLines,a=i.gridLines,o=i.pointLabels,r=Pi(n.lineWidth,a.lineWidth),s=Pi(n.color,a.color),l=Fi(i);e.save(),e.lineWidth=r,e.strokeStyle=s,e.setLineDash&&(e.setLineDash(Ai([n.borderDash,a.borderDash,[]])),e.lineDashOffset=Ai([n.borderDashOffset,a.borderDashOffset,0]));var d=t.getDistanceFromCenterForValue(i.ticks.reverse?t.min:t.max),u=ut.options._parseFont(o);e.font=u.string,e.textBaseline="middle";for(var h=Ti(t)-1;h>=0;h--){if(n.display&&r&&s){var c=t.getPointPosition(h,d);e.beginPath(),e.moveTo(t.xCenter,t.yCenter),e.lineTo(c.x,c.y),e.stroke()}if(o.display){var f=0===h?l/2:0,g=t.getPointPosition(h,d+f+5),p=Ii(o.fontColor,h,st.global.defaultFontColor);e.fillStyle=p;var m=t.getIndexAngle(h),v=ut.toDegrees(m);e.textAlign=Ri(v),zi(v,t._pointLabelSizes[h],g),Oi(e,t.pointLabels[h]||"",g,u.lineHeight)}}e.restore()}(t),ut.each(t.ticks,function(e,s){if(s>0||n.reverse){var l=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(i.display&&0!==s&&function(t,e,i,n){var a,o=t.ctx,r=e.circular,s=Ti(t),l=Ii(e.color,n-1),d=Ii(e.lineWidth,n-1);if((r||s)&&l&&d){if(o.save(),o.strokeStyle=l,o.lineWidth=d,o.setLineDash&&(o.setLineDash(e.borderDash||[]),o.lineDashOffset=e.borderDashOffset||0),o.beginPath(),r)o.arc(t.xCenter,t.yCenter,i,0,2*Math.PI);else{a=t.getPointPosition(0,i),o.moveTo(a.x,a.y);for(var u=1;u<s;u++)a=t.getPointPosition(u,i),o.lineTo(a.x,a.y)}o.closePath(),o.stroke(),o.restore()}}(t,i,l,s),n.display){var d=Pi(n.fontColor,st.global.defaultFontColor);if(a.font=r.string,a.save(),a.translate(t.xCenter,t.yCenter),a.rotate(o),n.showLabelBackdrop){var u=a.measureText(e).width;a.fillStyle=n.backdropColor,a.fillRect(-u/2-n.backdropPaddingX,-l-r.size/2-n.backdropPaddingY,u+2*n.backdropPaddingX,r.size+2*n.backdropPaddingY)}a.textAlign="center",a.textBaseline="middle",a.fillStyle=d,a.fillText(e,0,-l),a.restore()}}})}}}),Wi=Di;Ni._defaults=Wi;var Vi=ut.valueOrDefault,Ei=Number.MIN_SAFE_INTEGER||-9007199254740991,Hi=Number.MAX_SAFE_INTEGER||9007199254740991,ji={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},qi=Object.keys(ji);function Yi(t,e){return t-e}function Ui(t){var e,i,n,a={},o=[];for(e=0,i=t.length;e<i;++e)a[n=t[e]]||(a[n]=!0,o.push(n));return o}function Xi(t,e,i,n){var a=function(t,e,i){for(var n,a,o,r=0,s=t.length-1;r>=0&&r<=s;){if(a=t[(n=r+s>>1)-1]||null,o=t[n],!a)return{lo:null,hi:o};if(o[e]<i)r=n+1;else{if(!(a[e]>i))return{lo:a,hi:o};s=n-1}}return{lo:o,hi:null}}(t,e,i),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],r=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=r[e]-o[e],l=s?(i-o[e])/s:0,d=(r[n]-o[n])*l;return o[n]+d}function Ki(t,e){var i=t._adapter,n=t.options.time,a=n.parser,o=a||n.format,r=e;return"function"==typeof a&&(r=a(r)),ut.isFinite(r)||(r="string"==typeof o?i.parse(r,o):i.parse(r)),null!==r?+r:(a||"function"!=typeof o||(r=o(e),ut.isFinite(r)||(r=i.parse(r))),r)}function Gi(t,e){if(ut.isNullOrUndef(e))return null;var i=t.options.time,n=Ki(t,t.getRightValue(e));return null===n?n:(i.round&&(n=+t._adapter.startOf(n,i.round)),n)}function Zi(t){for(var e=qi.indexOf(t)+1,i=qi.length;e<i;++e)if(ji[qi[e]].common)return qi[e]}function $i(t,e,i,n){var a,o=t._adapter,r=t.options,s=r.time,l=s.unit||function(t,e,i,n){var a,o,r,s=qi.length;for(a=qi.indexOf(t);a<s-1;++a)if(r=(o=ji[qi[a]]).steps?o.steps[o.steps.length-1]:Hi,o.common&&Math.ceil((i-e)/(r*o.size))<=n)return qi[a];return qi[s-1]}(s.minUnit,e,i,n),d=Zi(l),u=Vi(s.stepSize,s.unitStepSize),h="week"===l&&s.isoWeekday,c=r.ticks.major.enabled,f=ji[l],g=e,p=i,m=[];for(u||(u=function(t,e,i,n){var a,o,r,s=e-t,l=ji[i],d=l.size,u=l.steps;if(!u)return Math.ceil(s/(n*d));for(a=0,o=u.length;a<o&&(r=u[a],!(Math.ceil(s/(d*r))<=n));++a);return r}(e,i,l,n)),h&&(g=+o.startOf(g,"isoWeek",h),p=+o.startOf(p,"isoWeek",h)),g=+o.startOf(g,h?"day":l),(p=+o.startOf(p,h?"day":l))<i&&(p=+o.add(p,1,l)),a=g,c&&d&&!h&&!s.round&&(a=+o.startOf(a,d),a=+o.add(a,~~((g-a)/(f.size*u))*u,l));a<p;a=+o.add(a,u,l))m.push(+a);return m.push(+a),m}var Ji=fi.extend({initialize:function(){this.mergeTicksOptions(),fi.prototype.initialize.call(this)},update:function(){var t=this.options,e=t.time||(t.time={}),i=this._adapter=new si._date(t.adapters.date);return e.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),ut.mergeIf(e.displayFormats,i.formats()),fi.prototype.update.apply(this,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),fi.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,i,n,a,o,r=this,s=r.chart,l=r._adapter,d=r.options.time,u=d.unit||"day",h=Hi,c=Ei,f=[],g=[],p=[],m=s.data.labels||[];for(t=0,i=m.length;t<i;++t)p.push(Gi(r,m[t]));for(t=0,i=(s.data.datasets||[]).length;t<i;++t)if(s.isDatasetVisible(t))if(a=s.data.datasets[t].data,ut.isObject(a[0]))for(g[t]=[],e=0,n=a.length;e<n;++e)o=Gi(r,a[e]),f.push(o),g[t][e]=o;else{for(e=0,n=p.length;e<n;++e)f.push(p[e]);g[t]=p.slice(0)}else g[t]=[];p.length&&(p=Ui(p).sort(Yi),h=Math.min(h,p[0]),c=Math.max(c,p[p.length-1])),f.length&&(f=Ui(f).sort(Yi),h=Math.min(h,f[0]),c=Math.max(c,f[f.length-1])),h=Gi(r,d.min)||h,c=Gi(r,d.max)||c,h=h===Hi?+l.startOf(Date.now(),u):h,c=c===Ei?+l.endOf(Date.now(),u)+1:c,r.min=Math.min(h,c),r.max=Math.max(h+1,c),r._horizontal=r.isHorizontal(),r._table=[],r._timestamps={data:f,datasets:g,labels:p}},buildTicks:function(){var t,e,i,n=this,a=n.min,o=n.max,r=n.options,s=r.time,l=[],d=[];switch(r.ticks.source){case"data":l=n._timestamps.data;break;case"labels":l=n._timestamps.labels;break;case"auto":default:l=$i(n,a,o,n.getLabelCapacity(a))}for("ticks"===r.bounds&&l.length&&(a=l[0],o=l[l.length-1]),a=Gi(n,s.min)||a,o=Gi(n,s.max)||o,t=0,e=l.length;t<e;++t)(i=l[t])>=a&&i<=o&&d.push(i);return n.min=a,n.max=o,n._unit=s.unit||function(t,e,i,n,a){var o,r;for(o=qi.length-1;o>=qi.indexOf(i);o--)if(r=qi[o],ji[r].common&&t._adapter.diff(a,n,r)>=e.length)return r;return qi[i?qi.indexOf(i):0]}(n,d,s.minUnit,n.min,n.max),n._majorUnit=Zi(n._unit),n._table=function(t,e,i,n){if("linear"===n||!t.length)return[{time:e,pos:0},{time:i,pos:1}];var a,o,r,s,l,d=[],u=[e];for(a=0,o=t.length;a<o;++a)(s=t[a])>e&&s<i&&u.push(s);for(u.push(i),a=0,o=u.length;a<o;++a)l=u[a+1],r=u[a-1],s=u[a],void 0!==r&&void 0!==l&&Math.round((l+r)/2)===s||d.push({time:s,pos:a/(o-1)});return d}(n._timestamps.data,a,o,r.distribution),n._offsets=function(t,e,i,n,a){var o,r,s=0,l=0;return a.offset&&e.length&&(a.time.min||(o=Xi(t,"time",e[0],"pos"),s=1===e.length?1-o:(Xi(t,"time",e[1],"pos")-o)/2),a.time.max||(r=Xi(t,"time",e[e.length-1],"pos"),l=1===e.length?r:(r-Xi(t,"time",e[e.length-2],"pos"))/2)),{start:s,end:l}}(n._table,d,0,0,r),r.ticks.reverse&&d.reverse(),function(t,e,i){var n,a,o,r,s=[];for(n=0,a=e.length;n<a;++n)o=e[n],r=!!i&&o===+t._adapter.startOf(o,i),s.push({value:o,major:r});return s}(n,d,n._majorUnit)},getLabelForIndex:function(t,e){var i=this,n=i._adapter,a=i.chart.data,o=i.options.time,r=a.labels&&t<a.labels.length?a.labels[t]:"",s=a.datasets[e].data[t];return ut.isObject(s)&&(r=i.getRightValue(s)),o.tooltipFormat?n.format(Ki(i,r),o.tooltipFormat):"string"==typeof r?r:n.format(Ki(i,r),o.displayFormats.datetime)},tickFormatFunction:function(t,e,i,n){var a=this._adapter,o=this.options,r=o.time.displayFormats,s=r[this._unit],l=this._majorUnit,d=r[l],u=+a.startOf(t,l),h=o.ticks.major,c=h.enabled&&l&&d&&t===u,f=a.format(t,n||(c?d:s)),g=c?h:o.ticks.minor,p=Vi(g.callback,g.userCallback);return p?p(f,e,i):f},convertTicksToLabels:function(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(this.tickFormatFunction(t[e].value,e,t));return n},getPixelForOffset:function(t){var e=this,i=e.options.ticks.reverse,n=e._horizontal?e.width:e.height,a=e._horizontal?i?e.right:e.left:i?e.bottom:e.top,o=Xi(e._table,"time",t,"pos"),r=n*(e._offsets.start+o)/(e._offsets.start+1+e._offsets.end);return i?a-r:a+r},getPixelForValue:function(t,e,i){var n=null;if(void 0!==e&&void 0!==i&&(n=this._timestamps.datasets[i][e]),null===n&&(n=Gi(this,t)),null!==n)return this.getPixelForOffset(n)},getPixelForTick:function(t){var e=this.getTicks();return t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,i=e._horizontal?e.width:e.height,n=e._horizontal?e.left:e.top,a=(i?(t-n)/i:0)*(e._offsets.start+1+e._offsets.start)-e._offsets.end,o=Xi(e._table,"pos",a,"time");return e._adapter._create(o)},getLabelWidth:function(t){var e=this.options.ticks,i=this.ctx.measureText(t).width,n=ut.toRadians(e.maxRotation),a=Math.cos(n),o=Math.sin(n);return i*a+Vi(e.fontSize,st.global.defaultFontSize)*o},getLabelCapacity:function(t){var e=this,i=e.options.time.displayFormats.millisecond,n=e.tickFormatFunction(t,0,[],i),a=e.getLabelWidth(n),o=e.isHorizontal()?e.width:e.height,r=Math.floor(o/a);return r>0?r:1}}),Qi={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};Ji._defaults=Qi;var tn={category:gi,linear:yi,logarithmic:Ci,radialLinear:Ni,time:Ji},en={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};si._date.override("function"==typeof t?{_id:"moment",formats:function(){return en},parse:function(e,i){return"string"==typeof e&&"string"==typeof i?e=t(e,i):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,i){return t(e).format(i)},add:function(e,i,n){return t(e).add(i,n).valueOf()},diff:function(e,i,n){return t.duration(t(e).diff(t(i))).as(n)},startOf:function(e,i,n){return e=t(e),"isoWeek"===i?e.isoWeekday(n).valueOf():e.startOf(i).valueOf()},endOf:function(e,i){return t(e).endOf(i).valueOf()},_create:function(e){return t(e)}}:{}),st._set("global",{plugins:{filler:{propagate:!0}}});var nn={dataset:function(t){var e=t.fill,i=t.chart,n=i.getDatasetMeta(e),a=n&&i.isDatasetVisible(e)&&n.dataset._children||[],o=a.length||0;return o?function(t,e){return e<o&&a[e]._view||null}:null},boundary:function(t){var e=t.boundary,i=e?e.x:null,n=e?e.y:null;return function(t){return{x:null===i?t.x:i,y:null===n?t.y:n}}}};function an(t,e,i){var n,a=t._model||{},o=a.fill;if(void 0===o&&(o=!!a.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(n=parseFloat(o,10),isFinite(n)&&Math.floor(n)===n)return"-"!==o[0]&&"+"!==o[0]||(n=e+n),!(n===e||n<0||n>=i)&&n;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function on(t){var e,i=t.el._model||{},n=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if("start"===a?o=void 0===i.scaleBottom?n.bottom:i.scaleBottom:"end"===a?o=void 0===i.scaleTop?n.top:i.scaleTop:void 0!==i.scaleZero?o=i.scaleZero:n.getBasePosition?o=n.getBasePosition():n.getBasePixel&&(o=n.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if(ut.isFinite(o))return{x:(e=n.isHorizontal())?o:null,y:e?null:o}}return null}function rn(t,e,i){var n,a=t[e].fill,o=[e];if(!i)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(n=t[a]))return!1;if(n.visible)return a;o.push(a),a=n.fill}return!1}function sn(t){var e=t.fill,i="dataset";return!1===e?null:(isFinite(e)||(i="boundary"),nn[i](t))}function ln(t){return t&&!t.skip}function dn(t,e,i,n,a){var o;if(n&&a){for(t.moveTo(e[0].x,e[0].y),o=1;o<n;++o)ut.canvas.lineTo(t,e[o-1],e[o]);for(t.lineTo(i[a-1].x,i[a-1].y),o=a-1;o>0;--o)ut.canvas.lineTo(t,i[o],i[o-1],!0)}}var un={id:"filler",afterDatasetsUpdate:function(t,e){var i,n,a,o,r=(t.data.datasets||[]).length,s=e.propagate,l=[];for(n=0;n<r;++n)o=null,(a=(i=t.getDatasetMeta(n)).dataset)&&a._model&&a instanceof Wt.Line&&(o={visible:t.isDatasetVisible(n),fill:an(a,n,r),chart:t,el:a}),i.$filler=o,l.push(o);for(n=0;n<r;++n)(o=l[n])&&(o.fill=rn(l,n,s),o.boundary=on(o),o.mapper=sn(o))},beforeDatasetDraw:function(t,e){var i=e.meta.$filler;if(i){var n=t.ctx,a=i.el,o=a._view,r=a._children||[],s=i.mapper,l=o.backgroundColor||st.global.defaultColor;s&&l&&r.length&&(ut.canvas.clipArea(n,t.chartArea),function(t,e,i,n,a,o){var r,s,l,d,u,h,c,f=e.length,g=n.spanGaps,p=[],m=[],v=0,b=0;for(t.beginPath(),r=0,s=f+!!o;r<s;++r)u=i(d=e[l=r%f]._view,l,n),h=ln(d),c=ln(u),h&&c?(v=p.push(d),b=m.push(u)):v&&b&&(g?(h&&p.push(d),c&&m.push(u)):(dn(t,p,m,v,b),v=b=0,p=[],m=[]));dn(t,p,m,v,b),t.closePath(),t.fillStyle=a,t.fill()}(n,r,s,o,l,a._loop),ut.canvas.unclipArea(n))}}},hn=ut.noop,cn=ut.valueOrDefault;function fn(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}st._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var i=e.datasetIndex,n=this.chart,a=n.getDatasetMeta(i);a.hidden=null===a.hidden?!n.data.datasets[i].hidden:null,n.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return ut.isArray(e.datasets)?e.datasets.map(function(e,i){return{text:e.label,fillStyle:ut.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(i),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:i}},this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var i=0;i<t.data.datasets.length;i++)e.push('<li><span style="background-color:'+t.data.datasets[i].backgroundColor+'"></span>'),t.data.datasets[i].label&&e.push(t.data.datasets[i].label),e.push("</li>");return e.push("</ul>"),e.join("")}});var gn=pt.extend({initialize:function(t){ut.extend(this,t),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:hn,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:hn,beforeSetDimensions:hn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:hn,beforeBuildLabels:hn,buildLabels:function(){var t=this,e=t.options.labels||{},i=ut.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(i=i.filter(function(i){return e.filter(i,t.chart.data)})),t.options.reverse&&i.reverse(),t.legendItems=i},afterBuildLabels:hn,beforeFit:hn,fit:function(){var t=this,e=t.options,i=e.labels,n=e.display,a=t.ctx,o=ut.options._parseFont(i),r=o.size,s=t.legendHitBoxes=[],l=t.minSize,d=t.isHorizontal();if(d?(l.width=t.maxWidth,l.height=n?10:0):(l.width=n?10:0,l.height=t.maxHeight),n)if(a.font=o.string,d){var u=t.lineWidths=[0],h=0;a.textAlign="left",a.textBaseline="top",ut.each(t.legendItems,function(t,e){var n=fn(i,r)+r/2+a.measureText(t.text).width;(0===e||u[u.length-1]+n+i.padding>l.width)&&(h+=r+i.padding,u[u.length-(e>0?0:1)]=i.padding),s[e]={left:0,top:0,width:n,height:r},u[u.length-1]+=n+i.padding}),l.height+=h}else{var c=i.padding,f=t.columnWidths=[],g=i.padding,p=0,m=0,v=r+c;ut.each(t.legendItems,function(t,e){var n=fn(i,r)+r/2+a.measureText(t.text).width;e>0&&m+v>l.height-c&&(g+=p+i.padding,f.push(p),p=0,m=0),p=Math.max(p,n),m+=v,s[e]={left:0,top:0,width:n,height:r}}),g+=p,f.push(p),l.width+=g}t.width=l.width,t.height=l.height},afterFit:hn,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,i=e.labels,n=st.global,a=n.defaultColor,o=n.elements.line,r=t.width,s=t.lineWidths;if(e.display){var l,d=t.ctx,u=cn(i.fontColor,n.defaultFontColor),h=ut.options._parseFont(i),c=h.size;d.textAlign="left",d.textBaseline="middle",d.lineWidth=.5,d.strokeStyle=u,d.fillStyle=u,d.font=h.string;var f=fn(i,c),g=t.legendHitBoxes,p=t.isHorizontal();l=p?{x:t.left+(r-s[0])/2+i.padding,y:t.top+i.padding,line:0}:{x:t.left+i.padding,y:t.top+i.padding,line:0};var m=c+i.padding;ut.each(t.legendItems,function(n,u){var h=d.measureText(n.text).width,v=f+c/2+h,b=l.x,x=l.y;p?u>0&&b+v+i.padding>t.left+t.minSize.width&&(x=l.y+=m,l.line++,b=l.x=t.left+(r-s[l.line])/2+i.padding):u>0&&x+m>t.top+t.minSize.height&&(b=l.x=b+t.columnWidths[l.line]+i.padding,x=l.y=t.top+i.padding,l.line++),function(t,i,n){if(!(isNaN(f)||f<=0)){d.save();var r=cn(n.lineWidth,o.borderWidth);if(d.fillStyle=cn(n.fillStyle,a),d.lineCap=cn(n.lineCap,o.borderCapStyle),d.lineDashOffset=cn(n.lineDashOffset,o.borderDashOffset),d.lineJoin=cn(n.lineJoin,o.borderJoinStyle),d.lineWidth=r,d.strokeStyle=cn(n.strokeStyle,a),d.setLineDash&&d.setLineDash(cn(n.lineDash,o.borderDash)),e.labels&&e.labels.usePointStyle){var s=f*Math.SQRT2/2,l=t+f/2,u=i+c/2;ut.canvas.drawPoint(d,n.pointStyle,s,l,u)}else 0!==r&&d.strokeRect(t,i,f,c),d.fillRect(t,i,f,c);d.restore()}}(b,x,n),g[u].left=b,g[u].top=x,function(t,e,i,n){var a=c/2,o=f+a+t,r=e+a;d.fillText(i.text,o,r),i.hidden&&(d.beginPath(),d.lineWidth=2,d.moveTo(o,r),d.lineTo(o+n,r),d.stroke())}(b,x,n,h),p?l.x+=v+i.padding:l.y+=m})}},_getLegendItemAt:function(t,e){var i,n,a,o=this;if(t>=o.left&&t<=o.right&&e>=o.top&&e<=o.bottom)for(a=o.legendHitBoxes,i=0;i<a.length;++i)if(t>=(n=a[i]).left&&t<=n.left+n.width&&e>=n.top&&e<=n.top+n.height)return o.legendItems[i];return null},handleEvent:function(t){var e,i=this,n=i.options,a="mouseup"===t.type?"click":t.type;if("mousemove"===a){if(!n.onHover&&!n.onLeave)return}else{if("click"!==a)return;if(!n.onClick)return}e=i._getLegendItemAt(t.x,t.y),"click"===a?e&&n.onClick&&n.onClick.call(i,t.native,e):(n.onLeave&&e!==i._hoveredItem&&(i._hoveredItem&&n.onLeave.call(i,t.native,i._hoveredItem),i._hoveredItem=e),n.onHover&&e&&n.onHover.call(i,t.native,e))}});function pn(t,e){var i=new gn({ctx:t.ctx,options:e,chart:t});ke.configure(t,i,e),ke.addBox(t,i),t.legend=i}var mn={id:"legend",_element:gn,beforeInit:function(t){var e=t.options.legend;e&&pn(t,e)},beforeUpdate:function(t){var e=t.options.legend,i=t.legend;e?(ut.mergeIf(e,st.global.legend),i?(ke.configure(t,i,e),i.options=e):pn(t,e)):i&&(ke.removeBox(t,i),delete t.legend)},afterEvent:function(t,e){var i=t.legend;i&&i.handleEvent(e)}},vn=ut.noop;st._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var bn=pt.extend({initialize:function(t){ut.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:vn,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:vn,beforeSetDimensions:vn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:vn,beforeBuildLabels:vn,buildLabels:vn,afterBuildLabels:vn,beforeFit:vn,fit:function(){var t=this,e=t.options,i=e.display,n=t.minSize,a=ut.isArray(e.text)?e.text.length:1,o=ut.options._parseFont(e),r=i?a*o.lineHeight+2*e.padding:0;t.isHorizontal()?(n.width=t.maxWidth,n.height=r):(n.width=r,n.height=t.maxHeight),t.width=n.width,t.height=n.height},afterFit:vn,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,i=t.options;if(i.display){var n,a,o,r=ut.options._parseFont(i),s=r.lineHeight,l=s/2+i.padding,d=0,u=t.top,h=t.left,c=t.bottom,f=t.right;e.fillStyle=ut.valueOrDefault(i.fontColor,st.global.defaultFontColor),e.font=r.string,t.isHorizontal()?(a=h+(f-h)/2,o=u+l,n=f-h):(a="left"===i.position?h+l:f-l,o=u+(c-u)/2,n=c-u,d=Math.PI*("left"===i.position?-.5:.5)),e.save(),e.translate(a,o),e.rotate(d),e.textAlign="center",e.textBaseline="middle";var g=i.text;if(ut.isArray(g))for(var p=0,m=0;m<g.length;++m)e.fillText(g[m],0,p,n),p+=s;else e.fillText(g,0,0,n);e.restore()}}});function xn(t,e){var i=new bn({ctx:t.ctx,options:e,chart:t});ke.configure(t,i,e),ke.addBox(t,i),t.titleBlock=i}var yn={},kn=un,wn=mn,Mn={id:"title",_element:bn,beforeInit:function(t){var e=t.options.title;e&&xn(t,e)},beforeUpdate:function(t){var e=t.options.title,i=t.titleBlock;e?(ut.mergeIf(e,st.global.title),i?(ke.configure(t,i,e),i.options=e):xn(t,e)):i&&(ke.removeBox(t,i),delete t.titleBlock)}};for(var _n in yn.filler=kn,yn.legend=wn,yn.title=Mn,ai.helpers=ut,function(){function t(t,e,i){var n;return"string"==typeof t?(n=parseInt(t,10),-1!==t.indexOf("%")&&(n=n/100*e.parentNode[i])):n=t,n}function e(t){return null!=t&&"none"!==t}function i(i,n,a){var o=document.defaultView,r=ut._getParentNode(i),s=o.getComputedStyle(i)[n],l=o.getComputedStyle(r)[n],d=e(s),u=e(l),h=Number.POSITIVE_INFINITY;return d||u?Math.min(d?t(s,i,a):h,u?t(l,r,a):h):"none"}ut.where=function(t,e){if(ut.isArray(t)&&Array.prototype.filter)return t.filter(e);var i=[];return ut.each(t,function(t){e(t)&&i.push(t)}),i},ut.findIndex=Array.prototype.findIndex?function(t,e,i){return t.findIndex(e,i)}:function(t,e,i){i=void 0===i?t:i;for(var n=0,a=t.length;n<a;++n)if(e.call(i,t[n],n,t))return n;return-1},ut.findNextWhere=function(t,e,i){ut.isNullOrUndef(i)&&(i=-1);for(var n=i+1;n<t.length;n++){var a=t[n];if(e(a))return a}},ut.findPreviousWhere=function(t,e,i){ut.isNullOrUndef(i)&&(i=t.length);for(var n=i-1;n>=0;n--){var a=t[n];if(e(a))return a}},ut.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},ut.almostEquals=function(t,e,i){return Math.abs(t-e)<i},ut.almostWhole=function(t,e){var i=Math.round(t);return i-e<t&&i+e>t},ut.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},ut.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},ut.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},ut.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,i=Math.round(e);return t===Math.pow(10,i)?i:e},ut.toRadians=function(t){return t*(Math.PI/180)},ut.toDegrees=function(t){return t*(180/Math.PI)},ut._decimalPlaces=function(t){if(ut.isFinite(t)){for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}},ut.getAngleFromPoint=function(t,e){var i=e.x-t.x,n=e.y-t.y,a=Math.sqrt(i*i+n*n),o=Math.atan2(n,i);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},ut.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},ut.aliasPixel=function(t){return t%2==0?0:.5},ut._alignPixel=function(t,e,i){var n=t.currentDevicePixelRatio,a=i/2;return Math.round((e-a)*n)/n+a},ut.splineCurve=function(t,e,i,n){var a=t.skip?e:t,o=e,r=i.skip?e:i,s=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),l=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),d=s/(s+l),u=l/(s+l),h=n*(d=isNaN(d)?0:d),c=n*(u=isNaN(u)?0:u);return{previous:{x:o.x-h*(r.x-a.x),y:o.y-h*(r.y-a.y)},next:{x:o.x+c*(r.x-a.x),y:o.y+c*(r.y-a.y)}}},ut.EPSILON=Number.EPSILON||1e-14,ut.splineCurveMonotone=function(t){var e,i,n,a,o,r,s,l,d,u=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),h=u.length;for(e=0;e<h;++e)if(!(n=u[e]).model.skip){if(i=e>0?u[e-1]:null,(a=e<h-1?u[e+1]:null)&&!a.model.skip){var c=a.model.x-n.model.x;n.deltaK=0!==c?(a.model.y-n.model.y)/c:0}!i||i.model.skip?n.mK=n.deltaK:!a||a.model.skip?n.mK=i.deltaK:this.sign(i.deltaK)!==this.sign(n.deltaK)?n.mK=0:n.mK=(i.deltaK+n.deltaK)/2}for(e=0;e<h-1;++e)n=u[e],a=u[e+1],n.model.skip||a.model.skip||(ut.almostEquals(n.deltaK,0,this.EPSILON)?n.mK=a.mK=0:(o=n.mK/n.deltaK,r=a.mK/n.deltaK,(l=Math.pow(o,2)+Math.pow(r,2))<=9||(s=3/Math.sqrt(l),n.mK=o*s*n.deltaK,a.mK=r*s*n.deltaK)));for(e=0;e<h;++e)(n=u[e]).model.skip||(i=e>0?u[e-1]:null,a=e<h-1?u[e+1]:null,i&&!i.model.skip&&(d=(n.model.x-i.model.x)/3,n.model.controlPointPreviousX=n.model.x-d,n.model.controlPointPreviousY=n.model.y-d*n.mK),a&&!a.model.skip&&(d=(a.model.x-n.model.x)/3,n.model.controlPointNextX=n.model.x+d,n.model.controlPointNextY=n.model.y+d*n.mK))},ut.nextItem=function(t,e,i){return i?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},ut.previousItem=function(t,e,i){return i?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},ut.niceNum=function(t,e){var i=Math.floor(ut.log10(t)),n=t/Math.pow(10,i);return(e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*Math.pow(10,i)},ut.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},ut.getRelativePosition=function(t,e){var i,n,a=t.originalEvent||t,o=t.target||t.srcElement,r=o.getBoundingClientRect(),s=a.touches;s&&s.length>0?(i=s[0].clientX,n=s[0].clientY):(i=a.clientX,n=a.clientY);var l=parseFloat(ut.getStyle(o,"padding-left")),d=parseFloat(ut.getStyle(o,"padding-top")),u=parseFloat(ut.getStyle(o,"padding-right")),h=parseFloat(ut.getStyle(o,"padding-bottom")),c=r.right-r.left-l-u,f=r.bottom-r.top-d-h;return{x:i=Math.round((i-r.left-l)/c*o.width/e.currentDevicePixelRatio),y:n=Math.round((n-r.top-d)/f*o.height/e.currentDevicePixelRatio)}},ut.getConstraintWidth=function(t){return i(t,"max-width","clientWidth")},ut.getConstraintHeight=function(t){return i(t,"max-height","clientHeight")},ut._calculatePadding=function(t,e,i){return(e=ut.getStyle(t,e)).indexOf("%")>-1?i*parseInt(e,10)/100:parseInt(e,10)},ut._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},ut.getMaximumWidth=function(t){var e=ut._getParentNode(t);if(!e)return t.clientWidth;var i=e.clientWidth,n=i-ut._calculatePadding(e,"padding-left",i)-ut._calculatePadding(e,"padding-right",i),a=ut.getConstraintWidth(t);return isNaN(a)?n:Math.min(n,a)},ut.getMaximumHeight=function(t){var e=ut._getParentNode(t);if(!e)return t.clientHeight;var i=e.clientHeight,n=i-ut._calculatePadding(e,"padding-top",i)-ut._calculatePadding(e,"padding-bottom",i),a=ut.getConstraintHeight(t);return isNaN(a)?n:Math.min(n,a)},ut.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},ut.retinaScale=function(t,e){var i=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==i){var n=t.canvas,a=t.height,o=t.width;n.height=a*i,n.width=o*i,t.ctx.scale(i,i),n.style.height||n.style.width||(n.style.height=a+"px",n.style.width=o+"px")}},ut.fontString=function(t,e,i){return e+" "+t+"px "+i},ut.longestText=function(t,e,i,n){var a=(n=n||{}).data=n.data||{},o=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(a=n.data={},o=n.garbageCollect=[],n.font=e),t.font=e;var r=0;ut.each(i,function(e){null!=e&&!0!==ut.isArray(e)?r=ut.measureText(t,a,o,r,e):ut.isArray(e)&&ut.each(e,function(e){null==e||ut.isArray(e)||(r=ut.measureText(t,a,o,r,e))})});var s=o.length/2;if(s>i.length){for(var l=0;l<s;l++)delete a[o[l]];o.splice(0,s)}return r},ut.measureText=function(t,e,i,n,a){var o=e[a];return o||(o=e[a]=t.measureText(a).width,i.push(a)),o>n&&(n=o),n},ut.numberOfLabelLines=function(t){var e=1;return ut.each(t,function(t){ut.isArray(t)&&t.length>e&&(e=t.length)}),e},ut.color=X?function(t){return t instanceof CanvasGradient&&(t=st.global.defaultColor),X(t)}:function(t){return console.error("Color.js not found!"),t},ut.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:ut.color(t).saturate(.5).darken(.1).rgbString()}}(),ai._adapters=si,ai.Animation=vt,ai.animationService=bt,ai.controllers=ue,ai.DatasetController=Mt,ai.defaults=st,ai.Element=pt,ai.elements=Wt,ai.Interaction=ve,ai.layouts=ke,ai.platform=Ve,ai.plugins=Ee,ai.Scale=fi,ai.scaleService=He,ai.Ticks=li,ai.Tooltip=Je,ai.helpers.each(tn,function(t,e){ai.scaleService.registerScaleType(e,t,t._defaults)}),yn)yn.hasOwnProperty(_n)&&ai.plugins.register(yn[_n]);ai.platform.initialize();var Cn=ai;return"undefined"!=typeof window&&(window.Chart=ai),ai.Chart=ai,ai.Legend=yn.legend._element,ai.Title=yn.title._element,ai.pluginService=ai.plugins,ai.PluginBase=ai.Element.extend({}),ai.canvasHelpers=ai.helpers.canvas,ai.layoutService=ai.layouts,ai.LinearScaleBase=bi,ai.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],function(t){ai[t]=function(e,i){return new ai(e,ai.helpers.merge(i||{},{type:t.charAt(0).toLowerCase()+t.slice(1)}))}}),Cn});
js/premium-frontend.js 0000644 00000133664 15152652075 0011036 0 ustar 00 /*
PAGELAYER
http://pagelayer.com/
(c) Pagelayer Team
*/
// Things to do on document load
jQuery(document).ready(function(){
jQuery('.pagelayer-slides').each(function(){
pagelayer_pl_slides(jQuery(this));
});
jQuery('.pagelayer-featured_img').each(function(){
pagelayer_pl_image(jQuery(this));
});
jQuery('.pagelayer-wp_posts_slider').each(function(){
pagelayer_wp_posts_slider(jQuery(this));
});
jQuery('.pagelayer-review_slider').each(function(){
pagelayer_reviews_slider(jQuery(this));
});
// Facebook Apps
if(jQuery('[pagelayer-facebook-load]')){
pagelayer_fb_apps(jQuery(this));
}
// For Pagelayer Pro
jQuery('.pagelayer-image_hotspot').each(function(){
pagelayer_image_hotspot(jQuery(this));
});
jQuery('.pagelayer-chart').each(function(){
pagelayer_chart(jQuery(this));
});
jQuery('.pagelayer-table').each(function(){
pagelayer_table(jQuery(this));
});
jQuery('.pagelayer-audio').each(function(){
pagelayer_audio(jQuery(this));
});
jQuery('.pagelayer-post_folio').each(function(){
pagelayer_post_folio(jQuery(this));
});
jQuery('.pagelayer-search').each(function(){
pagelayer_search_form(jQuery(this));
});
jQuery('.pagelayer-sitemap').each(function(){
pagelayer_sitemap_add_attributes(jQuery(this));
});
jQuery('.pagelayer-posts').each(function(){
var is_slider = jQuery(this).find('.pagelayer-posts-container').data('enable_slider');
if(is_slider){
pagelayer_pl_posts(jQuery(this));
}
});
jQuery('.pagelayer-video_slider').each(function(){
pagelayer_pl_video_slider(jQuery(this));
});
jQuery('.pagelayer-woo_menu_cart').each(function(){
pagelayer_woo_menu_cart(jQuery(this));
});
jQuery('.pagelayer-popup-modal').each(function(){
pagelayer_popup_setup(jQuery(this));
});
jQuery('.pagelayer-sticky-ele').each(function(){
pagelayer_ele_sticky_handler(jQuery(this));
});
jQuery('.pagelayer-scrolling-effects').each(function(){
pagelayer_scrolling_effects(jQuery(this));
});
jQuery('.pagelayer-mouse-effects').each(function(){
pagelayer_mouse_effects(jQuery(this));
});
jQuery('.pagelayer-img_portfolio').each(function(){
pagelayer_pl_img_portfolio(jQuery(this));
});
jQuery('.pagelayer-single_img').each(function(){
pagelayer_pl_image(jQuery(this));
});
jQuery('.pagelayer-splash-container').each(function(){
pagelayer_pl_splash_screen(jQuery(this));
});
jQuery('.pagelayer-fb-page-container, .pagelayer-fb-embed-container').each(function(){
pagelayer_fb_width(jQuery(this));
});
jQuery('.pagelayer-before_after').each(function(){
pagelayer_before_after_slider(jQuery(this));
});
jQuery('.pagelayer-image_map').each(function(){
pagelayer_pl_image_map(jQuery(this));
// Make image map editable
if(!pagelayer_empty(pagelayer_is_live)){
pagelayer_imgmap_handler(jQuery(this));
}
});
});
jQuery(window).resize(function(){
jQuery('.pagelayer-scrolling-effects').each(function(){
pagelayer_scrolling_effects(jQuery(this));
});
});
// Add all shuffle instance in this object
var shuffleInstance = {};
// Portfolio Gallery
function pagelayer_pl_img_portfolio(jEle){
var id = jEle.attr('pagelayer-id');
var arr = [];
// Fetch all categories in array
jEle.find('[port-cat]').each(function(){
var cat = jQuery(this).attr('port-cat');
if(cat){
//var sel = jQuery(this).parent('.pagelayer-ele-wrap') ? jQuery(this).parent('.pagelayer-ele-wrap') : jQuery(this);
jQuery(this).attr('data-groups','["'+cat+'"]');
if(!arr.includes(cat)){
arr.push(cat);
}
}
})
// Create category button html
var html = '<button class="pagelayer-pfbtn" data-pgl_pfbtn="all">All</button>';
arr.forEach(function(val){
if(val && val != 'all'){
html += '<button class="pagelayer-pfbtn" data-pgl_pfbtn="'+val+'">'+val+'</button>';
}
});
// Append category buttons to holder
jEle.find('.pagelayer-category-holder').empty().append(html);
var setup = jEle.attr('pagelayer-setup');
// Already setup ? then distroy shuffle
if(setup && setup.length > 0 && !pagelayer_empty(shuffleInstance[id])){
shuffleInstance[id].destroy();
}
// Create an shuffle instance
var Shuffle = window.Shuffle;
var element = jEle.find('.pagelayer-img_portfolio-holder');
var sizer = jEle.find('.pagelayer-img_portfolio-holder');
shuffleInstance[id] = new Shuffle(element,{
itemSelector: '.pagelayer-img_portfolio-holder>div',
//sizer: sizer // could also be a selector: '.my-sizer-element'
});
// set click events on category buttons
if(!window.location.href.includes('pagelayer-live=1')){
jEle.find('button').on("click", function(){
shuffleInstance[id].filter(jQuery(this).attr('data-pgl_pfbtn'));
});
}
// Set that we have setup everything
jEle.attr('pagelayer-setup', 1);
}
// Reset Scrolling effects
function pagelayer_reset_scrolling(jEle, parentEle){
if(jEle.length < 1){
return;
}
var style = jEle.get(0).style;
style.setProperty("--transY", 0 +"px");
style.setProperty("--transX", 0 +"px");
style.setProperty("--rot", 0 +"deg");
jEle.css({"transform":"" , "opacity":"1" , "filter":"none"});
parentEle.off('scroll.'+jEle.attr('pagelayer-id'));
}
// Handle the scrolling effects
function pagelayer_scrolling_effects(jEle, parentEle){
parentEle = parentEle || jQuery(pagelayerGetDocumentElement());
var win = pagelayerGetCurrentWindow();
pagelayer_reset_scrolling(jEle, parentEle);
// Is this element to be scrolled on this Screen Size ?
var screens = jEle.attr('ele_motion_effect_on');
if(pagelayer_empty(screens) || screens.search(pagelayer_get_media_mode()) == -1){
return;
}
var style = jEle.get(0).style;
var totalProperty = '';
var documentHeight = parentEle.height();
var screenMiddle = documentHeight/2;
var eMid = documentHeight/2;// By default motion_area-entire_page
if(jEle.attr('motion_area') == 'viewport'){
jEle.css('top', '0px');
// For viewPort in Gutenberg
if (parentEle.hasClass('interface-interface-skeleton__content')) {
var scrollTopOfDiv = parentEle.scrollTop();
var offsetFromTopOfDiv = jEle.parent().offset().top - parentEle.offset().top + scrollTopOfDiv;
eMid = offsetFromTopOfDiv + jEle.parent().height() / 2;
}else{
eMid = jEle.parent().offset().top + jEle.parent().height() / 2;
}
screenMiddle = jQuery(win).height() / 2;
}
var screenHeightPercent = screenMiddle/100;
// Vertical Scroll
if(jEle.attr('ele_vertical_scroll')){
if(jEle.attr('motion_area')=='entire_page'){
jEle.offset({top:(documentHeight/2)});
}
totalProperty += "translateY(var(--transY))";
var vertical_top = Math.ceil(jEle.attr('ele_v_sc_top_viewport')*(screenHeightPercent));
var vertical_bottom = -Math.ceil(jEle.attr('ele_v_sc_bottom_viewport')*(screenHeightPercent));
}
// Horizontal scroll
if(jEle.attr('ele_horizontal_scroll')){
totalProperty += "translateX(var(--transX))";
var screenWidthPercent = jQuery(win).width()/200;
var horizontal_right = (Math.ceil(jEle.attr('ele_h_sc_right_viewport')*(screenWidthPercent)));
var horizontal_left = -(Math.ceil(jEle.attr('ele_h_sc_left_viewport')*(screenWidthPercent)));
}
// Transparency
if(jEle.attr('ele_transparency')){
var fadingLevel = 1-jEle.attr('ele_transp_level')/10;
var transparency_top = Math.ceil(jEle.attr('ele_transp_top_viewport')*(screenHeightPercent));
var transparency_bottom = Math.ceil(jEle.attr('ele_transp_bottom_viewport')*(screenHeightPercent));
}
// Blur
if(jEle.attr('ele_blur')){
var blurringLevel = jEle.attr('ele_blur_level');
var blur_top = Math.ceil(jEle.attr('ele_blur_top_viewport')*(screenHeightPercent));
var blur_bottom = Math.ceil(jEle.attr('ele_blur_bottom_viewport')*(screenHeightPercent));
}
// Rotate
if(jEle.attr('ele_rotate')){
totalProperty += "rotate(var(--rot))";
var rotate_top = Math.ceil(jEle.attr('ele_rot_top_viewport')*(screenHeightPercent));
var rotate_bottom = -Math.ceil(jEle.attr('ele_rot_bottom_viewport')*(screenHeightPercent));
}
// Scale
if(jEle.attr('ele_scale')){
var childScale = jEle.children("div");
var scalingLevel = jEle.attr('ele_scl_level');
var scale_top = Math.ceil(jEle.attr('ele_scl_top_viewport')*(screenHeightPercent));
var scale_bottom = Math.ceil(jEle.attr('ele_scl_bottom_viewport')*(screenHeightPercent));
}
if(totalProperty != ''){
jEle.css('transform', totalProperty);
}
// On Scroll calc and set
parentEle.on('scroll.'+jEle.attr('pagelayer-id'), function(){
var vpMid = parentEle.scrollTop() + jQuery(win).height()/2;
if(jEle.attr('ele_vertical_scroll')){
var preCalc = ((eMid-vpMid)/10)*(jEle.attr('ele_v_sc_speed'));
if(jEle.attr('ele_v_sc_direction') == 'opposite'){
if(-preCalc<=vertical_top && -preCalc>vertical_bottom){
style.setProperty("--transY", preCalc +"px");
}
}else if(jEle.attr('ele_v_sc_direction') == 'similar'){
if(preCalc<=vertical_top && preCalc>vertical_bottom){
style.setProperty("--transY", -preCalc +"px");
}
}
}
if(jEle.attr('ele_horizontal_scroll')){
var preCalc = (eMid-vpMid)*(jEle.attr('ele_h_sc_speed')/2);
if(jEle.attr('ele_h_sc_direction')=='toleft'){
if(preCalc<=horizontal_right && preCalc>horizontal_left)
style.setProperty("--transX", preCalc +"px");
}else if(jEle.attr('ele_h_sc_direction')=='toright'){
if(-preCalc<=horizontal_right && -preCalc>horizontal_left)
style.setProperty("--transX", -preCalc +"px");
}
}
if(jEle.attr('ele_transparency')){
var preCalc = (vpMid)-eMid;
if(preCalc>(-transparency_bottom) && preCalc<=transparency_top){
var eMidB = eMid-transparency_bottom;
var eMidT = eMid+transparency_top;
var eMidTB = eMidT-eMidB;
if(jEle.attr('ele_transp_type')=='fadein'){
var fadeIn = ((vpMid-eMidB)/eMidTB)+fadingLevel;
jEle.css("opacity",fadeIn);
}else if(jEle.attr('ele_transp_type')=='fadeout'){
var fadeOut = ((eMidT-vpMid)/eMidTB)+fadingLevel;
jEle.css("opacity",fadeOut);
}else if(jEle.attr('ele_transp_type')=='fadeinout'){
var fadeInOut1 = ((vpMid-eMidB)/(eMidTB/2))+fadingLevel;
var fadeInOut2 = ((eMidT-vpMid)/(eMidTB/2))+fadingLevel;
if(fadeInOut1<1+fadingLevel && fadeInOut1>0+fadingLevel){
jEle.css("opacity",fadeInOut1);
}else if(fadeInOut2<1+fadingLevel && fadeInOut2>0+fadingLevel){
jEle.css("opacity",fadeInOut2);
}
}else if(jEle.attr('ele_transp_type')=='fadeoutin'){
var fadeOutIn1 = (((vpMid-eMidB)/(eMidTB/2)-1))+fadingLevel;
var fadeOutIn2 = (((eMidT-vpMid)/(eMidTB/2)-1))+fadingLevel;
if(fadeOutIn2<1+fadingLevel && fadeOutIn2>0+fadingLevel){
jEle.css("opacity",fadeOutIn2);
}else if(fadeOutIn1<1+fadingLevel && fadeOutIn1>0+fadingLevel){
jEle.css("opacity",fadeOutIn1);
}
}
}
}
if(jEle.attr('ele_blur')){
var preCalc = vpMid-eMid;
if(preCalc>-(blur_bottom) && preCalc<=blur_top){
var eMidB = eMid-blur_bottom;
var eMidT = eMid+blur_top;
var eMidTB = eMidT-eMidB;
if(jEle.attr('ele_blur_type')=='blurin'){
var blurIn = ((eMidT-vpMid)/eMidTB)*blurringLevel;
jEle.css("filter","blur("+blurIn+"px)");
}else if(jEle.attr('ele_blur_type')=='blurout'){
var blurOut = ((vpMid-eMidB)/eMidTB)*blurringLevel;
jEle.css("filter","blur("+blurOut+"px)");
}else if(jEle.attr('ele_blur_type')=='blurinout'){
var blurInOut1 = (vpMid-eMidB)/(eMidTB/2)*blurringLevel;
var blurInOut2 = (eMidT-vpMid)/(eMidTB/2)*blurringLevel;
if(blurInOut1<1*blurringLevel && blurInOut1>0.01*blurringLevel){
jEle.css("filter","blur("+blurInOut1+"px)");
}else if(blurInOut2<1*blurringLevel && blurInOut2>0.01*blurringLevel){
jEle.css("filter","blur("+blurInOut2+"px)");
}
}else if(jEle.attr('ele_blur_type')=='bluroutin'){
var blurOutIn1 = ((vpMid-eMidB)/(eMidTB/2)-1)*blurringLevel;
var blurOutIn2 = ((eMidT-vpMid)/(eMidTB/2)-1)*blurringLevel;
if(blurOutIn2<1*blurringLevel && blurOutIn2>0.01*blurringLevel){
jEle.css("filter","blur("+blurOutIn2+"px)");
}else if(blurOutIn1<1*blurringLevel && blurOutIn1>0.01*blurringLevel){
jEle.css("filter","blur("+blurOutIn1+"px)");
}
}
}
}
if(jEle.attr('ele_rotate')){
var preCalc = ((vpMid-eMid)/2);
var rotSpeed = jEle.attr('ele_rot_speed')/2;
if(jEle.attr('ele_rot_direction')=='clockwise'){
if(preCalc<=rotate_top && preCalc>rotate_bottom){
style.setProperty("--rot", preCalc*rotSpeed +"deg");
}
}else if(jEle.attr('ele_rot_direction')=='anticlockwise'){
if(preCalc<=rotate_top && preCalc>rotate_bottom){
style.setProperty("--rot", -preCalc*rotSpeed +"deg");
}
}
}
if(jEle.attr('ele_scale')){
var preCalc = vpMid-eMid;
if(preCalc>-(scale_bottom) && preCalc<=scale_top){
var eMidB = eMid-scale_bottom;
var eMidT = eMid+scale_top;
var eMidTB = eMidT-eMidB;
if(jEle.attr('ele_scl_direction')=='scaleup'){
var scaleUp = ((vpMid-eMidB)/eMidTB)*scalingLevel+1;
childScale.css("transform","scale("+ scaleUp +")");
}else if(jEle.attr('ele_scl_direction')=='scaledown'){
var scaleDown = ((eMidT-vpMid)/eMidTB)*scalingLevel+1;
childScale.css("transform","scale("+ scaleDown +")");
}else if(jEle.attr('ele_scl_direction')=='scaleupdown'){
var scaleUpDown2 = (vpMid-eMidB)/(eMidTB/2)*scalingLevel+1;
var scaleUpDown1 = (eMidT-vpMid)/(eMidTB/2)*scalingLevel+1;
if(scaleUpDown1<1*scalingLevel && scaleUpDown1>0.1*scalingLevel){
childScale.css("transform","scale("+ scaleUpDown1 +")");
}else if(scaleUpDown2<1*scalingLevel && scaleUpDown2>0.1*scalingLevel){
childScale.css("transform","scale("+ scaleUpDown2 +")");
}
}else if(jEle.attr('ele_scl_direction')=='scaledownup'){
var scaleDownUp1 = ((vpMid-eMidB)/(eMidTB/2)-1)*scalingLevel+1;
var scaleDownUp2 = ((eMidT-vpMid)/(eMidTB/2)-1)*scalingLevel+1;
if(scaleDownUp1<1*scalingLevel && scaleDownUp1>0.1*scalingLevel){
childScale.css("transform","scale("+ scaleDownUp1 +")");
}else if(scaleDownUp2<1*scalingLevel && scaleDownUp2>0.1*scalingLevel){
childScale.css("transform","scale("+ scaleDownUp2 +")");
}
}
}
}
});
};
function pagelayer_mouse_reset(jEle){
var win = pagelayerGetCurrentWindow();
jEle.css("transform", "");
var style = jEle.get(0).style;
style.setProperty("--transY", 0 +"px");
style.setProperty("--transX", 0 +"px");
style.setProperty("--rotX", 0 +"deg");
style.setProperty("--rotY", 0 +"deg");
jQuery(win).off('mousemove.'+jEle.attr('pagelayer-id'));
}
// Mouse Effects setup
function pagelayer_mouse_effects(jEle){
pagelayer_mouse_reset(jEle);
var style = jEle.get(0).style;
var mouseproperty = '';
var halfWidth = jEle.parent().offset().left+jEle.parent().width()/2;
var halfHeight = jEle.parent().offset().top+jEle.parent().height()/2;
if(jEle.attr('ele_m_track')){
mouseproperty += 'translateX(var(--transX)) translateY(var(--transY))';
var mouseLevel = jEle.attr('ele_m_tr_level');
}
if(jEle.attr('ele_3d_tilt')){
mouseproperty += ' rotateX(var(--rotX)) rotateY(var(--rotY))';
jEle.parent().css("perspective", "1200px");
var tiltLevel = jEle.attr('ele_3d_tilt_level');
}
if(mouseproperty != ''){
jEle.css("transform", mouseproperty);
}
var win = pagelayerGetCurrentWindow();
jQuery(win).bind('mousemove.'+jEle.attr('pagelayer-id'), function(event){
if(jEle.attr('ele_m_track')){
if(jEle.attr('ele_m_tr_direction') == 'opposite'){
var x =((event.pageX - halfWidth)*mouseLevel)/10;
var y =((event.pageY - halfHeight)*mouseLevel)/10;
style.setProperty("--transX",-x +"px");
style.setProperty("--transY",-y +"px");
//console.log(halfWidth +" "+ mouseLevel);
}else if(jEle.attr('ele_m_tr_direction') == 'same'){
var x =((event.pageX - halfWidth)*mouseLevel)/10;
var y = ((event.pageY-halfHeight)*mouseLevel)/10;
style.setProperty("--transX",x +"px");
style.setProperty("--transY",y +"px");
}
}
if(jEle.attr('ele_3d_tilt')){
if(jEle.attr('ele_3d_tilt_direction')=='opposite'){
var x=((event.pageX - halfWidth)*tiltLevel)/100;
var y=((event.pageY - halfHeight)*tiltLevel)/100;
style.setProperty("--rotX", y +"deg");
style.setProperty("--rotY",-x + "deg");
}else if(jEle.attr('ele_3d_tilt_direction')=='same'){
var x=((event.pageX - halfWidth)*tiltLevel)/100;
var y=((event.pageY - halfHeight)*tiltLevel)/100;
style.setProperty("--rotX",-y + "deg");
style.setProperty("--rotY",x +"deg");
}
}
});
}
// Element sticky handler
function pagelayer_ele_sticky_handler(jEle, parentEle){
// Set element stickied
if(jEle.attr('pagelayer-stickied-ele') == 1){
return;
}
parentEle = parentEle || jQuery(window);
jEle.attr('pagelayer-stickied-ele', 1);
var jEleTop = jEle.offset().top;
var jEleW = jEle[0].clientWidth +'px';
var oldstyle = jEle.attr('style') || '';
var pagelayer_sticky = function(){
var position = jEle.attr('data-sticky-position') || '';
var offset = jEle.attr('data-sticky-offset') || 0;
var sticky_in_col = jEle.attr('data-sticky_in_col') || '';
var sticky_on = jEle.attr('data-sticky-on') || '';
sticky_on = sticky_on.split(',');
// If match the media
var do_sticky = false;
for(var x in sticky_on){
if(pagelayer_get_media_mode() == sticky_on[x]){
do_sticky = true;
}
}
// If there is a wrapper
var wrapper = jEle.parent('.pagelayer-ele-wrap');
if(wrapper.length > 0 ){
// Reset jEle
jEle.next('.pagelayer-sticky-space-holder').remove();
jEle.attr('style', oldstyle);
// Get wrapper old syle
oldstyle = wrapper.attr('oldstyle') || '';
if(pagelayer_empty(oldstyle)){
oldstyle = wrapper.attr('style') || '1';
wrapper.attr('oldstyle', oldstyle);
}else if(oldstyle == '1'){
oldstyle = '';
}
}else{
wrapper = jEle;
}
var parentHeight = parentEle.height();
var parentScrollTop = parentEle.scrollTop();
var topToCheck = jEleTop - parentScrollTop;
// Do fixed the element
var pagelayer_fixed = function(){
var opp_position = (position == 'top') ? 'bottom' : 'top';
var fixed_css = {'position': 'fixed', 'width': jEleW, 'max-width': jEleW, [position] : offset +'px', [opp_position]: 'auto','z-index' : '99'}
// For the sticky in columns
if(!pagelayer_empty(sticky_in_col)){
//fixed_css['position'] = 'sticky';
var container = wrapper.parent();
var containerTop = container.offset().top;
if((containerTop + container.height()) - parentScrollTop <= wrapper.outerHeight(true) + offset || containerTop - parentScrollTop >= parentHeight - wrapper.outerHeight(true) - offset){
fixed_css['position'] = 'absolute';
fixed_css[opp_position] = '0px';
fixed_css[position] = 'auto';
}
}
// Add position holder element
if(wrapper.next('.pagelayer-sticky-space-holder').length < 1 ){
var clone = wrapper.clone(true);
clone.addClass('pagelayer-sticky-space-holder');
clone.css({'visibility' : 'hidden', 'transition': 'none 0s ease 0s', 'animation': '0s ease 0s 1 normal none running none'});
// Remove pagelayer-parent attributes to avoid group children list double
if(!pagelayer_empty(pagelayer_is_live)){
clone.removeClass('pagelayer-ele-wrap');
clone.removeClass('pagelayer-ele');
clone.find('.pagelayer-ele').removeClass('pagelayer-ele');
clone.find('[pagelayer-id]').removeAttr('pagelayer-id');
}
// Add
wrapper.after(clone);
//wrapper.after('<div class="pagelayer-sticky-space-holder" style="width:'+wrapper.outerWidth(true)+'px;height:'+wrapper.outerHeight(true)+'px;visibility:hidden;margin:0px;"></div>');
}
// Css for fixed the element
wrapper.css(fixed_css);
}
// TODO: manage margin
var mTopEle = parseFloat(wrapper.css('margin-top'));
var mBottomEle = parseFloat(wrapper.css('margin-bottom'));
// Fixed on top
if( position == 'top' && (topToCheck <= offset+mTopEle && do_sticky) ){
pagelayer_fixed();
// Fixed on bottom
}else if( position == 'bottom' && topToCheck + wrapper.outerHeight()+mBottomEle >= parentHeight - offset && do_sticky) {
pagelayer_fixed();
// Set old style
}else{
wrapper.attr('style', oldstyle);
wrapper.next('.pagelayer-sticky-space-holder').remove();
jEleW = wrapper[0].clientWidth +'px';
jEleTop = wrapper.offset().top;
}
return true;
};
// Run for the first time
pagelayer_sticky();
// On window scroll
parentEle.scroll(pagelayer_sticky);
parentEle.resize(pagelayer_sticky);
}
function pagelayer_pl_posts(jEle){
var ul = jEle.find('.pagelayer-posts-container');
ul.addClass('pagelayer-owl-carousel pagelayer-owl-theme');
// Build the options
var options = pagelayer_fetch_dataAttrs(ul, 'data-owl-');
// Already setup ?
var setup = jEle.attr('pagelayer-setup');
// If already setup then Destroy Owl
if(setup && setup.length > 0){
ul.pagelayerOwlCarousel('destroy');
ul.find('[class^="pagelayer-owl-"]').remove();
}
//console.log(options);
ul.pagelayerOwlCarousel(options);
// Set that we have setup everything
jEle.attr('pagelayer-setup', 1);
}
function pagelayer_pl_slides(jEle){
var ul = jEle.find('.pagelayer-slides-holder');
// Build the options
var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-');
var blurNav = false;
if(pagelayer_is_live){
if(!options.nav && !options.dots) {
options.nav = true;
options.dots = true;
blurNav = true;
}
options.mouseDrag = false;
}
pagelayer_owl_init(jEle, ul, options);
if(blurNav){
ul.find('.pagelayer-owl-nav button').css({'filter': 'blur(2px)'});
ul.find('.pagelayer-owl-dot').css({'filter': 'blur(2px)'});
}
// Shows element animations after slide change
ul.on('refresh.owl.carousel translate.owl.carousel', function(e) {
var slide = jQuery(this);
if(!pagelayer_is_live) {
slide.find('.pagelayer-wow').addClass('animated');
return;
}
slide.find('.pagelayer-ele').each(function() {
var ele = jQuery(this);
if(ele.css('animation-name') == 'none') {
return;
}
ele.addClass('pagelayer-wow animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
ele.removeClass('pagelayer-wow animated');
});
});
});
}
// For Pagelayer Pro
// Show tooltip in image hotspot
function pagelayer_image_hotspot(jEle){
// Drag and Drop function for image
if (typeof pagelayer_preDAndD_image !== "undefined") {
pagelayer_preDAndD_image(jEle);
}
var tooltip_click = jEle.find('.pagelayer-icon-holder');
var icon_holder = jEle.find('.pagelayer-hotspots-icon-holder');
icon_holder.off('click');
icon_holder.find('.pagelayer-tooltip-text').removeClass('pagelayer-tooltip-on-click');
if(tooltip_click.hasClass('pagelayer-hotspots-click')){
icon_holder.each(function(){
jQuery(this).click(function(){
jQuery(this).find( '.pagelayer-tooltip-text' ).toggleClass('pagelayer-tooltip-on-click');
})
});
}
// Assigning animation classes to icon holder
if(!pagelayer_empty(tooltip_click.attr('pagelayer-animation'))){
icon_holder.addClass('pagelayer-animation-'+tooltip_click.attr('pagelayer-animation'));
}
}
var pagelayer_chart_objects = {};
// Show Chart render
function pagelayer_chart(jEle){
var holder = jEle.find('.pagelayer-chart-holder');
var id = jEle.attr('pagelayer-id');
var type = holder.attr('chart-type');
var labels = holder.attr('chart-labels') || '';
var legend = holder.attr('chart-legend');
var chart_datasets = [];
labels = labels.split(',');
//console.log(labels);
jEle.find('.pagelayer-chart-child-holder').find('.pagelayer-chart-datasets').each(function(){
var tmp_dataset = {};
//console.log(jQuery(this).attr('chart-datasets'));
var chartDatasets = jQuery(this).attr('chart-datasets') || '';
tmp_dataset['data'] = chartDatasets.split(',');
//tmp_dataset['data'] = [734,784,2478,5267,433];
tmp_dataset['label'] = jQuery(this).attr('datasets-label');
tmp_dataset['backgroundColor'] = ( holder.attr('chart-colors') ? holder.attr('chart-colors').split(',') : jQuery(this).attr('dataset-bg') );
tmp_dataset['borderColor'] = jQuery(this).attr('border-color');
tmp_dataset['borderWidth'] = 1;
tmp_dataset['fill'] = ( jQuery(this).attr('dataset-fill') ? true : false );
chart_datasets.push(tmp_dataset);
});
//console.log(chart_datasets);
//chart_datasets = chart_datasets.join(',');
if(id in pagelayer_chart_objects && typeof pagelayer_chart_objects[id].destroy == 'function'){
pagelayer_chart_objects[id].destroy();
}
pagelayer_chart_objects[id] = new Chart(jEle.find('.pagelayer-chart-holder'), {
type: type,
data: {
labels: labels,
datasets:
chart_datasets
},
options: {
//rotation: holder.attr('data-pierotate') * Math.PI,
//circumference: holder.attr('data-circumference') * Math.PI,
maintainAspectRatio: ( holder.attr('chart-height') ? false : true ),
legend: {
display: ( legend ? true : false ),
position: legend,
},
scales: {
xAxes: [
{
barPercentage: 1,
categoryPercentage: 0.9,
ticks:{
beginAtZero: holder.attr('data-xbegin'),
fontColor: holder.attr('data-xcolor'),
fontSize: holder.attr('data-xsize'),
autoSkip: false,
maxRotation: holder.attr('data-xrotate'),
minRotation: holder.attr('data-xrotate')
},
//stacked: true
}
],
yAxes:[
{
ticks:{
beginAtZero: holder.attr('data-ybegin'),
fontColor: holder.attr('data-ycolor'),
fontSize: holder.attr('data-ysize'),
autoSkip: false,
maxRotation: holder.attr('data-yrotate'),
minRotation: holder.attr('data-yrotate')
},
//stacked: true
}
]
}
}
});
}
// Show table render
function pagelayer_table(jEle){
var tHolder = jEle.find('.pagelayer-table-holder');
var dHolder = jEle.find('.pagelayer-data-holder');
var trEle = dHolder.find(".pagelayer-table_row");
var tdlength = 0;
tHolder.empty();
/*trEle.each(function(){
var tdEle = jQuery(this).find(".pagelayer-table_col").length;
if(tdlength < tdEle){tdlength = tdEle}
});*/
// Add rows
trEle.each(function(){
var this_trEle = jQuery(this);
var this_trId = this_trEle.attr('pagelayer-id');
var tdEle = this_trEle.find(".pagelayer-table_col");
var html = '';
// Add columns
tdEle.each(function(){
var td_data_Holder = jQuery(this).find('.pagelayer-col-data');
var td_id = jQuery(this).attr('pagelayer-id');
var tdata = td_data_Holder.attr('data-td') || '';
var t_tag = td_data_Holder.attr('data-tag') || '';
var attrs = {};
var col_attr = '';
attrs['colspan']= td_data_Holder.attr('data-colspan') || '';
attrs['rowspan'] = td_data_Holder.attr('data-rowspan') || '';
if(!pagelayer_empty(pagelayer_is_live)){
attrs['pagelayer-ref-id'] = td_id;
attrs['pagelayer-editable'] = 'data';
attrs['contenteditable'] = 'true';
}
for(var key in attrs){
if(!pagelayer_empty(attrs[key])){
col_attr += key+'="'+attrs[key]+'"';
}
}
html = html+'<'+t_tag +' '+col_attr+' pagelayer-table-id="'+td_id+'">'+tdata+'</'+t_tag+'>';
});
/* if(tdlength > tdEle.length){
var extra_td = tdlength - tdEle.length;
for(var i=0; extra_td >i; i++){
html = html+'<td></td>';
}
} */
tHolder.append('<tr pagelayer-table-id="'+this_trId+'">'+html+'</tr>');
});
if(!pagelayer_empty(pagelayer_is_live)){
tHolder.on('input', '[contenteditable]', function(){
var jEle = jQuery(this);
var val = pagelayer_trim(jEle.html());
var id = jEle.closest('[pagelayer-ref-id]').attr('pagelayer-ref-id');
if(pagelayer_empty(id)){
return;
}
jQuery('[pagelayer-id='+id+']').find('.pagelayer-col-data').attr('data-td', val);
});
}
}
function pagelayer_audio(jEle){
var audio = jQuery(jEle.find('audio'));
var container = jEle.find('.pagelayer-audio-container');
var features = ['playpause','tracks','fullscreen'];
(container.attr('show_duration') ? features.push('duration') : '' );
(container.attr('show_progress') ? features.push('progress') : '' );
(container.attr('show_current') ? features.push('current') : '' );
(container.attr('show_volume') ? features.push('volume') : '' );
audio.mediaelementplayer({
//features: ['playpause','duration','progress','current','volume','tracks','fullscreen']
features: features
});
}
// Post Portfolio Handler - Premium
function pagelayer_post_folio(jEle){
var btn = jEle.find('.pagelayer-postfolio-btn');
var thumb = jEle.find('.pagelayer-postfolio-thumb');
btn.unbind('click');
btn.on('click', function(){
var btn_cat = jQuery(this).data("filter");
if(btn_cat == 'all'){
jQuery(thumb).fadeIn(1200);
}else{
thumb.each(function(){
var thumb_cat = jQuery(this).data("category");
if(!pagelayer_empty(thumb_cat)){
thumb_cat = thumb_cat.split(' ');
if(jQuery.inArray( btn_cat, thumb_cat ) == -1){
jQuery(this).hide();
}else{
jQuery(this).fadeIn(600);
}
}else{
jQuery(this).hide();
}
});
}
});
}
// Search Form handler - Premium
function pagelayer_search_form(jEle){
// In full screen mode set auto complete offscreenBuffering
jEle.find('.pagelayer-search-full-screen form').attr('autocomplete', 'off');
jEle.find('.pagelayer-search-toggle').click(function(){
jEle.find('.pagelayer-search-fields').toggleClass('show');
});
jEle.find('.pagelayer-search-fields').click(function(e){
e = window.event || e;
if(this === e.target) {
jQuery(this).removeClass('show');
}
});
}
// Login Form handler - Premium
function pagelayer_login_submit(jEle, e){
e.preventDefault();
var fdata = new FormData( jQuery(jEle).closest('form')[0] );
// Append the nonce
fdata.append('pagelayer_nonce', pagelayer_global_nonce);
jQuery.ajax({
url: pagelayer_ajaxurl+'action=pagelayer_login_submit',
type: "POST",
data: fdata,
processData: false,
contentType: false,
cache:false,
success:function(result){
var json = jQuery.parseJSON(result);
// console.log(json);
if(!pagelayer_empty(json['error'])){
jQuery(".pagelayer-login-error-box").html(json['error']).fadeIn().delay(10000).fadeOut();
}else{
if(!pagelayer_empty(json['redirect'])){
window.location.href = json['redirect'];
}else{
location.reload(true);
}
}
}
});
}
//Review slider handler - Premium
function pagelayer_reviews_slider(jEle){
var ul = jEle.find('.pagelayer-reviews-holder');
// Build the options
var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-');
pagelayer_owl_init(jEle, ul, options);
}
// Facebook App ID handler - Premium
function pagelayer_fb_apps(jEle){
var app_id = jEle.find('.pagelayer-app-details').attr('pagelayer-app-id');
if(pagelayer_empty(app_id) || app_id == "{{fb-app-id}}"){
app_id = pagelayer_facebook_id;
}
// If still empty
if(pagelayer_empty(app_id)){
return;
}
var win = pagelayerGetCurrentWindow();
var doc = pagelayerGetDocumentElement();
win.fbAsyncInit = function() {
win.FB.init({
appId : app_id,
autoLogAppEvents : true,
xfbml : true,
version : 'v3.3'
});
};
win.FB = null;
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
js = d.createElement(s); js.id = id;
js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0";
fjs.parentNode.insertBefore(js, fjs);
}(doc, 'script', 'facebook-jssdk'));
}
// SiteMap Attribute Handler- Premium
function pagelayer_sitemap_add_attributes(jEle){
var nofollow = jEle.find('.pagelayer-sitemap-div-holder').data('nofollow');
if(!pagelayer_empty(nofollow)){
jEle.find('.pagelayer-sitemap-section .pagelayer-sitemap-list-item a').attr('rel','nofollow');
}
}
// Initialize video slider
function pagelayer_pl_video_slider(jEle){
var ul = jEle.find('.pagelayer-video-slider-holder');
// Build the options
var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-');
pagelayer_owl_init(jEle, ul, options);
}
// Splash widget
function pagelayer_pl_splash_screen(jEle){
if(!pagelayer_empty(pagelayer_is_live)){
return;
}
if( jEle.attr('display_type') == "once"){
if (!sessionStorage.isVisited) {
sessionStorage.isVisited = "true";
jEle.delay(jEle.attr('delay')).fadeIn();
}
}else{
jEle.delay(jEle.attr('delay')).fadeIn();
}
jEle.find('.pagelayer-splash-close, .pagelayer-splash-bg-close').on('click', function(){
jEle.fadeOut();
});
}
// Facebook width adjustment function
function pagelayer_fb_width(jEle){
var facebook = (jEle.find('.fb-page').length ? jEle.find('.fb-page') : jEle.find('.fb-embed'));
var fb_resize = function(){
facebook.attr('data-width', jEle.width());
FB.XFBML.parse();
};
setTimeout(fb_resize, 1000);
var win = pagelayerGetCurrentWindow();
jQuery(win).on('resize', function(){
setTimeout(fb_resize, 1000);
});
}
// WooCommenrce cart
function pagelayer_woo_menu_cart(jEle){
// On click menu cart
jEle.find('.pagelayer-menu-cart-toggle').click(function(e){
e.preventDefault();
jEle.find('.pagelayer-menu-cart-container').toggle();
});
// On click menu cart close
jEle.find('.pagelayer-menu-cart-close').click(function(){
jEle.find('.pagelayer-menu-cart-container').hide();
});
}
// Setup the pop-ups
function pagelayer_popup_setup(popEle){
var jEle = popEle.find('.pagelayer-popup').first();
var id = jEle.attr('pagelayer-id');
var popup_content = popEle.find('.pagelayer-popup-modal-content');
var data = new Object();
// Set the Pou-up id
popEle.attr('pagelayer-popup-id', id);
if(jEle.length < 1) return;
jQuery.each(jEle[0].attributes, function(index, att){
if(att.name.match(/data\-/i)){
data[att.name.substr(5)] = att.value;
}
});
// Show pop-up
var popup_show = function(force){
// Is there a cookie?
if( !pagelayer_empty(data['popup_cookie_session']) && !pagelayer_empty(data['popup_cookie_name']) && pagelayer_empty(force)){
var name = data['popup_cookie_name']+ "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return;
}
}
}
// Avoid multi time open
if(!pagelayer_empty(popEle.attr('pagelayer-popup-Shown')) && pagelayer_empty(data['popup_multi_time'])){
return;
}
popEle.css({'display' : 'flex'});
popEle.attr('pagelayer-popup-Shown', 1);
// Animate the Pop-up content
if(!pagelayer_empty(data['popup_animation'])){
popup_content.addClass(data['popup_animation'] + ' animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
jQuery(this).removeClass(data['popup_animation']+ ' animated');
});
}
// Auto close
if(!pagelayer_empty(data['popup_auto_close'])){
var cSecond = parseFloat(data['popup_auto_close']);
setTimeout(function(){
popEle.find('.pagelayer-popup-close').click();
}, cSecond * 1000);
}
}
// Append the close element
// remove close element
popEle.find('.pagelayer-popup-close').remove();
// Put close button inside or outside
if(data['popup_cbtn_position'] == 'outside'){
popEle.append('<div class="pagelayer-popup-close"><i class="fas fa-times" ></i></div>');
}else{
popEle.find('.pagelayer-popup-modal-content').append('<div class="pagelayer-popup-close"><i class="fas fa-times" ></i></div>');
}
var closer = popEle.find('.pagelayer-popup-close');
// On click close
closer.click(function(e){
jQuery(document).trigger('pagelayer_popup_close', e, popEle);
e.preventDefault();
e.stopPropagation();
popEle.hide();
});
// Hide pop-up on click modal container
if ( !pagelayer_empty(data['overlay_close']) ){
popEle.click(function(e){
if(jQuery(e.target).closest('.pagelayer-popup-modal-content').length > 0) return;
closer.click();
});
}
// Hide pop-up click on selector
if ( !pagelayer_empty(data['selector_close']) ){
jQuery(data['selector_close']).click(function(e){
closer.click();
});
}
// Is there a cookie to be set to be remembered ?
if( !pagelayer_empty(data['popup_cookie_session']) && !pagelayer_empty(data['popup_cookie_name']) ){
// Set cookie on close as well ?
if(!pagelayer_empty(data['popup_cookie_close'])){
data['popup_cookie_selector'] = '.pagelayer-popup-close'+(pagelayer_empty(data['popup_cookie_selector']) ? '' : ','+data['popup_cookie_selector']);
}
if(!pagelayer_empty(data['popup_cookie_selector'])){
pagelayer_popup_set_cookie(data, closer);
}
}
// Pop-up triggers
// If we are in editor
if ( !pagelayer_empty(popEle.attr('pagelayer-popup-editor')) ) {
closer.unbind('click');
popEle.unbind('click');
popEle.removeAttr('pagelayer-popup-Shown');
popup_show(true);
}
// Click popup show
if(!pagelayer_empty(data['trig_click'])){
jQuery(data['trig_click_ele']).click(popup_show);
}
// Popup show on load
if(!pagelayer_empty(data['trig_load'])){
var second = parseFloat(data['trig_load_sec'] || 0);
setTimeout(popup_show, second * 1000);
}
// Popup show on scroll
if(!pagelayer_empty(data['trig_scroll'])){
// Initial state
var scrollPos = 0;
// adding scroll event
jQuery(window).on('scroll', function(){
// detects new state and compares it with the new one
if ( scrollY > scrollPos){
if(data['trig_scroll_dir'] == 'down'){
let scroll_per = scrollY*100/(jQuery(document).height() - innerHeight);
let scr_per =parseInt(data['trig_scroll_per']) || 0;
if( scr_per <= scroll_per){
popup_show();
}
}
}else if(data['trig_scroll_dir'] == 'up'){
popup_show();
}
// saves the new position for iteration.
scrollPos = scrollY;
});
}
// Popup show on scroll to element
if(!pagelayer_empty(data['trig_scroll_to_ele'])){
// adding scroll event
jEle.find(data['trig_scroll_to_ele_sel']).on('scroll', function(){
popup_show();
});
}
// On scroll popup show
if(!pagelayer_empty(data['trig_page_exit_intent'])){
jQuery(document).on('mouseleave', popup_show);
}
// When page load popup hide
if(!pagelayer_empty(data['trig_before_load'])){
closer.click();
}
}
// Sets the cookie
function pagelayer_popup_set_cookie(data, closer){
jQuery(data['popup_cookie_selector']).click(function(e){
var exdays = data['popup_cookie_exp'] || 0;
var d = new Date();
d.setTime(d.getTime() + ( parseFloat(exdays) *24*60*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = data['popup_cookie_name'] + "=1;" + expires + ";path=/";
if(closer && !jQuery(e.target).is(closer)){
closer.click();
}
});
}
// Before After Slider Handler
function pagelayer_before_after_slider(jEle){
let event = jEle.find('.pagelayer-before-after-container').attr('data-resize-event'),
slider = jEle.find('.pagelayer-before-after-slider'),
after = jEle.find('.pagelayer-after-image'),
resizer = jEle.find('.pagelayer-resizer'),
buttons = jEle.find('.pagelayer-before-btn, .pagelayer-after-btn'),
plID = jEle.attr('pagelayer-id');
resizer.removeAttr('style');
after.removeAttr('style');
// z - Custom value for both
var slideIt = function(e, z){
z = z || false;
let x, y;
if(z != false){
x = y = z;
}else{
let pos = slider.offset(),
eleWidth = slider.width(),
eleHeight = slider.height();
x = Math.min( (e.pageX - pos.left), eleWidth ) * 100 / eleWidth;
y = Math.min( (e.pageY - pos.top), eleHeight) * 100 / eleHeight;
}
if(x < 0 || x > 99.7 || y < 0 || y > 99.7){
return false;
}
if(slider.hasClass('pagelayer-before-after-slider-vertical')){
resizer.css({'top': y+'%'});
after.css({'clip-path': 'polygon(0px '+y+'%, 100% '+y+'%, 100% 100%, 0% 100%)'});
return;
}
resizer.css({'left': x+'%'});
after.css({'clip-path': 'polygon('+x+'% 0%, 100% 0%, 100% 100%, '+x+'% 100%)'});
}
var resizeOn = function(){
slider.addClass('resize');
}
var resizeOff = function(){
slider.removeClass('resize');
}
// Before After Button click handler
jEle.on('click', '.pagelayer-after-btn, .pagelayer-before-btn', function(e){
e.stopPropagation();
e.preventDefault();
var slide = (jQuery(this).hasClass('pagelayer-before-btn')) ? 90 : 10;
// Start resizing
resizeOn();
slideIt(e, slide);
// Stop resizing
resizeOff();
});
var win = pagelayerGetCurrentWindow();
var doc = pagelayerGetDocumentElement();
// Unbind All events
jQuery(win).unbind('mousemove.bf_slider'+plID);
slider.unbind('click mouseover mouseout');
resizer.unbind('mousedown');
jQuery(doc).unbind('mouseup.bf_slider'+plID);
// If there is no events
if(event == 'none' || pagelayer_empty(event)){
return;
}
if(event == 'hover'){
// No need of buttons while hover effect
buttons.fadeOut();
slider.on('mouseover', resizeOn);
slider.on('mouseout', resizeOff);
}else{
resizer.on('mousedown', function(e){
// To prevent widgets from being dragged.
e.stopPropagation();
e.preventDefault();
resizeOn();
buttons.fadeOut();
});
jQuery(doc).on('mouseup.bf_slider'+plID, function(e){
resizeOff();
buttons.fadeIn();
});
}
jQuery(win).on('mousemove.bf_slider'+plID, function(e){
if(!slider.hasClass('resize')){
return;
}
// Stop divs being selected.
e.stopPropagation();
e.preventDefault();
slideIt(e);
});
slider.on('click', slideIt);
}
// Image Map Widget
function pagelayer_pl_image_map(jEle){
var svgEle = jEle.find('.pagelayer-imgmap-svg');
var data = [];
svgEle.find('.pagelayer-imgmap-item').each(function(){
var data_link = jQuery(this).attr('data-link');
var data_id = jQuery(this).attr('data-id');
data[data_id] = data_link;
});
pagelayer_resize_imgmap(jEle);
jQuery(pagelayerGetCurrentWindow()).off('resize.plimgmap').on('resize.plimgmap',function(){
pagelayer_resize_imgmap(jEle);
});
if(!pagelayer_is_live){
for (const key in data) {
if(data == undefined || data[key].length === 0){
continue;
}
var elem = jEle.find('[data-id='+key+']');
elem.css({'cursor':'pointer'});
elem.off('click').on('click',function(){
window.open(data[key], "_blank");
});
}
svgEle.addClass('pagelayer-imgmap-hover-active');
}
}
function pagelayer_resize_imgmap(jEle){
var svgEle = jEle.find('svg');
var pathEles = svgEle.find('path');
if(pathEles.length > 0){
for (var i = 0; i < pathEles.length; i++) {
pagelayer_resize_imgmap_item(jQuery(pathEles[i]), jEle);
}
}
}
function pagelayer_resize_imgmap_item(path_ele, jEle = ''){
var wrap = jEle.find('.pagelayer-imgmap-wrapper');
var img_ele = jEle.find('img');
// Delay while resizing map
setTimeout(() => {
// Auto resize wrapper
wrap.css('cssText','width:'+img_ele.width()+'px;height:'+img_ele.height()+'px;left:'+img_ele.position().left+'px;top:'+img_ele.position().top+'px;');
var mapWidth = wrap.width();
var mapHeight = wrap.height();
var cords = path_ele.attr('data-cord');
var isActive = path_ele.hasClass('pagelayer-map-item-active') ? true : false;
cords = cords.split(',');
var tmpArr = [];
var tmpCord = '';
var count = 0;
cords.forEach((ele,index) => {
var prefix = index == 1 ? 'M' : 'L';
var perc = ele;
if(tmpCord.length == 0){
tmpCord = (mapWidth / 100) * perc;
}else{
var cord = (mapHeight / 100) * perc;
if(pagelayer_is_live){
var cordWrap = jEle.find('.pagelayer-imgmap-coordinates-wraper');
var mapId = path_ele.attr('data-id');
var cord_ele = jEle.find('.pl-cord-'+mapId).eq(count);
if(cord_ele.length == 0){
var cordHTML = `<div class="pagelayer-imgmap-coord pl-cord-`+mapId+`" title="Drag to reposition" data-id="`+count+`" style="left:`+(tmpCord)+`px;top:`+(cord)+`px" style="display:block;">
<span class="pagelayer-imgmap-remove-cord fa fa-trash"></span>
</div>`;
cordWrap.append(cordHTML);
}else{
var visibility = isActive ? 'display:block' : '';
cord_ele.css('cssText','left:'+tmpCord+'px;top:'+cord+'px;'+visibility);
}
}
tmpArr.push(prefix + tmpCord+' '+cord);
tmpCord = '';
count++;
}
});
// Close path denoted by z
var endOpr = pagelayer_is_live ? '' : 'z';
var value = tmpArr.join('').toString() + endOpr;
cords = cords.toString();
path_ele.attr('data-cord',cords);
path_ele.attr('d',value);
}, 10);
}
function pagelayer_create_imgmap_svg(classes = [], attrs = []){
// Create svg path element and append in the svg
var elem = document.createElementNS('http://www.w3.org/2000/svg', 'path');
if(classes.length > 0){
classes.forEach(cls => {
elem.classList.add(cls);
});
}
if(attrs.length > 0){
attrs.forEach(attr => {
elem.setAttribute(attr[0],attr[1]);
});
}
return elem;
} js/premium.js 0000644 00000125277 15152652075 0007222 0 ustar 00
// Render for audio
function pagelayer_render_pl_audio(el){
el.tmp['src-url'] = el.tmp['src-url'] || el.atts['src'];
return;
/*// Do we have a URL ?
if(!pagelayer_empty(el.atts['a_url'])){
//Get the file extension
var extension = el.atts['a_url'].substr(el.atts['a_url'].lastIndexOf('.') + 1);
//Create source tag according to audio file
switch(extension){
default:
case 'mp3':
el.atts['a_type'] = 'audio/mpeg';
break;
case 'ogg':
el.atts['a_type']= 'audio/ogg';
break;
case 'wav':
el.atts['a_type'] = 'audio/wav';
break;
}
}
// Add the attr
if(!pagelayer_empty(el.atts['a_url']) && !pagelayer_empty(el.atts['a_type'])){
el.CSS.attr.push({'sel': '{{element}} source', 'val': 'src="{{a_url}}"'});
el.CSS.attr.push({'sel': '{{element}} source', 'val': 'type="{{a_type}}"'});
} */
};
function pagelayer_render_end_pl_audio(el){
var jEle = el.$;
pagelayer_audio(jEle);
}
// render the video slider
function pagelayer_render_end_pl_video_slider(el){
pagelayer_owl_destroy(el.$, '.pagelayer-video-slider-holder');
pagelayer_pl_video_slider(el.$);
};
// End Render for splash
function pagelayer_render_end_pl_splash(el){
var jEle = el.$;
var container = jEle.find('.pagelayer-splash-container');
container.fadeIn();
el.$.find('.pagelayer-splash-close, .pagelayer-splash-bg-close').on('click', function(e){
container.fadeOut();
});
if(el.atts['style'] == 'custom'){
container.css({'background': el.atts['shadow_color'], 'color': el.atts['content_color']});
}else{
container.css({'background': '', 'color': ''});
}
container.removeClass().addClass('pagelayer-splash-container pagelayer-splash-'+el.atts['style']);
}
// Render the Posts
function pagelayer_render_end_pl_posts(el){
var post = {};
post['pagelayer_nonce'] = pagelayer_ajax_nonce;
// Page count
if(el.atts['count']) post['posts_per_page'] = el.atts['count'];
if(el.atts['show_thumb']) post['show_thumb'] = el.atts['show_thumb'];
if(el.atts['thumb_size']) post['thumb_size'] = el.atts['thumb_size'];
if(el.atts['show_content']) post['show_content'] = el.atts['show_content'];
if(el.atts['show_title']) post['show_title'] = el.atts['show_title'];
if(el.atts['more']) post['more'] = el.atts['more'];
if(el.atts['btn_type']) post['btn_type'] = el.atts['btn_type'];
if(el.atts['size']) post['size'] = el.atts['size'];
if(el.atts['icon_position']) post['icon_position'] = el.atts['icon_position'];
if(el.atts['icon']) post['icon'] = el.atts['icon'];
if(el.atts['show_more']) post['show_more'] = el.atts['show_more'];
if(el.atts['meta_sep']) post['meta_sep'] = el.atts['meta_sep'];
if(el.atts['exc_length']) post['exc_length'] = el.atts['exc_length'];
if(el.atts['post_type']) post['post_type'] = el.atts['post_type'];
if(el.atts['posts_order']) post['order'] = el.atts['posts_order'];
if(el.atts['inc_term']) post['term'] = el.atts['inc_term'];
if(el.atts['inc_author']) post['author_name'] = el.atts['inc_author'];
if(el.atts['exc_term']) post['exc_term'] = el.atts['exc_term'];
if(el.atts['exc_author']) post['exc_author'] = el.atts['exc_author'];
if(el.atts['offset']) post['offset'] = el.atts['offset'];
if(el.atts['ignore_sticky']) post['ignore_sticky'] = el.atts['ignore_sticky'];
if(el.atts['orderby']) post['orderby'] = el.atts['orderby'];
if(el.atts['by_period']) post['by_period'] = el.atts['by_period'];
if(el.atts['before_date']) post['before_date'] = el.atts['before_date'];
if(el.atts['after_date']) post['after_date'] = el.atts['after_date'];
if(el.atts['thumb_img_type']) post['thumb_img_type'] = el.atts['thumb_img_type'];
var img_size = el.tmp['def_thumb_img-'+el.atts['thumb_size']+'-url'];
if(el.atts['def_thumb_img']) post['def_thumb_img'] = pagelayer_empty(img_size) ? el.tmp['def_thumb_img-url'] : img_size;
if(el.atts['meta']){
var meta_arr = el.atts['meta'].split(',');
jQuery.each(meta_arr, function(index, value){
post[value] = value;
});
}
if(pagelayer_empty(pagelayer_posts_data) || !pagelayer_compare_object(pagelayer_posts_data, post) || pagelayer_empty(pagelayer_ajax_data[el['id']])){
pagelayer_posts_data = post;
jQuery.ajax({
url: pagelayer_ajax_url+'action=pagelayer_posts_data',
type: 'post',
data: post,
success: function(data){
//console.log(data);
el.$.find('.pagelayer-posts-container').html(data);
pagelayer_ajax_data[el['id']] = data;
if(el.atts['enable_slider']){
pagelayer_pl_posts(el.$);
}
}
});
}else{
el.$.find('.pagelayer-posts-container').html(pagelayer_ajax_data[el['id']]);
if(el.atts['enable_slider']){
pagelayer_pl_posts(el.$);
}
}
}
var pagelayer_folio_data = {};
// Render the Post portfolio
function pagelayer_render_html_pl_post_folio(el){
var post = {};
post['pagelayer_nonce'] = pagelayer_ajax_nonce;
if(el.atts['type']) post['post_type'] = el.atts['type'];
if(el.atts['filter_by']) post['filter_by'] = el.atts['filter_by'];
if(el.atts['count']) post['posts_per_page'] = el.atts['count'];// Page count
if(pagelayer_empty(pagelayer_folio_data) || !pagelayer_compare_object(pagelayer_folio_data, post) || pagelayer_empty(pagelayer_ajax_data[el['id']])){
pagelayer_folio_data = post;
jQuery.ajax({
url: pagelayer_ajax_url+'action=pagelayer_fetch_posts',
type: 'post',
data: post,
success: function(data){
//console.log(data);
el.$.find('.pagelayer-postfolio-section').html(data);
pagelayer_ajax_data[el['id']] = data;
pagelayer_post_folio(el.$);
}
});
}else{
el.$.find('.pagelayer-postfolio-section').html(pagelayer_ajax_data[el['id']]);
}
}
// Render the chart
function pagelayer_render_pl_chart(el){
el['atts']['xcolor'] = pagelayer_empty(el['atts']['xcolor']) ? '' : pagelayer_parse_color(el['atts']['xcolor'], false);
el['atts']['ycolor'] = pagelayer_empty(el['atts']['ycolor']) ? '' : pagelayer_parse_color(el['atts']['ycolor'], false);
}
// Render the chart
function pagelayer_render_end_pl_chart(el){
var jEle = el.$;
pagelayer_chart(jEle);
}
// Render the chart Dataset
function pagelayer_render_pl_chart_datasets(el){
el['atts']['chart_border_color'] = pagelayer_empty(el['atts']['chart_border_color']) ? '' : pagelayer_parse_color(el['atts']['chart_border_color'], false);
el['atts']['bg_color'] = pagelayer_empty(el['atts']['bg_color']) ? '' : pagelayer_parse_color(el['atts']['bg_color'], false);
}
// Render the search form
function pagelayer_render_pl_search(el){
if('placeholder' in el.atts){
el.tmp['placeholder'] = pagelayer_htmlEntities(el.atts['placeholder']);
}
}
// Render the search form
function pagelayer_render_end_pl_search(el){
pagelayer_search_form(el.$);
}
//var shuffleInstance1 = {};
// Render the img portfolio
function pagelayer_render_end_pl_img_portfolio(el){
pagelayer_pl_img_portfolio(el.$);
}
// Render the img portfolio
function pagelayer_render_pl_single_img(el){
jQuery(el.$).parent().attr('data-groups','["'+el.atts['cat_name']+'"]');
el.atts['func_img'] = el.tmp['img-'+el.atts['img-size']+'-url'] || el.tmp['img-url'];
el.atts['func_img'] = el.atts['func_img'] || el.atts['img'];
// What is the link ?
if('link_type' in el.atts){
// Custom url
if(el.atts['link_type'] == 'custom_url'){
el.atts['func_link'] = pagelayer_empty(el.tmp['link']) ? '' : el.tmp['link'];
}
// Link to the media file itself
if(el.atts['link_type'] == 'media_file'){
el.atts['func_link'] = el.tmp['img-url'] || el.atts['img'];
}
// Lightbox
if(el.atts['link_type'] == 'lightbox'){
el.atts['func_link'] = el.tmp['img-url'] || el.atts['img'];
}
}
}
// Incase if there is a lightbox
function pagelayer_render_end_pl_single_img(el){
pagelayer_pl_image(el.$);
}
// Render the wp custom menus
function pagelayer_sc_render_pl_wp_custom_menu(el){
var jEle = el.$;
var params = {
title: pagelayer_get_att(jEle, 'title'),
nav_menu: pagelayer_get_att(jEle, 'nav_menu')
};
var wp_custom_menu = jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_fetch_wp_custom_menu',
type: 'POST',
data: params,
async: false
}).responseText;
jEle.find('.pagelayer-wp-custom-menu-container').html(wp_custom_menu);
}
// Render the pages
function pagelayer_sc_render_pl_wp_pages(el){
var jEle = el.$;
var params = {
sortby: pagelayer_get_att(jEle, 'sortby'),
exclude: pagelayer_get_att(jEle, 'exclude')
}
var wp_pages = jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_fetch_wp_pages',
type: 'POST',
data: params,
async: false
}).responseText;
jEle.find('.pagelayer-wp-pages-title').html(pagelayer_get_att(jEle, 'title'));
jEle.find('.pagelayer-wp-pages').html(wp_pages);
}
// Render tags
function pagelayer_sc_render_pl_wp_search(el){
var jEle = el.$;
var title = pagelayer_get_att(jEle, 'title');
//show title for recent comments
jEle.find('.pagelayer-wp-search-title').empty().text(title);
//Ajax call for fetching recent comments
jQuery.ajax({
type: "POST",
url: pagelayer_ajax_url+'&action=pagelayer_wp_search',
success: function(response){
if(!pagelayer_empty(response)){
jEle.find('.pagelayer-wp-search-option').empty().html(response);
}
}
});
}
//render tags
function pagelayer_sc_render_pl_wp_rss(el){
var jEle = el.$;
var title = '';
var items = pagelayer_get_att(jEle, 'items');
var url = pagelayer_get_att(jEle, 'url');
var summary, author, date = 0;
if(pagelayer_get_att(jEle, 'show_summary') == 'checked'){
summary = 1;
}
if(pagelayer_get_att(jEle, 'show_author') == 'checked'){
author = 1;
}
if(pagelayer_get_att(jEle, 'show_date') == 'checked'){
date = 1;
}
var t = pagelayer_get_att(jEle, 'title');
if(!pagelayer_empty(t)){
title = t;
}
//Ajax call for fetching recent comments
jQuery.ajax({
type: "POST",
url: pagelayer_ajax_url+'&action=pagelayer_wp_rss',
data: {"num_items": items, "URL" : url, "summary" : summary, "author" : author, "date" : date, "title": title },
success: function(response){
if(!pagelayer_empty(response)){
jEle.find('.pagelayer-wp-rss-option').empty().html(response);
}
}
});
}
//render tags
function pagelayer_sc_render_pl_wp_meta(el){
var jEle = el.$;
var title = '';
var t = pagelayer_get_att(jEle, 'title');
if(!pagelayer_empty(t)){
title = t;
}
//Ajax call for fetching recent comments
jQuery.ajax({
type: "POST",
url: pagelayer_ajax_url+'&action=pagelayer_wp_meta',
data: { "title": title },
success: function(response){
if(!pagelayer_empty(response)){
jEle.find('.pagelayer-wp-meta-option').empty().html(response);
}
}
});
};
// Render the image hotspot
function pagelayer_render_pl_image_hotspot(el){
// Remove animation classes
el.$.find('.pagelayer-hotspots-icon-holder').removeClass (function (index, className) {
return (className.match (/(^|\s)pagelayer-animation-\S+/g) || []).join(' ');
});
// Decide the image URL
el.tmp['img-url'] = el.tmp['img-url'] || el.atts['img'];
}
// Setup of image hotspot
function pagelayer_render_end_pl_image_hotspot(el){
pagelayer_image_hotspot(el.$);
};
// Render the table
function pagelayer_render_end_pl_table(el){
pagelayer_table(el.$);
};
// Render the Author Block
function pagelayer_render_pl_author_box(el){
var jEle = el.$;
if(el.atts['box_source'] == 'current'){
el.tmp['avatar-url'] = pagelayer_author['avatar'];
el.atts['display_name'] = pagelayer_author['display_name'];
el.atts['description'] = pagelayer_author['description'];
el.atts['user_url'] = pagelayer_author['user_url'];
}else{
el.tmp['avatar-url'] = el.tmp['avatar-url'] || el.atts['avatar'];
}
el.atts['display_html'] = '<'+el.atts['name_style']+'>'+el.atts['display_name']+'</'+el.atts['name_style']+'>';
};
// Render the Sitemap
function pagelayer_render_pl_sitemap_item(el){
var jEle = el.$;
var html_element = '';
var data_type = '', post_order = '', order = '', hier = '', depth = '';
if(el.atts['sitemap_type'] == 'post_type'){
if(pagelayer_empty(el.atts['title'])){
el.atts['title'] = 'Pages';
}
data_type = el.atts['source_post'];
post_order = el.atts['order_post'];
order = el.atts['order'];
hier = el.atts['hierarchical'];
depth = el.atts['depth'];
jQuery.ajax({
type: "POST",
url: pagelayer_ajax_url+'&action=pagelayer_get_pages_list',
data: {
"type": data_type ,
"post_order": post_order,
"order": order,
"hier": hier,
"depth": depth,
pagelayer_nonce: pagelayer_ajax_nonce
},
async:false,
success: function(response){
html_element += '<div class="pagelayer-sitemap-section">';
html_element += '<span>'+el.atts['title']+'</span>';
html_element += response;
html_element += '</div>';
//jEle.find('.pagelayer-sitemap-section').html(html_element);
el.atts['sitemap_html'] = html_element;
}
});
}else{
if(pagelayer_empty(el.atts['title'])){
el.atts['title'] = 'Categories';
}
data_type = el.atts['source_taxonomy'];
post_order = el.atts['order_taxonomy'];
order = el.atts['order'];
hier = el.atts['hierarchical'];
depth = el.atts['depth'];
empty = el.atts['hide_empty'];
jQuery.ajax({
type: "POST",
url: pagelayer_ajax_url+'&action=pagelayer_get_taxonomy_list',
data: {
"type": data_type ,
"post_order": post_order,
"order": order,
"hier": hier,
"depth": depth,
"empty": empty,
pagelayer_nonce: pagelayer_ajax_nonce
},
async:false,
success: function(response){
html_element += '<div class="pagelayer-sitemap-section">';
html_element += '<span>'+el.atts['title']+'</span>';
html_element += response;
html_element += '</div>';
//jEle.find('.pagelayer-sitemap-section').html(html_element);
el.atts['sitemap_html'] = html_element;
}
});
}
};
// Render the fb button
function pagelayer_render_pl_fb_btn(el){
jEle = el.$;
if(el.atts['link_type'] == "current"){
el.atts['custom-url'] = pagelayer_post_permalink;
}
pagelayer_fb_apps(el.$);
};
// Render the fb embed
function pagelayer_render_pl_fb_embed(el){
pagelayer_fb_apps(el.$);
};
// Render the fb page
function pagelayer_render_pl_fb_page(el){
pagelayer_fb_apps(el.$);
};
// Render the fb comments
function pagelayer_render_pl_fb_comments(el){
jEle = el.$;
if(el.atts['link_type'] == "current"){
el.atts['custom-url'] = pagelayer_post_permalink;
}
pagelayer_fb_apps(el.$);
};
// Render the slides
function pagelayer_render_end_pl_slides(el){
pagelayer_owl_destroy(el.$, '.pagelayer-slides-holder');
pagelayer_pl_slides(el.$);
}
// Render the Single Review
function pagelayer_render_end_pl_review(el){
var jEle = el.$.find('.pagelayer-stars-container');
pagelayer_stars(jEle);
}
// Render the Review Slider
function pagelayer_render_end_pl_review_slider(el){
pagelayer_owl_destroy(el.$, '.pagelayer-reviews-holder');
pagelayer_reviews_slider(el.$);
}
// Render the template content
function pagelayer_render_pl_templates(el){
el.atts['template_content'] = '';
if( !pagelayer_empty(el.atts['templates']) ){
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_apply_revision&revisionID='+el.atts['templates'],
type: 'post',
data: {
pagelayer_nonce: pagelayer_ajax_nonce,
'pagelayer-live' : 1,
},
success: function(response, status, xhr){
var obj = jQuery.parseJSON(response);
if(obj['error']){
pagelayer_show_msg(obj['error'], 'error');
el.CSS.css.push({'sel': '{{element}} .pagelayer-template-content', 'val': 'min-height:20px;background-color:#e3e3e3;'});
}else{
el.$.find('.pagelayer-template-content').html(obj['content']);
var selector = el.$.find('.pagelayer-template-content .pagelayer-ele');
//pagelayer_element_setup(selector, true);
//selector.find('.pagelayer-ele-overlay').remove();
// Unwrap the wraps
if(selector.parent().is('.pagelayer-ele-wrap')){
selector.unwrap();
}
}
}
});
}else{
el.CSS.css.push({'sel': '{{element}} .pagelayer-template-content', 'val': 'min-height:20px;background-color:#e3e3e3;'});
}
}
/////////////////////////////
////WooCommerce Shortcode Js
/////////////////////////////
var product_data_timer = {};
function pagelayer_ajax_do_shortcodes(el, success){
var jEle = el.$;
var shortcode_data = pagelayer_generate_sc(jEle, true);
// Clear any previous timeout
clearTimeout(product_data_timer[el.id]);
// Set a timer for constant change
product_data_timer[el.id] = setTimeout(function(){
// Make the call
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_do_shortcodes',
type: 'POST',
data: {
pagelayer_nonce: pagelayer_ajax_nonce,
shortcode_data: shortcode_data
},
success: function(data){
if(typeof success == 'function'){
success(data);
return;
}
var container = jQuery(data).find(success);
if(container.length > 0){
data = container.html();
}
el.$.find(success).html(data);
}
});
}, 200);
}
// Render the product image
function pagelayer_render_pl_product_images(el){
el.atts['product_images_templ'] = '';
var success = function(data){
var container = jQuery(data).find('.pagelayer-product-images-container');
if(container.length > 0){
data = container.html();
}
el.$.find('.pagelayer-product-images-container').html(data);
jQuery(".woocommerce-product-gallery").each( function() {
jQuery(this).wc_product_gallery();
});
}
pagelayer_ajax_do_shortcodes(el, success);
}
// Render product price
function pagelayer_render_pl_product_price(el){
pagelayer_ajax_do_shortcodes(el, '.pagelayer-product-price-container');
}
function pagelayer_render_pl_product_short_desc(el) {
pagelayer_ajax_do_shortcodes(el, '.pagelayer-product-short-desc');
}
// Render product add to cart
function pagelayer_render_pl_add_to_cart(el){
pagelayer_ajax_do_shortcodes(el, '.pagelayer-add-to-cart-holder');
}
// Render product product meta
function pagelayer_render_pl_product_meta(el){
pagelayer_ajax_do_shortcodes(el, '.pagelayer-product-meta');
}
// Render product product meta
function pagelayer_render_pl_product_addi_info(el){
pagelayer_ajax_do_shortcodes(el, '.pagelayer-addi-info-container');
}
// Render product product meta
function pagelayer_render_pl_product_data_tabs(el){
pagelayer_ajax_do_shortcodes(el, '.pagelayer-data-tabs-container');
}
// Render product product rating
function pagelayer_render_pl_product_rating(el){
pagelayer_ajax_do_shortcodes(el, '.pagelayer-product-rating');
}
// Render the related product
function pagelayer_render_pl_product_related(el){
el.atts['related_products'] = '';
pagelayer_ajax_do_shortcodes(el, '.pagelayer-product-related-container');
}
// Render the WooCommerce pages
function pagelayer_render_pl_woo_pages(el){
el.atts['page_content'] = '';
var shortcode ='';
// if is not empty
if( !pagelayer_empty(el.atts['pages']) ){
shortcode = '['+ el.atts['pages'] +']';
}
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_do_shortcodes',
type: 'post',
data: {
pagelayer_nonce: pagelayer_ajax_nonce,
shortcode_data: shortcode,
},
success: function(response){
// If the content is empty
if(pagelayer_empty(response)){
response = '<div class="woocommerce">Content not found</div>';
}
// if is checkout page
if ( 'woocommerce_checkout' === el.atts['pages'] && '<div class="woocommerce"></div>' == $content ) {
response = '<div class="woocommerce">Your cart is currently empty.</div>';
}
el.$.find('.pagelayer-woo-pages-container').html(response);
}
});
}
// Render the WooCommerce pages
function pagelayer_render_pl_product_categories(el){
el.atts['product_categories'] = '';
// Clear any previous timeout
clearTimeout(product_data_timer[el.id]);
// Set a timer for constant change
product_data_timer[el.id] = setTimeout(function(){
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_product_categories',
type: 'post',
data: {
pagelayer_nonce: pagelayer_ajax_nonce,
atts: el.atts,
},
success: function(response){
el.$.find('.pagelayer-product-categories-container').html(response);
}
});
}, 200);
}
// Render the archive products
function pagelayer_render_pl_product_archives(el){
el.atts['product_archives'] = '';
pagelayer_ajax_do_shortcodes(el, '.pagelayer-product-archives-container');
}
// Render the products
function pagelayer_render_pl_products(el){
el.atts['products_content'] = '';
// Clear any previous timeout
clearTimeout(product_data_timer[el.id]);
// Set a timer for constant change
product_data_timer[el.id] = setTimeout(function(){
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_products_ajax',
type: 'post',
data: {
pagelayer_nonce: pagelayer_ajax_nonce,
atts: el.atts,
},
success: function(response){
el.$.find('.pagelayer-products-container').html(response);
}
});
}, 200);
}
// Render the products
function pagelayer_render_end_pl_woo_menu_cart(el){
var success = function(data){
var html = jQuery(data).find('.pagelayer-woo-menu-cart-container').html();
el.$.find('.pagelayer-woo-menu-cart-container').html(html);
pagelayer_woo_menu_cart(el.$);
}
pagelayer_ajax_do_shortcodes(el, success);
}
// Function to sticky the element on render, if sticky attr is set
pagelayer_add_action('pagelayer_sc_render_end', function(e, el){
// Is there any adding_attribute attribute then initialize in editor
if(el.atts['ele_attributes']){
pagelayer_add_attributes(el);
}
// Is there any scrolling effects then initialize in editor
if(el.atts['ele_scrolling_effects']){
pagelayer_scrolling_effects(el.$);
}
// Is there any mouse effects then initialize in editor
if(el.atts['ele_mouse_effects']){
pagelayer_mouse_effects(el.$);
}
//console.log(el);
if(pagelayer_empty(el.atts['ele_sticky_pos'])){return;}
// Do sticky the elemen
pagelayer_ele_sticky_handler(el.$);
});
// Adding Custom Attributes
var pagelayer_custom_attr = {};
function pagelayer_add_attributes(el){
// Remove all attributes first
if(el.id in pagelayer_custom_attr){
pagelayer_custom_attr[el.id].forEach(function(item, index){
el.$.removeAttr(item);
});
}
pagelayer_custom_attr[el.id] = [];
// Then create attributes
var val = pagelayer_trim(el.atts['ele_attributes'].split(';'));
val.forEach(function(item, index){
// Split from first equal only
var splitValue = item.split(/=(.*)/);
var attKey = pagelayer_trim(splitValue[0]);
pagelayer_custom_attr[el.id].push(attKey);
if(attKey.length < 1 || pagelayer_empty(attKey.match(/^[a-z_]+[\w:.-]*$/i))){
return;
}
if(splitValue.length < 2){
el.$.attr(attKey, '');
return;
}
el.$.attr(attKey, splitValue[1]);
});
}
// Function to always show Popup when editing the popup
pagelayer_add_action('pagelayer_setup_history', function(){
if(!('pagelayer_template_type' in pagelayer_post && pagelayer_post['pagelayer_template_type'] == 'popup')){
return;
}
jQuery(pagelayer_editable).wrap('<div class="pagelayer-popup-modal" pagelayer-popup-editor="1">'+
'<div class="pagelayer-popup-modal-content">'+
'<div class="pagelayer-popup-content">'+
'</div>'+
'</div>'+
'</div>');
pagelayer.$$('.pagelayer-settings-icon, .pagelayer-settings').attr('pagelayer-tag', 'pl_popup');
pagelayer.$$('.pagelayer-settings').click();
pagelayer_popup_setup(jQuery('[pagelayer-popup-editor="1"]'));
});
pagelayer_last_popup = {anim:'', close: ''};
// Render the pop-up
function pagelayer_render_end_pl_popup(el){
// If the anim is same dont render animation again
if(pagelayer_last_popup.anim == el.atts['popup_animation'] && pagelayer_last_popup.close == el.atts['popup_cbtn_position']){
return;
}
// Set the new type
pagelayer_last_popup.anim = el.atts['popup_animation'];
pagelayer_last_popup.close = el.atts['popup_cbtn_position'];
var modal = el.$.closest('.pagelayer-popup-modal');
if(modal.length > 0){
pagelayer_popup_setup(modal);
}
}
// Render the call to action widget
function pagelayer_render_pl_call(el){
el.tmp['cta_image-url'] = el.tmp['cta_image-url'] || el.atts['cta_image'];
}
//Render before after slider
function pagelayer_render_pl_before_after(el){
el.tmp['before_image-url'] = el.tmp['before_image-url'] || el.atts['before_image'];
el.tmp['after_image-url'] = el.tmp['after_image-url'] || el.atts['after_image'];
}
function pagelayer_render_end_pl_before_after(el){
pagelayer_before_after_slider(el.$);
}
// Render the image map
function pagelayer_render_pl_image_map(el){
el.atts['map_img_id'] = el.tmp['img_map-id-'+el.atts['img_map-size']+'-url'] || el.tmp['map_img-id-url'];
el.atts['map_img_id'] = el.atts['map_img_id'] || el.atts['map_img-id'];
el.atts['pagelayer-srcset'] = el.atts['map_img_id']+', '+el.atts['map_img_id']+' 1x, ';
if (el.atts['pagelayer_image_map']) {
el.atts['pagelayer_map_path'] = '';
for (const key in el.atts['pagelayer_image_map']) {
const data_cord = el.atts['pagelayer_image_map'][key]?.path || '';
const data_id = key;
const data_link = el.atts['pagelayer_image_map'][key]?.link || '';
el.atts['pagelayer_map_path'] += `<path class='pagelayer-imgmap-item' d='${data_cord}' stroke-width='2' data-cord='${data_cord}' data-id='${data_id}' fill-opacity='0.3' fill-rule='evenodd' data-link='${data_link}'></path>`;
}
}
var image_atts = {
name : 'map_img-id',
size : 'img_map-size'
};
pagelayer_get_img_src(el, image_atts);
}
function pagelayer_render_end_pl_image_map(el){
// Re-render image maps
pagelayer_pl_image_map(el.$);
// Re-render image map handler
pagelayer_imgmap_handler(el.$);
}
// Image Map handler
function pagelayer_imgmap_handler(jEle){
var mapObj = pagelayer_get_att(jEle,'pagelayer_image_map') || {},
sEle = jEle.find('svg'),
cordWrap = jEle.find('.pagelayer-imgmap-coordinates-wraper'),
toolbar = jEle.find('.pagelayer-imgmap-toolbar'),
wrap = jEle.find('.pagelayer-imgmap-wrapper');
// Cords drag handler
var handle_cord_drag = function(jEle){
var cordEle = jEle.find('.pagelayer-imgmap-coord');
var isDragging = false;
const stopDragging = () => {
isDragging = false;
cordEle.removeClass('pagelayer-mapele-dragging').off('mouseup click');
jQuery(document).off('mouseup.imgmap');
};
cordEle.off('mousedown').on('mousedown', function (e) {
e.stopPropagation();
e.preventDefault();
if (jQuery(e.target).hasClass('pagelayer-imgmap-remove-cord')) return;
isDragging = true;
jQuery(this).addClass('pagelayer-mapele-dragging').mouseup(stopDragging).click(stopDragging);
jQuery(document).on('mouseup.imgmap', stopDragging);
sEle.off('mouseup mousemove');
sEle.mouseup(function(e){
isdragging = false;
});
sEle.mousemove(function (e) {
if (!isDragging) return;
const dragEle = jEle.find('.pagelayer-imgmap-coord.pagelayer-mapele-dragging');
if (!dragEle.length) return;
const xPer = ((e.offsetX / wrap.width()) * 100).toFixed(2);
const yPer = ((e.offsetY / wrap.height()) * 100).toFixed(2);
dragEle.css({ left: `${xPer}%`, top: `${yPer}%` });
update_active_element_coordinates(xPer, yPer, dragEle.data('id'));
});
});
}
// Update active element's coordinates
var update_active_element_coordinates = function(x, y, id){
const activeEle = jEle.find('.pagelayer-imgmap-item.pagelayer-map-item-active');
const coords = activeEle.attr('data-cord').split(',');
coords.splice(id * 2, 2, x, y);
activeEle.attr('data-cord', coords.join(','));
pagelayer_resize_imgmap(jEle);
};
// Delete cord handler
var cord_delete_handler = function(e){
e.stopPropagation();
const parent = jQuery(this).parent();
const cordPos = parent.attr('data-id');
const activeEle = sEle.find('.pagelayer-map-item-active');
const activeEleId = activeEle.attr('data-id');
// Remove coordinates
const cords = activeEle.attr('data-cord').split(',');
cords.splice(cordPos * 2, 2);
activeEle.attr('data-cord', cords.join(','));
parent.remove();
// Reindex coordinates and resize the image map
jEle.find(`.pl-cord-${activeEleId}`).each((index, elem) => {
jQuery(elem).attr('data-id', index);
});
pagelayer_resize_imgmap(jEle);
}
// Map items click handler
var handleClick = function(){
if(sEle.find('.pagelayer-map-item-active').length > 0){
return;
}
sEle.find('.pagelayer-map-item-active_is_editable').removeClass('pagelayer-map-item-active_is_editable')
var imageMapItem = jQuery(this).addClass('pagelayer-map-item-active_is_editable');
set_toolbar_editable(true, 'selected');
// Edit map item
toolbar.find('.pagelayer-map_edit').off('click').on('click', function (e){
e.preventDefault();
editItem(imageMapItem);
});
jEle.on('click.handleOutsideClick', function(event){
event.preventDefault();
if(sEle.find('.pagelayer-map-item-active').length > 0){
return;
}
if(!jQuery(event.target).hasClass('pagelayer-imgmap-item')){
imageMapItem.removeClass('pagelayer-map-item-active_is_editable');
set_toolbar_editable(false, 'selected');
set_toolbar_editable(false);
jEle.off('click.handleOutsideClick');
}
});
}
// Remove image map item
var remove_map_item = function(id){
if(id in mapObj) delete mapObj[id];
pagelayer_set_atts(jEle, 'pagelayer_image_map', mapObj);
handle_navigator(id, 'delete');
cordWrap.find('.pl-cord-'+id).remove();
jEle.find('.pagelayer-imgmap-item[data-id="'+id+'"]').remove();
}
// Edit Map Item
var editItem = function(imageMapItem){
setTimeout(() => {
set_toolbar_editable(true);
imageMapItem.removeClass('pagelayer-map-item-active_is_editable').addClass('pagelayer-map-item-active');
sEle.css('cursor', 'crosshair');
var updatedActId = imageMapItem.attr('data-id');
var link = (mapObj[updatedActId] && mapObj[updatedActId].link && mapObj[updatedActId].link.length > 0) ? mapObj[updatedActId].link : '';
if (link.length > 0) toolbar.find('.pagelayer-map_href').css('color', 'blue');
cordWrap.find(`.pl-cord-${updatedActId}`).show();
toolbar.find('.pagelayer-imgmap-toolbar-link input[type=text]').val(link);
handle_navigator(updatedActId, 'set_active');
handle_cord_drag(jEle);
cordWrap.find('.pagelayer-imgmap-remove-cord').off('click').on('click', cord_delete_handler);
}, 100);
}
// Add Toolbar
if(toolbar.length < 1){
var toolbarHtml = `<div class="pagelayer-imgmap-toolbar">
<span class="pagelayer-imgmap-toolbar-mover" title="Drag Toolbar"></span>
<button class="pagelayer-imgmap-toolbar-item pagelayer-map_append" title="Add"><i class="fas fa-plus"></i></button>
<button class="pagelayer-imgmap-toolbar-item pagelayer-map_save" title="Save"><i class="fas fa-check"></i></button>
<button class="pagelayer-imgmap-toolbar-item pagelayer-map_edit" title="Edit"><i class="fas fa-edit"></i></button>
<button class="pagelayer-imgmap-toolbar-item pagelayer-map_href" title="Insert Link"><i class="fas fa-link"></i></button>
<button class="pagelayer-imgmap-toolbar-item pagelayer-map_remove" title="Delete"><i class="fas fa-trash"></i></button>
<div class="pagelayer-imgmap-toolbar-link">
<input type="text" name="url" placeholder="https://example.com" autocomplete="off">
<span class="pagelayer-imgmap-save-link pagelayer-btn-success">Save</span>
</div>
<button class="pagelayer-map-list-trigger" title="Navigator"><i class="fas fa-sitemap"></i></button>
<div class="pagelayer-imgmap-navigator">
<div class="pagelayer-imgmap-navigator-header">
<i class="fas fa-sitemap"></i><span>Navigator</span>
<span class="fa fa-remove pagelayer-imgmap-navigator-close"></span>
</div>
<div class="pagelayer-imgmap-navigator-wrap"></div>
</div>
</div>`;
toolbar = wrap.append(toolbarHtml).find('.pagelayer-imgmap-toolbar');
}
var linkWrap = toolbar.find('.pagelayer-imgmap-toolbar-link'),
linkEle = linkWrap.find('input[type="text"]'),
navigator = toolbar.find('.pagelayer-imgmap-navigator'),
navigatorWrap = navigator.find('.pagelayer-imgmap-navigator-wrap');
// Change mode of Toolbar
var set_toolbar_editable = function(on = true, mode = 'edit'){
var edit = mode;
var select = mode == 'edit'? 'selected' : 'edit';
// Toggle editing options
if(on){
toolbar.addClass('pagelayer-imgmap-'+edit);
toolbar.removeClass('pagelayer-imgmap-'+select);
return;
}
toolbar.removeClass('pagelayer-imgmap-'+edit);
}
// On move Toolbar
toolbar.find('.pagelayer-imgmap-toolbar-mover').off('mousedown').on('mousedown', e => {
e.preventDefault();
toolbar.addClass('pagelayer-imgmap-toolbar-dragging');
sEle.on('mousemove', e => {
toolbar.hasClass('pagelayer-imgmap-toolbar-dragging') &&
toolbar.css({ left: `${e.offsetX - 5}px`, top: `${e.offsetY - 5}px` });
});
jQuery(document).off('mousedown.pl_svg_ele').on('mouseup.pl_svg_ele', () => {
toolbar.removeClass('pagelayer-imgmap-toolbar-dragging');
sEle.off('mousemove');
});
});
// Toolbar actions
toolbar.find('.pagelayer-imgmap-toolbar-item').off('click').on('click', function(e){
e.stopPropagation();
var tEle = jQuery(this),
activeEle = sEle.find('.pagelayer-map-item-active'),
actEleId = activeEle.attr('data-id'),
isEditing = false;
if(linkEle.length < 1) toolbar.find('.pagelayer-map_href').css('color', 'inherit');
sEle.css('cursor','initial');
// Add new map item
if(tEle.hasClass('pagelayer-map_append')){
var eleId = pagelayer_randstr(6),
attrs = [
['d',''], ['data-id', eleId], ['stroke-linejoin', 'round'],
['fill-rule', 'evenodd'], ['fill-opacity', '0.3'], ['stroke-width', '2'],
['data-cord', '{{data}}'], ['data-link', '{{link_href}}']
],
pathEle = pagelayer_create_imgmap_svg(['pagelayer-imgmap-item', 'pagelayer-map-item-active'], attrs);
handle_navigator(eleId, 'append', true);
sEle.find('g')[0].appendChild(pathEle);
sEle.find('.pagelayer-imgmap-item').on('click', handleClick);
isEditing = true;
}
// Remove map item
if(tEle.hasClass('pagelayer-map_remove')){
let activeId = sEle.find('.pagelayer-map-item-active, .pagelayer-map-item-active_is_editable').attr('data-id');
remove_map_item(activeId);
}
// Link to map item
if(tEle.hasClass('pagelayer-map_href')){
toolbar.find('.pagelayer-imgmap-toolbar-link').fadeToggle();
isEditing = true;
}
// Save map item cords
if(tEle.hasClass('pagelayer-map_save')){
if(cordWrap.find('.pl-cord-' + actEleId).length < 3){
return alert('Please draw at least 3 coordinates!');
}
var finalValues = activeEle.attr('data-cord') || '',
currentItem = navigatorWrap.find(`.pagelayer-imgmap-navigator-item[data-id="${actEleId}"]`),
title = currentItem.find('.pagelayer-imgmap-navigator-title').text();
mapObj[actEleId] = mapObj[actEleId] || {};
mapObj[actEleId].path = finalValues || '';
mapObj[actEleId].title = title || '';
pagelayer_set_atts(jEle, 'pagelayer_image_map', mapObj);
jQuery('.pagelayer-map_href').css('color', linkWrap.css('display') == 'block' && linkEle.val() ? 'blue' : 'inherit');
handle_navigator(actEleId, 'reset_active');
cordWrap.find('.pl-cord-' + actEleId).hide();
cordWrap.find('.pagelayer-imgmap-coord').removeClass('pagelayer-mapele-dragging');
sEle.find('.pagelayer-imgmap-item').removeClass('pagelayer-map-item-active');
}
// Toggle editing options
set_toolbar_editable(isEditing);
});
// Save link of map items
jEle.find('.pagelayer-imgmap-save-link').click(function() {
let parent = jQuery(this).parent();
let actEleId = sEle.find('.pagelayer-map-item-active').data('id');
mapObj = mapObj || {};
(mapObj[actEleId] = mapObj[actEleId] || {}).link = parent.find('input').val() || '';
parent.fadeOut();
});
// SVG click handler and add new cords to map items
sEle.off('click').on('click', function(e){
var activeEle = sEle.find('.pagelayer-map-item-active');
if(activeEle.length < 1){
toolbar.css({ left: e.offsetX - 15, top: e.offsetY - 40 });
return;
}
linkEle.val(''); // Reset Link field
sEle.css('cursor','crosshair'); // Change cursor property
var [mapWidth, mapHeight] = [wrap.width(), wrap.height()];
var [xPer, yPer] = [(e.offsetX / mapWidth * 100).toFixed(2), (e.offsetY / mapHeight * 100).toFixed(2)];
var coords = (activeEle.attr('data-cord') || '');
coords = (coords == '{{data}}' || coords == '') ? [] : coords.split(',');
coords.push(xPer, yPer);
activeEle.attr('data-cord', coords);
// Append cordinates
const cordLen = cordWrap.find(`.pl-cord-${activeEle.attr('data-id')}`).length;
const coordHTML = `<div class="pagelayer-imgmap-coord pl-cord-${activeEle.attr('data-id')}"
title="Drag to reposition" data-id="${cordLen}"
style="left:${e.offsetX}px; top:${e.offsetY}px;">
<span class="pagelayer-imgmap-remove-cord fa fa-trash"></span>
</div>`;
cordWrap.append(coordHTML);
setTimeout(() => pagelayer_resize_imgmap(jEle), 100);
handle_cord_drag(jEle);
cordWrap.find('.pagelayer-imgmap-remove-cord').off('click mousedown').on('click', cord_delete_handler);
});
// Map items click handler
sEle.find('.pagelayer-imgmap-item').on('click', handleClick);
// Toggle navigator
toolbar.find('.pagelayer-map-list-trigger').off('click').on('click', function(){
navigator.toggle();
});
navigator.find('.pagelayer-imgmap-navigator-close').on('click',function(){
navigator.hide();
});
// Navigator item move handler
var navigator_move_item = function(curEle, is_next = false) {
const arr = Object.keys(mapObj);
const curPos = arr.indexOf(curEle);
if (curPos === -1 || (curPos === 0 && !is_next) || (curPos === arr.length - 1 && is_next)) {
return false;
}
const swapIndex = is_next ? curPos + 1 : curPos - 1;
[arr[curPos], arr[swapIndex]] = [arr[swapIndex], arr[curPos]]
mapObj = arr.reduce((newEl, key) => ({ ...newEl, [key]: mapObj[key] }), {});
pagelayer_set_atts(jEle, 'pagelayer_image_map', mapObj);
const elem = jEle.find(`path[data-id="${curEle}"]`);
is_next ? elem.next().after(elem) : elem.prev().before(elem);
return true;
}
// Navigator handler
var handle_navigator = function(id, opr = 'append', is_active = false){
if (!id) return;
const item = navigatorWrap.find(`.pagelayer-imgmap-navigator-item[data-id="${id}"]`);
switch(opr){
case 'append':
if (item.length > 0) return;
const wrapItems = navigatorWrap.children('.pagelayer-imgmap-navigator-item').length + 1;
const cls = is_active ? 'pagelayer-navigator-item-active' : '';
const title = mapObj[id]?.title || `Map Item ${wrapItems}`;
const content = `
<div class="pagelayer-imgmap-navigator-item ${cls}" data-id="${id}">
<div data-id="${id}" class="pagelayer-imgmap-navigator-item-drag"><i class="fas fa-th-list"></i></div>
<div class="pagelayer-imgmap-navigator-title">${title}</div>
<div class="pagelayer-imgmap-navigator-actions">
${['Move Up', 'Edit', 'Delete', 'Move Down'].map((action, i) => `
<button value="${id}" class="pagelayer-map-navigator-trigger ${['navigator_move_up', 'navigator_pagelayer-map_edit', 'navigator_pagelayer-map_remove', 'navigator_move_down'][i]}" title="${action}">
<i class="${['fa fa-arrow-up', 'fa fa-pencil', 'fas fa-trash', 'fa fa-arrow-down'][i]}"></i>
</button>`).join('')}
</div>
</div>`;
navigatorWrap.append(content);
var trigger = navigatorWrap.find('.pagelayer-map-navigator-trigger');
trigger.off('click').on('click', function(e){
e.stopPropagation();
var eleId = jQuery(this).val();
if(jQuery(this).hasClass('navigator_pagelayer-map_edit')){
const activeEle = sEle.find('.pagelayer-map-item-active');
// Multi Item editing
if(activeEle.length > 0){
if(eleId === activeEle.attr('data-id')) return;
toolbar.find('.pagelayer-imgmap-toolbar-item.pagelayer-map_save').click();
}
let iEle = jEle.find(`.pagelayer-imgmap-item[data-id="${eleId}"]`);
iEle.on('click', editItem(iEle));
}else if (jQuery(this).hasClass('navigator_move_down') || jQuery(this).hasClass('navigator_move_up')){
const par = jQuery(this).closest('.pagelayer-imgmap-navigator-item');
const moveUp = jQuery(this).hasClass('navigator_move_up');
const sibling = moveUp ? par.prev() : par.next();
if(sibling.length > 0){
navigator_move_item(eleId, !moveUp);
moveUp ? sibling.before(par) : sibling.after(par);
}
}else if(jQuery(this).hasClass('navigator_pagelayer-map_remove')){
remove_map_item(eleId);
toolbar.removeClass('pagelayer-imgmap-edit');
}
});
// Make title editable
navigatorWrap.find(`.pagelayer-imgmap-navigator-item[data-id="${id}"] .pagelayer-imgmap-navigator-title`).off('blur').on('click', function (){
const editable = jQuery(this).attr('contenteditable', 'true').focus();
const oldVal = editable.text().trim();
editable.on('blur', function (e) {
const newValue = editable.text().trim();
if (!newValue) {
alert('Error changing title');
editable.text(oldVal);
}else{
mapObj[id].title = newValue;
pagelayer_set_atts(jEle, 'pagelayer_image_map', mapObj);
}
editable.attr('contenteditable', 'false').off('blur');
});
});
break;
case 'delete':
item.remove();
break;
case 'reset_active':
navigatorWrap.find('.pagelayer-imgmap-navigator-item').removeClass('pagelayer-navigator-item-active');
break;
case 'set_active':
if(!item.hasClass('pagelayer-navigator-item-active')){
item.addClass('pagelayer-navigator-item-active');
jQuery('.pagelayer-imgmap-navigator-wrap').animate({
scrollTop: 0
});
}
break;
}
}
// Build Navigator
if(Object.keys(mapObj).length > 0){
for (var mapId in mapObj) {
handle_navigator(mapId);
}
}
pagelayer_resize_imgmap(jEle);
jQuery(window).on('resize', function(){pagelayer_resize_imgmap(jEle)});
} js/shuffle.min.js 0000644 00000046730 15152652075 0007756 0 ustar 00 !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Shuffle=e()}(this,function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function i(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}function n(t){return(n=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function o(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function r(){}r.prototype={on:function(t,e,i){var n=this.e||(this.e={});return(n[t]||(n[t]=[])).push({fn:e,ctx:i}),this},once:function(t,e,i){var n=this;function s(){n.off(t,s),e.apply(i,arguments)}return s._=e,this.on(t,s,i)},emit:function(t){for(var e=[].slice.call(arguments,1),i=((this.e||(this.e={}))[t]||[]).slice(),n=0,s=i.length;n<s;n++)i[n].fn.apply(i[n].ctx,e);return this},off:function(t,e){var i=this.e||(this.e={}),n=i[t],s=[];if(n&&e)for(var o=0,r=n.length;o<r;o++)n[o].fn!==e&&n[o].fn._!==e&&s.push(n[o]);return s.length?i[t]=s:delete i[t],this}};var l=r,a=r;l.TinyEmitter=a;var u="undefined"!=typeof Element?Element.prototype:{},h=u.matches||u.matchesSelector||u.webkitMatchesSelector||u.mozMatchesSelector||u.msMatchesSelector||u.oMatchesSelector,f=function(t,e){if(!t||1!==t.nodeType)return!1;if(h)return h.call(t,e);for(var i=t.parentNode.querySelectorAll(e),n=0;n<i.length;n++)if(i[n]==t)return!0;return!1};var c=function(t,e){var i,n,s,o,r=0;return function(){i=this,n=arguments;var t=new Date-r;return o||(t>=e?l():o=setTimeout(l,e-t)),s};function l(){o=0,r=+new Date,s=t.apply(i,n),i=null,n=null}};function d(){}function m(t){return parseFloat(t)||0}var p=function(){function e(i,n){t(this,e),this.x=m(i),this.y=m(n)}return i(e,null,[{key:"equals",value:function(t,e){return t.x===e.x&&t.y===e.y}}]),e}(),v=function(){function e(i,n,s,o,r){t(this,e),this.id=r,this.left=i,this.top=n,this.width=s,this.height=o}return i(e,null,[{key:"intersects",value:function(t,e){return t.left<e.left+e.width&&e.left<t.left+t.width&&t.top<e.top+e.height&&e.top<t.top+t.height}}]),e}(),y={BASE:"shuffle",SHUFFLE_ITEM:"shuffle-item",VISIBLE:"shuffle-item--visible",HIDDEN:"shuffle-item--hidden"},g=0,_=function(){function e(i){t(this,e),g+=1,this.id=g,this.element=i,this.isVisible=!0,this.isHidden=!1}return i(e,[{key:"show",value:function(){this.isVisible=!0,this.element.classList.remove(y.HIDDEN),this.element.classList.add(y.VISIBLE),this.element.removeAttribute("aria-hidden")}},{key:"hide",value:function(){this.isVisible=!1,this.element.classList.remove(y.VISIBLE),this.element.classList.add(y.HIDDEN),this.element.setAttribute("aria-hidden",!0)}},{key:"init",value:function(){this.addClasses([y.SHUFFLE_ITEM,y.VISIBLE]),this.applyCss(e.Css.INITIAL),this.scale=e.Scale.VISIBLE,this.point=new p}},{key:"addClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.add(t)})}},{key:"removeClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.remove(t)})}},{key:"applyCss",value:function(t){var e=this;Object.keys(t).forEach(function(i){e.element.style[i]=t[i]})}},{key:"dispose",value:function(){this.removeClasses([y.HIDDEN,y.VISIBLE,y.SHUFFLE_ITEM]),this.element.removeAttribute("style"),this.element=null}}]),e}();_.Css={INITIAL:{position:"absolute",top:0,left:0,visibility:"visible",willChange:"transform"},VISIBLE:{before:{opacity:1,visibility:"visible"},after:{transitionDelay:""}},HIDDEN:{before:{opacity:0},after:{visibility:"hidden",transitionDelay:""}}},_.Scale={VISIBLE:1,HIDDEN:.001};var E=null,I=function(){if(null!==E)return E;var t=document.body||document.documentElement,e=document.createElement("div");return e.style.cssText="width:10px;padding:2px;box-sizing:border-box;",t.appendChild(e),E="10px"===window.getComputedStyle(e,null).width,t.removeChild(e),E};function b(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.getComputedStyle(t,null),n=m(i[e]);return I()||"width"!==e?I()||"height"!==e||(n+=m(i.paddingTop)+m(i.paddingBottom)+m(i.borderTopWidth)+m(i.borderBottomWidth)):n+=m(i.paddingLeft)+m(i.paddingRight)+m(i.borderLeftWidth)+m(i.borderRightWidth),n}var S={reverse:!1,by:null,compare:null,randomize:!1,key:"element"};function T(t,e){var i=Object.assign({},S,e),n=Array.from(t),s=!1;return t.length?i.randomize?function(t){for(var e=t.length;e;){e-=1;var i=Math.floor(Math.random()*(e+1)),n=t[i];t[i]=t[e],t[e]=n}return t}(t):("function"==typeof i.by?t.sort(function(t,e){if(s)return 0;var n=i.by(t[i.key]),o=i.by(e[i.key]);return void 0===n&&void 0===o?(s=!0,0):n<o||"sortFirst"===n||"sortLast"===o?-1:n>o||"sortLast"===n||"sortFirst"===o?1:0}):"function"==typeof i.compare&&t.sort(i.compare),s?n:(i.reverse&&t.reverse(),t)):[]}var k={},w="transitionend",C=0;function L(t){return!!k[t]&&(k[t].element.removeEventListener(w,k[t].listener),k[t]=null,!0)}function D(t,e){var i=w+(C+=1),n=function(t){t.currentTarget===t.target&&(L(i),e(t))};return t.addEventListener(w,n),k[i]={element:t,listener:n},i}function z(t){return Math.max.apply(Math,t)}function M(t,e,i,n){var s=t/e;return Math.abs(Math.round(s)-s)<n&&(s=Math.round(s)),Math.min(Math.ceil(s),i)}function A(t,e,i){if(1===e)return t;for(var n=[],s=0;s<=i-e;s++)n.push(z(t.slice(s,s+e)));return n}function F(t,e){for(var i,n=(i=t,Math.min.apply(Math,i)),s=0,o=t.length;s<o;s++)if(t[s]>=n-e&&t[s]<=n+e)return s;return 0}function x(t,e){var i={};t.forEach(function(t){i[t.top]?i[t.top].push(t):i[t.top]=[t]});var n=[],s=[],o=[];return Object.keys(i).forEach(function(t){var r=i[t];s.push(r);var l,a=r[r.length-1],u=a.left+a.width,h=Math.round((e-u)/2),f=r,c=!1;if(h>0){var d=[];(c=r.every(function(t){var e=new v(t.left+h,t.top,t.width,t.height,t.id),i=!n.some(function(t){return v.intersects(e,t)});return d.push(e),i}))&&(f=d)}if(!c&&r.some(function(t){return n.some(function(e){var i=v.intersects(t,e);return i&&(l=e),i})})){var m=o.findIndex(function(t){return t.includes(l)});o.splice(m,1,s[m])}n=n.concat(f),o.push(f)}),[].concat.apply([],o).sort(function(t,e){return t.id-e.id}).map(function(t){return new p(t.left,t.top)})}function O(t){return Array.from(new Set(t))}var N=0,H=function(e){function r(e){var i,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,r),(i=o(this,n(r).call(this))).options=Object.assign({},r.options,s),i.options.delimeter&&(i.options.delimiter=i.options.delimeter),i.lastSort={},i.group=r.ALL_ITEMS,i.lastFilter=r.ALL_ITEMS,i.isEnabled=!0,i.isDestroyed=!1,i.isInitialized=!1,i._transitions=[],i.isTransitioning=!1,i._queue=[];var l=i._getElementOption(e);if(!l)throw new TypeError("Shuffle needs to be initialized with an element.");return i.element=l,i.id="shuffle_"+N,N+=1,i._init(),i.isInitialized=!0,i}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(r,l),i(r,[{key:"_init",value:function(){if(this.items=this._getItems(),this.options.sizer=this._getElementOption(this.options.sizer),this.element.classList.add(r.Classes.BASE),this._initItems(this.items),this._onResize=this._getResizeFunction(),window.addEventListener("resize",this._onResize),"complete"!==document.readyState){var t=this.layout.bind(this);window.addEventListener("load",function e(){window.removeEventListener("load",e),t()})}var e=window.getComputedStyle(this.element,null),i=r.getSize(this.element).width;this._validateStyles(e),this._setColumns(i),this.filter(this.options.group,this.options.initialSort),this.element.offsetWidth,this.setItemTransitions(this.items),this.element.style.transition="height ".concat(this.options.speed,"ms ").concat(this.options.easing)}},{key:"_getResizeFunction",value:function(){var t=this._handleResize.bind(this);return this.options.throttle?this.options.throttle(t,this.options.throttleTime):t}},{key:"_getElementOption",value:function(t){return"string"==typeof t?this.element.querySelector(t):t&&t.nodeType&&1===t.nodeType?t:t&&t.jquery?t[0]:null}},{key:"_validateStyles",value:function(t){"static"===t.position&&(this.element.style.position="relative"),"hidden"!==t.overflow&&(this.element.style.overflow="hidden")}},{key:"_filter",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastFilter,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.items,i=this._getFilteredSets(t,e);return this._toggleFilterClasses(i),this.lastFilter=t,"string"==typeof t&&(this.group=t),i}},{key:"_getFilteredSets",value:function(t,e){var i=this,n=[],s=[];return t===r.ALL_ITEMS?n=e:e.forEach(function(e){i._doesPassFilter(t,e.element)?n.push(e):s.push(e)}),{visible:n,hidden:s}}},{key:"_doesPassFilter",value:function(t,e){if("function"==typeof t)return t.call(e,e,this);var i=e.getAttribute("data-"+r.FILTER_ATTRIBUTE_KEY),n=this.options.delimiter?i.split(this.options.delimiter):JSON.parse(i);function s(t){return n.includes(t)}return Array.isArray(t)?this.options.filterMode===r.FilterMode.ANY?t.some(s):t.every(s):n.includes(t)}},{key:"_toggleFilterClasses",value:function(t){var e=t.visible,i=t.hidden;e.forEach(function(t){t.show()}),i.forEach(function(t){t.hide()})}},{key:"_initItems",value:function(t){t.forEach(function(t){t.init()})}},{key:"_disposeItems",value:function(t){t.forEach(function(t){t.dispose()})}},{key:"_updateItemCount",value:function(){this.visibleItems=this._getFilteredItems().length}},{key:"setItemTransitions",value:function(t){var e=this.options,i=e.speed,n=e.easing,s=this.options.useTransforms?["transform"]:["top","left"],o=Object.keys(_.Css.HIDDEN.before).map(function(t){return t.replace(/([A-Z])/g,function(t,e){return"-".concat(e.toLowerCase())})}),r=s.concat(o).join();t.forEach(function(t){t.element.style.transitionDuration=i+"ms",t.element.style.transitionTimingFunction=n,t.element.style.transitionProperty=r})}},{key:"_getItems",value:function(){var t=this;return Array.from(this.element.children).filter(function(e){return f(e,t.options.itemSelector)}).map(function(t){return new _(t)})}},{key:"_mergeNewItems",value:function(t){var e=Array.from(this.element.children);return T(this.items.concat(t),{by:function(t){return e.indexOf(t)}})}},{key:"_getFilteredItems",value:function(){return this.items.filter(function(t){return t.isVisible})}},{key:"_getConcealedItems",value:function(){return this.items.filter(function(t){return!t.isVisible})}},{key:"_getColumnSize",value:function(t,e){var i;return 0===(i="function"==typeof this.options.columnWidth?this.options.columnWidth(t):this.options.sizer?r.getSize(this.options.sizer).width:this.options.columnWidth?this.options.columnWidth:this.items.length>0?r.getSize(this.items[0].element,!0).width:t)&&(i=t),i+e}},{key:"_getGutterSize",value:function(t){return"function"==typeof this.options.gutterWidth?this.options.gutterWidth(t):this.options.sizer?b(this.options.sizer,"marginLeft"):this.options.gutterWidth}},{key:"_setColumns",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r.getSize(this.element).width,e=this._getGutterSize(t),i=this._getColumnSize(t,e),n=(t+e)/i;Math.abs(Math.round(n)-n)<this.options.columnThreshold&&(n=Math.round(n)),this.cols=Math.max(Math.floor(n||0),1),this.containerWidth=t,this.colWidth=i}},{key:"_setContainerSize",value:function(){this.element.style.height=this._getContainerSize()+"px"}},{key:"_getContainerSize",value:function(){return z(this.positions)}},{key:"_getStaggerAmount",value:function(t){return Math.min(t*this.options.staggerAmount,this.options.staggerAmountMax)}},{key:"_dispatch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.isDestroyed||(e.shuffle=this,this.emit(t,e))}},{key:"_resetCols",value:function(){var t=this.cols;for(this.positions=[];t;)t-=1,this.positions.push(0)}},{key:"_layout",value:function(t){var e=this,i=this._getNextPositions(t),n=0;t.forEach(function(t,s){function o(){t.applyCss(_.Css.VISIBLE.after)}if(p.equals(t.point,i[s])&&!t.isHidden)return t.applyCss(_.Css.VISIBLE.before),void o();t.point=i[s],t.scale=_.Scale.VISIBLE,t.isHidden=!1;var r=e.getStylesForTransition(t,_.Css.VISIBLE.before);r.transitionDelay=e._getStaggerAmount(n)+"ms",e._queue.push({item:t,styles:r,callback:o}),n+=1})}},{key:"_getNextPositions",value:function(t){var e=this;if(this.options.isCentered){var i=t.map(function(t,i){var n=r.getSize(t.element,!0),s=e._getItemPosition(n);return new v(s.x,s.y,n.width,n.height,i)});return this.getTransformedPositions(i,this.containerWidth)}return t.map(function(t){return e._getItemPosition(r.getSize(t.element,!0))})}},{key:"_getItemPosition",value:function(t){return function(t){for(var e=t.itemSize,i=t.positions,n=t.gridSize,s=t.total,o=t.threshold,r=t.buffer,l=M(e.width,n,s,o),a=A(i,l,s),u=F(a,r),h=new p(n*u,a[u]),f=a[u]+e.height,c=0;c<l;c++)i[u+c]=f;return h}({itemSize:t,positions:this.positions,gridSize:this.colWidth,total:this.cols,threshold:this.options.columnThreshold,buffer:this.options.buffer})}},{key:"getTransformedPositions",value:function(t,e){return x(t,e)}},{key:"_shrink",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._getConcealedItems(),i=0;e.forEach(function(e){function n(){e.applyCss(_.Css.HIDDEN.after)}if(e.isHidden)return e.applyCss(_.Css.HIDDEN.before),void n();e.scale=_.Scale.HIDDEN,e.isHidden=!0;var s=t.getStylesForTransition(e,_.Css.HIDDEN.before);s.transitionDelay=t._getStaggerAmount(i)+"ms",t._queue.push({item:e,styles:s,callback:n}),i+=1})}},{key:"_handleResize",value:function(){this.isEnabled&&!this.isDestroyed&&this.update()}},{key:"getStylesForTransition",value:function(t,e){var i=Object.assign({},e);if(this.options.useTransforms){var n=this.options.roundTransforms?Math.round(t.point.x):t.point.x,s=this.options.roundTransforms?Math.round(t.point.y):t.point.y;i.transform="translate(".concat(n,"px, ").concat(s,"px) scale(").concat(t.scale,")")}else i.left=t.point.x+"px",i.top=t.point.y+"px";return i}},{key:"_whenTransitionDone",value:function(t,e,i){var n=D(t,function(t){e(),i(null,t)});this._transitions.push(n)}},{key:"_getTransitionFunction",value:function(t){var e=this;return function(i){t.item.applyCss(t.styles),e._whenTransitionDone(t.item.element,t.callback,i)}}},{key:"_processQueue",value:function(){this.isTransitioning&&this._cancelMovement();var t=this.options.speed>0,e=this._queue.length>0;e&&t&&this.isInitialized?this._startTransitions(this._queue):e?(this._styleImmediately(this._queue),this._dispatch(r.EventType.LAYOUT)):this._dispatch(r.EventType.LAYOUT),this._queue.length=0}},{key:"_startTransitions",value:function(t){var e=this;this.isTransitioning=!0,function(t,e,i){i||("function"==typeof e?(i=e,e=null):i=d);var n=t&&t.length;if(!n)return i(null,[]);var s=!1,o=new Array(n);function r(t){return function(e,r){if(!s){if(e)return i(e,o),void(s=!0);o[t]=r,--n||i(null,o)}}}t.forEach(e?function(t,i){t.call(e,r(i))}:function(t,e){t(r(e))})}(t.map(function(t){return e._getTransitionFunction(t)}),this._movementFinished.bind(this))}},{key:"_cancelMovement",value:function(){this._transitions.forEach(L),this._transitions.length=0,this.isTransitioning=!1}},{key:"_styleImmediately",value:function(t){if(t.length){var e=t.map(function(t){return t.item.element});r._skipTransitions(e,function(){t.forEach(function(t){t.item.applyCss(t.styles),t.callback()})})}}},{key:"_movementFinished",value:function(){this._transitions.length=0,this.isTransitioning=!1,this._dispatch(r.EventType.LAYOUT)}},{key:"filter",value:function(t,e){this.isEnabled&&((!t||t&&0===t.length)&&(t=r.ALL_ITEMS),this._filter(t),this._shrink(),this._updateItemCount(),this.sort(e))}},{key:"sort",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastSort;if(this.isEnabled){this._resetCols();var e=T(this._getFilteredItems(),t);this._layout(e),this._processQueue(),this._setContainerSize(),this.lastSort=t}}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isEnabled&&(t||this._setColumns(),this.sort())}},{key:"layout",value:function(){this.update(!0)}},{key:"add",value:function(t){var e=this,i=O(t).map(function(t){return new _(t)});this._initItems(i),this._resetCols();var n=T(this._mergeNewItems(i),this.lastSort),s=this._filter(this.lastFilter,n),o=function(t){return i.includes(t)},r=function(t){t.scale=_.Scale.HIDDEN,t.isHidden=!0,t.applyCss(_.Css.HIDDEN.before),t.applyCss(_.Css.HIDDEN.after)},l=this._getNextPositions(s.visible);s.visible.forEach(function(t,i){o(t)&&(t.point=l[i],r(t),t.applyCss(e.getStylesForTransition(t,{})))}),s.hidden.forEach(function(t){o(t)&&r(t)}),this.element.offsetWidth,this.setItemTransitions(i),this.items=this._mergeNewItems(i),this.filter(this.lastFilter)}},{key:"disable",value:function(){this.isEnabled=!1}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.isEnabled=!0,t&&this.update()}},{key:"remove",value:function(t){var e=this;if(t.length){var i=O(t),n=i.map(function(t){return e.getItemByElement(t)}).filter(function(t){return!!t});this._toggleFilterClasses({visible:[],hidden:n}),this._shrink(n),this.sort(),this.items=this.items.filter(function(t){return!n.includes(t)}),this._updateItemCount(),this.once(r.EventType.LAYOUT,function(){e._disposeItems(n),i.forEach(function(t){t.parentNode.removeChild(t)}),e._dispatch(r.EventType.REMOVED,{collection:i})})}}},{key:"getItemByElement",value:function(t){return this.items.find(function(e){return e.element===t})}},{key:"resetItems",value:function(){var t=this;this._disposeItems(this.items),this.isInitialized=!1,this.items=this._getItems(),this._initItems(this.items),this.once(r.EventType.LAYOUT,function(){t.setItemTransitions(t.items),t.isInitialized=!0}),this.filter(this.lastFilter)}},{key:"destroy",value:function(){this._cancelMovement(),window.removeEventListener("resize",this._onResize),this.element.classList.remove("shuffle"),this.element.removeAttribute("style"),this._disposeItems(this.items),this.items.length=0,this._transitions.length=0,this.options.sizer=null,this.element=null,this.isDestroyed=!0,this.isEnabled=!1}}],[{key:"getSize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=window.getComputedStyle(t,null),n=b(t,"width",i),s=b(t,"height",i);if(e){var o=b(t,"marginLeft",i),r=b(t,"marginRight",i),l=b(t,"marginTop",i),a=b(t,"marginBottom",i);n+=o+r,s+=l+a}return{width:n,height:s}}},{key:"_skipTransitions",value:function(t,e){var i=t.map(function(t){var e=t.style,i=e.transitionDuration,n=e.transitionDelay;return e.transitionDuration="0ms",e.transitionDelay="0ms",{duration:i,delay:n}});e(),t[0].offsetWidth,t.forEach(function(t,e){t.style.transitionDuration=i[e].duration,t.style.transitionDelay=i[e].delay})}}]),r}();return H.ShuffleItem=_,H.ALL_ITEMS="all",H.FILTER_ATTRIBUTE_KEY="groups",H.EventType={LAYOUT:"shuffle:layout",REMOVED:"shuffle:removed"},H.Classes=y,H.FilterMode={ANY:"any",ALL:"all"},H.options={group:H.ALL_ITEMS,speed:250,easing:"cubic-bezier(0.4, 0.0, 0.2, 1)",itemSelector:"*",sizer:null,gutterWidth:0,columnWidth:0,delimiter:null,buffer:0,columnThreshold:.01,initialSort:null,throttle:c,throttleTime:300,staggerAmount:15,staggerAmountMax:150,useTransforms:!0,filterMode:H.FilterMode.ANY,isCentered:!1,roundTransforms:!0},H.Point=p,H.Rect=v,H.__sorter=T,H.__getColumnSpan=M,H.__getAvailablePositions=A,H.__getShortColumn=F,H.__getCenteredPositions=x,H});
//# sourceMappingURL=shuffle.min.js.map
init.php 0000644 00000016270 15152652075 0006236 0 ustar 00 <?php
// We need the ABSPATH
if (!defined('ABSPATH')) exit;
// Ok so we are now ready to go
register_activation_hook(PAGELAYER_PRO_FILE, 'pagelayer_pro_activation');
// Prevent update of pagelayer free
// This also work for auto update
add_filter('site_transient_update_plugins', 'pagelayer_pro_disable_manual_update_for_plugin');
add_filter('pre_site_transient_update_plugins', 'pagelayer_pro_disable_manual_update_for_plugin');
// Auto update free version after update pro version
add_action('upgrader_process_complete', 'pagelayer_pro_update_free_after_pro', 10, 2);
// Add the action to load the plugin
add_action('plugins_loaded', 'pagelayer_pro_load_plugin');
// The function that will be called when the plugin is loaded
function pagelayer_pro_load_plugin(){
global $pagelayer;
// Load license
pagelayer_pro_load_license();
// Check if the installed version is outdated
pagelayer_pro_update_check();
// Load the language
load_plugin_textdomain('pagelayer-pro', false, PAGELAYER_PRO_SLUG.'/languages/');
// Check for updates
include_once(PAGELAYER_PRO_DIR.'/main/plugin-update-checker.php');
$pagelayer_updater = Pagelayer_PucFactory::buildUpdateChecker(pagelayer_pro_api_url().'updates.php?version='.PAGELAYER_PRO_VERSION, PAGELAYER_PRO_FILE);
// Add the license key to query arguments
$pagelayer_updater->addQueryArgFilter('pagelayer_pro_updater_filter_args');
// Show the text to install the license key
add_filter('puc_manual_final_check_link-pagelayer-pro', 'pagelayer_pro_updater_check_link', 10, 1);
// Load the template builder
include_once(PAGELAYER_PRO_DIR.'/main/template-builder.php');
$pagelayer->allowed_mime_type = array(
'otf' => 'font/otf',
'ttf' => 'font/ttf',
'woff' => 'font/woff|application/font-woff|application/x-font-woff',
'woff2' => 'font/woff2|font/x-woff2'
);
// Load the pagelayer custom fonts
include_once(PAGELAYER_PRO_DIR.'/main/custom_fonts.php');
// Are we to disable the notice
if(current_user_can('activate_plugins')){
if(isset($_GET['pagelayer-pro-version-notice']) && (int)$_GET['pagelayer-pro-version-notice'] == 0){
check_ajax_referer('pagelayer_pro_version_nonce', 'pagelayer_nonce');
if(!empty($_REQUEST['type'])){
// Notice dismiss for 7 days
update_option('pagelayer_pro_'.$_REQUEST['type'].'_version_nag', time() + (7 * 86400));
}
die('DONE');
}
// Show the version notice
add_action('admin_notices', 'pagelayer_pro_free_version_nag');
}
}
// Nag when plugins dont have same version.
function pagelayer_pro_free_version_nag(){
if(!defined('PAGELAYER_VERSION')){
return;
}
$sctipt_enqueue = false;
$older_pro = get_option('pagelayer_pro_older_pro_version_nag');
$older_free = get_option('pagelayer_pro_older_free_version_nag');
if(version_compare(PAGELAYER_VERSION, PAGELAYER_PRO_VERSION) > 0 && (empty($older_pro) || $older_pro < time())){
echo '<div class="pagelayer-pro-version-notice notice notice-warning is-dismissible" data-notice="older_pro" onclick="pagelayer_pro_notice_dismiss(event)">
<p style="font-size:16px;">'.esc_html__('You are using an older version of Pagelayer Pro. We recommend updating to the latest version to ensure seamless and uninterrupted use of the plugin.').'</p>
</div>';
$sctipt_enqueue = true;
}elseif(version_compare(PAGELAYER_VERSION, PAGELAYER_PRO_VERSION) < 0 && (empty($older_free) || $older_free < time())){
echo '<div class="pagelayer-pro-version-notice notice notice-warning is-dismissible" data-notice="older_free" onclick="pagelayer_pro_notice_dismiss(event)">
<p style="font-size:16px;">'.esc_html__('You are using an older version of Pagelayer. We recommend updating to the latest free version to ensure smooth and uninterrupted use of the plugin.') .'</p>
</div>';
$sctipt_enqueue = true;
}
if($sctipt_enqueue){
echo '
<script type="application/javascript">
function pagelayer_pro_notice_dismiss(e){
e.preventDefault();
var target = jQuery(e.target);
if(!target.hasClass("notice-dismiss")){
return;
}
var jEle = target.closest(".pagelayer-pro-version-notice");
var data = {};
data["type"] = jEle.data("notice");
jEle.hide();
// Save this preference
jQuery.post("'.admin_url('?pagelayer-pro-version-notice=0&pagelayer_nonce='.wp_create_nonce("pagelayer_pro_version_nonce") ).'", data, function(response) {
//alert(response);
});
return false;
};
</script>';
}
}
// Add filter to load custom widgets functions
add_action('pagelayer_load_shortcode_functions', 'pagelayer_pro_load_shortcode_functions');
function pagelayer_pro_load_shortcode_functions(){
include_once(PAGELAYER_PRO_DIR.'/main/freemium_functions.php');
include_once(PAGELAYER_PRO_DIR.'/main/premium_functions.php');
}
// Apply filter to load custom widgets after shortcodes
add_action('pagelayer_after_add_shortcode', 'pagelayer_pro_after_add_shortcode');
function pagelayer_pro_after_add_shortcode(){
include_once(PAGELAYER_PRO_DIR.'/main/freemium.php');
include_once(PAGELAYER_PRO_DIR.'/main/premium.php');
}
// Load customizer setting
add_action('pagelayer_after_wc_customization', 'pagelayer_pro_after_wc_customization');
function pagelayer_pro_after_wc_customization(){
include_once(PAGELAYER_PRO_DIR.'/main/premium-woocommerce.php');
}
// Load Local google fonts
add_action('pagelayer_google_fonts_url', 'pagelayer_pro_google_fonts_url');
function pagelayer_pro_google_fonts_url($fonts_url){
// Is google font serve locally?
if(get_option('pagelayer_local_gfont') != 1){
return $fonts_url;
}
$upload_dir = wp_upload_dir();
$local_font_md5 = md5($fonts_url);
$_fonts_url = $upload_dir['baseurl'].'/pl-google-fonts/'.$local_font_md5.'.css';
$_fonts_path = $upload_dir['basedir'].'/pl-google-fonts/'.$local_font_md5.'.css';
if(!file_exists($_fonts_path) && file_exists(PAGELAYER_PRO_DIR.'/main/download_google_fonts.php')){
include_once(PAGELAYER_PRO_DIR.'/main/download_google_fonts.php');
pagelayer_pro_download_google_fonts($fonts_url);
}
return $_fonts_url;
}
// Load js files for editor
add_action('pagelayer_editor_give_js', 'pagelayer_pro_editor_give_js');
function pagelayer_pro_editor_give_js($js){
$js.= '&premium=premium.js';
return $js;
}
// Load js files
add_action('pagelayer_add_give_js', 'pagelayer_pro_add_give_js');
function pagelayer_pro_add_give_js($js){
$js.= '&premium=chart.min.js,premium-frontend.js,shuffle.min.js';
return $js;
}
// Load css files
add_action('pagelayer_add_give_css', 'pagelayer_pro_add_give_css');
function pagelayer_pro_add_give_css($css){
$css.= '&premium=premium-frontend.css';
return $css;
}
// Load this For audio widget
add_action('pagelayer_load_audio_widget', 'pagelayer_pro_load_audio_widget');
function pagelayer_pro_load_audio_widget($is_audio){
global $pagelayer;
if($is_audio || pagelayer_is_live_iframe()){
wp_enqueue_script('wp-mediaelement');
wp_enqueue_style( 'wp-mediaelement' );
$pagelayer->sc_audio_enqueued = 1;
}
}
// Load the langs
add_action('pagelayer_load_languages', 'pagelayer_pro_load_languages');
function pagelayer_pro_load_languages($langs){
$_langs = @file_get_contents(PAGELAYER_PRO_DIR.'/languages/en.json');
$_langs = @json_decode($_langs, true);
if(!empty($_langs)){
$langs = array_merge($langs, $_langs);
}
return $langs;
}
languages/en.json 0000644 00000000004 15152652075 0010011 0 ustar 00 {
} pagelayer-pro.php 0000644 00000003362 15152652075 0010040 0 ustar 00 <?php
/*
Plugin Name: Pagelayer Pro
Plugin URI: https://pagelayer.com/
Description: Pagelayer is a WordPress page builder plugin. Its very easy to use and very light on the browser.
Version: 2.0.0
Author: Pagelayer Team
Author URI: https://pagelayer.com/
Text Domain: pagelayer-pro
*/
// We need the ABSPATH
if (!defined('ABSPATH')) exit;
if(!function_exists('add_action')){
echo 'You are not allowed to access this page directly.';
exit;
}
// If PAGELAYER_PRO_VERSION exists then the plugin is loaded already !
if(defined('PAGELAYER_PRO_VERSION')) {
return;
}
define('PAGELAYER_PRO_FILE', __FILE__);
define('PAGELAYER_PRO_URL', plugins_url('', PAGELAYER_PRO_FILE));
define('PAGELAYER_PRO_API', 'https://api.pagelayer.com/');
define('PAGELAYER_PRO_VERSION', '2.0.0');
define('PAGELAYER_PRO_DIR', dirname(PAGELAYER_PRO_FILE));
define('PAGELAYER_PRO_BASE', plugin_basename(PAGELAYER_PRO_FILE));
define('PAGELAYER_PRO_SLUG', 'pagelayer-pro');
define('PAGELAYER_PRO_CSS', PAGELAYER_PRO_URL.'/css');
define('PAGELAYER_PRO_JS', PAGELAYER_PRO_URL.'/js');
define('PAGELAYER_PRO_DEV', file_exists(dirname(__FILE__).'/dev.php') ? 1 : 0);
include_once(PAGELAYER_PRO_DIR.'/main/functions.php');
$_tmp_plugins = get_option('active_plugins');
$_pl_version = get_option('pagelayer_version');
if(
!defined('SITEPAD') && (
!(in_array('pagelayer/pagelayer.php', $_tmp_plugins) ||
pagelayer_pro_is_network_active('pagelayer')) ||
!file_exists(WP_PLUGIN_DIR . '/pagelayer/pagelayer.php') ||
(!empty($_pl_version) && version_compare($_pl_version, '1.8.7', '<')))
){
include_once(PAGELAYER_PRO_DIR .'/main/pagelayer-init.php');
return;
}
// Load this after active free version
define('PAGELAYER_PREMIUM', plugin_basename(__FILE__));
include_once(dirname(__FILE__).'/init.php');
main/license.php 0000644 00000013526 15152652075 0007642 0 ustar 00 <?php
//////////////////////////////////////////////////////////////
//===========================================================
// license.php
//===========================================================
// PAGELAYER
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Pulkit Gupta
// Date: 23rd Jan 2017
// Time: 23:00 hrs
// Site: http://pagelayer.com/wordpress (PAGELAYER)
// ----------------------------------------------------------
// Please Read the Terms of use at http://pagelayer.com/tos
// ----------------------------------------------------------
//===========================================================
// (c)Pagelayer Team
//===========================================================
//////////////////////////////////////////////////////////////
// Are we being accessed directly ?
if(!defined('PAGELAYER_VERSION')) {
exit('Hacking Attempt !');
}
include_once(PAGELAYER_DIR.'/main/settings.php');
// The License Page
function pagelayer_license(){
global $pl_error, $lic_resp;
if(isset($_REQUEST['save_pl_license'])){
check_admin_referer('pagelayer-options');
}
// Is there a license key ?
if(isset($_POST['save_pl_license'])){
$license = pagelayer_optpost('pagelayer_license');
// Check if its a valid license
if(empty($license)){
$pl_error['lic_invalid'] = __('The license key was not submitted', 'pagelayer');
return pagelayer_license_T();
}
pagelayer_pro_load_license($license);
if(is_array($lic_resp)){
$json = json_decode($lic_resp['body'], true);
//print_r($json);
}else{
$pl_error['resp_invalid'] = __('The response was malformed<br>'.var_export($lic_resp, true), 'pagelayer');
return pagelayer_license_T();
}
// Save the License
if(empty($json['license'])){
$pl_error['lic_invalid'] = __('The license key is invalid', 'pagelayer');
return pagelayer_license_T();
}else{
// Mark as saved
$GLOBALS['pl_saved'] = true;
}
}
pagelayer_license_T();
}
// The License Page - THEME
function pagelayer_license_T(){
global $pagelayer, $pl_error;
pagelayer_page_header('Pagelayer License');
// Saved ?
if(!empty($GLOBALS['pl_saved'])){
echo '<div class="notice notice-success"><p>'. __('The settings were saved successfully', 'pagelayer'). '</p></div><br />';
}
if(date('Ymd') <= 20200331 && !defined('PAGELAYER_PREMIUM')){
echo '<div class="updated"><p><span style="font-size: 14px"><b>Promotional Offer</b></span> : If you buy <a href="'.PAGELAYER_PRO_PRICE_URL.'"><b>Pagelayer Pro</b></a> before <b>31st March, 2020</b> then you will get an additional year free and your license will expire on <b>31st March, 2022</b></p></div><br />.';
}
// Any errors ?
if(!empty($pl_error)){
pagelayer_report_error($pl_error);echo '<br />';
}
?>
<div class="postbox">
<button class="handlediv button-link" aria-expanded="true" type="button">
<span class="screen-reader-text"><?php _e('Toggle panel: System Information');?></span>
<span class="toggle-indicator" aria-hidden="true"></span>
</button>
<h2 class="hndle ui-sortable-handle">
<span><?php echo __('System Information', 'pagelayer'); ?></span>
</h2>
<div class="inside">
<form action="" method="post" enctype="multipart/form-data">
<?php wp_nonce_field('pagelayer-options'); ?>
<table class="wp-list-table fixed striped users" cellspacing="1" border="0" width="95%" cellpadding="10" align="center">
<?php
echo '
<tr>
<th align="left" width="25%">'.__('Pagelayer Version', 'pagelayer').'</th>
<td>'.PAGELAYER_VERSION.(defined('PAGELAYER_PREMIUM') ? ' (PRO Version)' : '').'</td>
</tr>';
echo '
<tr>
<th align="left" valign="top">'.__('Pagelayer License', 'pagelayer').'</th>
<td align="left">
'.(defined('PAGELAYER_PREMIUM') && empty($pagelayer->license) ? '<span style="color:red">Unlicensed</span> ' : '').'
<input type="text" name="pagelayer_license" value="'.(empty($pagelayer->license) ? '' : $pagelayer->license['license']).'" size="30" placeholder="e.g. PAGEL-11111-22222-33333-44444" style="width:300px;" />
<input name="save_pl_license" class="button button-primary" value="Update License" type="submit" />';
if(!empty($pagelayer->license)){
$expires = $pagelayer->license['expires'];
$expires = substr($expires, 0, 4).'/'.substr($expires, 4, 2).'/'.substr($expires, 6);
echo '<div style="margin-top:10px;">License Status : '.(empty($pagelayer->license['status_txt']) ? 'N.A.' : $pagelayer->license['status_txt']).'
'.($pagelayer->license['expires'] <= date('Ymd') ? __('License Expires : ', 'pagelayer-pro') .'<span style="color:red">'.$expires.'</span>' : (empty($pagelayer->license['has_plid']) ? __('License Expires : ', 'pagelayer-pro') . $expires : '')).'
</div>';
}
echo
'</td>
</tr>';
echo '<tr>
<th align="left">'.__('URL', 'pagelayer').'</th>
<td>'.get_site_url().'</td>
</tr>
<tr>
<th align="left">'.__('Path', 'pagelayer').'</th>
<td>'.ABSPATH.'</td>
</tr>
<tr>
<th align="left">'.__('Server\'s IP Address', 'pagelayer').'</th>
<td>'.$_SERVER['SERVER_ADDR'].'</td>
</tr>
<tr>
<th align="left">'.__('wp-config.php is writable', 'pagelayer').'</th>
<td>'.(is_writable(ABSPATH.'/wp-config.php') ? '<span style="color:red">Yes</span>' : '<span style="color:green">No</span>').'</td>
</tr>';
if(file_exists(ABSPATH.'/.htaccess')){
echo '
<tr>
<th align="left">'.__('.htaccess is writable', 'pagelayer').'</th>
<td>'.(is_writable(ABSPATH.'/.htaccess') ? '<span style="color:red">Yes</span>' : '<span style="color:green">No</span>').'</td>
</tr>';
}
?>
</table>
</form>
</div>
</div>
<?php
pagelayer_page_footer();
} main/functions.php 0000644 00000025134 15152652076 0010227 0 ustar 00 <?php
//////////////////////////////////////////////////////////////
//===========================================================
// functions.php
//===========================================================
// PAGELAYER
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Pulkit Gupta
// Date: 23rd Jan 2017
// Time: 23:00 hrs
// Site: http://pagelayer.com/wordpress (PAGELAYER)
// ----------------------------------------------------------
// Please Read the Terms of use at http://pagelayer.com/tos
// ----------------------------------------------------------
//===========================================================
// (c)Pagelayer Team
//===========================================================
//////////////////////////////////////////////////////////////
// Are we being accessed directly ?
if(!defined('PAGELAYER_PRO_VERSION')) {
exit('Hacking Attempt !');
}
// Is called when the ADMIN enables the plugin
function pagelayer_pro_activation(){
global $wpdb;
$sql = array();
add_option('pagelayer_pro_version', PAGELAYER_PRO_VERSION);
add_option('pagelayer_pro_options', array());
// Update free verion
pagelayer_pro_update_free_after_pro(null, array(
'action' => 'update',
'type' => 'plugin',
'plugin' => 'pagelayer-pro/pagelayer-pro.php',
'silent_skin' => true,
));
}
// Checks if we are to update ?
function pagelayer_pro_update_check(){
global $wpdb;
$sql = array();
$current_version = get_option('pagelayer_pro_version');
$version = (int) str_replace('.', '', $current_version);
// No update required
if($current_version == PAGELAYER_PRO_VERSION){
return true;
}
// Is it first run ?
if(empty($current_version)){
// Reinstall
pagelayer_pro_activation();
// Trick the following if conditions to not run
$version = (int) str_replace('.', '', PAGELAYER_PRO_VERSION);
}
$is_network_wide = pagelayer_pro_is_network_active('pagelayer-pro');
if($is_network_wide){
$free_ins = get_site_option('pagelayer_free_installed');
}else{
$free_ins = get_option('pagelayer_free_installed');
}
// If plugin runing reached here it means Pagelayer free installed
if(empty($free_ins)){
if($is_network_wide){
update_site_option('pagelayer_free_installed', time());
}else{
update_option('pagelayer_free_installed', time());
}
}
// Re-init NAG dismiss expire time
update_option('pagelayer_pro_older_pro_version_nag', time());
update_option('pagelayer_pro_older_free_version_nag', time());
// Save the new Version
update_option('pagelayer_pro_version', PAGELAYER_PRO_VERSION);
}
// Load license data
function pagelayer_pro_load_license($parent = 0){
global $pagelayer, $lic_resp;
$license_field = 'pagelayer_license';
$license_api_url = PAGELAYER_PRO_API;
// Save license
if(!empty($parent) && is_string($parent) && strlen($parent) > 5){
$lic['license'] = $parent;
// Load license of Soft Pro
}elseif(!empty($parent)){
$license_field = 'softaculous_pro_license';
$lic = get_option('softaculous_pro_license', []);
// My license
}else{
$lic = get_option($license_field, []);
}
// Loaded license is a Soft Pro
if(!empty($lic['license']) && preg_match('/^softwp/is', $lic['license'])){
$license_field = 'softaculous_pro_license';
$license_api_url = 'https://a.softaculous.com/softwp/';
$prods = apply_filters('softaculous_pro_products', []);
}else{
$prods = [];
}
if(empty($lic['last_update'])){
$lic['last_update'] = time() - 86600;
}
// Update license details as well
if(!empty($lic) && !empty($lic['license']) && (time() - @$lic['last_update']) >= 86400){
$url = $license_api_url.'/license.php?license='.$lic['license'].'&prods='.implode(',', $prods).'&url='.rawurlencode(site_url());
$resp = wp_remote_get($url);
$lic_resp = $resp;
//Did we get a response ?
if(is_array($resp)){
$tosave = json_decode($resp['body'], true);
//Is it the license ?
if(!empty($tosave['license'])){
$tosave['last_update'] = time();
update_option($license_field, $tosave);
$lic = $tosave;
}
}
}
// If the license is Free or Expired check for Softaculous Pro license
if(empty($lic) || empty($lic['active'])){
if(function_exists('softaculous_pro_load_license')){
$softaculous_license = softaculous_pro_load_license();
if(!empty($softaculous_license['license']) &&
(!empty($softaculous_license['active']) || empty($lic['license']))
){
$lic = $softaculous_license;
}
}elseif(empty($parent)){
$lic = get_option('softaculous_pro_license', []);
if(!empty($lic)){
return pagelayer_pro_load_license(1);
}
}
}
if(!empty($lic['license'])){
$pagelayer->license = $lic;
}
}
add_filter('softaculous_pro_products', 'pagelayer_softaculous_pro_products', 10, 1);
function pagelayer_softaculous_pro_products($r = []){
$r['pagelayer'] = 'pagelayer';
return $r;
}
// Add our license key if ANY
function pagelayer_pro_updater_filter_args($queryArgs) {
global $pagelayer;
if ( !empty($pagelayer->license['license']) ) {
$queryArgs['license'] = $pagelayer->license['license'];
}
$queryArgs['url'] = rawurlencode(site_url());
return $queryArgs;
}
// Handle the Check for update link and ask to install license key
function pagelayer_pro_updater_check_link($final_link){
global $pagelayer;
if(empty($pagelayer->license['license'])){
return '<a href="'.admin_url('admin.php?page=pagelayer_license').'">Install Pagelayer Pro License Key</a>';
}
return $final_link;
}
function pagelayer_pro_is_network_active($pluign){
$is_network_wide = false;
// Handling network site
if(!is_multisite()){
return $is_network_wide;
}
$_tmp_plugins = get_site_option('active_sitewide_plugins');
if(!empty($_tmp_plugins) && preg_grep('/.*\/'.$pluign.'\.php$/', array_keys($_tmp_plugins))){
$is_network_wide = true;
}
return $is_network_wide;
}
// Prevent update of pagelayer free
function pagelayer_pro_get_free_version_num(){
if(defined('PAGELAYER_VERSION')){
return PAGELAYER_VERSION;
}
// In case of pagelayer deactive
return pagelayer_pro_file_get_version_num('pagelayer/pagelayer.php');
}
// Prevent update of pagelayer free
function pagelayer_pro_file_get_version_num($plugin){
$file = WP_PLUGIN_DIR . '/'.$plugin;
if(!file_exists($file)){
return false;
}
// In case of pagelayer deactive
include_once(ABSPATH . 'wp-admin/includes/plugin.php');
$plugin_data = get_plugin_data($file);
if(empty($plugin_data)){
return false;
}
return $plugin_data['Version'];
}
// Prevent update of pagelayer free
function pagelayer_pro_disable_manual_update_for_plugin($transient){
$plugin = 'pagelayer/pagelayer.php';
// Is update available?
if(!isset($transient->response) || !isset($transient->response[$plugin])){
return $transient;
}
$free_version = pagelayer_pro_get_free_version_num();
$pro_version = PAGELAYER_PRO_VERSION;
if(!empty($GLOBALS['pagelayer_pro_is_upgraded'])){
$pro_version = pagelayer_pro_file_get_version_num('pagelayer-pro/pagelayer-pro.php');
}
// Update the Pagelayer version to the equivalent of Pro version
if(!empty($pro_version) && version_compare($free_version, $pro_version, '<')){
$transient->response[$plugin]->new_version = $pro_version;
$transient->response[$plugin]->package = 'https://downloads.wordpress.org/plugin/pagelayer.'.$pro_version.'.zip';
}else{
unset($transient->response[$plugin]);
}
return $transient;
}
// Auto update free version after update pro version
function pagelayer_pro_update_free_after_pro($upgrader_object, $options){
// Check if the action is an update for the plugins
if($options['action'] != 'update' || $options['type'] != 'plugin'){
return;
}
// Define the slugs for the free and pro plugins
$free_slug = 'pagelayer/pagelayer.php';
$pro_slug = 'pagelayer-pro/pagelayer-pro.php';
// Check if the pro plugin is in the list of updated plugins
if(
(isset($options['plugins']) && in_array($pro_slug, $options['plugins']) && !in_array($free_slug, $options['plugins'])) ||
(isset($options['plugin']) && $pro_slug == $options['plugin'])
){
// Trigger the update for the free plugin
$current_version = pagelayer_pro_get_free_version_num();
if(empty($current_version)){
return;
}
$GLOBALS['pagelayer_pro_is_upgraded'] = true;
// This will set the 'update_plugins' transient again
wp_update_plugins();
// Check for updates for the free plugin
$update_plugins = get_site_transient('update_plugins');
if(empty($update_plugins) || !isset($update_plugins->response[$free_slug]) || version_compare($update_plugins->response[$free_slug]->new_version, $current_version, '<=')){
return;
}
include_once(ABSPATH . 'wp-admin/includes/file.php');
include_once(ABSPATH . 'wp-admin/includes/misc.php');
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
require_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');
$skin = wp_doing_ajax()? new WP_Ajax_Upgrader_Skin() : null;
if(!empty($options['silent_skin'])){
class Pagelayer_Silent_Upgrader_Skin extends WP_Upgrader_Skin {
public function feedback($string, ...$args){}
public function header(){}
public function footer(){}
public function error($errors){}
public function before(){}
public function after(){}
}
$skin = new Pagelayer_Silent_Upgrader_Skin();
}
$upgrader = new Plugin_Upgrader($skin);
$upgraded = $upgrader->upgrade($free_slug);
if(!is_wp_error($upgraded) && $upgraded){
// Re-active free plugins
if( file_exists( WP_PLUGIN_DIR . '/'. $free_slug ) && is_plugin_inactive($free_slug) ){
activate_plugin($free_slug); // TODO for network
}
// Re-active pro plugins
if( file_exists( WP_PLUGIN_DIR . '/'. $pro_slug ) && is_plugin_inactive($pro_slug) ){
activate_plugin($pro_slug); // TODO for network
}
}
}
}
function pagelayer_pro_api_url($main_server = 0, $suffix = 'pagelayer'){
global $pagelayer;
$r = array(
'https://s0.softaculous.com/a/softwp/',
'https://s1.softaculous.com/a/softwp/',
'https://s2.softaculous.com/a/softwp/',
'https://s3.softaculous.com/a/softwp/',
'https://s4.softaculous.com/a/softwp/',
'https://s5.softaculous.com/a/softwp/',
'https://s7.softaculous.com/a/softwp/',
'https://s8.softaculous.com/a/softwp/'
);
$mirror = $r[array_rand($r)];
// If the license is newly issued, we need to fetch from API only
if(!empty($main_server) || empty($pagelayer->license['last_edit']) ||
(!empty($pagelayer->license['last_edit']) && (time() - 3600) < $pagelayer->license['last_edit'])
){
$mirror = PAGELAYER_PRO_API;
}
if(!empty($suffix)){
$mirror = str_replace('/softwp', '/'.$suffix, $mirror);
}
return $mirror;
} main/premium_functions.php 0000644 00000072272 15152652076 0011772 0 ustar 00 <?php
//////////////////////////////////////////////////////////////
//===========================================================
// class.php
//===========================================================
// PAGELAYER
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Pulkit Gupta
// Date: 23rd Jan 2017
// Time: 23:00 hrs
// Site: http://pagelayer.com/wordpress (PAGELAYER)
// ----------------------------------------------------------
// Please Read the Terms of use at http://pagelayer.com/tos
// ----------------------------------------------------------
//===========================================================
// (c)Pagelayer Team
//===========================================================
//////////////////////////////////////////////////////////////
// Are we being accessed directly ?
if(!defined('PAGELAYER_PRO_VERSION')) {
exit('Hacking Attempt !');
}
// Audio Handler
function pagelayer_sc_audio(&$el){
global $pagelayer;
if(empty($pagelayer->sc_audio_enqueued) && !pagelayer_is_live_iframe()){
wp_enqueue_script('wp-mediaelement');
wp_enqueue_style( 'wp-mediaelement' );
$pagelayer->sc_audio_enqueued = 1;
}
return;
$el['atts']['a_url'] = '';
if ($el['atts']['source'] == 'external'){
$el['atts']['a_url'] = $el['atts']['url'];
}
if ($el['atts']['source'] == 'library'){
$el['atts']['a_url'] = wp_get_attachment_url($el['atts']['id']);
}
if(!empty($el['atts']['a_url'])){
$filename=$el['atts']['a_url'];
//Get the file extension
$extension = pathinfo($filename, PATHINFO_EXTENSION);
//Create source tag according to audio file
switch($extension){
default:
case 'mp3':
$el['atts']['a_type'] = 'audio/mpeg';
break;
case 'ogg':
$el['atts']['a_type']= 'audio/ogg';
break;
case 'wav':
$el['atts']['a_type'] = 'audio/wav';
break;
}
}
if(!empty($el['atts']['a_url']) && !empty($el['atts']['a_type'])){
$el['attr'][]= ['source' => 'src="{{a_url}}'];
$el['attr'][]= ['source' => 'type="{{a_type}}'];
}
}
// Image Portfolio
function pagelayer_sc_single_img(&$el){
// Decide the image URL
$img_size = pagelayer_isset($el['atts'], 'img-size');
$el['atts']['func_img'] = pagelayer_isset($el['tmp'], 'img-'.$img_size.'-url');
$el['atts']['func_img'] = empty($el['atts']['func_img']) ? pagelayer_isset($el['tmp'], 'img-url') : $el['atts']['func_img'];
// What is the link ?
if(!empty($el['atts']['link_type'])){
// Custom url
if($el['atts']['link_type'] == 'custom_url'){
// Backward compatibility for new link props
pagelayer_add_link_backward($el, array( 'rel' => '', 'selector' => '.pagelayer-ele-link'));
$el['atts']['func_link'] = empty($el['tmp']['link']) ? '' : $el['tmp']['link'];
}
// Link to the media file itself
if($el['atts']['link_type'] == 'media_file'){
$el['atts']['func_link'] = $el['atts']['func_img'];
}
// Lightbox
if($el['atts']['link_type'] == 'lightbox'){
$el['atts']['func_link'] = $el['atts']['func_img'];
}
}
}
// Posts Grid
function pagelayer_sc_wp_posts_grid($atts, $content = '', $tag = ''){
$args = array(
'numberposts' => -1,
'post_type' => 'post',
'post_status' => array('publish', 'pending', 'draft', 'future', 'private', 'inherit', 'trash')
);
$all_posts = get_posts($args);
$html = '<div '.pagelayer_create_sc($tag, $atts, 'pagelayer-posts-grid').'>';
//pagelayer_print($all_posts);
foreach($all_posts as $pk => $pv){
$post_link = get_permalink($pv->ID);
$html .= '<div>
<h2><a href="'.$post_link.'">'.$pv->post_title.'</a></h2>
<p>'.date('F jS, Y', strtotime($pv->post_date)).' | Published by <a href="'.site_url('author/'.get_the_author_meta('user_login', $pv->post_author)).'">'.get_the_author_meta('display_name', $pv->post_author).'</a></p>
<p>'.pagelayer_the_content($pv->post_content).'</p>
<p><a href="'.$post_link.'">Read More</a></p>
</div>';
}
$html .= '</div>';
return $html;
}
// Posts Slider
function pagelayer_sc_wp_posts_slider(&$el){
$params = array();
$params['post'] = array();
if($el['atts']['post_type']) $params['post']['post_type'] = $el['atts']['post_type'];
if($el['atts']['post_count']) $params['post']['post_count'] = $el['atts']['post_count'];
if($el['atts']['category']) $params['post']['category'] = $el['atts']['category'];
if($el['atts']['tags']) $params['post']['tags'] = $el['atts']['tags'];
if($el['atts']['order_by']) $params['post']['order_by'] = $el['atts']['order_by'];
if($el['atts']['sort_order']) $params['post']['sort_order'] = $el['atts']['sort_order'];
if($el['atts']['image_size']) $params['post']['image_size'] = $el['atts']['image_size'];
if($el['atts']['show_excerpt']) $params['post']['show_excerpt'] = $el['atts']['show_excerpt'];
$el['atts']['posts_slides'] = pagelayer_posts_slider($params);
//wp_reset_postdata();
}
// Search function
function pagelayer_sc_search(&$el){
if(!empty($el['atts']['placeholder'])){
$el['tmp']['placeholder'] = htmlspecialchars($el['atts']['placeholder']);
}
}
// Post portfolio
function pagelayer_sc_post_folio(&$el){
$args = array();
if($el['atts']['type']) $args['post_type'] = $el['atts']['type'];
// Filter by
if($el['atts']['filter_by']) $args['filter_by'] = $el['atts']['filter_by'];
// Page count
if($el['atts']['count']) $args['posts_per_page'] = $el['atts']['count'];
$el['atts']['post_html'] = pagelayer_widget_posts($args);
}
// Posts Handler
function pagelayer_sc_posts(&$el){
global $pagelayer;
$allow_param = array('show_thumb', 'thumb_size', 'show_content', 'show_title', 'more', 'btn_type', 'size', 'icon_position', 'icon', 'show_more', 'meta_sep', 'exc_length', 'post_type', 'exc_term', 'exc_author', 'offset','ignore_sticky', 'orderby', 'by_period', 'before_date', 'after_date', 'thumb_img_type', 'infinite_types' );
$param = array();
// Page count
$param['posts_per_page'] = !empty($el['atts']['count']) ? $el['atts']['count'] : '';
$param['order'] = !empty($el['atts']['posts_order']) ? $el['atts']['posts_order'] : '';
$param['term'] = !empty($el['atts']['inc_term']) ? $el['atts']['inc_term'] : '';
$param['author_name'] = !empty($el['atts']['inc_author']) ? $el['atts']['inc_author'] : '';
if(!empty($el['atts']['thumb_img_type'])){
$thumb_size = pagelayer_isset($el['atts'], 'thumb_size');
$img_size = pagelayer_isset($el['tmp'], 'def_thumb_img-'.$thumb_size.'-url');
$param['def_thumb_img'] = empty($img_size) ? pagelayer_isset($el['tmp'], 'def_thumb_img-url') : $img_size;
}
foreach($allow_param as $val){
$param[$val] = !empty($el['atts'][$val]) ? $el['atts'][$val] : '';
}
if(!empty($el['atts']['meta'])){
$meta_arr = explode(',',$el['atts']['meta']);
//pagelayer_print($el['atts']['meta']);
foreach($meta_arr as $arr){
$param[$arr] = $arr;
}
}
if(wp_doing_ajax() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'pagelayer_infinite_posts'){
$param['paged'] = $el['atts']['paged'];
}else{
$data = array('tag' => $el['tag'],'atts' => $el['oAtts']);
$pagelayer->localScript['pagelayer_post_'.$el['id']] = $data;
}
//pagelayer_print($param);
$el['atts']['post_html'] = pagelayer_posts($param);
}
// Author Box
function pagelayer_sc_author_box(&$el){
global $post;
if($el['atts']['box_source'] == 'current'){
$author_data = pagelayer_author_data ($post->ID);
$el['atts']['display_name'] = $author_data['display_name'];
$el['atts']['description'] = $author_data['description'];
$el['atts']['user_url'] = $author_data['user_url'];
$el['tmp']['avatar-url'] = $author_data['avatar'];
$el['tmp']['avatar-title'] = '';
$el['tmp']['avatar-alt'] = '';
}else{
$el['tmp']['avatar-url'] = empty($el['tmp']['avatar-url']) ? $el['atts']['avatar'] : $el['tmp']['avatar-url'];
}
$el['atts']['display_html'] = '<'.$el['atts']['name_style'].'>'.$el['atts']['display_name'].'</'.$el['atts']['name_style'].'>';
}
//Grid Gallery Handler
function pagelayer_sc_login(&$el){
if(pagelayer_is_live()){
$el['atts']['login_cap'] = '';
return false;
}
ob_start();
if(!did_action( 'login_enqueue_scripts' )){
do_action( 'login_enqueue_scripts' );
}
do_action( 'login_form' );
$el['atts']['login_cap'] = ob_get_clean();
}
// Load all tags
function pagelayer_get_tags(){
$tags = get_tags(['hide_empty' => false]);
$taglist = array();
$taglist[] = 'Default';
foreach ($tags as $tag) {
$taglist[$tag->name] = $tag->name ;
}
return $taglist;
}
// Load all categories
function pagelayer_get_categories(){
$categories = get_categories(['hide_empty' => 0]);
$category_list = array();
$category_list[] = 'Default';
foreach($categories as $category) {
$category_list[$category->name] = $category->name ;
}
return $category_list;
}
// Templates Handler - 2C
function pagelayer_sc_templates(&$el){
global $pagelayer, $post;
if( !empty($el['atts']['templates']) ) $id = $el['atts']['templates'];
$post_obj = get_post($id);
$content = '';
// If both current post and tempate post are same
if (empty( $post_obj) || (!empty( $post_obj) && $post_obj == $post) ) {
$el['atts']['template_content'] = $content;
return;
}
$pagelayer->dont_make_editable = true;
$content = $post_obj->post_content;
$content = apply_filters( 'the_content', $content );
$pagelayer->dont_make_editable = false;
if(pagelayer_is_live()){
// Create the HTML object
$node = pagelayerQuery::parseStr($content);
$node->query('.pagelayer-ele')->removeClass('pagelayer-ele');
$content = $node->html();
}
$el['atts']['template_content'] = $content;
}
// Get the list of post by post type - 2C
function pagelayer_post_list_by_type($post_type = 'post'){
$postlist = [];
$posts_list = get_posts(array(
'post_type' => $post_type,
'numberposts' => -1
));
foreach($posts_list as $post){
$postlist[$post->ID] = $post->post_title;
}
return $postlist;
}
/////////////////////////////////////
// WooCommerce Shortcode Functions
/////////////////////////////////////
// Product Images Handler - 2C
function pagelayer_sc_product_images(&$el){
global $product;
$product = pagelayer_get_product();
$images_templ = '';
if( empty( $product ) && (pagelayer_is_live_template() || wp_doing_ajax())){
$images_templ = __pl('no_woo_product');
}
if( empty( $product ) ) {
$el['atts']['product_images_templ'] = $images_templ;
return;
}
// Start the output buffer
ob_start();
if( !empty($el['atts']['sale_flash']) ){
wc_get_template( 'loop/sale-flash.php' );
}
wc_get_template( 'single-product/product-image.php' );
$el['atts']['product_images_templ'] = ob_get_clean();
}
// Related products Handler - 2C
function pagelayer_sc_product_related(&$el){
global $product;
$product = pagelayer_get_product();
$related_templ = '';
if( empty( $product ) && (pagelayer_is_live_template() || wp_doing_ajax())){
$related_templ = __pl('no_woo_product');
}
if( empty( $product ) ) {
$el['atts']['related_products'] = $related_templ;
return;
}
// start output buffer
ob_start();
// If is related
if($el['atts']['select_product'] == 'related'){
$args = [
'posts_per_page' => 4,
'columns' => 4,
'orderby' => $el['atts']['order_by'],
'order' => $el['atts']['order'],
];
if( ! empty( $el['atts']['posts_per_page'] ) ) {
$args['posts_per_page'] = $el['atts']['posts_per_page'];
}
if( ! empty( $el['atts']['columns'] ) ) {
$args['columns'] = $el['atts']['columns'];
}
if(function_exists( 'woocommerce_related_products' )){
woocommerce_related_products($args);
}
// If is upsel;
}elseif($el['atts']['select_product'] == 'upsell'){
$limit = '-1';
$columns = 4;
$orderby = $el['atts']['order_by'];
$order = $el['atts']['order'];
if( ! empty( $el['atts']['columns'] ) ) {
$columns = $el['atts']['columns'];
}
if(function_exists( 'woocommerce_upsell_display' )){
woocommerce_upsell_display( $limit, $columns, $orderby, $order );
}
}
// Get data and clean output buffer
$el['atts']['related_products'] = ob_get_clean();
}
// WooCommers Pages - 2C
function pagelayer_sc_woo_pages(&$el){
// if is not empty
if(!empty($el['atts']['pages'])){
$shortcode = '['. $el['atts']['pages'] .']';
$content = pagelayer_the_content($shortcode);
// if is checkout page
if ( 'woocommerce_checkout' === $el['atts']['pages'] && '<div class="woocommerce"></div>' == $content ) {
$content = '<div class="woocommerce">' . __( 'Your cart is currently empty.') . '</div>';
}
}
// If the content is empty
if(empty($content)){
$content = '<div class="woocommerce">' . __( 'Page content not found.') . '</div>';
}
$el['atts']['page_content'] = $content;
}
// Product Pages - 2C
function pagelayer_sc_product_categories(&$el){
$attributes = '';
$attributes .= ' number="'. (isset($el['atts']['number']) ? $el['atts']['number'] : '').'" ';
$attributes .= ' columns="'. (isset($el['atts']['columns']) ? $el['atts']['columns'] : '').'" ';
$attributes .= ' hide_empty="'. (!empty($el['atts']['hide_empty']) ? 1 : 0) .'" ';
$attributes .= ' orderby="'. (isset($el['atts']['nuorderbymber']) ? $el['atts']['nuorderbymber'] : '') .'" ';
$attributes .= ' order="'. (isset($el['atts']['order']) ? $el['atts']['order'] : '') .'" ';
$source = isset($el['atts']['source']) ? $el['atts']['source'] : '';
if ( 'by_id' === $source ) {
$attributes .= ' ids="'. $el['atts']['by_id'] .'" ';
} elseif ( 'by_parent' === $source ) {
$attributes .= ' parent="'. $el['atts']['parent'] .'" ';
} elseif ( 'current_subcategories' === $source ) {
$attributes .= ' parent="'. get_queried_object_id() .'" ';
}
$shortcode = '[product_categories '. $attributes .']';
// do_shortcode the shortcode
$el['atts']['product_categories'] = pagelayer_the_content($shortcode);
}
// Products - 2C
function pagelayer_sc_products(&$el){
if( WC()->session ){
wc_print_notices();
}
$no_found = $el['atts']['no_found'];
$attributes = '';
$type = $el['atts']['source'];
$attributes .= ' columns="'. $el['atts']['columns'] .'" ';
$attributes .= ' rows="'. $el['atts']['rows'] .'" ';
$attributes .= ' paginate="'. (!empty($el['atts']['paginate']) ? true : false) .'" ';
$attributes .= ' orderby="'. $el['atts']['orderby'] .'" ';
$attributes .= ' order="'. $el['atts']['order'] .'" ';
$attributes .= ' cache="false" ';
// Hide the catalog order
if( empty($el['atts']['allow_order']) ){
remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
}
// Hide the result count
if( empty($el['atts']['show_result']) ){
remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
}
if( $type == 'by_id' ){
$type = 'products';
$attributes .= ' ids="'. (!empty($el['atts']['ids']) ? $el['atts']['ids'] : '') .'" ';
}elseif( $type == 'pagelayer_current_query' ){
$atts['paginate'] = (!empty($el['atts']['paginate']) ? true : false);
$atts['cache'] = false;
$type = 'pagelayer_current_query';
// Set the current query
add_action( 'woocommerce_shortcode_products_query', 'pagelayer_shortcode_current_query', 10, 10);
// If product not found
add_action( "woocommerce_shortcode_{$type}_loop_no_results", function ($attributes) use ($no_found){
echo '<div class="pagelayer-product-no-found">'.$no_found.'</div>';
} );
$shortcode = new WC_Shortcode_Products( $atts, $type );
$el['atts']['products_content'] = $shortcode->get_content();
return true;
}
$shortcode = '['.$type.' '. $attributes .']';
$content = pagelayer_the_content($shortcode);
// If product not found
if('<div class="woocommerce columns-'.$el['atts']['columns'] .' "></div>' == $content){
$content = '<div class="pagelayer-product-no-found">'. __($no_found) .'</div>';
}
$el['atts']['products_content'] = $content;
}
// Archives Product Pages - 2C
function pagelayer_sc_product_archives(&$el){
global $post;
if ( WC()->session ) {
wc_print_notices();
}
$atts['paginate'] = true;
$atts['cache'] = false;
$no_found = $el['atts']['no_found'];
if( empty($el['atts']['allow_order']) ){
remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
}
if( empty($el['atts']['show_result']) ){
remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
}
$type = 'pagelayer_current_query';
// We need to define costom
if( (isset($post->post_type) && $post->post_type == 'pagelayer-template') || wp_doing_ajax()){
$type = '';
}
// Set the current query
add_action( 'woocommerce_shortcode_products_query', 'pagelayer_shortcode_current_query', 10, 10);
// If product not found
add_action( "woocommerce_shortcode_{$type}_loop_no_results", function ($attributes) use ($no_found){
echo '<div class="pagelayer-product-no-found">'.$no_found.'</div>';
} );
$shortcode = new WC_Shortcode_Products( $atts, $type );
$el['atts']['product_archives'] = $shortcode->get_content();
}
// Product Price render - 2C
function pagelayer_sc_product_price(&$el) {
global $product;
$product = pagelayer_get_product();
$price = '';
if( empty( $product ) && (pagelayer_is_live_template() || wp_doing_ajax())){
$price = __pl('no_woo_product');
}
if ( empty( $product ) ) {
$el['atts']['pagelayer-product-price'] = $price;
return;
}
ob_start();
wc_get_template( '/single-product/price.php' );
$el['atts']['pagelayer-product-price'] = ob_get_clean();
}
// Product add to cart render - 2C
function pagelayer_sc_add_to_cart(&$el) {
global $product;
$product = pagelayer_get_product();
$cart = '';
if( empty( $product ) && (pagelayer_is_live_template() || wp_doing_ajax())){
$cart = __pl('no_woo_product');
}
if ( empty( $product ) ) {
$el['atts']['product_add_to_cart'] = $cart;
return;
}
ob_start();
woocommerce_template_single_add_to_cart();
$el['atts']['product_add_to_cart'] = '<div class="pagelayer-add-to-cart-holder pagelayer-product-'. esc_attr( $product->get_type() ) .'">
'. ob_get_clean() .'
</div>';
}
// Product rating render - 2C
function pagelayer_sc_product_rating(&$el) {
if( ! post_type_supports( 'product', 'comments' ) ){
return;
}
global $product;
$product = pagelayer_get_product();
$product_rating = '';
if( empty( $product ) && (pagelayer_is_live_template() || wp_doing_ajax())){
$product_rating = __pl('no_woo_product');
}
if ( empty( $product ) ) {
$el['atts']['product_rating'] = $product_rating;
return;
}
ob_start();
wc_get_template( '/single-product/rating.php' );
$product_rating = ob_get_clean();
if( empty( $product_rating ) && pagelayer_is_live_template()){
$product_rating = __('No Rating Found!');
}
$el['atts']['product_rating'] = $product_rating;
}
/*
// Product stock render - 2C
function pagelayer_product_stock() {
global $product;
$product = wc_get_product();
if ( empty( $product ) ) {
return;
}
return wc_get_stock_html( $product );
} */
// Product meta render - 2C
function pagelayer_sc_product_meta(&$el) {
global $product;
$product = pagelayer_get_product();
$product_meta = '';
if( empty( $product ) && (pagelayer_is_live_template() || wp_doing_ajax())){
$product_meta = __pl('no_woo_product');
}
if ( empty( $product ) ) {
$el['atts']['product_meta'] = $product_meta;
return;
}
ob_start();
wc_get_template( '/single-product/meta.php' );
$el['atts']['product_meta'] = ob_get_clean();
}
// Product short description render - 2C
function pagelayer_sc_product_short_desc(&$el) {
global $product, $post;
$product = pagelayer_get_product();
$product_short_desc = '';
if( empty( $product ) && (pagelayer_is_live_template() || wp_doing_ajax())){
$product_short_desc = __pl('no_woo_product');
}
if ( empty( $product ) ) {
$el['atts']['product_short_desc'] = $product_short_desc;
return;
}
if((isset($post->post_type) && $post->post_type == 'pagelayer-template') || wp_doing_ajax()){
$el['atts']['product_short_desc'] = '<div class="woocommerce-product-details__short-description"><p>'.$product->get_short_description().'</p></div>';
return;
}
ob_start();
wc_get_template( 'single-product/short-description.php' );
$el['atts']['product_short_desc'] = ob_get_clean();
}
// WooCommerce breadcrumb render - 2C
function pagelayer_woo_breadcrumb() {
ob_start();
woocommerce_breadcrumb();
return ob_get_clean();
}
// Get product categories - 2C
function pagelayer_get_product_cat() {
$categories = get_terms( 'product_cat' );
$options = [];
foreach ( $categories as $category ) {
$options[ $category->term_id ] = $category->name;
}
return $options;
}
// Get product categories - 2C
function pagelayer_get_product_archives_desc() {
ob_start();
do_action( 'woocommerce_archive_description' );
return ob_get_clean();
}
// Get product additional Information - 2C
function pagelayer_sc_product_addi_info(&$el) {
global $product;
$product = pagelayer_get_product();
$product_additional_info = '';
if( empty( $product ) && (pagelayer_is_live_template() || wp_doing_ajax())){
$product_additional_info = __pl('no_woo_product');
}
if ( empty( $product ) ) {
$el['atts']['product_additional_info'] = $product_additional_info;
return;
}
ob_start();
wc_get_template( 'single-product/tabs/additional-information.php' );
$el['atts']['product_additional_info'] = ob_get_clean();
}
// Get product data tab Information - 2C
function pagelayer_sc_product_data_tabs(&$el) {
global $product, $post;
$product = pagelayer_get_product();
$product_data_tab = '';
if( empty( $product ) && (pagelayer_is_live_template() || wp_doing_ajax())){
$product_data_tab = __pl('no_woo_product');
}
if ( empty( $product ) ) {
$el['atts']['product_data_tab'] = $product_data_tab;
return;
}
// We need load Pagelayer shortcodes
pagelayer_load_shortcodes();
setup_postdata( $product->get_id());
ob_start();
wc_get_template( 'single-product/tabs/tabs.php' );
$data_tabs = ob_get_clean();
// If no data tabs
if(empty($data_tabs)){
$data_tabs = __('Data tab not found');
}
$el['atts']['product_data_tab'] = $data_tabs;
}
// Get the HTML for menu cart
function pagelayer_sc_woo_menu_cart(&$el){
// Maybe init cart
$has_cart = is_a( WC()->cart, 'WC_Cart' );
if ( ! $has_cart ) {
$session_class = apply_filters( 'woocommerce_session_handler', 'WC_Session_Handler' );
WC()->session = new $session_class();
WC()->session->init();
WC()->cart = new \WC_Cart();
WC()->customer = new \WC_Customer( get_current_user_id(), true );
}
// Get the cart values
$widget_cart_is_hidden = apply_filters( 'woocommerce_widget_cart_is_hidden', is_cart() || is_checkout() );
$product_count = WC()->cart->get_cart_contents_count();
$sub_total = WC()->cart->get_cart_subtotal();
$cart_items = WC()->cart->get_cart();
$toggle_button_link = $widget_cart_is_hidden ? wc_get_cart_url() : '#';
/** workaround WooCommerce Subscriptions issue that changes the behavior of is_cart() */
$toggle_button_classes = 'pagelayer-cart-button pagelayer-size-sm';
$toggle_button_classes .= $widget_cart_is_hidden ? ' pagelayer-menu-cart-hidden' : '';
$counter_attr = 'data-counter="' . $product_count . '"';
$cart_html = '<div class="pagelayer-menu-cart-toggle">
<a href="'. esc_attr( $toggle_button_link ) .'" class="'. $toggle_button_classes .'">
<span class="pagelayer-cart-button-text">'. $sub_total .'</span>
<span class="pagelayer-cart-button-icon" '. $counter_attr .'>
<i class="'.$el['atts']['icon_type'].'" aria-hidden="true"></i>
</span>
</a>
</div>';
// If is cart and checkout page the except this
if ( ! $widget_cart_is_hidden ){
ob_start();
wc_get_template( 'cart/mini-cart.php' );
$mini_cart_html = ob_get_clean();
$cart_html .= '<div class="pagelayer-menu-cart-container">
<form class="pagelayer-menu-cart-main woocommerce-cart-form" action="'. esc_url( wc_get_cart_url() ) .'" method="post">
<div class="pagelayer-menu-cart-close">×</div>
'. $mini_cart_html .'
</form>
</div>';
}
$el['atts']['cart_html'] = $cart_html;
}
// SiteMap Item Box - 2C
function pagelayer_sc_sitemap_item(&$el){
$html_element = '';
$hier = '';
$depth = '';
$option = '';
$id = $el['id'];
$option = '<div class="pagelayer-sitemap-section">';
$hier = (empty($el['atts']['hierarchical']) ? '' : $el['atts']['hierarchical']);
$depth = (empty($el['atts']['depth']) ? '' : $el['atts']['depth']);
if($el['atts']['sitemap_type'] == 'post_type'){
if(empty($el['atts']['title'])){
$el['atts']['title'] = 'Pages';
}
$html_element .= $el['atts']['title'];
$args = array(
'post_type' => $el['atts']['source_post'],
'orderby' => $el['atts']['order_post'],
'order' => $el['atts']['order'],
'hierarchical' => $hier,
'number' => $depth,
'posts_per_page' => -1,
);
$option .= '<span>'.$html_element.'</span>';
$option .= '<ul>';
$pages = new WP_Query($args);
$posts = $pages->posts;
foreach ( $posts as $page ) {
$option .= '<li class="pagelayer-sitemap-list-item" data-postID="'.$page->ID.'"><a class="pagelayer-ele-link" href="'.get_permalink($page->ID).'">'.$page->post_name.'</a></li>';
}
$option .= '</ul>';
}else{
if(empty($el['atts']['title'])){
$el['atts']['title'] = 'Categories';
}
$html_element .= $el['atts']['title'];
$args = array(
'title_li' => 0,
'orderby' => $el['atts']['order_taxonomy'],
'order' => $el['atts']['order'],
'style' => '',
'hide_empty' => $el['atts']['hide_empty'],
'echo' => false,
'hierarchical' => $hier,
'taxonomy' => $el['atts']['source_taxonomy'],
'depth' => $depth,
);
$taxonomies = get_categories( $args );
$option .= '<span>'.$html_element.'</span>';
$option .= '<ul>';
foreach ( $taxonomies as $taxonomy ) {
$option .= '<li class="pagelayer-sitemap-list-item" data-postID="'.$taxonomy->term_id.'"><a class="pagelayer-ele-link" href="'.get_term_link($taxonomy->term_id).'">'.$taxonomy->name.'</a></li>';
}
$option .= '</ul>';
}
$option .= '</div>';
$el['atts']['sitemap_html'] = $option;
}
function pagelayer_sc_slides(&$el) {
if( !pagelayer_is_live() ) {
return;
}
foreach($el['inner_blocks'] as $key => $inner_block) {
if('pagelayer/pl_slide' != $inner_block['blockName']) {
continue;
}
$slide = serialize_block($inner_block);
$col = get_comment_delimited_block_content('pagelayer/pl_col', [] , $slide);
$row = get_comment_delimited_block_content('pagelayer/pl_inner_row', ['col_gap' => '0.0'] , $col);
$el['inner_blocks'][$key] = array(
'blockName' => 'pagelayer/pl_content_slide',
'innerBlocks' => parse_blocks($row),
'innerHTML' => '',
'attrs' => array(),
'innerContent' => array(),
);
}
}
function pagelayer_sc_chart(&$el){
$el['atts']['xcolor'] = empty($el['atts']['xcolor']) ? '' : pagelayer_parse_color($el['atts']['xcolor'], false);
$el['atts']['ycolor'] = empty($el['atts']['ycolor']) ? '' : pagelayer_parse_color($el['atts']['ycolor'], false);
}
function pagelayer_sc_chart_datasets(&$el){
$el['atts']['chart_border_color'] = empty($el['atts']['chart_border_color']) ? '' : pagelayer_parse_color($el['atts']['chart_border_color'], false);
$el['atts']['bg_color'] = empty($el['atts']['bg_color']) ? '' : pagelayer_parse_color($el['atts']['bg_color'], false);
}
// Render the image map
function pagelayer_sc_image_map(&$el) {
$map_size = pagelayer_isset($el['atts'], 'img_map-size');
$map_key = 'img_map-id-' . $map_size . '-url';
$el['atts']['map_img_id'] = isset($el['tmp'][$map_key]) ? $el['tmp'][$map_key] : pagelayer_isset($el['tmp'], 'map_img-id-url');
$el['atts']['pagelayer-srcset'] = $el['atts']['map_img_id'] . ', ' . $el['atts']['map_img_id'] . ' 1x, ';
// Handle multiple paths
if(isset($el['atts']['pagelayer_image_map']) && is_array($el['atts']['pagelayer_image_map'])){
$el['atts']['pagelayer_map_path'] = ''; // Initialize as empty
foreach ($el['atts']['pagelayer_image_map'] as $key => $data) {
$data_cord = isset($data['path']) ? $data['path'] : '';
$data_id = isset($key) ? $key : '';
$data_link = isset($data['link']) ? $data['link'] : '';
$el['atts']['pagelayer_map_path'] .= "<path class='pagelayer-imgmap-item' d='' stroke-width='2' data-cord='" . $data_cord . "' data-id='" . $data_id . "' fill-opacity='0.3' fill-rule='evenodd' data-link='" . $data_link . "'></path>";
}
}
if(empty($el['atts']['pagelayer_map_path'])){
$el['atts']['pagelayer_map_path'] = ' ';
}
$image_atts = array(
'name' => 'img_map-id',
'size' => 'img_map-size'
);
pagelayer_get_img_srcset($el, $image_atts);
} main/premium-woocommerce.php 0000644 00000047373 15152652076 0012223 0 ustar 00 <?php
//////////////////////////////////////////////////////////////
//===========================================================
// PAGELAYER
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Pulkit Gupta
// Date: 23rd Jan 2017
// Time: 23:00 hrs
// Site: http://pagelayer.com/wordpress (PAGELAYER)
// ----------------------------------------------------------
// Please Read the Terms of use at http://pagelayer.com/tos
// ----------------------------------------------------------
//===========================================================
// (c)Pagelayer Team
//===========================================================
//////////////////////////////////////////////////////////////
// Are we being accessed directly ?
if(!defined('PAGELAYER_PRO_VERSION')) {
exit('Hacking Attempt !');
}
add_action( 'wp', 'pagelayer_pro_wc_customization' );
function pagelayer_pro_wc_customization(){
$options = pagelayer_get_customize_options();
if(!is_product()){
return;
}
if(!empty($options['woo_enable_product_zoom'] ) && $options['woo_enable_product_zoom'] == 'disable'){
remove_theme_support( 'wc-product-gallery-zoom' );
}
if(!empty($options['woo_enable_product_zoom'] ) && $options['woo_enable_product_zoom'] == 'enable'){
add_theme_support( 'wc-product-gallery-zoom' );
}
// Disable Product description
if(!empty($options['woo_disable_product_desc'])){
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );
}
// Disable up sell products
if(!empty($options['woo_disable_upsells'])){
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 );
}
// Disable Related Products
if(!empty($options['woo_disable_related_product'])){
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
}
}
// WooCommerce Checkout Fields Hook
add_filter('woocommerce_checkout_fields','pagelayer_wc_checkout_fields_no_label',10);
function pagelayer_wc_checkout_fields_no_label($fields) {
$options = pagelayer_get_customize_options();
if(empty($options['woo_checkout_label_placeholder'])){
return $fields;
}
// loop by category
foreach ($fields as $category => $value) {
// loop by fields
foreach ($fields[$category] as $field => $property) {
//Add label as placeholder
if( $fields[$category][$field]['required'] == true ){
//Add required * in placeholder
$fields[$category][$field]['placeholder'] = $fields[$category][$field]['label'] .' *';
}else{
//Add (optional) in placeholder
$fields[$category][$field]['placeholder'] = $fields[$category][$field]['label'] .'(optional)';
}
// remove label property
unset($fields[$category][$field]['label']);
}
}
return $fields;
}
// Disable sale flash
add_filter( 'woocommerce_sale_flash', 'pagelayer_woo_sale_flash', 10, 3 );
function pagelayer_woo_sale_flash( $html, $post, $product ) {
$options = pagelayer_get_customize_options();
if(empty($options['woo_disable_onsale'])){
return $html;
}
return '';
}
// Change number of related product on single page
add_filter( 'woocommerce_output_related_products_args', 'pagelayer_single_product_number_related_products', 99 );
function pagelayer_single_product_number_related_products( $args ) {
$options = pagelayer_get_customize_options();
if(empty($options['woo_number_related_product'])){
return $args;
}
$args['posts_per_page'] = $options['woo_number_related_product']; // # Of related products
if(!empty($options['woo_col_related_product'])){
$args['columns'] = $options['woo_col_related_product'];
}
return $args;
}
add_filter( 'pagelayer_wc_styles_array', 'pagelayer_pro_wc_styles_array');
function pagelayer_pro_wc_styles_array($woo_styles){
$styles = array(
'woo_shop_pagi_bg_color' => array(
'.woocommerce .woocommerce-pagination ul li a, .woocommerce .woocommerce-pagination a.page-numbers' => 'background-color: {{color}}',
),
'woo_shop_pagi_color' => array(
'.woocommerce .woocommerce-pagination ul li a, .woocommerce .woocommerce-pagination a.page-numbers' => 'color: {{color}}',
),
'woo_shop_pagi_borderwidth' => array(
'.woocommerce .woocommerce-pagination ul li a, .woocommerce .woocommerce-pagination a.page-numbers' => 'border: {{val}}px solid',
'.woocommerce .woocommerce-pagination ul li a:focus, .woocommerce .woocommerce-pagination ul li a:hover, .woocommerce .woocommerce-pagination ul li span.current, .woocommerce .woocommerce-pagination a.page-numbers:hover, .woocommerce .woocommerce-pagination a.page-numbers:focus, .woocommerce .woocommerce-pagination span.page-numbers.current' => 'border: {{val}}px solid',
),
'woo_shop_pagi_border_color' => array(
'.woocommerce .woocommerce-pagination ul li a, .woocommerce .woocommerce-pagination a.page-numbers' => 'border-color: {{color}}',
),
'woo_shop_pagi_borderradius' => array(
'.woocommerce .woocommerce-pagination ul li a, .woocommerce .woocommerce-pagination a.page-numbers' => 'border-radius: {{val}}px',
'.woocommerce .woocommerce-pagination ul li a:focus, .woocommerce .woocommerce-pagination ul li a:hover, .woocommerce .woocommerce-pagination ul li span.current, .woocommerce .woocommerce-pagination a.page-numbers:hover, .woocommerce .woocommerce-pagination a.page-numbers:focus, .woocommerce .woocommerce-pagination span.page-numbers.current' => 'border-radius: {{val}}px',
),
'woo_shop_pagi_bg_hover_color' => array(
'.woocommerce .woocommerce-pagination ul li a:focus, .woocommerce .woocommerce-pagination ul li a:hover, .woocommerce .woocommerce-pagination ul li span.current, .woocommerce .woocommerce-pagination a.page-numbers:hover, .woocommerce .woocommerce-pagination a.page-numbers:focus, .woocommerce .woocommerce-pagination span.page-numbers.current' => 'background-color: {{color}}',
),
'woo_shop_pagi_hover_color' => array(
'.woocommerce .woocommerce-pagination ul li a:focus, .woocommerce .woocommerce-pagination ul li a:hover, .woocommerce .woocommerce-pagination ul li span.current, .woocommerce .woocommerce-pagination a.page-numbers:hover, .woocommerce .woocommerce-pagination a.page-numbers:focus, .woocommerce .woocommerce-pagination span.page-numbers.current' => 'color: {{color}}',
),
'woo_shop_pagi_hover_border_color' => array(
'.woocommerce .woocommerce-pagination ul li a:focus, .woocommerce .woocommerce-pagination ul li a:hover, .woocommerce .woocommerce-pagination ul li span.current, .woocommerce .woocommerce-pagination a.page-numbers:hover, .woocommerce .woocommerce-pagination a.page-numbers:focus, .woocommerce .woocommerce-pagination span.page-numbers.current' => 'border-color: {{color}}',
),
'woo_onsale_bg_color' => array(
'.woocommerce .product span.onsale' => 'background-color:{{color}};',
),
'woo_onsale_color' => array(
'.woocommerce .product span.onsale' => 'color:{{color}};',
),
'woo_onsale_radius' => array(
'.woocommerce .product span.onsale' => 'border-radius:{{color}}%;',
),
'woo_product_breadcrumb_color' => array(
'.single-product .woocommerce-breadcrumb, .single-product .woocommerce-breadcrumb *' => 'color: {{color}}'
),
'woo_product_description_color' => array(
'.single-product div.product .woocommerce-product-details__short-description, .single-product div.product .woocommerce-product-details__short-description p, .single-product div.product .product_meta, .single-product div.product .entry-content' => 'color: {{color}}'
),
'woo_product_price_color' => array(
'.single-product div.product p.price, .single-product div.product span.price' => 'color: {{color}}'
),
'woo_product_title_color' => array(
'.single-product .product .entry-title' => 'color: {{color}}'
)
);
return array_merge( $woo_styles, $styles );
}
add_filter( 'customize_register', 'pagelayer_pro_customizer_get_fields', 11);
function pagelayer_pro_customizer_get_fields($wp_customize){
// General Setting
$wp_customize->add_setting( 'pagelayer_lable_onsale', array(
'capability' => 'edit_theme_options',
));
$wp_customize->add_control( new Pagelayer_Customize_Control(
$wp_customize, 'pagelayer_lable_onsale', array(
'type' => 'hidden',
'section' => 'pgl_woo_general',
'description' => __('<div class="pagelayer-customize-heading"><div>Onsale Style</div></div>', 'pagelayer'),
'li_class' => 'pagelayer-accordion-tab',
'priority' => 2
)
));
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_disable_onsale]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
)
);
$wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_disable_onsale]', array(
'type' => 'checkbox',
'label' => __('Disable Sale Notification'),
'section' => 'pgl_woo_general',
'priority' => 2
))
);
// Adds Customizer settings
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_onsale_color]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh'
)
);
$wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_onsale_color]', array(
'label' => __('Sale Text Color'),
'section' => 'pgl_woo_general',
'priority' => 3
) )
);
// Adds Customizer settings
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_onsale_bg_color]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
)
);
$wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_onsale_bg_color]', array(
'label' => __('Sale Background'),
'section' => 'pgl_woo_general',
'priority' => 4
) )
);
// General Setting
pagelayer_register_slider_custoze_control($wp_customize, array(
'control' => 'pagelayer_customizer_options[woo_onsale_radius]',
'section' => 'pgl_woo_general',
'setting_type' => 'option',
'label' => __( 'Sale Notification Radius'),
'capability' => 'edit_theme_options',
'transport' => 'refresh',
'priority' => 4,
'input_attrs' => array(
'min' => 0,
'max' => 100,
'step' => 1,
)
));
pagelayer_register_slider_custoze_control($wp_customize, array(
'control' => 'pagelayer_customizer_options[woo_product_image_width]',
'section' => 'pgl_woo_single_product',
'setting_type' => 'option',
'label' => __('Image Width'),
'capability' => 'edit_theme_options',
'transport' => 'refresh',
'priority' => 3,
'input_attrs' => array(
'min' => 0,
'max' => 70,
'step' => 1,
)
));
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_enable_product_zoom]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
)
);
$wp_customize->add_control( 'pagelayer_customizer_options[woo_enable_product_zoom]', array(
'type' => 'select',
'label' => __('Image Zoom Effect'),
'section' => 'pgl_woo_single_product',
'priority' => 4,
'choices' => array(
'' => __('Default'),
'enable' => __('Enable'),
'disable' => __('Disable'),
)
)
);
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_disable_product_desc]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
)
);
$wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_disable_product_desc]', array(
'type' => 'checkbox',
'label' => __('Hide Products Description'),
'section' => 'pgl_woo_single_product',
'priority' => 5
))
);
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_disable_upsells]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
)
);
$wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_disable_upsells]', array(
'type' => 'checkbox',
'label' => __('Disable Products Up Sells'),
'section' => 'pgl_woo_single_product',
'priority' => 6
))
);
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_disable_related_product]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
)
);
$wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_disable_related_product]', array(
'type' => 'checkbox',
'label' => __('Disable Related Products'),
'section' => 'pgl_woo_single_product',
'priority' => 7
))
);
pagelayer_register_slider_custoze_control($wp_customize, array(
'control' => 'pagelayer_customizer_options[woo_number_related_product]',
'section' => 'pgl_woo_single_product',
'setting_type' => 'option',
'label' => __('No. of Related Products'),
'capability' => 'edit_theme_options',
'transport' => 'refresh',
'priority' => 8,
'input_attrs' => array(
'min' => 1,
'max' => 10,
'step' => 1,
),
));
pagelayer_register_slider_custoze_control($wp_customize, array(
'control' => 'pagelayer_customizer_options[woo_col_related_product]',
'section' => 'pgl_woo_single_product',
'setting_type' => 'option',
'label' => __('Related Products columns'),
'capability' => 'edit_theme_options',
'transport' => 'refresh',
'priority' => 8,
'input_attrs' => array(
'min' => 1,
'max' => 6,
'step' => 1,
),
));
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_product_title_color]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh'
)
);
$wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_product_title_color]', array(
'label' => __('Title Color'),
'section' => 'pgl_woo_single_product',
'priority' => 9
))
);
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_product_price_color]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh'
)
);
$wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_product_price_color]', array(
'label' => __('Price Color'),
'section' => 'pgl_woo_single_product',
'priority' => 10
))
);
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_product_description_color]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh'
)
);
$wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_product_description_color]', array(
'label' => __('Description Color'),
'section' => 'pgl_woo_single_product',
'priority' => 11
))
);
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_product_breadcrumb_color]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh'
)
);
$wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_product_breadcrumb_color]', array(
'label' => __('Breadcrumb Color'),
'section' => 'pgl_woo_single_product',
'priority' => 12
))
);
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_checkout_label_placeholder]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
)
);
$wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_checkout_label_placeholder]', array(
'type' => 'checkbox',
'label' => __('Show Label as Placeholder'),
'section' => 'pgl_woo_checkout',
'priority' => 4
))
);
// Shop page settings
$wp_customize->add_setting( 'pagelayer_lable_shop_pagi', array(
'capability' => 'edit_theme_options',
));
$wp_customize->add_control( new Pagelayer_Customize_Control(
$wp_customize, 'pagelayer_lable_shop_pagi', array(
'type' => 'hidden',
'section' => 'pgl_woo_product_catalog',
'description' => __('<div class="pagelayer-customize-heading"><div>Pagination Style</div></div>', 'pagelayer'),
'li_class' => 'pagelayer-accordion-tab',
'priority' => 11
)
));
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_shop_pagi_bg_color]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh'
)
);
$wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_shop_pagi_bg_color]', array(
'label' => __('Background Color'),
'section' => 'pgl_woo_product_catalog',
'priority' => 11
))
);
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_shop_pagi_bg_hover_color]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh'
)
);
$wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_shop_pagi_bg_hover_color]', array(
'label' => __('Background Hover Color'),
'section' => 'pgl_woo_product_catalog',
'priority' => 11
))
);
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_shop_pagi_color]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
)
);
$wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_shop_pagi_color]', array(
'label' => __('Text Color'),
'section' => 'pgl_woo_product_catalog',
'priority' => 11
))
);
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_shop_pagi_hover_color]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
)
);
$wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_shop_pagi_hover_color]', array(
'label' => __('Text Hover Color'),
'section' => 'pgl_woo_product_catalog',
'priority' => 11
))
);
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_shop_pagi_border_color]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
)
);
$wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_shop_pagi_border_color]', array(
'label' => __('Border Color'),
'section' => 'pgl_woo_product_catalog',
'priority' => 11
))
);
$wp_customize->add_setting( 'pagelayer_customizer_options[woo_shop_pagi_hover_border_color]', array(
'type' => 'option',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
)
);
$wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_shop_pagi_hover_border_color]', array(
'label' => __('Border Hover Color'),
'section' => 'pgl_woo_product_catalog',
'priority' => 11
))
);
pagelayer_register_slider_custoze_control($wp_customize, array(
'control' => 'pagelayer_customizer_options[woo_shop_pagi_borderwidth]',
'section' => 'pgl_woo_product_catalog',
'setting_type' => 'option',
'label' => __('Pagination Border Width'),
'capability' => 'edit_theme_options',
'transport' => 'refresh',
'sanitize_callback' => 'absint',
'priority' => 11,
'input_attrs' => array(
'min' => 0,
'max' => 50,
'step' => 1,
),
'responsive' => 1,
));
pagelayer_register_slider_custoze_control($wp_customize, array(
'control' => 'pagelayer_customizer_options[woo_shop_pagi_borderradius]',
'section' => 'pgl_woo_product_catalog',
'setting_type' => 'option',
'label' => __('Border Radius'),
'capability' => 'edit_theme_options',
'transport' => 'refresh',
'sanitize_callback' => 'absint',
'priority' => 11,
'input_attrs' => array(
'min' => 0,
'max' => 100,
'step' => 1,
),
));
} main/freemium.php 0000644 00000757003 15152652076 0010037 0 ustar 00 <?php
//////////////////////////////////////////////////////////////
//===========================================================
// freemium.php
//===========================================================
// PAGELAYER
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Pulkit Gupta
// Date: 23rd Jan 2017
// Time: 23:00 hrs
// Site: http://pagelayer.com/wordpress (PAGELAYER)
// ----------------------------------------------------------
// Please Read the Terms of use at http://pagelayer.com/tos
// ----------------------------------------------------------
//===========================================================
// (c)Pagelayer Team
//===========================================================
//////////////////////////////////////////////////////////////
// Are we being accessed directly ?
if(!defined('PAGELAYER_PRO_VERSION')) {
exit('Hacking Attempt !');
}
global $pagelayer;
// Posts options style
$pagelayer_posts_options = array(
'type' => array(
'type' => 'select',
'label' => __pl('type'),
'default' => 'default',
'list' => array(
'default' => __pl('default'),
),
),
'infinite_types' => array(
'type' => 'radio',
'label' => __pl('infinite_scroll'),
'addClass' => ['pagelayer-infinite-posts','{{element}} .pagelayer-posts-container' => 'pagelayer-infinite-scroll-{{val}}'],
'list' => array(
'' => __pl('none'),
'button' => __pl('Button'),
'auto' => __pl('Auto'),
),
'req' => ['!enable_slider' => 'true'],
),
'alignment' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'addClass' => 'pagelayer-arc-layout-{{val}}',
'list' => array(
'' => __pl('default'),
'left' => __pl('left'),
'right' => __pl('right'),
'alt' => __pl('Alternative')
),
),
'columns' => array(
'type' => 'select',
'label' => __pl('columns'),
'np' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-posts-container' => 'grid-template-columns: repeat({{val}},1fr);'],
'list' => array(
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '5',
'6' => '6',
),
),
'col_gap' => array(
'type' => 'slider',
'label' => __pl('col_gap'),
'min' => 0,
'step' => 1,
'max' => 100,
'screen' => 1,
'css' => ['{{element}} .pagelayer-posts-container' => 'grid-column-gap: {{val}}px;'],
),
'row_gap' => array(
'type' => 'slider',
'label' => __pl('row_gap'),
'min' => 0,
'step' => 1,
'max' => 100,
'screen' => 1,
'css' => ['{{element}} .pagelayer-posts-container' => 'grid-row-gap: {{val}}px;'],
),
'data_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'default' => '5,5,5,5',
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-content' => 'padding : {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
),
'data_margin' => array(
'type' => 'padding',
'label' => __pl('margin'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-col' => 'margin :{{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
),
'bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-wposts-col' => 'background-color:{{val}};'],
),
'box_shadow' => array(
'type' => 'box_shadow',
'label' => __pl('box_shadow'),
'css' => ['{{element}} .pagelayer-wposts-col' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}} !important;'],
),
'post_bor_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'post_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => [
'{{element}} .pagelayer-wposts-col' => 'border-style: {{val}};',
],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'post_bor_hover' => ''
),
),
'post_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-wposts-col' => 'border-color: {{val}};'],
'req' => array(
'!post_border_type' => ''
),
'show' => array(
'post_bor_hover' => ''
),
),
'post_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-col' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!post_border_type' => ''
],
'show' => array(
'post_bor_hover' => ''
),
),
'post_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-col' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!post_border_type' => '',
),
'show' => array(
'post_bor_hover' => '',
),
),
'post_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => [
'{{element}} .pagelayer-wposts-col:hover' => 'border-style: {{val}}',
],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'post_bor_hover' => 'hover'
),
),
'post_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color_hover_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-wposts-col:hover' => 'border-color: {{val}};'],
'req' => array(
'!post_border_type_hover' => ''
),
'show' => array(
'post_bor_hover' => 'hover'
),
),
'post_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width_hover'),
'screen' => 1,
'css' => [
'{{element}} .pagelayer-wposts-col:hover' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px;'
],
'req' => [
'!post_border_type_hover' => ''
],
'show' => array(
'post_bor_hover' => 'hover'
),
),
'post_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-col:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!post_border_type_hover' => '',
),
'show' => array(
'post_bor_hover' => 'hover',
),
),
'anim_hover' => array(
'type' => 'select',
'label' => __pl('Post Animation'),
'addClass' => ['{{element}} .pagelayer-wposts-col' => 'pagelayer-animation-{{val}}'],
'list' => [
'' => __pl('none'),
'grow' => __pl('Grow'),
'shrink' => __pl('Shrink'),
'pulse' => __pl('Pulse'),
'pulse-grow' => __pl('Pulse Grow'),
'pulse-shrink' => __pl('Pulse Shrink'),
'push' => __pl('Push'),
'pop' => __pl('Pop'),
'buzz' => __pl('Buzz'),
'buzz-out' => __pl('Buzz Out'),
'float' => __pl('Float'),
'sink' => __pl('Sink'),
'bob' => __pl('Bob'),
'hang' => __pl('Hang'),
'bounce-in' => __pl('Bounce In'),
'bounce-out' => __pl('Bounce Out'),
'rotate' => __pl('Rotate'),
'grow-rotate' => __pl('Grow Rotate'),
'skew-forward' => __pl('Skew Forward'),
'skew-backward' => __pl('Skew Backward'),
'wobble-vertical' => __pl('Wobble Vertical'),
'wobble-horizontal' => __pl('Wobble Horizontal'),
'wobble-bottom-to-right' => __pl('Wobble Bottom To Right'),
'wobble-top-to-right' => __pl('Wobble Top To Right'),
'wobble-top' => __pl('Wobble Top'),
'wobble-bottom' => __pl('Wobble Bottom'),
'wobble-skew' => __pl('Wobble Skew'),
],
)
);
// Posts thumb style
$pagelayer_thumb_style = [
'show_thumb' => array(
'label' => __pl('show_thumb'),
'type' => 'checkbox',
'default' => 'true',
//'addAttr' => ['{{element}} a' => 'target="_blank"'],
),
'thumb_img_type' => array(
'type' => 'select',
'label' => __pl('thumb_img_type'),
'list' => array(
'' => __pl('default'),
'custom' => __pl('custom')
),
'req' => ['show_thumb' => 'true'],
),
'def_thumb_img' => array(
'type' => 'image',
'label' => __pl('image'),
'req' => [
'show_thumb' => 'true',
'thumb_img_type' => 'custom',
]
),
'thumb_size' => array(
'type' => 'select',
'label' => __pl('type'),
'default' => 'medium_large',
'list' => pagelayer_image_sizes(),
'req' => ['show_thumb' => 'true'],
),
'ratio' => array(
'type' => 'slider',
'label' => __pl('ratio'),
'min' => 0,
'step' => 0.1,
'max' => 2,
'default' => 0.7,
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-thumb' => 'padding: calc(50% * {{val}}) 0;'],
'req' => ['show_thumb' => 'true'],
),
];
// Posts type style
$pagelayer_title_style = [
'show_title' => array(
'type' => 'checkbox',
'label' => __pl('show_title'),
'default' => 'true',
),
'title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-wposts-title' => 'color:{{val}};'],
'req' => ['show_title' => 'true'],
),
'title_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',18,,,,,,,,,',
'css' => ['{{element}} .pagelayer-wposts-title' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => ['show_title' => 'true'],
),
'title_spacing' => array(
'type' => 'dimension',
'label' => __pl('top_bottom_spacing'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-title' => 'padding-top:{{val[0]}}px; padding-bottom:{{val[1]}}px;'],
'req' => ['show_title' => 'true'],
),
];
// Posts meta options
$pagelayer_meta_style = [
'meta' => array(
'type' => 'multiselect',
'label' => __pl('meta'),
'default' => 'author,date',
'list' => array(
'date' => __pl('date'),
'author' => __pl('author'),
'comments' => __pl('comments'),
'tags' => __pl('tags'),
'category' => __pl('category'),
),
),
'meta_sep' => array(
'type' => 'text',
'label' => __pl('separator'),
'default' => ' | ',
),
'meta_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-wposts-meta *' => 'color:{{val}};'],
),
'meta_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-wposts-meta' => 'background-color:{{val}};'],
),
'meta_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-meta' => 'text-align:{{val}};'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
),
'meta_spacing' => array(
'type' => 'padding',
'label' => __pl('spacing'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-meta' => 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[2]}}px; padding-left:{{val[3]}}px;'],
),
'meta_bor_rad' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => ['px', '%'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-meta' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
),
'meta_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .pagelayer-wposts-meta *' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'{{element}} .pagelayer-wposts-sep' => 'font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important;'
],
),
'meta_tag_pos' => array(
'type' => 'select',
'label' => __pl('position'),
'screen' => 1,
'css' => [
'{{element}} .pagelayer-wposts-post' => 'position: relative;',
'{{element}} .pagelayer-wposts-meta' => 'position: {{val}};'
],
'list' => array(
'' => __pl('default'),
'relative' => __pl('relative'),
'absolute' => __pl('absolute')
),
),
'meta_width' => [
'type' => 'slider',
'label' => __pl('width'),
'screen' => 1,
'units' => ['px','%','em'],
'css' => ['{{element}} .pagelayer-wposts-meta' => 'width:{{val}};'],
'min' => 0,
'max' => 1000,
'step' => 1,
'req' => ['!meta_tag_pos' => '']
],
'meta_vposition' => [
'type' => 'select',
'label' => __pl('verticle_pos'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-meta' => '{{val}}:0;'],
'list' => [
'' => __pl('default'),
'top' => __pl('top'),
'bottom' => __pl('bottom')
],
'req' => ['!meta_tag_pos' => '']
],
'meta_vposition_offset' => [
'type' => 'slider',
'label' => __pl('ver_offset'),
'screen' => 1,
'units' => ['px','%','em'],
'css' => ['{{element}} .pagelayer-wposts-meta' => '{{meta_vposition}}:{{val}};'],
'min' => -1000,
'max' => 1000,
'step' => 1,
'req' => [
'!meta_vposition' => '',
'!meta_tag_pos' => ''
]
],
'meta_hposition' => [
'type' => 'select',
'label' => __pl('horizontal_pos'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-meta' => '{{val}}:0;'],
'list' => [
'' => __pl('default'),
'left' => __pl('left'),
'right' => __pl('right')
],
'req' => ['!meta_tag_pos' => '']
],
'meta_hposition_offset' => [
'type' => 'slider',
'label' => __pl('hor_offset'),
'screen' => 1,
'units' => ['px','%','em'],
'css' => ['{{element}} .pagelayer-wposts-meta' => '{{meta_hposition}}:{{val}};'],
'min' => -1000,
'max' => 1000,
'step' => 1,
'req' => [
'!meta_hposition' => '',
'!meta_tag_pos' => ''
]
]
];
// Posts content style
$pagelayer_content_style = [
'show_content' => array(
'type' => 'select',
'label' => __pl('show_content'),
'default' => 'excerpt',
'list' => array(
'' => __pl('none'),
'excerpt' => __pl('excerpt'),
'full' => __pl('full'),
),
),
'exc_length' => array(
'type' => 'spinner',
'label' => __pl('exc_length'),
'min' => 0,
'step' => 1,
'max' => 500,
'default' => 10,
'req' => ['show_content' => 'excerpt']
),
'content_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#121212',
'css' => ['{{element}} .pagelayer-wposts-content' => 'color:{{val}};'],
),
'content_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-content .pagelayer-wposts-excerpt' => 'padding: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
),
'content_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-wposts-excerpt' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'content_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'left',
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-content' => 'text-align:{{val}};'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
),
];
//Post Infinite Style
$pagelayer_infinite_style = array(
'infinite_text' => array(
'type' => 'text',
'label' => __pl('Button Text'),
'default' => 'Load More',
'req' => ['infinite_types' => 'button']
),
'infinite_final' => array(
'type' => 'text',
'addAttr' => ['{{element}} .pagelayer_load_button' => 'data-text="{{infinite_final}}"'],
'label' => __pl('Post End Message'),
'default' => 'No More Post',
),
'infinite_full_width' => array(
'type' => 'checkbox',
'label' => __pl('stretch'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-load' => 'width: 100% !important; text-align: center;',
'{{element}} .pagelayer_load_button' =>'text-align: center;'],
),
'btn_typo' => array(
'type' => 'typography',
'label' => __pl('quote_content_typo'),
'css' => [
'{{element}} .pagelayer-btn-load-text' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'{{element}} .pagelayer_load_button' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
],
),
'load_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} .pagelayer_load_button' => 'text-align:{{val}}'],
'req' => ['infinite_types' => 'button', 'infinite_full_width' => '']
),
'load_margin' => array(
'type' => 'padding',
'label' => __pl('margin'),
'screen' => 1,
'css' => ['{{element}} .pagelayer_load_button' => 'margin :{{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
),
'load_btn_icon' => array(
'type' => 'icon',
'label' => __pl('service_box_font_icon_label'),
),
'load_btn_icon_position' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'pagelayer-btn-icon-left',
'list' => array(
'pagelayer-btn-icon-left' => __pl('left'),
'pagelayer-btn-icon-right' => __pl('right')
),
'req' => array(
'!load_btn_icon' => ''
),
),
'load_btn_icon_spacing' => array(
'type' => 'slider',
'label' => __pl('icon_spacing'),
'min' => 1,
'step' => 1,
'max' => 100,
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-load-icon' => 'padding: 0 {{val}}px;'],
'req' => ['!btn_icon' => ''],
),
'infinite_btn_type' => array(
'type' => 'select',
'label' => __pl('button_type_label'),
'default' => 'pagelayer-btn-default',
'list' => array(
'pagelayer-btn-default' => __pl('btn_type_default'),
'pagelayer-btn-primary' => __pl('btn_type_primary'),
'pagelayer-btn-secondary' => __pl('btn_type_secondary'),
'pagelayer-btn-success' => __pl('btn_type_success'),
'pagelayer-btn-info' => __pl('btn_type_info'),
'pagelayer-btn-warning' => __pl('btn_type_warning'),
'pagelayer-btn-danger' => __pl('btn_type_danger'),
'pagelayer-btn-dark' => __pl('btn_type_dark'),
'pagelayer-btn-light' => __pl('btn_type_light'),
'pagelayer-btn-link' => __pl('btn_type_link'),
'pagelayer-btn-anim' => __pl('btn_type_anim'),
'pagelayer-btn-custom' => __pl('btn_type_custom')
),
),
'infinite_anim_type' => array(
'type' => 'select',
'label' => __pl('type'),
'default' => 'glow',
'addClass' => ['{{element}} .pagelayer-btn-load' => 'pagelayer-btn-anim-{{val}}'],
'list' => array(
'glow' => __pl('glow_button'),
'thin' => __pl('thin_button'),
'slide' => __pl('slide_button')
),
'req' => array(
'infinite_btn_type' => 'pagelayer-btn-anim'
),
),
'infinite_direction' => array(
'type' => 'select',
'label' => __pl('animation_direction'),
'default' => 'pagelayer-btn-anim-left',
'addClass' => ['{{element}} .pagelayer-btn-load' => '{{val}}'],
'list' => array(
'pagelayer-btn-anim-left' => __pl('left'),
'pagelayer-btn-anim-right' => __pl('right'),
),
'req' => array(
'infinite_anim_type' => 'slide',
'infinite_btn_type' => 'pagelayer-btn-anim',
),
),
'infinite_btn_size' => array(
'type' => 'select',
'label' => __pl('button_size_label'),
'default' => 'pagelayer-btn-large',
'list' => array(
'pagelayer-btn-mini' => __pl('mini'),
'pagelayer-btn-small' => __pl('small'),
'pagelayer-btn-large' => __pl('large'),
'pagelayer-btn-extra-large' => __pl('extra_large'),
'pagelayer-btn-double-large' => __pl('double_large'),
'pagelayer-btn-custom' => __pl('custom'),
)
),
'infinite_btn_custom_size' => array(
'type' => 'spinner',
'label' => __pl('btn_custom_size'),
'min' => 1,
'step' => 1,
'max' => 100,
'default' => 5,
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-load' => 'padding: calc({{val}}px / 2) {{val}}px;'],
'req' => array(
'infinite_btn_size' => ['pagelayer-btn-custom','pagelayer-btn-anim'],
),
),
'infinite_btn_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => array(
'infinite_btn_type' => ['pagelayer-btn-custom','pagelayer-btn-anim'],
),
),
'infinite_btn_bg_color' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_label'),
'default' => '#818a91',
'css' => [
'{{element}} .pagelayer-btn-load' => 'background-color: {{val}};',
'{{element}} .pagelayer-btn-anim-thin' => 'background-color: unset !important;',
'{{element}} .pagelayer-btn-anim-thin::before' => 'background-color: {{val}};',
'{{element}} .pagelayer-btn-anim-thin::after' => 'background-color: {{val}};',
],
'req' => array(
'infinite_btn_type' => ['pagelayer-btn-custom','pagelayer-btn-anim'],
),
'show' => array(
'infinite_btn_hover' => ''
),
),
'infinite_btn_color' => array(
'type' => 'color',
'label' => __pl('btn_color_label'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-btn-load' => 'color: {{val}};'],
'req' => array(
'infinite_btn_type' => ['pagelayer-btn-custom','pagelayer-btn-anim'],
),
'show' => array(
'infinite_btn_hover' => ''
),
),
'infinite_btn_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay_label'),
'desc' => __pl('btn_hover_delay_desc'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} .pagelayer-btn-load' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => array(
'infinite_btn_type' => ['pagelayer-btn-custom','pagelayer-btn-anim'],
'infinite_btn_hover' => 'hover'
),
),
'infinite_btn_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_hover_label'),
'css' => [
'{{element}} .pagelayer-btn-custom:hover, {{element}} .pagelayer-btn-anim-slide:after' => 'background-color: {{val}};',
],
'req' => array(
'infinite_btn_type' => ['pagelayer-btn-custom','pagelayer-btn-anim'],
'!infinite_anim_type' => ['glow','thin'],
),
'show' => array(
'infinite_btn_hover' => 'hover',
'!infinite_anim_type' => ['glow','thin'],
),
),
'infinite_btn_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_color_hover_label'),
'css' => ['{{element}} .pagelayer-btn-load:hover' => 'color: {{val}};'],
'req' => array(
'infinite_btn_type' => ['pagelayer-btn-custom','pagelayer-btn-anim'],
),
'show' => array(
'infinite_btn_hover' => 'hover'
),
),
'infinite_btn_shadow' => [
'type' => 'box_shadow',
'label' => __pl('shadow'),
'css' => ['{{element}} .pagelayer-btn-load' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}} !important;'],
],
'infinite_btn_shadow_hover' => [
'type' => 'box_shadow',
'label' => __pl('box_shadow_hover'),
'css' => ['{{element}} .pagelayer-btn-load:hover' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}} !important;'],
],
'infinite_btn_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => [
'{{element}} .pagelayer-btn-load, {{element}} .pagelayer-btn-anim-thin:after, {{element}} .pagelayer-btn-anim-thin:before' => 'border-style: {{val}};',
'{{element}} .pagelayer-btn-anim-thin' => 'border-style: unset !important;',
],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'infinite_btn_hover' => ''
),
),
'infinite_btn_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-btn-load' => 'border-color: {{val}};'],
'req' => array(
'!infinite_btn_border_type' => ''
),
'show' => array(
'infinite_btn_hover' => ''
),
),
'infinite_btn_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-load, {{element}} .pagelayer-btn-anim-thin:after, {{element}} .pagelayer-btn-anim-thin:before' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!infinite_btn_border_type' => ''
],
'show' => ['infinite_btn_hover' => ''],
),
'infinite_btn_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-load, {{element}} .pagelayer-btn-anim-glow:before' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!infinite_btn_border_type' => '',
'!infinite_anim_type' => 'slide'
),
'show' => array(
'infinite_btn_hover' => '',
'!infinite_anim_type' => 'slide'
),
),
'infinite_btn_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => [
'{{element}} .pagelayer-btn-load:hover, {{element}} .pagelayer-btn-anim-thin:hover:after, {{element}} .pagelayer-btn-anim-thin:hover:before' => 'border-style: {{val}}',
'{{element}} .pagelayer-btn-anim-thin:hover' => 'border-style: unset !important;',
],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'infinite_btn_hover' => 'hover'
),
),
'infinite_btn_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color_hover_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-btn-load:hover' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'infinite_btn_hover' => 'hover'
),
),
'infinite_btn_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width_hover'),
'screen' => 1,
'css' => [
'{{element}} .pagelayer-btn-load:hover, {{element}} .pagelayer-btn-anim-thin:hover:after, {{element}} .pagelayer-btn-anim-thin:hover:before' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px;'
],
'req' => [
'!infinite_btn_border_type_hover' => ''
],
'show' => array(
'infinite_btn_hover' => 'hover'
),
),
'infinite_btn_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-load:hover, {{element}} .pagelayer-btn-anim-glow:before' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type_hover' => '',
'!anim_type' => 'slide'
),
'show' => array(
'infinite_btn_hover' => 'hover',
'!infinite_anim_type' => 'slide'
),
),
);
// Post More style
$pagelayer_more_style = [
'show_more' => array(
'type' => 'checkbox',
'label' => __pl('show'),
),
'more' => array(
'type' => 'text',
'label' => __pl('text'),
'default' => 'read more »',
'req' => ['show_more' => 'true'],
),
'more_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-wposts-more' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => ['show_more' => 'true'],
),
'full_width' => array(
'type' => 'checkbox',
'label' => __pl('stretch'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'width: 100%; text-align: center;'],
'req' => ['show_more' => 'true'],
),
'align' => array(
'type' => 'radio',
'label' => __pl('obj_align_label'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-mdiv' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
),
'req' => array(
'full_width' => '',
'show_more' => 'true',
)
),
'icon' => array(
'type' => 'icon',
'label' => __pl('service_box_font_icon_label'),
'req' => ['show_more' => 'true'],
),
'icon_position' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'pagelayer-btn-icon-left',
'list' => array(
'pagelayer-btn-icon-left' => __pl('left'),
'pagelayer-btn-icon-right' => __pl('right')
),
'req' => [
'show_more' => 'true',
'!icon' => ''
],
),
'icon_spacing' => array(
'type' => 'slider',
'label' => __pl('icon_spacing'),
'min' => 1,
'step' => 1,
'max' => 100,
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-icon' => 'padding: 0 {{val}}px;'],
'req' => array(
'!icon' => '',
'show_more' => 'true',
),
),
'btn_type' => array(
'type' => 'select',
'label' => __pl('button_type'),
//'addClass' => ['{{element}} .pagelayer-btn-holder' => '{{val}}'],
'list' => array(
'pagelayer-btn-link' => __pl('btn_type_link'),
'pagelayer-btn-default' => __pl('btn_type_default'),
'pagelayer-btn-primary' => __pl('btn_type_primary'),
'pagelayer-btn-secondary' => __pl('btn_type_secondary'),
'pagelayer-btn-success' => __pl('btn_type_success'),
'pagelayer-btn-info' => __pl('btn_type_info'),
'pagelayer-btn-warning' => __pl('btn_type_warning'),
'pagelayer-btn-danger' => __pl('btn_type_danger'),
'pagelayer-btn-dark' => __pl('btn_type_dark'),
'pagelayer-btn-light' => __pl('btn_type_light'),
'pagelayer-btn-custom' => __pl('btn_type_custom')
),
'req' => ['show_more' => 'true'],
),
'size' => array(
'type' => 'select',
'label' => __pl('button_size_label'),
'list' => array(
'pagelayer-btn-mini' => __pl('mini'),
'pagelayer-btn-small' => __pl('small'),
'pagelayer-btn-large' => __pl('large'),
'pagelayer-btn-extra-large' => __pl('extra_large'),
'pagelayer-btn-double-large' => __pl('double_large'),
'pagelayer-btn-custom' => __pl('custom'),
),
'req' => ['show_more' => 'true'],
),
'btn_custom_size' => array(
'type' => 'dimension',
'label' => __pl('btn_custom_size'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-more.pagelayer-btn-holder' => 'padding: {{val[0]}}px {{val[1]}}px;'],
'req' => array(
'size' => 'pagelayer-btn-custom',
'show_more' => 'true',
),
),
'btn_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
'show_more' => 'true',
),
),
'btn_bg_color' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_label'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'background-color: {{val}};'],
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
'show_more' => 'true',
),
'show' => array(
'btn_hover' => ''
),
),
'more_color' => array(
'type' => 'color',
'label' => __pl('color'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-more' => 'color:{{val}};'],
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
'show_more' => 'true',
),
'show' => array(
'btn_hover' => ''
),
),
'btn_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay_label'),
'desc' => __pl('btn_hover_delay_desc'),
'min' => 0,
'step' => 100,
'max' => 5000,
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => array(
'btn_hover' => 'hover'
),
'req' => ['show_more' => 'true'],
),
'btn_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_hover_label'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'background-color: {{val}};'],
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
'show_more' => 'true',
),
'show' => array(
'btn_hover' => 'hover'
),
),
'more_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wposts-more:hover' => 'color:{{val}};'],
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
'show_more' => 'true',
),
'show' => array(
'btn_hover' => 'hover'
),
),
];
// Post More style
$pagelayer_btn_border_style = [
'btn_bor_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'btn_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_bor_hover' => ''
)
),
'btn_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type' => ''
],
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_bor_hover' => 'hover'
)
),
'btn_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color_hover_label'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type_hover' => ''
],
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_bor_hover' => 'hover'
),
),
];
// Archives Post title
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_archive_title', array(
'name' => __pl('archive_title'),
'group' => 'archive',
'html' => '<div class="pagelayer-archive-title">'. pagelayer_get_the_title() .'</div>',
'params' => array(
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'np' => 1,
'list' => [
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
],
'css' => ['{{element}} .pagelayer-archive-title' => 'text-align: {{val}}'],
),
'color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-archive-title' => 'color:{{val}}'],
),
'typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-archive-title' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
)
)
);
// Archive Posts shows the posts as per the QUERY of the current page
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_archive_posts', array(
'name' => __pl('archive_posts'),
'group' => 'archive',
'html' => '{{pagelayer_pagination_top}}
<div class="pagelayer-posts-container">{{pagelayer_archive_posts}}</div>
{{pagelayer_pagination_bottom}}
<div if="{{infinite_types}}" class="pagelayer_load_button" data-text={{infinite_final}}>
<a class="pagelayer-btn-holder pagelayer-btn-load pagelayer-ele-link {{infinite_btn_type}} {{infinite_btn_size}} {{load_btn_icon_position}}">
<i if="{{load_btn_icon}}" class="{{load_btn_icon}} pagelayer-btn-load-icon"></i>
<span if="{{infinite_text}}" class="pagelayer-btn-load-text" >{{infinite_text}}</span>
<i if="{{load_btn_icon}}" class="{{load_btn_icon}} pagelayer-btn-load-icon"></i>
</a>
<div class="pagelayer-loader-holder" >
<i class="fa fa-spinner fa-spin fa-3x fa-fw" aria-hidden="true"></i>
</div>
</div>',
'params' => $pagelayer_posts_options,
'thumb_style' => $pagelayer_thumb_style,
'title_style' => $pagelayer_title_style,
'meta_options' => $pagelayer_meta_style,
'content_style' => $pagelayer_content_style,
'more_style' => $pagelayer_more_style,
'infinite' => $pagelayer_infinite_style,
'paginate_links' => array(
'pagination' => array(
'type' => 'select',
'label' => __pl('pagination'),
'default' => 'number_prev_next',
'list' => array(
'' => __pl('none'),
'number' => __pl('number'),
'number_prev_next' => __pl('number_prev_next'),
),
),
'pagination_on' => array(
'type' => 'select',
'label' => __pl('pagination_on'),
'list' => array(
'' => __pl('bottom'),
'top' => __pl('top'),
),
'req' => ['!pagination' => '']
),
'pagi_prev_text' => array(
'type' => 'text',
'label' => __pl('prev_text'),
'default' => 'Previous',
'req' => ['!pagination' => ['', 'number']]
),
'pagi_next_text' => array(
'type' => 'text',
'label' => __pl('next_text'),
'default' => 'Next',
'req' => ['!pagination' => ['', 'number']]
),
'pagi_end_size' => array(
'type' => 'spinner',
'label' => __pl('pagi_end_size'),
'default' => 1,
'req' => ['!pagination' => '']
),
'pagi_mid_size' => array(
'type' => 'spinner',
'label' => __pl('pagi_mid_size'),
'default' => 2,
'req' => ['!pagination' => '']
),
'before_page_number' => array(
'type' => 'text',
'label' => __pl('before_page_number'),
'req' => ['!pagination' => '']
),
'after_page_number' => array(
'type' => 'text',
'label' => __pl('after_page_number'),
'req' => ['!pagination' => '']
),
),
'paginate_links_style' => array(
'pagi_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .pagelayer-pagination' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
],
'req' => ['!pagination' => '']
),
'pagi_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-pagination' => 'text-align:{{val}}'],
'req' => ['!pagination' => '']
),
'pagi_colors' => array(
'type' => 'radio',
'label' => __pl('colors'),
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
'active' => __pl('active'),
),
'req' => ['!pagination' => '']
),
'pagi_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-pagination a.page-numbers' => 'color:{{val}}'],
'show' => [ 'pagi_colors' => 'normal'],
'req' => ['!pagination' => '']
),
'pagi_hover_color' => array(
'type' => 'color',
'label' => __pl('current_color'),
'css' => ['{{element}} .pagelayer-pagination a.page-numbers:hover' => 'color:{{val}}'],
'show' => [ 'pagi_colors' => 'hover'],
'req' => ['!pagination' => '']
),
'pagi_current_color' => array(
'type' => 'color',
'label' => __pl('current_color'),
'css' => ['{{element}} .pagelayer-pagination .current' => 'color:{{val}}'],
'show' => [ 'pagi_colors' => 'active']
),
'pagi_space_between' => array(
'type' => 'slider',
'label' => __pl('space_between'),
'css' => ['{{element}} .pagelayer-pagination .page-numbers:not(:last-child)' => 'margin-right:{{val}}px'],
'req' => ['!pagination' => '']
),
'pagi_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'css' => ['{{element}} .pagelayer-pagination' => 'padding:{{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => ['!pagination' => '']
),
),
'styles' => array(
'thumb_style' => __pl('thumb_style'),
'title_style' => __pl('title_style'),
'meta_options' => __pl('meta_options'),
'content_style' => __pl('content_style'),
'more_style' => __pl('more_style'),
'paginate_links' => __pl('paginate_links'),
'paginate_links_style' => __pl('paginate_links_style'),
'infinite' => __pl('infinite_scroll'),
),
)
);
// Site Title
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_wp_title', array(
'name' => __pl('Site Title'),
'group' => 'wordpress',
'html' => '<div class="pagelayer-wp-title-content">
<div class="pagelayer-wp-title-section">
<a href="'.get_site_url().'" class="pagelayer-wp-title-link pagelayer-ele-link">
<img if="{{site_logo}}" class="pagelayer-img pagelayer-wp-title-img" src="{{func_image}}" title="{{{logo_img-title}}}" alt="{{{logo_img-alt}}}"/>
<div class="pagelayer-wp-title-holder">
<div class="pagelayer-wp-title-heading">'.get_bloginfo( 'name' ).'</div>
<div if="{{site_desc}}" class="pagelayer-wp-title-desc">'.get_bloginfo( 'description' ).'</div>
</div>
</a>
</div>
<div>',
'params' => array(
'site_title_style' => array(
'type' => 'typography',
'label' => __pl('typography'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp-title-heading' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'site_title_state' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'title_color' => array(
'type' => 'color',
'label' => __pl('text_color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp-title-heading' => 'color:{{val}};'],
'show' => ['!site_title_state' => 'hover'],
),
'title_color_hover' => array(
'type' => 'color',
'label' => __pl('text_color'),
'css' => ['{{element}} .pagelayer-wp-title-heading:hover' => 'color:{{val}};'],
'show' => ['site_title_state' => 'hover'],
),
'title_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('service_icon_hover_delay'),
'min' => 0,
'step' => 100,
'max' => 5000,
'css' => ['{{element}} .pagelayer-wp-title-heading' => '-webkit-transition: all {{val}}ms; transition: all {{val}}ms;'],
'show' => ['site_title_state' => 'hover'],
),
'text-align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'center',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
),
'css' => ['{{element}} .pagelayer-wp-title-heading' => 'text-align:{{val}};'],
),
'title_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wp-title-heading' => 'padding: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
),
'disable_title' => array(
'type' => 'checkbox',
'label' => __pl('disable_title'),
'desc' => __pl('disable_title_exp'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp-title-holder' => 'display: none;'],
'req' => ['site_logo' => 'true']
),
),
'site_description' => array(
'site_desc' => array(
'type' => 'checkbox',
'label' => __pl('site_desc'),
'np' => 1,
),
'site_desc_style' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-wp-title-desc' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => ['site_desc' => 'true']
),
'site_desc_state' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => ['site_desc' => 'true']
),
'desc_color' => array(
'type' => 'color',
'label' => __pl('text_color'),
'css' => ['{{element}} .pagelayer-wp-title-desc' => 'color:{{val}};'],
'show' => ['site_desc_state' => 'normal'],
'req' => ['site_desc' => 'true']
),
'desc_color_hover' => array(
'type' => 'color',
'label' => __pl('text_color'),
'css' => ['{{element}} .pagelayer-wp-title-desc:hover' => 'color:{{val}};'],
'show' => ['site_desc_state' => 'hover'],
'req' => ['site_desc' => 'true']
),
'desc_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('service_icon_hover_delay'),
'min' => 0,
'step' => 100,
'max' => 5000,
'css' => ['{{element}} .pagelayer-wp-title-desc' => '-webkit-transition: all {{val}}ms; transition: all {{val}}ms;'],
'show' => ['site_desc_state' => 'hover'],
'req' => ['site_desc' => 'true']
),
'desc_text_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
),
'css' => ['{{element}} .pagelayer-wp-title-desc' => 'text-align:{{val}};'],
'req' => ['site_desc' => 'true']
),
'desc_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-wp-title-desc' => 'padding: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => ['site_desc' => 'true']
),
),
'logo_style' => array(
'site_logo' => array(
'type' => 'checkbox',
'label' => __pl('site_logo'),
'np' => 1,
//'desc' => __pl('site_logo_desc'),
),
'logo_img_type' => array(
'type' => 'select',
'label' => __pl('logo_img_type'),
'np' => 1,
'list' => array(
'' => __pl('default_logo'),
'custom-logo' => __pl('custom_logo'),
),
'req' => array(
'site_logo' => 'true'
)
),
'logo_img' => array(
'type' => 'image',
'label' => __pl('logo_select'),
'np' => 1,
'req' => array(
'site_logo' => 'true',
'logo_img_type' => 'custom-logo',
)
),
'logo_img_size' => array(
'type' => 'radio',
'label' => __pl('logo_size'),
'default' => 'full',
'list' => array(
'full' => __pl('full'),
'thumbnail' => __pl('thumbnail'),
'custom' => __pl('custom'),
),
'req' => array(
'site_logo' => 'true'
)
),
'logo_img_custom_size' => array(
'type' => 'slider',
'label' => __pl('logo_custom_size'),
'min' => 10,
'max' => 100,
'default' => 20,
'screen' => 1,
'css' => ['{{element}} .pagelayer-wp-title-img' => 'width:{{val}}%; height: auto;'],
'req' => array(
'logo_img_size' => 'custom',
'site_logo' => 'true'
)
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'left',
'list' => array(
'left' => __pl('left'),
'top' => __pl('top'),
'right' => __pl('right')
),
'addClass' => ['{{element}} .pagelayer-wp-title-link' => 'pagelayer-wp-title-align-{{val}}'],
'req' => array(
'site_logo' => 'true'
)
),
'vertical_align' => array(
'type' => 'radio',
'label' => __pl('vertical_alignment'),
'default' => 'middle',
'list' => array(
'top' => __pl('top'),
'middle' => __pl('middle'),
'bottom' => __pl('bottom')
),
'addClass' => ['{{element}} .pagelayer-wp-title-link' => 'pagelayer-wp-title-vertical-{{val}}'],
'req' => ['site_logo' => 'true',
'!align' => 'top']
),
),
'styles' => [
'site_description' => __pl('site_desc'),
'logo_style' => __pl('logo_style'),
]
)
);
// Copyright
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_copyright', array(
'name' => __pl('copyright'),
'group' => 'other',
'icon' => 'fa fa-copyright',
'html' => '<div class="pagelayer-copyright">
<a href="'.home_url().'">
{{copyright_text}}
</a>
</div>',
'params' => array(
'copyright_text' => array(
'type' => 'textarea',
'label' => __pl('text'),
'default' => pagelayer_get_option('pagelayer-copyright')
),
'color' => array(
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-copyright *, {{element}} .pagelayer-copyright' => 'color:{{val}}']
),
'typography' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-copyright *, {{element}} .pagelayer-copyright' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'screen' => 1,
'list' => [
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
],
'css' => ['{{element}} .pagelayer-copyright' => 'text-align: {{val}}'],
),
)
)
);
// Primary Menu
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_wp_menu', array(
'name' => __pl('primary_menu'),
'group' => 'wordpress',
'html' => '<div class="pagelayer-wp-menu-holder" data-layout="{{layout}}" data-submenu_ind="{{submenu_ind}}" data-drop_breakpoint="{{drop_breakpoint}}">
<div class="pagelayer-primary-menu-bar"><i class="{{menu_toggle_icon}}"></i></div>
<div class="pagelayer-wp-menu-container pagelayer-menu-type-{{layout}} pagelayer-menu-hover-{{pointer}} {{m_animation}} {{slide_style}}" data-align="{{align}}">
<div class="pagelayer-wp_menu-close"><i class="fas fa-times"></i></div>
{{nav_menu}}
</div>
</div>',
'params' => array(
'nav_list' => array(// Never use the same name as we are replacing in IMPORT
'type' => 'menus',
'label' => __pl('select_menu'),
'np' => 1,
'default' => pagelayer_get_menu_list(true),
'list' => pagelayer_get_menu_list(),
),
),
'menu_style' => [
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'np' => 1,
'default' => 'left',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-wp_menu-ul' => 'text-align:{{val}};'],
),
'layout' => array(
'type' => 'select',
'label' => __pl('layout'),
'default' => 'horizontal',
'list' => array(
'horizontal' => __pl('horizontal'),
'vertical' => __pl('vertical'),
'dropdown' => __pl('dropdown'),
),
),
'drop_breakpoint' => array(
'type' => 'select',
'label' => __pl('drop_breakpoint'),
'np' => 1,
'list' => array(
'none' => __pl('none'),
'mobile' => __pl('mobile'),
'tablet' => __pl('tablet'),
),
'req' => [ '!layout' => 'dropdown']
),
'pointer' => array(
'type' => 'select',
'label' => __pl('pointer'),
'default' => 'underline',
'list' => array(
'' => __pl('none'),
'underline' => __pl('underline'),
'overline' => __pl('overline'),
'doubleline' => __pl('double_line'),
'framed' => __pl('Framed'),
'background' => __pl('bg_color'),
'text' => __pl('text'),
),
),
'm_animation' => array(
'type' => 'select',
'label' => __pl('animation'),
'default' => 'slide',
'list' => array(
'none' => __pl('none'),
'fade' => __pl('fade'),
'slide' => __pl('slide'),
'grow' => __pl('Grow'),
'dropin' => __pl('drop_in'),
'dropout' => __pl('Drop_out'),
),
),
'list_style' => array(
'type' => 'select',
'label' => __pl('list_style'),
'np' => 1,
'default' => 'none',
'list' => array(
'none' => __pl('none'),
'circle' => __pl('list_list_type_circle'),
'decimal' => __pl('decimal'),
'square' => __pl('list_list_type_square'),
'disc' => __pl('list_list_type_disc'),
'inherit' => __pl('inherit'),
'upper-roman' => __pl('upper_roman'),
'upper-alpha' => __pl('upper_alpha'),
'lower-roman' => __pl('lower_roman'),
'lower-alpha' => __pl('lower_alpha'),
),
'css' => ['{{element}} .pagelayer-wp-menu-container li.menu-item' => 'list-style: {{val}};']
),
'submenu_ind' => array(
'type' => 'select',
'label' => __pl('sbmenu_indicator'),
'np' => 1,
'default' => 'caret-down',
'list' => array(
'' => __pl('none'),
'caret-down' => __pl('caret_down'),
'chevron-down' => __pl('chevron'),
'angle-down' => __pl('angle'),
'plus' => __pl('Plus'),
'arrow-down' => __pl('arrow_down'),
),
),
'submenu_anim' => array(
'type' => 'select',
'label' => __pl('submenu_anim'),
'np' => 1,
'list' => array(
'' => __pl('none'),
'pulse' => __pl('Pulse'),
'fade' => __pl('fade'),
'fadeindown' => __pl('fadeindown'),
'fadeinup' => __pl('fadeinup'),
'slideindown' => __pl('slideindown'),
'slideinup' => __pl('slideinup'),
'zoomin' => __pl('zoomin'),
'flip' => __pl('flip'),
),
'css' => ['{{element}} .pagelayer-active-sub-menu.pagelayer-mega-menu-item > .pagelayer-mega-menu,
:not(.pagelayer-ele-wrap) > {{element}} .pagelayer-menu-type-horizontal .pagelayer-mega-menu-item:hover > .pagelayer-mega-menu,
{{element}} .pagelayer-active-sub-menu:not(.pagelayer-mega-menu-item) > ul.sub-menu,
{{element}} .pagelayer-menu-type-horizontal .menu-item-has-children:not(.pagelayer-mega-menu-item, .pagelayer-mega-column-item .sub-menu li):hover > ul.sub-menu,
:not(.pagelayer-ele-wrap) > .pagelayer-wp_menu .pagelayer-menu-type-vertical[class*="pagelayer-submenu-position-"] .pagelayer-mega-menu-item:hover > .pagelayer-mega-menu,
{{element}} .pagelayer-menu-type-vertical[class*="pagelayer-submenu-position-"] .menu-item-has-children:not(.pagelayer-mega-menu-item, .pagelayer-mega-column-item .sub-menu li):hover > ul.sub-menu' => 'animation-name: pagelayer-submenu-{{val}};animation-duration: 300ms;animation-timing-function: linear; animation-iteration-count: 1;'],
),
'menu_colors' => array(
'type' => 'radio',
'label' => __pl('Background'),
'np' => 1,
//'no_val' => 1,// Dont set any value to element
'list' => [
'' => __pl('normal'),
'hover' => __pl('hover'),
'active' => __pl('active'),
],
),
'menu_color' => [
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp_menu-ul>li a:first-child' => 'color: {{val}};'],
'show' => ['menu_colors' => ''],
'screen' => 1
],
'menu_bg_color' => [
'type' => 'color',
'label' => __pl('p_bg_color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp_menu-ul>li' => 'background-color: {{val}};'],
'show' => ['menu_colors' => ''],
'screen' => 1
],
'menu_color_hover' => [
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp_menu-ul>li>a:hover' => 'color: {{val}};',
'{{element}} .pagelayer-wp_menu-ul>li.pagelayer-active-sub-menu>a:hover' => 'color: {{val}};'],
'show' => ['menu_colors' => 'hover'],
'screen' => 1
],
'menu_bg_color_hover' => [
'type' => 'color',
'label' => __pl('p_bg_color'),
'np' => 1,
'default' => '#00ccff',
'css' => ['{{element}} .pagelayer-menu-hover-background .pagelayer-wp_menu-ul>li:hover' => 'background-color: {{val}};','{{element}} .pagelayer-wp_menu-ul>li>a:hover:before' => 'background-color: {{val}};border-color:{{val}}',
'{{element}} .pagelayer-wp_menu-ul>li>a:hover:after' => 'background-color: {{val}};border-color:{{val}}',
'{{element}} .pagelayer-wp_menu-ul>li.pagelayer-active-sub-menu' => 'background-color: {{val}};'],
'show' => ['menu_colors' => 'hover'],
'screen' => 1
],
'menu_color_active' => [
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp_menu-ul>li.current-menu-item>a' => 'color: {{val}};'],
'show' => ['menu_colors' => 'active'],
'screen' => 1
],
'menu_bg_color_active' => [
'type' => 'color',
'label' => __pl('p_bg_color'),
'np' => 1,
'default' => '#00ccff',
'css' => ['{{element}} .pagelayer-wp_menu-ul>li.current-menu-item' => 'background-color: {{val}};'],
'show' => ['menu_colors' => 'active'],
'screen' => 1
],
'menu_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp-menu-container ul li.menu-item > a' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'menu_pointer_height' => [
'type' => 'slider',
'label' => __pl('pointer_height'),
'screen' => 1,
'min' => 1,
'max' => 50,
'css' => ['{{element}} .pagelayer-menu-hover-underline:not(.none) .pagelayer-wp_menu-ul>li>a:before, {{element}} .pagelayer-menu-hover-doubleline:not(.none) .pagelayer-wp_menu-ul>li>a:before, {{element}} .pagelayer-menu-hover-doubleline:not(.none) .pagelayer-wp_menu-ul>li>a:after, {{element}} .pagelayer-menu-hover-overline:not(.none) .pagelayer-wp_menu-ul>li>a:before' => 'height:{{val}}px;',
'{{element}} .pagelayer-menu-hover-framed .pagelayer-wp_menu-ul>li>a:hover:before' => 'border-width: {{val}}px'],
'show' => ['pointer' => ['underline', 'overline', 'doubleline', 'framed']],
],
'horizontal_padding' => [
'type' => 'slider',
'label' => __pl('horizontal_padding'),
'default' => 10,
'screen' => 1,
'css' => ['{{element}} .pagelayer-wp_menu-ul>li>a' => 'padding-left: {{val}}px;padding-right: {{val}}px;'],
],
'vertical_padding' => [
'type' => 'slider',
'label' => __pl('vertical_padding'),
'default' => 10,
'screen' => 1,
'css' => ['{{element}} .pagelayer-wp_menu-ul>li>a' => 'padding-top: {{val}}px;padding-bottom : {{val}}px;'],
],
],
'submenu_style' => [
'submenu_align' => array(
'type' => 'radio',
'label' => __pl('item_alignment'),
'np' => 1,
'default' => 'left',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} ul.sub-menu li>a' => 'justify-content:{{val}} !important;'],
),
'submenu_position' => [
'type' => 'radio',
'label' => __pl('position'),
'default' => 'left',
'list' => array(
'left' => __pl('left'),
'right' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-menu-type-horizontal .sub-menu' => '{{val}}:0px;', '{{element}} .pagelayer-menu-type-horizontal .sub-menu .sub-menu' => 'left:unset;{{val}}:100% !important;top:0px;'],
'req' => ['layout' => 'horizontal'],
],
'submenu_v_position' => [
'type' => 'radio',
'label' => __pl('position'),
'list' => array(
'' => __pl('Default'),
'left' => __pl('left'),
'right' => __pl('right'),
),
'addClass' => ['{{element}} .pagelayer-menu-type-vertical' => 'pagelayer-submenu-position-{{val}}'],
'req' => ['layout' => 'vertical'],
],
'submenu_colors' => array(
'type' => 'radio',
'label' => __pl('Background'),
'np' => 1,
//'no_val' => 1,// Dont set any value to element
'list' => [
'' => __pl('normal'),
'hover' => __pl('hover'),
'active' => __pl('active'),
],
),
'submenu_color' => [
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-wp-menu-container ul.sub-menu>li a' => 'color: {{val}};'],
'show' => ['submenu_colors' => ''],
'screen' => 1
],
'submenu_bg_color' => [
'type' => 'color',
'label' => __pl('bg_color'),
'np' => 1,
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-wp-menu-container ul.sub-menu' => 'background-color: {{val}};'],
'show' => ['submenu_colors' => ''],
'screen' => 1
],
'submenu_color_hover' => [
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp-menu-container ul.sub-menu>li a:hover' => 'color: {{val}};', '{{element}} .pagelayer-wp-menu-container ul.sub-menu>li.pagelayer-active-sub-menu a:hover' => 'color: {{val}};'],
'show' => ['submenu_colors' => 'hover'],
'screen' => 1
],
'submenu_bg_color_hover' => [
'type' => 'color',
'label' => __pl('bg_color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp-menu-container ul.sub-menu>li:hover' => 'background-color: {{val}};', '{{element}} .pagelayer-wp-menu-container ul.sub-menu>li.pagelayer-active-sub-menu' => 'background-color: {{val}};'],
'show' => ['submenu_colors' => 'hover'],
'screen' => 1
],
'submenu_color_active' => [
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp-menu-container ul.sub-menu>li.current-menu-item a' => 'color: {{val}};'],
'show' => ['submenu_colors' => 'active'],
'screen' => 1
],
'submenu_bg_color_active' => [
'type' => 'color',
'label' => __pl('bg_color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp-menu-container ul.sub-menu>li.current-menu-item' => 'background-color: {{val}};'],
'show' => ['submenu_colors' => 'active'],
'screen' => 1
],
'submenu_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'np' => 1,
'css' => ['{{element}} .pagelayer-wp-menu-container ul.sub-menu li a' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;']
),
'submenu_horizontal_padding' => [
'type' => 'slider',
'label' => __pl('horizontal_padding'),
'default' => 10,
'screen' => 1,
'css' => ['{{element}} .pagelayer-wp-menu-container ul.sub-menu li a' => 'padding-left: {{val}}px;padding-right: {{val}}px;'],
],
'submenu_vertical_padding' => [
'type' => 'slider',
'label' => __pl('vertical_padding'),
'default' => 10,
'screen' => 1,
'css' => ['{{element}} .pagelayer-wp-menu-container ul.sub-menu li a' => 'padding-top: {{val}}px;padding-bottom : {{val}}px;'],
],
'submenu_left_margin' => [
'type' => 'slider',
'label' => __pl('left_margin'),
'default' => 10,
'screen' => 1,
'css' => ['{{element}} .pagelayer-wp-menu-container .sub-menu a' => 'margin-left: {{val}}px;', '{{element}} .pagelayer-wp-menu-container .sub-menu .sub-menu a' => 'margin-left: calc(2 * {{val}}px);'],
],
'submenu_index' => [
'type' => 'slider',
'label' => __pl('z-index'),
'css' => ['{{element}} .menu-item .sub-menu, {{element}} .menu-item .pagelayer-mega-menu' => 'z-index:{{val}}'],
],
],
'menu_toggle' => [
'menu_toggle_icon' => array(
'type' => 'icon',
'label' => __pl('icon'),
'default' => 'fas fa-bars',
'addAttr' => ['{{element}} .pagelayer-primary-menu-bar i' => 'data-icon="{{menu_toggle_icon}}"'],
'desc' => __pl('menu_toggle_icon_desc')
),
'menu_toggle_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'np' => 1,
'default' => 'center',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-primary-menu-bar' => 'text-align:{{val}}'],
),
'menu_toggle_color' => array(
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-primary-menu-bar i' => 'color:{{val}}'],
),
'menu_toggle_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'np' => 1,
'default' => '#0986c050',
'css' => ['{{element}} .pagelayer-primary-menu-bar i' => 'background-color:{{val}}'],
),
'menu_toggle_size' => array(
'type' => 'slider',
'label' => __pl('font_size'),
'default' => 30,
'screen' => 1,
'css' => ['{{element}} .pagelayer-primary-menu-bar i' => 'font-size:{{val}}px'],
),
'menu_toggle_padding' => array(
'type' => 'dimension',
'label' => __pl('padding'),
'screen' => 1,
'units' => ['px', 'em', '%'],
'css' => ['{{element}} .pagelayer-primary-menu-bar i' => 'padding:{{val[0]}} {{val[1]}};'],
),
],
'dropdown_style' => [
'slide_style' => array(
'type' => 'select',
'label' => __pl('slide_style'),
'default' => 'pagelayer-wp_menu-right',
'list' => array(
'pagelayer-wp_menu-down' => __pl('slide-down'),
'pagelayer-wp_menu-right' => __pl('slide-right'),
'pagelayer-wp_menu-left' => __pl('slide-left'),
'pagelayer-wp_menu-full' => __pl('full_screen')
),
'req' => ['!drop_breakpoint' => 'none']
),
'dropdown_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'np' => 1,
'screen' => 1,
'list' => array(
'flex-start' => __pl('left'),
'center' => __pl('center'),
'flex-end' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-menu-type-dropdown .pagelayer-wp_menu-ul > li > a' => 'justify-content: {{val}};'],
),
'menu_width' => [
'type' => 'spinner',
'label' => __pl('width'),
'np' => 1,
'default' => 30,
'min' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-menu-type-dropdown' => 'width:{{val}}%;'],
'req' => [
'!drop_breakpoint' => 'none',
'!slide_style' => ['pagelayer-wp_menu-full','pagelayer-wp_menu-down']
]
],
'menu_down_width' => [
'type' => 'spinner',
'label' => __pl('width'),
'default' => 100,
'min' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-menu-type-dropdown' => 'width:{{val}}%;'],
'req' => [
'!drop_breakpoint' => 'none',
'slide_style' => 'pagelayer-wp_menu-down'
]
],
'menu_items_width' => [
'type' => 'spinner',
'label' => __pl('menu_items_width'),
'default' => 100,
'min' => 1,
'max' => 100,
'css' => ['{{element}} .pagelayer-menu-type-dropdown .pagelayer-wp_menu-ul' => 'width:{{val}}%;'],
'req' => [
'!drop_breakpoint' => 'none',
'!slide_style' => ['pagelayer-wp_menu-down']
]
],
'menu_posx' => array(
'type' => 'slider',
'label' => __pl('horizontal_pos'),
'screen' => 1,
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 0,
'css' => ['{{element}} .pagelayer-menu-type-dropdown .pagelayer-wp_menu-ul' => 'left: {{val}}%;'],
'req' => [
'!drop_breakpoint' => 'none',
'!slide_style' => 'pagelayer-wp_menu-down'
]
),
'menu_posy' => array(
'type' => 'slider',
'label' => __pl('verticle_postion'),
'screen' => 1,
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 8,
'css' => ['{{element}} .pagelayer-menu-type-dropdown .pagelayer-wp_menu-ul' => 'top: {{val}}%; transform: translateY(-{{val}}%);'],
'req' => [
'!drop_breakpoint' => 'none',
'!slide_style' => 'pagelayer-wp_menu-down'
]
),
'menu_bg' => array(
'type' => 'radio',
'label' => __pl('col_bg_styles'),
'np' => 1,
'default' => 'color',
'list' => array(
'' => __pl('none'),
'color' => __pl('color'),
'gradient' => __pl('gradient'),
),
'req' => ['!drop_breakpoint' => 'none']
),
'menu_items_bg' => array(
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-menu-type-dropdown' => 'background-color:{{val}}'],
'req' => [
'menu_bg' => 'color',
'!drop_breakpoint' => 'none'
],
),
'menu_items_gradient' => array(
'type' => 'gradient',
'label' => '',
'default' => '150,#44d3f6,23,#72e584,45,#2ca4eb,100',
'css' => ['{{element}} .pagelayer-menu-type-dropdown' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%);'],
'req' => [
'menu_bg' => 'gradient',
'!drop_breakpoint' => 'none'
],
),
],
'close_style' =>[
'close_size' => array(
'type' => 'slider',
'label' => __pl('font_size'),
'np' => 1,
'default' => 25,
'screen' => 1,
'css' => ['{{element}} .pagelayer-wp_menu-close i' => 'font-size:{{val}}px'],
'req' => ['!drop_breakpoint' => 'none'],
),
'close_padding' => array(
'type' => 'slider',
'label' => __pl('padding'),
'default' => 8,
'screen' => 1,
'css' => ['{{element}} .pagelayer-wp_menu-close i' => 'padding:{{val}}px'],
'req' => ['!drop_breakpoint' => 'none'],
),
'close_pos_x' => array(
'type' => 'slider',
'label' => __pl('horizontal_pos'),
'step' => 1,
'max' => 100,
'default' => 0,
'screen' => 1,
'css' => ['{{element}} .pagelayer-wp_menu-close i' => 'left:{{val}}%;'],
'req' => ['!drop_breakpoint' => 'none'],
),
'close_pos_y' => array(
'type' => 'slider',
'label' => __pl('verticle_postion'),
'step' => 1,
'max' => 100,
'default' => 0,
'screen' => 1,
'css' => ['{{element}} .pagelayer-wp_menu-close i' => 'top:{{val}}%;'],
'req' => ['!drop_breakpoint' => 'none'],
),
'close_state' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'close_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff68',
'css' => ['{{element}} .pagelayer-wp_menu-close i' => 'color:{{val}}'],
'req' => ['!drop_breakpoint' => 'none'],
'show' => ['close_state' => '']
),
'close_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#00000036',
'css' => ['{{element}} .pagelayer-wp_menu-close i' => 'background-color:{{val}}'],
'req' => ['!drop_breakpoint' => 'none'],
'show' => ['close_state' => '']
),
'close_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('delay'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 600,
'css' => ['{{element}} .pagelayer-wp_menu-close i' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => ['close_state' => 'hover']
),
'close_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-wp_menu-close i:hover' => 'color:{{val}}'],
'req' => ['!drop_breakpoint' => 'none'],
'show' => ['close_state' => 'hover']
),
'close_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#000000',
'css' => ['{{element}} .pagelayer-wp_menu-close i:hover' => 'background-color:{{val}}'],
'req' => ['!drop_breakpoint' => 'none'],
'show' => ['close_state' => 'hover']
),
],
'styles' => [
'menu_style' => __pl('menu_style'),
'submenu_style' => __pl('submenu_style'),
'menu_toggle' => __pl('toggle_style'),
'dropdown_style' => __pl('dropdown_style'),
'close_style' => __pl('close_style'),
]
)
);
// Menu items handler
// Created this shortcode only use for menus property
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_nav_menu_item', array(
'name' => __pl('Menu Items'),
'group' => 'other',
'not_visible' => 1,
'hide_active' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_wp_menu'],
'icon' => 'far fa-minus-square',
'holder' => '.pagelayer-menu-item-holder',
'has_group' => [
'section' => 'params',
'prop' => 'element',
],
'html' => '<div class="pagelayer-menu-item-holder"></div>',
'params' => array(
'title' => array(
'type' => 'text',
'label' => __pl('title'),
),
'menu_type' => array(
'type' => 'select',
'label' => __pl('menu_type'),
'desc' => __pl('menu_type_desc'),
'list' => array(
'' => __pl('flyout'),
'mega' => __pl('mega_menu'),
'column' => __pl('column_menu'),
),
'req' => ['menu_item_parent' => '0']
),
'element' => array(
'type' => 'group',
'label' => __pl('Inner Row'),
'sc' => PAGELAYER_SC_PREFIX.'_inner_row',
'count' => 1,
'item_label' => array(
'default' => __pl('Inner Row'),
),
'text' => __pl('Add new row'),
'req' => ['menu_type' => 'mega']
),
'columns' => array(
'type' => 'select',
'label' => __pl('columns_count'),
'screen' => 1,
'css' => ['.menu-item-{{ID}} > .sub-menu' => 'columns: {{val}}'],
'list' => array(
'' => __pl('default'),
1 => '1',
2 => '2',
3 => '3',
4 => '4',
5 => '5',
6 => '6',
7=> '7',
8 => '8',
9 => '9',
10 => '10'
),
'req' => ['menu_type' => 'column']
),
'col_gap' => array(
'type' => 'slider',
'label' => __pl('col_gap'),
'min' => 0,
'max' => 100,
'screen' => 1,
'css' => ['.menu-item-{{ID}} > .sub-menu' => 'column-gap: {{val}}px;'],
'req' => ['menu_type' => 'column']
),
'mega_width' => array(
'type' => 'select',
'label' => __pl('mega_width'),
'list' => array(
'' => __pl('menu_container'),
'row_container' => __pl('row_container'),
'custom' => __pl('custom'),
),
'addAttr' => 'pagelayer-mega-width="{{mega_width}}"',
'req' => ['!menu_type' => '']
),
'mega_custom_width' => array(
'type' => 'spinner',
'label' => __pl('mega_custom_width'),
'default' => '800',
'addAttr' => 'pagelayer-mega-custom-width="{{mega_custom_width}}"',
'req' => ['mega_width' => 'custom', '!menu_type' => '']
),
'menu_icon' => array(
'type' => 'icon',
'label' => __pl('icon'),
),
),
'menu_setting' => array(
'disable_link' => array(
'type' => 'checkbox',
'label' => __pl('disable_link'),
),
'hide_text' => array(
'type' => 'checkbox',
'label' => __pl('hide_text'),
'css' => ['.menu-item-{{ID}} > a .pagelayer-nav-menu-title' => 'display:none']
),
'icon_position' => array(
'type' => 'select',
'label' => __pl('icon_position'),
'list' => array(
'' => __pl('left'),
'right' => __pl('right'),
),
),
),
'highlight' => array(
'highlight_label' => array(
'type' => 'text',
'label' => __pl('highlight_label'),
),
'highlight_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['.menu-item-{{ID}} > a .pagelayer-menu-highlight' => 'background:{{val}}']
),
'highlight_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.menu-item-{{ID}} > a .pagelayer-menu-highlight' => 'color:{{val}}']
),
),
'styles' => array(
'menu_setting' => __pl('menu_setting'),
'highlight' => __pl('highlight_label'),
),
)
);
// Breadcrumb
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_breadcrumb', array(
'name' => __pl('breadcrumb'),
'group' => 'other',
'html' => '<span if="{{prefix}}" class="pagelayer-breadcrumb-prefix">{{prefix}}</span>
<span class="pagelayer-breadcrumb-section">'.
pagelayer_get_breadcrumb().
'</span>',
//'html' => yoast_breadcrumb( '<p id="breadcrumbs">','</p>' ).pagelayer_get_breadcrumb(),
'params' => array(
'home' => array(
'type' => 'text',
'label' => __pl('home_label'),
'np' => 1,
'default' => 'Home',
),
'breadcrumb_color' => array(
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-breadcrumb-section a' => 'color:{{val}};']
),
'breadcrumb_hover' => array(
'type' => 'color',
'label' => __pl('hovered_color'),
'css' => ['{{element}} .pagelayer-breadcrumb-section a:hover' => 'color:{{val}};']
),
'cur_color' => array(
'type' => 'color',
'label' => __pl('cur_color'),
'css' => ['{{element}} .pagelayer-breadcrumb-section' => 'color:{{val}};']
),
'typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-breadcrumb-section' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'alignment' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'center',
'screen' => 1,
'css' =>'text-align:{{val}};',
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
),
),
'prefix_style' => [
'prefix' => array(
'type' => 'text',
'label' => __pl('breadcrumb_prefix'),
),
'search_prefix' => array(
'type' => 'text',
'label' => __pl('search_prefix'),
),
'404_prefix' => array(
'type' => 'text',
'label' => __pl('404_prefix'),
),
'prefix_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-breadcrumb-prefix' => 'color:{{val}};']
),
'prefix_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-breadcrumb-prefix' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
],
'separator_style' => [
'separator' => array(
'type' => 'text',
'label' => __pl('separator_style'),
'default' => ' » ',
),
'separator_color' => array(
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'default' => '#333333',
'css' => ['{{element}} .pagelayer-breadcrumb-sep' => 'color:{{val}};']
),
],
'styles' => [
'prefix_style' => __pl('prefix_style'),
'separator_style' => __pl('separator_style'),
]
)
);
// Contact Form
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_contact', array(
'name' => __pl('contact_form'),
'group' => 'other',
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
'holder' => '.pagelayer-contact-holder',
'html' => '<div class="pagelayer-contact-form-div pagelayer-contact-form-holder">
<div class="pagelayer-message-box pagelayer-message-top"></div>
<div if={{note}} class="pagelayer-contact-form-note">{{note}}</div>
<form class="pagelayer-contact-form" id="{{form}}" name="{{name}}" onsubmit="return pagelayer_contact_submit(this, event)" method="POST">
<div class="pagelayer-contact-holder">
</div>
<input type="hidden" name="cfa-pagelayer-id"/>
<input if="{{con_post_id}}" type="hidden" name="cfa-post-id" value="{{con_post_id}}"/>
<input if="{{contact_custom_templ}}" type="hidden" name="cfa-custom-template" value="{{contact_custom_templ}}"/>
<input if="{{redirect_url}}" type="hidden" name="cfa-redirect" value="{{{redirect_url}}}"/>
<div class="g-recaptcha pagelayer-recaptcha" data-sitekey="{{grecaptcha}}" if="{{grecaptcha_v2}}"></div>
<input type="hidden" name="g-recaptcha-response" data-version="v3" class="pagelayer-g-recaptcha-v3-token" data-sitekey="{{grecaptcha}}" if="{{grecaptcha_v3}}"/>
<div class="pagelayer-contact-submit-holder">
<button if="{{submit}}" type="submit" form="{{form}}" class="pagelayer-contact-submit-btn pagelayer-btn-holder pagelayer-ele-link {{type}} {{size}} {{icon_position}}">
<i class="fa fa-circle-o-notch fa-spin" style="display:none;margin-right:5px;"></i>
<i if="{{icon}}" class="{{icon}} pagelayer-btn-icon pagelayer-cf-icon-left"></i>
<span if="{{submit}}" class="pagelayer-btn-text">{{submit}}</span>
<i if="{{icon}}" class="{{icon}} pagelayer-btn-icon pagelayer-cf-icon-right"></i>
</button>
</div>
</form>
<div class="pagelayer-message-box pagelayer-message-bottom"></div>
</div>',
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('Label'),
'sc' => PAGELAYER_SC_PREFIX.'_contact_item',
'item_label' => array(
'default' => __pl('Label'),
'param' => 'label_name'
),
'count' => 1,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('field_name'))),
),
'redirect_show' => array(
'type' => 'checkbox',
'label' => __pl('redirect_url'),
),
'redirect_url' => array(
'type' => 'link',
'label' => __pl('redirect_urllabel'),
'desc' => __pl('redirect_urldesc'),
'req' => array(
'redirect_show' => 'true'
)
),
'captcha' => array(
'type' => 'checkbox',
'label' => __pl('use_recaptcha'),
'default' => '',
'desc' => __pl('use_recaptcha_desc'),
),
'form' => array(
'type' => 'text',
'label' => __pl('form_id'),
'desc' => __pl('form_id_desc'),
'default' => 'contact-form',
'np' => 1
),
'name' => array(
'type' => 'text',
'label' => __pl('form_name'),
'default' => 'Contact Form',
'desc' => __pl('form_name_desc'),
'np' => 1
),
'form_position' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'default',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
),
'css' => ['{{element}} .pagelayer-contact-form' => 'text-align: {{val}}'],
),
'note' => array(
'type' => 'text',
'label' => __pl('note'),
'edit' => '.pagelayer-contact-form-note',
),
'note_color' => array(
'type' => 'color',
'label' => __pl('note_color'),
'css' => ['{{element}} .pagelayer-contact-form-note' => 'color:{{val}}'],
),
),
'label_style' =>[
'form_label_color' => array(
'type' => 'color',
'label' => __pl('label_color'),
'default' => '',
'show' => ['field_state' => ''],
'css' => ['{{element}} label' => 'color: {{val}}'],
),
'label_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} label' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'space_label' => array(
'type' => 'padding',
'label' => __pl('space_between'),
'default' => ',,10,',
'screen' => 1,
'css' => ['{{element}} label' => 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[2]}}px; padding-left:{{val[3]}}px;'],
),
'form_placeholder_color' => array(
'type' => 'color',
'label' => __pl('placeholder_color'),
'default' => '',
'show' => ['field_state' => ''],
'css' => ['{{element}} ::placeholder' => 'color: {{val}}'],
),
'placeholder_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} ::placeholder' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
],
'input_style' => [
'input_state' => array(
'type' => 'radio',
'label' => __pl('state'),
'np' => 1,
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'form_input_color' => array(
'type' => 'color',
'label' => __pl('text_color'),
'css' => [
'{{element}} textarea, {{element}} input, {{element}} select, {{element}} date' => 'color: {{val}}'
],
'req' => array(
'input_state' => 'normal'
),
),
'form_input_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => [
'{{element}} textarea, {{element}} input, {{element}} select, {{element}} date' => 'background-color: {{val}}',
],
'req' => array(
'input_state' => 'normal',
),
),
'input_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('input_hover_delay_label'),
'min' => 0,
'step' => 100,
'max' => 5000,
'css' => ['{{element}} textarea:hover, {{element}} input:hover, {{element}} select:hover, {{element}} date:hover' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => array(
'input_state' => 'hover'
),
),
'form_input_color_hover' => array(
'type' => 'color',
'label' => __pl('text_color'),
'css' => [
'{{element}} textarea:hover, {{element}} input:hover, {{element}} select:hover, {{element}} date:hover' => 'color: {{val}}'
],
'req' => array(
'input_state' => 'hover'
),
),
'form_input_bg_hover' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => [
'{{element}} textarea:hover, {{element}} input:hover, {{element}} select:hover, {{element}} date:hover' => 'background-color: {{val}}'
],
'req' => array(
'input_state' => 'hover'
),
),
'input_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} select, {{element}} input,{{element}} textarea' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'input_height' => array(
'type' => 'spinner',
'label' => __pl('text_field_height'),
'min' => 1,
'max' => 1000,
'step' => 1,
'screen' => 1,
'css' => [
'{{element}} input, {{element}} select, {{element}} textarea'=> 'line-height: {{val}}px; min-height: {{val}}px',
],
),
'input_padding' => array(
'type' => 'dimension',
'label' => __pl('padding'),
'screen' => 1,
'default' => '10,10',
'css' => [
'{{element}} input, {{element}} select, {{element}} textarea'=> 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[0]}}px; padding-left:{{val[1]}}px',
],
),
/* 'input_state' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
'list' => [
'' => __pl('normal'),
'hover' => __pl('hover'),
],
), */
],
'form_style' => [
'field_state' => array(
'type' => 'radio',
'label' => '',
'np' => 1,
'default' => '',
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
'focus' => __pl('focus'),
),
),
'field_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => [
'{{element}} input, {{element}} select, {{element}} textarea' => 'border-style: {{val}}',
'{{element}} input[type="checkbox"] + label:before' => 'border-style: {{val}}'
],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'field_state' => ''
),
),
'field_border_color' => array(
'type' => 'color',
'label' => __pl('service_box_icon_border_color_label'),
'default' => '#0986c0',
'css' => [
'{{element}} input, {{element}} select, {{element}} textarea' => 'border-color: {{val}};',
'{{element}} input[type="checkbox"] + label:before' => 'border-color: {{val}};'
],
'req' => array(
'!field_border_type' => ''
),
'show' => array(
'field_state' => ''
),
),
'field_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} input, {{element}} select, {{element}} textarea, {{element}} input[type="checkbox"] + label:before' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!field_border_type' => ''
],
'show' => array(
'field_state' => ''
),
),
'field_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} input, {{element}} select, {{element}} textarea' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!field_border_type' => ''
),
'show' => array(
'field_state' => ''
),
),
'field_shadow' => array(
'type' => 'box_shadow',
'label' => __pl('shadow'),
'screen' => 1,
'css' => [
'{{element}} input, {{element}} select, {{element}} textarea, {{element}} input[type="checkbox"] + label:before' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}} !important;'
],
'show' => ['field_state' => ''],
),
'field_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('service_btn_hover_delay'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} input, {{element}} select, {{element}} textarea' => '-webkit-transition: all {{val}}ms; transition: all {{val}}ms;'],
'show' => array(
'field_state' => 'hover'
),
),
'field_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} input:hover, {{element}} select:hover, {{element}} textarea:hover' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'field_state' => 'hover'
),
),
'field_border_color_hover' => array(
'type' => 'color',
'label' => __pl('service_box_icon_border_color_label'),
'css' => ['{{element}} input:hover, {{element}} select:hover, {{element}} textarea:hover' => 'border-color: {{val}};'],
'default' => '#0986c0',
'req' => array(
'!field_border_type_hover' => ''
),
'show' => array(
'field_state' => 'hover'
),
),
'field_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} input:hover, {{element}} select:hover, {{element}} textarea:hover' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!field_border_type_hover' => ''
],
'show' => array(
'field_state' => 'hover'
),
),
'field_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} input:hover, {{element}} select:hover, {{element}} textarea:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!field_border_type_hover' => ''
),
'show' => array(
'field_state' => 'hover'
),
),
'field_shadow_hover' => array(
'type' => 'box_shadow',
'label' => __pl('text_shadow'),
'screen' => 1,
'css' => [
'{{element}} input:hover, {{element}} select:hover, {{element}} textarea:hover' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}} !important;'
],
'show' => ['field_state' => 'hover'],
),
'field_border_type_focus' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} input:focus, {{element}} select:focus, {{element}} textarea:focus' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'field_state' => 'focus'
),
),
'field_border_color_focus' => array(
'type' => 'color',
'label' => __pl('service_box_icon_border_color_label'),
'css' => ['{{element}} input:focus, {{element}} select:focus, {{element}} textarea:focus' => 'border-color: {{val}};'],
'default' => '#0986c0',
'req' => array(
'!field_border_type_focus' => ''
),
'show' => array(
'field_state' => 'focus'
),
),
'field_border_width_focus' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} input:focus, {{element}} select:focus, {{element}} textarea:focus' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!field_border_type_focus' => ''
],
'show' => array(
'field_state' => 'focus'
),
),
'field_border_radius_focus' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} input:focus, {{element}} select:focus, {{element}} textarea:focus' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!field_border_type_focus' => ''
),
'show' => array(
'field_state' => 'focus'
),
),
'field_shadow_focus' => array(
'type' => 'box_shadow',
'label' => __pl('text_shadow'),
'screen' => 1,
'css' => [
'{{element}} input:focus, {{element}} select:focus, {{element}} textarea:focus' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}} !important;'
],
'show' => ['field_state' => 'focus'],
),
],
'radio_style' => [
'form_box_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '',
'css' => [
'{{element}} input[type="radio"]:checked:before' => 'color: {{val}}',
'{{element}} input[type="checkbox"]:checked + label:before' => 'color: {{val}}'
],
),
'form_box_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '',
'css' => [
'{{element}} input[type="radio"]:checked:before' => 'background-color: {{val}}',
'{{element}} input[type="checkbox"]:checked + label:before' => 'background-color: {{val}}'
],
),
'inline_radio' => array(
'type' => 'checkbox',
'label' => __pl('inline'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-radcheck-holder' => 'display:flex; align-items:center;']
),
'radio_padding' => array(
'type' => 'dimension',
'label' => __pl('padding'),
'screen' => 1,
'default' => '10,10',
'css' => [
'{{element}} input[type="checkbox"] + label:before, {{element}} input[type="radio"]'=> 'height:{{val[0]}}px; min-height:{{val[0]}}px; width:{{val[1]}}px;',
],
),
'radio_spacing' => array(
'type' => 'padding',
'label' => __pl('space_around'),
'screen' => 1,
'css' => [
'{{element}} .pagelayer-radcheck-holder>div'=> 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[2]}}px; padding-left:{{val[3]}}px;',
],
),
],
'button_style' => [
'hide_btn' => array(
'type' => 'checkbox',
'label' => __pl('hide_btn'),
),
'submit' => array(
'type' => 'text',
'label' => __pl('submit_button_label'),
'default' => 'Submit',
'edit' => '.pagelayer-btn-text',
'req' => ['!hide_btn' => 'true'],
),
'btn_typo' => array(
'type' => 'typography',
'label' => __pl('quote_content_typo'),
'css' => [
'{{element}} .pagelayer-btn-text' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'{{element}} .pagelayer-btn-holder' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
],
'req' => ['!hide_btn' => 'true'],
),
'stretch' => array(
'type' => 'checkbox',
'label' => __pl('stretch_button_label'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-contact-submit-btn' => 'width: 100%'],
'req' => ['!hide_btn' => 'true'],
),
'btn_spacing' => array(
'type' => 'padding',
'label' => __pl('spacing'),
'css' => ['{{element}} .pagelayer-contact-submit-btn' => 'margin-top:{{val[0]}}px; margin-right:{{val[1]}}px; margin-bottom:{{val[2]}}px; margin-left:{{val[3]}}px;'],
'req' => [
'!hide_btn' => 'true',
]
),
'type' => array(
'type' => 'select',
'label' => __pl('button_type_label'),
'default' => 'pagelayer-btn-default',
//'addClass' => ['{{element}} .pagelayer-btn-holder' => '{{val}}'],
'list' => array(
'pagelayer-btn-default' => __pl('btn_type_default'),
'pagelayer-btn-primary' => __pl('btn_type_primary'),
'pagelayer-btn-secondary' => __pl('btn_type_secondary'),
'pagelayer-btn-success' => __pl('btn_type_success'),
'pagelayer-btn-info' => __pl('btn_type_info'),
'pagelayer-btn-warning' => __pl('btn_type_warning'),
'pagelayer-btn-danger' => __pl('btn_type_danger'),
'pagelayer-btn-dark' => __pl('btn_type_dark'),
'pagelayer-btn-light' => __pl('btn_type_light'),
'pagelayer-btn-link' => __pl('btn_type_link'),
'pagelayer-btn-custom' => __pl('btn_type_custom')
),
'req' => ['!hide_btn' => 'true'],
),
'size' => array(
'type' => 'select',
'label' => __pl('button_size_label'),
'default' => 'pagelayer-btn-small',
'list' => array(
'pagelayer-btn-mini' => __pl('mini'),
'pagelayer-btn-small' => __pl('small'),
'pagelayer-btn-large' => __pl('large'),
'pagelayer-btn-extra-large' => __pl('extra_large'),
'pagelayer-btn-double-large' => __pl('double_large'),
'pagelayer-btn-custom' => __pl('custom'),
),
'req' => ['!hide_btn' => 'true'],
),
'btn_custom_size' => array(
'type' => 'dimension',
'label' => __pl('btn_custom_size'),
'default' => '5,10',
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[0]}}px; padding-left:{{val[1]}}px;'],
'req' => array(
'size' => 'pagelayer-btn-custom',
'!hide_btn' => 'true'
),
),
'contect_btn_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-contact-submit-holder' => 'text-align:{{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'req' => ['!hide_btn' => 'true'],
),
'btn_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => array(
'type' => 'pagelayer-btn-custom',
'!hide_btn' => 'true'
),
),
'btn_bg_color' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_label'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-btn-holder' => 'background-color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => '',
'!hide_btn' => 'true'
),
),
'btn_color' => array(
'type' => 'color',
'label' => __pl('btn_color_label'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-btn-holder' => 'color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => '',
'!hide_btn' => 'true'
),
),
'btn_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay_label'),
'desc' => __pl('btn_hover_delay_desc'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} .pagelayer-btn-holder' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => array(
'btn_hover' => 'hover',
'!hide_btn' => 'true'
),
),
'btn_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_hover_label'),
'default' => '',
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'background-color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => 'hover',
'!hide_btn' => 'true'
),
),
'btn_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_color_hover_label'),
'default' => '',
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => 'hover',
'!hide_btn' => 'true'
),
),
],
'icon_style' => [
'icon' => array(
'type' => 'icon',
'label' => __pl('service_box_font_icon_label'),
'default' => '',
),
'icon_position' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'pagelayer-btn-icon-left',
'list' => array(
'pagelayer-btn-icon-left' => __pl('left'),
'pagelayer-btn-icon-right' => __pl('right')
),
'req' => array(
'!icon' => ''
),
),
'icon_spacing' => array(
'type' => 'slider',
'label' => __pl('icon_spacing'),
'min' => 1,
'step' => 1,
'max' => 100,
'default' => 5,
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-icon' => 'padding: 0 {{val}}px;'],
'req' => array(
'!icon' => ''
),
),
],
'border_style' => [
'btn_bor_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'np' => 1,
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'btn_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type' => ''
],
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color_hover_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type_hover' => ''
],
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_bor_hover' => 'hover'
),
),
],
'message_style' => array(
'show_msg_box' => array(
'type' => 'checkbox',
'label' => __pl('show_msg_box'),
'desc' => __pl('show_msg_box_desc')
),
'message_pos' => array(
'type' => 'radio',
'label' => __pl('position'),
'list' => array(
'' => __pl('top'),
'bottom' => __pl('bottom'),
),
'addClass' => 'pagelayer-message-box-{{val}}'
),
'msg_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'css' => ['{{element}} .pagelayer-cf-msg-suc, {{element}} .pagelayer-cf-msg-err' => 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[2]}}px; padding-left:{{val[3]}}px;'],
),
'msg_margin' => array(
'type' => 'padding',
'label' => __pl('margin'),
'css' => ['{{element}} .pagelayer-cf-msg-suc, {{element}} .pagelayer-cf-msg-err' => 'margin-top:{{val[0]}}px; margin-right:{{val[1]}}px; margin-bottom:{{val[2]}}px; margin-left:{{val[3]}}px;'],
),
'msg_type' => array(
'type' => 'radio',
'label' => __pl(' '),
'list' => array(
'success' => __pl('Success'),
'failed' => __pl('failed')
)
),
'msg_success_color' => array(
'type' => 'color',
'label' => __pl('text_color'),
'css' => [
'{{element}} .pagelayer-cf-msg-suc' => 'color: {{val}}'
],
'show' => array(
'msg_type' => 'success'
),
),
'msg_success_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => [
'{{element}} .pagelayer-cf-msg-suc' => 'background-color: {{val}}',
],
'show' => array(
'msg_type' => 'success'
),
),
'succ_msg_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => [
'{{element}} .pagelayer-cf-msg-suc' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'msg_type' => 'success'
)
),
'succ_msg_border_color' => array(
'type' => 'color',
'label' => __pl('service_box_icon_border_color_label'),
'default' => '#0986c0',
'css' => [
'{{element}} .pagelayer-cf-msg-suc' => 'border-color: {{val}};'
],
'req' => array(
'!succ_msg_border_type' => ''
),
'show' => array(
'msg_type' => 'success'
),
),
'succ_msg_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-cf-msg-suc' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => array(
'!succ_msg_border_type' => ''
),
'show' => array(
'msg_type' => 'success'
),
),
'succ_msg_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-cf-msg-suc' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!succ_msg_border_type' => ''
),
'show' => array(
'msg_type' => 'success'
),
),
'msg_failed_color' => array(
'type' => 'color',
'label' => __pl('text_color'),
'css' => [
'{{element}} .pagelayer-cf-msg-err' => 'color: {{val}}'
],
'show' => array(
'msg_type' => 'failed'
),
),
'msg_failed_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => [
'{{element}} .pagelayer-cf-msg-err' => 'background-color: {{val}}',
],
'show' => array(
'msg_type' => 'failed'
),
),
'fail_msg_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => [
'{{element}} .pagelayer-cf-msg-err' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'msg_type' => 'failed'
),
),
'fail_msg_border_color' => array(
'type' => 'color',
'label' => __pl('service_box_icon_border_color_label'),
'default' => '#0986c0',
'css' => [
'{{element}} .pagelayer-cf-msg-err' => 'border-color: {{val}};'
],
'req' => array(
'!fail_msg_border_type' => ''
),
'show' => array(
'msg_type' => 'failed'
),
),
'fail_msg_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-cf-msg-err' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => array(
'!fail_msg_border_type' => ''
),
'show' => array(
'msg_type' => 'failed'
),
),
'fail_msg_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-cf-msg-err' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => ['!fail_msg_border_type' => ''],
'show' => ['msg_type' => 'failed'],
)
),
'mail_template' => array(
'contact_custom_templ' => array(
'type' => 'checkbox',
'label' => __pl('custom_templ'),
),
'templ_modal' => array(
'type' => 'modal',
'label' => __pl('create_mail_templ'),
'show_group' => 'contact_templ_modal',
'req' => ['contact_custom_templ' => 'true'],
),
'to_email' => array(
'type' => 'text',
'label' => __pl('to_email'),
'group' => 'contact_templ_modal',
'req' => ['contact_custom_templ' => 'true'],
),
'from_email' => array(
'type' => 'text',
'label' => __pl('from_email'),
'group' => 'contact_templ_modal',
'req' => ['contact_custom_templ' => 'true'],
),
'cont_subject' => array(
'type' => 'text',
'label' => __pl('subject'),
'group' => 'contact_templ_modal',
'req' => ['contact_custom_templ' => 'true'],
),
'cont_header' => array(
'type' => 'textarea',
'label' => __pl('additional_head'),
'group' => 'contact_templ_modal',
'req' => ['contact_custom_templ' => 'true'],
),
'cont_body' => array(
'type' => 'textarea',
'label' => __pl('message_body'),
'desc' => __pl('usr_field_desc'),
'rows' => 4,
'group' => 'contact_templ_modal',
'req' => ['contact_custom_templ' => 'true'],
),
'cont_use_html' => array(
'type' => 'checkbox',
'label' => __pl('use_html'),
'group' => 'contact_templ_modal',
'req' => ['contact_custom_templ' => 'true'],
),
),
'styles' => [
'label_style' => __pl('label_style'),
'input_style' => __pl('input_style'),
'radio_style' => __pl('radio_style'),
'form_style' => __pl('form_style'),
'button_style' => __pl('button_style'),
'icon_style' => __pl('icon_style'),
'border_style' => __pl('btn_border_style'),
'message_style' => __pl('message_style'),
'mail_template' => __pl('mail_template'),
]
)
);
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_contact_item', array(
'name' => __pl('contact_item'),
'group' => 'other',
'not_visible' => 1,
'html' => '{{fieldhtml}}',
'parent' => [PAGELAYER_SC_PREFIX.'_contact'],
'params' => array(
'label_name' => array(
'type' => 'text',
'label' => __pl('label_name'),
'default' => 'Input Label',
'edit' => '.pagelayer-form-label',
'keep_prop' => 1, // Prevent to remove props in gutenburg
'np' => 1
),
'field_type' => array(
'type' => 'select',
'label' => __pl('input_field_type'),
'default' => 'text',
'list' => array(
'text' => __pl('text'),
'email' => __pl('e-mail'),
'number' => __pl('number'),
'tel' => __pl('telephone'),
'checkbox' => __pl('checkbox'),
'radio' => __pl('radio'),
'textarea' => __pl('textarea'),
'select' => __pl('select'),
'date' => __pl('date'),
'file' => __pl('file'),
'label' => __pl('label'),
),
'np' => 1
),
'values' => array(
'type' => 'textarea',
'label' => __pl('values'),
'default' => "One\nTwo",
'show' => array(
'field_type' => ['select', 'checkbox', 'radio']
),
'np' => 1
),
'textarea_rows' => array(
'type' => 'spinner',
'label' => __pl('row'),
'default' => 6,
'min' => 1,
'max' => 100,
'screen' => 1,
'req' => array(
'field_type' => ['textarea']
),
'np' => 1
),
'accept_file' => array(
'type' => 'text',
'label' => __pl('accept_file'),
'req' => array(
'field_type' => ['file']
),
'np' => 1
),
'required' => array(
'type' => 'checkbox',
'label' => __pl('required_label'),
'default' => '',
),
'label_as_holder' => array(
'type' => 'checkbox',
'label' => __pl('show_label_as_placeholder'),
'default' => '',
'req' => ['!field_type' => ['label']],
),
'placeholder' => array(
'type' => 'text',
'label' => __pl('placeholder'),
'default' => '',
'req' => ['!field_type' => ['label']],
'show' => ['!label_as_holder' => 'true'],
),
'field_name' => array(
'type' => 'text',
'label' => __pl('input_field_name'),
'np' => 1,
'default' => 'Fieldname',
'req' => ['!field_type' => ['label']],
),
'field_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'default' => 100,
'min' => 1,
'max' => 100,
'screen' => 1,
'css' => ['{{wrap}}' => 'width:{{val}}%'],
),
'field_display' => array(
'type' => 'select',
'label' => __pl('display'),
'screen' => 1,
'default' => '',
'css' => ['{{wrap}}' => 'display:{{val}}'],
'list' => array(
'' => __pl('full'),
'inline-block' => __pl('inline'),
),
),
'space_between' => array(
'type' => 'padding',
'label' => __pl('space_between'),
'default' => ',,10,',
'screen' => 1,
'css' => 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[2]}}px; padding-left:{{val[3]}}px;',
),
)
)
);
// Post Title
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_post_title', array(
'name' => __pl('post_title'),
'group' => 'other',
'html' => '<div class="pagelayer-post-title">
<a class="pagelayer-ele-link" if-ext="{{link}}" href="{{{link}}}">
{{open_html_tag}}<span if="{{before}}">{{before}} </span>'.pagelayer_get_the_title(false).'<span if="{{after}}"> {{after}}</span>{{close_html_tag}}
</a>
</div>',
'params' => array(
'before' => array(
'type' => 'text',
'label' => __pl('before'),
'np' => 1,
),
'after' => array(
'type' => 'text',
'label' => __pl('after'),
'np' => 1,
),
'link' => array(
'type' => 'link',
'label' => __pl('image_link_label'),
'selector' => '.pagelayer-ele-link',
),
'html_tag' => array(
'type' => 'select',
'label' => __pl('html_tag'),
'default' => 'h1',
'list' => [
'' => __pl('default'),
'h1' => 'H1',
'h2' => 'H2',
'h3' => 'H3',
'h4' => 'H4',
'h5' => 'H5',
'h6' => 'H6',
],
),
'title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#0986c0',
'css' => [
'{{element}} .pagelayer-post-title'=> 'color:{{val}}',
'{{element}} .pagelayer-post-title *'=> 'color:{{val}}'
],
),
'typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',35,,700,,,solid,,,,',
'css' => ['{{element}} .pagelayer-post-title' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'shadow' => array(
'type' => 'shadow',
'label' => __pl('shadow'),
'css' => ['{{element}} .pagelayer-post-title' => 'text-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}};'],
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'screen' => 1,
'list' => [
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
],
'css' => 'text-align: {{val}}',
),
)
)
);
// Post Content
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_post_content', array(
'name' => __pl('post_content'),
'group' => 'other',
'html' => '<div class="entry-content pagelayer-post-excerpt">{{post_content}}</div>',
'params' => array(
'color' => array(
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-post-excerpt' => 'color:{{val}}'],
),
'typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-post-excerpt' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'np' => 1,
'list' => [
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
],
'css' => 'text-align: {{val}}'
),
)
)
);
// Post Excerpt
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_post_excerpt', array(
'name' => __pl('post_excerpt'),
'group' => 'other',
'html' => '{{{post_excerpt}}}',
'params' => array(
'color' => array(
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'css' => ['{{element}} .pagelayer-post-excerpt' => 'color:{{val}}'],
),
'typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-post-excerpt' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'np' => 1,
'list' => [
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
],
'css' => 'text-align: {{val}}',
),
'pe_margin' => array(
'type' => 'padding',
'label' => __pl('margin'),
'screen' => 1,
'units' => ['px', 'em'],
'css' => ['{{element}} .pagelayer-post-excerpt' => 'margin-top:{{val[0]}}; margin-right:{{val[1]}}; margin-bottom:{{val[2]}}; margin-left:{{val[3]}};'],
),
)
)
);
// Featured Image
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_featured_img', array(
'name' => __pl('featured_img'),
'group' => 'other',
'html' => '<a if-ext="{{link_type}}" href="{{func_link}}" class="pagelayer-ele-link" pagelayer-image-link-type="{{link_type}}">
<div class="pagelayer-featured-img">{{img_html}}</div>
</a>
<p if="{{caption}}" class="pagelayer-featured-caption">{{caption}}</p>',
'params' => array(
'img' => array(
'label' => __pl('fallback_img'),
'type' => 'image',
'np' => 1,
),
'size' => array(
'label' => __pl('obj_image_size_label'),
'type' => 'select',
'default' => 'full',
'list' => array(
'full' => __pl('full'),
'large' => __pl('large'),
'medium' => __pl('medium'),
'thumbnail' => __pl('thumbnail'),
'custom' => __pl('custom')
)
),
'custom_size' => array(
'type' => 'dimension',
'units' => ['px', '%'],
'screen' => 1,
'label' => __pl('image_custom_size_label'),
'css' => ['{{element}} img' => 'width: {{val[0]}}; height: {{val[1]}};'],
'req' => ['size' => 'custom']
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'screen' => 1,
'list' => [
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
],
'css' => 'text-align: {{val}}',
),
'img_filter' => array(
'type' => 'filter',
'label' => __pl('filter'),
'default' => '0,100,100,0,0,100,100',
'css' => ['{{element}} img' => 'filter: blur({{val[0]}}px) brightness({{val[1]}}%) contrast({{val[2]}}%) grayscale({{val[3]}}%) hue-rotate({{val[4]}}deg) opacity({{val[5]}}%) saturate({{val[6]}}%)'],
),
'img_shadow' => array(
'type' => 'box_shadow',
'label' => __pl('shadow'),
'css' => ['{{element}} img' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}} !important;'],
),
),
'link_settings' => [
'link_type' => array(
'label' => __pl('image_link_label'),
'type' => 'select',
'default' => '',
'list' => array(
'' => __pl('none'),
'custom_url' => __pl('custom_url'),
'media_file' => __pl('media_file'),
'lightbox' => __pl('lightbox')
)
),
'link' => array(
'type' => 'link',
'label' => __pl('image_link_label'),
'desc' => __pl('image_link_desc'),
'selector' => '.pagelayer-ele-link',
'req' => array(
'link_type' => 'custom_url'
)
),
'rel' => array(
'label' => __pl('image_rel_label'),
'type' => 'text',
'default' => '',
'addAttr' => ['{{element}} a' => 'rel="{{rel}}"'],
'req' => array(
'link_type' => 'media_file'
)
),
'target' => array(
'label' => __pl('open_link_in_new_window'),
'type' => 'checkbox',
'addAttr' => ['{{element}} a' => 'target="_blank"'],
'req' => ['link_type' => ['custom_url', 'media_file']], // For backward compatibility of the new link property in version 1.5.8, hide it for custom_url.
'show' => ['link_type' => 'media_file']
),
],
'caption_style' => [
'caption' => array(
'label' => __pl('gallery_grid_caption_label'),
'desc' => __pl('gallery_grid_caption_desc'),
'np' => 1,
'type' => 'text',
),
'caption_color' => array(
'label' => __pl('Caption Color'),
'type' => 'color',
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-featured-caption' => 'color: {{val}}'],
),
'caption_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-featured-caption' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
],
'border_style' => [
'f_border_hover' => array(
'type' => 'radio',
'label' => '',
'np' => 1,
'default' => '',
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'img_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} img' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'f_border_hover' => ''
),
),
'img_border_color' => array(
'type' => 'color',
'label' => __pl('service_box_icon_border_color_label'),
'default' => '#0986c0',
'css' => ['{{element}} img' => 'border-color: {{val}};'],
'req' => array(
'!img_border_type' => ''
),
'show' => array(
'f_border_hover' => ''
),
),
'img_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} img' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!img_border_type' => ''
],
'show' => array(
'f_border_hover' => ''
),
),
'img_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} img' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'show' => array(
'f_border_hover' => ''
),
),
'img_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('service_btn_hover_delay'),
'min' => 0,
'step' => 100,
'max' => 2000,
'default' => 400,
'css' => ['{{element}} img' => '-webkit-transition: all {{val}}ms; transition: all {{val}}ms;'],
'show' => ['f_border_hover' => 'hover'],
),
'img_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} img:hover' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'f_border_hover' => 'hover'
),
),
'img_border_color_hover' => array(
'type' => 'color',
'label' => __pl('service_box_icon_border_color_label'),
'css' => ['{{element}} img:hover' => 'border-color: {{val}};'],
'default' => '#0986c0',
'req' => array(
'!img_border_type_hover' => ''
),
'show' => array(
'f_border_hover' => 'hover'
),
),
'img_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} img:hover' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!img_border_type_hover' => ''
],
'show' => array(
'f_border_hover' => 'hover'
),
),
'img_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} img:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'show' => array(
'f_border_hover' => 'hover'
),
),
],
'styles' => [
'caption_style' => __pl('caption_style'),
'link_settings' => __pl('link_settings'),
'border_style' => __pl('border_style')
]
)
);
// Post info
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_post_info', array(
'name' => __pl('post_info'),
'group' => 'other',
'has_group' => [
'section' => 'params',
'prop' => 'elements',
],
'holder' => '.pagelayer-post-info-container',
'html' => '<div class="pagelayer-post-info-container pagelayer-post-info-{{layout}}"></div>',
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('post_info_list'),
'sc' => PAGELAYER_SC_PREFIX.'_post_info_list',
'item_label' => array(
'default' => __pl('info_list'),
'param' => 'type',
),
'count' => 1,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('post_info'))),
),
'layout' => array(
'type' => 'select',
'label' => __pl('layout'),
'np' => 1,
'default' => 'vertical',
'list' => array(
'horizontal' => __pl('horizontal'),
'vertical' => __pl('vertical'),
),
),
'space_between' => array(
'type' => 'slider',
'label' => __pl('list_spacing_label'),
'default' => 15,
'screen' => 1,
'css' => ['{{element}} .pagelayer-post-info-vertical .pagelayer-post-info-list-container' => 'margin-right:{{val}}px',
'{{element}} .pagelayer-post-info-horizontal .pagelayer-post-info-list-container' => 'margin-bottom:{{val}}px']
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'np' => 1,
'default' => 'left',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-post-info-container' => 'text-align:{{val}}']
),
),
'icon_style' => array(
'icon_size' => array(
'type' => 'slider',
'label' => __pl('font_size'),
'units' => ['px', 'em', '%'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-post-info-icon span' => 'font-size:{{val}}'],
),
'icon_colors' => array(
'type' => 'radio',
'label' => __pl('color'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'icon_color_normal' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-post-info-icon span' => 'color:{{val}}'],
'show' => ['icon_colors' => 'normal']
),
'icon_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-post-info-icon span:hover' => 'color:{{val}}'],
'show' => ['icon_colors' => 'hover']
),
),
'text_style' => array(
'input_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-post-info-list-container a' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'text_colors' => array(
'type' => 'radio',
'label' => __pl('color'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'text_color_normal' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-post-info-label' => 'color:{{val}}',
'{{element}} .pagelayer-post-info-label a' => 'color:{{val}}'],
'show' => ['text_colors' => 'normal']
),
'text_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-post-info-label:hover' => 'color:{{val}}',
'{{element}} .pagelayer-post-info-label:hover a' => 'color:{{val}}'],
'show' => ['text_colors' => 'hover']
),
),
'terms_style' => array(
'terms_text_colors' => array(
'type' => 'radio',
'label' => __pl('color'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'terms_text_color_normal' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-terms *' => 'color:{{val}} !important'],
'show' => ['terms_text_colors' => 'normal']
),
'terms_text_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-terms *:hover' => 'color:{{val}} !important'],
'show' => ['terms_text_colors' => 'hover']
),
'terms_background_color_normal' => array(
'type' => 'color',
'label' => __pl('background_color'),
'css' => ['{{element}} .pagelayer-terms *' => 'background-color:{{val}}'],
'show' => ['terms_text_colors' => 'normal']
),
'terms_background_color_hover' => array(
'type' => 'color',
'label' => __pl('background_color'),
'css' => ['{{element}} .pagelayer-terms *:hover' => 'background-color:{{val}}'],
'show' => ['terms_text_colors' => 'hover']
),
'terms_text_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-terms *' => 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[2]}}px; padding-left:{{val[3]}}px;'],
),
'terms_text_margin' => array(
'type' => 'padding',
'label' => __pl('margin'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-terms *' => 'margin-top:{{val[0]}}px; margin-right:{{val[1]}}px; margin-bottom:{{val[2]}}px; margin-left:{{val[3]}}px;'],
),
'terms_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-terms *' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'show' => array(
'btn_bor_hover' => ''
),
),
),
'styles' => array(
'icon_style' => __pl('icon_style'),
'text_style' => __pl('text_style'),
'terms_style' => __pl('terms_style'),
),
)
);
// Post info list
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_post_info_list', array(
'name' => __pl('post_info_list'),
'group' => 'other',
'html' => '<div class="pagelayer-post-info-list-container" if="{{post_info_content}}">
<a if-ext="{{info_link}}" href="{{link}}" class="pagelayer-post-info-list-link">
<span class="pagelayer-post-info-icon">
<span if="{{info_icon_on}}" class="{{info_icon}}"></span>
<img class="pagelayer-img" if="{{info_avatar}}" src="{{avatar_url}}"></span>
</span>
<span if="{{info_before}}" class="pagelayer-post-info-before">{{info_before}}</span>
<span class="pagelayer-post-info-label pagelayer-{{type}}">{{post_info_content}}</span>
</a>
</div>',
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_post_info'],
'params' => array(
'type' => array(
'type' => 'select',
'label' => __pl('type'),
'default' => 'author',
'np' => 1,
'list' => array(
'author' => __pl('author'),
'date' => __pl('date'),
'time' => __pl('time'),
'comments' => __pl('comments'),
'terms' => __pl('Terms'),
'custom' => __pl('custom'),
),
),
'date_format' => array(
'type' => 'select',
'label' => __pl('date_format'),
'default' => 'default',
'list' => array(
'default' => __pl('default'),
'0' => 'F j, Y',
'1' => 'Y-m-d',
'2' => 'm/d/Y',
'3' => 'd/m/Y',
'custom' => __pl('custom'),
),
'req' => ['type' => 'date'],
),
'date_format_custom' => array(
'type' => 'text',
'label' => __pl('custom_date_format'),
'default' => 's - M -Y',
'req' => ['date_format' => 'custom', 'type' => 'date'],
),
'time_format' => array(
'type' => 'select',
'label' => __pl('time_format'),
'default' => 'default',
'list' => array(
'default' => __pl('default'),
'0' => 'g:i a',
'1' => 'g:i A',
'2' => 'H:i',
'custom' => __pl('custom'),
),
'req' => ['type' => 'time'],
),
'time_format_custom' => array(
'type' => 'text',
'label' => __pl('custom_time_format'),
'default' => 'g:i a',
'req' => ['time_format' => 'custom', 'type' => 'time'],
),
'taxonomy' => array(
'type' => 'select',
'label' => __pl('Post_taxonomy'),
'default' => 'category',
'list' => pagelayer_tax_list(),
'req' => ['type' => 'terms'],
),
'type_custom' => array(
'type' => 'text',
'label' => __pl('custom'),
'req' => ['type' => 'custom'],
),
'info_before' => array(
'type' => 'text',
'label' => __pl('before'),
'np' => 1,
),
'info_avatar' => array(
'type' => 'checkbox',
'label' => __pl('avatar_style'),
'req' => ['type' => 'author'],
),
'info_avatar_size' => array(
'type' => 'slider',
'label' => __pl('obj_size_label'),
'default' => 22,
'screen' => 1,
'css' => ['{{element}} .pagelayer-post-info-icon img' => 'height:{{val}}px;width:{{val}}px;border-radius:50%;display:inline-block;'],
'req' => ['info_avatar' => 'true', 'type' => 'author'],
),
'info_link' => array(
'type' => 'checkbox',
'label' => __pl('link_settings'),
'default' => true,
'req' => ['!type' => 'time'],
),
'info_custom_link' => array(
'type' => 'text',
'label' => __pl('custom_link'),
'default' => '#',
'req' => ['type' => 'custom'],
),
'info_icon_on' => array(
'type' => 'checkbox',
'label' => __pl('icon'),
'default' => true,
'req' => ['info_avatar' => ''],
),
'info_icon' => array(
'type' => 'icon',
'label' => __pl('icon_list'),
'default' => 'fas fa-user-circle',
'req' => ['info_icon_on' => 'true', 'info_avatar' => ''],
),
),
)
);
// Post navigation
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_post_nav', array(
'name' => __pl('post_nav'),
'group' => 'other',
'html' => '<div class="pagelayer-post-nav-container">
<div class="pagelayer-prev-post">
{{prev_link}}
</div>
<div class="pagelayer-post-nav-separator"></div>
<div class="pagelayer-next-post">
{{next_link}}
</div>
</div>',
'params' => array(
'in_same_term' => array(
'type' => 'checkbox',
'label' => __pl('in_same_term'),
'np' => 1,
),
'taxonomies' => array(
'type' => 'select',
'label' => __pl('Post_taxonomy'),
'default' => 'category',
'list' => pagelayer_tax_list(),
'req' => ['in_same_term' => 'true'],
),
),
'nav_label' => array(
'lables' => array(
'type' => 'checkbox',
'label' => __pl('label'),
'default' => 'true',
),
'prev_label' => array(
'type' => 'text',
'label' => __pl('prev_label'),
'np' => 1,
'default' => __pl('Previous'),
'req' => ['lables' => 'true'],
),
'next_label' => array(
'type' => 'text',
'label' => __pl('next_label'),
'np' => 1,
'default' => __pl('Next'),
'req' => ['lables' => 'true'],
),
'label_colors' => array(
'type' => 'radio',
'label' => __pl('color'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => ['lables' => 'true'],
),
'label_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-post-nav-link' => 'color:{{val}}'],
'show' => ['label_colors' => 'normal'],
'req' => ['lables' => 'true'],
),
'label_hover_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-post-nav-link:hover' => 'color:{{val}}'],
'show' => ['label_colors' => 'hover'],
'req' => ['lables' => 'true'],
),
'label_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-post-nav-link' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => ['lables' => 'true'],
),
),
'nav_title' => array(
'post_title' => array(
'type' => 'checkbox',
'label' => __pl('post_title'),
'default' => 'true',
),
'title_colors' => array(
'type' => 'radio',
'label' => __pl('color'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => ['post_title' => 'true'],
),
'title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-post-nav-title' => 'color:{{val}}'],
'show' => ['title_colors' => 'normal'],
'req' => ['post_title' => 'true'],
),
'title_hover_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-post-nav-title:hover' => 'color:{{val}}'],
'show' => ['title_colors' => 'hover'],
'req' => ['post_title' => 'true'],
),
'title_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-post-nav-title' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => ['post_title' => 'true'],
),
),
'nav_icon' => array(
'arrows' => array(
'type' => 'checkbox',
'label' => __pl('arrows'),
'default' => 'true',
),
'arrows_list' => array(
'type' => 'select',
'label' => __pl('arrows_list'),
'default' => 'angle',
'list' => array(
'angle' => __pl('angle'),
'arrow' => __pl('Arrow'),
'angle-double' => __pl('angle_double'),
'arrow-circle' => __pl('arrow_circle'),
'arrow-circle-o' => __pl('arrow_circle_O'),
'chevron' => __pl('chevron'),
'chevron-circle' => __pl('chevron_circle'),
'caret' => __pl('caret'),
'long-arrow' => __pl('long_arrow'),
),
'req' => ['arrows' => 'true'],
),
'icon_colors' => array(
'type' => 'radio',
'label' => __pl('color'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => ['arrows' => 'true'],
),
'icon_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-post-nav-icon' => 'color:{{val}}'],
'show' => ['icon_colors' => 'normal'],
'req' => ['arrows' => 'true'],
),
'icon_hover_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-post-nav-icon:hover' => 'color:{{val}}'],
'show' => ['icon_colors' => 'hover'],
'req' => ['arrows' => 'true'],
),
'icon_size' => array(
'type' => 'slider',
'label' => __pl('font_size'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-post-nav-icon' => 'font-size:{{val}}px'],
'req' => ['arrows' => 'true'],
),
),
'nav_sep' => array(
'disable_sep' => array(
'type' => 'checkbox',
'label' => __pl('disable_sep'),
'css' => ['{{element}} .pagelayer-post-nav-separator' => 'display:none'],
),
'sep_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#bdbdbd',
'css' => ['{{element}} .pagelayer-post-nav-separator' => 'background-color:{{val}}'],
'req' => ['disable_sep' => '']
),
'sep_rotate' => array(
'type' => 'slider',
'label' => __pl('Rotate'),
'default' => 20,
'max' => 360,
'screen' => 1,
'css' => ['{{element}} .pagelayer-post-nav-separator' => 'transform: rotate({{val}}deg);'],
'req' => ['disable_sep' => '']
),
'sep_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'default' => 1,
'max' => 10,
'screen' => 1,
'css' => ['{{element}} .pagelayer-post-nav-separator' => 'width: {{val}}px;'],
'req' => ['disable_sep' => '']
),
),
'styles' => array(
'nav_label' => __pl('label_style'),
'nav_title' => __pl('title_style'),
'nav_icon' => __pl('icon_style'),
'nav_sep' => __pl('separator_style'),
),
)
);
// Post comment
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_post_comment', array(
'name' => __pl('post_commment'),
'group' => 'other',
'html' => '<div class="pagelayer-post-comment-container">
{{post_comment}}
</div>',
'params' => array(
'comment_skin' => array(
'type' => 'select',
'label' => __pl('skin'),
'default' => 'theme_comment',
'list' => array(
'theme_comment' => __pl('theme_tamplate'),
),
),
'post_type' => array(
'type' => 'radio',
'label' => __pl('post_type'),
'default' => 'current',
'list' => array(
'current' => __pl('current'),
'custom' => __pl('custom'),
),
),
'post_id' => array(
'type' => 'select',
'label' => __pl('post_list'),
'default' => '',
'list' => pagelayer_get_posts(),
'req' => ['post_type' => 'custom']
),
),
)
);
// Flipbox
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_flipbox', array(
'name' => __pl('Flipbox'),
'group' => 'other',
'html' => '<div class="pagelayer-flipbox-container pagelayer-flipbox-{{back_section}} pagelayer-flipbox-{{flip_animation}} pagelayer-flipbox-direction-{{animation_direction}}">
<div class="pagelayer-flipbox-overlay"></div>
<div class="pagelayer-flipbox-main">
<div class="pagelayer-flipbox-flipper">
<div class="pagelayer-flipbox-box pagelayer-flipbox-front" style="background-image:url({{front_background}});">
<div class="pagelayer-flipbox-box-overlay">
<div class="pagelayer-flipbox-box-inner">
<div class="pagelayer-flipbox-content">
<div class="pagelayer-icon-holder pagelayer-service-icon pagelayer-service-{{icon_view}}">
<i class="{{icon}} {{bg_shape}} {{icon_size}} pagelayer-animation-{{anim_hover}}"></i>
</div>
<div if="{{heading_image}}" class="pagelayer-flipbox-image">
<img class="pagelayer-img pagelayer-animation-{{anim_hover}}" src="{{func_image}}" title="{{{heading_image-title}}}" alt="{{{heading_image-alt}}}" />
</div>
<h2 if={{front_heading}}>{{front_heading}}</h2>
<p if={{front_content}}>{{front_content}}</p>
</div>
</div>
</div>
</div>
<div class="pagelayer-flipbox-box pagelayer-flipbox-back" style="">
<div class="pagelayer-flipbox-box-overlay">
<div class="pagelayer-flipbox-box-inner">
<div class="pagelayer-flipbox-content">
<h2 if={{back_heading}}>{{back_heading}}</h2>
<p if={{back_content}}>{{back_content}}</p>
<a if="{{display_button}}" href="{{{back_button_url}}}" class="pagelayer-service-btn {{back_button_type}} pagelayer-ele-link pagelayer-button {{back_button_size}}">{{back_button_text}}</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>',
'params' => array(
'height' => array(
'type' => 'slider',
'label' => __pl('block_height'),
'np' => 1,
'min' => 100,
'max' => 1200,
'default' => 500,
'screen' => 1,
'css' => ['{{element}} .pagelayer-flipbox-flipper' => 'height: {{val}}px;'],
),
'content_width' => array(
'type' => 'slider',
'label' => __pl('content_width'),
'min' => 50,
'max' => 100,
'default' => 100,
'screen' => 1,
'css' => ['{{element}} .pagelayer-flipbox-content' => 'width: {{val}}%; margin:0 auto;'],
),
'flip_animation' => array(
'type' => 'select',
'label' => __pl('animation_styles'),
'default' => 'flip',
'list' => array(
'flip' => __pl('flip'),
'slide' => __pl('slide'),
'push' => __pl('push'),
'zoom-in' => __pl('zoom-in'),
'zoom-out' => __pl('zoom-out'),
'fade' => __pl('fade'),
),
),
'animation_direction' => array(
'type' => 'select',
'label' => __pl('animation_direction'),
'default' => 'right',
'list' => array(
'up' => __pl('top'),
'down' => __pl('bottom'),
'right' => __pl('right'),
'left' => __pl('left'),
),
'req' => array(
'!flip_animation' => ['fade','zoom-out','zoom-in'],
),
),
'animation_duration' => array(
'type' => 'spinner',
'label' => __pl('animation_duration'),
'np' => 1,
'default' => 600,
'min' => 100,
'step' => 50,
'max' => 2000,
'css' => ['{{element}} .pagelayer-flipbox-box' => 'transition: all {{val}}ms ease-in-out !important;
-webkit-transition: all {{val}}ms ease-in-out !important;']
),
'flip_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-flipbox-flipper' => 'border-style: {{val}}'],
'list' => array(
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
),
),
'flip_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-flipbox-flipper' => 'border-color: {{val}};'],
'req' => array(
'!flip_border_type' => ''
),
),
'flip_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-flipbox-flipper' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => array(
'!flip_border_type' => ''
),
),
'flip_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => ['px', '%'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-flipbox-flipper' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
),
),
'front_section' => array(
'heading_element' => array(
'type' => 'radio',
'label' => __pl('visual_element'),
'default' => '',
'list' => array(
'' => __pl('none'),
'icon' => __pl('icon'),
'image' => __pl('image'),
),
),
'icon' => array(
'type' => 'icon',
'label' => __pl('icon'),
'default' => 'fas fa-star',
'req' => array(
'heading_element'=>'icon',
),
),
'icon_view' => array(
'type' => 'select',
'label' => __pl('iconbox_icon_view'),
'default' => 'default',
'list' =>array(
'default' => __pl('default'),
'stacked' => __pl('Stacked'),
'framed' => __pl('Framed'),
),
'req' => array(
'heading_element'=>'icon',
),
),
'bg_shape' => array(
'type' => 'select',
'label' => __pl('icon_background_shape'),
'default' => 'pagelayer-icon-circle',
'list' => array(
'' => __pl('icon_shape_none'),
'pagelayer-icon-circle' => __pl('icon_shape_circle'),
'pagelayer-icon-square' => __pl('icon_shape_square'),
'pagelayer-icon-rounded' => __pl('icon_shape_rounded')
),
'req' => array(
'heading_element'=>'icon',
'!icon_view' => 'default',
),
),
'icon_color_style' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-flipbox-content i' => 'position: relative; color: {{val}};',
'{{element}} pagelayer-flipbox-content i:before' => 'position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);'],
'default' => '#ffffff',
'req' => array(
'heading_element'=>'icon',
),
),
'bg_color' => array(
'type' => 'color',
'label' => __pl('icon_background_color'),
'default' => '#ef9229',
'css' => ['{{element}} .pagelayer-flipbox-content i' => 'background-color: {{val}};'],
'req' => array(
'heading_element'=>'icon',
'!bg_shape' => '',
'icon_view' => 'stacked',
),
'show' => array(
'icon_hover' => ''
),
),
'icon_background_size' => array(
'type' => 'spinner',
'label' => __pl('icon_background_size'),
'default' => 20,
'css' => ['{{element}} .pagelayer-flipbox-content i' => 'padding: calc(0.5em + {{val}}px);'],
'min' => 1,
'max' => 100,
'step' => 1,
'screen' => 1,
'req' => array(
'heading_element'=>'icon',
),
),
'icon_size' => array(
'type' => 'select',
'label' => __pl('size_label'),
'default' => 'pagelayer-icon-large',
'list' => array(
'pagelayer-icon-mini' => __pl('mini'),
'pagelayer-icon-small' => __pl('small'),
'pagelayer-icon-large' => __pl('large'),
'pagelayer-icon-extra-large' => __pl('extra_large'),
'pagelayer-icon-double-large' => __pl('double_large'),
'pagelayer-icon-custom' => __pl('custom'),
),
'req' => array(
'heading_element'=>'icon',
),
),
'icon_size_custom' => array(
'type' => 'spinner',
'label' => __pl('icon_custom_size'),
'min' => 1,
'step' => 1,
'max' => 100,
'default' => 26,
'screen' => 1,
'css' => ['{{element}} .pagelayer-flipbox-content i' => 'font-size: {{val}}px'],
'req' => array(
'icon_size' => 'pagelayer-icon-custom',
'heading_element' => 'icon'
),
),
'icon_rotate' => array(
'type' => 'spinner',
'label' => __pl('icon_rotate'),
'default' => 0,
'css' => ['{{element}} .pagelayer-flipbox-content i' => 'transform: rotate({{val}}deg)'],
'min' => 0,
'max' => 360,
'step' => 1,
'screen' => 1,
'req' => array(
'heading_element'=>'icon',
),
),
'icon_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-flipbox-content i' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'req' => array(
'heading_element'=>'icon',
),
),
'icon_border_color' => array(
'type' => 'color',
'label' => __pl('icon_border_color'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-flipbox-content i' => 'border-color: {{val}};'],
'req' => array(
'!icon_border_type' => '',
'heading_element' => 'icon'
),
),
'icon_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-flipbox-content i' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!icon_border_type' => '',
'heading_element' => 'icon'
],
),
'icon_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-flipbox-content i' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!icon_border_type' => '',
'heading_element' => 'icon'
),
),
'heading_image'=> array(
'type' => 'image',
'label' => __pl('image'),
'default' => PAGELAYER_URL.'/images/default-image.png',
'req' => array(
'heading_element' => 'image',
),
),
'heading_image_size' => array(
'type' => 'radio',
'label' => __pl('image_size'),
'default' => 'full',
'list' => array(
'full' => __pl('full'),
'thumbnail' => __pl('thumbnail'),
'custom' => __pl('custom'),
),
'req' => array(
'heading_element' => 'image',
),
),
'heading_image_custom_size' => array(
'type' => 'slider',
'label' => __pl('img_custom_size'),
'min' => 0,
'max' => 100,
'screen' => 1,
'default' => 50,
'css' => ['{{element}} .pagelayer-flipbox-image img' => 'width:{{val}}%; height: auto;'],
'req' => array(
'heading_element' => 'image',
'heading_image_size' => 'custom',
)
),
'heading_image_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'min' => 0,
'max' => 100,
'screen' => 1,
'default' => 20,
'css' => ['{{element}} .pagelayer-flipbox-image img' => 'margin-bottom:{{val}}px;'],
'req' => array(
'heading_element' => 'image',
)
),
'front-text-align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'center',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
),
'css' => ['{{element}} .pagelayer-flipbox-front .pagelayer-flipbox-box-overlay' => 'text-align:{{val}} !important;'],
),
'front_heading' => array(
'type' => 'text',
'default' => 'Flipbox Heading',
'label' => __pl('heading_name'),
'np' => 1,
),
'heading_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-flipbox-front .pagelayer-flipbox-content h2' => 'color:{{val}};'],
),
'heading_typography' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => 'Poppins,40,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-flipbox-front .pagelayer-flipbox-content h2' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'front_content' => array(
'type' => 'textarea',
'label' => __pl('content'),
'np' => 1,
'default' => 'Flipbox content comes here such as It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.',
),
'front_content_color' => array(
'type' => 'color',
'label' => __pl('text_color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-flipbox-front .pagelayer-flipbox-content p' => 'color:{{val}};'],
),
'front_content_typography' => array(
'type' => 'typography',
'label' => __pl('text_style'),
'default' => ',16,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-flipbox-front .pagelayer-flipbox-content p' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'front_shadow' => array(
'type' => 'box_shadow',
'label' => __pl('shadow'),
'css' => ['{{element}} .pagelayer-flipbox-front' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}};'],
),
'front_background_type' => array(
'type' => 'radio',
'label' => __pl('background_type'),
'default' => '',
'list' => array(
'color' => __pl('color'),
'gradient' => __pl('gradient'),
'image' => __pl('image'),
),
),
'front_background_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '',
'css' => ['{{element}} .pagelayer-flipbox-front' => 'background-color:{{val}};'],
'req' => array(
'front_background_type' => 'color',
),
),
'front_background_gradient' => array(
'type' => 'gradient',
'label' => __pl('background_gradient'),
'default' => '150,#f12711,40,#f5af19,60,#f5af19,100',
'css' => ['{{element}} .pagelayer-flipbox-front' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%) !important;'],
'req' => array(
'front_background_type' => 'gradient',
),
),
'front_background_image' => array(
'type' => 'image',
'label' => __pl('image'),
'np' => 1,
'default' => PAGELAYER_URL.'/images/default-image.png',
'css' => ['{{element}} .pagelayer-flipbox-front' => 'background-image:url("{{{front_background_image-url}}}") !important;'],
'req' => array(
'front_background_type' => 'image',
),
),
'front_background_attachment' => array(
'type' => 'select',
'label' => __pl('background_attachment'),
'list' => array(
'' => __pl('default'),
'scroll' => __pl('scroll'),
'fixed' => __pl('fixed')
),
'css' => ['{{element}} .pagelayer-flipbox-front' => 'background-attachment: {{val}}'],
'req' => array(
'front_background_type' => 'image',
),
),
'front_background_posx' => array(
'type' => 'select',
'label' => __pl('ele_bg_posx'),
'list' => array(
'' => __pl('default'),
'center' => __pl('center'),
'left' => __pl('left'),
'right' => __pl('right')
),
'css' => ['{{element}} .pagelayer-flipbox-front' => 'background-position-x: {{val}};'],
'req' => array(
'front_background_type' => 'image',
),
),
'front_background_posy' => array(
'type' => 'select',
'label' => __pl('ele_bg_posy'),
'list' => array(
'' => __pl('default'),
'center' => __pl('center'),
'top' => __pl('top'),
'bottom' => __pl('bottom')
),
'css' => ['{{element}} .pagelayer-flipbox-front' => 'background-position-y: {{val}};'],
'req' => array(
'front_background_type' => 'image',
),
),
'front_background_repeat' => array(
'type' => 'select',
'label' => __pl('repeat'),
'css' => ['{{element}} .pagelayer-flipbox-front' => 'background-repeat: {{val}};'],
'list' => array(
'' => __pl('default'),
'repeat' => __pl('repeat'),
'no-repeat' => __pl('no-repeat'),
'repeat-x' => __pl('repeat-x'),
'repeat-y' => __pl('repeat-y'),
),
'req' => array(
'front_background_type' => 'image',
),
),
'front_background_size' => array(
'type' => 'select',
'label' => __pl('ele_bg_size'),
'css' => ['{{element}} .pagelayer-flipbox-front' => 'background-size: {{val}};'],
'list' => array(
'' => __pl('default'),
'cover' => __pl('cover'),
'contain' => __pl('contain')
),
'req' => array(
'front_background_type' => 'image',
),
),
'front_section_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'screen' => 1,
'default' => '100,100,100,100',
'css' => ['{{element}} .pagelayer-flipbox-front .pagelayer-flipbox-box-overlay' => 'padding: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
),
),
'back_section' => array(
'back_section' => array(
'type' => 'checkbox',
'label' => __pl('back_side'),
),
'back-text-align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'center',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
),
'css' => ['{{element}} .pagelayer-flipbox-back .pagelayer-flipbox-box-overlay' => 'text-align:{{val}} !important;'],
),
'back_heading' => array(
'type' => 'text',
'label' => __pl('title'),
'np' => 1,
'default' => 'Flipbox Back Heading',
),
'back_heading_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#000000',
'css' => ['{{element}} .pagelayer-flipbox-back .pagelayer-flipbox-content h2' => 'color:{{val}};'],
),
'back_heading_typography' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => 'Poppins,40,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-flipbox-back .pagelayer-flipbox-content h2' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'back_content' => array(
'type' => 'textarea',
'label' => __pl('content'),
'np' => 1,
'default' => 'Flipbox content comes here such as It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.',
),
'back_content_color' => array(
'type' => 'color',
'label' => __pl('text_color'),
'default' => '#3c3f40',
'css' => ['{{element}} .pagelayer-flipbox-back .pagelayer-flipbox-content p' => 'color:{{val}};'],
),
'back_content_typography' => array(
'type' => 'typography',
'label' => __pl('text_style'),
'default' => ',16,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-flipbox-back .pagelayer-flipbox-content p' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'back_shadow' => array(
'type' => 'box_shadow',
'label' => __pl('shadow'),
'css' => ['{{element}} .pagelayer-flipbox-back' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}};'],
),
'display_button' => array(
'type' => 'checkbox',
'label' => __pl('button'),
),
'back_button_url' => array(
'type' => 'link',
'label' => __pl('btn_url_label'),
'selector' => '.pagelayer-service-btn',
'req' => array(
'!display_button' => '',
),
),
'back_button_text' => array(
'type' => 'text',
'label' => __pl('button_text_label'),
'default' => 'Click Here!',
'req' => array(
'!display_button' => '',
),
),
'back_button_typography' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',20,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-service-btn' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => array(
'!display_button' => '',
),
),
'back_button_type' => array(
'type' => 'select',
'label' => __pl('type'),
'default' => 'pagelayer-btn-default',
'list' => array(
'pagelayer-btn-default' => __pl('btn_type_default'),
'pagelayer-btn-primary' => __pl('btn_type_primary'),
'pagelayer-btn-secondary' => __pl('btn_type_secondary'),
'pagelayer-btn-success' => __pl('btn_type_success'),
'pagelayer-btn-info' => __pl('btn_type_info'),
'pagelayer-btn-warning' => __pl('btn_type_warning'),
'pagelayer-btn-danger' => __pl('btn_type_danger'),
'pagelayer-btn-dark' => __pl('btn_type_dark'),
'pagelayer-btn-light' => __pl('btn_type_light'),
'pagelayer-btn-link' => __pl('btn_type_link'),
'pagelayer-btn-custom' => __pl('btn_type_custom')
),
'req' => array(
'!display_button' => '',
),
),
'back_button_size' => array(
'type' => 'select',
'label' => __pl('button_size'),
'default' => 'pagelayer-btn-mini',
'list' => array(
'pagelayer-btn-mini' => __pl('mini'),
'pagelayer-btn-small' => __pl('small'),
'pagelayer-btn-large' => __pl('large'),
'pagelayer-btn-extra-large' => __pl('extra_large'),
'pagelayer-btn-double-large' => __pl('double_large'),
'pagelayer-btn-custom' => __pl('custom')
),
'req' => array(
'!display_button' => '',
),
),
'back_button_custom_size' => array(
'type' => 'spinner',
'label' => __pl('btn_custom_size'),
'min' => 1,
'step' => 1,
'max' => 100,
'default' => 5,
'screen' => 1,
'css' => ['{{element}} .pagelayer-flipbox-back .pagelayer-service-btn' => 'padding: calc({{val}}px / 2) {{val}}px;'],
'req' => array(
'back_button_size' => 'pagelayer-btn-custom',
),
),
'back_btn_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'min' => 0,
'max' => 200,
'default' => 10,
'screen' => 1,
'css' => ['{{element}} .pagelayer-service-btn' => 'margin-top: {{val}}px;'],
'req' => array(
'!display_button' => '',
),
),
'back_btn_state' => array(
'type' => 'radio',
'label' => __pl('button_state'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => array(
'back_button_type' => 'pagelayer-btn-custom',
'!display_button' => '',
),
),
'back_button_color' => array(
'type' => 'color',
'label' => __pl('button_color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-service-btn' => 'color:{{val}};'],
'show' => array(
'back_btn_state' => 'normal',
),
),
'back_button_bg_color' => array(
'type' => 'color',
'label' => __pl('button_bg_color'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-service-btn' => 'background-color:{{val}};'],
'show' => array(
'back_btn_state' => 'normal',
),
),
'back_btn_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} .pagelayer-service-btn' => '-webkit-transition: all {{val}}ms; transition: all {{val}}ms;'],
'show' => array(
'back_btn_state' => 'hover',
),
),
'back_button_color_hover' => array(
'type' => 'color',
'label' => __pl('button_color'),
'default' => '',
'css' => ['{{element}} .pagelayer-service-btn:hover' => 'color:{{val}} !important;'],
'show' => array(
'back_btn_state' => 'hover',
),
),
'back_button_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('button_bg_color'),
'default' => '',
'css' => ['{{element}} .pagelayer-service-btn:hover' => 'background-color:{{val}} !important;'],
'show' => array(
'back_btn_state' => 'hover'
),
),
'back_background_type' => array(
'type' => 'radio',
'label' => __pl('background_type'),
'default' => '',
'list' => array(
'color' => __pl('color'),
'gradient' => __pl('gradient'),
'image' => __pl('image'),
),
),
'back_background_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '',
'css' => ['{{element}} .pagelayer-flipbox-back' => 'background-color:{{val}};'],
'req' => array(
'back_background_type' => 'color',
),
),
'back_background_gradient' => array(
'type' => 'gradient',
'label' => __pl('background_gradient'),
'default' => '150,#1488CC,40,#2B32B2,60,#2B32B2,100',
'css' => ['{{element}} .pagelayer-flipbox-back' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%) !important;'],
'req' => array(
'back_background_type' => 'gradient',
),
),
'back_background_image' => array(
'type' => 'image',
'label' => __pl('image'),
'default' => PAGELAYER_URL.'/images/default-image.png',
'css' => ['{{element}} .pagelayer-flipbox-back' => 'background-image:url("{{{back_background_image-url}}}") !important;'],
'req' => array(
'back_background_type' => 'image',
),
),
'back_background_attachment' => array(
'type' => 'select',
'label' => __pl('background_attachment'),
'list' => array(
'' => __pl('default'),
'scroll' => __pl('scroll'),
'fixed' => __pl('fixed')
),
'css' => ['{{element}} .pagelayer-flipbox-back' => 'background-attachment: {{val}}'],
'req' => array(
'back_background_type' => 'image',
),
),
'back_background_posx' => array(
'type' => 'select',
'label' => __pl('ele_bg_posx'),
'list' => array(
'' => __pl('default'),
'center' => __pl('center'),
'left' => __pl('left'),
'right' => __pl('right')
),
'css' => ['{{element}} .pagelayer-flipbox-back' => 'background-position-x: {{val}};'],
'req' => array(
'back_background_type' => 'image',
),
),
'back_background_posy' => array(
'type' => 'select',
'label' => __pl('ele_bg_posy'),
'list' => array(
'' => __pl('default'),
'center' => __pl('center'),
'top' => __pl('top'),
'bottom' => __pl('bottom')
),
'css' => ['{{element}} .pagelayer-flipbox-back' => 'background-position-y: {{val}};'],
'req' => array(
'back_background_type' => 'image',
),
),
'back_background_repeat' => array(
'type' => 'select',
'label' => __pl('ele_bg_repeat'),
'css' => ['{{element}} .pagelayer-flipbox-back' => 'background-repeat: {{val}};'],
'list' => array(
'' => __pl('default'),
'repeat' => __pl('repeat'),
'no-repeat' => __pl('no-repeat'),
'repeat-x' => __pl('repeat-x'),
'repeat-y' => __pl('repeat-y'),
),
'req' => array(
'back_background_type' => 'image',
),
),
'back_background_size' => array(
'type' => 'select',
'label' => __pl('ele_bg_size'),
'css' => ['{{element}} .pagelayer-flipbox-back' => 'background-size: {{val}};'],
'list' => array(
'' => __pl('default'),
'cover' => __pl('cover'),
'contain' => __pl('contain')
),
'req' => array(
'back_background_type' => 'image',
),
),
'back_section_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'default' => '100,100,100,100',
'screen' => 1,
'css' => ['{{element}} .pagelayer-flipbox-back .pagelayer-flipbox-box-overlay' => 'padding: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
),
),
'styles' => [
'front_section' => __pl('front_section'),
'back_section' => __pl('back_section'),
]
)
);
// Countdown Timer
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_countdown', array(
'name' => __pl('countdown_timer'),
'group' => 'other',
'html' => '<div class="pagelayer-countdown-container" pagelayer-expiry-date={{date}} pagelayer-time-type={{time_zone}}>
<div class="pagelayer-countdown-expired">
<p if={{expired_text}}>{{expired_text}}</p>
</div>
<div class="pagelayer-countdown-counter">
<div if={{days}} class="pagelayer-countdown-days pagelayer-countdown-item pagelayer-countdown-{{display}}">
<div class="pagelayer-days-count pagelayer-countdown-count"></div>
<div if={{show_label}} class="pagelayer-countdown-name">
<span if={{days_label_text}}>{{days_label_text}}</span>
</div>
</div>
<div if={{hours}} class="pagelayer-countdown-hours pagelayer-countdown-item pagelayer-countdown-{{display}}">
<div class="pagelayer-hours-count pagelayer-countdown-count"></div>
<div if={{show_label}} class="pagelayer-countdown-name">
<span if={{hours_label_text}}>{{hours_label_text}}</span>
</div>
</div>
<div if={{minutes}} class="pagelayer-countdown-minutes pagelayer-countdown-item pagelayer-countdown-{{display}}">
<div class="pagelayer-minutes-count pagelayer-countdown-count"></div>
<div if={{show_label}} class="pagelayer-countdown-name">
<span if={{minutes_label_text}} >{{minutes_label_text}}</span>
</div>
</div>
<div if={{seconds}} class="pagelayer-countdown-seconds pagelayer-countdown-item pagelayer-countdown-{{display}}">
<div class="pagelayer-seconds-count pagelayer-countdown-count"></div>
<div if={{show_label}} class="pagelayer-countdown-name">
<span if={{seconds_label_text}} >{{seconds_label_text}}</span>
</div>
</div>
</div>
</div>',
'params' => array(
'date' => array(
'type' => 'datetime',
'displayMode' => 'datetime', // date | datetime (default)
'returnMode' => 'YYYY-MM-DD H:m:s', // mysql format uses here (default: Y-m-d H:i:s )
'label' => __pl('date_picker_label'),
'np' => 1,
'default' => '',
),
'time_zone' => array(
'type' => 'select',
'label' => __pl('time_zone'),
'default' => 'server',
'list' => array(
'server' => __pl('server_time'),
'local' => __pl('user_local')
),
),
'number_color' => array(
'type' => 'color',
'label' => __pl('color'),
'np' => 1,
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-countdown-count' => 'color:{{val}}'],
),
'number_style' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',50,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-countdown-count' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'number_spacing' => array(
'type' => 'padding',
'label' => __pl('spacing'),
'units' => ['px', 'em', '%'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-countdown-count' => 'margin-top: {{val[0]}}; margin-right: {{val[1]}}; margin-bottom: {{val[2]}}; margin-left: {{val[3]}};'],
),
'days' => array(
'type' => 'checkbox',
'label' => __pl('days'),
'np' => 1,
'default' => 'true',
),
'hours' => array(
'type' => 'checkbox',
'label' => __pl('hours'),
'np' => 1,
'default' => 'true',
),
'minutes' => array(
'type' => 'checkbox',
'label' => __pl('minutes'),
'np' => 1,
'default' => 'true',
),
'seconds' => array(
'type' => 'checkbox',
'label' => __pl('seconds'),
'np' => 1,
'default' => 'true',
),
),
'expired_text' =>[
'display_expired_text' => array(
'type' => 'checkbox',
'label' => __pl('expired_text'),
),
'expired_text' => array(
'type' => 'text',
'label' => __pl('text'),
'default' => 'Countdown Timer Expired',
),
'expired_color' => array(
'type' => 'color',
'label' => __pl('text_color'),
'default' => '#000000',
'css' => ['{{element}} .pagelayer-countdown-expired p' => 'color:{{val}};'],
),
'expired_background_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-countdown-expired' => 'background-color:{{val}};'],
),
'expired_style' => array(
'type' => 'typography',
'label' => __pl('expired_style'),
'default' => ',50,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-countdown-expired p' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'expired_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'units' => ['px', '%'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-countdown-expired' => 'padding: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
),
'expired_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'center',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-countdown-expired' => 'text-align:{{val}};'],
),
],
'text_style' =>[
'show_label' => array(
'type' => 'checkbox',
'label' => __pl('show_title'),
'np' => 1,
'default' => 'true',
),
'custom_label_text' => array(
'type' => 'checkbox',
'label' => __pl('custom_label_text'),
'show' => array(
'show_label' => 'true',
),
),
'days_label_text' => array(
'type' => 'text',
'label' => __pl('days'),
'default' => __pl('days'),
'show' => array(
'!custom_label_text' => '',
'!days' => '',
),
),
'hours_label_text' => array(
'type' => 'text',
'label' => __pl('hours'),
'default' => __pl('hours'),
'show' => array(
'!custom_label_text' => '',
'!hours' => '',
),
),
'minutes_label_text' => array(
'type' => 'text',
'label' => __pl('minutes'),
'default' => __pl('minutes'),
'show' => array(
'!custom_label_text' => '',
'!minutes' => '',
),
),
'seconds_label_text' => array(
'type' => 'text',
'label' => __pl('seconds'),
'default' => __pl('seconds'),
'show' => array(
'!custom_label_text' => '',
'!seconds' => '',
),
),
'font_color' => array(
'type' => 'color',
'label' => __pl('text_color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-countdown-name span' => 'color:{{val}}'],
'show' => array(
'show_label' => 'true',
),
),
'cd_text_style' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',18,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-countdown-name' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => array(
'show_label' => 'true',
),
),
],
'block_styles' =>[
'display' => array(
'type' => 'select',
'label' => __pl('display'),
'default' => 'block',
'list' => [
'block' => __pl('block'),
'inline' => __pl('inline'),
],
),
'block_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#2b1661',
'css' => ['{{element}} .pagelayer-countdown-item' => 'background-color:{{val}}'],
),
'blocks_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'units' => ['px', 'em', '%'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-countdown-item' => 'padding-top: {{val[0]}}; padding-right: {{val[1]}}; padding-bottom: {{val[2]}}; padding-left: {{val[3]}}'],
),
'blocks_space' => array(
'type' => 'padding',
'label' => __pl('block_space'),
'units' => ['px', 'em'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-countdown-item' => 'margin-top: {{val[0]}}; margin-right: {{val[1]}}; margin-bottom: {{val[2]}}; margin-left: {{val[3]}}'],
),
'cd_border_state' => array(
'type' => 'radio',
'label' => __pl(''),
'default' => '',
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'cd_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-countdown-item' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'cd_border_state' => ''
),
),
'cd_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-countdown-item' => 'border-color: {{val}};'],
'req' => array(
'!cd_border_type' => ''
),
'show' => array(
'cd_border_state' => ''
),
),
'cd_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-countdown-item' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!cd_border_type' => ''
],
'show' => array(
'cd_border_state' => ''
),
),
'cd_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => ['px', '%'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-countdown-item' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
'show' => array(
'cd_border_state' => ''
),
),
'cd_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-countdown-item:hover' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'cd_border_state' => 'hover'
),
),
'cd_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} .pagelayer-countdown-item:hover' => 'border-color: {{val}};'],
'default' => '#0986c0',
'req' => array(
'!cd_border_type_hover' => ''
),
'show' => array(
'cd_border_state' => 'hover'
),
),
'cd_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-countdown-item:hover' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!cd_border_type_hover' => ''
],
'show' => array(
'cd_border_state' => 'hover'
),
),
'cd_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => ['px', '%'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-countdown-item:hover' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
'show' => array(
'cd_border_state' => 'hover'
),
),
'cd_shadow' => array(
'type' => 'box_shadow',
'label' => __pl('shadow'),
'css' => ['{{element}} .pagelayer-countdown-item' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}};'],
'show' => array(
'cd_border_state' => '',
),
),
'cd_shadow_hover' => array(
'type' => 'box_shadow',
'label' => __pl('shadow'),
'css' => ['{{element}} .pagelayer-countdown-item:hover' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}};'],
'show' => array(
'cd_border_state' => 'hover'
),
),
],
'styles' => [
'text_style' => __pl('title_style'),
'expired_text' => __pl('expired_text'),
'block_styles' => __pl('block_styles'),
],
)
);
// Button Group
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_btn_grp', array(
'name' => __pl('btn_grp'),
'group' => 'button',
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('buttons'),
'sc' => PAGELAYER_SC_PREFIX.'_btn',
'item_label' => array(
'default' => __pl('button'),
'param' => 'text'
),
'count' => 2,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('button_name'))),
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'np' => 1,
'default' => 'center',
'screen' => 1,
'css' => [
'{{element}}' => 'text-align: {{val}}',
'{{element}} .pagelayer-btn' => 'text-align: {{val}}'
],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
)
),
'group_layout' => array(
'type' => 'radio',
'label' => __pl('layout'),
'default' => 'horizontal',
'css' => ['{{element}} > div' => 'display: inline-block;'],
'list' => array(
'horizontal' => __pl('horizontal'),
'' => __pl('vertical')
)
),
'hindent' => array(
'type' => 'spinner',
'label' => __pl('space_between'),
'np' => 1,
'default' => '5',
'css' => ['{{element}} .pagelayer-btn' => 'padding-left: {{val}}px; padding-right: {{val}}px;'],
'min' => 0,
'step' => 1,
'max' => 50,
'default' => 3,
'screen' => 1,
'req' => ['group_layout' => 'horizontal']
),
'vindent' => array(
'type' => 'spinner',
'label' => __pl('space_between'),
'np' => 1,
'default' => '5',
'css' => ['{{element}} .pagelayer-btn' => 'padding-top: {{val}}px; padding-bottom: {{val}}px;'],
'min' => 0,
'step' => 1,
'max' => 50,
'default' => 3,
'screen' => 1,
'req' => ['group_layout' => '']
)
)
)
);
// Testimonial Slider
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_testimonial_slider', array(
'name' => __pl('testimonial_slider'),
'group' => 'other',
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
'icon' => 'pli pli-commenting-o',
'prevent_inside' => ['pl_slides'],
'child_selector' => '>.pagelayer-owl-stage-outer>.pagelayer-owl-stage>.pagelayer-owl-item', // Make it very specifc
'holder' => '.pagelayer-testimonials-holder',
'html' => '<div class="pagelayer-testimonials-holder pagelayer-owl-holder pagelayer-owl-carousel pagelayer-owl-theme"></div>',
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('testimonial'),
'sc' => PAGELAYER_SC_PREFIX.'_testimonial',
'item_label' => array(
'default' => __pl('testimonial'),
'param' => 'cite'
),
'count' => 3,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('testimonial')))
),
),
'slider_options' => $pagelayer->slider_options,
'arrow_styles' => $pagelayer->slider_arrow_styles,
'pager_styles' => $pagelayer->slider_pager_styles,
'styles' => [
'slider_options' => __pl('slider_options'),
'arrow_styles' => __pl('arrow_styles'),
'pager_styles' => __pl('pager_styles'),
]
));
// Pricing Table
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_pricing', array(
'name' => __pl('pricing_table'),
'group' => 'other',
'has_group' => [
'section' => 'feature_style',
'prop' => 'elements'
],
'holder' => '.pagelayer-pricing-ul',
'html' => '<div class="pagelayer-pricing-details">
<div if="{{ribbon_text}}" class="pagelayer-pricing-ribbon-container">
<div class="pagelayer-pricing-ribbon">
{{ribbon_text}}
</div>
</div>
<h3 if="{{plan_title}}" class="pagelayer-pricing-type">{{plan_title}}</h3>
<h4 if="{{plan_sub_title}}" class="pagelayer-pricing-sub-title">{{plan_sub_title}}</h4>
</div>
<div class="pagelayer-pricing-rate-section">
<h4 if="{{original_price}}" class="pagelayer-pricing-price pagelayer-pricing-original">
<span class="pagelayer-pricing-rate">
<span if="{{currency}}">{{currency}}</span><span class="pagelayer-pricing-orig-amt">{{original_price}}</span>
</span>
</h4>
<h2 class="pagelayer-pricing-price">
<span if="{{currency}}" class="pagelayer-pricing-currency pagelayer-pricing-currency-{{currency_position}}">{{currency}}</span><span if="{{price}}" class="pagelayer-pricing-rate pagelayer-pricing-amt">{{price}}</span>
</h2>
<p if="{{period}}" class="pagelayer-pricing-duration">{{period}}</p>
</div>
<div class="pagelayer-pricing-features">
<ul class="pagelayer-pricing-ul"></ul>
<a if="{{price_button}}" href="{{{button_url}}}" class="pagelayer-pricing-btn {{button_type}} pagelayer-ele-link pagelayer-button {{button_size}}">{{button_text}}</a>
<p if="{{additional_info}}" class="pagelayer-pricing-additional">{{additional_info}}</p>
</div>',
'params' => array(
'plan_title' => array(
'type' => 'text',
'label' => __pl('plan_type'),
'np' => 1,
'default' => 'Standard',
'edit' => '.pagelayer-pricing-type',
),
'title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-pricing-type' => 'color:{{val}};'],
),
'title_size' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => 'Poppins,20,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-pricing-type' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'content_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'screen' => 1,
'css' => 'text-align: {{val}};',
'list' => array(
'left' => __pl('left'),
'' => __pl('center'),
'right' => __pl('right'),
)
),
),
//styles
'header_style' => [
'header_background_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#d55400',
'css' => ['{{element}} .pagelayer-pricing-details' => 'background-color:{{val}} !important;'],
),
'header_padding' => array(
'label' => __pl('padding'),
'type' => 'padding',
'screen' => 1,
'default' => '10,10,10,10',
'css' => ['{{element}} .pagelayer-pricing-details' => 'padding: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
),
'header_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-pricing-details' =>'border-style: {{val}};'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'header_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#e5e5e8',
'css' => ['{{element}} .pagelayer-pricing-details' => 'border-color: {{val}};'],
'req' => ['!header_border_type' => '']
),
'header_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'default' => '0,0,0,0',
'screen' => 1,
'css' => ['{{element}} .pagelayer-pricing-details' =>'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px;'],
'req' => ['!header_border_type' => '']
),
'header_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-pricing-details' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => ['!header_border_type' => '']
),
],
'subtitle_style' => [
'plan_sub_title' => array(
'type' => 'text',
'label' => __pl('subtitle'),
'default' => 'For beginners',
'edit' => '.pagelayer-pricing-sub-title',
),
'subtitle_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-pricing-sub-title' => 'color:{{val}}'],
),
'subtitle_size' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => 'Poppins,18,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-pricing-sub-title' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
],
'price_style' => [
'price' => array(
'type' => 'text',
'label' => __pl('plan_price'),
'np' => 1,
'default' => '49',
'edit' => '.pagelayer-pricing-amt',
),
'sale' => array(
'type' => 'checkbox',
'label' => __pl('sale'),
),
'original_price' => array(
'type' => 'text',
'label' => __pl('old_price'),
'default' => '100',
'edit' => '.pagelayer-pricing-orig-amt',
'keep_prop' => 1, // Prevent to remove props in gutenburg
'css' => ['{{element}} .pagelayer-pricing-original '=> 'display:inline-block;'],
'req' => array(
'sale' => 'true'
)
),
'price_size' => array(
'label' => __pl('price_size'),
'type' => 'typography',
'default' => 'Poppins,45,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-pricing-price .pagelayer-pricing-rate' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'price_sale_size' => array(
'label' => __pl('old_price_size'),
'type' => 'typography',
'default' => 'Poppins,35,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-pricing-original .pagelayer-pricing-rate' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => array(
'sale' => 'true'
)
),
'price_state' => array(
'type' => 'radio',
'label' => __pl('price_state'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'price_line_height' => array(
'label' => __pl('price_line_height'),
'type' => 'slider',
'min' => 0,
'max' => 500,
'default' => 30,
'css' => ['{{element}} .pagelayer-pricing-price .pagelayer-pricing-currency' => 'line-height:{{val}}%;'],
),
'price_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-pricing-price .pagelayer-pricing-rate' => 'color:{{val}}'],
'show' => ['price_state' => 'normal'],
),
'old_price_color' => array(
'type' => 'color',
'label' => __pl('old_price_color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-pricing-price.pagelayer-pricing-original .pagelayer-pricing-rate' => 'color:{{val}}'],
'show' => ['price_state' => 'normal'],
'req' => ['sale' => 'true'],
),
'old_price_line_color' => array(
'type' => 'color',
'label' => __pl('old_price_line_color'),
'default' => '#000000',
'css' => ['{{element}} .pagelayer-pricing-price.pagelayer-pricing-original' => 'color:{{val}}'],
'show' => ['price_state' => 'normal'],
'req' => ['sale' => 'true'],
),
'price_background_color' => array(
'type' => 'color',
'label' => __pl('background_color'),
'default' => '#e98b2b',
'css' => ['{{element}} .pagelayer-pricing-rate-section' => 'background-color:{{val}}'],
'show' => ['price_state' => 'normal'],
),
'price_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-pricing-price .pagelayer-pricing-rate:hover' => 'color:{{val}}'],
'show' => ['price_state' => 'hover'],
),
'old_price_color_hover' => array(
'type' => 'color',
'label' => __pl('old_price_color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-pricing-price.pagelayer-pricing-original .pagelayer-pricing-rate:hover' => 'color:{{val}}'],
'show' => ['price_state' => 'hover'],
'req' => ['sale' => 'true'],
),
'old_price_line_color_hover' => array(
'type' => 'color',
'label' => __pl('old_price_line_color'),
'css' => ['{{element}} .pagelayer-pricing-price.pagelayer-pricing-original:hover' => 'color:{{val}}'],
'show' => ['price_state' => 'hover'],
'req' => ['sale' => 'true'],
),
'price_background_color_hover' => array(
'type' => 'color',
'label' => __pl('background_color'),
'css' => ['{{element}} .pagelayer-pricing-rate-section:hover' => 'background-color:{{val}}'],
'show' => ['price_state' => 'hover'],
),
'price_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-pricing-rate-section' =>'border-style: {{val}};'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'price_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-pricing-rate-section' => 'border-color: {{val}};'],
'req' => ['!price_border_type' => '']
),
'price_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'css' => ['{{element}} .pagelayer-pricing-rate-section' =>'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px;'],
'req' => ['!price_border_type' => '']
),
'price_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'css' => ['{{element}} .pagelayer-pricing-rate-section' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => ['!price_border_type' => '']
),
'price_margin' => array(
'type' => 'padding',
'label' => __pl('margin'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-pricing-rate-section' => 'margin: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
),
'price_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-pricing-rate-section' => 'padding: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
),
],
'currency_style' => [
'currency' => array(
'type' => 'text',
'label' => __pl('currency'),
'np' => 1,
'default' => '$',
'edit' => '.pagelayer-pricing-currency',
),
'currency_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-pricing-price .pagelayer-pricing-currency' => 'color:{{val}}'],
),
'currency_size' => array(
'label' => __pl('currency_size'),
'type' => 'typography',
'default' => 'Poppins,35,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-pricing-price .pagelayer-pricing-currency' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'currency_position' => array(
'type' => 'radio',
'label' => __pl('position'),
'default' => 'top',
'list' => array(
'top' => __pl('top'),
'middle' => __pl('middle'),
'bottom' => __pl('bottom'),
),
),
],
'period_style' => [
'period_inline' => array(
'type' => 'checkbox',
'label' => __pl('inline'),
'css' => ['{{element}} .pagelayer-pricing-duration' => 'display:inline-block;'],
),
'period' => array(
'type' => 'text',
'label' => __pl('period'),
'np' => 1,
'default' => 'Per Month',
'edit' => '.pagelayer-pricing-duration',
),
'period_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-pricing-duration' => 'color:{{val}}'],
),
'period_size' => array(
'type' => 'typography',
'label' => __pl('heading_typo'),
'default' => ',16,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-pricing-duration' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
],
'feature_style' => [
'elements' => array(
'type' => 'group',
'label' => __pl('features_item'),
'sc' => PAGELAYER_SC_PREFIX.'_list_item',
'item_label' => array(
'default' => __pl('Features Item'),
'param' => 'item'
),
'count' => 3,
'text' =>strtr(__pl('add_new_item'), array('%name%' => __pl('Feature'))),
),
'features_background_color' => array(
'type' => 'color',
'label' => __pl('background_color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-pricing-features' => 'background-color:{{val}}'],
),
'features_text_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#000000',
'css' => ['{{element}} .pagelayer-pricing-ul li span' => 'color:{{val}}'],
),
'features_text_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',18,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-pricing-ul li span' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'pri_features_spacing' => array(
'label' => __pl('space_between'),
'type' => 'slider',
'screen' => 1,
'css' => ['{{element}} .pagelayer-pricing-ul > :not(:last-child) ' => 'margin-bottom:{{val}}px'],
),
'features_padding' => array(
'label' => __pl('padding'),
'type' => 'padding',
'screen' => 1,
'css' => ['{{element}} .pagelayer-pricing-features' => 'padding: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px !important;'],
),
],
'additional_info' => [
'additional_info' => array(
'type' => 'textarea',
'label' => __pl('additional_info'),
'default' => 'Some Additional Information',
'edit' => '.pagelayer-pricing-additional',
),
'additional_text_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#000000',
'css' => ['{{element}} .pagelayer-pricing-additional' => 'color:{{val}}'],
),
'addition_text_typo' => array(
'type' => 'typography',
'label' => __pl('heading_typo'),
'default' => ',16,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-pricing-additional' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
],
'button_style' => [
'price_button' => array(
'type' => 'checkbox',
'label' => __pl('show_btn'),
'default' => 'true',
),
'button_type' => array(
'type' => 'select',
'label' => __pl('type'),
'default' => 'pagelayer-btn-danger',
'list' => array(
'pagelayer-btn-default' => __pl('btn_type_default'),
'pagelayer-btn-primary' => __pl('btn_type_primary'),
'pagelayer-btn-secondary' => __pl('btn_type_secondary'),
'pagelayer-btn-success' => __pl('btn_type_success'),
'pagelayer-btn-info' => __pl('btn_type_info'),
'pagelayer-btn-warning' => __pl('btn_type_warning'),
'pagelayer-btn-danger' => __pl('btn_type_danger'),
'pagelayer-btn-dark' => __pl('btn_type_dark'),
'pagelayer-btn-light' => __pl('btn_type_light'),
'pagelayer-btn-link' => __pl('btn_type_link'),
'pagelayer-btn-custom' => __pl('btn_type_custom')
),
'req' => array(
'price_button' => 'true'
),
),
'button_size' => array(
'type' => 'select',
'label' => __pl('button_size_label'),
'default' => 'pagelayer-btn-mini',
'list' => array(
'pagelayer-btn-mini' => __pl('mini'),
'pagelayer-btn-small' => __pl('small'),
'pagelayer-btn-large' => __pl('large'),
'pagelayer-btn-extra-large' => __pl('extra_large'),
'pagelayer-btn-double-large' => __pl('double_large'),
'pagelayer-btn-custom' => __pl('custom'),
),
'req' => array(
'price_button' => 'true'
)
),
'button_size_custom' => array(
'type' => 'dimension',
'label' => __pl('padding'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-pricing-btn' => 'padding:{{val[0]}}px {{val[1]}}px;'],
'req' => array(
'button_size' => 'pagelayer-btn-custom'
)
),
'button_url' => array(
'type' => 'link',
'label' => __pl('btn_url_label'),
'selector' => '.pagelayer-pricing-btn',
'np' => 1,
'req' => array(
'price_button' => 'true'
),
),
'button_text' => array(
'type' => 'text',
'label' => __pl('button_text_label'),
'np' => 1,
'default' => 'Buy This Plan',
'edit' => '.pagelayer-pricing-btn',
'req' => array(
'price_button' => 'true'
),
),
'btn_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .pagelayer-pricing-btn' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
],
),
'btn_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'min' => '0',
'max' => '200',
'screen' => 1,
'default' => '10',
'css' => ['{{element}} .pagelayer-pricing-btn' => 'margin-top: {{val}}px;'],
'req' => [
'price_button' => 'true',
]
),
'btn_state' => array(
'type' => 'radio',
'label' => __pl('button_state'),
'default' => 'normal',
'list' => array(
'normal' => __pl('Normal'),
'hover' => __pl('Hover'),
),
'req' => array(
'price_button' => 'true',
'button_type' => 'pagelayer-btn-custom'
),
),
'button_color' => array(
'type' => 'color',
'label' => __pl('iconbox_button_color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-pricing-btn' => 'color:{{val}};'],
'req' => [
'price_button' => 'true',
'button_type' => 'pagelayer-btn-custom',
],
'show' => ['btn_state' => 'normal']
),
'button_bg_color' => array(
'type' => 'color',
'label' => __pl('button_bg_color'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-pricing-btn' => 'background-color:{{val}};'],
'req' => [
'button_type' => 'pagelayer-btn-custom',
],
'show' => ['btn_state' => 'normal']
),
'price_btn_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-pricing-btn' =>'border-style: {{val}};'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => ['btn_state' => 'normal']
),
'price_btn_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} .pagelayer-pricing-btn' => 'border-color: {{val}};'],
'req' => ['!price_btn_border_type' => ''],
'show' => ['btn_state' => 'normal']
),
'price_btn_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'css' => ['{{element}} .pagelayer-pricing-btn' =>'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px;'],
'req' => ['!price_btn_border_type' => ''],
'show' => ['btn_state' => 'normal']
),
'price_btn_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'css' => ['{{element}} .pagelayer-pricing-btn' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'show' => ['btn_state' => 'normal']
),
'pricing_btn_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} .pagelayer-pricing-btn' => '-webkit-transition: all {{val}}ms; transition: all {{val}}ms;'],
'show' => ['btn_state' => 'hover'],
),
'pricing_btn_color_hover' => array(
'type' => 'color',
'label' => __pl('iconbox_button_color'),
'default' => '',
'css' => ['{{element}} .pagelayer-pricing-btn:hover' => 'color:{{val}};'],
'show' => ['btn_state' => 'hover'],
),
'pricing_btn_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('button_bg_color_hover'),
'default' => '',
'css' => ['{{element}} .pagelayer-pricing-btn:hover' => 'background-color:{{val}};'],
'show' => ['btn_state' => 'hover'],
),
'price_btn_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-pricing-btn:hover' =>'border-style: {{val}};'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => ['btn_state' => 'hover']
),
'price_btn_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} .pagelayer-pricing-btn:hover' => 'border-color: {{val}};'],
'req' => ['!price_btn_border_type_hover' => ''],
'show' => ['btn_state' => 'hover']
),
'price_btn_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'css' => ['{{element}} .pagelayer-pricing-btn:hover' =>'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px;'],
'req' => ['!price_btn_border_type_hover' => ''],
'show' => ['btn_state' => 'hover']
),
'price_btn_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'css' => ['{{element}} .pagelayer-pricing-btn:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'show' => ['btn_state' => 'hover']
),
],
'ribbon_style' => [
'ribbon' => array(
'type' => 'checkbox',
'label' => __pl('ribbion_display'),
),
'ribbon_text' => array(
'type' => 'text',
'label' => __pl('ribbion_text'),
'default' => 'Popular',
'css' => ['{{element}} .pagelayer-pricing-ribbon'=> 'display:inline-block;'],
'req' => array(
'ribbon' => 'true'
)
),
'ribbon_text_size' => array(
'type' => 'typography',
'label' => __pl('ribbon_text_size'),
'default' => ',16,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-pricing-ribbon' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => array(
'ribbon' => 'true'
)
),
'ribbon_text_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-pricing-ribbon' => 'color:{{val}}'],
'req' => array(
'ribbon' => 'true'
)
),
'ribbon_background' => array(
'type' => 'color',
'label' => __pl('background_color'),
'default' => '#fd6129',
'css' => ['{{element}} .pagelayer-pricing-ribbon' => 'background-color:{{val}}'],
'req' => array(
'ribbon' => 'true'
)
),
],
'styles' => [
'subtitle_style' => __pl('subtitle'),
'header_style' => __pl('header_style'),
'currency_style' => __pl('currency_style'),
'price_style' => __pl('price_style'),
'period_style' => __pl('period_style'),
'feature_style' => __pl('feature_style'),
'button_style' => __pl('button_style'),
'additional_info' => __pl('addition_info'),
'ribbon_style' => __pl('ribbon_style'),
],
)
);
// Social Share Group
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_share_grp', array(
'name' => __pl('social_share'),
'group' => 'button',
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('social_share_grp'),
'sc' => PAGELAYER_SC_PREFIX.'_share',
'item_label' => array(
'default' => __pl('share_item'),
'param' => 'icon'
),
'count' => 3,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('share_name'))),
),
),
'layout_style' => [
'type' => array(
'type' => 'select',
'label' => __pl('type'),
//'css' => ['{{element}} .pagelayer-share-content:hover' => 'border-style: {{val}}'],
'addClass' => 'pagelayer-share-type-{{val}}',
'default' => 'icon-label',
'list' => [
'icon' => __pl('icon'),
'icon-label' => __pl('icon-label'),
'label' => __pl('label'),
],
),
'count' => array(
'type' => 'radio',
'label' => __pl('count_in_line'),
'default' => '',
'screen' => 1,
'css' => ['{{element}} > div' => 'width: calc(100% / {{val}});'],
'list' => array(
'' => __pl('auto'),
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '5',
'6' => '6',
),
'req' => array(
'!type' => 'icon'
)
),
'bg_shape' => array(
'type' => 'select',
'label' => __pl('icon_background_shape'),
'np' => 1,
'default' => 'pagelayer-social-shape-square',
//'css' => ['{{element}} i' => 'height:1em; width:1em; position: absolute; top: 50%; left: 50%; transform: translate(-50% , -50%);',
//'{{element}} .pagelayer-icon-holder' => 'position: relative; min-height: 1em; min-width: 1em;'],
'addClass' => '{{val}}',
'list' => array(
'pagelayer-social-bg-none' => __pl('icon_shape_none'),
'pagelayer-social-shape-circle' => __pl('icon_shape_circle'),
'pagelayer-social-shape-square' => __pl('icon_shape_square'),
'pagelayer-social-shape-rounded' => __pl('icon_shape_rounded'),
'pagelayer-social-shape-boxed' => __pl('icon_shape_boxed'),
'pagelayer-social-outline-border' => __pl('icon_shape_outline')
),
),
/* 'bg_size' => array(
'type' => 'spinner',
'label' => __pl('social_grp_size_label'),
'css' => ['{{element}} .pagelayer-icon-holder' => 'height: calc(1em + {{val}}px); width: calc(1em + {{val}}px);'],
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 10,
'req' => array(
'!bg_shape' => ''
)
), */
'align' => array(
'type' => 'radio',
'label' => __pl('obj_align_label'),
'np' => 1,
'default' => 'center',
'css' => 'text-align: {{val}};',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
)
),
/* 'group_layout' => array(
'type' => 'radio',
'label' => __pl('layout'),
'css' => ['{{element}} > div' => 'display: inline-block;'],
'default' => 'horizontal',
'list' => array(
'' => __pl('vertical'),
'horizontal' => __pl('horizontal')
)
), */
'vspace' => array(
'type' => 'spinner',
'label' => __pl('space_between_col'),
'css' => ['{{element}} .pagelayer-share' => 'padding-top: {{val}}px; padding-bottom: {{val}}px;'],
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 2,
'screen' => 1,
/* 'req' => array(
'group_layout' => 'horizontal'
) */
),
'hspace' => array(
'type' => 'spinner',
'label' => __pl('space_between_row'),
'css' => ['{{element}} .pagelayer-share' => 'padding-left: {{val}}px; padding-right: {{val}}px;'],
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 2,
'screen' => 1,
/* 'req' => array(
'group_layout' => ''
) */
),
'height' => array(
'type' => 'slider',
'label' => __pl('height'),
'css' => ['{{element}} .pagelayer-share-content' => 'min-height: {{val}}px;'],
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 35,
'screen' => 1,
),
/* 'width' => array(
'type' => 'slider',
'label' => __pl('width'),
'css' => ['{{element}} .pagelayer-share-content' => 'min-width: {{val}}px;'],
'min' => 0,
'step' => 1,
'max' => 100,
), */
],
'icon_style' => [
'icon_size' => array(
'type' => 'spinner',
'label' => __pl('social_grp_size_label'),
'css' => ['{{element}} i' => 'font-size: {{val}}px;',
'{{element}} .pagelayer-icon-holder' => 'font-size: {{val}}px;'],
'min' => 1,
'step' => 1,
'max' => 500,
'default' => 25,
'screen' => 1,
),
'icon_space' => array(
'type' => 'spinner',
'label' => __pl('space_around'),
'css' => ['{{element}} .pagelayer-icon-holder' => 'padding-left: calc(0.5em + {{val}}px); padding-right: calc(0.5em + {{val}}px);'],
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 5,
'screen' => 1,
),
'color_scheme' => array(
'type' => 'select',
'label' => __pl('color'),
'default' => 'pagelayer-scheme-official',
'addClass' => '{{val}}',
'list' => array(
'' => __pl('custom'),
'pagelayer-scheme-official' => __pl('official')
)
),
'social_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'icon_color' => array(
'type' => 'color',
'label' => __pl('social_color_label'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-share-buttons i' => 'color: {{val}} !important;'],
'req' => array(
'color_scheme' => ''
),
'show' => ['social_hover' => '']
),
'icon_bg_color' => array(
'type' => 'color',
'label' => __pl('social_bg_color_label'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-share-content' => 'background-color: {{val}} !important;'],
'req' => array(
'!bg_shape' => '',
'color_scheme' => ''
),
'show' => ['social_hover' => '']
),
'icon_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-share-content' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => ['social_hover' => '']
),
'icon_border_color' => array(
'type' => 'color',
'label' => __pl('service_box_icon_border_color_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-share-content' => 'border-color: {{val}} !important;'],
'req' => array(
'!icon_border_type' => '',
'color_scheme' => ''
),
'show' => ['social_hover' => '']
),
'icon_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-share-content' => 'border-top-width: {{val[0]}}px !important; border-right-width: {{val[1]}}px !important; border-bottom-width: {{val[2]}}px !important; border-left-width: {{val[3]}}px !important'],
'req' => [
'!icon_border_type' => ''
],
'show' => ['social_hover' => '']
),
'icon_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-share-content' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!icon_border_type' => ''
),
'show' => ['social_hover' => '']
),
'social_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay_label'),
'desc' => __pl('btn_hover_delay_desc'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} .pagelayer-share-content' => '-webkit-transition: all {{val}}ms; transition: all {{val}}ms;',
'{{element}} .pagelayer-share-content i' => '-webkit-transition: all {{val}}ms; transition: all {{val}}ms;'],
'show' => array(
'social_hover' => 'hover'
),
),
'icon_color_hover' => array(
'type' => 'color',
'label' => __pl('social_color_label'),
'css' => ['{{element}} .pagelayer-share-buttons:hover i' => 'color: {{val}} !important;'],
'req' => array(
'color_scheme' => ''
),
'show' => ['social_hover' => 'hover']
),
'icon_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('social_bg_color_label'),
'css' => ['{{element}} .pagelayer-share-content:hover' => 'background-color: {{val}} !important;'],
'req' => array(
'!bg_shape' => '',
'color_scheme' => ''
),
'show' => ['social_hover' => 'hover']
),
'icon_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-share-content:hover' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => ['social_hover' => 'hover']
),
'icon_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color_hover_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-share-content:hover' => 'border-color: {{val}} !important;'],
'req' => array(
'!icon_border_type_hover' => '',
'color_scheme' => ''
),
'show' => ['social_hover' => 'hover']
),
'icon_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-share-content:hover' => 'border-top-width: {{val[0]}}px !important; border-right-width: {{val[1]}}px !important; border-bottom-width: {{val[2]}}px !important; border-left-width: {{val[3]}}px !important'],
'req' => [
'!icon_border_type_hover' => ''
],
'show' => ['social_hover' => 'hover']
),
'icon_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-share-content:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!icon_border_type_hover' => ''
),
'show' => ['social_hover' => 'hover']
),
],
'label_style' => [
'hide_name' => array(
'type' => 'checkbox',
'label' => __pl('hide_name'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-icon-name span' => 'display: none;'],
),
'name_typo' => array(
'type' => 'typography',
'label' => __pl('quote_content_typo'),
'default' => ',15,,,,,solid,,,,',
'css' => ['{{element}} .pagelayer-icon-name' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'label_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'label_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-icon-name-span' => 'color: {{val}} !important;'],
'show' => ['label_hover' => '']
),
'label_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-icon-name-span:hover' => 'color: {{val}} !important;'],
'show' => ['label_hover' => 'hover']
)
],
'styles' => [
'layout_style' => __pl('layout_style'),
'icon_style' => __pl('icon_style'),
'label_style' => __pl('label_style'),
]
)
);
// Social Share Button
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_share', array(
'name' => __pl('icon'),
'group' => 'button',
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_share_grp'],
'html' => '
<a class="pagelayer-ele-link" title="{{icon}}" href="{{social_url}}">
<div class="pagelayer-share-content">
<div class="pagelayer-icon-holder pagelayer-share-buttons">
<i class="pagelayer-social-fa {{icon}}"></i>
</div>
<div class="pagelayer-icon-name">
<span class="pagelayer-icon-name-span">{{icon_label}}</span>
</div>
</div>
</a>',
'params' => array(
'icon' => array(
'type' => 'icon',
'label' => __pl('list_icon_label'),
'default' => 'fab fa-facebook-square',
'addAttr' => ['{{element}} .pagelayer-share-content' => 'data-icon="{{icon}}"'],
'list' => ['facebook', 'facebook-f', 'facebook-square', 'facebook-messenger', 'twitter', 'twitter-square','x-twitter', 'x-twitter-square', 'google-plus', 'google-plus-square', 'google-plus-g', 'instagram', 'linkedin', 'linkedin-in', 'pinterest', 'pinterest-p', 'pinterest-square', 'reddit-alien', 'reddit-square', 'reddit', 'skype', 'stumbleupon', 'stumbleupon-circle', 'telegram', 'telegram-plane', 'tumblr', 'tumblr-square', 'vk', 'weibo', 'whatsapp', 'whatsapp-square', 'wordpress', 'wordpress-simple', 'xing', 'xing-square', 'delicious', 'dribbble', 'dribbble-square', 'snapchat-ghost','get-pocket', 'envelope', 'envelope-open', 'envelope-o'],
),
'custom_profile' => array(
'type' => 'text',
'label' => __pl('custom_profile'),
'req' => ['icon' => ['fab fa-instagram', 'fab fa-dribbble', 'fab fa-dribbble-square']]
),
'text' => array(
'type' => 'text',
'label' => __pl('custom_label_text'),
'edit' => '.pagelayer-icon-name-span',
'np' => 1,
),
'target' => array(
'label' => __pl('open_link_in_new_window'),
'type' => 'checkbox',
'addAttr' => ['{{element}} a' => 'target="_blank"'],
'np' => 1,
),
)
)
);
// Animated heading
pagelayer_freemium_shortcode(PAGELAYER_SC_PREFIX.'_anim_heading', array(
'name' => __pl('animated_heading'),
'group' => 'text',
'innerHTML' => 'text',
'html' => '<a if-ext="{{link}}" href="{{link}}">
<div class="pagelayer-aheading-holder {{rotate_req}} {{animations}}">
<div if="{{text}}" class="pagelayer-animated-heading pagelayer-animated-title">{{text}}</div> {{rotate_html}}
<div if="{{after_text}}" class="pagelayer-animated-heading">{{after_text}}</div>
<div class="pagelayer-blobs_1"></div><div class="pagelayer-blobs_2"></div><div class="pagelayer-blobs_3"></div><div class="pagelayer-blobs_4"></div><div class="pagelayer-blobs_5"></div><div class="pagelayer-blobs_6"></div><div class="pagelayer-blobs_7"></div>
</div>
</a>',
'params' => array(
'type' => array(
'type' => 'select',
'label' => __pl('type'),
'default' => 'effects',
'addClass' => 'pagelayer-heading-{{val}}',
'list' => array(
'effects' => __pl('effects'),
'rotating' => __pl('rotating'),
),
),
'effects' => array(
'type' => 'select',
'label' => __pl('effects'),
'default' => 'blobs',
'addClass' => 'pagelayer-hEffect-{{val}}',
'list' => array(
'none' => __pl('none'),
'blobs' => __pl('blobs'),
'stroke' => __pl('stroke'),
'shadow' => __pl('shadow'),
),
'req' => [ 'type' => 'effects' ]
),
'animations' => array(
'type' => 'select',
'label' => __pl('effects'),
'default' => 'pagelayer-aheading-rotate1',
'list' => array(
'pagelayer-aheading-rotate1' => __pl('rotate-1'),
'pagelayer-aheading-rotate2' => __pl('rotate-2'),
'pagelayer-aheading-rotate3' => __pl('rotate-3'),
'pagelayer-aheading-loading-bar' => __pl('loading-bar'),
'pagelayer-aheading-slide' => __pl('slide'),
'pagelayer-aheading-clip' => __pl('clip'),
'pagelayer-aheading-zoom' => __pl('zoom'),
'pagelayer-aheading-scale' => __pl('scale'),
'pagelayer-aheading-push' => __pl('push'),
),
'req' => [ 'type' => 'rotating' ]
),
'hide_clip' => array(
'label' => __pl('clip_hide'),
'type' => 'checkbox',
'css' => ['{{element}} .pagelayer-words-wrapper:after' => 'display:none'],
'req' => [ 'animations' => 'pagelayer-aheading-clip' ]
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'np' => 1,
'default' => 'center',
'screen' => 1,
'css' => 'text-align: {{val}};',
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
)
),
),
'title_style' => [
'text' => array(
'type' => 'text',
'label' => __pl('title'),
'np' => 1,
'default' => __pl('animated_heading'),
'edit' => '.pagelayer-animated-title',
'e' => [ 'v', 'f', 'r']
),
'rotate_text' => array(
'type' => 'textarea',
'label' => __pl('rotate_text'),
'np' => 1,
'default' => __pl('rotate_default'),
'req' => [ 'type' => 'rotating' ]
),
'after_text' => array(
'type' => 'text',
'label' => __pl('after_text'),
'np' => 1,
'req' => [ 'type' => 'rotating' ]
),
'typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',40,,700,,,solid,,,,',
'css' => ['{{element}} .pagelayer-animated-heading' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'color_type' => array(
'type' => 'radio',
'label' => __pl(''),
'np' => 1,
'default' => 'color',
'list' => array(
'color' => __pl('color'),
'gradient' => __pl('gradient'),
),
),
'color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#A236FA',
'css' => [
'{{element}} .pagelayer-animated-heading' => 'background:{{val}}; -webkit-background-clip: text;',
'{{element}}.pagelayer-hEffect-shadow .pagelayer-animated-heading' => 'color:{{val}};',
'{{element}} .pagelayer-rotating-text *' => 'background:{{val}}; -webkit-background-clip: text;',
'{{element}} .pagelayer-aheading-loading-bar .pagelayer-words-wrapper:after' => 'background:{{val}};',
'{{element}} .pagelayer-aheading-clip .pagelayer-words-wrapper:after' => 'background:{{val}};'
],
'req' => ['color_type' => 'color']
),
'gradient' => array(
'type' => 'gradient',
'label' => '',
'default' => '150,#44d3f6,23,#72e584,45,#2ca4eb,100',
'css' => [
'{{element}} .pagelayer-animated-heading' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%); -webkit-background-clip: text;',
'{{element}} .pagelayer-rotating-text *' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%); -webkit-background-clip: text;',
'{{element}} .pagelayer-aheading-loading-bar .pagelayer-words-wrapper:after' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%);',
'{{element}} .pagelayer-aheading-clip .pagelayer-words-wrapper:after' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%);'
],
'req' => [
'color_type' => 'gradient',
'!effects' => 'shadow'
]
),
],
'misc_style' => [
'blob_1' => array(
'type' => 'color',
'label' => __pl('blob_1_color'),
'default' => '#ff1493',
'css' => ['{{element}} .pagelayer-blobs_1' => 'background:{{val}}'],
'req' => [
'effects' => 'blobs',
'type' => 'effects'
]
),
'blob_2' => array(
'type' => 'color',
'label' => __pl('blob_2_color'),
'default' => '#ff4500',
'css' => ['{{element}} .pagelayer-blobs_2' => 'background:{{val}}'],
'req' => [
'effects' => 'blobs',
'type' => 'effects'
]
),
'blob_3' => array(
'type' => 'color',
'label' => __pl('blob_3_color'),
'default' => '#00ff00',
'css' => ['{{element}} .pagelayer-blobs_3' => 'background:{{val}}'],
'req' => [
'effects' => 'blobs',
'type' => 'effects'
]
),
'blob_4' => array(
'type' => 'color',
'label' => __pl('blob_4_color'),
'default' => '#ff0000',
'css' => ['{{element}} .pagelayer-blobs_4' => 'background:{{val}}'],
'req' => [
'effects' => 'blobs',
'type' => 'effects'
]
),
'blob_5' => array(
'type' => 'color',
'label' => __pl('blob_5_color'),
'default' => '#ffff00',
'css' => ['{{element}} .pagelayer-blobs_5' => 'background:{{val}}'],
'req' => [
'effects' => 'blobs',
'type' => 'effects'
]
),
'blob_6' => array(
'type' => 'color',
'label' => __pl('blob_6_color'),
'default' => '#00ffff',
'css' => ['{{element}} .pagelayer-blobs_6' => 'background:{{val}}'],
'req' => [
'effects' => 'blobs',
'type' => 'effects'
]
),
'blob_7' => array(
'type' => 'color',
'label' => __pl('blob_7_color'),
'default' => '#ff8c00',
'css' => ['{{element}} .pagelayer-blobs_7' => 'background:{{val}}'],
'req' => [
'effects' => 'blobs',
'type' => 'effects'
]
),
'stroke' => array(
'type' => 'slider',
'label' => __pl('stroke_thickness'),
'min' => 1,
'step' => 1,
'max' => 50,
'default' => 5,
'screen' => 1,
'css' => ['{{element}} .pagelayer-animated-heading' => '-webkit-text-stroke: {{val}}px transparent;'],
'req' => [ 'effects' => 'stroke' ]
),
'stroke_color' => array(
'type' => 'color',
'label' => __pl('stroke_color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-animated-heading' => 'color:{{val}}'],
'req' => [ 'effects' => 'stroke' ]
),
'shadow_color' => array(
'type' => 'shadow',
'label' => __pl('shadow'),
'default' => '2,2,,#999999',
'screen' => 1,
'css' => ['{{element}} .pagelayer-animated-heading' => 'text-shadow: {{val[0]}}px {{val[1]}}px #fff, calc({{val[0]}}px * 2) calc({{val[1]}}px * 2) {{val[3]}};'],
'req' => [ 'type' => 'effects', 'effects' => 'shadow' ]
),
'rotate_color' => array(
'type' => 'color',
'label' => __pl('rotate_color'),
'css' => [
'{{element}} .pagelayer-rotating-text *' => 'background:{{val}}; -webkit-background-clip: text;',
'{{element}} .pagelayer-aheading-loading-bar .pagelayer-words-wrapper:after' => 'background:{{val}};',
'{{element}} .pagelayer-aheading-clip .pagelayer-words-wrapper:after' => 'background:{{val}};'
],
'req' => ['type' => 'rotating']
),
],
'styles' => [
'title_style' => __pl('title_style'),
'misc_style' => __pl('misc_style'),
]
)
);
main/custom_fonts.php 0000644 00000022072 15152652077 0010741 0 ustar 00 <?php
//////////////////////////////////////////////////////////////
//===========================================================
// custom_fonts.php
//===========================================================
// PAGELAYER
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Pulkit Gupta
// Date: 23rd Jan 2017
// Time: 23:00 hrs
// Site: http://pagelayer.com/wordpress (PAGELAYER)
// ----------------------------------------------------------
// Please Read the Terms of use at http://pagelayer.com/tos
// ----------------------------------------------------------
//===========================================================
// (c)Pagelayer Team
//===========================================================
//////////////////////////////////////////////////////////////
// Are we being accessed directly ?
if(!defined('PAGELAYER_PRO_VERSION')) {
exit('Hacking Attempt !');
}
// This function will handle the custom fonts pages in Pagelayer
add_action('init', 'pagelayer_custom_fonts_page', 9999);
function pagelayer_custom_fonts_page() {
global $pagelayer;
// Custom fonts supports
$supports = array(
'title', // post title
);
// Add custom fonts lables
$labels = array(
'name' => _x('Custom Fonts', 'plural'),
'singular_name' => _x('Custom Font', 'singular'),
'menu_name' => _x('Custom Fonts', 'admin menu'),
'name_admin_bar' => _x('Custom Fonts', 'admin bar'),
'add_new' => _x('Add New', 'Add'),
'add_new_item' => __('Add New'),
'new_item' => __('New Font'),
'edit_item' => __('Edit Font'),
'view_item' => __('View Font'),
'all_items' => __('All Fonts'),
'search_items' => __('Search Fonts'),
'not_found' => __('No Pagelayer custom fonts found'),
);
$args = array(
'supports' => $supports,
'labels' => $labels,
'public' => false,
'show_in_menu' => false,
'publicly_queryable' => true,
'show_ui' => true,
'exclude_from_search' => true,
'show_in_nav_menus' => false,
'has_archive' => false,
'rewrite' => false,
);
// Register custom post type
register_post_type(PAGELAYER_FONT_POST_TYPE, $args);
remove_post_type_support( PAGELAYER_FONT_POST_TYPE, 'editor');
}
// Removing extra columns
add_filter( 'manage_'.PAGELAYER_FONT_POST_TYPE.'_posts_columns', 'pagelayer_add_custom_columns' );
function pagelayer_add_custom_columns($columns){
unset( $columns['author'] );
unset( $columns['date'] );
$columns['pl-preview'] = __('Preview');
return $columns;
}
// Adding preview column data
add_action( 'manage_'.PAGELAYER_FONT_POST_TYPE.'_posts_custom_column' , 'pagelayer_add_custom_columns_data', 10, 2 );
function pagelayer_add_custom_columns_data( $column, $post_id ){
if($column == __('pl-preview')){
$font_link = get_post_meta( $post_id, 'pagelayer_font_link', true );
echo '<style>@font-face { font-family: "'.get_the_title($post_id).'"; src: url("'.wp_unslash( $font_link ).'"); }</style>';
echo '<span style="font-family:\''.get_the_title($post_id).'\'; font-size:16px" >Preview of the CUSTOM font</span>';
}
}
// Removing row actions
add_filter( 'post_row_actions', 'pagelayer_remove_row_actions', 10, 1 );
function pagelayer_remove_row_actions( $actions ){
if( get_post_type() === PAGELAYER_FONT_POST_TYPE ){
foreach($actions as $action => $html){
if($action == 'edit' || $action == 'trash' || $action == 'clone' || $action == 'untrash' || $action == 'delete'){
continue;
}else{
unset($actions[$action]);
}
}
}
return $actions;
}
// Removing Screen options
add_filter('screen_options_show_screen', 'pagelayer_remove_screen_options', 1, 1);
function pagelayer_remove_screen_options($show_screen) {
if(get_post_type() == PAGELAYER_FONT_POST_TYPE) {
return false;
}
return $show_screen;
}
// Removing all other metaboxes.
add_action('admin_init', function() {pagelayer_remove_all_metaboxes(PAGELAYER_FONT_POST_TYPE);});
function pagelayer_remove_all_metaboxes($type) {
add_filter("get_user_option_meta-box-order_{$type}", function() use($type) {
global $wp_meta_boxes;
$publishbox = $wp_meta_boxes[$type]['side']['core']['submitdiv'];
$fontsBox = $wp_meta_boxes[$type]['normal']['default']['pl-fonts-link-box'];
$wp_meta_boxes[$type] = array(
'side' => array(
'core' => array(
'submitdiv' => $publishbox
)
),
'normal' => array(
'default' => array(
'pl-fonts-link-box' => $fontsBox
)
)
);
return array();
}, PHP_INT_MAX);
}
// Hiding extra options of publish metabox
add_action( 'admin_head', 'pagelayer_hide_publish_options' );
function pagelayer_hide_publish_options() {
if(get_post_type() == PAGELAYER_FONT_POST_TYPE){
echo '<style>.submitbox #minor-publishing{ display: none; }</style>';
}
}
// Adding source metabox
add_action('add_meta_boxes', 'pagelayer_add_meta_box');
function pagelayer_add_meta_box(){
add_meta_box( 'pl-fonts-link-box', _x('Source', 'font source'), 'pagelayer_font_link_metabox', PAGELAYER_FONT_POST_TYPE, 'normal', 'default', null);
}
function pagelayer_font_link_metabox($object){
wp_enqueue_media();
wp_nonce_field('pagelayer-font-post', 'pagelayer');
$link = get_post_meta($object->ID, 'pagelayer_font_link', true);
?>
<div>
<table width="100%">
<tr>
<th valign="top" style="text-align:right; padding-right:20px; width:20%;"><?php echo __('Font File');?> : </th>
<td>
<div>
<input type="text" class="pagelayer_font_input" id="pl_font_link" name="pagelayer_font_link" onclick="fontUpload(event)" style="width:70%" value="<?php echo wp_unslash($link); ?>" autocomplete="false" readonly="true"/>
<button type="button" class="button button-light" onclick="fontUpload(event)">Upload Font</button>
</div>
</td>
</tr>
</table>
</div>
<script>
window.onload = function(){
jQuery('#submitdiv').on('click', '#publish', function(e){
if(jQuery('#title').val()==''){
alert('Please insert title of the page');
return false;
}else{
if(jQuery('#pl_font_link').val()==''){
alert('Please insert link of the font');
return false;
}else{
return true;
}
}
});
}
function fontUpload(e){
var allowed_mime_type = ['.ttf', '.woff', '.woff2','.otf'];
var allClear = false;
var custom_uploader = wp.media({
title: 'Upload Font',
library : {
type : 'font'
},
button: {
text: 'Select Font' // button label text
},
multiple: false
}).on('select', function() { // it also has "open" and "close" events
var attachment = custom_uploader.state().get('selection').first().toJSON();
for(var i=0; i<allowed_mime_type.length; i++){
if(attachment['filename'].indexOf(allowed_mime_type[i]) != -1){
allClear=true;
break;
}
}
if(allClear){
jQuery('.pagelayer_font_input').val(attachment['url']);
}else{
alert('Kindly insert a correct font file. Allowed font file types are (otf|ttf|woff|woff2)');
}
}).open();
}
</script>
<?php }
// Saving source metabox content
add_action('save_post', 'pagelayer_save_source_meta_box', 10, 3);
function pagelayer_save_source_meta_box($post_id, $post, $update){
if(PAGELAYER_FONT_POST_TYPE != $post->post_type){
return $post_id;
}
// DO an admin referrer check
if(!empty($_POST)){
check_admin_referer('pagelayer-font-post', 'pagelayer');
}else{
return $post_id;
}
$meta_box_link_value = '';
if(isset($_POST['pagelayer_font_link'])){
$meta_box_link_value = wp_unslash($_POST['pagelayer_font_link']);
}
update_post_meta($post_id, 'pagelayer_font_link', $meta_box_link_value );
}
// Adding custom mime type
add_filter('upload_mimes', 'pagelayer_custom_mime_types', 1, 1);
function pagelayer_custom_mime_types($mime_types = array()){
global $pagelayer;
forEach($pagelayer->allowed_mime_type as $key => $value){
$mime_types[$key]=$value;
}
return $mime_types;
}
// Adding custom mime type
add_filter( 'mime_types', 'pagelayer_mime_types' );
function pagelayer_mime_types($default_mimes){
global $pagelayer;
forEach($pagelayer->allowed_mime_type as $key => $value){
$default_mimes[$key]=$value;
}
return $default_mimes;
}
// Adding custom mime type
add_filter( 'wp_check_filetype_and_ext', 'pagelayer_check_filetype_and_ext', 10, 5 );
function pagelayer_check_filetype_and_ext( $types, $file, $filename, $mimes, $real_mime = false ){
global $pagelayer;
forEach($pagelayer->allowed_mime_type as $key => $value){
if ( false !== strpos( $filename, '.'.$key ) ) {
$types['ext'] = $key;
$types['type'] = $value;
}
}
return $types;
}
// Removing notification.
add_filter( 'post_updated_messages', 'pagelayer_delete_notification' );
function pagelayer_delete_notification( $messages ){
if(get_post_type() == PAGELAYER_FONT_POST_TYPE){
unset($messages['post'][1]);
unset($messages['post'][6]);
return $messages;
}
}
main/download_google_fonts.php 0000644 00000007060 15152652077 0012572 0 ustar 00 <?php
//////////////////////////////////////////////////////////////
//===========================================================
// download_google_fonts.php
//===========================================================
// PAGELAYER
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Pulkit Gupta
// Date: 23rd Jan 2017
// Time: 23:00 hrs
// Site: http://pagelayer.com/wordpress (PAGELAYER)
// ----------------------------------------------------------
// Please Read the Terms of use at http://pagelayer.com/tos
// ----------------------------------------------------------
//===========================================================
// (c)Pagelayer Team
//===========================================================
//////////////////////////////////////////////////////////////
// Are we being accessed directly ?
if(!defined('PAGELAYER_PRO_VERSION')) {
exit('Hacking Attempt !');
}
// Download google fonts
function pagelayer_pro_download_google_fonts($url){
global $wp_filesystem;
if (!defined('FS_METHOD')) {
define( 'FS_METHOD', 'direct' );
}
$uploads_dir = wp_upload_dir();
$font_url = $uploads_dir['baseurl'].'/pl-google-fonts';
$font_dir = $uploads_dir['basedir'].'/pl-google-fonts';
// Find hash of current url
$url_md5 = md5($url);
$local_path = $font_dir.'/'.$url_md5.'.css';
if(file_exists( $local_path ) ){
return $local_path;
}
// Load Wp filesystem class
if ( ! function_exists( 'WP_Filesystem' ) ) {
$file_path = ABSPATH . 'site-admin/includes/file.php';
$file_path = file_exists($file_path) ? $file_path : ABSPATH . 'wp-admin/includes/file.php';
include $file_path;
}
WP_Filesystem();
// Is google fonts directory exists?
if( !file_exists( $font_dir ) ){
wp_mkdir_p( $font_dir );
}
//verify fonts upload directory exists or not
$fonts_dir = $font_dir.'/fonts';
if( !file_exists( $fonts_dir ) ){
wp_mkdir_p($fonts_dir);
}
// Fetch stylesheet
$useragent = array( 'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36');
$response = wp_remote_get($url, $useragent);
$response_code = wp_remote_retrieve_response_code($response);
if ( is_wp_error( $response ) || $response_code !== 200 ) {
return false;
}
$remote_file = wp_remote_retrieve_body($response);
// Collect google fonts urls
preg_match_all( '/url\(.*?\)/i', $remote_file, $font_links );
if(!isset( $font_links[0] ) || count( $font_links[0] ) < 1 ) {
return false;
}
foreach( $font_links[0] as $key => $_fontlink ){
$download_url = str_ireplace( array('url(',')'), '', $_fontlink );
if(empty($download_url)){
continue;
}
$parse_url = parse_url($download_url);
$font_name = basename($parse_url['path']);
$local_file = $font_dir.'/fonts/'.$font_name;
$_local_file = './fonts/'.$font_name;
if( empty( $font_name ) || strpos($font_name, '.woff2') === false ){
continue;
}
// Download font files
if(!file_exists( $local_file ) ){
$tmp_file = download_url( $download_url );
if(is_wp_error( $tmp_file )){
continue;
}
$wp_filesystem->copy( $tmp_file, $local_file );
$wp_filesystem->delete( $tmp_file );
}
// Update font links
$remote_file = str_replace( $download_url, $_local_file, $remote_file );
}
// Save local stylesheet
$wp_filesystem->put_contents( $local_path, $remote_file );
return $local_path;
} main/premium.php 0000644 00001536722 15152652077 0007711 0 ustar 00 <?php
//////////////////////////////////////////////////////////////
//===========================================================
// premium.php
//===========================================================
// PAGELAYER
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Pulkit Gupta
// Date: 23rd Jan 2017
// Time: 23:00 hrs
// Site: http://pagelayer.com/wordpress (PAGELAYER)
// ----------------------------------------------------------
// Please Read the Terms of use at http://pagelayer.com/tos
// ----------------------------------------------------------
//===========================================================
// (c)Pagelayer Team
//===========================================================
//////////////////////////////////////////////////////////////
// Are we being accessed directly ?
if(!defined('PAGELAYER_PRO_VERSION')) {
exit('Hacking Attempt !');
}
global $pagelayer;
// Image Hotspot
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_image_hotspot', array(
'name' => __pl('Image Hotspot'),
'group' => 'image',
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
'holder' => '.pagelayer-icon-holder',
'html' => '<div class="pagelayer-image-hotspot-holder">
<img class="pagelayer-img" src="{{{img-url}}}" title="{{{img-title}}}" alt="{{{img-alt}}}" />
<div class="pagelayer-icon-holder pagelayer-hotspots-{{common_tip_show}} pagelayer-{{common_tip_theme}}"></div>
</div>',
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('hotspots'),
'sc' => PAGELAYER_SC_PREFIX.'_hotspot',
'item_label' => array(
'default' => __pl('hotspot'),
'param' => 'title',
),
'count' => 1,
'text' => __pl('Add New Hotspot'),
),
'img' => array(
'type' => 'image',
'label' => __pl('Main Image'),
'default' => PAGELAYER_URL.'/images/default-image.png',
'desc' => __pl('Choose an image from Media Library'),
'css' => ['{{element}} .pagelayer-icon-holder' => 'position:absolute; top:0; left:0; height:100%; width:100%;', '{{element}} .pagelayer-icon-holder .pagelayer-ele-wrap' => 'display: contents', '{{element}} .pagelayer-image-hotspot-holder' => 'position:relative'],
),
'icon_anim_hover' => array(
'type' => 'select',
'label' => __pl('icon_animation'),
'list' => [
'' => __pl('none'),
'grow' => __pl('Grow'),
'shrink' => __pl('Shrink'),
'pulse' => __pl('Pulse'),
'pulse-grow' => __pl('Pulse Grow'),
'pulse-shrink' => __pl('Pulse Shrink'),
'push' => __pl('Push'),
'pop' => __pl('Pop'),
'buzz' => __pl('Buzz'),
'buzz-out' => __pl('Buzz Out'),
'float' => __pl('Float'),
'sink' => __pl('Sink'),
'bob' => __pl('Bob'),
'hang' => __pl('Hang'),
'bounce-in' => __pl('Bounce In'),
'bounce-out' => __pl('Bounce Out'),
'rotate' => __pl('Rotate'),
'grow-rotate' => __pl('Grow Rotate'),
'skew-forward' => __pl('Skew Forward'),
'skew-backward' => __pl('Skew Backward'),
'wobble-vertical' => __pl('Wobble Vertical'),
'wobble-horizontal' => __pl('Wobble Horizontal'),
'wobble-bottom-to-right' => __pl('Wobble Bottom To Right'),
'wobble-top-to-right' => __pl('Wobble Top To Right'),
'wobble-top' => __pl('Wobble Top'),
'wobble-bottom' => __pl('Wobble Bottom'),
'wobble-skew' => __pl('Wobble Skew'),
],
'addAttr' => ['{{element}} .pagelayer-icon-holder' => 'pagelayer-animation="{{icon_anim_hover}}"'],
),
/* 'common_hotspot_color' => array(
'type' => 'color',
'label' => __pl('Hotspot Theme'),
'default' => 'mp-text-color-red',
'list' => array(
'mp-text-color-red' => __pl('red'),
'mp-text-color-dark-grey' => __pl('grey'),
'mp-text-color-black' => __pl('black'),
'custom' => __pl('custom'),
),
),
'common_hotspot_custom_color' => array(
'type' => 'color',
'label' => __pl('Hotspot Color'),
'default' => '#e25441',
'req' => array(
'common_hotspot_color' => 'custom'
)
),
'common_plus_color' => array(
'type' => 'color',
'label' => __pl('Hotspot Icon Color'),
'default' => '#ffffff',
'req' => array(
'common_hotspot_color' => 'custom'
)
),
'common_hotspot_size' => array(
'type' => 'radio',
'label' => __pl('Hotspot Size'),
'default' => 'normal',
'list' => array(
'small' => __pl('small'),
'normal' => __pl('middle'),
'big' => __pl('large'),
)
),*/
'common_tip_show' => array(
'type' => 'select',
'label' => __pl('tooltip_display'),
'default' => 'hover',
'list' => array(
'hover' => __pl('On Hover'),
'always' => __pl('always'),
'click' => __pl('On Click'),
)
),
)
)
);
// Hotspot
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_hotspot', array(
'name' => __pl('hotspot'),
'group' => 'image',
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_image_hotspot'],
'innerHTML' => 'tooltip_text',
'html' => '<div class="pagelayer-hotspots-icon-holder">
<div if-ext="{{icon_pulse}}" class="pagelayer-image-hotspots-anim">
<i class="{{icon}}"></i>
<div if="{{tooltip_text}}" class="pagelayer-tooltip-text pagelayer-tooltip-{{tooltip_position}}">
{{tooltip_text}}
</div>
</div>
</div>',
'params' => array(
'title' => array(
'type' => 'text',
'label' => __pl('title'),
'default' => 'Lorem',
),
'align_top' => array(
'type' => 'slider',
'label' => __pl('verticle_postion'),
'default' => 50,
'min' => 0,
'max' => 100,
'css' => ['{{element}}' => 'top: {{val}}%'],
),
'align_left' => array(
'type' => 'slider',
'label' => __pl('horizontal_pos'),
'default' => 50,
'min' => 0,
'max' => 100,
'css' => ['{{element}}' => 'left: {{val}}%'],
),
),
'icon_style' => [
'icon' => array(
'type' => 'icon',
'label' => __pl('icon'),
'default' => 'fas fa-map-pin',
'css' => ['{{element}}' => 'position: absolute;transform: translateY(-{{align_top}}%) translateX(-{{align_left}}%);display: inline-block; cursor: pointer;'],
),
'icon_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-hotspots-icon-holder .fas' => 'color:{{val}}'],
),
'icon_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-hotspots-icon-holder .fas' => 'background-color:{{val}}'],
),
'icon_pulse' => array(
'type' => 'checkbox',
'label' => __pl('pulse'),
'default' => 'true',
),
'icon_pluse_color' => array(
'type' => 'color',
'label' => __pl('pulse_color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-image-hotspots-anim::before' => 'background-color:{{val}}'],
),
'icon_rounded' => array(
'type' => 'checkbox',
'label' => __pl('rounded'),
'default' => 'true',
'css' => ['{{element}} .pagelayer-hotspots-icon-holder .fas' => 'border-radius:100%', '{{element}} .pagelayer-image-hotspots-anim::before ' => 'border-radius:100%'],
),
'icon_padding' => array(
'type' => 'dimension',
'label' => __pl('padding'),
'screen' => 1,
'default' => '15,18',
'css' => ['{{element}} .pagelayer-hotspots-icon-holder .fas' => 'padding:{{val[0]}}px {{val[1]}}px;margin-right:1px'],
),
],
'tooltip_style' => [
'tooltip_text' => array(
'type' => 'editor',
'label' => __pl('text'),
'default' => 'Lorem ipsum dolor sit amet',
'edit' => '.pagelayer-tooltip-text',
),
'tooltip_position' => array(
'type' => 'select',
'label' => __pl('position'),
'default' => 'top',
'list' => array(
'top' => __pl('top'),
'right' => __pl('right'),
'bottom' => __pl('bottom'),
'left' => __pl('left'),
)
),
'common_tip_theme' => array(
'type' => 'select',
'label' => __pl('theme'),
'default' => 'tooltipster-default',
'list' => array(
'tooltipster-default' => __pl('dark'),
/* 'tooltipster-light' => __pl('silver'),
'tooltipster-noir' => __pl('noir'),
'tooltipster-shadow' => __pl('shadow'), */
'custom' => __pl('custom'),
),
),
'common_custom_bg_theme' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#eb002c',
'req' => array(
'common_tip_theme' => 'custom'
),
'css' => ['{{element}} .pagelayer-tooltip-text' => 'background-color:{{val}}', '{{element}} .pagelayer-tooltip-text:after' => 'border-color:transparent !important ;border-{{tooltip_position}}-color:{{val}} !important']
),
'common_custom_font_theme' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'req' => array(
'common_tip_theme' => 'custom'
),
'css' => ['{{element}} .pagelayer-tooltip-text' => 'color:{{val}}']
),
],
'styles' => [
'icon_style' => __pl('icon'),
'tooltip_style' => __pl('tooltip')
]
)
);
// Audio
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_audio', array(
'name' => __pl('audio'),
'group' => 'media',
'html' => '<div class="pagelayer-audio-container">
<audio controls>
<source src="{{{src-url}}}"></source>
</audio>
</div>',
'params' => array(
'src' => array(
'type' => 'audio',
'label' => __pl('wp_audio_source_title'),
'desc' => __pl('wp_audio_source_desc'),
'default' => 'http://wpcom.files.wordpress.com/2007/01/mattmullenweg-interview.mp3',
),
'autoplay' => array(
'type' => 'checkbox',
'label' => __pl('wp_audio_autoplay_title'),
'desc' => __pl('wp_audio_autoplay_desc'),
'default' => '',
'addAttr' => ['{{element}} audio' => 'autoplay="autoplay"'],
),
'loop' => array(
'type' => 'checkbox',
'label' => __pl('wp_audio_loop_title'),
'desc' => __pl('wp_audio_loop_desc'),
'default' => '',
'addAttr' => ['{{element}} audio' => 'loop="loop"'],
),
'width' => array(
'type' => 'slider',
'label' => __pl('shape_width'),
'units' => ['%', 'px'],
'min' => 0,
'max' => 100,
'screen' => 1,
'css' => 'width: {{val}} !important',
),
'padding' => array(
'type' => 'dimension',
'label' => __pl('padding'),
'default' => '10,10',
'screen' => 1,
'css' => ['{{element}} .pagelayer-audio-container' => 'padding-top: {{val[0]}}px; padding-bottom: {{val[0]}}px; padding-left: {{val[1]}}px; padding-right: {{val[1]}}px;'],
),
),
'playpause_style' => [
'playpause_size' => array(
'type' => 'spinner',
'label' => __pl('size'),
'default' => 12,
'min' => 0,
'max' => 200,
'screen' => 1,
'css' => ['{{element}} .mejs-playpause-button button' => 'font-size:{{val}}px;']
),
'playpause_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#333333',
'css' => ['{{element}} .mejs-playpause-button button:after' => 'color:{{val}}']
),
'playpause_space' => array(
'type' => 'spinner',
'label' => __pl('space_around'),
'default' => 5,
'min' => -100,
'max' => 100,
'screen' => 1,
'css' => ['{{element}} .mejs-playpause-button button' => 'padding:calc( 1em + {{val}}px ) !important;']
),
'playpause_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#E5E5E5',
'css' => ['{{element}} .mejs-playpause-button button' => 'background-color:{{val}} !important;']
),
'playpause_radius' => array(
'type' => 'slider',
'label' => __pl('border_radius'),
'default' => 50,
'min' => 0,
'max' => 50,
'screen' => 1,
'css' => ['{{element}} .mejs-playpause-button button' => 'border-radius: {{val}}%;']
),
],
'duration_style' => [
'show_duration' => array(
'type' => 'checkbox',
'label' => __pl('show'),
'default' => 'true',
'addAttr' => ['{{element}} .pagelayer-audio-container' => 'show_duration="{{show_duration}}"'],
),
'duration_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#333333',
'css' => ['{{element}} .mejs-duration' => 'color:{{val}} !important;']
),
],
'progress_style' => [
'show_progress' => array(
'type' => 'checkbox',
'label' => __pl('show'),
'default' => 'true',
'addAttr' => ['{{element}} .pagelayer-audio-container' => 'show_progress="{{show_progress}}"'],
),
'progress_height' => array(
'type' => 'slider',
'label' => __pl('progress_height'),
'units' => ['px', '%'],
'min' => 0,
'max' => 100,
'screen' => 1,
'default' => 10,
'css' => [
'{{element}} .mejs-time-total' => 'height:{{val}} !important;',
],
),
'progress_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => 'rgba(0,0,0,0.1)',
'css' => ['{{element}} .mejs-controls .mejs-time-rail .mejs-time-total' => 'background:{{val}} !important;']
),
'progress_loaded' => array(
'type' => 'color',
'label' => __pl('loaded_color'),
'default' => '#777777',
'css' => ['{{element}} .mejs-time-loaded' => 'background:{{val}} !important;']
),
'progress_current' => array(
'type' => 'color',
'label' => __pl('current_color'),
'default' => '#0986c0',
'css' => ['{{element}} .mejs-time-current' => 'background:{{val}} !important;']
),
'progress_hovered' => array(
'type' => 'color',
'label' => __pl('hovered_color'),
'default' => '#b5d2f9',
'css' => ['{{element}} .mejs-time-hovered' => 'background:{{val}} !important;']
),
'progress_handle' => array(
'type' => 'color',
'label' => __pl('handle_color'),
'default' => '#000000',
'css' => [
'{{element}} .mejs-time-handle' => 'background:{{val}} !important;',
'{{element}} .mejs-time-handle-content' => 'background:{{val}} !important;',
]
),
],
'current_style' => [
'show_current' => array(
'type' => 'checkbox',
'label' => __pl('show'),
'default' => 'true',
'addAttr' => ['{{element}} .pagelayer-audio-container' => 'show_current="{{show_current}}"'],
),
'current_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#333333',
'css' => ['{{element}} .mejs-currenttime' => 'color:{{val}} !important;']
),
],
'volume_style' => [
'show_volume' => array(
'type' => 'checkbox',
'label' => __pl('show'),
'default' => 'true',
'addAttr' => ['{{element}} .pagelayer-audio-container' => 'show_volume="{{show_volume}}"'],
),
'volume_size' => array(
'type' => 'spinner',
'label' => __pl('size'),
'default' => 12,
'min' => 0,
'max' => 200,
'screen' => 1,
'css' => ['{{element}} .mejs-volume-button button' => 'font-size:{{val}}px;']
),
'volume_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#333333',
'css' => ['{{element}} .mejs-volume-button button:after' => 'color:{{val}}']
),
'volume_space' => array(
'type' => 'spinner',
'label' => __pl('space_around'),
'default' => 5,
'min' => -100,
'max' => 100,
'screen' => 1,
'css' => ['{{element}} .mejs-volume-button button' => 'padding:calc( 1em + {{val}}px ) !important;']
),
'volume_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#E5E5E5',
'css' => ['{{element}} .mejs-volume-button button' => 'background-color:{{val}} !important;']
),
'volume_radius' => array(
'type' => 'slider',
'label' => __pl('border_radius'),
'default' => 50,
'min' => 0,
'max' => 50,
'screen' => 1,
'css' => ['{{element}} .mejs-volume-button button' => 'border-radius: {{val}}%;']
),
],
'volume_slider' => [
'volume_height' => array(
'type' => 'slider',
'label' => __pl('progress_height'),
'units' => ['px', '%'],
'min' => 0,
'max' => 100,
'screen' => 1,
'default' => 10,
'css' => [
'{{element}} .mejs-horizontal-volume-total' => 'height:{{val}} !important;'
],
),
'volume_width' => array(
'type' => 'slider',
'label' => __pl('shape_width'),
'min' => 0,
'max' => 100,
'default' => 35,
'screen' => 1,
'css' => [
'{{element}} .mejs-horizontal-volume-total' => 'width:{{val}}px !important;',
'{{element}} .mejs-horizontal-volume-slider' => 'width: calc( {{val}}px + 10px ) !important;',
],
),
'vslides_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => 'rgba(0,0,0,0.1)',
'css' => ['{{element}} .mejs-horizontal-volume-total' => 'background:{{val}} !important;']
),
'vslider_current' => array(
'type' => 'color',
'label' => __pl('current_color'),
'default' => '#777777',
'css' => ['{{element}} .mejs-horizontal-volume-current' => 'background:{{val}} !important;']
),
],
'styles' => [
'playpause_style' => __pl('playpause_style'),
'duration_style' => __pl('duration_style'),
'progress_style' => __pl('progress_style'),
'current_style' => __pl('current_style'),
'volume_style' => __pl('volume_style'),
'volume_slider' => __pl('volume_slider'),
]
)
);
// Video Slider
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_video_slider', array(
'name' => __pl('video_slider'),
'group' => 'media',
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
'prevent_inside' => ['pl_slides'],
'holder' => '.pagelayer-video-slider-holder',
'child_selector' => '>.pagelayer-owl-stage-outer>.pagelayer-owl-stage>.pagelayer-owl-item', // Make it very specifc
'html' => '<div class="pagelayer-video-slider-holder pagelayer-owl-holder pagelayer-owl-carousel pagelayer-owl-theme"></div>',
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('Videos'),
'sc' => PAGELAYER_SC_PREFIX.'_video',
'item_label' => array(
'default' => __pl('video'),
'param' => 'video_type'
),
'count' => 2,
'text' => __pl('add_media'),
),
),
'slider_options' => $pagelayer->slider_options,
'arrow_styles' => $pagelayer->slider_arrow_styles,
'pager_styles' => $pagelayer->slider_pager_styles,
'styles' => [
'slider_options' => __pl('slider_options'),
'arrow_styles' => __pl('arrow_styles'),
'pager_styles' => __pl('pager_styles'),
],
)
);
// Download Button
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_download', array(
'name' => __pl('Download Button'),
'group' => 'button',
'html' => '<a href="{{{attachment-url}}}" target="_blank" class="pagelayer-btn-holder pagelayer-ele-link {{type}} {{size}} {{icon_position}}" download="">
<i class="{{icon}} pagelayer-btn-icon"></i>
<span class="pagelayer-btn-text">{{text}}</span>
<i class="{{icon}} pagelayer-btn-icon"></i>
</a>',
'params' => array(
'text' => array(
'type' => 'text',
'label' => __pl('button_text_label'),
'default' => 'Download',
'edit' => '.pagelayer-btn-text'
),
'attachment' => array(
'type' => 'media',
'label' => __pl('media_file'),
'desc' => __pl('media_description'),
'default' => '',
),
'file_name' => array(
'type' => 'text',
'label' => __pl('Download File Name'),
'addAttr' => ['{{element}} a.pagelayer-btn-holder' => 'download="{{file_name}}"']
),
'full_width' => array(
'type' => 'checkbox',
'label' => __pl('stretch'),
'screen' => 1,
'css' => ['{{element}} a' => 'width: 100%; text-align: center;']
),
'align' => array(
'type' => 'radio',
'label' => __pl('obj_align_label'),
'default' => 'left',
'screen' => 1,
'css' => 'text-align: {{val}}',
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
),
'req' => array(
'full_width' => ''
)
),
'btn_typo' => array(
'type' => 'typography',
'label' => __pl('quote_content_typo'),
'css' => [
'{{element}} .pagelayer-btn-text' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'{{element}} .pagelayer-btn-holder' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
],
),
),
'btn_style' => [
'type' => array(
'type' => 'select',
'label' => __pl('button_type_label'),
'default' => 'pagelayer-btn-default',
'list' => array(
'pagelayer-btn-default' => __pl('btn_type_default'),
'pagelayer-btn-primary' => __pl('btn_type_primary'),
'pagelayer-btn-secondary' => __pl('btn_type_secondary'),
'pagelayer-btn-success' => __pl('btn_type_success'),
'pagelayer-btn-info' => __pl('btn_type_info'),
'pagelayer-btn-warning' => __pl('btn_type_warning'),
'pagelayer-btn-danger' => __pl('btn_type_danger'),
'pagelayer-btn-dark' => __pl('btn_type_dark'),
'pagelayer-btn-light' => __pl('btn_type_light'),
'pagelayer-btn-link' => __pl('btn_type_link'),
'pagelayer-btn-custom' => __pl('btn_type_custom')
),
),
'size' => array(
'type' => 'select',
'label' => __pl('button_size_label'),
'default' => 'pagelayer-btn-large',
'list' => array(
'pagelayer-btn-mini' => __pl('mini'),
'pagelayer-btn-small' => __pl('small'),
'pagelayer-btn-large' => __pl('large'),
'pagelayer-btn-extra-large' => __pl('extra_large'),
'pagelayer-btn-double-large' => __pl('double_large'),
'pagelayer-btn-custom' => __pl('custom'),
)
),
'btn_custom_size' => array(
'type' => 'spinner',
'label' => __pl('btn_custom_size'),
'min' => 1,
'step' => 1,
'max' => 100,
'default' => 5,
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'padding: {{val}}px calc({{val}}px *2)'],
'req' => array(
'size' => 'pagelayer-btn-custom'
),
),
'btn_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => array(
'type' => 'pagelayer-btn-custom',
),
),
'btn_bg_color' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_label'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-btn-holder' => 'background-color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => ''
),
),
'btn_color' => array(
'type' => 'color',
'label' => __pl('btn_color_label'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-btn-holder' => 'color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => ''
),
),
'btn_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay_label'),
'desc' => __pl('btn_hover_delay_desc'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} .pagelayer-btn-holder' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_hover_label'),
'default' => '',
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'background-color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_color_hover_label'),
'default' => '',
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => 'hover'
),
),
],
'icon_style' => [
'icon' => array(
'type' => 'icon',
'label' => __pl('service_box_font_icon_label'),
'default' => 'fas fa-download',
),
'icon_position' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'pagelayer-btn-icon-left',
'list' => array(
'pagelayer-btn-icon-left' => __pl('left'),
'pagelayer-btn-icon-right' => __pl('right')
),
'req' => array(
'!icon' => ''
)
),
'icon_spacing' => array(
'type' => 'slider',
'label' => __pl('icon_spacing'),
'min' => 1,
'step' => 1,
'max' => 100,
'default' => 5,
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-icon' => 'padding: 0 {{val}}px;'],
'req' => array(
'!icon' => ''
),
),
],
'border_style' => [
'btn_bor_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'btn_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type' => ''
],
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color_hover_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type_hover' => ''
],
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_bor_hover' => 'hover'
),
),
],
'styles' => [
'btn_style' => __pl('btn_style'),
'icon_style' => __pl('icon_style'),
'border_style' => __pl('border_style'),
],
)
);
// Table
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_table', array(
'name' => __pl('table'),
'group' => 'other',
'no_gt' => 1,
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
'holder' => '.pagelayer-data-holder',
'html' => '<div class="pagelayer-data-holder"></div>
<table class="pagelayer-table-holder"></table>',
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('table_row'),
'sc' => PAGELAYER_SC_PREFIX.'_table_row',
'item_label' => array(
'default' => __pl('table_row'),
//'param' => 'title',
),
'count' => 3,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('table_row')))
),
'table_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'screen' => 1,
'units' => ['%', 'px'],
'min' => 0,
'css' => ['{{element}} .pagelayer-table-holder' => 'width:{{val}}'],
),
'table_height' => array(
'type' => 'slider',
'label' => __pl('height'),
'units' => ['px', 'em', '%'],
'screen' => 1,
'min' => 0,
'css' => ['{{element}} .pagelayer-table-holder' => 'height:{{val}}'],
),
'table_td_padding' => [
'type' => 'padding',
'label' => __pl('table_td_padding'),
'screen' => 1,
'units' => ['px', 'em'],
'css' => ['{{element}} td, {{element}} th' => 'padding-top: {{val[0]}}; padding-right: {{val[1]}}; padding-bottom: {{val[2]}}; padding-left: {{val[3]}}'],
],
),
'table_style' => array(
'table_position' => array(
'type' => 'select',
'label' => __pl('table_position'),
'css' => ['{{element}} .pagelayer-table-holder' => '{{val}}:auto'],
'list' => array(
'margin-right' => __pl('left'),
'margin' => __pl('center'),
'margin-left' => __pl('right'),
),
),
'table_content_align' => array(
'type' => 'select',
'label' => __pl('content_align'),
'css' => ['{{element}} .pagelayer-table-holder' => 'text-align:{{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
),
'table_verti_align' => array(
'type' => 'select',
'label' => __pl('vertical_align'),
'css' => ['{{element}} .pagelayer-table-holder *' => 'vertical-align:{{val}}'],
'list' => array(
'' => __pl('none'),
'top' => __pl('top'),
'middle' => __pl('middle'),
'bottom' => __pl('bottom'),
),
),
'even_odd_row' => array(
'type' => 'radio',
'label' => __pl('colors'),
'default' => 'odd_row',
'list' => array(
'odd_row' => __pl('odd_row'),
'even_row' => __pl('even_row'),
'hover' => __pl('hover'),
),
),
'odd_row_text_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} tr:nth-child(odd) td, {{element}} tr:nth-child(odd) th' => 'color:{{val}}'],
'show' => ['even_odd_row' => 'odd_row'],
),
'odd_row_color' => array(
'type' => 'color',
'label' => __pl('odd_row_bg'),
'default' => '#ffffff',
'css' => ['{{element}} tr:nth-child(odd) td, {{element}} tr:nth-child(odd) th' => 'background-color:{{val}}'],
'show' => ['even_odd_row' => 'odd_row'],
),
'even_row_text_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} tr:nth-child(even) td, {{element}} tr:nth-child(even) th' => 'color:{{val}}'],
'show' => ['even_odd_row' => 'even_row'],
),
'even_row_color' => array(
'type' => 'color',
'label' => __pl('even_row_bg'),
'default' => '#e3e3e3',
'css' => ['{{element}} tr:nth-child(even) td, {{element}} tr:nth-child(even) th' => 'background-color:{{val}}'],
'show' => ['even_odd_row' => 'even_row'],
),
'tr_hover_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} tr:hover td, {{element}} tr:hover th' => 'color:{{val}} !important'],
'show' => ['even_odd_row' => 'hover'],
),
'tr_hover_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#e3e3e3',
'css' => ['{{element}} tr:hover td, {{element}} tr:hover th' => 'background-color:{{val}} !important'],
'show' => ['even_odd_row' => 'hover'],
),
'table_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .pagelayer-table-holder' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
],
),
'table_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} table' =>'border-style: {{val}};',
'{{element}} th' =>'border-style: {{val}};',
'{{element}} td' =>'border-style: {{val}};'
],
'default' => 'solid',
'list' => [
'none' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'table_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#42414f',
'css' => ['{{element}} table' =>'border-color: {{val}};',
'{{element}} th' =>'border-color: {{val}};',
'{{element}} td' =>'border-color: {{val}};'
],
'req' => ['!table_border_type' => 'none']
),
'table_border_width' => array(
'type' => 'spinner',
'label' => __pl('border_width'),
'default' => 1,
'screen' => 1,
'css' => ['{{element}} table' =>'border-width: {{val}}px;',
'{{element}} th' =>'border-width: {{val}}px;',
'{{element}} td' =>'border-width: {{val}}px;'
],
'req' => ['!table_border_type' => 'none']
),
),
'styles' => array(
'table_style' => __pl('table_style'),
),
)
);
// Table row
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_table_row', array(
'name' => __pl('table_row'),
'group' => 'other',
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_table'],
'has_group' => [
'section' => 'params',
'prop' => 'col_elements'
],
'holder' => '.pagelayer-table-row-holder',
'html' => '<div class="pagelayer-table-row-holder"></div>',
'params' => array(
'col_elements' => array(
'type' => 'group',
'label' => __pl('table_cell'),
'sc' => PAGELAYER_SC_PREFIX.'_table_col',
'item_label' => array(
'default' => __pl('table_cell'),
'param' => 'title',
),
'count' => 3,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('table_cell')))
),
'tr_colors' => array(
'type' => 'radio',
'label' => __pl('colors'),
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'tr_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.pagelayer-table [pagelayer-table-id="{{ele_id}}"] td, .pagelayer-table [pagelayer-table-id="{{ele_id}}"] th' => 'color:{{val}} !important'],
'show' => ['tr_colors' => ''],
),
'tr_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['.pagelayer-table [pagelayer-table-id="{{ele_id}}"] td, .pagelayer-table [pagelayer-table-id="{{ele_id}}"] th' => 'background-color:{{val}} !important'],
'show' => ['tr_colors' => ''],
),
'tr_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.pagelayer-table [pagelayer-table-id="{{ele_id}}"]:hover td, .pagelayer-table [pagelayer-table-id="{{ele_id}}"]:hover th' => 'color:{{val}} !important'],
'show' => ['tr_colors' => 'hover'],
),
'tr_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['.pagelayer-table [pagelayer-table-id="{{ele_id}}"]:hover td, .pagelayer-table [pagelayer-table-id="{{ele_id}}"]:hover th' => 'background-color:{{val}} !important'],
'show' => ['tr_colors' => 'hover'],
),
'tr_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'.pagelayer-table [pagelayer-table-id="{{ele_id}}"]' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
],
),
'tr_td_padding' => [
'type' => 'padding',
'label' => __pl('row_data_padding'),
'screen' => 1,
'units' => ['px', 'em'],
'css' => ['.pagelayer-table [pagelayer-table-id="{{ele_id}}"] td, .pagelayer-table [pagelayer-table-id="{{ele_id}}"] th' => 'padding-top: {{val[0]}}; padding-right: {{val[1]}}; padding-bottom: {{val[2]}}; padding-left: {{val[3]}}'],
],
)
)
);
// Table col
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_table_col', array(
'name' => __pl('table_cell'),
'group' => 'other',
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_table_row'],
'innerHTML' => 'data',
'html' => '<div class="pagelayer-col-data"></div>',
'params' => array(
'data' => array(
'type' => 'textarea',
'label' => __pl('data'),
'default' => 'Lorem ipsum',
'addAttr' => ['{{element}} .pagelayer-col-data' => 'data-td="{{data}}"'],
),
'td_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'screen' => 1,
'units' => ['%', 'px'],
'css' => ['.pagelayer-table tr [pagelayer-table-id="{{ele_id}}"]' => 'width:{{val}}'],
),
'td_tag' => array(
'type' => 'select',
'label' => __pl('cell_type'),
'default' => 'td',
'list' => array(
'td' => __pl('standard_cell'),
'th' => __pl('header_cell'),
),
'addAttr' => ['{{element}} .pagelayer-col-data' => 'data-tag="{{td_tag}}"'],
),
'td_colors' => array(
'type' => 'radio',
'label' => __pl('colors'),
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'td_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.pagelayer-table tr [pagelayer-table-id="{{ele_id}}"]' => 'color:{{val}} !important'],
'show' => ['td_colors' => ''],
),
'td_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['.pagelayer-table tr [pagelayer-table-id="{{ele_id}}"]' => 'background-color:{{val}} !important'],
'show' => ['td_colors' => ''],
),
'td_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.pagelayer-table tr [pagelayer-table-id="{{ele_id}}"]:hover' => 'color:{{val}} !important'],
'show' => ['td_colors' => 'hover'],
),
'td_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['.pagelayer-table tr [pagelayer-table-id="{{ele_id}}"]:hover' => 'background-color:{{val}} !important'],
'show' => ['td_colors' => 'hover'],
),
'td_colspan' => array(
'type' => 'spinner',
'label' => __pl('colspan'),
'min' => 1,
'addAttr' => ['{{element}} .pagelayer-col-data' => 'data-colspan="{{td_colspan}}"'],
),
'td_rowspan' => array(
'type' => 'spinner',
'label' => __pl('rowspan'),
'min' => 1,
'addAttr' => ['{{element}} .pagelayer-col-data' => 'data-rowspan="{{td_rowspan}}"'],
),
),
)
);
// Call To Action
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_call', array(
'name' => __pl('cta'),
'group' => 'other',
'innerHTML' => 'content',
'html' => '<div if={{show_ribbon}} class="pagelayer-cta-ribbon pagelayer-cta-ribbon-{{ribbon_pos}}"><div class="pagelayer-cta-ribbon-text">{{ribbon_text}}</div></div>
<div class="pagelayer-cta-img-holder">
<div if="{{cta_image}}" class="pagelayer-cta-image" style="background-image: url(\'{{{cta_image-url}}}\');">
</div>
</div>
<div class="pagelayer-cta-content-holder">
<div class="pagelayer-cta-content">
<div if="{{heading}}" class="pagelayer-cta-heading">{{heading}}</div>
<div if="{{subheading}}" class="pagelayer-cta-subheading">{{subheading}}</div>
<div if="{{content}}" class="pagelayer-cta-text">{{content}}</div>
<a if={{button_text}} class="pagelayer-btn-holder pagelayer-ele-link {{btn_type}} {{btn_size}}" href="{{{button_link}}}">{{button_text}}</a>
</div>
</div>',
'params' => array(
'layout' => array(
'type' => 'select',
'label' => __pl('cta_layout_label'),
'default' => 'normal',
'addClass' => 'pagelayer-cta-layout-{{val}}',
'list' => array(
'normal' => __pl('normal'),
'overlay' => __pl('overlay')
)
),
'align' => array(
'type' => 'radio',
'label' => __pl('cta_align_label'),
'default' => 'left',
'addClass' => 'pagelayer-cta-align-{{val}}',
'list' => array(
'left' => __pl('left'),
'' => __pl('center'),
'right' => __pl('right'),
),
'req' => array(
'layout' => 'normal'
)
),
),
'image_style' => [
'cta_image' => array(
'type' => 'image',
'label' => __pl('cta_image_label'),
'default' => PAGELAYER_URL.'/images/default-image.png'
),
'height' => array(
'type' => 'slider',
'label' => __pl('cta_img_height_label'),
'css' => ['{{element}} .pagelayer-cta-image' => 'min-height: {{val}}px;'],
'screen' => 1,
'default' => 300,
'min' => 0,
'max' => 1000,
'step' => 1,
),
'width' => array(
'type' => 'slider',
'label' => __pl('cta_img_width_label'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-cta-img-holder' => 'flex-basis: {{val}}%;',
'{{element}} .pagelayer-cta-content-holder' => 'flex-basis: calc(100% - {{val}}%);'],
'default' => 50,
'min' => 0,
'max' => 100,
'step' => 1,
'req' => array(
'layout' => 'normal',
'!align' => ''
)
),
'img_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'img_overlay' => array(
'type' => 'color',
'label' => __pl('overlay'),
'css' => ['{{element}} .pagelayer-cta-image:before' => 'background-color: {{val}}'],
'show' => ['img_hover' => '']
),
'img_opacity' => array(
'type' => 'slider',
'label' => __pl('opacity'),
'css' => ['{{element}} .pagelayer-cta-image:before' => 'opacity: {{val}};'],
'min' => 0,
'max' => 1,
'step' => 0.1,
'show' => ['img_hover' => '']
),
'hov_delay' => array(
'type' => 'slider',
'label' => __pl('delay'),
'css' => ['{{element}} .pagelayer-cta-image:before, {{element}} .pagelayer-cta-image' => 'transition: all {{val}}ms;'],
'default' => 800,
'min' => 200,
'max' => 10000,
'step' => 100,
'show' => ['img_hover' => 'hover']
),
'img_overlay_hover' => array(
'type' => 'color',
'label' => __pl('overlay'),
'default' => '#333333',
//'css' => ['{{element}} .pagelayer-cta-img-overlay' => 'background-color: {{val}}'],
'css' => ['{{element}}:hover .pagelayer-cta-image:before' => 'background-color: {{val}}'],
'show' => ['img_hover' => 'hover']
),
'img_opacity_hover' => array(
'type' => 'slider',
'label' => __pl('opacity'),
'css' => ['{{element}}:hover .pagelayer-cta-image:before' => 'opacity: {{val}};'],
'default' => 0.3,
'min' => 0,
'max' => 1,
'step' => 0.1,
'show' => ['img_hover' => 'hover']
),
'hover_anim' => array(
'type' => 'select',
'label' => __pl('cta_hover_anim_label'),
'default' => 'pagelayer-cta-zoomin',
'addClass' => '{{val}}',
'list' => array(
'' => __pl('cta_anim_none'),
'pagelayer-cta-zoomin' => __pl('cta_anim_zoomin'),
'pagelayer-cta-zoomout' => __pl('cta_anim_zoomout'),
'pagelayer-cta-moveup' => __pl('cta_anim_moveup'),
'pagelayer-cta-movedown' => __pl('cta_anim_movedown'),
'pagelayer-cta-moveleft' => __pl('cta_anim_moveleft'),
'pagelayer-cta-moveright' => __pl('cta_anim_moveright'),
),
'show' => ['img_hover' => 'hover']
),
],
'heading_styles' => [
'heading' => array(
'type' => 'text',
'label' => __pl('heading_name'),
'default' => 'Time for action',
'edit' => '.pagelayer-cta-heading',
),
'heading_hover' => array(
'type' => 'radio',
'label' => __pl(''),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'heading_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-cta-heading' => 'color: {{val}}'],
'show' => ['heading_hover' => '']
),
'heading_typo' => array(
'type' => 'typography',
'label' => __pl('heading_typo'),
'default' => 'Advent Pro,40,,700,,,solid,1.7,,,',
'css' => ['{{element}} .pagelayer-cta-heading' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => ['heading_hover' => '']
),
'heading_shadow' => array(
'type' => 'shadow',
'label' => __pl('heading_shadow'),
'css' => ['{{element}} .pagelayer-cta-heading' => 'text-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}};'],
'show' => ['heading_hover' => '']
),
'heading_delay' => array(
'type' => 'slider',
'label' => __pl('delay'),
'css' => ['{{element}} .pagelayer-cta-heading' => 'transition: all {{val}}ms;'],
'default' => 800,
'min' => 200,
'max' => 3000,
'step' => 100,
'show' => ['heading_hover' => 'hover']
),
'heading_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}}:hover .pagelayer-cta-heading' => 'color: {{val}}'],
'show' => ['heading_hover' => 'hover']
),
'heading_typo_hover' => array(
'type' => 'typography',
'label' => __pl('heading_typo'),
'css' => ['{{element}}:hover .pagelayer-cta-heading' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => ['heading_hover' => 'hover']
),
'heading_shadow_hover' => array(
'type' => 'shadow',
'label' => __pl('heading_shadow'),
'css' => ['{{element}}:hover .pagelayer-cta-heading' => 'text-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}};'],
'show' => ['heading_hover' => 'hover']
),
],
'subheading_styles' => [
'subheading' => array(
'type' => 'text',
'label' => __pl('subheading_name'),
'edit' => '.pagelayer-cta-subheading',
),
'subheading_hover' => array(
'type' => 'radio',
'label' => __pl(''),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'subheading_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#555555',
'css' => ['{{element}} .pagelayer-cta-subheading' => 'color: {{val}}'],
'show' => ['subheading_hover' => '']
),
'subheading_typo' => array(
'type' => 'typography',
'label' => __pl('heading_typo'),
'css' => ['{{element}} .pagelayer-cta-subheading' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => ['subheading_hover' => '']
),
'subheading_shadow' => array(
'type' => 'shadow',
'label' => __pl('heading_shadow'),
'css' => ['{{element}} .pagelayer-cta-subheading' => 'text-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}};'],
'show' => ['subheading_hover' => '']
),
'subheading_delay' => array(
'type' => 'slider',
'label' => __pl('delay'),
'css' => ['{{element}} .pagelayer-cta-subheading' => 'transition: all {{val}}ms;'],
'default' => 800,
'min' => 200,
'max' => 3000,
'step' => 100,
'show' => ['subheading_hover' => 'hover']
),
'subheading_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#333333',
'css' => ['{{element}}:hover .pagelayer-cta-subheading' => 'color: {{val}}'],
'show' => ['subheading_hover' => 'hover']
),
'subheading_typo_hover' => array(
'type' => 'typography',
'label' => __pl('heading_typo'),
'css' => ['{{element}}:hover .pagelayer-cta-subheading' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => ['subheading_hover' => 'hover']
),
'subheading_shadow_hover' => array(
'type' => 'shadow',
'label' => __pl('heading_shadow'),
'css' => ['{{element}}:hover .pagelayer-cta-subheading' => 'text-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}};'],
'show' => ['subheading_hover' => 'hover']
),
],
'text_style' => [
'content' => array(
'type' => 'editor',
'label' => __pl('text'),
'default' => '<p><span style="color: rgb(255, 255, 255);">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. consectetur adipiscing elit, sed do eiusmod tempor</span></p>',
'edit' => '.pagelayer-cta-text',
),
],
'content_styles' => [
'content_spacing' => [
'type' => 'padding',
'label' => __pl('cta_content_spacing_label'),
'default' => '25,25,25,25',
'screen' => 1,
//'units' => ['px', 'em', '%'],
'css' => ['{{element}} .pagelayer-cta-content' => 'padding-top: {{val[0]}}px; padding-right: {{val[1]}}px; padding-bottom: {{val[2]}}px; padding-left: {{val[3]}}px'],
],
'content-align' => array(
'type' => 'radio',
'label' => __pl('cta_content_align_label'),
'default' => 'left',
'screen' => 1,
'css' => ['{{element}} .pagelayer-cta-content-holder' => 'text-align: {{val}};'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
)
),
'content_valign' => array(
'type' => 'radio',
'label' => __pl('cta_valign_label'),
'default' => 'flex-start',
'screen' => 1,
'addClass' => 'pagelayer-cta-align-{{val}}',
'css' => ['{{element}} .pagelayer-cta-content-holder' => 'align-items: {{val}};'],
'list' => array(
'flex-start' => __pl('top'),
'center' => __pl('center'),
'flex-end' => __pl('bottom'),
)
),
'content_hover' => array(
'type' => 'radio',
'label' => __pl(''),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'content_bg' => array(
'type' => 'color',
'label' => __pl('cta_content_bg_label'),
'default' => '#4B6270',
'css' => ['{{element}} .pagelayer-cta-content-holder' => 'background-color: {{val}}'],
'show' => ['content_hover' => ''],
'req' => array(
'layout' => 'normal'
)
),
'content_delay' => array(
'type' => 'slider',
'label' => __pl('delay'),
'css' => ['{{element}} .pagelayer-cta-content-holder' => 'transition: all {{val}}ms;'],
'default' => 800,
'min' => 200,
'max' => 3000,
'step' => 100,
'show' => ['content_hover' => 'hover'],
),
'content_bg_hover' => array(
'type' => 'color',
'label' => __pl('cta_content_bg_label'),
'default' => '#E88987',
'css' => ['{{element}}:hover .pagelayer-cta-content-holder' => 'background-color: {{val}}'],
'show' => ['content_hover' => 'hover'],
'req' => array(
'layout' => 'normal'
)
),
],
'button_style' => [
'button_text' => array(
'type' => 'text',
'label' => __pl('text'),
'default' => __pl('button_name'),
'edit' => '.pagelayer-btn-holder',
),
'button_link' => array(
'type' => 'link',
'label' => __pl('link_settings'),
'selector' => '.pagelayer-ele-link',
'desc' => __pl('button_link_desc'),
),
'btn_type' => array(
'type' => 'select',
'label' => __pl('button_type_label'),
'default' => 'pagelayer-btn-success',
'list' => array(
'pagelayer-btn-default' => __pl('btn_type_default'),
'pagelayer-btn-primary' => __pl('btn_type_primary'),
'pagelayer-btn-secondary' => __pl('btn_type_secondary'),
'pagelayer-btn-success' => __pl('btn_type_success'),
'pagelayer-btn-info' => __pl('btn_type_info'),
'pagelayer-btn-warning' => __pl('btn_type_warning'),
'pagelayer-btn-danger' => __pl('btn_type_danger'),
'pagelayer-btn-dark' => __pl('btn_type_dark'),
'pagelayer-btn-light' => __pl('btn_type_light'),
'pagelayer-btn-link' => __pl('btn_type_link'),
'pagelayer-btn-custom' => __pl('btn_type_custom'),
),
),
'btn_size' => array(
'type' => 'select',
'label' => __pl('button_size_label'),
'default' => 'pagelayer-btn-mini',
'list' => array(
'pagelayer-btn-mini' => __pl('mini'),
'pagelayer-btn-small' => __pl('small'),
'pagelayer-btn-large' => __pl('large'),
'pagelayer-btn-extra-large' => __pl('extra_large'),
'pagelayer-btn-double-large' => __pl('double_large'),
'pagelayer-btn-custom' => __pl('custom'),
)
),
'btn_custom_size' => array(
'type' => 'dimension',
'label' => __pl('btn_custom_size'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'padding: {{val[0]}}px {{val[1]}}px;'],
'req' => array(
'btn_size' => 'pagelayer-btn-custom'
),
),
'btn_spacing' => array(
'type' => 'slider',
'label' => __pl('cta_btn_spacing_label'),
'css' => ['{{element}} .pagelayer-btn-holder' => 'margin-top: {{val}}px;'],
'default' => 5,
'min' => 0,
'max' => 100,
'step' => 1,
'screen' => 1,
),
'btn_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'btn_bg_color' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_label'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-btn-holder' => 'background-color: {{val}};'],
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => ''
),
),
'btn_color' => array(
'type' => 'color',
'label' => __pl('btn_color_label'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-btn-holder' => 'color: {{val}};'],
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => ''
),
),
'btn_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay_label'),
'desc' => __pl('btn_hover_delay_desc'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} .pagelayer-btn-holder' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_hover_label'),
'default' => '',
'css' => ['{{element}}:hover .pagelayer-btn-holder' => 'background-color: {{val}};'],
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_color_hover_label'),
'default' => '',
'css' => ['{{element}}:hover .pagelayer-btn-holder' => 'color: {{val}};'],
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_hover' => ''
),
),
'btn_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_hover' => ''
),
),
'btn_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type' => ''
],
'show' => array(
'btn_hover' => ''
),
),
'btn_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'default' => '40,40,40,40',
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'show' => array(
'btn_hover' => ''
),
),
'btn_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}}:hover .pagelayer-btn-holder' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color_hover_label'),
'default' => '#42414f',
'css' => ['{{element}}:hover .pagelayer-btn-holder' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width_hover'),
'screen' => 1,
'css' => ['{{element}}:hover .pagelayer-btn-holder' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type_hover' => ''
],
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius_hover'),
'screen' => 1,
'css' => ['{{element}}:hover .pagelayer-btn-holder' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'show' => array(
'btn_hover' => 'hover'
),
),
],
'ribbon_style' => [
'show_ribbon' => array(
'type' => 'checkbox',
'label' => __pl('cta_show_ribbon'),
'css' => ['{{element}} .pagelayer-cta-ribbon' => 'position: absolute; z-index: 2;'],
'default' => 'true'
),
'ribbon_style' => array(
'type' => 'select',
'label' => __pl('style'),
//'css' => ['{{element}} .pagelayer-cta-ribbon' => '{{val}}: 0px;'],
'default' => '',
'list' => array(
'' => __pl('default')
),
'req' => [
'show_ribbon' => 'true'
]
),
'ribbon_text' => array(
'type' => 'text',
'label' => __pl('cta_ribbon_text_label'),
'default' => __pl('ribbon_text_default'),
'edit' => '.pagelayer-cta-ribbon-text',
'req' => array(
'show_ribbon' => 'true'
),
),
'ribbon_bg' => array(
'type' => 'color',
'label' => __pl('cta_ribbon_bg_label'),
'default' => '#0986c0',
'css' => [
'{{element}} .pagelayer-cta-ribbon' => 'background-color: {{val}}',
'{{element}} .pagelayer-cta-ribbon-text:before' => 'border-top-color: {{val}}; border-bottom-color: {{val}};'
],
'req' => array(
'show_ribbon' => 'true'
),
),
'ribbon_color' => array(
'type' => 'color',
'label' => __pl('cta_ribbon_color_label'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-cta-ribbon' => 'color: {{val}}'],
'req' => array(
'show_ribbon' => 'true'
),
),
'ribbon_typo' => array(
'type' => 'typography',
'label' => __pl('heading_typo'),
'css' => ['{{element}} .pagelayer-cta-ribbon-text' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => [
'show_ribbon' => 'true'
]
),
'ribbon_pos' => array(
'type' => 'radio',
'label' => __pl('ribbon_pos_label'),
'css' => ['{{element}} .pagelayer-cta-ribbon' => '{{val}}: 0px;'],
'default' => 'left',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'right' => __pl('right')
),
'req' => [
'show_ribbon' => 'true',
'ribbon_style' => ''
]
),
'ribbon_top' => array(
'type' => 'slider',
'label' => __pl('verticle_postion'),
'css' => ['{{element}} .pagelayer-cta-ribbon' => 'top: {{val}}%;'],
'screen' => 1,
'default' => 5,
'min' => 0,
'max' => 100,
'step' => 1,
'req' => [
'show_ribbon' => 'true',
'ribbon_style' => ''
]
),
'ribbon_spacing' => array(
'type' => 'dimension',
'label' => __pl('space_around'),
'default' => '10,10',
'screen' => 1,
'css' => ['{{element}} .pagelayer-cta-ribbon-text' => 'padding-left: {{val[0]}}px; padding-right: {{val[1]}}px;'],
'req' => [
'show_ribbon' => 'true',
'ribbon_style' => ''
]
),
'ribbon_height' => array(
'type' => 'slider',
'label' => __pl('block_height'),
'css' => [
'{{element}} .pagelayer-cta-ribbon' => 'height: {{val}}px;',
'{{element}} .pagelayer-cta-ribbon-left:before' => 'border-width: calc( {{val}}px / 2 ); right: calc( -{{val}}px / 2 );',
'{{element}} .pagelayer-cta-ribbon-right:before' => 'border-width: calc( {{val}}px / 2 ); left: calc( -{{val}}px / 2 );',
'{{element}} .pagelayer-cta-ribbon-left .pagelayer-cta-ribbon-text:before' => 'border-width: calc( {{val}}px / 2 ); right: calc( -{{val}}px / 2 );',
'{{element}} .pagelayer-cta-ribbon-right .pagelayer-cta-ribbon-text:before' => 'border-width: calc( {{val}}px / 2 ); left: calc( -{{val}}px / 2 );',
'{{element}} .pagelayer-cta-ribbon-text' => 'line-height: {{val}}px;'
],
'default' => 35,
'min' => 0,
'max' => 200,
'screen' => 1,
'step' => 1,
'screen' => 1,
'req' => [
'show_ribbon' => 'true',
'ribbon_style' => ''
]
),
'ribbon_shadow' => array(
'type' => 'color',
'label' => __pl('shadow_color'),
'default' => 'rgba(0,0,0,0.5)',
'css' => [
'{{element}} .pagelayer-cta-ribbon:after' => 'background-color: {{val}}',
/* '{{element}} .pagelayer-cta-ribbon-left:before' => 'border-top-color: {{val}}; border-bottom-color: {{val}}; border-left-color: {{val}}',
'{{element}} .pagelayer-cta-ribbon-right:before' => 'border-top-color: {{val}}; border-bottom-color: {{val}}; border-right-color: {{val}}', */
'{{element}} .pagelayer-cta-ribbon:before' => 'border-top-color: {{val}}; border-bottom-color: {{val}};'
],
'req' => array(
'show_ribbon' => 'true',
'ribbon_style' => ''
),
),
'shadow_height' => array(
'type' => 'slider',
'label' => __pl('shadow_pos'),
'css' => [
'{{element}} .pagelayer-cta-ribbon:before' => 'top: {{val}}px',
'{{element}} .pagelayer-cta-ribbon:after' => 'height: {{val}}px; bottom: -{{val}}px;'
],
'default' => 3,
'min' => 0,
'max' => 50,
'screen' => 1,
'step' => 1,
'screen' => 1,
'req' => [
'show_ribbon' => 'true',
'ribbon_style' => ''
]
),
],
'styles' => [
'image_style' => __pl('image_style'),
'heading_styles' => __pl('heading_styles'),
'subheading_styles' => __pl('subheading_styles'),
'text_style' => __pl('text_style'),
'content_styles' => __pl('content_styles'),
'button_style' => __pl('button_style'),
'ribbon_style' => __pl('ribbon_style'),
]
)
);
// Modal
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_modal', array(
'name' => __pl('modal'),
'group' => 'other',
'innerHTML' => 'content',
'html' => '<div class="pagelayer-modal-container">
<div class="pagelayer-modal-button">
<a class="pagelayer-btn-holder pagelayer-ele-link {{type}} {{size}} {{button_icon_position}}" onclick="pagelayer_render_pl_modal(event)">
<i if="{{button_icon}}" class="{{button_icon}} pagelayer-btn-icon pagelayer-icon-left"></i>
<span class="pagelayer-btn-text" if="{{button_text}}">{{button_text}}</span>
<i if="{{button_icon}}" class="{{button_icon}} pagelayer-btn-icon pagelayer-icon-right"></i>
</a>
</div>
<div class="pagelayer-modal-content pagelayer-modal-{{modal_style}}">
<div if={{close_by_overlay}} class="pagelayer-modal-bg-close" onclick="pagelayer_pl_modal_close(event)"></div>
<div class="pagelayer-modal-close" onclick="pagelayer_pl_modal_close(event)"></div>
<div class="pagelayer-modal-body">
<div if="{{modal_title}}"class="pagelayer-modal-title">{{modal_title}}</div>
<div class="pagelayer-modal-content-overflow" if-ext="{{content}}">
<div class="pagelayer-modal-bottom-content" if-ext="{{content}}">{{content}}</div>
</div>
</div>
</div>
</div>',
'params' => array(
'modal_style' => array(
'type' => 'radio',
'label' => __pl('obj_style'),
'default' => 'dark',
'list' => array(
'dark' => __pl('dark'),
'light' => __pl('light'),
'custom' => __pl('custom')
)
),
'modal_shadow_color' => array(
'type' => 'color',
'label' => __pl('obj_shadow_color_label'),
'default' => '#0b0b0b',
'req' => array(
'modal_style' => 'custom'
),
'css' => ['{{element}} .pagelayer-modal-content' => 'background-color: {{val}}'],
),
'modal_popup_width' => array(
'type' => 'slider',
'label' => __pl('modal_popup_width'),
'default' => 70,
'min' => 20,
'max' => 100,
'step' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-modal-body' => 'width: {{val}}%'],
),
'modal_popup_height' => array(
'type' => 'slider',
'label' => __pl('content_max_height'),
'min' => 100,
'max' => 1500,
'step' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-modal-content-overflow' => 'max-height: {{val}}px'],
),
),
'icon_style' => [
'button_icon' => array(
'type' => 'icon',
'label' => __pl('icon'),
'list' => pagelayer_icon_class_list(true)
),
'icon_spacing' => array(
'type' => 'spinner',
'label' => __pl('icon_spacing'),
'min' => 1,
'step' => 1,
'max' => 100,
'default' => 5,
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-icon' => 'padding: 0 {{val}}px;'],
'req' => array(
'!button_icon' => ''
),
),
'button_icon_position' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'pagelayer-btn-icon-left',
'list' => array(
'pagelayer-btn-icon-left' => __pl('left'),
'pagelayer-btn-icon-right' => __pl('right')
),
'req' => array(
'!button_icon' => ''
),
),
],
'btn_styles' => [
'button_text' => array(
'type' => 'text',
'label' => __pl('button_text_label'),
'default' => 'Open Modal Box',
),
'size' => array(
'type' => 'select',
'label' => __pl('button_size_label'),
'default' => 'pagelayer-btn-large',
'list' => array(
'pagelayer-btn-mini' => __pl('mini'),
'pagelayer-btn-small' => __pl('small'),
'pagelayer-btn-large' => __pl('large'),
'pagelayer-btn-extra-large' => __pl('extra_large'),
'pagelayer-btn-double-large' => __pl('double_large'),
'pagelayer-btn-custom' => __pl('custom'),
)
),
'btn_custom_size' => array(
'type' => 'spinner',
'label' => __pl('btn_custom_size'),
'min' => 1,
'step' => 1,
'max' => 100,
'default' => 5,
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'padding: {{val}}px {{val}}px;'],
'req' => array(
'size' => 'pagelayer-btn-custom'
)
),
'type' => array(
'type' => 'select',
'label' => __pl('button_type_label'),
'default' => 'pagelayer-btn-default',
'list' => array(
'pagelayer-btn-default' => __pl('btn_type_default'),
'pagelayer-btn-primary' => __pl('btn_type_primary'),
'pagelayer-btn-secondary' => __pl('btn_type_secondary'),
'pagelayer-btn-success' => __pl('btn_type_success'),
'pagelayer-btn-info' => __pl('btn_type_info'),
'pagelayer-btn-warning' => __pl('btn_type_warning'),
'pagelayer-btn-danger' => __pl('btn_type_danger'),
'pagelayer-btn-dark' => __pl('btn_type_dark'),
'pagelayer-btn-light' => __pl('btn_type_light'),
'pagelayer-btn-link' => __pl('btn_type_link'),
'pagelayer-btn-custom' => __pl('btn_type_custom')
),
),
'button_full_width' => array(
'type' => 'checkbox',
'label' => __pl('stretch'),
'screen' => 1,
'css' => ['{{element}} a' => 'width: 100%; text-align: center;']
),
'button_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'left',
'screen' => 1,
'css' => ['{{element}} .pagelayer-modal-button' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
),
'req' => array(
'button_full_width' => ''
)
),
'btn_hover' => array(
'type' => 'radio',
'label' => '',
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'btn_bg_color' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_label'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-btn-holder' => 'background-color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => ''
),
),
'btn_color' => array(
'type' => 'color',
'label' => __pl('btn_color_label'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-btn-holder' => 'color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => ''
),
),
'btn_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay_label'),
'desc' => __pl('btn_hover_delay_desc'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} .pagelayer-btn-holder' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_hover_label'),
'default' => '',
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'background-color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_color_hover_label'),
'default' => '',
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_hover' => ''
),
),
'btn_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_hover' => ''
),
),
'btn_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type' => ''
],
'show' => array(
'btn_hover' => ''
),
),
'btn_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_hover' => ''
),
),
'btn_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color_hover_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type_hover' => ''
],
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-btn-holder:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_hover' => 'hover'
),
),
],
'title_style' => [
'modal_title' => array(
'type' => 'textarea',
'label' => __pl('title'),
'default' => __pl('modal_title_content_default'),
'edit' => '.pagelayer-modal-title'
),
'title_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'center',
'screen' => 1,
'css' => ['{{element}} .pagelayer-modal-title' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
),
'req' => [
'!modal_title' => ''
],
),
'title_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-modal-title' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => [
'!modal_title' => ''
],
),
'padding' => array(
'type' => 'padding',
'label' => __pl('stars_spacing'),
'default' => '25,25,25,25',
'screen' => 1,
'css' => ['{{element}} .pagelayer-modal-title' => 'padding-top: {{val[0]}}px; padding-right: {{val[1]}}px; padding-bottom: {{val[2]}}px; padding-left: {{val[3]}}px'],
'req' => [
'!modal_title' => ''
],
),
'modal_title_bgcolor' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#3D54DF',
'css' => ['{{element}} .pagelayer-modal-title' => 'background-color: {{val}}'],
'req' => [
'!modal_title' => '',
'modal_style' => 'custom'
],
),
'modal_title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-modal-title' => 'color: {{val}}'],
'req' => [
'!modal_title' => '',
'modal_style' => 'custom'
],
)
],
'content_style' => [
'content' => array(
'type' => 'editor',
'label' => __pl('obj_content'),
'default' => __pl('content_with_tags_default'),
'edit' => '.pagelayer-modal-bottom-content'
),
'content_padding' => array(
'type' => 'padding',
'label' => __pl('stars_spacing'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-modal-bottom-content' => 'padding-top: {{val[0]}}px; padding-right: {{val[1]}}px; padding-bottom: {{val[2]}}px; padding-left: {{val[3]}}px']
),
'modal_content_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#000000',
'req' => array(
'modal_style' => 'custom'
),
'css' => ['{{element}} .pagelayer-modal-body' => 'color: {{val}}'],
),
'modal_content_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#ffffff',
'req' => array(
'modal_style' => 'custom'
),
'css' => ['{{element}} .pagelayer-modal-bottom-content' => 'background-color: {{val}}'],
),
],
'close_style' => [
'close_size' => array(
'type' => 'spinner',
'label' => __pl('size'),
'min' => 0,
'step' => 1,
'max' => 200,
'default' => 50,
'screen' => 1,
'css' => [
'{{element}} .pagelayer-modal-close:before' => 'height: {{val}}px; right: calc( {{val}}px / 2 );',
'{{element}} .pagelayer-modal-close' => 'height: {{val}}px; width: {{val}}px;',
'{{element}} .pagelayer-modal-close:after' => 'height: {{val}}px; right: calc( {{val}}px / 2 );'
]
),
'modal_close_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-modal-close::before' => 'background-color:{{val}}', '{{element}} .pagelayer-modal-close::after' => 'background-color:{{val}}'],
'req' => array(
'modal_style' => 'custom',
)
),
'close_by_overlay' => array(
'type' => 'checkbox',
'label' => __pl('close_by_overlay')
)
],
'styles' => [
'btn_styles' => __pl('btn_style'),
'icon_style' => __pl('icon_style'),
'title_style' => __pl('title_style'),
'content_style' => __pl('content_style'),
'close_style' => __pl('close_style'),
]
)
);
// Splash Screen
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_splash', array(
'name' => __pl('splash_screen'),
'group' => 'other',
'innerHTML' => 'content',
'html' => '<div class="pagelayer-splash-container pagelayer-splash-{{style}}">
<div if={{close_by_overlay}} class="pagelayer-splash-bg-close"></div>
<span class="pagelayer-splash-close"></span>
<div class="pagelayer-splash-body">
<div if="{{title}}"class="pagelayer-splash-title">{{title}}</div>
<div class="pagelayer-splash-content-overflow" if-ext="{{content}}">
<div class="pagelayer-splash-bottom-content">{{content}}</div>
</div>
</div>
</div>',
'params' => array(
'style' => array(
'type' => 'radio',
'label' => __pl('style'),
'default' => 'dark',
'list' => array(
'dark' => __pl('dark'),
'light' => __pl('light'),
'custom' => __pl('custom')
)
),
'shadow_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#0b0b0b',
'css' => ['{{element}} .pagelayer-splash-container ' => 'background:{{val}}'],
'req' => array(
'style' => 'custom'
)
),
'display' => array(
'type' => 'select',
'label' => __pl('display'),
'list' => array(
'once' => __pl('once'),
'always' => __pl('always')
),
'default' => 'once',
'addAttr' => ['{{element}} .pagelayer-splash-container' => 'display_type="{{display}}"']
),
'delay' => array(
'type' => 'spinner',
'label' => __pl('animation_delay'),
'default' => 1000,
'min' => 100,
'addAttr' => ['{{element}} .pagelayer-splash-container' => 'delay="{{delay}}"']
),
'width' => array(
'type' => 'slider',
'label' => __pl('icon_border_width'),
'screen' => 1,
'default' => '90',
'css' => ['{{element}} .pagelayer-splash-body' => 'width:{{val}}%'],
),
'splash_popup_height' => array(
'type' => 'slider',
'label' => __pl('content_max_height'),
'min' => 100,
'max' => 1500,
'step' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-splash-content-overflow' => 'max-height: {{val}}px'],
),
),
'title_style' => [
'title' => array(
'type' => 'textarea',
'label' => __pl('title'),
'default' => __pl('splash_title_content_default'),
'edit' => '.pagelayer-splash-title'
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'center',
'screen' => 1,
'css' => ['{{element}} .pagelayer-splash-title' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
),
'req' => [
'!title' => ''
],
),
'title_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-splash-title' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => [
'!title' => ''
],
),
'padding' => array(
'type' => 'padding',
'label' => __pl('space_around'),
'default' => '25,25,25,25',
'screen' => 1,
'css' => ['{{element}} .pagelayer-splash-title' => 'padding-top: {{val[0]}}px; padding-right: {{val[1]}}px; padding-bottom: {{val[2]}}px; padding-left: {{val[3]}}px'],
'req' => [
'!title' => ''
],
),
'title_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#3D54DF',
'css' => ['{{element}} .pagelayer-splash-title' => 'background-color: {{val}}'],
'req' => [
'!title' => '',
'style' => 'custom'
],
),
'title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-splash-title' => 'color: {{val}}'],
'req' => [
'!title' => '',
'style' => 'custom'
],
)
],
'content_style' => [
'content' => array(
'type' => 'editor',
'label' => __pl('obj_content'),
'default' => __pl('content_with_tags_default'),
'edit' => '.pagelayer-splash-bottom-content'
),
'content_color' => array(
'type' => 'color',
'label' => __pl('obj_content_color_label'),
'default' => '#0b0b0b',
'css' => ['{{element}} .pagelayer-splash-container ' => 'color:{{val}}'],
'req' => array(
'style' => 'custom'
)
),
'content_padding' => array(
'type' => 'padding',
'label' => __pl('space_around'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-splash-bottom-content' => 'padding-top: {{val[0]}}px; padding-right: {{val[1]}}px; padding-bottom: {{val[2]}}px; padding-left: {{val[3]}}px'],
),
],
'close_style' => [
'close_size' => array(
'type' => 'spinner',
'label' => __pl('size'),
'min' => 0,
'step' => 1,
'max' => 200,
'default' => 50,
'screen' => 1,
'css' => [
'{{element}} .pagelayer-splash-close:before' => 'height: {{val}}px; right: calc( {{val}}px / 2 );',
'{{element}} .pagelayer-splash-close' => 'height: {{val}}px; width: {{val}}px;',
'{{element}} .pagelayer-splash-close:after' => 'height: {{val}}px; right: calc( {{val}}px / 2 );'
]
),
'close_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-splash-close::after, {{element}} .pagelayer-splash-close::before ' => 'background-color:{{val}}'],
'req' => array(
'style' => 'custom'
)
),
'close_by_overlay' => array(
'type' => 'checkbox',
'label' => __pl('close_by_overlay')
),
],
'styles' => [
'title_style' => __pl('title_style'),
'content_style' => __pl('content_style'),
'close_style' => __pl('close_style'),
]
)
);
// Chart
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_chart', array(
'name' => __pl('chart'),
'group' => 'other',
'has_group' => [
'section' => 'datasets',
'prop' => 'elements'
],
'holder' => '.pagelayer-chart-child-holder',
'html' => '<div if="{{title}}" class="pagelayer-chart-title">{{title}}</div>
<div class="pagelayer-chart-child-holder"></div>
<canvas class="pagelayer-chart-holder"></canvas>',
'params' => array(
'type' => array(
'type' => 'select',
'label' => __pl('type'),
'desc' => __pl('google_charts_type_desc'),
'default' => 'bar',
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'chart-type="{{type}}"'],
'list' => array(
'line' => __pl('google_charts_type_list_line'),
'bar' => __pl('google_charts_type_list_bar'),
'horizontalBar' => __pl('horizontalbar_chart'),
'radar' => __pl('radar'),
'doughnut' => __pl('doughnut_chart'),
'pie' => __pl('google_charts_type_list_pie'),
'polarArea' => __pl('polararea'),
)
),
'legend_pos' => array(
'type' => 'select',
'label' => __pl('legend_pos'),
//'desc' => __pl('legend_pos_desc'),
'default' => 'top',
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'chart-legend="{{legend_pos}}"'],
'list' => array(
'' => __pl('none'),
'top' => __pl('top'),
'left' => __pl('left'),
'bottom' => __pl('bottom'),
'right' => __pl('right'),
)
),
'custom_dimension' => array(
'type' => 'checkbox',
'label' => __pl('custom_dimension'),
'default' => '',
),
'chart_height' => array(
'type' => 'slider',
'label' => __pl('custom_height'),
'screen' => 1,
'min' => 0,
'max' => 1000,
'step' => 1,
'default' => 350,
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'chart-height="{{chart_height}}"'],
'css' => ['{{element}} .pagelayer-chart-holder' => 'height: {{val}}px !important;'],
'req' => array(
'custom_dimension' => 'true'
),
),
'chart_width' => array(
'type' => 'slider',
'label' => __pl('custom_width'),
'screen' => 1,
'min' => 0,
'max' => 100,
'step' => 1,
'default' => 100,
'css' => ['{{element}} .pagelayer-chart-holder' => 'width: {{val}}% !important;'],
'req' => array(
'custom_dimension' => 'true'
),
),
/* 'colors' => array(
'type' => 'textarea',
'label' => __pl('google_charts_colors_label'),
'desc' => 'You can give multiple colors here and separate them by coma(,) E.g. #000000, #ffffff, #f4c63d, #923a3a',
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'chart-colors="{{colors}}"'],
), */
/* 'width' => array(
'type' => 'slider',
'label' => __pl('Chart_width'),
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'data-width="{{width}}%"'],
), */
),
'label_style' => [
'labels' => array(
'type' => 'textarea',
'label' => __pl('label_style'),
'desc' => __pl('Enter labels with comma(,) separeted'),
'default' => 'Jan,Feb,Mar,Apr,May',
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'chart-labels="{{labels}}"'],
),
'label_colors' => array(
'type' => 'textarea',
'label' => __pl('colors'),
'desc' => __pl('Enter hex color code with comma(,) separeted'),
'default' => '#3e95cd,#8e5ea2,#3cba9f,#e8c3b9,#c45850',
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'chart-colors="{{label_colors}}"'],
'req' => [
'type' => ['doughnut', 'pie', 'polarArea']
]
),
],
'datasets' => [
'elements' => array(
'type' => 'group',
'label' => __pl('datasets'),
'sc' => PAGELAYER_SC_PREFIX.'_chart_datasets',
'item_label' => array(
'default' => __pl('dataset'),
'param' => 'datasets',
),
'count' => 1,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('dataset_name'))),
),
],
'ticks_style' => [
'tick_type' => array(
'type' => 'radio',
'label' => __pl('axis'),
'default' => 'xaxis',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'xaxis' => __pl('x-axis'),
'yaxis' => __pl('y-axis'),
)
),
'xcolor' => array(
'type' => 'color',
'label' => __pl('color'),
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'data-xcolor="{{xcolor}}"'],
'show' => array(
'tick_type' => 'xaxis'
),
),
'xsize' => array(
'type' => 'slider',
'label' => __pl('size'),
'min' => 0,
'max' => 100,
'screen' => 1,
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'data-xsize="{{xsize}}"'],
'show' => array(
'tick_type' => 'xaxis'
),
),
'xrotate' => array(
'type' => 'slider',
'label' => __pl('Rotate'),
'min' => 0,
'max' => 360,
'screen' => 1,
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'data-xrotate="{{xrotate}}"'],
'show' => array(
'tick_type' => 'xaxis'
),
),
'xbegin' => array(
'type' => 'checkbox',
'label' => __pl('begin_at_zero'),
'default' => 'true',
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'data-xbegin="{{xbegin}}"'],
'show' => array(
'tick_type' => 'xaxis'
),
),
'ycolor' => array(
'type' => 'color',
'label' => __pl('color'),
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'data-ycolor="{{ycolor}}"'],
'show' => array(
'tick_type' => 'yaxis'
),
),
'ysize' => array(
'type' => 'slider',
'label' => __pl('size'),
'min' => 0,
'max' => 100,
'screen' => 1,
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'data-ysize="{{ysize}}"'],
'show' => array(
'tick_type' => 'yaxis'
),
),
'yrotate' => array(
'type' => 'slider',
'label' => __pl('Rotate'),
'min' => 0,
'max' => 360,
'screen' => 1,
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'data-yrotate="{{yrotate}}"'],
'show' => array(
'tick_type' => 'yaxis'
),
),
'ybegin' => array(
'type' => 'checkbox',
'label' => __pl('begin_at_zero'),
'default' => 'true',
'addAttr' => ['{{element}} .pagelayer-chart-holder' => 'data-ybegin="{{ybegin}}"'],
'show' => array(
'tick_type' => 'yaxis'
),
),
],
'title_style' => [
'title' => array(
'type' => 'text',
'label' => __pl('title'),
'default' => __pl('company_performance'),
'edit' => '.pagelayer-chart-title',
),
'title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#47425d',
'css' => ['{{element}} .pagelayer-chart-title' => 'color:{{val}}'],
'req' => [
'!title' => ''
],
),
'title_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'center',
'screen' => 1,
'css' => ['{{element}} .pagelayer-chart-title' => 'text-align:{{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'req' => [
'!title' => ''
],
),
'title_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-chart-title' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => [
'!title' => ''
],
),
],
'styles' => [
'label_style' => __pl('label_style'),
'datasets' => __pl('datasets'),
'ticks_style' => __pl('ticks_style'),
'title_style' => __pl('title_style'),
],
)
);
// Chart
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_chart_datasets', array(
'name' => __pl('chart_dataset'),
'group' => 'other',
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_chart'],
'holder' => '.pagelayer-chart-datasets',
'html' => '<div class="pagelayer-chart-datasets"></div>',
'params' => array(
'label' => array(
'type' => 'text',
'label' => __pl('label'),
'default' => __pl('dataset_name'),
'addAttr' => ['{{element}} .pagelayer-chart-datasets' => 'datasets-label="{{label}}"'],
),
'datasets' => array(
'type' => 'textarea',
'label' => __pl('dataset_name'),
'desc' => __pl('Enter the datasets and separate by coma(,)'),
'default' => '5,9,7,8,5',
'addAttr' => ['{{element}} .pagelayer-chart-datasets' => 'chart-datasets="{{datasets}}"'],
),
'bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'addAttr' => ['{{element}} .pagelayer-chart-datasets' => 'dataset-bg="{{bg_color}}"'],
),
'chart_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'addAttr' => ['{{element}} .pagelayer-chart-datasets' => 'border-color="{{chart_border_color}}"'],
),
'fill_color' => array(
'type' => 'checkbox',
'label' => __pl('fill_color'),
'default' => 'true',
'addAttr' => ['{{element}} .pagelayer-chart-datasets' => 'dataset-fill="{{fill_color}}"']
),
),
)
);
// Menu list
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_menu_list', array(
'name' => __pl('menu_list'),
'group' => 'other',
'holder' => '.pagelayer-menu-list',
//'innerHTML' => 'text',
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
'html' => '<div class="pagelayer-menu-list"></div>',
'params' => [
'elements' => array(
'type' => 'group',
'label' => __pl('menu_item'),
'sc' => PAGELAYER_SC_PREFIX.'_menu_item',
'item_label' => array(
'default' => __pl('menu_item'),
'param' => 'title'
),
'count' => 3,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('menu_name'))),
),
'item_space' => array(
'type' => 'slider',
'label' => __pl('space_between'),
'min' => 0,
'max' => 100,
'step' => 1,
'default' => 10,
'screen' => 1,
'css' => ['{{element}} .pagelayer-menu-item' => 'padding-bottom: calc({{val}}px / 2); margin-bottom: calc({{val}}px / 2);'],
),
'valign' => array(
'type' => 'select',
'label' => __pl('badge_vertical_align'),
'default' => 'center',
'screen' => 1,
'css' => ['{{element}} .pagelayer-menu-item' => '-webkit-box-align:{{val}}; -webkit-align-items:{{val}}; -ms-flex-align:{{val}}; align-items:{{val}};'],
'list' => [
'flex-start' => __pl('top'),
'center' => __pl('center'),
'flex-end' => __pl('bottom'),
],
),
'item_border_type' => array(
'type' => 'select',
'label' => __pl('divider'),
'default' => '',
'css' => ['{{element}} .pagelayer-menu-item' => 'border-bottom-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'item_border_color' => array(
'type' => 'color',
'label' => __pl('divider_color'),
'default' => '#dbdbdb',
'css' => ['{{element}} .pagelayer-menu-item' => 'border-bottom-color: {{val}};'],
'req' => ['!item_border_type' => '']
),
'item_border_width' => array(
'type' => 'slider',
'label' => __pl('thickness'),
'min' => 0,
'max' => 20,
'step' => 1,
'default' => 2,
'screen' => 1,
'css' => ['{{element}} .pagelayer-menu-item' => 'border-bottom-width: {{val}}px;'],
'req' => ['!item_border_type' => '']
),
],
'title_styles' => [
'title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#0c0901',
'css' => ['{{element}} .pagelayer-menu-title' => 'color:{{val}}'],
),
'title_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',19,,700,,,solid,,,,',
'css' => ['{{element}} .pagelayer-menu-title span:first-child' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'space_bottom' => array(
'type' => 'slider',
'label' => __pl('space_bottom'),
'min' => 0,
'max' => 100,
'step' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-menu-title' => 'padding-bottom:{{val}}px;']
),
],
'item_details' => [
'includes_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#484745',
'css' => ['{{element}} .pagelayer-menu-includes' => 'color:{{val}}'],
),
'includes_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',12,italic,200,,,,,,,',
'css' => ['{{element}} .pagelayer-menu-includes' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
],
'separator_style' => [
'separater' => array(
'type' => 'select',
'label' => __pl('type'),
'default' => 'dotted',
'css' => ['{{element}} .pagelayer-menu-separeter' =>'border-top-style:{{val}};'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
]
),
'separater_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#777777',
'css' => ['{{element}} .pagelayer-menu-separeter' => 'border-top-color:{{val}};'],
'req' => ['!separater' => '']
),
'separater_width' => array(
'type' => 'slider',
'label' => __pl('shape_width'),
'min' => 0,
'max' => 20,
'step' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-menu-separeter' => 'border-top-width:{{val}}px;'],
'default' => 1,
'req' => ['!separater' => '']
),
'separater_spacing' => array(
'type' => 'slider',
'label' => __pl('stars_spacing'),
'min' => 0,
'max' => 100,
'step' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-menu-separeter' => 'margin: 0 {{val}}px;'],
'default' => 10,
'req' => ['!separater' => '']
),
],
'price_style' => [
'price_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#c02530',
'css' => ['{{element}} .pagelayer-menu-price' => 'color:{{val}}'],
),
'price_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',25,,600,,,,,,,',
'css' => ['{{element}} .pagelayer-menu-price' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
],
'desc_style' => [
'desc_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#484745',
'css' => ['{{element}} .pagelayer-menu-desc' => 'color:{{val}}'],
),
'desc_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',14,,,,,solid,1.5,,,',
'css' => ['{{element}} .pagelayer-menu-desc' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
],
'image_style' => [
'custom_size' => array(
'type' => 'spinner',
'label' => __pl('shape_width'),
'min' => 0,
'max' => 2000,
'step' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-menu-img img' => 'width: {{val}}px;'],
'default' => 400,
),
'img_spacing' => array(
'type' => 'slider',
'label' => __pl('stars_spacing'),
'min' => 0,
'max' => 100,
'step' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-menu-img' => 'padding-right: {{val}}px;'],
'default' => 10,
),
'img_border_hover' => array(
'type' => 'radio',
'label' => '',
'default' => '',
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'img_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-menu-img img' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'img_border_hover' => ''
),
),
'img_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-menu-img img' => 'border-color: {{val}};'],
'req' => array(
'!img_border_type' => ''
),
'show' => array(
'img_border_hover' => ''
),
),
'img_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-menu-img img' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!img_border_type' => ''
],
'show' => array(
'img_border_hover' => ''
),
),
'img_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-menu-img img' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'show' => array(
'img_border_hover' => ''
),
),
'img_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}}:hover .pagelayer-menu-img img' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'img_border_hover' => 'hover'
),
),
'img_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}}:hover .pagelayer-menu-img img' => 'border-color: {{val}};'],
'default' => '#0986c0',
'req' => array(
'!img_border_type' => ''
),
'show' => array(
'img_border_hover' => 'hover'
),
),
'img_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}}:hover .pagelayer-menu-img img' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!img_border_type' => ''
],
'show' => array(
'img_border_hover' => 'hover'
),
),
'img_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}}:hover .pagelayer-menu-img img' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'show' => array(
'img_border_hover' => 'hover'
),
),
],
'styles' => [
'title_styles' => __pl('title_style'),
'item_details' => __pl('item_details'),
'price_style' => __pl('price_style'),
'desc_style' => __pl('desc_style'),
'image_style' => __pl('image_style'),
'separator_style' => __pl('separator_style'),
]
)
);
// Menu item
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_menu_item', array(
'name' => __pl('menu_item'),
'group' => 'other',
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_menu_list'],
//'innerHTML' => 'text',
'html' => '<div class="pagelayer-menu-item">
<div if="{{img}}" class="pagelayer-menu-img">
<img class="pagelayer-img" src="{{{img-url}}}" title="{{{img-title}}}" alt="{{{img-alt}}}"/>
</div>
<div class="pagelayer-menu-details">
<div class="pagelayer-menu-text">
<div class="pagelayer-menu-title">
<span if="{{title}}">
<div class="pagelayer-menu-title-holder">{{title}}</div>
<div if="{{includes}}" class="pagelayer-menu-includes">{{includes}}</div>
</span>
<span class="pagelayer-menu-separeter"></span>
<span if="{{price}}" class="pagelayer-menu-price">{{price}}</span>
</div>
<div if="{{desc}}" class="pagelayer-menu-desc">{{desc}}</div>
</div>
</div>
</div>',
'params' => array(
'title' => array(
'type' => 'text',
'label' => __pl('title'),
'default' => __pl('menu_item'),
'edit' => '.pagelayer-menu-title-holder',
),
'includes' => array(
'type' => 'text',
'label' => __pl('includes_styles'),
'default' => __pl('includes_default'),
'edit' => '.pagelayer-menu-includes',
),
'desc' => array(
'type' => 'textarea',
'label' => __pl('desc_style'),
'default' => __pl('desc_default'),
'edit' => '.pagelayer-menu-desc',
),
'price' => array(
'type' => 'text',
'label' => __pl('price_style'),
'default' => __pl('$59'),
'edit' => '.pagelayer-menu-price',
),
'img' => array(
'type' => 'image',
'label' => __pl('Image'),
),
)
)
);
// Post Portfolio
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_post_folio', array(
'name' => __pl('post_folio'),
'group' => 'other',
'html' => '<div class="pagelayer-postfolio-section">{{post_html}}</div>',
'params' => array(
'type' => array(
'type' => 'select',
'label' => __pl('type'),
'default' => 'post',
'list' => array(
'post' => __pl('post'),
'page' => __pl('page'),
),
),
'columns' => array(
'type' => 'select',
'label' => __pl('columns'),
'default' => '3',
'screen' => 1,
'css' => ['{{element}} .pagelayer-postfolio-container' => 'grid-template-columns: repeat({{val}},1fr);'],
'list' => array(
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '5',
'6' => '6',
),
),
'count' => array(
'type' => 'spinner',
'label' => __pl('post_per_page'),
'min' => 1,
'step' => 1,
'default' => 6,
),
'ratio' => array(
'type' => 'spinner',
'label' => __pl('ratio'),
'min' => 0,
'step' => 0.1,
'max' => 2,
'default' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-postfolio-thumb' => 'padding: calc(50% * {{val}}) 0;'],
),
'col_gap' => array(
'type' => 'slider',
'label' => __pl('col_gap'),
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 0,
'screen' => 1,
'css' => ['{{element}} .pagelayer-postfolio-container' => 'grid-column-gap: {{val}}px;'],
),
'row_gap' => array(
'type' => 'slider',
'label' => __pl('row_gap'),
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 0,
'screen' => 1,
'css' => ['{{element}} .pagelayer-postfolio-container' => 'grid-row-gap: {{val}}px;'],
),
'thumb_radius' => array(
'type' => 'slider',
'label' => __pl('border_radius'),
'min' => 0,
'step' => 1,
'max' => 50,
'default' => 0,
'screen' => 1,
'css' => [
'{{element}} .pagelayer-postfolio-thumb' => 'border-radius:{{val}}%;',
'{{element}} .pagelayer-postfolio-content' => 'border-radius:{{val}}%;'
],
),
),
'title_style' => [
'title_hover' => [
'type' => 'radio',
'label' => '',
'default' => '',
'list' => [
'' => __pl('normal'),
'hover' => __pl('hover'),
],
],
'show_title' => array(
'type' => 'checkbox',
'label' => __pl('show_title'),
'default' => '',
'css' => ['{{element}} .pagelayer-entry-title' => 'opacity:1;'],
'show' => ['title_hover' => '']
),
'title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#333333',
'css' => ['{{element}} .pagelayer-entry-title' => 'color:{{val}};'],
'show' => ['title_hover' => ''],
'req' => ['show_title' => 'true']
),
'title_typo' => array(
'type' => 'typography',
'label' => __pl('title_typo'),
'default' => ',20,,600,,,,,,,',
'css' => ['{{element}} .pagelayer-entry-title' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => ['title_hover' => ''],
'req' => ['show_title' => 'true']
),
'show_title_hover' => array(
'type' => 'checkbox',
'label' => __pl('show_title'),
'default' => 'true',
'css' => ['{{element}} .pagelayer-postfolio-content:hover .pagelayer-entry-title' => 'opacity:1;'],
'show' => ['title_hover' => 'hover']
),
'title_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#333333',
'css' => ['{{element}} .pagelayer-postfolio-content:hover .pagelayer-entry-title' => 'color:{{val}};'],
'show' => ['title_hover' => 'hover'],
'req' => ['show_title_hover' => 'true']
),
'title_typo_hover' => array(
'type' => 'typography',
'label' => __pl('title_typo'),
'default' => ',20,,600,,,,,,,',
'css' => ['{{element}} .pagelayer-postfolio-content:hover .pagelayer-entry-title' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => ['title_hover' => 'hover'],
'req' => ['show_title_hover' => 'true']
),
],
'overlay_style' => [
'overlay_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#dadada',
'css' => ['{{element}} .pagelayer-postfolio-thumb' => 'background-color:{{val}};']
),
'overlay_color_hover' => array(
'type' => 'color',
'label' => __pl('on_hover'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-postfolio-content:hover' => 'background-color:{{val}};']
),
'overlay_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('overlay_hover_delay'),
'min' => 0,
'step' => 100,
'max' => 3000,
'default' => 400,
'css' => [
'{{element}} .pagelayer-postfolio-content' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;',
'{{element}} .pagelayer-entry-title' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;',
],
),
],
'filter_style' => [
'filter_by' => array(
'type' => 'select',
'label' => __pl('filter_by'),
'default' => 'category',
'list' => array(
'none' => __pl('none'),
'category' => __pl('category'),
'tags' => __pl('tags'),
),
),
'filter_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#8DBCFA',
'css' => ['{{element}} .pagelayer-postfolio-btn' => 'color:{{val}};'],
'req' => ['!filter_by' => '']
),
'filter_bg' => array(
'type' => 'color',
'label' => __pl('background_color'),
'default' => '',
'css' => ['{{element}} .pagelayer-postfolio-btn' => 'background-color:{{val}};'],
'req' => ['!filter_by' => '']
),
'filter_typo' => array(
'type' => 'typography',
'label' => __pl('title_typo'),
'default' => ',20,,,,,,,,,',
'css' => ['{{element}} .pagelayer-postfolio-btn' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => ['!filter_by' => '']
),
'filter_size' => array(
'type' => 'dimension',
'label' => __pl('btn_padding'),
'default' => '5,10',
'screen' => 1,
'css' => ['{{element}} .pagelayer-postfolio-btn' => 'padding-top: {{val[0]}}px; padding-bottom: {{val[0]}}px; padding-left: {{val[1]}}px; padding-right: {{val[1]}}px;'],
'req' => ['!filter_by' => '']
),
'filter_radius' => array(
'type' => 'slider',
'label' => __pl('border_radius'),
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 0,
'screen' => 1,
'css' => ['{{element}} .pagelayer-postfolio-btn' => 'border-radius:{{val}}px;'],
'req' => ['!filter_by' => '']
),
'filter_spacing' => array(
'type' => 'slider',
'label' => __pl('space_between'),
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 5,
'screen' => 1,
'css' => ['{{element}} .pagelayer-postfolio-btn' => 'margin:0 {{val}}px;'],
'req' => ['!filter_by' => '']
),
'space_bottom' => array(
'type' => 'slider',
'label' => __pl('space_bottom'),
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 10,
'screen' => 1,
'css' => ['{{element}} .pagelayer-postfolio-filter' => 'padding-bottom:{{val}}px;'],
'req' => ['!filter_by' => '']
),
],
'styles' => [
'title_style' => __pl('title_style'),
'overlay_style' => __pl('overlay_style'),
'filter_style' => __pl('filter_style'),
]
)
);
// Posts
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_posts', array(
'name' => __pl('posts'),
'group' => 'other',
'prevent_inside' => ['pl_slides'],
'html' => '<div class="pagelayer-posts-container">{{post_html}}</div>
<div if="{{infinite_types}}" class="pagelayer_load_button" data-text={{infinite_final}}>
<a data-max="{{max_pages}}" class="pagelayer-btn-holder pagelayer-btn-load pagelayer-ele-link {{infinite_btn_type}} {{infinite_btn_size}} {{load_btn_icon_position}}">
<i if="{{load_btn_icon}}" class="{{load_btn_icon}} pagelayer-btn-load-icon"></i>
<span if="{{infinite_text}}" class="pagelayer-btn-load-text" >{{infinite_text}}</span>
<i if="{{load_btn_icon}}" class="{{load_btn_icon}} pagelayer-btn-load-icon"></i>
</a>
<div class="pagelayer-loader-holder" >
<i class="fa fa-spinner fa-spin fa-3x fa-fw" aria-hidden="true"></i>
</div>
</div>',
'params' => array(
'post_type' => array(
'type' => 'select',
'label' => __pl('posts_grid_post_type_label'),
'desc' => __pl('posts_grid_post_type_desc'),
'list' => array(
'post' => __pl('post'),
//'page' => __pl('page')
)
),
'by_period' => array(
'type' => 'select',
'label' => __pl('period'),
'default' => '',
'list' => array(
'' => __pl('all'),
'last_day' => __pl('last_day'),
'last_week' => __pl('last_week'),
'last_month' => __pl('last_month'),
'last_year' => __pl('last_year'),
'custom' => __pl('custom'),
//'ID' => __pl('ID'),
)
),
'before_date' => array(
'type' => 'datetime',
'displayMode' => 'datetime', // date | datetime (default)
'returnMode' => 'YYYY-MM-DD H:m:s', // mysql format uses here (default: Y-m-d H:i:s )
'label' => __pl('before'),
'default' => '',
'req' => ['by_duration' => 'custom']
),
'after_date' => array(
'type' => 'datetime',
'displayMode' => 'datetime', // date | datetime (default)
'returnMode' => 'YYYY-MM-DD H:m:s', // mysql format uses here (default: Y-m-d H:i:s )
'label' => __pl('after'),
'default' => '',
'req' => ['by_duration' => 'custom']
),
'orderby' => array(
'type' => 'select',
'label' => __pl('posts_order_by'),
'default' => 'date',
'list' => array(
'date' => __pl('date'),
'title' => __pl('title'),
'modified' => __pl('posts_order_by_modified'),
'rand' => __pl('posts_order_by_random'),
'menu_order' => __pl('posts_order_by_menu_order'),
'author' => __pl('author'),
'ID' => __pl('ID'),
)
),
'posts_order' => array(
'type' => 'select',
'label' => __pl('posts_grid_sort_order'),
'default' => 'DESC',
'list' => array(
'ASC' => __pl('posts_grid_sort_order_ascending'),
'DESC' => __pl('posts_grid_sort_order_descending')
)
),
'count' => array(
'type' => 'spinner',
'label' => __pl('post_per_page'),
'min' => 1,
'step' => 1,
'default' => 6,
),
'que_sec' => array(
'type' => 'radio',
'label' => '',
'default' => 'include',
'list' => array(
'include' => __pl('include'),
'exclude' => __pl('exclude')
)
),
'include_by' => array(
'type' => 'multiselect',
'label' => __pl('include_by'),
'list' => array(
'term' => __pl('term'),
'author' => __pl('author')
),
'show' => ['que_sec' => 'include']
),
'inc_term' => array(
'type' => 'multiselect',
'label' => __pl('term'),
'list' => pagelayer_get_post_term(),
'req' => ['include_by' => ['term','term,author']],
'show' => ['que_sec' => 'include']
),
'inc_author' => array(
'type' => 'select',
'label' => __pl('author'),
'list' => pagelayer_get_post_author(),
'req' => ['include_by' => ['author','term,author']],
'show' => ['que_sec' => 'include']
),
'ignore_sticky' => array(
'label' => __pl('ignore_sticky_posts'),
'type' => 'checkbox',
'show' => ['que_sec' => 'include']
),
'exclude_by' => array(
'type' => 'multiselect',
'label' => __pl('exclude_by'),
'list' => array(
'term' => __pl('term'),
'author' => __pl('author')
),
'show' => ['que_sec' => 'exclude']
),
'exc_term' => array(
'type' => 'multiselect',
'label' => __pl('term'),
'list' => pagelayer_get_post_term(),
'req' => ['exclude_by' => ['term','term,author']],
'show' => ['que_sec' => 'exclude']
),
'exc_author' => array(
'type' => 'select',
'label' => __pl('author'),
'list' => pagelayer_get_post_author(),
'req' => ['exclude_by' => ['author','term,author']],
'show' => ['que_sec' => 'exclude']
),
'offset' => array(
'type' => 'spinner',
'label' => __pl('offset'),
'min' => 0,
'step' => 1,
'max' => 50,
'show' => ['que_sec' => 'exclude']
),
),
'posts_options' => $pagelayer_posts_options,
'thumb_style' => $pagelayer_thumb_style,
'title_style' => $pagelayer_title_style,
'meta_options' => $pagelayer_meta_style,
'content_style' => $pagelayer_content_style,
'more_style' => $pagelayer_more_style,
'btn_border_style' => $pagelayer_btn_border_style,
'slider_options' => [
'enable_slider' => array(
'type' => 'checkbox',
'label' => __pl('enable_slider'),
'default' => '',
'addAttr' => ['{{element}} .pagelayer-posts-container' => 'data-enable_slider="enable"']
),
'slide_items' => array(
'type' => 'spinner',
'label' => __pl('number_of_items'),
'min' => 1,
'step' => 1,
'max' => 10,
'default' => 1,
'addAttr' => ['{{element}} .pagelayer-posts-container' => 'data-owl-items="{{slide_items}}"'],
'req' => ['enable_slider' => 'true']
),
'slide_margin' => array(
'type' => 'slider',
'label' => __pl('space_between'),
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 10,
'addAttr' => ['{{element}} .pagelayer-posts-container' => 'data-owl-margin="{{slide_margin}}"'],
'req' => [
'!slide_items' => '1',
'enable_slider' => 'true'
]
),
'slide_loop' => array(
'type' => 'checkbox',
'label' => __pl('loop'),
'addAttr' => ['{{element}} .pagelayer-posts-container' => 'data-owl-loop="{{slide_loop}}"'],
'req' => ['enable_slider' => 'true']
),
'slide_nav' => array(
'type' => 'checkbox',
'label' => __pl('navigation'),
'addAttr' => ['{{element}} .pagelayer-posts-container' => 'data-owl-nav="{{slide_nav}}"'],
'req' => ['enable_slider' => 'true']
),
'slide_dots' => array(
'type' => 'checkbox',
'label' => __pl('bullets'),
'default' => 'true',
'addAttr' => ['{{element}} .pagelayer-posts-container' => 'data-owl-dots="{{slide_dots}}"'],
'req' => ['enable_slider' => 'true']
),
'slide_autoplay' => array(
'type' => 'checkbox',
'label' => __pl('autoplay'),
'default' => 'true',
'addAttr' => ['{{element}} .pagelayer-posts-container' => 'data-owl-autoplay="{{slide_autoplay}}"'],
'req' => ['enable_slider' => 'true']
),
'slide_timeout' => array(
'type' => 'spinner',
'label' => __pl('autoplay_timeout'),
'min' => 1000,
'step' => 200,
'max' => 10000,
'addAttr' => ['{{element}} .pagelayer-posts-container' => 'data-owl-autoplay-timeout="{{slide_timeout}}"'],
'req' => [
'slide_autoplay' => 'true',
'enable_slider' => 'true'
]
),
'slide_hoverpause' => array(
'type' => 'checkbox',
'label' => __pl('autoplay_hover_pause'),
'addAttr' => ['{{element}} .pagelayer-posts-container' => 'data-owl-autoplay-hover-pause="{{slide_hoverpause}}"'],
'req' => [
'slide_autoplay' => 'true',
'enable_slider' => 'true'
]
),
],
'infinite' => $pagelayer_infinite_style,
'arrow_styles' => $pagelayer->slider_arrow_styles,
'pager_styles' => $pagelayer->slider_pager_styles,
'styles' => [
'posts_options' => __pl('posts_options'),
'thumb_style' => __pl('thumb_style'),
'title_style' => __pl('title_style'),
'meta_options' => __pl('meta_options'),
'content_style' => __pl('content_style'),
'more_style' => __pl('more_style'),
'btn_border_style' => __pl('border_styles'),
'slider_options' => __pl('slider_options'),
'arrow_styles' => __pl('arrow_styles'),
'pager_styles' => __pl('pager_styles'),
'infinite' => __pl('infinite_scroll'),
]
)
);
// Slides
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_slides', array(
'name' => __pl('slides'),
'group' => 'other',
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
'prevent_inside' => ['pl_slides'],
'holder' => '.pagelayer-slides-holder',
'child_selector' => '>.pagelayer-owl-stage-outer>.pagelayer-owl-stage>.pagelayer-owl-item', // Make it very specifc
'html' => '<div class="pagelayer-slides-holder pagelayer-owl-holder pagelayer-owl-carousel pagelayer-owl-theme"></div>',
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('slide'),
'sc' => PAGELAYER_SC_PREFIX.'_content_slide',
'item_label' => array(
'default' => __pl('slide'),
'param' => 'item'
),
'count' => 2,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('slide'))),
),
'height' => array(
'type' => 'slider',
'label' => __pl('height'),
'screen' => 1,
'min' => 1,
'step' => 1,
'max' => 1500,
'units' => ['vh','px','%'],
'css' => [
'{{element}} .pagelayer-slide, {{element}} .pagelayer-content-slide' => 'max-height: {{val}}; height:{{val}};',
],
),
),
'slider_options' => $pagelayer->slider_options,
'arrow_styles' => $pagelayer->slider_arrow_styles,
'pager_styles' => $pagelayer->slider_pager_styles,
'styles' => [
'slider_options' => __pl('slider_options'),
'arrow_styles' => __pl('arrow_styles'),
'pager_styles' => __pl('pager_styles'),
]
)
);
// Content Slide
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_content_slide', array(
'name' => __pl('content_slide'),
'group' => 'other',
'has_group' => [
'section' => 'params',
'prop' => 'elements',
],
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_slides'],
'holder' => '.pagelayer-content-slide',
'html' => '<div class="pagelayer-content-slide-bg"></div>
<div class="pagelayer-slide-bg-overlay"></div>
<div class="pagelayer-content-slide"></div>',
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('Inner Row'),
'sc' => PAGELAYER_SC_PREFIX.'_inner_row',
'count' => 1,
'item_label' => array(
'default' => __pl('Slide Inner Row'),
),
'inner_content' => [
['pl_col' => [
'atts' => ['ele_padding' => '8%,8%,8%,8%', 'content_pos' => 'center'],
'inner_content' => [
['pl_anim_heading' => [
'atts' => ['text' => 'Faster & Easiest way to make a slide with', 'type' => 'rotating', 'align' => 'center', 'animations' => 'pagelayer-aheading-push', 'color' => '#fff', 'color_type' => 'color', 'rotate_color' => '#ff7a03', 'rotate_text' => 'Drag&Drop,Animations,&More', 'typo' => ',30,,700,,,Solid,,,,']
]],
['pl_heading' => [
'atts' => ['text' => '<h4>Slide show Sub-Heading</h4>', 'color' => '#ffffff', 'align' => 'center']
]],
['pl_text' => [
'atts' => ['text' => '<p style="text-align: center; color: rgb(255, 255, 255);">This is the default Slide show content. Feel free to delete it.</p>']
]],
['pl_btn' => [
'atts' => ['align' => 'center', 'type' => 'pagelayer-btn-custom', 'size' => 'pagelayer-btn-mini', 'btn_bg_color' => '', 'btn_color' => '#fff', 'btn_border_type' => 'solid', 'btn_border_color' => '#fff', 'btn_color_hover' => '#fff']
]],
]
]],
],
'hide' => 1,
),
'type' => array(
'label' => __pl('background_type'),
'type' => 'radio',
'list' => array(
'' => __pl('color'),
'image' => __pl('image'),
'gradient' => __pl('gradient')
),
),
'bg_color' => [
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'background: {{val}};'],
'req' => ['type' => '']
],
'gradient' => [
'type' => 'gradient',
'label' => '',
'default' => '150,#44d3f6,23,#72e584,45,#2ca4eb,100',
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%);'],
'req' => ['type' => 'gradient']
],
'img_color' => [
'type' => 'color',
'label' => __pl('color'),
'desc' => __pl('fallback_color'),
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'background: {{val}};'],
'req' => ['type' => 'image']
],
'bg_img' => [
'type' => 'image',
'label' => __pl('Image'),
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'background: url("{{{bg_img-url}}}");'],
'req' => ['type' => 'image']
],
'bg_attachment' => [
'type' => 'select',
'label' => __pl('ele_bg_attachment'),
'list' => [
'' => __pl('default'),
'scroll' => __pl('scroll'),
'fixed' => __pl('fixed')
],
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'background-attachment: {{val}};', '{{element}} .pagelayer-content-slide-bg' => 'background-attachment: {{val}};'],
'req' => ['type' => 'image']
],
'bg_posx' => [
'type' => 'select',
'label' => __pl('ele_bg_posx'),
'list' => [
'' => __pl('default'),
'center' => __pl('center'),
'left' => __pl('left'),
'right' => __pl('right')
],
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'background-position-x: {{val}};'],
'req' => ['type' => 'image']
],
'bg_posy' => [
'type' => 'select',
'label' => __pl('ele_bg_posy'),
'list' => [
'' => __pl('default'),
'center' => __pl('center'),
'top' => __pl('top'),
'bottom' => __pl('bottom')
],
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'background-position-y: {{val}};'],
'req' => ['type' => 'image']
],
'bg_repeat' => [
'type' => 'select',
'label' => __pl('ele_bg_repeat'),
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'background-repeat: {{val}};'],
'list' => [
'' => __pl('default'),
'repeat' => __pl('repeat'),
'no-repeat' => __pl('no-repeat'),
'repeat-x' => __pl('repeat-x'),
'repeat-y' => __pl('repeat-y'),
],
'req' => ['type' => 'image']
],
'bg_size' => [
'type' => 'select',
'label' => __pl('ele_bg_size'),
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'background-size: {{val}};'],
'list' => [
'' => __pl('default'),
'cover' => __pl('cover'),
'contain' => __pl('contain')
],
'req' => ['type' => 'image']
],
'bg_ken_burn' => array(
'type' => 'checkbox',
'label' => __pl('ken_burn_effect'),
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'animation-name: pagelayerKenBurn;'],
'req' => ['type' => 'image']
),
'bg_ken_burn_speed' => array(
'type' => 'spinner',
'label' => __pl('ken_burn_speed'),
'min' => 1,
'step' => 1,
'default' => '20',
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'animation-duration:{{val}}s;'],
'req' => ['!bg_ken_burn' => '', 'type' => 'image'],
),
'bg_ken_burn_rev' => array(
'type' => 'checkbox',
'label' => __pl('ken_burn_reverse'),
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'animation-name: pagelayerKenBurnReverse;'],
'req' => ['!bg_ken_burn' => '', 'type' => 'image'],
),
'bg_ken_burn_loop' => array(
'type' => 'checkbox',
'label' => __pl('loop_kenburn'),
'css' => ['{{element}} .pagelayer-content-slide-bg' => 'animation-iteration-count: infinite;'],
'req' => ['!bg_ken_burn' => '', 'type' => 'image'],
),
'bg_overlay' => [
'type' => 'checkbox',
'label' => __pl('row_bg_overlay'),
],
'bg_overlay_color' => [
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-slide-bg-overlay' => 'background-color: {{val}}'],
'req' => ['!bg_overlay' => '']
],
'bg_overlay_blend_mode' => [
'type' => 'select',
'label' => __pl('blend_mode'),
'list' => [
'' => __pl('Normal'),
'multiply' => __pl('Multiply'),
'screen' => __pl('Screen'),
'overlay' => __pl('Overlay'),
'darken' => __pl('Darken'),
'lighten' => __pl('Lighten'),
'color-dodge' => __pl('Color Dodge'),
'color-burn' => __pl('Color Burn'),
'hue' => __pl('Hue'),
'saturation' => __pl('Saturation'),
'color' => __pl('Color'),
'exclusion' => __pl('Exclusion'),
'luminosity' => __pl('Luminosity'),
],
'css' => ['{{element}} .pagelayer-slide-bg-overlay' => 'mix-blend-mode:{{val}};'],
'req' => ['!bg_overlay' => ''],
],
),
));
// Slide, for backward compatibility of slides child
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_slide', array(
'name' => __pl('slide'),
'group' => 'other',
'holder' => '.pagelayer-slide-btns',
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_slides'],
'html' => '<div class="pagelayer-slide-holder">
<div if="{{heading}}" class="pagelayer-slide-heading">{{heading}}</div>
<div if="{{sub}}" class="pagelayer-slide-sub">{{sub}}</div>
<div if="{{desc}}" class="pagelayer-slide-desc">{{desc}}</div>
<div class="pagelayer-slide-btns"></div>
</div>',
//'innerHTML' => 'desc',
'has_group' => [
'section' => 'btn_style',
'prop' => 'elements'
],
'params' => array(
'type' => array(
'label' => __pl('background_type'),
'type' => 'radio',
'default' => 'color',
'list' => array(
'color' => __pl('color'),
'image' => __pl('image'),
'gradient' => __pl('gradient')
)
),
'color' => [
'type' => 'color',
'label' => __pl('color'),
'default' => '#0986c0',
'css' => 'background: {{val}};',
'req' => ['type' => 'color']
],
'gradient' => [
'type' => 'gradient',
'label' => '',
'default' => '150,#44d3f6,23,#72e584,45,#2ca4eb,100',
'css' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%);',
'req' => ['type' => 'gradient']
],
'img_color' => [
'type' => 'color',
'label' => __pl('color'),
'default' => '',
'desc' => __pl('fallback_color'),
'css' => 'background: {{val}};',
'req' => ['type' => 'image']
],
'bg_img' => [
'type' => 'image',
'label' => __pl('Image'),
'css' => 'background: url("{{{bg_img-url}}}");',
'req' => ['type' => 'image']
],
'bg_attachment' => [
'type' => 'select',
'label' => __pl('ele_bg_attachment'),
'list' => [
'' => __pl('default'),
'scroll' => __pl('scroll'),
'fixed' => __pl('fixed')
],
'css' => 'background-attachment: {{val}};',
'req' => ['type' => 'image']
],
'bg_posx' => [
'type' => 'select',
'label' => __pl('ele_bg_posx'),
'list' => [
'' => __pl('default'),
'center' => __pl('center'),
'left' => __pl('left'),
'right' => __pl('right')
],
'css' => 'background-position-x: {{val}};',
'req' => ['type' => 'image']
],
'bg_posy' => [
'type' => 'select',
'label' => __pl('ele_bg_posy'),
'list' => [
'' => __pl('default'),
'center' => __pl('center'),
'top' => __pl('top'),
'bottom' => __pl('bottom')
],
'css' => 'background-position-y: {{val}};',
'req' => ['type' => 'image']
],
'bg_repeat' => [
'type' => 'select',
'label' => __pl('ele_bg_repeat'),
'css' => 'background-repeat: {{val}};',
'list' => [
'' => __pl('default'),
'repeat' => __pl('repeat'),
'no-repeat' => __pl('no-repeat'),
'repeat-x' => __pl('repeat-x'),
'repeat-y' => __pl('repeat-y'),
],
'req' => ['type' => 'image']
],
'bg_size' => [
'type' => 'select',
'label' => __pl('ele_bg_size'),
'css' => 'background-size: {{val}};',
'list' => [
'' => __pl('default'),
'cover' => __pl('cover'),
'contain' => __pl('contain')
],
'req' => ['type' => 'image']
],
),
'content_box_style' => [
'content_width' => array(
'type' => 'spinner',
'label' => __pl('width'),
'screen' => 1,
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 80,
'css' => ['{{element}} .pagelayer-slide-holder' => 'width: {{val}}%'],
),
'content_posx' => array(
'type' => 'slider',
'label' => __pl('horizontal_pos'),
'screen' => 1,
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 50,
'css' => ['{{element}} .pagelayer-slide-holder' => 'left: {{val}}%;'],
),
'content_posy' => array(
'type' => 'slider',
'label' => __pl('verticle_postion'),
'screen' => 1,
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 50,
'css' => ['{{element}} .pagelayer-slide-holder' => 'top: {{val}}%; transform: translate(-{{content_posx}}%, -{{val}}%);'],
),
'content_bg' => [
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#46494a98',
'css' => ['{{element}} .pagelayer-slide-holder' => 'background: {{val}}'],
],
'content_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'screen' => 1,
'default' => '50,50,50,50',
'css' => ['{{element}} .pagelayer-slide-holder' => 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[2]}}px; padding-left:{{val[3]}}px'],
),
'align' => array(
'label' => __pl('alignment'),
'type' => 'radio',
'default' => 'center',
'css' => ['{{element}} .pagelayer-slide-holder' => 'text-align:{{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
)
),
],
'heading_style' => [
'heading' => array(
'type' => 'text',
'label' => __pl('heading_style'),
'default' => __pl('This is Heading'),
'edit' => '.pagelayer-slide-heading',
),
'heading_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-slide-heading' => 'color: {{val}};'],
),
'heading_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',44,,700,,,solid,,,,',
'css' => ['{{element}} .pagelayer-slide-heading' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'heading_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'screen' => 1,
'min' => 0,
'step' => 1,
'default' => 0,
'max' => 200,
'css' => ['{{element}} .pagelayer-slide-heading' => 'padding-bottom: {{val}}px'],
),
],
'sub_style' => [
'sub' => array(
'type' => 'textarea',
'label' => __pl('sub_style'),
'default' => __pl('This is Sub-Heading'),
'edit' => '.pagelayer-slide-sub',
),
'sub_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-slide-sub' => 'color: {{val}};'],
),
'sub_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',26,,,,,solid,,,,',
'css' => ['{{element}} .pagelayer-slide-sub' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'sub_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'screen' => 1,
'min' => 0,
'step' => 1,
'default' => 20,
'max' => 200,
'css' => ['{{element}} .pagelayer-slide-sub' => 'padding-bottom: {{val}}px'],
),
],
'btn_style' => [
'elements' => array(
'type' => 'group',
'label' => __pl('buttons'),
'sc' => PAGELAYER_SC_PREFIX.'_btn',
'item_label' => array(
'default' => __pl('button'),
'param' => 'text'
),
'count' => 2,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('button_name'))),
),
'btn_space' => array(
'type' => 'slider',
'label' => __pl('space_between'),
'screen' => 1,
'min' => 0,
'step' => 1,
'max' => 100,
'default' => 10,
'css' => ['{{element}} .pagelayer-btn' => 'padding-right: {{val}}px;'],
)
],
'desc_style' => [
'desc' => array(
'type' => 'textarea',
'label' => __pl('desc_style'),
'default' => __pl('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer ac leo ut arcu dictum viverra at eu magna.'),
'edit' => '.pagelayer-slide-desc',
),
'desc_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-slide-desc' => 'color: {{val}};'],
),
'desc_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',15,,,,,solid,,,,',
'css' => ['{{element}} .pagelayer-slide-desc' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'desc_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'screen' => 1,
'min' => 0,
'step' => 1,
'default' => 10,
'max' => 200,
'css' => ['{{element}} .pagelayer-slide-desc' => 'padding-bottom: {{val}}px'],
),
],
'styles' => [
'content_box_style' => __pl('content_box_style'),
'heading_style' => __pl('heading_style'),
'sub_style' => __pl('sub_style'),
'desc_style' => __pl('desc_style'),
'btn_style' => __pl('btn_style'),
]
)
);
// Author Box
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_author_box', array(
'name' => __pl('author_box'),
'group' => 'archive',
'html' => '<div class="pagelayer-author-box-div pagelayer-author-box-holder pagelayer-layout-{{layout}}">
<div class="pagelayer-author-profile-pic" if={{author_picture}}>
<a if-ext={{show_website}} href="{{{author_website}}}" class="pagelayer-link-sel">
<img class="pagelayer-img pagelayer-author-image" src="{{{avatar-url}}}" title="{{{avatar-title}}}" alt="{{{avatar-alt}}}" />
</a>
</div>
<div class="pagelayer-author-profile-desc">
<a href="{{{author_website}}}" if-ext={{show_website}}>
<div class="pagelayer-author-title" if={{show_name}}>{{display_html}}</div>
</a>
<p class="pagelayer-author-bio" if={{show_bio}}>{{description}}</p>
<a href="{{user_url}}" class="pagelayer-author-btn {{type}} pagelayer-button {{size}} pagelayer-ele-link" if={{archive_btn}}>{{archive_btn_txt}}</a>
<a href="{{{author_website}}}" class="pagelayer-author-btn {{type}} pagelayer-button {{size}} pagelayer-ele-link" if={{show_as_button}}>{{btn_txt}}</a>
</div>
</div>',
'params' => array(
'box_source' => array(
'type' => 'select',
'label' => __pl('box_source_type'),
'default' => 'current',
'list' => array(
'current' => __pl('current_author'),
'custom' => __pl('custom'),
),
),
'avatar' => array(
'type' => 'image',
'label' => __pl('custom_image'),
'default' => PAGELAYER_URL.'/images/default-image.png',
'req' => ['box_source' => 'custom'],
),
'author_picture' => array(
'type' => 'checkbox',
'label' => __pl('author_picture'),
'default' => true,
),
'show_name' => array(
'type' => 'checkbox',
'label' => __pl('show_name'),
'default' => true,
),
'display_name' => array(
'type' => 'text',
'label' => __pl('display_name'),
'req' => ['box_source' => 'custom', 'show_name' => 'true' ],
'default' => 'Author',
),
'name_style' => array(
'type' => 'select',
'label' => __pl('name_style'),
'default' => 'h4',
'list' => array(
'h1' => __pl('H1'),
'h2' => __pl('H2'),
'h3' => __pl('H3'),
'h4' => __pl('H4'),
'h5' => __pl('H5'),
'h6' => __pl('H6'),
),
),
'user_url' => array(
'type' => 'select',
'label' => __pl('link'),
'default' => 'none',
'list' => array(
'none' => __pl('none'),
'archives' => __pl('archives'),
),
'req' => ['box_source' => 'current'],
),
'show_website' => array(
'type' => 'checkbox',
'label' => __pl('show_site'),
'default' => '',
),
'author_website' => array(
'type' => 'link',
'label' => __pl('author_website'),
'selector' => '.pagelayer-link-sel',
'req' => ['show_website' => 'true'],
),
'show_as_button' => array(
'type' => 'checkbox',
'label' => __pl('show_website_btn'),
'default' => '',
'req' => ['show_website' => 'true'],
),
'btn_txt' => array(
'type' => 'text',
'label' => __pl('button_text'),
'default' => 'Website',
'req' => array(
'show_as_button' => 'true',
'show_website' => 'true'
),
),
'show_bio' => array(
'type' => 'checkbox',
'label' => __pl('show_bio'),
'req' => ['box_source' => 'custom'],
'default' => 'true',
),
'description' => array(
'type' => 'textarea',
'label' => __pl('description'),
'default' => 'This is my Bio!',
'req' => array(
'box_source' => 'custom',
'show_bio' => 'true'
),
),
'archive_btn' => array(
'type' => 'checkbox',
'label' => __pl('show_archive_btn'),
'default' => '',
'req' => ['box_source' => 'current'],
),
'archive_btn_txt' => array(
'type' => 'text',
'label' => __pl('archive_btn_txt'),
'default' => 'All Post',
'req' => array(
'archive_btn' => 'true',
'box_source' => 'current'
),
),
'layout' => array(
'type' => 'radio',
'label' => __pl('layout'),
'default' => 'left',
//'css' => ['{{element}} .pagelayer-author-profile-pic' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
)
),
'alignment' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'left',
'screen' => 1,
'css' => ['{{element}} .pagelayer-author-profile-desc' => 'text-align: {{val}}',
'{{element}} .pagelayer-author-profile-pic' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
)
),
),
'image_style' => [
'image_size' => array(
'type' => 'slider',
'label' => __pl('image_size'),
'step' => 1,
'max' => 200,
'min' => 0,
'screen' => 1,
'css' => ['{{element}} .pagelayer-author-image' => 'height: {{val}}px; width: {{val}}px;'],
),
'image_gap' => array(
'type' => 'slider',
'label' => __pl('gap'),
'step' => 1,
'max' => 100,
'min' => 0,
'screen' => 1,
'css' => ['{{element}} .pagelayer-author-profile-pic' => 'padding-right: {{val}}px;'],
),
'image_border' => array(
'type' => 'checkbox',
'label' => __pl('border'),
'default' => '',
),
'image_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'req' => ['image_border' => 'true'],
'css' => ['{{element}} .pagelayer-author-image' => 'border-color: {{val}};'],
),
'image_border_width' => array(
'type' => 'slider',
'label' => __pl('border_width'),
'max' => 20,
'step' => 1,
'min' => 0,
'screen' => 1,
'req' => ['image_border' => 'true'],
'css' => ['{{element}} .pagelayer-author-image' => 'border-width: {{val}}px;'],
),
'image_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-author-image' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'req' => ['image_border' => 'true'],
),
'image_border_radius' => array(
'type' => 'slider',
'label' => __pl('border_radius'),
'step' => 1,
'max' => 100,
'min' => 0,
'screen' => 1,
'css' => ['{{element}} .pagelayer-author-image' => 'border-radius: {{val}}px;'],
),
'image_border_shadow' => array(
'type' => 'box_shadow',
'label' => __pl('shadow'),
'css' => ['{{element}} .pagelayer-author-image' =>'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}} !important;'],
)
],
'text_style' => [
'name_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-author-title *' => 'color: {{val}};'],
),
'name_typography' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-author-title *' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'{{element}} .pagelayer-author-title' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'title_gap' => array(
'type' => 'slider',
'label' => __pl('gap'),
'step' => 1,
'max' => 100,
'min' => 0,
'screen' => 1,
'css' => ['{{element}} .pagelayer-author-title' => 'padding-bottom: {{val}}px;'],
),
'bio_color' => array(
'type' => 'color',
'label' => __pl('bio_color'),
'css' => ['{{element}} .pagelayer-author-bio' => 'color: {{val}};'],
),
'bio_typography' => array(
'type' => 'typography',
'label' => __pl('bio_typo'),
'css' => ['{{element}} .pagelayer-author-bio *' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'{{element}} .pagelayer-author-bio' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'bio_gap' => array(
'type' => 'slider',
'label' => __pl('bio_gap'),
'step' => 1,
'max' => 100,
'min' => 0,
'screen' => 1,
'css' => ['{{element}} .pagelayer-author-bio' => 'padding-bottom: {{val}}px;'],
),
],
'button_style' => [
'type' => array(
'type' => 'select',
'label' => __pl('button_type_label'),
'default' => 'pagelayer-btn-default',
//'addClass' => ['{{element}} .pagelayer-btn-holder' => '{{val}}'],
'list' => array(
'pagelayer-btn-default' => __pl('btn_type_default'),
'pagelayer-btn-primary' => __pl('btn_type_primary'),
'pagelayer-btn-secondary' => __pl('btn_type_secondary'),
'pagelayer-btn-success' => __pl('btn_type_success'),
'pagelayer-btn-info' => __pl('btn_type_info'),
'pagelayer-btn-warning' => __pl('btn_type_warning'),
'pagelayer-btn-danger' => __pl('btn_type_danger'),
'pagelayer-btn-dark' => __pl('btn_type_dark'),
'pagelayer-btn-light' => __pl('btn_type_light'),
'pagelayer-btn-link' => __pl('btn_type_link'),
'pagelayer-btn-custom' => __pl('btn_type_custom')
),
),
'size' => array(
'type' => 'select',
'label' => __pl('button_size_label'),
'default' => 'pagelayer-btn-large',
'list' => array(
'pagelayer-btn-mini' => __pl('mini'),
'pagelayer-btn-small' => __pl('small'),
'pagelayer-btn-large' => __pl('large'),
'pagelayer-btn-extra-large' => __pl('extra_large'),
'pagelayer-btn-double-large' => __pl('double_large'),
'pagelayer-btn-custom' => __pl('custom'),
)
),
'btn_custom_size' => array(
'type' => 'spinner',
'label' => __pl('btn_custom_size'),
'min' => 1,
'step' => 1,
'max' => 100,
'default' => 5,
'screen' => 1,
'css' => ['{{element}} .pagelayer-author-btn' => 'padding: calc({{val}}px / 2) {{val}}px;'],
'req' => array(
'size' => 'pagelayer-btn-custom'
),
),
'btn_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => array(
'type' => 'pagelayer-btn-custom',
),
),
'btn_bg_color' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_label'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-author-btn' => 'background-color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => ''
),
),
'btn_color' => array(
'type' => 'color',
'label' => __pl('btn_color_label'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-author-btn' => 'color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => ''
),
),
'btn_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay_label'),
'desc' => __pl('btn_hover_delay_desc'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} .pagelayer-author-btn' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_hover_label'),
'default' => '',
'css' => ['{{element}} .pagelayer-author-btn:hover' => 'background-color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_color_hover_label'),
'default' => '',
'css' => ['{{element}} .pagelayer-author-btn:hover' => 'color: {{val}};'],
'req' => array(
'type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_bor_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'btn_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-author-btn' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-author-btn' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'css' => ['{{element}} .pagelayer-author-btn' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type' => ''
],
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'css' => ['{{element}} .pagelayer-author-btn' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-author-btn:hover' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color_hover_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-author-btn:hover' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width_hover'),
'css' => ['{{element}} .pagelayer-author-btn:hover' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type_hover' => ''
],
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius_hover'),
'css' => ['{{element}} .pagelayer-author-btn:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_gap' => array(
'type' => 'slider',
'label' => __pl('btn_gap'),
'step' => 1,
'max' => 100,
'min' => 0,
'screen' => 1,
'css' => ['{{element}} .pagelayer-author-btn' => 'margin-bottom: {{val}}px;'],
),
],
'styles' => [
'image_style' => __pl('image'),
'text_style' => __pl('text'),
'button_style' => __pl('button'),
]
)
);
// Login
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_login', array(
'name' => __pl('login'),
'group' => 'other',
'html' => '<div class="pagelayer-login-div pagelayer-login-holder" >
<form class="pagelayer-login-form" onsubmit="return pagelayer_login_submit(this, event)" method="POST">
<div>
<label if={{show_label}} class="pagelayer-login-username">{{custom_label_username}}</label>
<input type="text" name="username" id="username" placeholder="{{custom_placeholder_login}}" class="pagelayer-login-input-field" spellcheck="false"/>
</div>
<div class="user-pass-wrap">
<label if={{show_label}} class="pagelayer-login-password">{{custom_label_password}}</label>
<input type="password" name="password" id="password" placeholder="{{custom_placeholder_password}}" class="pagelayer-login-input-field" spellcheck="false"/>
</div>
<div class="pagelayer-login-cap" if="{{login_cap}}">{{login_cap}}</div>
<div>
<input type="checkbox" name="remember_me" if="{{remember_me}}" class="pagelayer-rememberMe"/><label if="{{remember_me}}" class="pagelayer-rememberMe">Remember Me</label>
</div>
<div class="wrapper pagelayer-login-btn-{{alignment}} pagelayer-login-wrappers">
<input type="hidden" name="login_url" value="{{redirect_url}}" if="{{redirect_login}}" />
<input type="hidden" name="logout_url" value="{{logout_url}}" if="{{redirect_logout}}" />
<button name="submit" class="pagelayer-ele-link pagelayer-login-btn {{btn_type}} pagelayer-button {{btn_size}}">{{login_text}}</button>
</div>
<div class="pagelayer-login-wrappers">
<a if="{{lost_pass}}" href="'. esc_url( wp_lostpassword_url( get_permalink() ) ) .'" class="pagelayer-ele-link">Lost your Password?</a>
</div>
</form>
<div class="pagelayer-login-error-box"></div>
</div>
<div class="pagelayer-logout-txt" if={{display_logouttxt}}>{{display_logouttxt}}</div>',
'params' => array(
'show_label' => array(
'type' => 'checkbox',
'label' => __pl('show_label'),
'default' => 'true'
),
'remember_me' => array(
'type' => 'checkbox',
'label' => __pl('remember_me'),
'default' => 'true'
),
'lost_pass' => array(
'type' => 'checkbox',
'label' => __pl('lost_pass'),
'default' => 'true'
),
'custom_label' => array(
'type' => 'checkbox',
'label' => __pl('custom_label'),
'default' => '',
),
'custom_label_username' => array(
'type' => 'text',
'label' => __pl('custom_label_username'),
'default' => 'Username',
'show' => ['custom_label' => 'true'],
'edit' => '.pagelayer-login-username',
),
'custom_placeholder_login' => array(
'type' => 'text',
'label' => __pl('custom_placeholder_login'),
'default' => 'Username',
'show' => ['custom_label' => 'true'],
),
'custom_label_password' => array(
'type' => 'text',
'label' => __pl('custom_label_password'),
'default' => 'Password',
'show' => ['custom_label' => 'true'],
'edit' => '.pagelayer-login-password',
),
'custom_placeholder_password' => array(
'type' => 'text',
'label' => __pl('custom_placeholder_password'),
'default' => 'Password',
'show' => ['custom_label' => 'true'],
),
'redirect_login' => array(
'type' => 'checkbox',
'label' => __pl('redirect_login'),
'default' => '',
),
'redirect_url' => array(
'type' => 'text',
'label' => __pl('login_redirect_url'),
'desc' => __pl('redirect_url_desc'),
'default' => '',
'req' => ['redirect_login' => 'true'],
),
'redirect_logout' => array(
'type' => 'checkbox',
'label' => __pl('redirect_logout'),
'default' => '',
),
'logout_url' => array(
'type' => 'text',
'label' => __pl('logout_redirect_url'),
'desc' => __pl('redirect_url_desc'),
'default' => '',
'req' => ['redirect_logout' => 'true'],
),
),
'form_style' => array(
'row_gap' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'step' => 1,
'screen' => 1,
'max' => 60,
'css' => ['{{element}} .pagelayer-login-div input, .pagelayer-login-div .pagelayer-login-wrappers' => 'margin-bottom: {{val}}px;'],
),
'alignment' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'screen' => 1,
'default' => 'left',
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-login-div, .pagelayer-login-input-field' => 'text-align: {{val}};'],
'addClass' => ['{{element}} .pagelayer-login-input-field' => 'pagelayer-login-input-{{val}}']
),
'link_color' => array(
'type' => 'color',
'label' => __pl('link_color'),
'css' => ['{{element}} .pagelayer-login-form a' => 'color: {{val}};'],
),
'link_color_hover' => array(
'type' => 'color',
'label' => __pl('link_color_hover'),
'css' => ['{{element}} .pagelayer-login-form a:hover' => 'color: {{val}};'],
),
),
'label_style' => array(
'label_gap' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'step' => 1,
'screen' => 1,
'max' => 60,
'css' => ['{{element}} .pagelayer-login-div label' => 'margin-bottom: {{val}}px;'],
),
'text_color' => array(
'type' => 'color',
'label' => __pl('text_color'),
'css' => ['{{element}} .pagelayer-login-form label, {{element}} .pagelayer-login-cap' => 'color: {{val}};'],
),
'label_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-login-form label, {{element}} .pagelayer-login-cap' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
),
'fields_style' => array(
'field_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'desc' => __pl('login_widget_width_desc'),
'min' => 10,
'max' => 100,
'step' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-login-form .pagelayer-login-input-field' => 'width: {{val}}%;']
),
'field_color' => array(
'type' => 'color',
'label' => __pl('text_color'),
'css' => ['{{element}} .pagelayer-login-form .pagelayer-login-input-field, {{element}} .pagelayer-login-cap input' => 'color: {{val}};', '{{element}} .pagelayer-login-form .pagelayer-login-input-field::selection' => 'color:white; background-color: {{val}};'],
),
'field_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-login-form input' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'field_bgcolor' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-login-form .pagelayer-login-input-field, {{element}} .pagelayer-login-cap input' => 'background-color: {{val}};'],
),
'field_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} .pagelayer-login-form .pagelayer-login-input-field, {{element}} .pagelayer-login-cap input' => 'border-color: {{val}};'],
),
'field_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-login-form .pagelayer-login-input-field, {{element}} .pagelayer-login-cap input' => 'border-width: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
),
'field_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-login-form .pagelayer-login-input-field, {{element}} .pagelayer-login-cap input' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
),
),
'buttons_style' => array(
'login_text' => array(
'type' => 'text',
'label' => __pl('text'),
'default' => 'Log In',
'edit' => '.pagelayer-login-btn',
),
'btn_stretch' => array(
'type' => 'checkbox',
'label' => __pl('stretch'),
'css' => ['{{element}} .pagelayer-login-btn' => 'width:100%;'],
),
'btn_gap' => array(
'type' => 'padding',
'label' => __pl('spacing'),
'step' => 1,
'screen' => 1,
'max' => 60,
'default' => '10',
'css' => ['{{element}} .pagelayer-login-btn' => 'margin-top: {{val[0]}}px; margin-right: {{val[1]}}px; margin-bottom: {{val[2]}}px; margin-left: {{val[3]}}px'],
),
'btn_type' => array(
'type' => 'select',
'label' => __pl('button_type_label'),
'default' => 'pagelayer-btn-default',
//'addClass' => ['{{element}} .pagelayer-btn-holder' => '{{val}}'],
'list' => array(
'pagelayer-btn-default' => __pl('btn_type_default'),
'pagelayer-btn-primary' => __pl('btn_type_primary'),
'pagelayer-btn-secondary' => __pl('btn_type_secondary'),
'pagelayer-btn-success' => __pl('btn_type_success'),
'pagelayer-btn-info' => __pl('btn_type_info'),
'pagelayer-btn-warning' => __pl('btn_type_warning'),
'pagelayer-btn-danger' => __pl('btn_type_danger'),
'pagelayer-btn-dark' => __pl('btn_type_dark'),
'pagelayer-btn-light' => __pl('btn_type_light'),
'pagelayer-btn-link' => __pl('btn_type_link'),
'pagelayer-btn-custom' => __pl('btn_type_custom')
),
),
'btn_size' => array(
'type' => 'select',
'label' => __pl('button_size_label'),
'default' => 'pagelayer-btn-large',
'list' => array(
'pagelayer-btn-mini' => __pl('mini'),
'pagelayer-btn-small' => __pl('small'),
'pagelayer-btn-large' => __pl('large'),
'pagelayer-btn-extra-large' => __pl('extra_large'),
'pagelayer-btn-double-large' => __pl('double_large'),
'pagelayer-btn-custom' => __pl('custom'),
)
),
'btn_custom_size' => array(
'type' => 'spinner',
'label' => __pl('btn_custom_size'),
'min' => 1,
'step' => 1,
'max' => 100,
'screen' => 1,
'default' => 5,
'css' => ['{{element}} .pagelayer-login-btn' => 'padding: calc({{val}}px / 2) {{val}}px;'],
'req' => array(
'btn_size' => 'pagelayer-btn-custom'
),
),
'btn_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
),
),
'btn_bg_color' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_label'),
'default' => '#0986c0',
'css' => ['{{element}} .pagelayer-login-btn' => 'background-color: {{val}};'],
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => ''
),
),
'btn_color' => array(
'type' => 'color',
'label' => __pl('btn_color_label'),
'default' => '#ffffff',
'css' => ['{{element}} .pagelayer-login-btn' => 'color: {{val}};'],
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => ''
),
),
'btn_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay_label'),
'desc' => __pl('btn_hover_delay_desc'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} .pagelayer-login-btn' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_bg_color_hover_label'),
'default' => '',
'css' => ['{{element}} .pagelayer-login-btn:hover' => 'background-color: {{val}};'],
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_color_hover' => array(
'type' => 'color',
'label' => __pl('btn_color_hover_label'),
'default' => '',
'css' => ['{{element}} .pagelayer-login-btn:hover' => 'color: {{val}};'],
'req' => array(
'btn_type' => 'pagelayer-btn-custom',
),
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_bor_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => '',
//'no_val' => 1,// Dont set any value to element
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
)
),
'btn_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-login-btn' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-login-btn' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-login-btn' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type' => ''
],
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-login-btn' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type' => ''
),
'show' => array(
'btn_bor_hover' => ''
),
),
'btn_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-login-btn:hover' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color_hover_label'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-login-btn:hover' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-login-btn:hover' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type_hover' => ''
],
'show' => array(
'btn_bor_hover' => 'hover'
),
),
'btn_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius_hover'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-login-btn:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type_hover' => ''
),
'show' => array(
'btn_bor_hover' => 'hover'
),
),
),
'styles' => [
'form_style' => __pl('Form'),
'label_style' => __pl('Label'),
'fields_style' => __pl('Fields'),
'buttons_style' => __pl('Button'),
]
)
);
// SiteMap
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_sitemap', array(
'name' => __pl('sitemap'),
'group' => 'other',
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
'holder' => '.pagelayer-sitemap-div-holder',
'html' => '<div class="pagelayer-sitemap-div pagelayer-sitemap-holder">
<div class="pagelayer-sitemap-div-holder pagelayer-sitemap-flex-wrapper">
</div>
</div>',
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('Label'),
'sc' => PAGELAYER_SC_PREFIX.'_sitemap_item',
'item_label' => array(
'default' => __pl('Label'),
'param' => 'title'
),
'count' => 1,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('sitemap_item'))),
),
'columns' => array(
'type' => 'select',
'label' => __pl('columns'),
'default' => '2',
'list' => array(
'1' => __pl('1'),
'2' => __pl('2'),
'3' => __pl('3'),
'4' => __pl('4'),
'5' => __pl('5'),
'6' => __pl('6'),
),
'css' => [ '{{element}} .pagelayer-sitemap-div-holder > *' => 'flex-basis: calc( 1 / {{val}} * 100% );' ],
),
'nofollow' => array(
'type' => 'checkbox',
'label' => __pl('nofollow'),
'default' => '',
'addAttr' => ['{{element}} .pagelayer-sitemap-list-item a' => 'rel="nofollow"',
'{{element}} .pagelayer-sitemap-div-holder' => 'data-nofollow="true"'],
),
),
'additional_opt' => [
'protected' => array(
'type' => 'checkbox',
'label' => __pl('protected_post'),
'default' => '',
),
],
'list_styles' => [
'indent' => array(
'type' => 'slider',
'label' => __pl('indent'),
'default' => 0,
'min' => 0,
'max' => 100,
'css' => ['{{element}} .pagelayer-sitemap-section li' => 'margin-left: {{val}}px'],
),
'padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-sitemap-section' => 'padding-top: {{val[0]}}px; padding-right: {{val[1]}}px; padding-bottom: {{val[2]}}px; padding-left: {{val[3]}}px'],
),
'title_color' => array(
'type' => 'color',
'label' => __pl('title_color'),
'css' => ['{{element}} .pagelayer-sitemap-section span' => 'color: {{val}}'],
),
'title_typography' => array(
'type' => 'typography',
'label' => __pl('title_typography'),
'css' => ['{{element}} .pagelayer-sitemap-section span' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'list_color' => array(
'type' => 'color',
'label' => __pl('list_color'),
'css' => ['{{element}} .pagelayer-sitemap-section li' => 'color: {{val}}',
'{{element}} .pagelayer-sitemap-section a' => 'color: {{val}}'],
),
'list_typography' => array(
'type' => 'typography',
'label' => __pl('list_typography'),
'css' => ['{{element}} .pagelayer-sitemap-section li, {{element}} .pagelayer-sitemap-section a' =>'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'list_type' => array(
'type' => 'radio',
'label' => __pl('list_type'),
'default' => 'disc',
'list' => array(
'disc' => __pl('sitemap_disc'),
'circle' => __pl('sitemap_circle'),
'square' => __pl('sitemap_square'),
'none' => __pl('sitemap_none')
),
'css' => ['{{element}} .pagelayer-sitemap-section li' => 'list-style-type: {{val}}'],
),
],
'styles' => [
'additional_opt' => __pl('additional_option'),
'list_styles' => __pl('list_option'),
]
)
);
// SiteMap Builder
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_sitemap_item', array(
'name' => __pl('sitemap_item'),
'group' => 'other',
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_sitemap'],
'html' => '{{sitemap_html}}',
'params' => array(
'sitemap_type' => array(
'type' => 'select',
'label' => __pl('type'),
'default' => 'post_type',
'list' => array(
'post_type' => __pl('post_type'),
'taxonomy' => __pl('taxonomy'),
)
),
'source_post' => array(
'type' => 'select',
'label' => __pl('source'),
'default' => 'page',
'list' => array(
'post' => __pl('Posts'),
'page' => __pl('Pages'),
),
'show' => array(
'sitemap_type' => 'post_type',
),
),
'source_taxonomy' => array(
'type' => 'select',
'label' => __pl('source'),
'default' => 'category',
'list' => array(
'category' => __pl('categories'),
'post_tag' => __pl('tags'),
'post_format' => __pl('format'),
),
'show' => array(
'sitemap_type' => 'taxonomy'
),
),
'title' => array(
'type' => 'text',
'label' => __pl('title'),
'default' => '',
),
'order_post' => array(
'type' => 'select',
'label' => __pl('order_by'),
'default' => 'random',
'list' => array(
'post_date' => __pl('date'),
'post_title' => __pl('title'),
'menu_order' => __pl('menu_order'),
'rand' => __pl('random'),
),
'show' => array(
'sitemap_type' => 'post_type',
),
),
'order_taxonomy' => array(
'type' => 'select',
'label' => __pl('order_by'),
'default' => 'name',
'list' => array(
'ID' => __pl('id'),
'name' => __pl('name'),
),
'show' => array(
'sitemap_type' => 'taxonomy'
),
),
'order' => array(
'type' => 'select',
'label' => __pl('order'),
'default' => 'DESC',
'list' => array(
'ASC' => __pl('asc'),
'DESC' => __pl('desc'),
)
),
'hide_empty' => array(
'type' => 'checkbox',
'label' => __pl('hide_empty'),
'default' => true,
'show' => array(
'sitemap_type' => 'taxonomy'
),
),
'hierarchical' => array(
'type' => 'checkbox',
'label' => __pl('hierarchical_view'),
'default' => '',
),
'depth' => array(
'type' => 'select',
'label' => __pl('depth'),
'list' => array(
'0' => __pl('all'),
'1' => __pl('1'),
'2' => __pl('2'),
'3' => __pl('3'),
'4' => __pl('4'),
'5' => __pl('5'),
'6' => __pl('6'),
),
'show' => array(
'hierarchical' => 'true'
),
),
),
)
);
// Search Form
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_search', array(
'name' => __pl('search_form'),
'group' => 'other',
'html' => '<div class="pagelayer-search-container pagelayer-search-{{type}}">
<button class="pagelayer-search-toggle pagelayer-search-button">
<span if="{{button_text}}" class="pagelayer-search-submit-label">{{button_text}}</span>
<i if="{{button_icon}}" class="pagelayer-search-submit-icon {{button_icon}}"></i>
</button>
<form role="search" method="get" class="pagelayer-searchform" action="'.esc_url( home_url( '/' ) ).'">
<div class="pagelayer-search-fields">
<input class="pagelayer-search-input" type="text" value="" name="s" placeholder="{{{placeholder}}}" />
<input type="hidden" if="{{post_type}}" value="{{post_type}}" name="post_type"/>
<button type="submit" class="pagelayer-search-submit pagelayer-search-button">
<span if="{{button_text}}" class="pagelayer-search-submit-label">{{button_text}}</span>
<i if="{{button_icon}}" class="pagelayer-search-submit-icon {{button_icon}}"></i>
</button>
</div>
</form>
</div>',
'params' => array(
'post_type' => array(
'type' => 'select',
'label' => __pl('posts_grid_post_type_label'),
'desc' => __pl('posts_grid_post_type_desc'),
'list' => array_merge(['' => __pl('All Post Types')], pagelayer_post_types(true))
),
'type' => array(
'type' => 'select',
'label' => __pl('form_type'),
'default' => 'classic',
'list' => array(
'classic' => __pl('classic'),
'full-screen' => __pl('full_screen'),
),
),
'placeholder' => array(
'type' => 'text',
'label' => __pl('placeholder'),
'default' => __pl('search'),
),
'button_type' => array(
'type' => 'radio',
'label' => __pl('button_type'),
'default' => 'icon',
'list' => array(
'icon' => __pl('list_icon_label'),
'text' => __pl('text'),
),
),
'button_icon' => array(
'type' => 'icon',
'label' => __pl('button_icon'),
'default' => 'fas fa-search',
'req' => ['button_type' => 'icon']
),
'button_text' => array(
'type' => 'text',
'label' => __pl('button_text'),
'default' => __pl('search'),
'req' => ['button_type' => 'text']
),
'field-width' => array(
'type' => 'slider',
'label' => __pl('width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-search-fields' => 'max-width:{{val}}%;'],
'req' => ['type' => 'classic'],
),
'size' => array(
'type' => 'slider',
'label' => __pl('min_height'),
'default' => 40,
'screen' => 1,
'css' => ['{{element}} .pagelayer-search-fields, {{element}} .pagelayer-search-full-screen input' => 'min-height:{{val}}px;',
'{{element}} .pagelayer-search-fields input' => 'padding-left: calc({{val}}px / 3);padding-right: calc({{val}}px / 3);',
'{{element}} .pagelayer-search-fields button' => 'padding-left: calc({{val}}px / 3)'],
),
'field_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'center',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-search-fields' => 'margin:auto;margin-{{val}}:0;'],
'req' => ['type' => 'classic'],
),
'toggle_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'left',
'screen' => 1,
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-search-container' => 'text-align:{{val}};'],
'req' => ['type' => 'full-screen'],
),
'holder_border_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-search-full-screen .pagelayer-search-fields' => 'background-color: {{val}};'],
'req' => ['type' => 'full-screen'],
),
'holder_border_type' => array(
'type' => 'select',
'label' => __pl('border_styles'),
'default' => 'solid',
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'css' => ['{{element}} .pagelayer-search-fields' =>'border-style: {{val}};'],
),
'holder_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-search-fields' => 'border-color: {{val}};'],
'req' => ['!holder_border_type' => '']
),
'holder_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'default' => '1,1,1,1',
'screen' => 1,
'css' => ['{{element}} .pagelayer-search-fields' =>'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px;'],
'req' => ['!holder_border_type' => '']
),
'holder_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-search-fields' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => ['!holder_border_type' => '']
),
'holder_shadow' => array(
'type' => 'box_shadow',
'label' => __pl('shadow'),
'css' => ['{{element}} .pagelayer-search-fields' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}};'],
),
),
'input_style' => array(
'input_colors' => array(
'type' => 'radio',
'label' => '',
'default' => '',
'list' => array(
'normal' => __pl('normal'),
'focus' => __pl('focus'),
),
),
'input_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-search-input' => 'color:{{val}}'],
'show' => ['input_colors' => 'normal'],
),
'input_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-search-input' => 'background-color:{{val}}'],
'show' => ['input_colors' => 'normal'],
),
'input_hover_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-search-input:focus' => 'color:{{val}}'],
'show' => ['input_colors' => 'focus'],
),
'input_bg_hover_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-search-input:focus' => 'background-color:{{val}}'],
'show' => ['input_colors' => 'focus'],
),
'input_size' => array(
'type' => 'slider',
'label' => __pl('font_size'),
'css' => ['{{element}} .pagelayer-search-input' => 'font-size:{{val}}px'],
),
'input_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-search-input' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'input_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'default' => 100,
'max' => 100,
'screen' => 1,
'css' => ['{{element}} .pagelayer-search-input' => 'width:{{val}}%'],
),
'input_border_type' => array(
'type' => 'select',
'label' => __pl('border_styles'),
'css' => ['{{element}} .pagelayer-search-input' =>'border-style: {{val}};'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'input_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-search-input' => 'border-color: {{val}};'],
'req' => ['!input_border_type' => '']
),
'input_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'default' => '0,0,0,0',
'css' => ['{{element}} .pagelayer-search-input' =>'border-width: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px !important;'],
'req' => ['!input_border_type' => '']
),
'input_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'css' => ['{{element}} .pagelayer-search-input' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => ['!input_border_type' => '']
),
),
'button_style' => array(
'button_colors' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'button_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-search-button' => 'color:{{val}}'],
'show' => ['button_colors' => 'normal'],
),
'button_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-search-button' => 'background-color:{{val}}'],
'show' => ['button_colors' => 'normal'],
),
'button_hover_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-search-button:hover' => 'color:{{val}}'],
'show' => ['button_colors' => 'hover'],
),
'button_bg_hover_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-search-button:hover' => 'background-color:{{val}}'],
'show' => ['button_colors' => 'hover'],
),
'button_position' => array(
'type' => 'radio',
'label' => __pl('position'),
'screen' => 1,
'default' => 'row',
'list' => array(
'row-reverse' => __pl('left'),
'row' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-search-fields' => 'flex-direction:{{val}}'],
'req' => ['type' => 'classic'],
),
'button_size' => array(
'type' => 'slider',
'label' => __pl('font_size'),
'units' => ['px', 'em'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-search-submit-label' => 'font-size:{{val}}',
'{{element}} .pagelayer-search-submit-icon' => 'font-size:{{val}}'],
),
'button_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-search-button' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => ['button_type' => 'text']
),
'button_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'units' => ['px', '%'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-search-button' => 'min-width:{{val}}'],
),
'button_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'units' => ['px', 'em','%'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-search-button' => 'padding:{{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}'],
),
'submit_border_type' => array(
'type' => 'select',
'label' => __pl('border_styles'),
'css' => ['{{element}} .pagelayer-search-submit' =>'border-style: {{val}};'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'submit_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-search-submit' => 'border-color: {{val}};'],
'req' => ['!submit_border_type' => '']
),
'submit_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'default' => '0,0,0,0',
'css' => ['{{element}} .pagelayer-search-submit' =>'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px;'],
'req' => ['!submit_border_type' => '']
),
'button_radius' => array(
'type' => 'slider',
'label' => __pl('border_radius'),
'max' => 100,
'units' => ['px', '%'],
'screen' => 1,
'css' => ['{{element}} .pagelayer-search-button' => 'border-radius:{{val}} !important'],
),
),
'styles' => [
'input_style' => __pl('input_style'),
'button_style' => __pl('button_style'),
]
)
);
//FACEBOOK buttons
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_fb_btn', array(
'name' => __pl('Facebook Button'),
'group' => 'other',
'html' => '<div class="pagelayer-fb-btn-container" pagelayer-facebook-load="1">
<span class="pagelayer-app-details" pagelayer-app-id="{{fb-app-id}}"></span>
<div id="fb-root"></div>
<div if="{{link_type}}" class="fb-like pagelayer-fb-btn-details" id="fb-like-btn" data-href="{{custom-url}}" data-layout="{{layout}}" data-action="{{btn_action}}" data-show-faces="{{peoples_faces}}" data-size="{{btn_size}}" data-share="{{share_btn}}">
</div>
</div>',
'params' => array(
'fb-app-id' => array(
'type' => 'text',
'label' => __pl('app_id'),
'default' => get_option('pagelayer-fbapp-id'),
),
'link_type' => array(
'type' => 'select',
'label' => __pl('post_link_type'),
'default' => 'current',
'list' => array(
'current' => __pl('current_url'),
'custom_link' => __pl('custom_url')
),
),
'custom-url' => array(
'type' => 'text',
'label' => __pl('page_url'),
'default' => 'https://www.facebook.com/',
'req' => array(
'link_type' => 'custom_link',
)
),
'share_btn' => array(
'type' => 'checkbox',
'label' => __pl('share_btn'),
),
'peoples_faces' => array(
'type' => 'checkbox',
'label' => __pl('liked_faces'),
),
'layout' => array(
'type' => 'select',
'label' => __pl('layout_type'),
'default' => 'standard',
'list' => array(
'standard' => __pl('standard'),
'box_count' => __pl('box_count'),
'button_count' => __pl('button_count'),
'button' => __pl('button'),
),
),
'btn_action' => array(
'type' => 'select',
'label' => __pl('btn_action'),
'default' => 'Like',
'list' => array(
'like' => __pl('like'),
'recommend' => __pl('recommend'),
),
),
'btn_size' => array(
'type' => 'select',
'label' => __pl('btn_size'),
'default' => 'small',
'list' => array(
'small' => __pl('small'),
'large' => __pl('large'),
),
),
),
)
);
//FACEBOOK embed
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_fb_embed', array(
'name' => __pl('Facebook Embed'),
'group' => 'other',
'html' => '<div class="pagelayer-fb-embed-container" pagelayer-facebook-load="1">
<span class="pagelayer-app-details" pagelayer-app-id={{fb-app-id}}></span>
<div id="fb-root"></div>
<div if={{embed_type}} class="fb-embed fb-{{embed_type}}" data-href={{post-url}} data-show-text={{post_text}} data-width=500 data-adapt-container-width="true" data-allowfullscreen={{fullscreen_video}} data-autoplay={{autoplay_video}} data-show-captions={{video_captions}} data-include-parent={{parent_comments}}>
</div>
</div>',
'params' => array(
'fb-app-id' => array(
'type' => 'text',
'label' => __pl('app_id'),
'default' => get_option('pagelayer-fbapp-id'),
),
'embed_type' => array(
'type' => 'select',
'label' => __pl('embed_type'),
'default' => 'post',
'list' => array(
'post' => __pl('post'),
'video' => __pl('video'),
'comment-embed' => __pl('comment'),
),
),
'post-url' => array(
'type' => 'text',
'label' => __pl('post-url'),
'addAttr' => ['{{element}} .fb-post' => 'data-href="{{post-url}}"'],
'default' => 'https://www.facebook.com/pagelayer/posts/528135551039110',
'req' => array(
'embed_type' => 'post',
),
),
'video-url' => array(
'type' => 'text',
'label' => __pl('video-url'),
'addAttr' => ['{{element}} .fb-video' => 'data-href="{{video-url}}"'],
'default' => 'https://www.facebook.com/seekahost/videos/1027688264058449/',
'req' => array(
'embed_type' => 'video',
),
),
'comment-url' => array(
'type' => 'text',
'label' => __pl('comment-url'),
'addAttr' => ['{{element}} .fb-comment' => 'data-href="{{comment-url}}"'],
'default' => 'https://www.facebook.com/sitepad/posts/751812071877561?comment_id=830006664058101&reply_comment_id=831580997234001&comment_tracking=%7B%22tn%22%3A%22R%22%7D',
'req' => array(
'embed_type' => 'comment-embed',
),
),
'post_text' => array(
'type' => 'checkbox',
'label' => __pl('full_post'),
'req' => array(
'!embed_type' => 'comment-embed',
),
),
'autoplay_video' => array(
'type' => 'checkbox',
'label' => __pl('autoplay'),
'req' => array(
'embed_type' => 'video',
),
),
'fullscreen_video' => array(
'type' => 'checkbox',
'label' => __pl('full_screen'),
'req' => array(
'embed_type' => 'video',
),
),
'video_captions' => array(
'type' => 'checkbox',
'label' => __pl('captions'),
'req' => array(
'embed_type' => 'video',
),
),
'parent_comments' => array(
'type' => 'checkbox',
'label' => __pl('parent_comments'),
'default' => 'true',
'req' => array(
'embed_type' => 'comment-embed',
),
),
),
)
);
//FACEBOOK comments
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_fb_comments', array(
'name' => __pl('Facebook Comments'),
'group' => 'other',
'html' => '<div class="pagelayer-fb-comments-container" pagelayer-facebook-load="1">
<span class="pagelayer-app-details" pagelayer-app-id={{fb-app-id}}></span>
<div id="fb-root"></div>
<div class="fb-comments" data-href="{{custom-url}}" data-colorscheme="{{color_scheme}}" data-numposts="{{number-of-comments}}" data-order-by="{{comments_order}}">
</div>
</div>',
'params' => array(
'fb-app-id' => array(
'type' => 'text',
'label' => __pl('app_id'),
'default' => get_option('pagelayer-fbapp-id'),
),
'link_type' => array(
'type' => 'select',
'label' => __pl('post_link_type'),
'default' => 'current',
'list' => array(
'current' => __pl('current_url'),
'custom_link' => __pl('custom_url')
),
),
'custom-url' => array(
'type' => 'text',
'label' => __pl('page_url'),
'default' => 'https://www.facebook.com/pagelayer',
'req' => array(
'link_type' => 'custom_link',
)
),
'color_scheme' => array(
'type' => 'select',
'label' => __pl('color_scheme'),
'default' => 'light',
'list' => array(
'light' => __pl('Light'),
'dark' => __pl('Dark'),
),
),
'number-of-comments' => array(
'type' => 'slider',
'label' => __pl('comments_count'),
'min' => '1',
'max' => '100',
'default' => '10',
),
'comments_order' => array(
'type' => 'select',
'label' => __pl('comments_order'),
'default' => '',
'list' => array(
'social' => __pl('social'),
'reverse_time' => __pl('reverse_time'),
'time' => __pl('time'),
),
),
),
)
);
//FACEBOOK page
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_fb_page', array(
'name' => __pl('Facebook Page'),
'group' => 'other',
'html' => '<div class="pagelayer-fb-page-container" pagelayer-facebook-load="1">
<span class="pagelayer-app-details" pagelayer-app-id={{fb-app-id}}></span>
<div id="fb-root"></div>
<div if={{page_url}} class="fb-page" data-href={{page_url}} data-width="500" data-hide-cta={{cta-button}} data-tabs={{tabs_types}} data-small-header={{small_header}} data-adapt-container-width="true" data-hide-cover={{hide_cover}} data-show-facepile={{show_friends_faces}}>
</div>
</div>',
'params' => array(
'fb-app-id' => array(
'type' => 'text',
'label' => __pl('app_id'),
'default' => get_option('pagelayer-fbapp-id'),
),
'page_url' => array(
'type' => 'text',
'label' => __pl('page_link'),
'default' => 'https://www.facebook.com/pagelayer',
),
'tabs_types' => array(
'type' => 'multiselect',
'label' => __pl('tabs'),
'default' => 'timeline',
'list' => array(
'timeline' => __pl('timeline'),
'events' => __pl('events'),
'messages' => __pl('messages')
),
),
'height' => array(
'type' => 'spinner',
'label' => __pl('page_height'),
'default' => 500,
'min' => 70,
'max' => 1000,
'step' => 10,
'addAttr' => ['{{element}} .pagelayer-fb-page-container .fb-page' => 'data-height="{{height}}"'],
),
'small_header' => array(
'type' => 'checkbox',
'label' => __pl('small_header'),
),
'hide_cover' => array(
'type' => 'checkbox',
'label' => __pl('hide_cover'),
),
'show_friends_faces' => array(
'type' => 'checkbox',
'label' => __pl('liked_faces'),
'default' => "true",
),
'cta-button' => array(
'type' => 'checkbox',
'label' => __pl('cta_button'),
'default' => "true",
),
),
)
);
// Review Item
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_review', array(
'name' => __pl('review'),
'group' => 'button',
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_review_slider'],
'html' => '<div class="pagelayer-review-slide">
<div class="pagelayer-review-author">
<div if={{author_image}} class="pagelayer-review-author-img">
<img class="pagelayer-img" title="{{{author_image-title}}}" alt="{{{author_image-alt}}}"/>
</div>
<div class="pagelayer-review-author-details">
<div if={{author_name}} class="pagelayer-review-author-name">{{author_name}}</div>
<div if={{author_title}} class="pagelayer-review-author-title">{{author_title}}</div>
<div if={{number_of_ratings}} class="pagelayer-stars-container" title="{{number_of_ratings}}/5" pagelayer-stars-value="{{number_of_ratings}}" pagelayer-stars-count="5">
</div>
</div>
<div class="pagelayer-icon-holder pagelayer-{{icon}}-icon">
<a if-ext="{{icon_url}}" class="pagelayer-ele-link pagelayer-review-icon-link" href="{{{icon_url}}}">
<i class="pagelayer-social-fa {{icon}} {{bg_shape}} {{icon_size}} pagelayer-animation-{{anim_hover}}"></i>
</a>
</div>
</div>
<hr>
<div class="pagelayer-review-text">
<p if={{review_text}} class="pagelayer-review-p">{{review_text}}</p>
</div>
</div>',
'params' => array(
'author_name' => array(
'type' => 'text',
'label' => __pl('author_Name'),
'default' => 'Jane Doe',
'edit' => '.pagelayer-review-author-name',
),
'author_title' => array(
'type' => 'text',
'label' => __pl('author_title'),
'default' => '@janedoe',
'edit' => '.pagelayer-review-author-title',
),
'show_avatar' => array(
'type' => 'checkbox',
'label' => __pl('show_avatar'),
),
'author_image' => array(
'type' => 'image',
'label' => __pl('avatar_style'),
'addAttr' => ['{{element}} .pagelayer-review-author-img img' => 'src="{{{author_image-url}}}"'],
'req' => ['show_avatar' => 'true']
),
'number_of_ratings' => array(
'type' => 'spinner',
'label' => __pl('author_rating'),
'min' => '0',
'max' => '5',
'step' => '.1',
),
'icon_url' => array(
'type' => 'link',
'label' => __pl('author_url'),
'selector' => '.pagelayer-review-icon-link',
),
'icon' => array(
'type' => 'icon',
'label' => __pl('author_Icon'),
'default' => 'fab fa-facebook',
'list' => ['facebook', 'facebook-official', 'facebook-square', 'twitter', 'twitter-square', 'x-twitter', 'x-twitter-square', 'google-plus', 'google-plus-square', 'instagram', 'linkedin', 'linkedin-square', 'behance', 'behance-square', 'pinterest', 'pinterest-p', 'pinterest-square', 'reddit-alien', 'reddit-square', 'reddit', 'rss', 'rss-square', 'skype', 'slideshare', 'snapchat', 'snapchat-ghost', 'snapchat-square', 'soundcloud', 'spotify', 'stack-overflow', 'steam', 'steam-square', 'stumbleupon', 'telegram', 'thumb-tack', 'tripadvisor', 'tumblr', 'tumblr-square', 'twitch', 'vimeo', 'vimeo-square', 'vk', 'weibo', 'weixin', 'whatsapp', 'wordpress', 'xing', 'xing-square', 'yelp', 'youtube', 'youtube-square', 'youtube-play', '500px', 'flickr', 'android', 'github', 'github-square', 'gitlab', 'apple', 'jsfiddle', 'houzz', 'bitbucket', 'bitbucket-square', 'codepen', 'delicious', 'medium', 'meetup', 'mixcloud', 'dribbble', 'foursquare'],
),
'review_text' => array(
'type' => 'textarea',
'label' => __pl('review'),
'default' => '"There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which look even slightly believable."',
'edit' => '.pagelayer-review-p',
'e' => [ 'v', 'f', 'c', 'r'],
),
)
)
);
// Reviews Slider
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_review_slider', array(
'name' => __pl('reviews'),
'group' => 'other',
'prevent_inside' => ['pl_slides'],
'holder' => '.pagelayer-reviews-holder',
'child_selector' => '>.pagelayer-owl-stage-outer>.pagelayer-owl-stage>.pagelayer-owl-item', // Make it very specifc
'html' => '<div class="pagelayer-review-slides-container">
<div class="pagelayer-reviews-holder pagelayer-owl-holder pagelayer-owl-carousel pagelayer-owl-theme"></div>
</div>',
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('review'),
'sc' => PAGELAYER_SC_PREFIX.'_review',
'item_label' => array(
'default' => __pl('review'),
'param' => 'author_name',
),
'count' => 3,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('review'))),
),
'width' => array(
'type' => 'slider',
'label' => __pl('width'),
'default' => 100,
'min' => 30,
'max' => 100,
'screen' => 1,
'css' => ['{{element}} .pagelayer-reviews-holder' => 'width:{{val}}%;']
),
),
'author_style' => array(
'author_name_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#000000',
'css' => ['{{element}} .pagelayer-review-author-name' => 'color:{{val}} !important;'],
),
'author_name' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',16,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-review-author-name' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
),
'title_style' => array(
'author_title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#000000',
'css' => ['{{element}} .pagelayer-review-author-title' => 'color:{{val}} !important;'],
),
'author_title' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',14,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-review-author-title' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
),
'review_style' => array(
'review_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#000000',
'css' => ['{{element}} .pagelayer-review-text p' => 'color: {{val}} !important;'],
),
'review_typography' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',18,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-review-text p' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
),
'icon_style' => array(
'icon_color' => array(
'type' => 'color',
'label' => __pl('icon_color'),
'css' => ['{{element}} .pagelayer-social-fa' => 'color: {{val}};']
),
'icon_size_custom' => array(
'type' => 'spinner',
'label' => __pl('service_box_icon_custom_size_label'),
'min' => 1,
'step' => 1,
'max' => 100,
'default' => 20,
'screen' => 1,
'css' => ['{{element}} .pagelayer-social-fa' => 'font-size: {{val}}px']
)
),
'seperator_style' => array(
'seperator_width' => array(
'type' => 'slider',
'label' => __pl('seperator_width'),
'default' => 1,
'min' => 0,
'max' => 20,
'screen' => 1,
'css' => ['{{element}} .pagelayer-review-slide hr' => 'border-top:{{val}}px solid;'],
),
'seperator_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#c5c5c5',
'css' => ['{{element}} .pagelayer-review-slide hr' => 'border-top-color:{{val}};'],
),
),
'stars_style' => array(
'stars_color' => array(
'type' => 'color',
'label' => __pl('stars_color'),
'default' => '#FFEB3B',
'css' => ['{{element}} .pagelayer-stars-icon:before' => 'color: {{val}}'],
),
'unmarked_stars_color' => array(
'type' => 'color',
'label' => __pl('unmarked_star_color'),
'default' => '#ccd6df',
'css' => ['{{element}} .pagelayer-stars-container' => 'color: {{val}}'],
),
'stars_font_size' => array(
'label' => __pl('stars_font_size'),
'type' => 'slider',
'min' => 5,
'max' => 100,
'default' => 20,
'screen' => 1,
'css' => ['{{element}} .pagelayer-stars-container' => 'font-size:{{val}}px;'],
),
'stars_spacing' => array(
'label' => __pl('stars_spacing'),
'type' => 'slider',
'min' => 0,
'max' => 20,
'default' => 2,
'screen' => 1,
'css' => ['{{element}} .pagelayer-stars-icon:not(:first-child)' => 'margin-left:{{val}}px;'],
),
),
'avatar_style' => array(
'author_image_width' => array(
'type' => 'slider',
'label' => __pl('rw_image_width'),
'min' => 50,
'max' => 120,
'default' => 70,
'screen' => 1,
'css' => ['{{element}} .pagelayer-review-author-img img' => 'width:{{val}}px !important; height: {{val}}px !important;'],
),
'author_image_radius' => array(
'type' => 'slider',
'label' => __pl('border_radius'),
'max' => 100,
'default' => 0,
'screen' => 1,
'css' => ['{{element}} .pagelayer-review-author-img img' => 'border-radius:{{val}}px !important;'],
),
),
'slide_style' => array(
'background-color' => array(
'type' => 'color',
'label' => __pl('background_color'),
'css' => ['{{element}} .pagelayer-review-slide' =>'background-color: {{val}};']
),
'slide_border_hover' => array(
'type' => 'radio',
'label' => __pl('border_state'),
'default' => '',
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'slide_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-review-slide' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'slide_border_hover' => ''
),
),
'slide_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} .pagelayer-review-slide' => 'border-color: {{val}}!important;'],
'req' => array(
'!slide_border_type' => ''
),
'show' => array(
'slide_border_hover' => ''
),
),
'slide_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-review-slide' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!slide_border_type' => ''
],
'show' => array(
'slide_border_hover' => ''
),
),
'slide_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-review-slide' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!slide_border_type' => ''
),
'show' => array(
'slide_border_hover' => ''
),
),
'slide_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-review-slide:hover' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'slide_border_hover' => 'hover'
),
),
'slide_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} .pagelayer-review-slide:hover' => 'border-color: {{val}} !important;'],
'default' => '#0986c0',
'req' => array(
'!slide_border_type_hover' => ''
),
'show' => array(
'slide_border_hover' => 'hover'
),
),
'slide_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-review-slide:hover' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!slide_border_type_hover' => ''
],
'show' => array(
'slide_border_hover' => 'hover'
),
),
'slide_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-review-slide:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!slide_border_type_hover' => ''
),
'show' => array(
'slide_border_hover' => 'hover'
),
),
'slide_box_shadow' => array(
'type' => 'box_shadow',
'label' => __pl('shadow'),
'css' => ['{{element}} .pagelayer-review-slide' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}} !important;'],
),
),
'slider_options' => $pagelayer->slider_options,
'arrow_styles' => $pagelayer->slider_arrow_styles,
'pager_styles' => $pagelayer->slider_pager_styles,
'styles' => array(
'author_style' => __pl('author_style'),
'title_style' => __pl('title_style'),
'review_style' => __pl('review_style'),
'icon_style' => __pl('icon_style'),
'seperator_style' => __pl('seperator_style'),
'stars_style' => __pl('stars_style'),
'avatar_style' => __pl('avatar_style'),
'slide_style' => __pl('slide_style'),
'slider_options' => __pl('slider_options'),
'arrow_styles' => __pl('arrow_styles'),
'pager_styles' => __pl('pager_styles'),
)
)
);
// Template list
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_templates', array(
'name' => __pl('templates'),
'group' => 'other',
'no_gt' => 1,
'html' => '<div class="pagelayer-template-content">{{template_content}}</div>',
'params' => array(
'templates' => array(
'type' => 'select',
'label' => __pl('select_templates'),
'default' => '0',
'list' => ['0' => __pl('none')] + pagelayer_post_list_by_type('pagelayer-template'),
),
)
)
);
// Posts Grid
/* pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_wp_posts_grid', array(
'name' => __pl('Posts Grid'),
'group' => 'wordpress',
'html' => '<div class="pagelayer-wp-posts-grid-container"></div>',
'params' => array(
'query_type' => array(
'type' => 'radio',
'label' => __pl('posts_grid_query_type_label'),
'desc' => __pl('posts_grid_query_type_desc'),
'default' => 'simple',
'list' => array(
'simple' => __pl('simple'),
'custom' => __pl('posts_grid_custom_query_label'),
'ids' => __pl('ids'),
)
),
'post_type' => array(
'type' => 'select',
'label' => __pl('posts_grid_post_type_label'),
'desc' => __pl('posts_grid_post_type_desc'),
'list' => pagelayer_post_types(),
'req' => array(
'query_type' => 'simple'
)
),
'category' => array(
'type' => 'text',
'label' => __pl('posts_grid_category_label'),
'desc' => __pl('posts_grid_category_desc'),
'req' => array(
'post_type' => 'post'
)
),
'tag' => array(
'type' => 'text',
'label' => __pl('posts_grid_tag_label'),
'desc' => __pl('posts_grid_tag_desc'),
'req' => array(
'post_type' => 'post'
)
),
'custom_tax' => array(
'type' => 'text',
'label' => __pl('posts_grid_custom_tax_label'),
'req' => array(
'query_type' => 'simple'
)
),
'custom_tax_field' => array(
'type' => 'select',
'label' => __pl('posts_grid_custom_tax_field_label'),
'default' => 'slug',
'list' => array(
'term_id' => __pl('term_id'),
'slug' => __pl('slug'),
'name' => __pl('name')
),
'req' => array(
'query_type' => 'simple'
)
),
'custom_tax_terms' => array(
'type' => 'text',
'label' => __pl('posts_grid_custom_tax_term_label'),
'desc' => __pl('posts_grid_custom_tax_term_desc'),
'req' => array(
'query_type' => 'simple'
)
),
'posts_per_page' => array(
'type' => 'spinner',
'label' => __pl('posts_grid_posts_per_page_label'),
'default' => 4, // For backward compatibility in lite version must be 3 posts per page
'min' => 1,
'max' => 40,
'step' => 1,
'req' => array(
'query_type' => 'simple'
)
),
'posts_order' => array(
'type' => 'radio',
'label' => __pl('posts_grid_sort_order'),
'default' => 'DESC',
'list' => array(
'ASC' => __pl('posts_grid_sort_order_ascending'),
'DESC' => __pl('posts_grid_sort_order_descending')
),
'req' => array(
'query_type' => 'simple'
)
),
'custom_query' => array(
'type' => 'textarea',
'label' => __pl('posts_grid_custom_query_label'),
'desc' => __pl('posts_grid_custom_query_desc'),
'req' => array(
'query_type' => 'custom'
)
),
'ids' => array(
'type' => 'text',
'label' => __pl('posts_grid_ids_label'),
'desc' => __pl('posts_grid_ids_desc'),
'req' => array(
'query_type' => 'ids'
)
),
'columns' => array(
'type' => 'radio',
'label' => __pl('columns_count'),
'default' => 2,
'list' => array(
1 => 1,
2 => 2,
3 => 3,
4 => 4,
6 => 6
)
),
'template' => array(
'type' => 'select',
'label' => __pl('posts_grid_template_label'),
'list' => array(),
),
'posts_gap' => array(
'type' => 'slider',
'label' => __pl('posts_grid_posts_gap_label'),
'default' => 30,
'min' => 0,
'max' => 100,
'step' => 10,
),
'show_featured_image' => array(
'type' => 'checkbox',
'label' => __pl('posts_grid_show_featured_image'),
'default' => 'true',
),
'image_size' => array(
'type' => 'radio',
'label' => __pl('obj_image_size_label'),
'default' => 'large',
'list' => array(
'full' => __pl('full'),
'large' => __pl('large'),
'medium' => __pl('medium'),
'thumbnail' => __pl('thumbnail'),
'custom' => __pl('custom')
),
'req' => array(
'show_featured_image' => 'true'
),
),
'image_custom_size' => array(
'type' => 'text',
'desc' => __pl('image_custom_size_label'),
'req' => array(
'image_size' => 'custom'
),
),
'title_tag' => array(
'type' => 'radio',
'label' => __pl('posts_grid_title_tag'),
'default' => 'h2',
'list' => array(
'h1' => 'H1',
'h2' => 'H2',
'h3' => 'H3',
'h4' => 'H4',
'h5' => 'H5',
'hide' => __pl('posts_grid_title_tag_none'),
)
),
'show_date_comments' => array(
'type' => 'checkbox',
'label' => __pl('posts_grid_show_date_comments'),
'default' => 'true',
),
'show_content' => array(
'type' => 'radio',
'label' => __pl('posts_grid_show_content'),
'default' => 'short',
'list' => array(
'short' => __pl('posts_grid_show_content_short'),
'full' => __pl('posts_grid_show_content_full'),
'excerpt' => __pl('posts_grid_show_content_excerpt'),
'hide' => __pl('posts_grid_show_content_none'),
)
),
'short_content_length' => array(
'type' => 'slider',
'label' => __pl('posts_grid_short_content_length'),
'default' => 200,
'min' => 0,
'max' => 1000,
'step' => 20,
'req' => array(
'show_content' => 'short'
),
),
'read_more_text' => array(
'type' => 'text',
'label' => __pl('posts_grid_read_more_text_label'),
'default' => __pl('posts_grid_read_more_text')
),
'display_style' => array(
'type' => 'radio',
'label' => __pl('posts_grid_display_style'),
'default' => 'show_all',
'list' => array(
'show_all' => __pl('show_all'),
'load_more' => __pl('posts_grid_display_style_load_more'),
'pagination' => __pl('posts_grid_display_style_pagination')
)
),
'load_more_text' => array(
'type' => 'text',
'label' => __pl('posts_grid_load_more_text_label'),
'default' => __pl('posts_grid_load_more_text_default'), // "Load More"
'req' => array(
'display_style' => 'load_more'
)
),
'filter' => array(
'type' => 'radio',
'label' => __pl('posts_grid_filter_label'),
'desc' => __pl('posts_grid_filter_desc'),
'default' => 'none',
'list' => array(
'none' => __pl('none'),
'cats' => __pl('posts_grid_filter_by_first_tax'),
'tags' => __pl('posts_grid_filter_by_second_tax'),
'both' => __pl('posts_grid_filter_by_both')
),
'req' => array(
'query_type' => 'simple'
)
),
'filter_tax_1' => array(
'type' => 'select',
'label' => __pl('posts_grid_filter_first_tax_name'),
'default' => 'category',
'list' => pagelayer_tax_list('category'),
'req' => array(
'filter' => array( 'cats', 'both' )
)
),
'filter_tax_2' => array(
'type' => 'select',
'label' => __pl('posts_grid_filter_second_tax_name'),
'default' => 'post_tag',
'list' => pagelayer_tax_list('post_tag'),
'req' => array(
'filter' => array( 'tags', 'both' )
)
),
'filter_btn_color' => array(
'type' => 'color',
'label' => __pl('button_color_label'),
'default' => '#333333',
'req' => array(
'!filter' => 'none'
)
),
'filter_btn_divider' => array(
'type' => 'text',
'label' => __pl('filter_links_divider'),
'default' => '/',
'req' => array(
'filter_btn_color' => 'none'
)
),
'filter_cats_text' => array(
'type' => 'text',
'label' => __pl('posts_grid_filter_first_tax_text_label'),
'default' => __pl('categories') . ':',
'req' => array(
'filter' => array('cats', 'both')
)
),
'filter_tags_text' => array(
'type' => 'text',
'label' => __pl('posts_grid_filter_second_tax_text_label'),
'default' => __pl('tags') . ':',
'req' => array(
'filter' => array('tags', 'both')
)
),
'filter_all_text' => array(
'type' => 'text',
'label' => __pl('posts_grid_filter_view_all_text_label'),
'default' => __pl('all'),
'req' => array(
'!filter' => 'none'
)
)
)
)
); */
// Posts Slider
/* pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_wp_posts_slider', array(
'name' => __pl('Posts Slider'),
'group' => 'wordpress',
'html' => '<div class="pagelayer-posts-slider-container" slider-autoplay="{{slider_autoplay}}" count="{{items_to_display}}" post-slider-pause="{{pause_on_hover}}" bullets="{{show_bullets}}" controlbtn ="{{show_nav}}" hide-posts-title="{{post_title}}" hide-posts-image="{{posts_image}}" hide-posts-date="{{post_date}}" post-content="{{show_content}}" hide-post-link ="{{read_more}}">
<ul class="pagelayer-posts-slider-main">
{{posts_slides}}
</ul>
</div>',
'params' => array(
'post_count' => array(
'type' => 'spinner',
'label' => __pl('posts_count'),
'default' => 1,
'min' => 1,
'max' => 10,
'step' => 1
),
'post_type' => array(
'type' => 'select',
'label' => __pl('post_types'),
'default' => 'post',
'list' => pagelayer_post_types(true),
),
'category' => array(
'type' => 'select',
'label' => __pl('categories'),
'list' => pagelayer_get_categories(),
'req' => array(
'post_type' => 'post'
),
),
'tags' => array(
'type' => 'select',
'label' => __pl('tags'),
'list' => pagelayer_get_tags(),
'req' => array(
'post_type' => 'post'
),
),
'order_by' => array(
'type' => 'select',
'label' => __pl('posts_order_by'),
'default' => 'date',
'list' => array(
'ID' => __pl('posts_order_by_id'),
'date' => __pl('posts_order_by_date'),
'author' => __pl('posts_order_by_author'),
'modified' => __pl('posts_order_by_modified'),
'rand' => __pl('posts_order_by_random'),
'comment_count' => __pl('posts_order_by_comment_count'),
'menu_order' => __pl('posts_order_by_menu_order'),
),
),
'sort_order' => array(
'type' => 'radio',
'label' => __pl('post_sort_order'),
'default' => 'DESC',
'list' => array(
'ASC' => __pl('sort_order_ascending'),
'DESC' => __pl('sort_order_descending'),
),
),
'show_excerpt' => array(
'type' => 'checkbox',
'label' => __pl('show_excerpt'),
),
),
'title_style' => [
'post_title' => array(
'type' => 'checkbox',
'label' => __pl('hide_title'),
),
'title_color' => array(
'type' => 'color',
'label' => __pl('title_color'),
'default' => '#000000',
'css' => ['{{element}} .pagelayer-posts-slider-title' => 'color:{{val}}'],
'req' => array(
'post_title' => '',
),
),
'title_spacing' => array(
'type' => 'padding',
'label' => __pl('spacing'),
'css' => ['{{element}} .pagelayer-posts-slider-title' => 'margin:{{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'post_title' => '',
),
),
'post_title_style' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',20,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-posts-slider-title' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => array(
'post_title' => '',
),
),
],
'image_style' => [
'posts_image' => array(
'type' => 'checkbox',
'label' => __pl('hide_image'),
),
'image_size' => array(
'type' => 'radio',
'label' => __pl('image_size'),
'default' => 'full',
'list' => array(
'full' => __pl('full'),
'thumbnail' => __pl('thumbnail'),
'custom' => __pl('custom')
),
'req' => array(
'posts_image' => '',
),
),
'img_height' => array(
'type' => 'slider',
'label' => __pl('img_height'),
'css' => ['{{element}} .pagelayer-posts-slider-img' => 'height: {{val}}em;'],
'default' => 10,
'min' => 10,
'max' => 20,
'step' => 0.2,
'req' => array(
'image_size' => 'custom',
),
),
'image_spacing' => array(
'type' => 'padding',
'label' => __pl('spacing'),
'css' => ['{{element}} .pagelayer-posts-slider-featured-img' => 'margin: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'posts_image' => '',
),
),
],
'content_style' => [
'content_color' => array(
'type' => 'color',
'label' => __pl('content_color'),
'default' => '#000000',
'css' => ['{{element}} .pagelayer-posts-slider-excerpt' => 'color:{{val}}'],
),
'post_content_style' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',16,,300,,,solid,,,,',
'css' => ['{{element}} .pagelayer-posts-slider-excerpt ' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
],
'date_style' => [
'post_date' => array(
'type' => 'checkbox',
'label' => __pl('hide_date'),
),
'date_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#000000',
'css' => ['{{element}} .pagelayer-post-slider-date p' => 'color:{{val}}'],
'req' => array(
'post_date' => '',
),
),
'post_date_style' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',14,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-post-slider-date p' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}}!important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing:{{val[10]}}px !important;'],
'req' => array(
'post_date' => '',
),
),
],
'post_style' => [
'read_more' => array(
'type' => 'checkbox',
'label' => __pl('hide_link'),
),
'link_color' => array(
'type' => 'color',
'label' => __pl('link_color'),
'default' => '#e82121',
'css' => ['{{element}} .pagelayer-posts-slider-link' => 'color:{{val}}'],
),
'background_color' => array(
'type' => 'color',
'label' => __pl('background_color'),
'css' => ['{{element}} .pagelayer-posts-slider-post' => 'background-color:{{val}}'],
),
'link_style' => array(
'type' => 'typography',
'label' => __pl('typography'),
'default' => ',16,,500,,,solid,,,,',
'css' => ['{{element}} .pagelayer-posts-slider-link' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'post_shadow' => array(
'type' => 'box_shadow',
'label' => __pl('post_shadow'),
'css' => ['{{element}} .pagelayer-posts-slider-post' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}};'],
),
'post_border_hover' => array(
'type' => 'radio',
'label' => __pl('border_state'),
'default' => '',
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'post_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-posts-slider-post' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'post_border_hover' => ''
),
),
'post_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} .pagelayer-posts-slider-post' => 'border-color: {{val}}!important;'],
'req' => array(
'!post_border_type' => ''
),
'show' => array(
'post_border_hover' => ''
),
),
'post_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'css' => ['{{element}} .pagelayer-posts-slider-post' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!post_border_type' => ''
],
'show' => array(
'post_border_hover' => ''
),
),
'post_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'css' => ['{{element}} .pagelayer-posts-slider-post' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!post_border_type' => ''
),
'show' => array(
'post_border_hover' => ''
),
),
'post_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-posts-slider-post:hover' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => array(
'post_border_hover' => 'hover'
),
),
'post_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} .pagelayer-posts-slider-post:hover' => 'border-color: {{val}} !important;'],
'default' => '#0986c0',
'req' => array(
'!post_border_type_hover' => ''
),
'show' => array(
'post_border_hover' => 'hover'
),
),
'post_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'css' => ['{{element}} .pagelayer-posts-slider-post:hover' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!post_border_type_hover' => ''
],
'show' => array(
'post_border_hover' => 'hover'
),
),
'post_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'css' => ['{{element}} .pagelayer-posts-slider-post:hover' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!post_border_type_hover' => ''
),
'show' => array(
'post_border_hover' => 'hover'
),
),
],
'slider_options' => [
'items_to_display' => array(
'type' => 'spinner',
'label' => __pl('slider_items_display'),
'default' => 1,
'min' => 1,
'max' => 10,
'step' => 1
),
'slider_autoplay' => array(
'type' => 'checkbox',
'label' => __pl('autoplay'),
'default' => 'true',
),
'show_nav' => array(
'type' => 'checkbox',
'label' => __pl('slider_navigations'),
'default' => 'true',
),
'nav_arrow_color' => array(
'type' => 'color',
'label' => __pl('slider_arrows_color'),
'css' => ['{{element}} .pagelayer-prev-arrow:before' => 'color:{{val}} !important;',
'{{element}} .pagelayer-next-arrow:before' => 'color:{{val}} !important;'],
'req' => array(
'show_nav' => 'true',
)
),
'show_bullets' => array(
'type' => 'checkbox',
'label' => __pl('bullets'),
'default' => 'true',
),
'pause_on_hover' => array(
'type' => 'checkbox',
'label' => __pl('slider_pause_on_hover'),
),
],
'styles' => [
'title_style' => __pl('title_style'),
'image_style' => __pl('image_style'),
'content_style' => __pl('content_style'),
'date_style' => __pl('date_style'),
'post_style' => __pl('posts_style'),
'slider_options' => __pl('slider_options'),
],
)
); */
// Image Portfolio
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_img_portfolio', array(
'name' => __pl('img_portfolio'),
'group' => 'image',
'icon' => 'fas fa-briefcase',
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
//'child_selector' => '>.pagelayer-owl-stage-outer>.pagelayer-owl-stage>.pagelayer-owl-item', // Make it very specifc
'holder' => '.pagelayer-img_portfolio-holder',
'html' => '<div class="pagelayer-category-holder"></div>
<div class="pagelayer-img_portfolio-holder"></div>',
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('image'),
'sc' => PAGELAYER_SC_PREFIX.'_single_img',
'item_label' => array(
'default' => __pl('image'),
'param' => 'title'
),
'count' => 1,
'text' => strtr(__pl('add_new_item'), array('%name%' => __pl('image')))
)
),
'img_style' =>[
'img_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'screen' => 1,
'min' => 0,
'step' => 1,
'max' => 100,
'css' => ['{{element}} .pagelayer-img_portfolio-holder>div' => 'width: {{val}}%;'],
),
'img_spacing' => array(
'type' => 'padding',
'label' => __pl('space_around'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-single_img' => 'padding-top: {{val[0]}}px; padding-right: {{val[1]}}px; padding-bottom: {{val[2]}}px; padding-left: {{val[3]}}px'],
),
'img_height' => array(
'type' => 'spinner',
'label' => __pl('height'),
'screen' => 1,
'min' => 0,
'step' => 1,
'css' => ['{{element}} .pagelayer-img_portfolio-holder>div' => 'height: {{val}}px; overflow:hidden;'],
),
'img_stretch' => array(
'type' => 'checkbox',
'label' => __pl('stretch'),
'css' => [
'{{element}}, {{element}} .pagelayer-pf-img, {{element}} .pagelayer-pf-img img'=> 'height:100%; width:100%;'
],
'req' => ['!img_height' => '']
),
'img_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'img_filter' => array(
'type' => 'filter',
'label' => __pl('filter'),
'css' => ['{{element}} .pagelayer-pf-img img' => 'filter: blur({{val[0]}}px) brightness({{val[1]}}%) contrast({{val[2]}}%) grayscale({{val[3]}}%) hue-rotate({{val[4]}}deg) opacity({{val[5]}}%) saturate({{val[6]}}%)'],
'show' => ['img_hover' => '']
),
'img_shadow' => array(
'type' => 'box_shadow',
'label' => __pl('shadow'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-pf-img img' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}} !important;'],
'show' => ['img_hover' => '']
),
'img_rotate' => array(
'type' => 'spinner',
'label' => __pl('Rotate'),
'min' => 0,
'max' => 360,
'step' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-pf-img img' => 'transform: rotate({{val}}deg)'],
'show' => ['img_hover' => '']
),
'img_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay_label'),
'desc' => __pl('btn_hover_delay_desc'),
'min' => 0,
'step' => 100,
'max' => 5000,
'css' => ['{{element}} .pagelayer-pf-img img' => '-webkit-transition: all {{val}}ms; transition: all {{val}}ms;',],
'show' => ['img_hover' => 'hover']
),
'img_filter_hover' => array(
'type' => 'filter',
'label' => __pl('filter'),
'css' => ['{{element}} .pagelayer-pf-img img:hover' => 'filter: blur({{val[0]}}px) brightness({{val[1]}}%) contrast({{val[2]}}%) grayscale({{val[3]}}%) hue-rotate({{val[4]}}deg) opacity({{val[5]}}%) saturate({{val[6]}}%)'],
'show' => ['img_hover' => 'hover']
),
'img_shadow_hover' => array(
'type' => 'box_shadow',
'label' => __pl('shadow'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-pf-img img:hover' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}} !important;'],
'show' => ['img_hover' => 'hover']
),
'img_rotate_hover' => array(
'type' => 'spinner',
'label' => __pl('Rotate'),
'min' => 0,
'max' => 360,
'step' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-pf-img img:hover' => 'transform: rotate({{val}}deg)'],
'show' => ['img_hover' => 'hover']
)
],
'btns_style' => [
'disable_category' => array(
'type' => 'checkbox',
'label' => __pl('disable_category'),
'css' => ['{{element}} .pagelayer-category-holder' => 'display:none']
),
'btn_align' => array(
'label' => __pl('alignment'),
'type' => 'select',
'screen' => 1,
'css' => ['{{element}} .pagelayer-category-holder' => 'text-align:{{val}};'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
'justify' => __pl('justify'),
)
),
'btn_size' => array(
'type' => 'dimension',
'label' => __pl('size'),
'screen' => 1,
'css' => ['{{element}} button' => 'padding-top: {{val[0]}}px; padding-right: {{val[1]}}px; padding-bottom: {{val[0]}}px; padding-left: {{val[1]}}px;'],
),
'btn_spacing' => array(
'type' => 'dimension',
'label' => __pl('space_around'),
'screen' => 1,
'css' => ['{{element}} button' => 'margin-top: {{val[0]}}px; margin-right: {{val[1]}}px; margin-bottom: {{val[0]}}px; margin-left: {{val[1]}}px;'],
),
'btn_space_bottom' => array(
'type' => 'slider',
'label' => __pl('space_bottom'),
'screen' => 1,
'min' => 0,
'step' => 1,
'max' => 1000,
'css' => ['{{element}} .pagelayer-category-holder' => 'padding-bottom: {{val}}px;'],
),
'btn_hover' => [
'type' => 'radio',
'label' => '',
'list' => [
'' => __pl('normal'),
'hover' => __pl('hover'),
],
],
'btn_color' => array(
'label' => __pl('color'),
'type' => 'color',
'css' => ['{{element}} button' => 'color: {{val}};'],
'show' => ['btn_hover' => ''],
),
'btn_bg' => array(
'label' => __pl('bg_color'),
'type' => 'color',
'css' => ['{{element}} button' => 'background-color: {{val}};'],
'show' => ['btn_hover' => ''],
),
'btn_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} button' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => ['btn_hover' => ''],
),
'btn_border_type' => [
'type' => 'select',
'label' => __pl('border_type'),
'screen' => 1,
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => ['btn_hover' => ''],
'css' => ['{{element}} button' => 'border-style: {{val}}'],
],
'btn_border_width' => [
'type' => 'padding',
'label' => __pl('border_width'),
'units' => ['px', 'em'],
'screen' => 1,
'show' => [
'btn_hover' => ''
],
'req' => [
'!btn_border_type' => ''
],
'css' => ['{{element}} button' => 'border-top-width: {{val[0]}}; border-right-width: {{val[1]}}; border-bottom-width: {{val[2]}}; border-left-width: {{val[3]}}'],
],
'btn_border_color' => [
'type' => 'color',
'label' => __pl('border_color'),
'screen' => 1,
'show' => [
'btn_hover' => ''
],
'req' => [
'!btn_border_type' => ''
],
'css' => ['{{element}} button' => 'border-color: {{val}}'],
],
'btn_border_radius' => [
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => ['px', 'em'],
'screen' => 1,
'show' => ['btn_hover' => ''],
'css' => ['{{element}} button' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
],
'btn_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('btn_hover_delay_label'),
'desc' => __pl('btn_hover_delay_desc'),
'min' => 0,
'step' => 100,
'max' => 5000,
'css' => ['{{element}} button' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => array(
'btn_hover' => 'hover'
),
),
'btn_color_hover' => array(
'label' => __pl('color'),
'type' => 'color',
'css' => ['{{element}} button:hover' => 'color: {{val}};'],
'show' => ['btn_hover' => 'hover'],
),
'btn_bg_hover' => array(
'label' => __pl('bg_color'),
'type' => 'color',
'css' => ['{{element}} button:hover' => 'background-color: {{val}};'],
'show' => ['btn_hover' => 'hover'],
),
'btn_typo_hover' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} button:hover' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => ['btn_hover' => 'hover'],
),
'btn_btype_hover' => [
'type' => 'select',
'label' => __pl('border_type'),
'screen' => 1,
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => ['btn_hover' => 'hover'],
'css' => ['{{element}} button:hover' => 'border-style: {{val}}'],
],
'btn_bwidth_hover' => [
'type' => 'padding',
'label' => __pl('border_width'),
'units' => ['px', 'em'],
'screen' => 1,
'show' => [
'btn_hover' => 'hover'
],
'req' => [
'!btn_btype_hover' => ''
],
'css' => ['{{element}} button:hover' => 'border-top-width: {{val[0]}}; border-right-width: {{val[1]}}; border-bottom-width: {{val[2]}}; border-left-width: {{val[3]}}'],
],
'btn_bcolor_hover' => [
'type' => 'color',
'label' => __pl('border_color'),
'screen' => 1,
'show' => [
'btn_hover' => 'hover'
],
'req' => [
'!btn_btype_hover' => ''
],
'css' => ['{{element}} button:hover' => 'border-color: {{val}}'],
],
'btn_bradius_hover' => [
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'units' => ['px', 'em'],
'show' => ['btn_hover' => 'hover'],
'css' => ['{{element}} button:hover' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
],
],
'styles' => [
'img_style' => __pl('service_img_style'),
'btns_style' => __pl('button_style'),
]
));
// Image Portfolio
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_single_img', array(
'name' => __pl('image'),
'group' => 'other',
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_img_portfolio'],
'html' => '<div class="pagelayer-pf-img">
<a if-ext="{{link_type}}" class="pagelayer-ele-link" href="{{func_link}}" pagelayer-image-link-type="{{link_type}}">
<img class="pagelayer-img" src="{{func_img}}" title="{{{img-title}}}" alt="{{{img-alt}}}" />
<div if="{{overlay}}" class="pagelayer-image-overlay">
<div class="pagelayer-image-overlay-content">
<i if="{{icon}}" class="pagelayer-image-overlay-icon {{icon}}"></i>
<h3 if="{{heading}}" class="pagelayer-overlay-heading">{{heading}}</h3>
<div if="{{text}}" class="pagelayer-image-overlay-text">{{text}}</div>
</div>
</div>
</a>
</div>',
'params' => array(
'title' => array(
'type' => 'text',
'label' => __pl('title'),
'default' => 'Lorem',
),
'img' => array(
'label' => __pl('image_src_label'),
'type' => 'image',
'default' => PAGELAYER_URL.'/images/default-image.png',
'addAttr' => 'port-cat="all"',
),
'img-size' => array(
'label' => __pl('obj_image_size_label'),
'type' => 'select',
'default' => 'full',
'list' => array(
'full' => __pl('full'),
'large' => __pl('large'),
'medium' => __pl('medium'),
'thumbnail' => __pl('thumbnail'),
'custom' => __pl('custom')
)
),
'custom_size' => array(
'label' => __pl('image_custom_size_label'),
'type' => 'dimension',
'default' => '100,100',
'screen' => 1,
'css' => ['{{element}} .pagelayer-img' => 'width: {{val[0]}}px; height: {{val[1]}}px;'],
'req' => array(
'img-size' => 'custom'
),
),
'cat_name' => array(
'type' => 'text',
'addAttr' => 'port-cat="{{cat_name}}"',
'label' => __pl('category'),
'default' => __pl('Technology'),
),
'link_type' => array(
'label' => __pl('image_link_label'),
'type' => 'select',
'list' => array(
'' => __pl('none'),
'custom_url' => __pl('custom_url'),
'media_file' => __pl('media_file'),
'lightbox' => __pl('lightbox')
)
),
'link' => array(
'type' => 'link',
'label' => __pl('image_link_label'),
'desc' => __pl('image_link_desc'),
'selector' => '.pagelayer-ele-link',
'req' => array(
'link_type' => 'custom_url'
)
),
'rel' => array(
'label' => __pl('image_rel_label'),
'type' => 'text',
'addAttr' => ['{{element}} a' => 'rel="{{rel}}"'],
'req' => array(
'link_type' => 'media_file'
)
),
'target' => array(
'label' => __pl('open_link_in_new_window'),
'type' => 'checkbox',
'addAttr' => ['{{element}} a' => 'target="_blank"'],
'req' => ['link_type' => ['custom_url', 'media_file']], // For backward compatibility of the new link property in version 1.5.8, hide it for custom_url.
'show' => ['link_type' => 'media_file']
),
),
'overlay_style' => [
'overlay' => array(
'label' => __pl('image_overlay_effect_label'),
'desc' => __pl('image_overlay_effect_desc'),
'type' => 'checkbox',
),
'icon' => array(
'label' => __pl('icon'),
'type' => 'icon',
'default' => 'far fa-eye',
'req' => array(
'overlay' => 'true'
)
),
'icon_color' => array(
'label' => __pl('icon_color'),
'type' => 'color',
'css' => ['{{element}} .pagelayer-image-overlay-icon' => 'color: {{val}}'],
'req' => array(
'overlay' => 'true'
)
),
'icon_size' => array(
'label' => __pl('icon_custom_size'),
'desc' => __pl('icon_custom_size_desc'),
'type' => 'spinner',
'min' => 0,
'step' => 1,
'max' => 500,
'screen' => 1,
'css' => ['{{element}} .pagelayer-image-overlay-icon' => 'font-size: {{val}}px'],
'req' => array(
'overlay' => 'true'
)
),
'heading' => array(
'label' => __pl('title'),
'type' => 'text',
'edit' => '.pagelayer-overlay-heading',
'req' => array(
'overlay' => 'true'
)
),
'heading_color' => array(
'label' => __pl('title_color'),
'type' => 'color',
'css' => ['{{element}} .pagelayer-overlay-heading, {{element}} .pagelayer-overlay-heading *' => 'color: {{val}}'],
'req' => array(
'overlay' => 'true'
)
),
'heading_typo' => array(
'type' => 'typography',
'label' => __pl('heading_typo'),
'css' => [
'{{element}} .pagelayer-overlay-heading, {{element}} .pagelayer-overlay-heading *' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
],
'req' => array(
'overlay' => 'true'
)
),
'text' => array(
'label' => __pl('content'),
'type' => 'editor',
'default' => 'Lorem Ipsum',
'edit' => '.pagelayer-image-overlay-text',
'req' => array(
'overlay' => 'true'
)
),
'overlay_bg_type' => array(
'label' => __pl('background_type'),
'type' => 'radio',
'list' => array(
'' => __pl('color'),
'gradient' => __pl('gradient')
),
'req' => array(
'overlay' => 'true'
)
),
'overlay_bg' => array(
'label' => __pl('image_overlay_background'),
'type' => 'color',
'css' => ['{{element}} .pagelayer-image-overlay' => 'background: {{val}}'],
'req' => array(
'overlay' => 'true',
'overlay_bg_type' => ''
)
),
'overlay_gradient' => [
'type' => 'gradient',
'label' => '',
'css' => ['{{element}} .pagelayer-image-overlay' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%);'],
'req' => array(
'overlay' => 'true',
'overlay_bg_type' => 'gradient'
)
],
'content_align' => array(
'label' => __pl('alignment'),
'type' => 'radio',
'screen' => 1,
'css' => ['{{element}} .pagelayer-image-overlay-content' => 'text-align: {{val}};'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'req' => array(
'overlay' => 'true'
)
),
'content_position' => array(
'label' => __pl('overlay_cont_pos'),
'type' => 'radio',
'screen' => 1,
'css' => ['{{element}} .pagelayer-image-overlay' => 'display:-webkit-flex;display:flex;-webkit-align-items:{{val}}; align-items:{{val}};'],
'list' => array(
'flex-start' => __pl('Top'),
'center' => __pl('Middle'),
'flex-end' => __pl('Bottom'),
),
'req' => array(
'overlay' => 'true'
)
),
'content_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'screen' => 1,
'css' => ['{{element}}:hover .pagelayer-image-overlay' => 'padding-top: {{val[0]}}px; padding-right: {{val[1]}}px; padding-bottom: {{val[2]}}px; padding-left: {{val[3]}}px;'],
'req' => array(
'overlay' => 'true'
)
),
'show_always' => array(
'label' => __pl('image_show_always'),
'type' => 'checkbox',
'screen' => 1,
'css' => ['{{element}} .pagelayer-image-overlay' => 'height:100%;'],
'req' => array(
'overlay' => 'true'
)
)
],
'styles' => [
'overlay_style' => __pl('overlay_style')
]
));
/////////////////////////////////////
// WooCommerce Shortcodes
/////////////////////////////////////
if(class_exists( 'woocommerce' )){
// Product Images
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_product_images', array(
'name' => __pl('product_images'),
'group' => 'woocommerce',
'html' => '<div class="pagelayer-product-images-container product pagelayer-woo-gallery-{{gposition}}">
{{product_images_templ}}
</div>',
'params' => array(
'sale_flash' => array(
'type' => 'checkbox',
'label' => __pl('sale_flash'),
),
'image_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['.woocommerce {{element}} .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper' => 'border-style: {{val}}',
'.woocommerce {{element}} .flex-viewport' => 'border-style: {{val}}',
],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'image_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'default' => '#42414f',
'css' => ['.woocommerce {{element}} .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper' => 'border-color: {{val}};',
'.woocommerce {{element}} .flex-viewport' => 'border-color: {{val}};',
],
'req' => array(
'!image_border_type' => ''
),
),
'image_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'css' => ['.woocommerce {{element}} .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px',
'.woocommerce {{element}} .flex-viewport' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px',
],
'req' => [
'!image_border_type' => ''
],
),
'image_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => [ 'px', '%' ],
'css' => ['.woocommerce {{element}} .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
'.woocommerce {{element}} .flex-viewport' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
],
),
),
'thumbnails' => array(
'disable_gallery' => array(
'type' => 'checkbox',
'label' => __pl('disable_gallery'),
'css' => ['{{element}} ol.flex-control-thumbs' => 'display:none !important'],
),
'gposition' => array(
'label' => __pl('gallery_position'),
'type' => 'radio',
'default' => 'bottom',
'list' => array(
'left' => __pl('left'),
'top' => __pl('top'),
'right' => __pl('right'),
'bottom' => __pl('bottom')
),
'req' => array(
'disable_gallery' => '',
),
),
'thumb_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['.woocommerce {{element}} .flex-control-thumbs img' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'req' => array(
'disable_gallery' => '',
),
),
'thumb_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'default' => '#42414f',
'css' => ['.woocommerce {{element}} .flex-control-thumbs img' => 'border-color: {{val}};'],
'req' => array(
'disable_gallery' => '',
'!thumb_border_type' => ''
),
),
'thumb_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'css' => ['.woocommerce {{element}} .flex-control-thumbs img' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'disable_gallery' => '',
'!thumb_border_type' => ''
],
),
'thumb_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => [ 'px', '%' ],
'css' => ['.woocommerce {{element}} .flex-control-thumbs img' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
'req' => array(
'disable_gallery' => '',
),
),
'thumb_space' => array(
'type' => 'slider',
'label' => __pl('horizontal_space'),
'units' => [ 'px', '%' ],
'css' => ['.woocommerce {{element}} .flex-control-thumbs li' => 'padding-right: calc({{val}} / 2); padding-left: calc({{val}} / 2); padding-bottom: {{val}}',
'.woocommerce {{element}} .flex-control-thumbs' => 'margin-right: calc(-{{val}} / 2); margin-left: calc(-{{val}} / 2)'
],
'req' => array(
'disable_gallery' => '',
),
),
'thumb_vertical_space' => array(
'type' => 'slider',
'label' => __pl('vertical_space'),
'units' => ['px','%'],
'css' => ['.woocommerce {{element}} .flex-control-thumbs li' => 'padding-top: {{val}} ; padding-bottom: {{val}};',
'.woocommerce {{element}} .flex-control-thumbs' => 'margin-top: calc(-{{val}} / 2); margin-bottom: calc(-{{val}} / 2)'
],
'req' => array(
'disable_gallery' => '',
),
),
),
'styles' => [
'thumbnails' => __pl('thumbnails'),
],
)
);
// Product Price
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_product_price', array(
'name' => __pl('product_price'),
'group' => 'woocommerce',
'html' => '<div class=" product pagelayer-product-price-container">
{{pagelayer-product-price}}
</div>',
'params' => array(
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'css' => ['.woocommerce {{element}} .pagelayer-product-price-container' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
),
'price_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .price .woocommerce-Price-amount' => 'color: {{val}} !important',
'.woocommerce {{element}} .price' => 'color: {{val}} !important'
],
),
'price_typo' => array(
'type' => 'typography',
'label' => __pl('heading_typo'),
'css' => ['.woocommerce {{element}} .price .woocommerce-Price-amount' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'.woocommerce {{element}} .price' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
),
'sale_price' => array(
'sale_price_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .price ins .woocommerce-Price-amount' => 'color: {{val}} !important',
'.woocommerce {{element}} .price ins' => 'color: {{val}} !important'
],
),
'sale_price_typo' => array(
'type' => 'typography',
'label' => __pl('heading_typo'),
'css' => ['.woocommerce {{element}} .price ins .woocommerce-Price-amount' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'.woocommerce {{element}} .price ins .woocommerce-Price-amount' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'sale_space_bottom' => array(
'type' => 'checkbox',
'label' => __pl('space_bottom'),
'addAttr' => ['{{element}} .price' => 'pagelayer-bottom="yes"'],
),
'sale_price_space' => array(
'type' => 'slider',
'label' => __pl('space'),
'units' => [ 'px', '%' ],
'step' => 0.1,
'css' => ['body:not(.rtl) {{element}} .price:not([pagelayer-bottom="yes"]) del' => 'margin-right: {{val}}',
'body.rtl {{element}} .price:not([pagelayer-bottom="yes"]) del' => 'margin-right: {{val}}',
'{{element}} .price[pagelayer-bottom="yes"] del' => 'margin-bottom: {{val}}'
],
),
),
'styles' => [
'sale_price' => __pl('sale_price'),
],
)
);
// Add to cart
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_add_to_cart', array(
'name' => __pl('add_to_cart'),
'group' => 'woocommerce',
'html' => '<div class=" product pagelayer-add-to-cart-holder">{{product_add_to_cart}}<div>',
'params' => array(
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'css' => ['.woocommerce {{element}}' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
),
'cart_typo' => array(
'type' => 'typography',
'label' => __pl('heading_typo'),
'css' => ['.woocommerce {{element}} .cart button' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'cart_colors' => array(
'type' => 'radio',
'label' => __pl('color'),
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'cart_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .cart button' => 'color: {{val}} !important'],
'show' => ['cart_colors' => ''],
),
'cart_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['.woocommerce {{element}} .cart button' => 'background-color: {{val}} !important'],
'show' => ['cart_colors' => ''],
),
'cart_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['.woocommerce {{element}} .cart button' => 'border-color: {{val}} !important'],
'show' => ['cart_colors' => ''],
),
'cart_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .cart button:hover' => 'color: {{val}} !important'],
'show' => ['cart_colors' => 'hover'],
),
'cart_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['.woocommerce {{element}} .cart button:hover' => 'background-color: {{val}} !important'],
'show' => ['cart_colors' => 'hover'],
),
'cart_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['.woocommerce {{element}} .cart button:hover' => 'border-color: {{val}} !important'],
'show' => ['cart_colors' => 'hover'],
),
'cart_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['.woocommerce {{element}} .cart button' => 'border-style: {{val}}',
],
'list' => [
'' => __pl('default'),
'none' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'cart_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'css' => ['.woocommerce {{element}} .cart button' => 'border-top-width: {{val[0]}}px !important; border-right-width: {{val[1]}}px !important; border-bottom-width: {{val[2]}}px !important; border-left-width: {{val[3]}}px !important',
],
'req' => [
'!cart_border_type' => ['', 'none'],
],
),
'cart_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => [ 'px', '%' ],
'css' => ['.woocommerce {{element}} .cart button' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important;-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important;',
],
),
'cart_border_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'units' => [ 'px', '%', 'em' ],
'css' => ['.woocommerce {{element}} .cart button' => 'padding: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important;'],
),
),
'cart_quantity' => array(
'quantity_space' => array(
'type' => 'slider',
'label' => __pl('space'),
'units' => [ 'px', 'em' ],
'step' => 0.1,
'css' => ['body:not(.rtl) {{element}} .quantity + .button' => 'margin-left: {{val}}',
'body.rtl {{element}} .quantity + .button' => 'margin-right: {{val}}'
],
),
'quantity_width' => array(
'type' => 'slider',
'label' => __pl('Width'),
'units' => [ 'px', 'em' ],
'step' => 0.1,
'css' => ['.woocommerce {{element}} .quantity .qty' => 'width: {{val}} !important'],
),
'quantity_typo' => array(
'type' => 'typography',
'label' => __pl('heading_typo'),
'css' => ['.woocommerce {{element}} .quantity .qty' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'quantity_colors' => array(
'type' => 'radio',
'label' => __pl('colors'),
'list' => array(
'' => __pl('normal'),
'focus' => __pl('focus'),
),
),
'quantity_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .quantity .qty' => 'color: {{val}} !important'],
'show' => ['quantity_colors' => ''],
),
'quantity_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['.woocommerce {{element}} .quantity .qty' => 'background-color: {{val}} !important'],
'show' => ['quantity_colors' => ''],
),
'quantity_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['.woocommerce {{element}} .quantity .qty' => 'border-color: {{val}} !important'],
'show' => ['quantity_colors' => ''],
),
'quantity_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .quantity .qty:focus' => 'color: {{val}} !important'],
'show' => ['quantity_colors' => 'focus'],
),
'quantity_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['.woocommerce {{element}} .quantity .qty:focus' => 'background-color: {{val}} !important'],
'show' => ['quantity_colors' => 'focus'],
),
'quantity_border_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .quantity .qty:focus' => 'border-color: {{val}} !important'],
'show' => ['quantity_colors' => 'focus'],
),
'quantity_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['.woocommerce {{element}} .quantity .qty' => 'border-style: {{val}} !important',
],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'quantity_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'css' => ['.woocommerce {{element}} .quantity .qty' => 'border-top-width: {{val[0]}}px !important; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px !important; border-left-width: {{val[3]}}px !important',
],
'req' => [
'!quantity_border_type' => ''
],
),
'quantity_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => [ 'px', '%' ],
'css' => ['.woocommerce {{element}} .quantity .qty' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important;-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important;',
],
),
'quantity_border_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'units' => [ 'px', '%', 'em' ],
'css' => ['.woocommerce {{element}} .quantity .qty' => 'padding: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important;'],
),
),
'cart_variations' => array(
'variations_space' => array(
'type' => 'slider',
'label' => __pl('space'),
'units' => [ 'px', 'em' ],
'step' => 0.1,
'css' => ['.woocommerce {{element}} form.cart .variations' => 'margin-bottom: {{val}} !important'],
),
'variations_space_between' => array(
'type' => 'slider',
'label' => __pl('space_between'),
'units' => [ 'px', 'em' ],
'step' => 0.1,
'css' => ['.woocommerce {{element}} form.cart table.variations tr:not(:last-child)' => 'margin-bottom: {{val}} !important'],
),
'variations_label' => array(
'type' => 'heading',
'label' => __pl('label'),
),
'variations_label_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['.woocommerce {{element}} form.cart table.variations label' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'variations_label_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} form.cart table.variations label' => 'color: {{val}} !important'],
),
'sel_label' => array(
'type' => 'heading',
'label' => __pl('select'),
),
'variations_sel_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['.woocommerce {{element}} form.cart table.variations td.value select' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'variations_sel_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} form.cart table.variations td.value select' => 'color: {{val}} !important'],
),
'variations_sel_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['.woocommerce {{element}} form.cart table.variations td.value select' => 'background-color: {{val}} !important'],
),
'variations_border_sel_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['.woocommerce {{element}} form.cart table.variations td.value:before' => 'border-color: {{val}} !important'],
),
'variations_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => [ 'px', '%' ],
'css' => ['.woocommerce {{element}} form.cart table.variations td.value select' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important;-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important;',
],
),
),
'styles' => [
'cart_quantity' => __pl('quantity'),
'cart_variations' => __pl('variations'),
],
)
);
// Product Rating
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_product_rating', array(
'name' => __pl('product_rating'),
'group' => 'woocommerce',
'html' => '<div class=" product pagelayer-product-rating">{{product_rating}}</div>',
'params' => array(
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'css' => ['.woocommerce {{element}}' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
),
'star_color' => array(
'type' => 'color',
'label' => __pl('star_color'),
'css' => ['.woocommerce {{element}} .star-rating' => 'color: {{val}}'],
),
'star_emp_color' => array(
'type' => 'color',
'label' => __pl('empty_star_color'),
'css' => ['.woocommerce {{element}} .star-rating::before' => 'color: {{val}}'],
),
'review_link_color' => array(
'type' => 'color',
'label' => __pl('link_color'),
'css' => ['.woocommerce {{element}} .woocommerce-review-link' => 'color: {{val}}'],
),
'typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['.woocommerce {{element}} .woocommerce-review-link' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'star_size' => array(
'type' => 'slider',
'label' => __pl('star_size'),
'units' => [ 'px', 'em' ],
'step' => 0.1,
'css' => ['.woocommerce {{element}} .star-rating' => 'font-size:{{val}}'],
),
'space_between' => array(
'type' => 'slider',
'label' => __pl('space_between'),
'units' => [ 'px', 'em' ],
'step' => 0.1,
'css' => [
'.woocommerce:not(.rtl) {{element}} .star-rating' => 'margin-right: {{val}}',
'.woocommerce.rtl {{element}} .star-rating' => 'margin-left: {{val}}'
],
),
),
'review_link' => array(
'disable_review_link' => array(
'type' => 'checkbox',
'label' => __pl('disable_link'),
'css' => ['.woocommerce {{element}} .woocommerce-review-link' => 'display:none !important'],
),
'link_hover' => array(
'type' => 'radio',
'label' => __pl('state'),
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => array(
'disable_review_link' => '',
),
),
'link_color' => array(
'type' => 'color',
'label' => __pl('link_color'),
'css' => ['.woocommerce {{element}} .woocommerce-review-link' => 'color: {{val}}; transition: all 0.5s ;'],
'req' => array(
'disable_review_link' => '',
),
'show' => ['link_hover' => ''],
),
'link_hover_color' => array(
'type' => 'color',
'label' => __pl('link_color'),
'css' => ['.woocommerce {{element}} .woocommerce-review-link:hover' => 'color: {{val}} !important;'],
'req' => array(
'disable_review_link' => '',
),
'show' => ['link_hover' => 'hover'],
),
),
'styles' => [
'review_link' => __pl('Review Link'),
]
)
);
// Product Meta
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_product_meta', array(
'name' => __pl('product_meta'),
'group' => 'woocommerce',
'html' => '<div class=" product pagelayer-product-meta pagelayer-meta-{{display}}">{{product_meta}}</div>',
'params' => array(
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'css' => ['.woocommerce {{element}} .pagelayer-product-meta' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
),
'display' => array(
'type' => 'radio',
'label' => __pl('display'),
'css' => ['.woocommerce {{element}} .product_meta > span' => 'display: {{val}}'],
'list' => array(
'inline-block' => __pl('inline_block'),
'block' => __pl('block'),
),
),
'space_between' => array(
'type' => 'slider',
'label' => __pl('space_between'),
'step' => 0.1,
'css' => [
'.woocommerce {{element}} .pagelayer-product-meta:not(.pagelayer-meta-block) .product_meta > span:not(:first-child)' => 'margin-left: {{val}}px',
'.woocommerce {{element}} .pagelayer-product-meta.pagelayer-meta-block .product_meta > span:not(:last-child)' => 'margin-bottom: {{val}}px',
],
),
'meta_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .product_meta span' => 'color: {{val}}'],
),
'typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['.woocommerce {{element}} .product_meta span' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'link_color' => array(
'type' => 'color',
'label' => __pl('link_color'),
'css' => ['.woocommerce {{element}} .product_meta a' => 'color: {{val}}'],
),
'linl_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['.woocommerce {{element}} .product_meta a' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
),
)
);
// Product short description
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_product_short_desc', array(
'name' => __pl('product_short_desc'),
'group' => 'woocommerce',
'html' => '<div class=" product pagelayer-product-short-desc">{{product_short_desc}}</div>',
'params' => array(
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'css' => ['.woocommerce {{element}} .pagelayer-product-short-desc' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
),
'meta_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .pagelayer-product-short-desc *' => 'color: {{val}}'],
),
'typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['.woocommerce {{element}} .pagelayer-product-short-desc' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
),
)
);
// Products style
$products_style = array(
'column_gap' => array(
'type' => 'slider',
'label' => __pl('column_gap'),
'units' => ['px', '%'],
'screen' => 1,
'default' => 20,
'step' => 0.2,
'max' => 100,
'css' => ['{{element}} ul.products li.product' => 'margin-right: {{val}}'],
),
'row_gap' => array(
'type' => 'slider',
'label' => __pl('row_gap'),
'units' => ['px', '%'],
'screen' => 1,
'default' => 20,
'step' => 0.2,
'max' => 100,
'css' => ['{{element}} ul.products li.product' => 'margin-bottom: {{val}}'],
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'addAttr' => ['{{element}} .pagelayer-product-related-container' => 'pagelayer-content-align="{{align}}"'],
'css' => ['{{element}} ul.products li.product' => 'text-align:{{val}}'],
),
'img_lable' => array(
'type' => 'heading',
'label' => __pl('image'),
),
'img_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .attachment-woocommerce_thumbnail' => 'border-style: {{val}}',
],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'img_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .attachment-woocommerce_thumbnail' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'
],
'req' => [
'!img_border_type' => ''
],
),
'img_border_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .attachment-woocommerce_thumbnail' => 'border-color: {{val}}'],
'show' => ['img_border_type' => ''],
),
'img_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => ['{{element}} .attachment-woocommerce_thumbnail' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
],
),
'img_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => ['{{element}} .attachment-woocommerce_thumbnail' => 'margin-bottom: {{val}}'],
),
'title_lable' => array(
'type' => 'heading',
'label' => __pl('title'),
),
'title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => [
'{{element}} ul.products li.product .woocommerce-loop-product__title' => 'color: {{val}}',
'{{element}} ul.products li.product .woocommerce-loop-category__title' => 'color: {{val}}'
],
),
'title_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} ul.products li.product .woocommerce-loop-product__title' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'{{element}} ul.products li.product .woocommerce-loop-category__title' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'title_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => [
'{{element}} ul.products li.product .woocommerce-loop-product__title' => 'margin-bottom: {{val}}',
'{{element}} ul.products li.product .woocommerce-loop-category__title' => 'margin-bottom: {{val}}'
],
),
'rating_lable' => array(
'type' => 'heading',
'label' => __pl('stars_rating'),
),
'star_color' => array(
'type' => 'color',
'label' => __pl('star_color'),
'css' => ['{{element}} ul.products li.product .star-rating' => 'color: {{val}}'],
),
'empty_star_color' => array(
'type' => 'color',
'label' => __pl('empty_star_color'),
'css' => ['{{element}} ul.products li.product .star-rating::before' => 'color: {{val}}'],
),
'star_size' => array(
'type' => 'slider',
'label' => __pl('star_size'),
'max' => 5,
'step' => 0.1,
'css' => ['{{element}} ul.products li.product .star-rating' => 'font-size: {{val}}em'],
),
'star_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => ['{{element}} ul.products li.product .star-rating' => 'margin-bottom: {{val}}'],
),
'price_lable' => array(
'type' => 'heading',
'label' => __pl('price_style'),
),
'price_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => [
'{{element}} ul.products li.product .price' => 'color: {{val}}',
'{{element}} ul.products li.product .price ins' => 'color: {{val}}',
'{{element}} ul.products li.product .price ins .amount' => 'color: {{val}}',
],
),
'price_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} ul.products li.product .price' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'reg_price_lable' => array(
'type' => 'heading',
'label' => __pl('regular_price'),
),
'reg_price_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => [
'{{element}} ul.products li.product .price del .amount' => 'color:{{val}}',
'{{element}} ul.products li.product .price del' => 'color:{{val}}'
]
),
'reg_price_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} ul.products li.product .price del .amount' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'{{element}} ul.products li.product .price del' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'button_lable' => array(
'type' => 'heading',
'label' => __pl('button'),
),
'button_colors'=> array(
'type' => 'radio',
'label' => '',
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'btn_color'=> array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} ul.products li.product .button' => 'color:{{val}}'],
'show' => [ 'button_colors' => '' ],
),
'btn_bg_color'=> array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} ul.products li.product .button' => 'background-color:{{val}}'],
'show' => [ 'button_colors' => '' ],
),
'btn_border_color'=> array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} ul.products li.product .button' => 'border-color:{{val}}'],
'show' => [ 'button_colors' => '' ],
),
'btn_hover_color'=> array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} ul.products li.product .button:hover' => 'color:{{val}}'],
'show' => [ 'button_colors' => 'hover' ],
),
'btn_bg_hover_color'=> array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} ul.products li.product .button:hover' => 'background-color:{{val}}'],
'show' => [ 'button_colors' => 'hover' ],
),
'btn_border_hover_color'=> array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} ul.products li.product .button:hover' => 'border-color:{{val}}'],
'show' => [ 'button_colors' => 'hover' ],
),
'btnb_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} ul.products li.product .button' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'btn_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} ul.products li.product .button' => 'border-style: {{val}}',
],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'btn_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} ul.products li.product .button' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px',
],
'req' => [
'!btn_border_type' => ''
],
),
'btn_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => ['{{element}} ul.products li.product .button' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
],
),
'btn_text_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => ['{{element}} ul.products li.product .button' => 'padding: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
],
),
'btn_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => ['{{element}} ul.products li.product .button' => 'margin-top:{{val}}'],
),
'view_cart_lable' => array(
'type' => 'heading',
'label' => __pl('view_cart'),
),
'view_cart_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .added_to_cart' => 'color: {{val}}'],
),
'view_cart_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .added_to_cart' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
);
// Products heading style
$products_heading = array(
'heading_show'=> array(
'type' => 'checkbox',
'label' => __pl('heading_style'),
'default' => 'true',
'addAttr' => ['{{element}} .pagelayer-product-related-container' => 'pagelayer-heading-show="{{heading_show}}"'],
),
'heading_color'=> array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .products > h2' => 'color: {{val}}'],
'req' => ['heading_show' => 'true'],
),
'heading_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .products > h2' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => ['heading_show' => 'true'],
),
'heading_align'=> array(
'type' => 'radio',
'label' => __pl('alignment'),
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} .products > h2' => 'text-align: {{val}}'],
'req' => ['heading_show' => 'true'],
),
'heading_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => ['{{element}} .products > h2' => 'margin-bottom: {{val}}'],
'req' => ['heading_show' => 'true'],
),
);
// Products box style
$products_box = array(
'box_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} ul.products li.product' => 'border-style: {{val}}',
],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'box_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} ul.products li.product' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px',
],
'req' => [
'!box_border_type' => ''
],
),
'box_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => ['{{element}} ul.products li.product' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
],
),
'box_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => ['{{element}} ul.products li.product' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
],
),
'box_colors' => array(
'type' => 'radio',
'label' => '',
'list' => array(
'' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'box_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} ul.products li.product' => 'background-color: {{val}}'],
'show' => ['box_colors' => ''],
),
'box_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} ul.products li.product' => 'border-color: {{val}}'],
'show' => ['box_colors' => ''],
),
'box_shadow' => [
'type' => 'box_shadow',
'label' => __pl('shadow'),
'css' => ['{{element}} ul.products li.product' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}} !important;'],
'show' => ['box_colors' => ''],
],
'box_bg_hover_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} ul.products li.product:hover' => 'background-color: {{val}}'],
'show' => ['box_colors' => 'hover'],
),
'box_border_hover_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} ul.products li.product:hover' => 'border-color: {{val}}'],
'show' => ['box_colors' => 'hover'],
),
'box_hover_shadow' => [
'type' => 'box_shadow',
'label' => __pl('shadow'),
'css' => ['{{element}} ul.products li.product:hover' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}} !important;'],
'show' => ['box_colors' => 'hover'],
],
);
// Products sale flash style
$products_sale_flash = array(
'sale_flash' => array(
'type' => 'checkbox',
'label' => __pl('sale_flash'),
'default' => 'true',
'addAttr' => ['{{element}} .pagelayer-product-related-container' => 'pagelayer-sale-flash="{{sale_flash}}"'],
),
'flash_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} ul.products li.product span.onsale' => 'color: {{val}}'],
'req' => [ 'sale_flash' => 'true'],
),
'flash_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} ul.products li.product span.onsale' => 'background-color: {{val}}'],
'req' => [ 'sale_flash' => 'true'],
),
'flash_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} ul.products li.product span.onsale' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => [ 'sale_flash' => 'true'],
),
'flash_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => ['{{element}} .ul.products li.product span.onsale' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
],
'req' => [ 'sale_flash' => 'true'],
),
'flash_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'units' => [ 'px', '%' ],
'css' => ['{{element}} ul.products li.product span.onsale' => 'min-width: {{val}};'],
'req' => [ 'sale_flash' => 'true'],
),
'flash_height' => array(
'type' => 'slider',
'label' => __pl('height'),
'units' => [ 'px', '%' ],
'css' => ['{{element}} ul.products li.product span.onsale' => 'min-height: {{val}}; line-height: {{val}};'],
'req' => [ 'sale_flash' => 'true'],
),
'flash_distance' => array(
'type' => 'slider',
'label' => __pl('distance'),
'units' => [ 'px', '%' ],
'max' => 20,
'css' => ['{{element}} ul.products li.product span.onsale' => 'margin: {{val}};'],
'req' => [ 'sale_flash' => 'true'],
),
'flash_position' => array(
'type' => 'radio',
'label' => __pl('position'),
'list' => array(
'left' => __pl('left'),
'right' => __pl('right'),
),
'css' => ['{{element}} ul.products li.product span.onsale' => 'left:auto; right:auto; {{val}} : 0;'],
'req' => [ 'sale_flash' => 'true'],
),
);
// Product related
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_product_related', array(
'name' => __pl('related_upsell_products'),
'group' => 'woocommerce',
'html' => '<div class="pagelayer-product-related-container">
{{related_products}}
</div>',
'params' => array(
'select_product' => array(
'type' => 'select',
'label' => __pl('product_type'),
'default' => 'related',
'list' => array(
'related' => __pl('related'),
'upsell' => __pl('upsell'),
),
),
'posts_per_page' => array(
'type' => 'spinner',
'label' => __pl('products_per_page'),
'default' => 4,
'max' => 20,
'req' => ['select_product' => 'related'],
),
'columns' => array(
'type' => 'spinner',
'label' => __pl('columns'),
'screen' => 1,
'default' => 4,
'min' => 1,
'max' => 6,
),
'order_by' => array(
'type' => 'select',
'label' => __pl('order_by'),
'default' => 'date',
'list' => array(
'date' => __pl('date'),
'title' => __pl('title'),
'price' => __pl('price'),
'popularity' => __pl('popularity'),
'rating' => __pl('rating'),
'rand' => __pl('random'),
'menu_order' => __pl('menu_order'),
),
),
'order' => array(
'type' => 'select',
'label' => __pl('order'),
'default' => 'asc',
'list' => array(
'asc' => __pl('asc'),
'desc' => __pl('desc'),
),
),
),
'products_style' => $products_style,
'heading_style' => $products_heading,
'box_style' => $products_box,
'sale_flash_style' => $products_sale_flash,
'styles' =>[
'products_style' => __pl('products_style'),
'heading_style' => __pl('heading_styles'),
'box_style' => __pl('box_style'),
'sale_flash_style' => __pl('sale_flash_style'),
],
)
);
// woocommerce breadcrumb
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_woo_breadcrumb', array(
'name' => __pl('woo_breadcrumb'),
'group' => 'woocommerce',
'html' => '<div class="pagelayer-woo-breadcrumb-container">'. pagelayer_woo_breadcrumb() .'</div>',
'params' => array(
'color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .woocommerce-breadcrumb' => 'color:{{val}}'],
),
'link_color' => array(
'type' => 'color',
'label' => __pl('link_color'),
'css' => ['{{element}} .woocommerce-breadcrumb > a' => 'color:{{val}}'],
),
'typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .woocommerce-breadcrumb' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'css' => ['{{element}} .woocommerce-breadcrumb' => 'text-align:{{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
),
),
)
);
// Product pages
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_woo_pages', array(
'name' => __pl('woo_pages'),
'group' => 'woocommerce',
'html' => '<div class="pagelayer-product-pages-container">{{page_content}}</div>',
'params' => array(
'pages' => array(
'type' => 'select',
'label' => __pl('pages'),
'css' => ['{{element}} .woocommerce-breadcrumb' => 'color:{{val}}'],
'list' => array(
'' => __pl( 'Select' ),
'woocommerce_cart' => __pl('cart_page'),
//'product_page' => __pl('single_product_page'),
'woocommerce_checkout' => __pl('checkout_page'),
'woocommerce_order_tracking' => __pl('order_tracking_form'),
'woocommerce_my_account' => __pl('my_account'),
),
),
),
)
);
// Product pages
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_product_categories', array(
'name' => __pl('product_categories'),
'group' => 'woocommerce',
'html' => '<div class="pagelayer-product-categories-container">{{product_categories}}</div>',
'params' => array(
'columns' => array(
'type' => 'spinner',
'label' => __pl('columns'),
'screen' => 1,
'default' => 4,
'max' => 12,
),
'number' => array(
'type' => 'spinner',
'label' => __pl('limit'),
'default' => 4,
),
'source' => array(
'type' => 'select',
'label' => __pl('source'),
'list' => array(
'' => __pl('show_all'),
'by_id' => __pl('manual_selection'),
'by_parent' => __pl('by_parent'),
'current_subcategories' => __pl('current_subcategories'),
),
),
'by_id' => array(
'type' => 'multiselect',
'label' => __pl('categories'),
'list' => pagelayer_get_product_cat(),
'req' => ['source' => 'by_id'],
),
'parent' => array(
'type' => 'select',
'label' => __pl('parent'),
'list' => [ '0' => __pl('only_top_level') ] + pagelayer_get_product_cat(),
'req' => ['source' => 'by_parent'],
),
'hide_empty' => array(
'type' => 'checkbox',
'label' => __pl('hide_empty'),
),
'orderby' => array(
'type' => 'select',
'label' => __pl('order_by'),
'default' => 'name',
'list' => array(
'name' => __pl('name'),
'slug' => __pl('slug'),
'description' => __pl('description'),
'count' => __pl('count'),
),
),
'order' => array(
'type' => 'select',
'label' => __pl('order'),
'default' => 'desc',
'list' => array(
'asc' => __pl('asc'),
'desc' => __pl('desc'),
),
),
),
'products_style' => array(
'column_gap' => array(
'type' => 'slider',
'label' => __pl('column_gap'),
'units' => ['px', '%'],
'screen' => 1,
'default' => 20,
'step' => 0.2,
'max' => 100,
'css' => ['{{element}} ul.products li.product' => 'margin-right: {{val}}'],
),
'row_gap' => array(
'type' => 'slider',
'label' => __pl('row_gap'),
'units' => ['px', '%'],
'screen' => 1,
'default' => 20,
'step' => 0.2,
'max' => 100,
'css' => ['{{element}} ul.products li.product' => 'margin-bottom: {{val}}'],
),
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} ul.products li.product' => 'text-align:{{val}}'],
),
'img_lable' => array(
'type' => 'heading',
'label' => __pl('image'),
),
'img_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} a > img' => 'border-style: {{val}}',
],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'img_border_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} a > img' => 'border-color: {{val}}'],
'show' => ['!img_border_type' => ''],
),
'img_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} a > img' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'
],
'req' => [
'!img_border_type' => ''
],
),
'img_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => ['{{element}} a > img' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
],
),
'img_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => ['{{element}} a > img' => 'margin-bottom: {{val}}'],
),
'title_lable' => array(
'type' => 'heading',
'label' => __pl('title'),
),
'title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .woocommerce-loop-category__title' => 'color: {{val}}'],
),
'title_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .woocommerce-loop-category__title' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'title_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'units' => [ 'px', '%' ],
'screen' => 1,
'css' => [
'{{element}} .woocommerce-loop-category__title' => 'margin-bottom: {{val}}'
],
),
'count_lable' => array(
'type' => 'heading',
'label' => __pl('count'),
),
'count_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .woocommerce-loop-category__title .count' => 'color: {{val}}'],
),
'count_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .woocommerce-loop-category__title .count' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
),
'styles' =>[
'products_style' => __pl('products_style'),
],
)
);
// Archives Product
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_product_archives', array(
'name' => __pl('product_archives'),
'group' => 'woocommerce',
'html' => '<div class="pagelayer-product-archives-container">{{product_archives}}</div>',
'params' => array(
'allow_order' => array(
'type' => 'checkbox',
'label' => __pl('allow_order'),
'default' => 'true',
),
'show_result' => array(
'type' => 'checkbox',
'label' => __pl('show_result_counter'),
'default' => 'true',
),
'no_found' => array(
'type' => 'textarea',
'label' => __pl('no_found_msg'),
'default' => __pl('Products not found.'),
),
),
'products_style' => $products_style,
'box_style' => $products_box,
'sale_flash_style' => $products_sale_flash,
'pagination_style' => array(
'pagination_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'css' => ['{{element}} nav.woocommerce-pagination' => 'margin-top:{{val}}px'],
),
'pagination_border' => array(
'type' => 'checkbox',
'label' => __pl('border'),
//'css' => ['{{element}} nav.woocommerce-pagination' => 'margin-top:{{val}}px'],
),
'pagination_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => [
'{{element}}nav.woocommerce-pagination ul' => 'border-color:{{val}}',
'{{element}} nav.woocommerce-pagination ul li' => 'border-right-color: {{val}}; border-left-color: {{val}}',
],
),
'pagination_padding' => array(
'type' => 'slider',
'label' => __pl('padding'),
'screen' => 1,
'units' => [ 'em' ],
'min' => 0,
'max' => 4,
'step' => 0.1,
'css' => [
'{{element}} nav.woocommerce-pagination ul li a' => 'padding: {{val}}',
'{{element}} nav.woocommerce-pagination ul li span' => 'padding: {{val}}'
],
),
'pagination_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} nav.woocommerce-pagination' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'pagination_colors' => array(
'type' => 'radio',
'label' => __pl('colors'),
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
'active' => __pl('active'),
),
),
'pagination_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} nav.woocommerce-pagination ul li a' => 'color:{{val}}'],
'show' => ['pagination_colors' => 'normal'],
),
'pagination_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} nav.woocommerce-pagination ul li a' => 'background-color:{{val}}'],
'show' => ['pagination_colors' => 'normal'],
),
'pagination_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} nav.woocommerce-pagination ul li a:hover' => 'color:{{val}}'],
'show' => ['pagination_colors' => 'hover'],
),
'pagination_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} nav.woocommerce-pagination ul li a:hover' => 'background-color:{{val}}'],
'show' => ['pagination_colors' => 'hover'],
),
'pagination_color_active' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => [ '{{element}} nav.woocommerce-pagination ul li span.current' => 'color:{{val}};' ],
'show' => ['pagination_colors' => 'active'],
),
'pagination_bg_color_active' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} nav.woocommerce-pagination ul li span.current' => 'background-color:{{val}}'],
'show' => ['pagination_colors' => 'active'],
),
),
'no_found_style' => array(
'nf_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-product-no-found' => 'color:{{val}}'],
),
'nf_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .pagelayer-product-no-found' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
),
'styles' =>[
'products_style' => __pl('products_style'),
'box_style' => __pl('box_style'),
'pagination_style' => __pl('pagination_style'),
'sale_flash_style' => __pl('sale_flash_style'),
'no_found_style' => __pl('no_found_style'),
],
)
);
// Products
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_products', array(
'name' => __pl('products'),
'group' => 'woocommerce',
'html' => '<div class="pagelayer-products-container">{{products_content}}</div>',
'params' => array(
'columns' => array(
'type' => 'spinner',
'label' => __pl('columns'),
'screen' => 1,
'default' => 4,
'max' => 12,
),
'rows' => array(
'type' => 'spinner',
'label' => __pl('rows'),
'default' => 4,
),
'paginate' => array(
'type' => 'checkbox',
'label' => __pl('pagination'),
),
'allow_order' => array(
'type' => 'checkbox',
'label' => __pl('allow_order'),
'req' => ['paginate' => 'true'],
),
'show_result' => array(
'type' => 'checkbox',
'label' => __pl('show_result_counter'),
'req' => ['paginate' => 'true'],
),
'no_found' => array(
'type' => 'textarea',
'label' => __pl('no_found_msg'),
'default' => __pl('Products not found.'),
),
),
'query' => array(
'source' => array(
'type' => 'select',
'label' => __pl('source'),
'default' => 'recent_products',
'list' => array(
'pagelayer_current_query' => __pl('currunt_query'),
'recent_products' => __pl('recent_products'),
'sale_products' => __pl('sale_products'),
'best_selling_products' => __pl('best_selling_products'),
'top_rated_products' => __pl('top_rated_products'),
'featured_products' => __pl('featured_product'),
'by_id' => __pl('manual_selection'),
),
),
'ids' => array(
'type' => 'multiselect',
'label' => __pl('products'),
'list' => pagelayer_post_list_by_type('product'),
'req' => ['source' => 'by_id'],
),
'orderby' => array(
'type' => 'select',
'label' => __pl('order_by'),
'default' => 'date',
'list' => array(
'date' => __pl('date'),
'title' => __pl('title'),
'price' => __pl('price'),
'popularity' => __pl('popularity'),
'rating' => __pl('rating'),
'rand' => __pl('rand'),
'menu_order' => __pl('menu_order'),
),
),
'order' => array(
'type' => 'select',
'label' => __pl('order'),
'default' => 'ASC',
'list' => array(
'ASC' => __pl('ASC'),
'DESC' => __pl('DESC'),
),
),
),
'products_style' => $products_style,
'box_style' => $products_box,
'sale_flash_style' => $products_sale_flash,
'pagination_style' => array(
'pagination_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'css' => ['{{element}} nav.woocommerce-pagination' => 'margin-top:{{val}}px'],
),
'pagination_border' => array(
'type' => 'checkbox',
'label' => __pl('border'),
//'css' => ['{{element}} nav.woocommerce-pagination' => 'margin-top:{{val}}px'],
),
'pagination_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => [
'{{element}}nav.woocommerce-pagination ul' => 'border-color:{{val}}',
'{{element}} nav.woocommerce-pagination ul li' => 'border-right-color: {{val}}; border-left-color: {{val}}',
],
),
'pagination_padding' => array(
'type' => 'slider',
'label' => __pl('padding'),
'screen' => 1,
'units' => [ 'em' ],
'min' => 0,
'max' => 4,
'step' => 0.1,
'css' => [
'{{element}} nav.woocommerce-pagination ul li a' => 'padding: {{val}}',
'{{element}} nav.woocommerce-pagination ul li span' => 'padding: {{val}}'
],
),
'pagination_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} nav.woocommerce-pagination' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'pagination_colors' => array(
'type' => 'radio',
'label' => __pl('colors'),
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
'active' => __pl('active'),
),
),
'pagination_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} nav.woocommerce-pagination ul li a' => 'color:{{val}}'],
'show' => ['pagination_colors' => 'normal'],
),
'pagination_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} nav.woocommerce-pagination ul li a' => 'background-color:{{val}}'],
'show' => ['pagination_colors' => 'normal'],
),
'pagination_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} nav.woocommerce-pagination ul li a:hover' => 'color:{{val}}'],
'show' => ['pagination_colors' => 'hover'],
),
'pagination_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} nav.woocommerce-pagination ul li a:hover' => 'background-color:{{val}}'],
'show' => ['pagination_colors' => 'hover'],
),
'pagination_color_active' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => [ '{{element}} nav.woocommerce-pagination ul li span.current' => 'color:{{val}};' ],
'show' => ['pagination_colors' => 'active'],
),
'pagination_bg_color_active' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} nav.woocommerce-pagination ul li span.current' => 'background-color:{{val}}'],
'show' => ['pagination_colors' => 'active'],
),
),
'no_found_style' => array(
'nf_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-product-no-found' => 'color:{{val}}'],
),
'nf_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .pagelayer-product-no-found' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
),
'styles' =>[
'query' => __pl('query'),
'products_style' => __pl('products_style'),
'box_style' => __pl('box_style'),
'pagination_style' => __pl('pagination_style'),
'sale_flash_style' => __pl('sale_flash_style'),
'no_found_style' => __pl('no_found_style'),
],
)
);
// Product Archives description
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_product_archives_desc', array(
'name' => __pl('product_archives_desc'),
'group' => 'woocommerce',
'html' => '<div class="pagelayer-archives-desc-container">'. pagelayer_get_product_archives_desc() .'</div>',
'params' => array(
'align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-archives-desc-container' => 'text-align:{{val}}'],
),
'color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .woocommerce-product-details__short-description' => 'color:{{val}}'],
),
'typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .woocommerce-product-details__short-description' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
),
)
);
// Product Additional Information
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_product_addi_info', array(
'name' => __pl('product_addi_info'),
'group' => 'woocommerce',
'html' => '<div class="pagelayer-addi-info-container product">{{product_additional_info}}</div>',
'params' => array(
'color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .shop_attributes' => 'color:{{val}}'],
),
'typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'.woocommerce {{element}} .shop_attributes' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'heading' => array(
'type' => 'checkbox',
'label' => __pl('heading_style'),
'default' => 'true',
'addAttr' => ['{{element}} .pagelayer-addi-info-container' => 'pagelayer-show-heading="{{heading}}"'],
),
'heading_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-addi-info-container h2' => 'color:{{val}}'],
'req' => ['heading' => 'true'],
),
'heading_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .pagelayer-addi-info-container h2' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
'req' => ['heading' => 'true'],
),
),
)
);
// Product Additional Information
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_product_data_tabs', array(
'name' => __pl('product_data_tabs'),
'group' => 'woocommerce',
'html' => '<div class="pagelayer-data-tabs-container product">{{product_data_tab}}</div>',
'params' => array(
'tabs_colors' => array(
'type' => 'radio',
'label' => __pl('colors'),
'list' => array(
'normal' => __pl('normal'),
'active' => __pl('active'),
),
),
'tabs_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .woocommerce-tabs ul.wc-tabs li:not(.active) a' => 'color:{{val}} !important;'],
'show' => ['tabs_colors' => 'normal'],
),
'tabs_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['.woocommerce {{element}} .woocommerce-tabs ul.wc-tabs li:not(.active)' => 'background-color:{{val}} !important;'],
'show' => ['tabs_colors' => 'normal'],
),
'tabs_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => [
'.woocommerce {{element}} .woocommerce-tabs ul.wc-tabs li:not(.active)' => 'border-color:{{val}}',
'.woocommerce {{element}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'border-color:{{val}}'
],
'show' => ['tabs_colors' => 'normal'],
),
'tabs_color_active' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .woocommerce-tabs ul.wc-tabs li.active a' => 'color:{{val}} !important;'],
'show' => ['tabs_colors' => 'active'],
),
'tabs_bg_color_active' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['.woocommerce {{element}} .woocommerce-tabs ul.wc-tabs li.active' => 'background-color:{{val}} !important;'],
'show' => ['tabs_colors' => 'active'],
),
'tabs_border_color_active' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => [
'.woocommerce {{element}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'border-color: {{val}}',
'.woocommerce {{element}} .woocommerce-tabs ul.wc-tabs li.active' => 'border-color: {{val}} !important;'
],
'show' => ['tabs_colors' => 'active'],
),
'tabs_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => [
'.woocommerce {{element}} .woocommerce-tabs ul.wc-tabs li' => 'border-style: {{val}} !important',
],
'list' => [
'' => __pl('default'),
'none' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => ['tabs_colors' => 'normal'],
),
'tabs_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'css' => [
'.woocommerce {{element}} .woocommerce-tabs ul.wc-tabs li' => 'border-width: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px !important;',
],
'req' => [
'!tabs_border_type' => ['', 'none'],
],
),
'tabs_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'.woocommerce {{element}} .woocommerce-tabs ul.wc-tabs li a' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'border_radius' => array(
'type' => 'slider',
'label' => __pl('border_radius'),
'css' => ['.woocommerce {{element}} .woocommerce-tabs ul.wc-tabs li' => 'border-radius: {{val}}px !important;'],
),
),
'panel_style' => array(
'panel_color' => array(
'type' => 'color',
'label' => __pl('desc_color'),
'css' => ['.woocommerce {{element}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'color: {{val}}'],
),
'panel_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'.woocommerce {{element}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'panel_heading' => array(
'type' => 'heading',
'label' => __pl('heading_style'),
),
'panel_heading_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['.woocommerce {{element}} .woocommerce-tabs .woocommerce-Tabs-panel h2' => 'color: {{val}}'],
),
'panel_heading_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'.woocommerce {{element}} .woocommerce-tabs .woocommerce-Tabs-panel h2' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'panel_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['.woocommerce {{element}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'border-style: {{val}}'],
'list' => [
'' => __pl('default'),
'none' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'panel_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'default' => '#42414f',
'css' => ['.woocommerce {{element}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'border-color: {{val}} !important;'],
'req' => array(
'!panel_border_type' => ['none'],
),
),
'panel_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'css' => ['.woocommerce {{element}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'border-width: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px !important; margin-top: -{{val[0]}}px !important;'],
'req' => [
'!panel_border_type' => ['none'],
],
),
'panel_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'css' => [
'.woocommerce {{element}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;',
'.woocommerce {{element}} .woocommerce-tabs ul.wc-tabs' => 'margin-left: {{val[0]}}px; margin-right: {{val[1]}};'
],
),
'panel_shadow' => array(
'type' => 'box_shadow',
'label' => __pl('box_shadow'),
'css' => ['.woocommerce {{element}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}};'],
),
),
'styles' => array(
'panel_style' => __pl('panel_style'),
),
)
);
// WooCommerce Menu cart
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_woo_menu_cart', array(
'name' => __pl('woo_menu_cart'),
'group' => 'woocommerce',
'html' => '<div class="pagelayer-woo-menu-cart-container">{{cart_html}}</div>',
'params' => array(
'icon_type' => array(
'type' => 'select',
'label' => __pl('icon'),
'default' => 'fa fa-shopping-cart',
'list' => array(
'fa fa-shopping-cart' => __pl('cart'),
'fa fa-shopping-basket' => __pl('basket'),
'fa fa-shopping-bag' => __pl('bag'),
),
),
'items_indicator' => array(
'type' => 'select',
'label' => __pl('items_indicator'),
'default' => 'bubble',
'list' => array(
'' => __pl('none'),
'bubble' => __pl('bubble'),
'plain' => __pl('plain'),
),
'addAttr' => [ '{{element}} .pagelayer-menu-cart-toggle' => 'pagelayer-icon="{{items_indicator}}"'],
),
'empty_indicator' => array(
'type' => 'checkbox',
'label' => __pl('empty_indicator'),
'addAttr' => ['{{element}} .pagelayer-menu-cart-toggle' => 'pagelayer-empty-indicator="{{empty_indicator}}"'],
),
'sub_total' => array(
'type' => 'checkbox',
'label' => __pl('hide_sub_total'),
'css' => ['{{element}} .pagelayer-cart-button-text' => 'display:none;']
),
'cart_align' => array(
'type' => 'radio',
'label' => __pl('alignment'),
'default' => 'left',
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right'),
),
'css' => [
'{{element}} .pagelayer-menu-cart-toggle' => 'text-align:{{val}}'
],
),
),
'mini_cart_style' => array(
'mini_cart_colors' => array(
'type' => 'radio',
'label' => '',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
),
'mini_cart_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-cart-button' => 'color:{{val}}'],
'show' => ['mini_cart_colors' => 'normal'],
),
'cart_icon_color' => array(
'type' => 'color',
'label' => __pl('cart_icon_color'),
'css' => ['{{element}} .pagelayer-cart-button-icon' => 'color:{{val}}'],
'show' => ['mini_cart_colors' => 'normal'],
),
'mini_cart_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-cart-button' => 'background-color:{{val}}'],
'show' => ['mini_cart_colors' => 'normal'],
),
'mini_cart_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} .pagelayer-cart-button' => 'border-color:{{val}}'],
'show' => ['mini_cart_colors' => 'normal'],
),
'mini_cart_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-cart-button:hover' => 'color:{{val}}'],
'show' => ['mini_cart_colors' => 'hover'],
),
'cart_icon_color_hover' => array(
'type' => 'color',
'label' => __pl('cart_icon_color'),
'css' => ['{{element}} .pagelayer-cart-button-icon:hover' => 'color:{{val}}'],
'show' => ['mini_cart_colors' => 'hover'],
),
'cart_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-cart-button:hover' => 'background-color:{{val}}'],
'show' => ['mini_cart_colors' => 'hover'],
),
'cart_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} .pagelayer-cart-button:hover' => 'border-color:{{val}}'],
'show' => ['mini_cart_colors' => 'hover'],
),
'cart_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-cart-button' => 'border-style: {{val}}'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'cart_border_width' => array(
'type' => 'slider',
'label' => __pl('border_width'),
'css' => ['{{element}} .pagelayer-cart-button' => 'border-width:{{val}}px'],
'req' => ['!cart_border_type' => ''],
),
'cart_border_radius' => array(
'type' => 'slider',
'label' => __pl('border_radius'),
'units' => [ 'px', 'em', '%' ],
'css' => ['{{element}} .pagelayer-cart-button' => 'border-radius:{{val}}'],
),
'cart_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .pagelayer-cart-button' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'mini_cart_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'units' => [ 'px', 'em', '%' ],
'css' => ['{{element}} .pagelayer-cart-button' => 'padding: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
),
'mini_cart_icon' => array(
'type' => 'heading',
'label' => __pl('icon'),
),
'mini_icon_size' => array(
'type' => 'slider',
'label' => __pl('size'),
'units' => [ 'px', 'em' ],
'css' => ['{{element}} .pagelayer-cart-button-icon' => 'font-size:{{val}}'],
),
'mini_icon_spacing' => array(
'type' => 'slider',
'label' => __pl('spacing'),
'units' => [ 'px', 'em' ],
'min' => 0,
'max' => 50,
'css' => [
'body:not(.rtl) {{element}} .pagelayer-cart-button-text' => 'margin-right: {{val}}',
'body.rtl {{element}} .pagelayer-cart-button-text' => 'margin-left: {{val}}',
],
),
'mini_bubble_icon' => array(
'type' => 'heading',
'label' => __pl('bubble'),
'req' => ['items_indicator' => 'bubble'],
),
'bubble_colors' => array(
'type' => 'radio',
'label' => '',
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => ['items_indicator' => 'bubble'],
),
'bubble_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} [pagelayer-icon="bubble"] .pagelayer-cart-button-icon[data-counter]:before' => 'color:{{val}}'],
'show' => ['bubble_colors' => 'normal'],
),
'bubble_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} [pagelayer-icon="bubble"] .pagelayer-cart-button-icon[data-counter]:before' => 'background-color:{{val}}'],
'show' => ['bubble_colors' => 'normal'],
),
'bubble_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} [pagelayer-icon="bubble"] .pagelayer-cart-button-icon[data-counter]:hover:before' => 'color:{{val}}'],
'show' => ['bubble_colors' => 'hover'],
),
'bubble_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} [pagelayer-icon="bubble"] .pagelayer-cart-button-icon[data-counter]:hover:before' => 'background-color:{{val}}'],
'show' => ['bubble_colors' => 'hover'],
),
),
'container_style' => array(
'container_position' => array(
'type' => 'select',
'label' => __pl('container_position'),
'default' => 'fixed_right',
'list' => array(
'fixed_right' => __pl('fixed_right'),
'fixed_left' => __pl('fixed_left'),
'dropdown' => __pl('dropdown'),
),
'addAttr' => [ '{{element}} .pagelayer-woo-menu-cart-container' => 'pagelayer-container-position="{{container_position}}"'],
),
'container_align' => array(
'type' => 'radio',
'label' => __pl('position'),
'default' => 'left',
'list' => array(
'left' => __pl('left'),
'right' => __pl('right'),
),
'css' => ['{{element}} .pagelayer-menu-cart-container' => '{{val}}:0 !important;'],
'req' => ['container_position' => 'dropdown'],
),
'cart_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-menu-cart-container' => 'color:{{val}}']
),
'cart_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-menu-cart-container' => 'background-color:{{val}}']
),
'container_close' => array(
'type' => 'slider',
'label' => __pl('container_close_size'),
'css' => ['{{element}} .pagelayer-menu-cart-close' => 'font-size:{{val}}px;']
),
'container_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'screen' => 1,
'units' => ['px', '%'],
'css' => ['{{element}} .pagelayer-menu-cart-container' => 'width:{{val}};']
),
'sub_total_label' => array(
'type' => 'heading',
'label' => __pl('sub_total'),
),
'sub_total_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .woocommerce-mini-cart__total' => 'color: {{val}}'],
),
'sub_total_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .woocommerce-mini-cart__total' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
),
'products_style' => array(
'products_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .woocommerce-mini-cart > .woocommerce-mini-cart-item' => 'color:{{val}}']
),
'products_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .woocommerce-mini-cart > .woocommerce-mini-cart-item' => 'background-color:{{val}}']
),
'products_list_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'units' => [ 'px', 'em'],
'css' => ['{{element}} .woocommerce-mini-cart > .woocommerce-mini-cart-item' => 'padding: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important;'],
),
'img_label' => array(
'type' => 'heading',
'label' => __pl('image'),
),
'products_img_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'default' => '50px',
'units' => ['px', 'em', '%'],
'css' => ['{{element}} .woocommerce-mini-cart-item img' => 'width: {{val}}'],
),
'title_label' => array(
'type' => 'heading',
'label' => __pl('product_title'),
),
'products_title_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .woocommerce-mini-cart-item a' => 'color: {{val}}'],
),
'products_title_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .woocommerce-mini-cart-item a' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'price_label' => array(
'type' => 'heading',
'label' => __pl('product_price'),
),
'products_price_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .woocommerce-mini-cart-item .quantity' => 'color: {{val}}'],
),
'products_price_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .woocommerce-mini-cart-item .quantity' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'remove_label' => array(
'type' => 'heading',
'label' => __pl('remove_items'),
),
'remove_icon_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .remove_from_cart_button' => 'color: {{val}} !important'],
),
'remove_icon_size' => array(
'type' => 'slider',
'label' => __pl('size'),
'css' => ['{{element}} .remove_from_cart_button' => 'font-size: {{val}}px'],
),
),
'buttons_style' => array(
'button_display' => array(
'type' => 'select',
'label' => __pl('display'),
'default' => 'inline',
'list' => array(
'inline' => __pl('inline'),
'block' => __pl('block'),
),
'css' => ['{{element}} .woocommerce-mini-cart__buttons a' => 'display: {{val}}'],
'addAttr' => ['{{element}} .woocommerce-mini-cart__buttons' => 'pagelayer-display="{{button_display}}"'],
),
'space_between_btn' => array(
'type' => 'slider',
'label' => __pl('space_between'),
'default' => 5,
'css' => [
'{{element}} .woocommerce-mini-cart__buttons[pagelayer-display="inline"] a' => 'margin-left: {{val}}px',
'{{element}} .woocommerce-mini-cart__buttons[pagelayer-display="block"] a' => 'margin-bottom: {{val}}px'
],
),
'btn_padding' => array(
'type' => 'padding',
'label' => __pl('padding'),
'units' => [ 'px', 'em'],
'default' => '5,5,5,5',
'css' => ['{{element}} .woocommerce-mini-cart__buttons a' => 'padding: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}} !important;'],
),
'btn_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => [
'{{element}} .woocommerce-mini-cart__buttons' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'
],
),
'btn_border_radius' => array(
'type' => 'slider',
'label' => __pl('border_radius'),
'units' => [ 'px', 'em'],
'default' => '50',
'css' => ['{{element}} .woocommerce-mini-cart__buttons a' => 'border-radius: {{val}} !important'],
),
'btn_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '#ffffff',
'css' => ['{{element}} .woocommerce-mini-cart__buttons a' => 'color: {{val}}'],
),
'btn_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#585757',
'css' => ['{{element}} .woocommerce-mini-cart__buttons a' => 'background-color: {{val}}'],
),
'btn_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .woocommerce-mini-cart__buttons a' => 'border-style: {{val}} !important'],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'btn_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'default' => '#42414f',
'css' => ['{{element}} .woocommerce-mini-cart__buttons a' => 'border-color: {{val}} !important'],
'req' => array(
'!btn_border_type' => ''
),
),
'btn_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .woocommerce-mini-cart__buttons a' => 'border-width: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px !important'],
'req' => [
'!btn_border_type' => ''
],
),
),
'styles' => array(
'mini_cart_style' => __pl('mini_cart_style'),
'container_style' => __pl('container_style'),
'products_style' => __pl('products_style'),
'buttons_style' => __pl('buttons_style'),
),
)
);
}// class_exists('woocommerce') end
// Popup Settings
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_popup', array(
'name' => __pl('Popup Layout'),
'group' => 'other',
'not_visible' => 1,
'no_gt' => 1,
'icon' => 'fas fa-sort-amount-up-alt',
'overide_css_selector' => '[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-modal-content',
'hide_active' => 1,
'skip_props_cat' => ['position_styles', 'animation_styles', 'responsive_styles'],
'skip_props' => ['ele_zindex',
'ele_shadow', 'border_shadow_hover',
'hide_desktop', 'hide_tablet', 'hide_mobile', 'ele_sticky_pos'],
'params' => array(
'post_popup_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'default' => '50',
'screen' => 1,
'units' => ['%', 'px'],
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-modal-content' => 'width:{{val}}'],
),
'post_popup_height' => array(
'type' => 'slider',
'label' => __pl('height'),
'screen' => 1,
'units' => ['%', 'px', 'vh'],
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-modal-content' => 'height:{{val}}'],
),
'popup_position' => array(
'type' => 'heading',
'label' => __pl('position'),
),
'popup_hori_position' => array(
'type' => 'radio',
'label' => __pl('horizontal'),
'list' => array(
'flex-start' => __pl('left'),
'center' => __pl('center'),
'flex-end' => __pl('right'),
),
'css' => ['[pagelayer-popup-id="{{ele_id}}"]' => 'justify-content:{{val}}'],
),
'popup_ver_position' => array(
'type' => 'radio',
'label' => __pl('vertical'),
'list' => array(
'flex-start' => __pl('top'),
'center' => __pl('center'),
'flex-end' => __pl('bottom'),
),
'css' => ['[pagelayer-popup-id="{{ele_id}}"]' => 'align-items:{{val}}'],
),
'popup_animation' => array(
'type' => 'select',
'label' => __pl('animation'),
'default' => '',
'addClass' => ['{{val}}',( !pagelayer_is_live() ? 'pagelayer-wow' : '' )],
'addAttr' => 'data-popup_animation="{{popup_animation}}',
'list' => $pagelayer->anim_in_options,
),
'popup_animation_delay' => [
'type' => 'spinner',
'label' => __pl('animation_delay'),
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-modal-content' => '-webkit-animation-delay: {{val}}ms; animation-delay: {{val}}ms;'],
'default' => 600,
'min' => 0,
'max' => 90000,
'step' => 100,
'req' => [
'!popup_animation' => ''
]
],
),
'popup_styles' => array(
'popup_content_back' => array(
'type' => 'radio',
'label' => __pl('bg_color'),
'list' => array(
'color' => __pl('color'),
'gradient' => __pl('gradient'),
),
),
'popup_content_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-modal-content' => 'background-color:{{val}}'],
'req' => [ 'popup_content_back' => 'color'],
),
'popup_content_bg_gradient' => [
'type' => 'gradient',
'label' => '',
'default' => '150,#44d3f6ff,23,#72e584ff,45,#2ca4ebff,100',
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-modal-content' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%);'],
'req' => ['popup_content_back' => 'gradient'],
],
'popup_border_type' => [
'type' => 'select',
'label' => __pl('border_type'),
'screen' => 1,
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-modal-content' => 'border-style: {{val}}'],
],
'popup_border_width' => [
'type' => 'padding',
'label' => __pl('border_width'),
'default' => '1,1,1,1',
'units' => ['px', 'em'],
'screen' => 1,
'req' => [
'!popup_border_type' => ''
],
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-modal-content' => 'border-top-width: {{val[0]}}; border-right-width: {{val[1]}}; border-bottom-width: {{val[2]}}; border-left-width: {{val[3]}}'],
],
'popup_border_color' => [
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#CCC',
'screen' => 1,
'req' => [
'!popup_border_type' => ''
],
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-modal-content' => 'border-color: {{val}}'],
],
'popup_border_radius' => [
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => ['px', 'em', '%'],
'screen' => 1,
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-modal-content' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
],
'popup_shadow' => [
'type' => 'box_shadow',
'label' => __pl('shadow'),
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-modal-content' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[4]}}px {{val[3]}} {{val[5]}} !important;'],
]
),
'overlay' => array(
'popup_overlay' => array(
'type' => 'checkbox',
'label' => __pl('enable_overlay'),
'default' => true,
'css' => ['[pagelayer-popup-id="{{ele_id}}"]' => 'pointer-events: all'],
),
'popup_overlay_back' => array(
'type' => 'radio',
'label' => __pl('bg_color'),
'default' => 'bg_color',
'list' => array(
'bg_color' => __pl('color'),
'gradient' => __pl('gradient'),
),
'req' => [ 'popup_overlay' => 'true'],
),
'popup_overlay_bg' => array(
'type' => 'color',
'default' => '#000000cc',
'label' => __pl('bg_color'),
'css' => ['[pagelayer-popup-id="{{ele_id}}"]' => 'background-color:{{val}}'],
'req' => [ 'popup_overlay_back' => 'bg_color', 'popup_overlay' => 'true'],
),
'popup_overlay_bg_gradient' => [
'type' => 'gradient',
'label' => '',
'default' => '150,#44d3f6ff,23,#72e584ff,45,#2ca4ebff,100',
'css' => ['[pagelayer-popup-id="{{ele_id}}"]' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%);'],
'req' => ['popup_overlay_back' => 'gradient', 'popup_overlay' => 'true'],
],
),
'close_button' => array(
'popup_overlay_close' => array(
'type' => 'checkbox',
'label' => __pl('close_by_overlay'),
'addAttr' => 'data-overlay_close="{{popup_overlay_close}}"',
'css' => ['[pagelayer-popup-id="{{ele_id}}"]' => 'pointer-events: all'],
),
'popup_sel_close' => array(
'type' => 'checkbox',
'label' => __pl('close_by_selector'),
),
'popup_selector_close' => array(
'type' => 'text',
'label' => __pl('ele_selector'),
'addAttr' => 'data-selector_close="{{popup_selector_close}}"',
'req' => [ 'popup_sel_close' => 'true'],
),
'popup_cbtn' => array(
'type' => 'checkbox',
'label' => __pl('close_button'),
'default' => true,
'addAttr' => 'data-popup_cbtn="{{popup_cbtn}}"',
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close' => 'display:block'],
),
'popup_cbtn_position' => array(
'type' => 'select',
'label' => __pl('position'),
'default' => 'inside',
'list' => array(
'inside' => __pl('inside'),
'outside' => __pl('outside'),
),
'show' => [ 'popup_cbtn' => 'true'],
'addAttr' => 'data-popup_cbtn_position="{{popup_cbtn_position}}"',
),
'popup_cbtn_v_position' => array(
'type' => 'slider',
'label' => __pl('verticle_postion'),
'screen' => 1,
'units' => ['%', 'px'],
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close' => 'top:{{val}}'],
'show' => [ 'popup_cbtn' => 'true'],
),
'popup_cbtn_h_position' => array(
'type' => 'slider',
'label' => __pl('horizontal_pos'),
'screen' => 1,
'units' => ['%', 'px'],
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close' => 'left:{{val}}'],
'show' => [ 'popup_cbtn' => 'true'],
),
'popup_cbtn_size' => array(
'type' => 'slider',
'label' => __pl('size'),
'screen' => 1,
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close' => 'font-size:{{val}}px'],
'show' => [ 'popup_cbtn' => 'true'],
),
'popup_cbtn_colors' => array(
'type' => 'radio',
'label' => __pl('colors'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
'show' => [ 'popup_cbtn' => 'true'],
),
'popup_cbtn_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close' => 'color:{{val}}'],
'show' => [ 'popup_cbtn_colors' => 'normal', 'popup_cbtn' => 'true'],
),
'popup_cbtn_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close' => 'background-color:{{val}}'],
'show' => [ 'popup_cbtn_colors' => 'normal', 'popup_cbtn' => 'true'],
),
'popup_cbtn_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close:hover' => 'color:{{val}}'],
'show' => [ 'popup_cbtn_colors' => 'hover', 'popup_cbtn' => 'true'],
),
'popup_cbtn_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close:hover' => 'background-color:{{val}}'],
'show' => [ 'popup_cbtn_colors' => 'hover', 'popup_cbtn' => 'true'],
),
'popup_cbtn_border_type' => [
'type' => 'select',
'label' => __pl('border_type'),
'screen' => 1,
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => [ 'popup_cbtn' => 'true'],
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close' => 'border-style: {{val}}'],
],
'popup_cbtn_border_width' => [
'type' => 'padding',
'label' => __pl('border_width'),
'default' => '1,1,1,1',
'units' => ['px', 'em'],
'screen' => 1,
'show' => [ 'popup_cbtn' => 'true'],
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close' => 'border-top-width: {{val[0]}}; border-right-width: {{val[1]}}; border-bottom-width: {{val[2]}}; border-left-width: {{val[3]}}'],
],
'popup_cbtn_border_color' => [
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#CCC',
'screen' => 1,
'show' => [ 'popup_cbtn' => 'true'],
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close' => 'border-color: {{val}}'],
],
'popup_cbtn_border_radius' => [
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => ['px', 'em', '%'],
'screen' => 1,
'show' => [ 'popup_cbtn' => 'true'],
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
],
'popup_cbtn_border_padding' => [
'type' => 'padding',
'label' => __pl('padding'),
'units' => ['px', 'em', '%'],
'screen' => 1,
'show' => [ 'popup_cbtn' => 'true'],
'css' => ['[pagelayer-popup-id="{{ele_id}}"] .pagelayer-popup-close' => 'padding: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
],
),
'action_triggers' => array(
'trig_click' => array(
'type' => 'checkbox',
'label' => __pl('trig_onclick'),
'addAttr' => 'data-trig_click="{{trig_click}}"',
),
'trig_click_ele' => array(
'type' => 'text',
'label' => __pl('ele_selector'),
'addAttr' => 'data-trig_click_ele="{{trig_click_ele}}"',
'req' => [ 'trig_click' => 'true'],
),
'trig_load' => array(
'type' => 'checkbox',
'label' => __pl('trig_onload'),
'addAttr' => 'data-trig_load="{{trig_load}}"',
),
'trig_load_sec' => array(
'type' => 'spinner',
'label' => __pl('within_sec'),
'min' => 1,
'step' => 0.1,
'req' => [ 'trig_load' => 'true'],
'addAttr' => 'data-trig_load_sec="{{trig_load_sec}}"',
),
'trig_scroll' => array(
'type' => 'checkbox',
'label' => __pl('trig_onscroll'),
'addAttr' => 'data-trig_scroll="{{trig_scroll}}"',
),
'trig_scroll_dir' => array(
'type' => 'select',
'label' => __pl('scroll_direction'),
'default' => 'down',
'list' => array(
'down' => __pl('down'),
'up' => __pl('up'),
),
'addAttr' => 'data-trig_scroll_dir="{{trig_scroll_dir}}"',
'req' => [ 'trig_scroll' => 'true'],
),
'trig_scroll_per' => array(
'type' => 'spinner',
'label' => __pl('within_per'),
'min' => 1,
'step' => 1,
'max' => 100,
'req' => ['trig_scroll' => 'true', 'trig_scroll_dir' => 'down'],
'addAttr' => 'data-trig_scroll_per="{{trig_scroll_per}}"',
),
'trig_scroll_to_ele' => array(
'type' => 'checkbox',
'label' => __pl('trig_onscroll_to_ele'),
'addAttr' => 'data-trig_scroll_to_ele="{{trig_scroll_to_ele}}"',
),
'trig_scroll_to_ele_sel' => array(
'type' => 'text',
'label' => __pl('ele_selector'),
'req' => [ 'trig_scroll_to_ele' => 'true'],
'addAttr' => 'data-trig_scroll_to_ele_sel="{{trig_scroll_to_ele_sel}}"',
),
'trig_page_exit_intent' => array(
'type' => 'checkbox',
'label' => __pl('trig_onpage_exit_intent'),
'addAttr' => 'data-trig_page_exit_intent="{{trig_page_exit_intent}}"',
),
'trig_before_load' => array(
'type' => 'checkbox',
'label' => __pl('trig_beforeLoad'),
'addAttr' => 'data-trig_before_load="{{trig_before_load}}"',
'desc' => __pl('popup_load_desc')
),
),
'advance_options' => array(
'popup_multi_time' => array(
'type' => 'checkbox',
'label' => __pl('popup_multi_time'),
'addAttr' => 'data-popup_multi_time="{{popup_multi_time}}"',
),
'popup_cookie_session' => array(
'type' => 'checkbox',
'label' => __pl('popup_cookie_session'),
'addAttr' => 'data-popup_cookie_session="{{popup_cookie_session}}"',
),
'popup_cookie_close' => array(
'type' => 'checkbox',
'label' => __pl('popup_cookie_close'),
'addAttr' => 'data-popup_cookie_close="1"',
'req' => ['popup_cookie_session' => 'true']
),
'popup_cookie_selector' => array(
'type' => 'text',
'label' => __pl('popup_cookie_selector'),
'desc' => __pl('popup_cookie_selector_exp'),
'addAttr' => 'data-popup_cookie_selector="{{popup_cookie_selector}}"',
'req' => ['popup_cookie_session' => 'true']
),
'popup_cookie_name' => array(
'type' => 'text',
'label' => __pl('popup_cookie_name'),
'default' => '', // Make it blank to assigned from live.php
'addAttr' => 'data-popup_cookie_name="{{popup_cookie_name}}"',
'req' => ['popup_cookie_session' => 'true']
),
'popup_cookie_exp' => array(
'type' => 'text',
'label' => __pl('popup_cookie_exp'),
'default' => 30,
'addAttr' => 'data-popup_cookie_exp="{{popup_cookie_exp}}"',
'req' => ['popup_cookie_session' => 'true']
),
'popup_auto_close' => array(
'type' => 'spinner',
'label' => __pl('auto_close'),
'addAttr' => 'data-popup_auto_close="{{popup_auto_close}}"',
),
),
'styles' => array(
'popup_styles' => __pl('popup_styles'),
'overlay' => __pl('overlay'),
'close_button' => __pl('close_style'),
'action_triggers' => __pl('action_triggers'),
'advance_options' => __pl('advance_options'),
),
)
);
// Timeline widget
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_timeline', array(
'name' => __pl('timeline'),
'group' => 'other',
'icon' => 'fas fa-stream',
'has_group' => [
'section' => 'params',
'prop' => 'elements'
],
'holder' => '.pagelayer-timeline',
'innerHTML' => 'text',
'html' => '<div class="pagelayer-timeline">
</div>',
'params' => array(
'elements' => array(
'type' => 'group',
'label' => __pl('timeline_item'),
'sc' => PAGELAYER_SC_PREFIX.'_timeline_item',
'item_label' => array(
'default' => __pl('timeline_item'),
'param' => 'text'
),
'count' => 2,
'text' => __pl('add_timeline_item'),
),
'timeline_centerline_bg_color' => array(
'type' => 'color',
'label' => __pl('seperator_color'),
'default' => 'grey',
'css' => ['{{element}} .pagelayer-timeline::after' => 'background-color: {{val}};'],
),
'vindent' => array(
'type' => 'spinner',
'label' => __pl('space_between_col'),
'min' => 10,
'step' => 1,
'max' => 100,
'default' => 20,
'screen' => 1,
'css' => ['{{element}} .pagelayer-timeline-container' => 'padding-top:{{val}}px; padding-bottom:{{val}}px;'],
)
),
));
// Timeline items
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_timeline_item', array(
'name' => __pl('timeline_item'),
'icon' => 'fas fa-stream',
'not_visible' => 1,
'parent' => [PAGELAYER_SC_PREFIX.'_timeline'],
'html' => '<div class="pagelayer-timeline-container pagelayer-timeline-{{side}}">
<div class="pagelayer-timeline-container-left">
<div class="pagelayer-timeline-content">
<div if={{left_heading_text}} class="pagelayer-heading-holder">{{left_heading_text}}</div>
<div if={{left_paragraph_text}} class="pagelayer-text-holder">{{left_paragraph_text}}</div>
</div>
</div>
<div class="pagelayer-timeline-center-circle-container">
<div class="pagelayer-timeline-center-circle">
<i if="{{timeline_circle_icon}}" class="{{timeline_circle_icon}} pagelayer-timeline-circle-icon"></i>
<div if="{{timeline_circle_text}}" class="pagelayer-text-holder pagelayer-timeline-circle-text">{{timeline_circle_text}}</div>
</div>
</div>
<div class="pagelayer-timeline-container-right">
<div class="pagelayer-timeline-content">
<div if={{right_heading_text}} class="pagelayer-heading-holder">{{right_heading_text}}</div>
<div if={{right_paragraph_text}} class="pagelayer-text-holder">{{right_paragraph_text}}</div>
</div>
</div>
</div>',
'params' => array(
'text' => array(
'type' => 'text',
'label' => __pl('text'),
'default' => __pl('timeline_item')
),
'side' => array(
'label' => __pl('side'),
'type' => 'radio',
'default' => 'both',
'list' => array(
'left' => __pl('left'),
'right' => __pl('right'),
'both' => __pl('both')
)
),
'hindent' => array(
'type' => 'spinner',
'label' => __pl('icon_spacing'),
'screen' => 1,
'step' => 1,
'min' => 0,
'max' => 40,
'default' => 5,
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'margin-right:{{val}}px;',
'{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'margin-left:{{val}}px;'],
)
),
'timeline_circle' => [
'timeline_pos_y' => array(
'label' => __pl('verticle_postion'),
'type' => 'slider',
'step' => 1,
'min' => 0,
'max' => 80,
'default' => 20,
'screen' => 1,
'units' => ['%'],
'css' => ['{{element}} .pagelayer-timeline-center-circle' => 'top: {{val}};'],
),
'timeline_circle_radius' => array(
'type' => 'slider',
'label' => __pl('radius'),
'screen' => 1,
'step' => 1,
'min' => 20,
'max' => 70,
'default' => 40,
'units' => ['px'],
'css' => ['{{element}} .pagelayer-timeline-center-circle' => 'width:{{val}}; height:{{val}}; left:calc(50% - {{val}}/2);'],
),
'timeline_circle_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-timeline-center-circle' => 'background-color: {{val}};'],
),
'timeline_circle_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'screen' => 1,
'default' => 'solid',
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'css' => ['{{element}} .pagelayer-timeline-center-circle'=> 'border-style: {{val}}'],
),
'timeline_circle_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'default' => '4,4,4,4',
'units' => ['px', 'em'],
'screen' => 1,
'req' => [
'!timeline_circle_border_type' => ''
],
'css' =>['{{element}} .pagelayer-timeline-center-circle' => 'border-top-width: {{val[0]}}; border-right-width: {{val[1]}}; border-bottom-width: {{val[2]}}; border-left-width: {{val[3]}}'],
),
'timeline_circle_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#000',
'screen' => 1,
'req' => [
'!timeline_circle_border_type' => ''
],
'css' =>['{{element}} .pagelayer-timeline-center-circle' => 'border-color: {{val}}'],
),
'timeline_circle_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => ['px', 'em', '%'],
'screen' => 1,
'show' => ['timeline_circle_border_hover' => ''],
'req' => [
'!timeline_circle_border_type' => ''
],
'default' => '50,50,50,50',
'css' =>['{{element}} .pagelayer-timeline-center-circle' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
),
'timeline_circle_icon' => array(
'type' => 'icon',
'label' => __pl('service_box_font_icon_label'),
'default' => '',
),
'timeline_circle_icon_size' => array(
'label' => __pl('icon_size'),
'type' => 'slider',
'step' => 1,
'min' => 5,
'max' => 40,
'default' => 10,
'screen' => 1,
'units' => ['px'],
'css' => ['{{element}} .pagelayer-timeline-center-circle .pagelayer-timeline-circle-icon' => 'font-size:{{val}}'],
'show' => ['!timeline_circle_icon' => ''],
),
'timeline_circle_icon_color' => array(
'type' => 'color',
'label' => __pl('icon_color'),
'show' => ['!timeline_circle_icon' => ''],
'css' => ['{{element}} .pagelayer-timeline-center-circle .pagelayer-timeline-circle-icon' => 'color: {{val}};'],
),
'timeline_circle_text' => array(
'type' => 'editor',
'label' => __pl('text'),
'default' => '',
'desc' => __pl('Edit the content here or edit directly in the Editor'),
'edit' => '.pagelayer-timeline-circle-text', // Edit the text and also mirror the same
'keep_prop' => 1
)
],
// timeline left part code starts
'left' => [
'left_heading_text' => array(
'type' => 'textarea',
'label' => __pl('heading_name'),
'default' => '<h2>1998</h2>',
'desc' => __pl('Edit the heading here'),
'edit' => '.pagelayer-timeline-container-left .pagelayer-timeline-content .pagelayer-heading-holder', // Edit the text and also mirror the same
'req' => ['side' => ['both','left']],
),
'left_paragraph_text' => array(
'type' => 'editor',
'label' => __pl('text'),
'default' => 'Lorem ipsum dolor sit amet',
'desc' => __pl('Edit the content here or edit directly in the Editor'),
'edit' => '.pagelayer-timeline-container-left .pagelayer-timeline-content .pagelayer-text-holder', // Edit the text and also mirror the same
'req' => ['side' => ['both','left']]
),
'left_align' => array(
'label' => __pl('content_align'),
'type' => 'radio',
'addAttr' => 'align="{{align}}"',
'screen' => 1,
'default' => 'left',
'css' => ['{{element}} .pagelayer-timeline-container-left' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
),
'req' => ['side' => ['both','left']]
),
'left_part_width' => array(
'type' => 'spinner',
'label' => __pl('width'),
'screen' => 1,
'step' => 1,
'min' => 0,
'max' => 100,
'default' => 90,
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'width:{{val}}%'],
),
'left_heading_state' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => ['side' => ['both','light']]
),
'left_color' => array(
'type' => 'color',
'label' => __pl('heading_color'),
'default' => '#111111',
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-heading-holder *' => 'color:{{val}}'],
'show' => ['left_heading_state' => 'normal']
),
'left_heading_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-heading-holder *' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'{{element}} .pagelayer-timeline-container-left .pagelayer-heading-holder' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => ['left_heading_state' => 'normal']
),
'left_heading_text_shadow' => array(
'type' => 'shadow',
'label' => __pl('text_shadow'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-heading-holder' => 'text-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}} !important;'],
'show' => ['left_heading_state' => 'normal']
),
'left_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-heading-holder:hover *' => 'color:{{val}}', '{{element}} .pagelayer-timeline-container-left .pagelayer-heading-holder:hover' => 'color:{{val}}'],
'show' => ['left_heading_state' => 'hover']
),
'left_heading_typo_hover' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-heading-holder:hover *' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'{{element}} .pagelayer-timeline-container-left .pagelayer-heading-holder:hover' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => ['left_heading_state' => 'hover']
),
'left_heading_text_shadow_hover' => array(
'type' => 'shadow',
'label' => __pl('text_shadow'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-heading-holder:hover' => 'text-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}} !important;'],
'show' => ['left_heading_state' => 'hover']
),
'left_bg_hover' => array(
'type' => 'radio',
'label' => __pl('row_bg_styles'),
'default' => '',
'list' => [
'' => __pl('normal'),
'hover' => __pl('hover'),
],
'req' => ['side' => ['both','left']]
),
'left_bg_type' => array(
'type' => 'radio',
'label' => __pl('background_type'),
'default' => '',
'list' => [
'' => __pl('none'),
'color' => __pl('color'),
'gradient' => __pl('gradient'),
'image' => __pl('image'),
],
'show' => ['left_bg_hover' => '']
),
'left_bg_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'background-color: {{val}};'],
'show' => ['left_bg_hover' => ''],
'req' => ['left_bg_type' => 'color']
),
'left_timeline_gradient' => array(
'type' => 'gradient',
'label' => '',
'default' => '150,#44d3f6,23,#72e584,45,#2ca4eb,100',
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%);'],
'show' => ['left_bg_hover' => ''],
'req' => ['left_bg_type' => 'gradient']
),
'left_img_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '',
'desc' => __pl('fallback_color'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'background-color: {{val}};'],
'show' => ['left_bg_hover' => ''],
'req' => ['left_bg_type' => 'image']
),
'left_bg_img' => array(
'type' => 'image',
'label' => __pl('image'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'background-image: url("{{{left_bg_img-url}}}");'],
'show' => ['left_bg_hover' => ''],
'req' => ['left_bg_type' => 'image']
),
'left_bg_attachment' => array(
'type' => 'select',
'label' => __pl('bg_attachment'),
'list' => [
'' => __pl('default'),
'scroll' => __pl('scroll'),
'fixed' => __pl('fixed')
],
'show' => ['left_bg_hover' => ''],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'background-attachment: {{val}};'],
'req' => ['left_bg_type' => 'image']
),
'left_bg_posx' => array(
'type' => 'select',
'label' => __pl('bg_posx'),
'list' => [
'' => __pl('default'),
'center' => __pl('center'),
'left' => __pl('left'),
'right' => __pl('right'),
'custom' => __pl('custom')
],
'show' => ['left_bg_hover' => ''],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'background-position-x: {{val}};'],
'req' => ['left_bg_type' => 'image']
),
'left_bg_posx_custom' => array(
'label' => __pl('custom_x'),
'type' => 'slider',
'step' => 1,
'min' => -5000,
'max' => 5000,
'screen' => 1,
'units' => ['px', 'em', '%'],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'background-position-x: {{val}};'],
'req' => array(
'left_bg_posx' => 'custom'
),
),
'left_bg_posy' => array(
'type' => 'select',
'label' => __pl('bg_posy'),
'list' => [
'' => __pl('default'),
'center' => __pl('center'),
'top' => __pl('top'),
'bottom' => __pl('bottom'),
'custom' => __pl('custom')
],
'show' => ['left_bg_hover' => ''],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'background-position-y: {{val}};'],
'req' => ['left_bg_type' => 'image']
),
'left_bg_posy_custom' => array(
'label' => __pl('custom_y'),
'type' => 'slider',
'step' => 1,
'min' => -5000,
'max' => 5000,
'screen' => 1,
'units' => ['px', 'em', '%'],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'background-position-y: {{val}};'],
'req' => array(
'left_bg_posy' => 'custom'
),
),
'left_bg_repeat' => array(
'type' => 'select',
'label' => __pl('bg_repeat'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'background-repeat: {{val}};'],
'list' => [
'' => __pl('default'),
'repeat' => __pl('repeat'),
'no-repeat' => __pl('no-repeat'),
'repeat-x' => __pl('repeat-x'),
'repeat-y' => __pl('repeat-y'),
],
'show' => ['left_bg_hover' => ''],
'req' => ['left_bg_type' => 'image']
),
'left_bg_size' => array(
'type' => 'select',
'label' => __pl('bg_size'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'background-size: {{val}};'],
'list' => [
'' => __pl('default'),
'cover' => __pl('cover'),
'contain' => __pl('contain')
],
'show' => ['left_bg_hover' => ''],
'req' => ['left_bg_type' => 'image']
),
'left_bg_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('bg_hover_delay'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => ['left_bg_hover' => 'hover']
),
'left_bg_type_hover' => array(
'type' => 'radio',
'label' => __pl('background_type'),
'default' => '',
'list' => [
'' => __pl('none'),
'color' => __pl('color'),
'gradient' => __pl('gradient'),
'image' => __pl('image'),
],
'show' => ['left_bg_hover' => 'hover']
),
'left_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('color_hover'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content:hover' => 'background: {{val}};'],
'show' => ['left_bg_hover' => 'hover'],
'req' => ['left_bg_type_hover' => 'color']
),
'left_bg_gradient_hover' => array(
'type' => 'gradient',
'label' => '',
'default' => '150,#44d3f6,25,#72e584,75,#2ca4eb,100',
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content:hover' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%);'],
'show' => ['left_bg_hover' => 'hover'],
'req' => ['left_bg_type_hover' => 'gradient']
),
'left_bg_img_hover' => array(
'type' => 'image',
'label' => __pl('image_hover'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content:hover' => 'background: url("{{{left_bg_img_hover-url}}}");'],
'show' => ['left_bg_hover' => 'hover'],
'req' => ['left_bg_type_hover' => 'image']
),
'left_bg_attachment_hover' => array(
'type' => 'select',
'label' => __pl('background_attachment'),
'list' => [
'' => __pl('default'),
'scroll' => __pl('scroll'),
'fixed' => __pl('fixed')
],
'show' => ['left_bg_hover' => 'hover'],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content:hover' => 'background-attachment: {{val}};'],
'req' => ['left_bg_type_hover' => 'image']
),
'left_bg_posx_hover' => array(
'type' => 'select',
'label' => __pl('horizontal_pos'),
'list' => [
'' => __pl('default'),
'center' => __pl('center'),
'left' => __pl('left'),
'right' => __pl('right')
],
'show' => ['left_bg_hover' => 'hover'],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content:hover' => 'background-position-x: {{val}};'],
'req' => ['left_bg_type_hover' => 'image']
),
'left_bg_posy_hover' => array(
'type' => 'select',
'label' => __pl('verticle_pos'),
'list' => [
'' => __pl('default'),
'center' => __pl('center'),
'top' => __pl('top'),
'bottom' => __pl('bottom')
],
'show' => ['left_bg_hover' => 'hover'],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content:hover' => 'background-position-y: {{val}};'],
'req' => ['left_bg_type_hover' => 'image']
),
'left_bg_repeat_hover' => array(
'type' => 'select',
'label' => __pl('repeat'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content:hover' => 'background-repeat: {{val}};'],
'list' => [
'' => __pl('default'),
'repeat' => __pl('repeat'),
'no-repeat' => __pl('no-repeat'),
'repeat-x' => __pl('repeat-x'),
'repeat-y' => __pl('repeat-y'),
],
'show' => ['left_bg_hover' => 'hover'],
'req' => ['left_bg_type_hover' => 'image']
),
'left_bg_size_hover' => array(
'type' => 'select',
'label' => __pl('size'),
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content:hover' => 'background-size: {{val}};'],
'list' => [
'' => __pl('default'),
'cover' => __pl('cover'),
'contain' => __pl('contain')
],
'show' => ['left_bg_hover' => 'hover'],
'req' => ['left_bg_type_hover' => 'image']
),
'left_timeline_border_hover' => array(
'type' => 'radio',
'label' => '',
'default' => '',
'list' => [
'' => __pl('normal'),
'hover' => __pl('hover'),
],
'req' => ['side' => ['both','left']]
),
'left_timeline_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'screen' => 1,
'default' => 'solid',
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => ['left_timeline_border_hover' => ''],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content '=> 'border-style: {{val}}'],
),
'left_timeline_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'default' => '1,1,1,1',
'units' => ['px', 'em'],
'screen' => 1,
'show' => [
'left_timeline_border_hover' => ''
],
'req' => [
'!left_timeline_border_type' => ''
],
'css' =>['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'border-top-width: {{val[0]}};
border-right-width: {{val[1]}}; border-bottom-width: {{val[2]}}; border-left-width: {{val[3]}}'],
),
'left_timeline_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#CCC',
'screen' => 1,
'show' => [
'left_timeline_border_hover' => ''
],
'req' => [
'!left_timeline_border_type' => ''
],
'css' =>['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'border-color: {{val}}'],
),
'left_timeline_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => ['px', 'em'],
'screen' => 1,
'show' => ['left_timeline_border_hover' => ''],
'req' => [
'!left_timeline_border_type' => ''
],
'default' => '6,6,6,6',
'css' =>['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
),
'left_timeline_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'screen' => 1,
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => ['left_timeline_border_hover' => 'hover'],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content:hover' => 'border-style: {{val}}'],
),
'left_timeline_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'units' => ['px', 'em'],
'screen' => 1,
'show' => [
'left_timeline_border_hover' => 'hover'
],
'req' => [
'!left_timeline_border_type_hover' => ''
],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content:hover' => 'border-top-width: {{val[0]}}; border-right-width: {{val[1]}}; border-bottom-width: {{val[2]}}; border-left-width: {{val[3]}}'],
),
'left_timeline_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color'),
'screen' => 1,
'show' => [
'left_timeline_border_hover' => 'hover'
],
'req' => [
'!left_timeline_border_type_hover' => ''
],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content:hover' => 'border-color: {{val}}'],
),
'left_timeline_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'units' => ['px', 'em'],
'show' => [
'left_timeline_border_hover' => 'hover'
],
'req' => [
'!left_timeline_border_type_hover' => ''
],
'css' => ['{{element}} .pagelayer-timeline-container-left .pagelayer-timeline-content:hover' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
),
],
// timeline right part code starts
'right' => [
'right_heading_text' => array(
'type' => 'textarea',
'label' => __pl('heading_name'),
'default' => '<h2>1998</h2>',
'desc' => __pl('Edit the heading here'),
'edit' => '.pagelayer-timeline-container-right .pagelayer-timeline-content .pagelayer-heading-holder', // Edit the text and also mirror the same
'req' => ['side' => ['both','right']]
),
'right_paragraph_text' => array(
'type' => 'editor',
'label' => __pl('text'),
'default' => 'Lorem ipsum dolor sit amet',
'desc' => __pl('Edit the content here or edit directly in the Editor'),
'edit' => '.pagelayer-timeline-container-right .pagelayer-timeline-content .pagelayer-text-holder', // Edit the text and also mirror the same
'req' => ['side' => ['both','right']]
),
'right_align' => array(
'label' => __pl('content_align'),
'type' => 'radio',
'addAttr' => 'align="{{align}}"',
'screen' => 1,
'default' => 'left',
'css' => ['{{element}} .pagelayer-timeline-container-right' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
),
'req' => ['side' => ['both','right']]
),
'right_part_width' => array(
'type' => 'spinner',
'label' => __pl('width'),
'default' => '400',
'screen' => 1,
'step' => 1,
'min' => 0,
'max' => 100,
'default' => 90,
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'width:{{val}}%'],
),
'right_heading_state' => array(
'type' => 'radio',
'label' => __pl('state'),
'default' => 'normal',
'list' => array(
'normal' => __pl('normal'),
'hover' => __pl('hover'),
),
'req' => ['side' => ['both','right']]
),
'right_color' => array(
'type' => 'color',
'label' => __pl('heading_color'),
'default' => '#111111',
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-heading-holder *' => 'color:{{val}}'],
'show' => ['right_heading_state' => 'normal']
),
'right_heading_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-heading-holder *' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'{{element}} .pagelayer-timeline-container-right .pagelayer-heading-holder' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => ['right_heading_state' => 'normal']
),
'right_heading_text_shadow' => array(
'type' => 'shadow',
'label' => __pl('text_shadow'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-heading-holder' => 'text-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}} !important;'],
'show' => ['right_heading_state' => 'normal']
),
'right_color_hover' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-heading-holder:hover *' => 'color:{{val}}', '{{element}} .pagelayer-timeline-container-right .pagelayer-heading-holder:hover' => 'color:{{val}}'],
'show' => ['right_heading_state' => 'hover']
),
'right_heading_typo_hover' => array(
'type' => 'typography',
'label' => __pl('typography'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-heading-holder:hover *' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;',
'{{element}} .pagelayer-timeline-container-right .pagelayer-heading-holder:hover' => 'font-family: {{val[0]}} !important; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'show' => ['right_heading_state' => 'hover']
),
'right_heading_text_shadow_hover' => array(
'type' => 'shadow',
'label' => __pl('text_shadow'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-heading-holder:hover' => 'text-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}} !important;'],
'show' => ['right_heading_state' => 'hover']
),
'right_bg_hover' => array(
'type' => 'radio',
'label' => __pl('row_bg_styles'),
'default' => '',
'list' => [
'' => __pl('normal'),
'hover' => __pl('hover'),
],
'show' => ['side' => ['both','right']]
),
'right_bg_type' => array(
'type' => 'radio',
'label' => __pl('background_type'),
'default' => '',
'list' => [
'' => __pl('none'),
'color' => __pl('color'),
'gradient' => __pl('gradient'),
'image' => __pl('image'),
],
'show' => ['right_bg_hover' => '']
),
'right_bg_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'background-color: {{val}};'],
'show' => ['right_bg_hover' => ''],
'req' => ['right_bg_type' => 'color']
),
'right_bg_gradient' => array(
'type' => 'gradient',
'label' => '',
'default' => '150,#44d3f6,23,#72e584,45,#2ca4eb,100',
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%);'],
'show' => ['right_bg_hover' => ''],
'req' => ['right_bg_type' => 'gradient']
),
'right_img_color' => array(
'type' => 'color',
'label' => __pl('color'),
'default' => '',
'desc' => __pl('fallback_color'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'background-color: {{val}};'],
'show' => ['right_bg_hover' => ''],
'req' => ['right_bg_type' => 'image']
),
'right_bg_img' => array(
'type' => 'image',
'label' => __pl('image'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'background-image: url("{{{right_bg_img-url}}}");'],
'show' => ['right_bg_hover' => ''],
'req' => ['right_bg_type' => 'image']
),
'right_bg_attachment' => array(
'type' => 'select',
'label' => __pl('bg_attachment'),
'list' => [
'' => __pl('default'),
'scroll' => __pl('scroll'),
'fixed' => __pl('fixed')
],
'show' => ['right_bg_hover' => ''],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'background-attachment: {{val}};'],
'req' => ['right_bg_type' => 'image']
),
'right_bg_posx' => array(
'type' => 'select',
'label' => __pl('bg_posx'),
'list' => [
'' => __pl('default'),
'center' => __pl('center'),
'left' => __pl('left'),
'right' => __pl('right'),
'custom' => __pl('custom')
],
'show' => ['right_bg_hover' => ''],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'background-position-x: {{val}};'],
'req' => ['right_bg_type' => 'image']
),
'right_bg_posx_custom' => array(
'label' => __pl('custom_x'),
'type' => 'slider',
'step' => 1,
'min' => -5000,
'max' => 5000,
'screen' => 1,
'units' => ['px', 'em', '%'],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'background-position-x: {{val}};'],
'req' => array(
'right_bg_posx' => 'custom'
),
),
'right_bg_posy' => array(
'type' => 'select',
'label' => __pl('bg_posy'),
'list' => [
'' => __pl('default'),
'center' => __pl('center'),
'top' => __pl('top'),
'bottom' => __pl('bottom'),
'custom' => __pl('custom')
],
'show' => ['right_bg_hover' => ''],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'background-position-y: {{val}};'],
'req' => ['right_bg_type' => 'image']
),
'right_bg_posy_custom' => array(
'label' => __pl('custom_y'),
'type' => 'slider',
'step' => 1,
'min' => -5000,
'max' => 5000,
'screen' => 1,
'units' => ['px', 'em', '%'],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'background-position-y: {{val}};'],
'req' => array(
'right_bg_posy' => 'custom'
),
),
'right_bg_repeat' => array(
'type' => 'select',
'label' => __pl('bg_repeat'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'background-repeat: {{val}};'],
'list' => [
'' => __pl('default'),
'repeat' => __pl('repeat'),
'no-repeat' => __pl('no-repeat'),
'repeat-x' => __pl('repeat-x'),
'repeat-y' => __pl('repeat-y'),
],
'show' => ['right_bg_hover' => ''],
'req' => ['right_bg_type' => 'image']
),
'right_bg_size' => array(
'type' => 'select',
'label' => __pl('bg_size'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'background-size: {{val}};'],
'list' => [
'' => __pl('default'),
'cover' => __pl('cover'),
'contain' => __pl('contain')
],
'show' => ['right_bg_hover' => ''],
'req' => ['right_bg_type' => 'image']
),
'right_bg_hover_delay' => array(
'type' => 'spinner',
'label' => __pl('ele_bg_hover_delay'),
'min' => 0,
'step' => 100,
'max' => 5000,
'default' => 400,
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => '-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
'show' => ['right_bg_hover' => 'hover']
),
'right_bg_type_hover' => array(
'type' => 'radio',
'label' => __pl('background_type'),
'default' => '',
'list' => [
'' => __pl('none'),
'color' => __pl('color'),
'gradient' => __pl('gradient'),
'image' => __pl('image'),
],
'show' => ['right_bg_hover' => 'hover']
),
'right_bg_color_hover' => array(
'type' => 'color',
'label' => __pl('color_hover'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content:hover' => 'background: {{val}};'],
'show' => ['right_bg_hover' => 'hover'],
'req' => ['right_bg_type_hover' => 'color']
),
'right_bg_gradient_hover' => array(
'type' => 'gradient',
'label' => '',
'default' => '150,#44d3f6,25,#72e584,75,#2ca4eb,100',
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content:hover' => 'background: linear-gradient({{val[0]}}deg, {{val[1]}} {{val[2]}}%, {{val[3]}} {{val[4]}}%, {{val[5]}} {{val[6]}}%);'],
'show' => ['right_bg_hover' => 'hover'],
'req' => ['right_bg_type_hover' => 'gradient']
),
'bg_img_hover' => array(
'type' => 'image',
'label' => __pl('image_hover'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content:hover' => 'background: url("{{{bg_img_hover-url}}}");'],
'show' => ['right_bg_hover' => 'hover'],
'req' => ['right_bg_type_hover' => 'image']
),
'right_bg_attachment_hover' => array(
'type' => 'select',
'label' => __pl('background_attachment'),
'list' => [
'' => __pl('default'),
'scroll' => __pl('scroll'),
'fixed' => __pl('fixed')
],
'show' => ['right_bg_hover' => 'hover'],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content:hover' => 'background-attachment: {{val}};'],
'req' => ['right_bg_type_hover' => 'image']
),
'right_bg_posx_hover' => array(
'type' => 'select',
'label' => __pl('horizontal_pos'),
'list' => [
'' => __pl('default'),
'center' => __pl('center'),
'left' => __pl('left'),
'right' => __pl('right')
],
'show' => ['right_bg_hover' => 'hover'],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content:hover' => 'background-position-x: {{val}};'],
'req' => ['right_bg_type_hover' => 'image']
),
'right_bg_posy_hover' => array(
'type' => 'select',
'label' => __pl('verticle_pos'),
'list' => [
'' => __pl('default'),
'center' => __pl('center'),
'top' => __pl('top'),
'bottom' => __pl('bottom')
],
'show' => ['right_bg_hover' => 'hover'],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content:hover' => 'background-position-y: {{val}};'],
'req' => ['right_bg_type_hover' => 'image']
),
'right_bg_repeat_hover' => array(
'type' => 'select',
'label' => __pl('repeat'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content:hover' => 'background-repeat: {{val}};'],
'list' => [
'' => __pl('default'),
'repeat' => __pl('repeat'),
'no-repeat' => __pl('no-repeat'),
'repeat-x' => __pl('repeat-x'),
'repeat-y' => __pl('repeat-y'),
],
'show' => ['right_bg_hover' => 'hover'],
'req' => ['right_bg_type_hover' => 'image']
),
'right_bg_size_hover' => array(
'type' => 'select',
'label' => __pl('size'),
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content:hover' => 'background-size: {{val}};'],
'list' => [
'' => __pl('default'),
'cover' => __pl('cover'),
'contain' => __pl('contain')
],
'show' => ['right_bg_hover' => 'hover'],
'req' => ['right_bg_type_hover' => 'image']
),
'right_timeline_border_hover' => array(
'type' => 'radio',
'label' => '',
'default' => '',
'list' => [
'' => __pl('normal'),
'hover' => __pl('hover'),
],
'req' => ['side' => ['both','right']]
),
'right_timeline_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'screen' => 1,
'default' => 'solid',
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => ['right_timeline_border_hover' => ''],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content '=> 'border-style: {{val}}'],
),
'right_timeline_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'default' => '1,1,1,1',
'units' => ['px', 'em'],
'screen' => 1,
'show' => [
'right_timeline_border_hover' => ''
],
'req' => [
'!right_timeline_border_type' => ''
],
'css' =>['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'border-top-width: {{val[0]}}; border-right-width: {{val[1]}}; border-bottom-width: {{val[2]}}; border-left-width: {{val[3]}}'],
),
'right_timeline_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'default' => '#CCC',
'screen' => 1,
'show' => [
'right_timeline_border_hover' => ''
],
'req' => [
'!right_timeline_border_type' => ''
],
'css' =>['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'border-color: {{val}}'],
),
'right_timeline_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'units' => ['px', 'em'],
'screen' => 1,
'show' => ['right_timeline_border_hover' => ''],
'req' => [
'!right_timeline_border_type' => ''
],
'default' => '6,6,6,6',
'css' =>['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
),
'right_timeline_border_type_hover' => array(
'type' => 'select',
'label' => __pl('border_type'),
'screen' => 1,
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'show' => ['right_timeline_border_hover' => 'hover'],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content:hover' => 'border-style: {{val}}'],
),
'right_timeline_border_width_hover' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'units' => ['px', 'em'],
'screen' => 1,
'show' => [
'right_timeline_border_hover' => 'hover'
],
'req' => [
'!right_timeline_border_type_hover' => ''
],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content:hover' => 'border-top-width: {{val[0]}}; border-right-width: {{val[1]}}; border-bottom-width: {{val[2]}}; border-left-width: {{val[3]}}'],
),
'right_timeline_border_color_hover' => array(
'type' => 'color',
'label' => __pl('border_color'),
'screen' => 1,
'show' => [
'right_timeline_border_hover' => 'hover'
],
'req' => [
'!right_timeline_border_type_hover' => ''
],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content:hover' => 'border-color: {{val}}'],
),
'right_timeline_border_radius_hover' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'units' => ['px', 'em'],
'show' => ['right_timeline_border_hover' => 'hover'],
'req' => [
'!right_timeline_border_type_hover' => ''
],
'css' => ['{{element}} .pagelayer-timeline-container-right .pagelayer-timeline-content:hover' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
),
],
'styles' => [
'timeline_circle' => __pl('timeline_center_circle'),
'left' => __pl('left'),
'right' => __pl('right'),
]
)
);
// Before After Slider
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_before_after', array(
'name' => __pl('before_after_image'),
'group' => 'other',
'html' => '<div class="pagelayer-before-after-container" data-resize-event="{{resize_event}}">
<div class="pagelayer-before-after-slider">
<div class="pagelayer-before-image">
<img src="{{{before_image-url}}}"/>
</div>
<div class="pagelayer-after-image">
<img src="{{{after_image-url}}}"/>
</div>
<div class="pagelayer-resizer {{icon}} {{icon_size}} "></div>
<button if="{{bf_button}}" class="pagelayer-before-btn">{{before_btn_text}}</button>
<button if="{{bf_button}}" class="pagelayer-after-btn">{{after_btn_text}}</button>
</div>
</div>',
'params' => array(
'before_image' => array(
'type' => 'image',
'label' => __pl('before_image'),
'default' => PAGELAYER_URL.'/images/default-image.png',
'retina' => 1,
),
'after_image' => array(
'type' => 'image',
'label' => __pl('after_image'),
'default' => PAGELAYER_URL.'/images/default-image.png',
'retina' => 1,
),
'before_after_direction' => array(
'type' => 'select',
'label' => __pl('slider_direction'),
'default' => 'horizontal',
'addClass' => ['{{element}} .pagelayer-before-after-slider' => 'pagelayer-before-after-slider-{{val}}'],
'list' => array(
'horizontal' => __pl('horizontal'),
'vertical' => __pl('vertical'),
)
),
'offset_horizontal' => array(
'type' => 'spinner',
'label' => __pl('slider_offset'),
'min' => '1',
'max' => '99.5',
'step' => '1',
'screen' => 1,
'css' => ['{{element}} .pagelayer-after-image' => 'clip-path:polygon({{val}}% 0%, 100% 0%, 100% 100%, {{val}}% 100%);','{{element}} .pagelayer-resizer' => 'left:{{val}}%;'],
'req' => ['before_after_direction' => 'horizontal']
),
'offset_vertical' => array(
'type' => 'spinner',
'label' => __pl('slider_offset'),
'min' => '1',
'max' => '100',
'step' => '1',
'screen' => 1,
'css' => ['{{element}} .pagelayer-before-after-slider-vertical .pagelayer-after-image' => 'clip-path:polygon(0px {{val}}%, 100% {{val}}%, 100% 100%, 0% 100%)','{{element}} .pagelayer-before-after-slider-vertical .pagelayer-resizer' => 'top:{{val}}%;'],
'req' => ['before_after_direction' => 'vertical']
),
'resize_event' => array(
'type' => 'radio',
'label' => __pl('slider_type'),
'default' => 'drag',
'screen' => 1,
'list' => array(
'none' => __pl('none'),
'drag' => __pl('drag'),
'hover' => __pl('hover')
)
),
'custom_height' => array(
'type' => 'checkbox',
'label' => __pl('custom_height'),
),
'height' => array(
'type' => 'spinner',
'label' => __pl('slider_height'),
'min' => '0',
'max' => '1000',
'step' => 1,
'screen' => 1,
'css' => ['{{element}} .pagelayer-before-after-slider' => 'height:{{val}}px;'],
'req' => ["custom_height" => 'true']
),
'delay_control' => array(
'type' => 'slider',
'label' => __pl('time'),
'min' => '0.0',
'max' => '1.0',
'step' => '0.1',
'css' => ['{{element}} .pagelayer-resizer,{{element}} .pagelayer-after-image' => 'transition-duration:{{val}}s;'],
)
),
'icon_style' => [
'icon' => array(
'type' => 'icon',
'label' => __pl('icon'),
'default' => 'fas fa-arrows-alt-h',
'list' => ['arrows-alt-h', 'arrows-alt-v','arrows-alt-h', 'arrow-right', 'arrow-left', 'arrow-circle-right', 'arrow-circle-left', 'arrow-alt-circle-left','arrow-alt-circle-right'],
),
'icon_color' => array(
'type' => 'color',
'label' => __pl('color'),
'css' => ['{{element}} .pagelayer-resizer:before' => 'color:{{val}};'],
),
'bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#42414f',
'css' => ['{{element}} .pagelayer-resizer:before' => 'background: {{val}};'],
),
'icon_size' => array(
'type' => 'select',
'label' => __pl('icon_size'),
'default' => 'pagelayer-icon-mini',
'list' => array(
'pagelayer-icon-mini' => __pl('mini'),
'pagelayer-icon-small' => __pl('small'),
'pagelayer-icon-large' => __pl('large'),
'pagelayer-icon-extra-large' => __pl('extra_large'),
'pagelayer-icon-double-large' => __pl('double_large'),
'pagelayer-icon-custom' => __pl('custom'),
),
),
'icon_size_custom' => array(
'type' => 'spinner',
'label' => __pl('icon_size'),
'min' => '1',
'max' => '100',
'screen' => 1,
'css' => ['{{element}} .pagelayer-resizer:before' => 'font-size: {{val}}px'],
'req' => array(
'icon_size' => 'pagelayer-icon-custom'
),
),
'icon_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => ['{{element}} .pagelayer-resizer:before' => 'border-style: {{val}}'],
'list' => [
'' => __pl('default'),
'none' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
),
'icon_border_color' => array(
'type' => 'color',
'label' => __pl('border_color'),
'css' => ['{{element}} .pagelayer-resizer:before' => 'border-color: {{val}};'],
'req' => array(
'!icon_border_type' => ['', 'none'],
),
),
'icon_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-resizer:before' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!icon_border_type' => ['', 'none'],
],
),
'icon_border_radius' => array(
'type' => 'slider',
'label' => __pl('border_radius'),
'step' => '1',
'screen' => 1,
'css' => ['{{element}} .pagelayer-resizer:before' => 'border-radius: {{val}}%; -webkit-border-radius: {{val}}%;-moz-border-radius: {{val}}%;'],
),
'bg_size' => array(
'type' => 'slider',
'label' => __pl('icon_bg_size'),
'step' => '1',
'screen' => 1,
'css' => ['{{element}} .pagelayer-resizer:before' => 'padding: {{val}}px;'],
),
'bg_positionHorizontalY' => array(
'type' => 'slider',
'label' => __pl('icon_position'),
'max' => '100',
'min' => '0',
'screen' => 1,
'css' => ['{{element}} .pagelayer-before-after-slider-horizontal .pagelayer-resizer:before' => 'top: {{val}}%; transform: TranslateX(-50%) TranslateY(-{{val}}%) '],
'req' => ['before_after_direction' => 'horizontal'],
),
'bg_positionVerticalX' => array(
'type' => 'slider',
'label' => __pl('icon_position'),
'max' => '100',
'min' => '0',
'screen' => 1,
'css' => ['{{element}} .pagelayer-before-after-slider-vertical .pagelayer-resizer:before' => 'left: {{val}}%; transform: TranslateX(-{{val}}%) TranslateY(-50%)'],
'req' => ['before_after_direction' => 'vertical'],
),
],
'resizer_style' => [
'resizer' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'css' => ['{{element}} .pagelayer-resizer' => 'background:{{val}};'],
),
'resizer_width' => array(
'type' => 'slider',
'label' => __pl('width'),
'min' => '0',
'max' => '20',
'screen' => 1,
'css' => ['{{element}} .pagelayer-resizer' => 'width: {{val}}px;'],
'req' => ['before_after_direction' => 'horizontal']
),
'resizer_width_vertical' => array(
'type' => 'slider',
'label' => __pl('height'),
'min' => '0',
'max' => '20',
'screen' => 1,
'css' => ['{{element}} .pagelayer-resizer' => 'height: {{val}}px;'],
'req' => ['before_after_direction' => 'vertical']
),
],
'bf_btn_style' =>[
'bf_button' => array(
'type' => 'checkbox',
'label' => __pl('show_btn')
),
'button_color' => array(
'type' => 'color',
'label' => __pl('color'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-before-btn, {{element}} .pagelayer-after-btn' => 'color:{{val}};'],
'req' => array(
'bf_button' => 'true'
),
),
'btn_bg_color' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-before-btn, {{element}} .pagelayer-after-btn' => 'background-color:{{val}};'],
'req' => array(
'bf_button' => 'true'
),
),
'bf_btn_size' => array(
'type' => 'padding',
'label' => __pl('size'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-before-btn, {{element}} .pagelayer-after-btn' => 'padding-top:{{val[0]}}px;padding-right:{{val[1]}}px;padding-bottom:{{val[0]}}px;padding-left:{{val[1]}}px;'],
'req' => [
'bf_button' => 'true',
]
),
'btn_border_type' => array(
'type' => 'select',
'label' => __pl('border_type'),
'css' => [
'{{element}} .pagelayer-before-btn, {{element}} .pagelayer-after-btn' => 'border-style: {{val}};',
],
'list' => [
'' => __pl('none'),
'solid' => __pl('solid'),
'double' => __pl('double'),
'dotted' => __pl('dotted'),
'dashed' => __pl('dashed'),
'groove' => __pl('groove'),
],
'req' => array(
'bf_button' => 'true'
),
),
'btn_border_color' => array(
'type' => 'color',
'label' => __pl('border_color_label'),
'css' => ['{{element}} .pagelayer-before-btn, {{element}} .pagelayer-after-btn' => 'border-color: {{val}};'],
'req' => array(
'!btn_border_type' => ''
),
),
'btn_border_width' => array(
'type' => 'padding',
'label' => __pl('border_width'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-before-btn, {{element}} .pagelayer-after-btn' => 'border-top-width: {{val[0]}}px; border-right-width: {{val[1]}}px; border-bottom-width: {{val[2]}}px; border-left-width: {{val[3]}}px'],
'req' => [
'!btn_border_type' => ''
],
),
'btn_border_radius' => array(
'type' => 'padding',
'label' => __pl('border_radius'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-before-btn, {{element}} .pagelayer-after-btn' => 'border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px; -webkit-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;-moz-border-radius: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}}px;'],
'req' => array(
'!btn_border_type' => '',
),
),
'btn_position' => array(
'type' => 'slider',
'label' => __pl('button_position'),
'max' => '100',
'min' => '0',
'screen' => 1,
'css' => ['{{element}} .pagelayer-before-after-slider-horizontal .pagelayer-before-btn, {{element}} .pagelayer-before-after-slider-horizontal .pagelayer-after-btn' => 'top: {{val}}%;transform: translateY(-{{val}}%);','{{element}} .pagelayer-before-after-slider-vertical .pagelayer-before-btn, {{element}} .pagelayer-before-after-slider-vertical .pagelayer-after-btn' => 'left: {{val}}%;transform: translateX(-{{val}}%);'],
'req' => array(
'bf_button' => 'true',
),
),
'before_btn_text' => array(
'type' => 'text',
'label' => __pl('before_text'),
'default' => __pl('Before'),
'req' => array(
'bf_button' => 'true'
),
),
'after_btn_text' => array(
'type' => 'text',
'label' => __pl('after_text'),
'default' => __pl('After'),
'req' => array(
'bf_button' => 'true'
),
),
'btn_typo' => array(
'type' => 'typography',
'label' => __pl('typography'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-before-btn, {{element}} .pagelayer-after-btn' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
'req' => ['bf_button' => 'true']
),
'before_spacing' => array(
'type' => 'padding',
'label' => __pl('before_button_spacing'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-before-btn' => 'margin-top:{{val[0]}}px; margin-right:{{val[1]}}px; margin-bottom:{{val[2]}}px; margin-left:{{val[3]}}px;'],
'req' => ['bf_button' => 'true']
),
'after_spacing' => array(
'type' => 'padding',
'label' => __pl('after_button_spacing'),
'screen' => 1,
'css' => ['{{element}} .pagelayer-after-btn' => 'margin-top:{{val[0]}}px; margin-right:{{val[1]}}px; margin-bottom:{{val[2]}}px; margin-left:{{val[3]}}px;'],
'req' => ['bf_button' => 'true']
)
],
'styles' => [
'icon_style' => __pl('icon_style'),
'resizer_style' => __pl('resizer'),
'bf_btn_style' => __pl('Before After Button'),
]
)
);
pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_image_map', array(
'name' => __pl('image_map'),
'group' => 'other',
'html' => '
<div class="pagelayer-imgmap-container">
<div class="pagelayer-imgmap-wrapper">
<svg class="pagelayer-imgmap-svg">
<g>{{pagelayer_map_path}}</g>
</svg>
<div class="pagelayer-imgmap-coordinates-wraper"></div>
</div>
<img class="pagelayer-img pagelayer-animation-{{anim_hover}}" src="{{map_img_id}}" title="{{{map_img-id-title}}}" alt="{{{map_img-id-alt}}}" srcset="{{pagelayer-srcset}}" />
</div>',
'params' => array(
'map_img-id' => array(
'type' => 'image',
'label' => __pl('Image'),
'desc' => __pl('image_src_desc'),
'default' => PAGELAYER_URL.'/images/default-image.png',
'retina' => 0,
),
'img_map-size' => array(
'label' => __pl('obj_image_size_label'),
'type' => 'select',
'default' => 'full',
'list' => array(
'full' => __pl('full'),
'large' => __pl('large'),
'medium' => __pl('medium'),
'thumbnail' => __pl('thumbnail'),
'custom' => __pl('custom')
)
),
'custom_size' => array(
'label' => __pl('image_custom_size_label'),
'type' => 'text',
'screen' => 1,
'default' => '100x100',
'sep' => 'x',
'css' => ['{{element}} img' => 'width: {{val[0]}}px; height: {{val[1]}}px;'],
'req' => array(
'img_map-size' => 'custom'
),
),
'align' => array(
'label' => __pl('obj_align_label'),
'type' => 'radio',
'default' => 'center',
'screen' => 1,
'css' => ['{{element}} .pagelayer-imgmap-container' => 'text-align: {{val}}'],
'list' => array(
'left' => __pl('left'),
'center' => __pl('center'),
'right' => __pl('right')
)
),
'max-width' => array(
'label' => __pl('max-width-percent'),
'type' => 'slider',
'min' => 0,
'max' => 100,
'screen' => 1,
'css' => ['{{element}} img' => 'max-width: {{val}}%'],
),
'pagelayer_image_map' => array(
'type' => 'hidden',
'default' => ''
),
),
'area_styles' => [
'show_area' =>array(
'label' => __pl('show_area' ),
'desc' => __pl('show_area_to_live'),
'type' => 'checkbox',
'css' => ['{{element}} .pagelayer-imgmap-item.pagelayer-map-item-active, {{element}} .pagelayer-imgmap-hover-active .pagelayer-imgmap-item:hover' => 'opacity: 1'],
),
'area_bg' => array(
'type' => 'color',
'label' => __pl('bg_color'),
'default' => '#FFABAB',
'css' => ['{{element}} .pagelayer-imgmap-item.pagelayer-map-item-active, {{element}} .pagelayer-map-item-active_is_editable, {{element}} .pagelayer-imgmap-hover-active .pagelayer-imgmap-item:hover' => 'fill: {{val}}'],
'req' => array(
'show_area' => 'true'
)
),
'area_cord_color' => array(
'type' => 'color',
'label' => __pl('cord_color'),
'default' => '#F70E0E',
'css' => ['{{element}} .pagelayer-imgmap-item.pagelayer-map-item-active, {{element}} .pagelayer-map-item-active_is_editable, {{element}} .pagelayer-imgmap-hover-active .pagelayer-imgmap-item:hover' => 'stroke: {{val}}'],
'req' => array(
'show_area' => 'true'
)
)
],
'styles' => [
'area_styles' => __pl('Area Style')
],
)
); main/freemium_functions.php 0000644 00000077004 15152652100 0012107 0 ustar 00 <?php
//////////////////////////////////////////////////////////////
//===========================================================
// freemium_functions.php
//===========================================================
// PAGELAYER
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Pulkit Gupta
// Date: 23rd Jan 2017
// Time: 23:00 hrs
// Site: http://pagelayer.com/wordpress (PAGELAYER)
// ----------------------------------------------------------
// Please Read the Terms of use at http://pagelayer.com/tos
// ----------------------------------------------------------
//===========================================================
// (c)Pagelayer Team
//===========================================================
//////////////////////////////////////////////////////////////
// Are we being accessed directly ?
if(!defined('PAGELAYER_PRO_VERSION')) {
exit('Hacking Attempt !');
}
// Get page title - 2C
function pagelayer_get_the_title( $including_context = false ) {
$title = '';
if(pagelayer_is_live() || wp_doing_ajax() || pagelayer_is_gutenberg_editor()){
return 'Title';
}
if ( is_singular() ) {
$title = get_the_title();
if ( $including_context ) {
$post_type_obj = get_post_type_object( get_post_type() );
$title = sprintf( '%s: %s', $post_type_obj->labels->singular_name, $title );
}
} elseif ( is_search() ) {
$title = sprintf( __( 'Search Results for: %s'), get_search_query() );
if ( get_query_var( 'paged' ) ) {
$title .= sprintf( __( ' – Page %s' ), get_query_var( 'paged' ) );
}
} elseif ( is_category() ) {
$title = single_cat_title( '', false );
if ( $including_context ) {
$title = sprintf( __( 'Category Archives: %s' ), $title );
}
} elseif ( is_tag() ) {
$title = single_tag_title( '', false );
if ( $including_context ) {
$title = sprintf( __( 'Tag Archives: %s' ), $title );
}
} elseif ( is_author() ) {
$title = get_the_author() ;
if ( $including_context ) {
$title = sprintf( __( 'Author Archives: %s' ), $title );
}
} elseif ( is_year() ) {
$title = get_the_date( _x( 'Y', 'yearly archives date format' ) );
if ( $including_context ) {
$title = sprintf( __( 'Yearly Archives: %s' ), $title );
}
} elseif ( is_month() ) {
$title = get_the_date( _x( 'F Y', 'monthly archives date format' ) );
if ( $including_context ) {
$title = sprintf( __( 'Monthly Archives: %s' ), $title );
}
} elseif ( is_day() ) {
$title = get_the_date( _x( 'F j, Y', 'daily archives date format' ) );
if ( $including_context ) {
$title = sprintf( __( 'Daily Archives: %s' ), $title );
}
} elseif ( is_tax( 'post_format' ) ) {
if ( is_tax( 'post_format', 'post-format-aside' ) ) {
$title = _x( 'Asides', 'post format archive title' );
} elseif ( is_tax( 'post_format', 'post-format-gallery' ) ) {
$title = _x( 'Galleries', 'post format archive title' );
} elseif ( is_tax( 'post_format', 'post-format-image' ) ) {
$title = _x( 'Images', 'post format archive title' );
} elseif ( is_tax( 'post_format', 'post-format-video' ) ) {
$title = _x( 'Videos', 'post format archive title' );
} elseif ( is_tax( 'post_format', 'post-format-quote' ) ) {
$title = _x( 'Quotes', 'post format archive title' );
} elseif ( is_tax( 'post_format', 'post-format-link' ) ) {
$title = _x( 'Links', 'post format archive title' );
} elseif ( is_tax( 'post_format', 'post-format-status' ) ) {
$title = _x( 'Statuses', 'post format archive title' );
} elseif ( is_tax( 'post_format', 'post-format-audio' ) ) {
$title = _x( 'Audio', 'post format archive title' );
} elseif ( is_tax( 'post_format', 'post-format-chat' ) ) {
$title = _x( 'Chats', 'post format archive title' );
}
} elseif ( is_post_type_archive() ) {
$title = post_type_archive_title( '', false );
if ( $including_context ) {
$title = sprintf( __( 'Archives: %s' ), $title );
}
} elseif ( is_tax() ) {
$title = single_term_title( '', false );
if ( $including_context ) {
$tax = get_taxonomy( get_queried_object()->taxonomy );
$title = sprintf( __( '%1$s: %2$s' ), $tax->labels->singular_name, $title );
}
} elseif ( is_404() ) {
$title = __( 'Page Not Found' );
} elseif ( is_archive() ) {
$title = get_the_archive_title();
} elseif ( is_home() ) {
$title = single_post_title('', false);
}
return $title;
}
// Get Taxonomies
function pagelayer_tax_list($item = '', $page = false){
// Get types
$types = pagelayer_post_types($page);
// Loop thru
foreach($types as $slug => $label){
// Get the items
$items = get_object_taxonomies($slug, 'objects');
foreach($items as $name => $v) {
if(!isset($taxonomies[$name])){
$taxonomies[$name] = array('label' => $v->labels->singular_name, 'posttypes' => array($label));
}else{
$taxonomies[$name]['posttypes'][] = $label;
}
}
}
// Make it simple
foreach($taxonomies as $k => $v){
$taxonomies[$k] = $v['label'].' ('.implode(', ', $v['posttypes']).')';
}
$pos = array_search($item, array_keys($taxonomies));
if(!empty($pos)) {
$cut = array_splice($taxonomies, $pos, 1);
$taxonomies = $cut + $taxonomies;
}
return $taxonomies;
}
/////////////////////////////////////
// Miscellaneous Shortcode Functions
/////////////////////////////////////
// The types of Posts
function pagelayer_post_types($page = false){
// Get the types
$args = array('public' => TRUE);
$types = get_post_types($args, 'objects');
// Unset Page if not required
if($page == false){
unset($types['page']);
}
// Remove Attachment types !
unset($types['attachment']);
foreach($types as $name => $type){
$return[$name] = $type->labels->singular_name;
}
return $return;
}
// Get all posts and pages list
function pagelayer_get_posts($args = array()){
if(empty($args)){
$args = array_keys(pagelayer_post_types(true));
}
$posts_list = array();
// Get type
foreach($args as $p){
// Create post list
foreach(get_posts(['post_type' => $p]) as $post){
$posts_list[$post->ID] = $post->post_title;
}
}
return $posts_list;
}
// Get Menu List()
function pagelayer_get_menu_list($return_def = false){
$menus = wp_get_nav_menus();
$nav_menu = array(
'0' => __('-- Select Menu --')
);
if(empty($menus)){
return $nav_menu;
}
$default = $menus[0]->term_id;
foreach ( $menus as $menu ) {
$nav_menu[$menu->term_id] = $menu->name;
if($default > $menu->term_id){
$default = $menu->term_id;
}
}
if($return_def){
return $default;
}
return $nav_menu;
}
// Animated Heading
function pagelayer_sc_anim_heading(&$el){
$el['atts']['rotate_html'] = '';
//Creates html for rotating text
if(!empty($el['atts']['rotate_text'])){
$rotate_text = '';
$rotate_text = explode(',', $el['atts']['rotate_text']);
$el['atts']['rotate_html'] .= '<div class="pagelayer-animated-heading pagelayer-rotating-text pagelayer-words-wrapper">';
//print_r($rotate_text);
foreach($rotate_text as $key => $val){
//print_r($key);
$el['atts']['rotate_html'] .= '<span';
if( $key == 0){
$el['atts']['rotate_html'] .= ' class="pagelayer-is-visible"';
}
$el['atts']['rotate_html'] .= '>' . $rotate_text[$key] . '</span>';
}
$el['atts']['rotate_html'] .= '</div>';
}
//Required classes for particular rotate
$el['atts']['rotate_req'] = '';
$letters = ['pagelayer-aheading-rotate2', 'pagelayer-aheading-rotate3', 'pagelayer-aheading-scale'];
if(!empty($el['atts']['animations'])){
if(in_array($el['atts']['animations'], $letters)){
$el['atts']['rotate_req'] = 'letters ';
}
if($el['atts']['animations'] == 'clip'){
$el['atts']['rotate_req'] = 'is-full-width ';
}
}
}
// Contact Form
function pagelayer_sc_contact(&$el){
$recaptcha_version = get_option('pagelayer_recaptcha_version', '');
$el['atts']['grecaptcha'] = get_option('pagelayer_google_captcha');
if(!empty($el['atts']['captcha'])){
if($recaptcha_version == 'v3'){
$el['atts']['grecaptcha_v3'] = true;
}else{
$el['atts']['grecaptcha_v2'] = true;
}
if(!wp_script_is('pagelayer_cap_script', 'registered')){
$pagelayer_cap_lang = get_option('pagelayer_google_captcha_lang');
$lang = empty($pagelayer_cap_lang) ? '' : '&hl='.$pagelayer_cap_lang;
$cap_api = ($recaptcha_version == 'v3') ? $el['atts']['grecaptcha'].$lang : "explicit$lang";
wp_register_script('pagelayer_cap_script', "https://www.google.com/recaptcha/api.js?render=$cap_api", array(), PAGELAYER_PRO_VERSION, true);
}
wp_enqueue_script('pagelayer_cap_script');
}
}
// Contact Form Item
function pagelayer_sc_contact_item(&$el){
$html = '';
$options = array();
$placeholder = '';
$required = '';
if(!empty($el['atts']['required'])){
$required = 'required';
}
if(!empty($el['atts']['label_name']) && empty($el['atts']['label_as_holder'])){
$html = '<label for="'.pagelayer_isset($el['atts'], 'field_name').'"><span class="pagelayer-form-label">'.$el['atts']['label_name'].'</span>';
if(!empty($required)){
$html .= ' *';
}
$html .= '</label>';
}
if(!empty($el['atts']['label_as_holder'])){
$placeholder = $el['atts']['label_name'];
}else{
if(!empty($el['atts']['placeholder'])) $placeholder = $el['atts']['placeholder'];
}
// File accept
$file_accept = '.jpg,.jpeg,.png,.gif,.pdf,.doc,.docx,.ppt,.pptx,.odt,.avi,.ogg,.m4a,.mov,.mp3,.mp4,.mpg,.wav,.wmv';
if(!empty($el['atts']['accept_file'])){
$file_accept = $el['atts']['accept_file'];
}
if($el['atts']['field_type'] == 'select'){
$html .= '<select name="'.$el['atts']['field_name'].'" '.$required.'>';
if(!empty($el['atts']['label_name']) && !empty($el['atts']['label_as_holder'])){
$html .= '<option value="" disabled selected>'.$el['atts']['label_name'].'</option>';
}else{
$html .= '<option value="" disabled selected>---</option>';
}
if(!empty($el['atts']['values'])){
$options = explode("\n", $el['atts']['values']);
for($x = 0; $x < sizeof($options); $x++){
$html .= '<option value="'.trim($options[$x]).'" >'.trim($options[$x]).'</option>';
}
}
$html .= '</select>';
}elseif($el['atts']['field_type'] == 'checkbox'){
$html .= '<div class="pagelayer-radcheck-holder pagelayer-contact-checkbox" '.$required.'>';
if(!empty($el['atts']['values'])){
$options = explode("\n", $el['atts']['values']);
for($x = 0; $x < sizeof($options); $x++){
$html .= '<div><input type="checkbox" id="'.$el["id"].trim($options[$x]).'" name="'.$el['atts']['field_name'].'[]" value="'.trim($options[$x]).'"/><label for="'.$el["id"].trim($options[$x]).'" class="pagelayer-form-label">'.trim($options[$x]).'</label></div>';
}
}
$html .= '</div>';
}elseif($el['atts']['field_type'] == 'radio'){
$html .= '<div class="pagelayer-radcheck-holder">';
if(!empty($el['atts']['values'])){
$options = explode("\n", $el['atts']['values']);
for($x = 0; $x < sizeof($options); $x++){
$html .= '<div><input type="radio" name="'.$el['atts']['field_name'].'"'.$required.' value="'.trim($options[$x]).'"/><span>
'.trim($options[$x]).'</span></div>';
}
}
$html .= '</div>';
}elseif($el['atts']['field_type'] == 'textarea'){
$html .= '<textarea name="'.$el['atts']['field_name'].'" rows="'.$el['atts']['textarea_rows'].'" '.$required.' placeholder="'.$placeholder.'"></textarea>';
}elseif($el['atts']['field_type'] == 'file'){
$html .= '<input type="'.$el['atts']['field_type'].'" '.$required.' name="'.$el['atts']['field_name'].'" accept="'.$file_accept.'" />';
}elseif($el['atts']['field_type'] == 'label'){
$html .= '';
}else{
$html .= '<input type="'.$el['atts']['field_type'].'" '.$required.' placeholder="'.$placeholder.'" name="'.$el['atts']['field_name'].'" />';
}
$el['atts']['fieldhtml'] = $html;
}
// Featured Image Handler
function pagelayer_sc_featured_img(&$el){
// Image size
if(!empty($el['atts']['size'])){
$size = $el['atts']['size'];
}
$thumbnail_id = get_post_thumbnail_id();
$title = $alt = '';
if(!empty($thumbnail_id)){
$title = get_the_title($thumbnail_id);
$alt = get_post_meta($thumbnail_id, '_wp_attachment_image_alt', true);
}
if($size){
$src = get_the_post_thumbnail_url(null, $size);
}else{
$src = get_the_post_thumbnail_url();
}
// Fallback image
if(empty($src) && !empty($el['atts']['img'])){
$src = !empty($el['tmp']['img-'.$size.'-url']) ? $el['tmp']['img-'.$size.'-url'] : pagelayer_isset($el['tmp'], 'img-url');
$alt = $el['tmp']['img-alt'];
$title = $el['tmp']['img-title'];
}
$el['atts']['img_html'] = '';
if(!empty($src)){
$el['atts']['img_html'] = '<img class="pagelayer-img" src="'.$src.'" title="'.$title.'" alt="'.$alt.'" />';
}elseif(pagelayer_is_live_template()){
$el['atts']['img_html'] = '<img class="pagelayer-img" src="'.PAGELAYER_URL.'/images/default-image.png" />';
}
// What is the link ?
if(!empty($el['atts']['link_type'])){
// Custom url
if($el['atts']['link_type'] == 'custom_url'){
// Backward compatibility for new link props
pagelayer_add_link_backward($el, array( 'rel' => '', 'selector' => '.pagelayer-ele-link'));
$el['atts']['func_link'] = empty($el['tmp']['link']) ? '' : $el['tmp']['link'];
}
// Link to the media file itself
if($el['atts']['link_type'] == 'media_file' || $el['atts']['link_type'] == 'lightbox'){
$el['atts']['func_link'] = $src;
}
}
}
// Site Title Handler
function pagelayer_sc_wp_title(&$el){
// Decide the image URL
$el['atts']['func_image'] = pagelayer_isset($el['tmp'], 'id-' . pagelayer_isset($el['atts'], 'id-size') . '-url');
$el['atts']['func_image'] = empty($el['atts']['func_image']) ? pagelayer_isset($el['tmp'], 'id-url') : $el['atts']['func_id'];
// Default Logo
if(empty($el['atts']['logo_img_type'])){
// Load it
$logo = pagelayer_site_logo();
// Only if we get it
if(!empty($logo)){
$logo_img_size = pagelayer_isset($el['atts'], 'logo_img_size');
$el['atts']['func_image'] = pagelayer_isset($logo, $logo_img_size.'-url');
$el['atts']['func_image'] = empty($el['atts']['func_image']) ? pagelayer_isset($logo, 'url') : $el['atts']['func_image'];
$el['tmp']['logo_img-title'] = pagelayer_isset($logo, 'title');
$el['tmp']['logo_img-alt'] = pagelayer_isset($logo, 'alt');
}
// Custom logo
}else{
$logo_img_size = pagelayer_isset($el['atts'], 'logo_img_size');
$el['atts']['func_image'] = pagelayer_isset($el['tmp'], 'logo_img-' . $logo_img_size . '-url');
$el['atts']['func_image'] = empty($el['atts']['func_image']) ? pagelayer_isset($el['tmp'], 'logo_img-url') : $el['atts']['func_image'];
$el['tmp']['logo_img-title'] = pagelayer_isset($el['tmp'],'logo_img-title');
$el['tmp']['logo_img-alt'] = pagelayer_isset($el['tmp'], 'logo_img-alt');
}
}
// Primary menu Handler
function pagelayer_sc_wp_menu(&$el){
if(!empty($el['atts']['inside_mega'])){
$el['atts']['nav_menu'] = '';
if(pagelayer_is_live()){
$el['atts']['nav_menu'] = 'Primary Menu Holder. Please select the correct menu.';
}
return true;
}
// Setting default toggle icon. If the icon is empty.
if(empty($el['atts']['menu_toggle_icon'])){
$el['atts']['menu_toggle_icon'] = 'fas fa-bars';
}
// Load Pagelayer nav menu walker
include_once(PAGELAYER_DIR.'/main/nav_walker.php');
$el['atts']['nav_menu'] = wp_nav_menu( array(
'menu' => wp_get_nav_menu_object(pagelayer_isset($el['atts'], 'nav_list')),
'menu_id' => pagelayer_isset($el['atts'], 'nav_list'),
'menu_class' => 'pagelayer-wp_menu-ul',
'walker' => new Pagelayer_Walker_Nav_Menu(),
//'theme_location' => 'primary',
'echo' => false,
) );
}
// Post Navigation Handler
function pagelayer_sc_post_nav(&$el){
$in_same_term = false;
$taxonomies = 'category';
$title = '';
$arrows_list = $el['atts']['arrows_list'];
if(!empty($el['atts']['in_same_term'])){
$in_same_term = true;
$taxonomies = $el['atts']['taxonomies'];
}
if(!empty($el['atts']['post_title'])){
$title = '<span class="pagelayer-post-nav-title">%title</span>';
}
$next_label = '<span class="pagelayer-next-holder">
<span class="pagelayer-post-nav-link"> '.$el["atts"]["next_label"].'</span>'.$title.'
</span>
<span class="pagelayer-post-nav-icon fa fa-'.$arrows_list.'-right"></span>';
$prev_label = '<span class="pagelayer-post-nav-icon fa fa-'.$arrows_list.'-left"></span>
<span class="pagelayer-next-holder">
<span class="pagelayer-post-nav-link"> '.$el["atts"]["prev_label"].'</span>'.$title.'
</span>';
$el['atts']['next_link'] = get_next_post_link('%link', $next_label, $in_same_term, '', $taxonomies);
$el['atts']['prev_link'] = get_previous_post_link('%link', $prev_label, $in_same_term, '', $taxonomies );
}
// Comments Handler
function pagelayer_sc_post_comment(&$el){
global $post;
// Is it custom ?
if($el['atts']['post_type'] == 'custom' && !empty($el['atts']['post_id'])){
$orig_post = $post;
$post = get_post($el['atts']['post_id']);
}
$post_id = $post->ID;
//echo $post_id.' - '.$el['atts']['post_id'];
if ( comments_open($post_id) || get_comments_number($post_id) ) {
// Handel comments template echo
ob_start();
comments_template();
$el['atts']['post_comment'] = '<div class="pagelayer-comments-template">'.ob_get_clean().'</div>';
// Comments are now closed
if(!comments_open($post_id)){
$el['atts']['post_comment'] = '<div class="pagelayer-comments-close">
<h2>Comments are closed!</h2>
</div>';
}
}else{
$el['atts']['post_comment'] = '';
}
if(pagelayer_is_live_template() || $post->post_type == 'pagelayer-template'){
$el['atts']['post_comment'] = '<div class="pagelayer-comments-close">
<center><h4>Comments section !</h4></center>
</div>';
}
if(!empty($orig_post)){
$post = $orig_post;
}
}
// post navigation Handler
function pagelayer_sc_post_info_list(&$el){
global $post;
$el['atts']['post_info_content'] ='';
switch($el['atts']['type']){
case 'author':
$author_id = get_the_author_meta( 'ID' ) ? get_the_author_meta( 'ID' ) : $GLOBALS['post']->post_author;
$el['atts']['link'] = get_author_posts_url( $author_id );
$el['atts']['avatar_url'] = get_avatar_url( $author_id, 96 );
$el['atts']['post_info_content'] = get_the_author_meta( 'display_name', $author_id );
break;
case 'date':
$format = [
'default' => 'F j, Y',
'0' => 'F j, Y',
'1' => 'Y-m-d',
'2' => 'm/d/Y',
'3' => 'd/m/Y',
'custom' => empty( $el['atts']['date_format_custom'] ) ? 'F j, Y' : $el['atts']['date_format_custom'],
];
$el['atts']['post_info_content'] = get_the_time( $format[ $el['atts']['date_format'] ] );
$el['atts']['link'] = get_day_link( get_post_time( 'Y' ), get_post_time( 'm' ), get_post_time( 'j' ) );
break;
case 'time':
$format = [
'default' => 'g:i a',
'0' => 'g:i a',
'1' => 'g:i A',
'2' => 'H:i',
'custom' => empty( $el['atts']['time_format_custom'] ) ? 'F j, Y' : $el['atts']['time_format_custom'],
];
$el['atts']['post_info_content'] = get_the_time( $format[ $el['atts']['time_format'] ] );
if(!pagelayer_is_live_template()){
$el['atts']['link'] = 'javascript:void(0)';
$el['atts']['info_link'] = 1;
}
break;
case 'comments':
$el['atts']['post_info_content'] = (int) get_comments_number();
$el['atts']['link'] = get_comments_link();
// Comments are closed then dont show !
if(pagelayer_is_live_template() || $GLOBALS['post']->post_type == 'pagelayer-template'){
$el['atts']['post_info_content'] = 1;
}elseif(!comments_open($post->ID)){
$el['atts']['post_info_content'] = '';
}
break;
case 'terms':
$taxonomy = $el['atts']['taxonomy'];
$terms = wp_get_post_terms( get_the_ID(), $taxonomy );
foreach ( $terms as $term ) {
$el['atts']['post_info_content'] .= ' <a href="'. get_term_link( $term ) .'"> '. $term->name .' </a>';
}
if(pagelayer_is_live_template() || $GLOBALS['post']->post_type == 'pagelayer-template'){
$el['atts']['post_info_content'] .= '<a>Dummy '.ucfirst(str_replace('_', ' ', $el['atts']['taxonomy'])).'</a>';
}
$el['atts']['info_link'] = '';
break;
case 'custom':
$el['atts']['post_info_content'] = $el['atts']['type_custom'];
$el['atts']['link'] = $el['atts']['info_custom_link'];
break;
}
}
// Post Content Handler - 2C
function pagelayer_sc_post_content(&$el){
static $did_posts = [];
global $pagelayer;
$post_obj = get_post();
if(empty( $post_obj )){
return false;
}
if ( post_password_required( $post_obj->ID ) && !pagelayer_is_live() ) {
$el['atts']['post_content'] = get_the_password_form( $post_obj->ID );
return;
}
// Avoid recursion
if ( isset( $did_posts[$post_obj->ID] ) || pagelayer_is_live_template($post_obj) ) {
$el['atts']['post_content'] = '<div style="min-height:20px;background-color:#e3e3e3;text-align:center">Post Content Holder</div>';
return;
}
// Is it an attachment
if(is_attachment()){
$el['atts']['post_content'] = '<center>'.wp_get_attachment_image( get_the_ID(), 'full' ).'</center>';
return;
}
// To prevent recursion, set it to True
$did_posts[$post_obj->ID] = true;
$content = $post_obj->post_content;
// If we are rendering a template and this post content is being edited live, then dont_make_editable is set true in pagelayer_get_post_content. Hence we need to set it as false and revert it after rendering the posts content !
if(!empty($pagelayer->dont_make_editable)){
$reset = $pagelayer->dont_make_editable;
$pagelayer->dont_make_editable = false;
// While rendering post content inside the template
$rendering_template_id = $pagelayer->rendering_template_id;
$pagelayer->rendering_template_id = $post_obj->ID;
}
// Split to pages.
setup_postdata( $post_obj );
$content = apply_filters( 'the_content', get_the_content() );
if(!empty($reset)){
$pagelayer->rendering_template_id = $rendering_template_id;
$pagelayer->dont_make_editable = $reset;
}
$content .= wp_link_pages( array(
'before' => '<p class="post-nav-links pagelayer-page-links"><span class="page-links-title pagelayer-page-links-title">' . __( 'Pages:') . '</span>',
'after' => '</p>',
'echo' => 0,
)
);
$el['atts']['post_content'] = $content;
}
// Archive Posts shows the posts as per the QUERY of the current page
function pagelayer_sc_archive_posts(&$el){
global $wp_query, $pagelayer;
$query_args = $wp_query->query_vars;
if(pagelayer_is_live() || (wp_doing_ajax() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'pagelayer_archive_posts_data')){
$query_args = ['post_type' => 'post'];
$dummy_pagination = 10;
}
$allow_param = array('show_thumb', 'thumb_size', 'show_content', 'show_title', 'more', 'btn_type', 'size', 'icon_position', 'icon', 'show_more', 'meta_sep', 'exc_length', 'thumb_img_type', 'infinite_types' );
$param = array();
foreach($allow_param as $val){
$param[$val] = !empty($el['atts'][$val]) ? $el['atts'][$val] : '';
}
if(!empty($el['atts']['meta'])){
$meta_arr = explode(',',$el['atts']['meta']);
//pagelayer_print($el['atts']['meta']);
foreach($meta_arr as $arr){
$param[$arr] = $arr;
}
}
if(!empty($el['atts']['thumb_img_type'])){
$thumb_size = pagelayer_isset($el['atts'], 'thumb_size');
$img_size = pagelayer_isset($el['tmp'], 'def_thumb_img-'.$thumb_size.'-url');
$param['def_thumb_img'] = empty($img_size) ? pagelayer_isset($el['tmp'], 'def_thumb_img-url') : $img_size;
}
$el['atts']['pagelayer_pagination_top'] = '';
$el['atts']['pagelayer_pagination_bottom'] = '';
if(!empty($el['atts']['pagination']) && empty($el['atts']['infinite_types'])){
// Create array for pagination
$pagination = array(
'prev_next' => $el['atts']['pagination'] == 'number' ? false : true,
'prev_text' => __( pagelayer_isset($el['atts'], 'pagi_prev_text') ),
'next_text' => __( pagelayer_isset($el['atts'], 'pagi_next_text') ),
'end_size' => $el['atts']['pagi_end_size'],
'mid_size' => $el['atts']['pagi_mid_size'],
'before_page_number' => pagelayer_isset($el['atts'], 'before_page_number'),
'after_page_number' => pagelayer_isset($el['atts'], 'after_page_number'),
);
if(!empty($dummy_pagination)){
$pagination['total'] = 10;
}
if( isset($el['atts']['pagination_on']) && $el['atts']['pagination_on'] == 'top'){
$el['atts']['pagelayer_pagination_top'] = '<div class="pagelayer-pagination">'.paginate_links($pagination).'</div>';
}else{
$el['atts']['pagelayer_pagination_bottom'] = '<div class="pagelayer-pagination">'.paginate_links($pagination).'</div>';
}
}
if(wp_doing_ajax() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'pagelayer_infinite_posts'){
$query_args['paged'] = $el['atts']['paged'];
}else{
$data = array('tag' => $el['tag'], 'atts' => $el['oAtts']);
$pagelayer->localScript['pagelayer_post_'.$el['id']] = $data;
}
$el['atts']['pagelayer_archive_posts'] = pagelayer_posts($param, $query_args);
}
// Flipbox handler
function pagelayer_sc_flipbox(&$el){
// Flipbox front heading image
if(!empty($el['atts']['heading_image'])){
$heading_image_size = pagelayer_isset($el['atts'], 'heading_image_size');
$el['atts']['func_image'] = pagelayer_isset($el['tmp'], 'heading_image-'.$heading_image_size.'-url');
$el['atts']['func_image'] = empty($el['atts']['func_image']) ? pagelayer_isset($el['tmp'], 'heading_image-url') : $el['atts']['func_image'];
}
$back = pagelayer_isset($el['atts'], 'back_section');
if(pagelayer_is_live() && !empty($back)){
$el['attr'][] = 'back_section="'.$back.'"';
}
}
// Countdown handler
function pagelayer_sc_countdown(&$el){
$exp = pagelayer_isset($el['atts'], 'display_expired_text');
if(pagelayer_is_live() && !empty($exp)){
$el['attr'][] = 'display_expired_text="'.$exp.'"';
}
if(!isset($el['atts']['custom_label_text'])){
$el['atts']['days_label_text'] = 'Days';
$el['atts']['hours_label_text'] = 'Hours';
$el['atts']['minutes_label_text'] = 'Minutes';
$el['atts']['seconds_label_text'] = 'Seconds';
}
}
// Social Share Handler
function pagelayer_sc_share(&$el){
if(empty($el['atts']['icon'])){
return;
}
$profileName = '';
if(isset($el['atts']['custom_profile'])){
$profileName = $el['atts']['custom_profile'].'/';
}
$icon_splited = explode(' fa-', $el['atts']['icon']);
$el['classes'][] = ['.pagelayer-share-content' => 'pagelayer-'.$icon_splited[1]];
$icon = $icon_splited[1];
$labelList = array(
'Facebook' => array(
'icons' => array('facebook', 'facebook-f', 'facebook-messenger', 'facebook-square', 'facebook-official'),
'url' => 'https://www.facebook.com/sharer/sharer.php?u='
),
'Twitter' => array(
'icons' => array('twitter', 'twitter-square'),
'url' => 'https://twitter.com/intent/tweet?url='
),
'X' => array(
'icons' => array('x-twitter', 'x-twitter-square'),
'url' => 'https://x.com/intent/post?url='
),
'Google+' => array(
'icons' => array('google-plus', 'google-plus-square', 'google-plus-g'),
'url' => 'https://plus.google.com/share?url='
),
'Instagram' => array(
'icons' => array('instagram'),
'url' => 'https://www.instagram.com/'.$profileName,
'no' => 1
),
'Linkedin' => array(
'icons' => array('linkedin', 'linkedin-in', 'linkedin-square'),
'url' => 'https://www.linkedin.com/shareArticle?url='
),
'pinterest' => array(
'icons' => array('pinterest', 'pinterest-p', 'pinterest-square'),
'url' => '//www.pinterest.com/pin/create/button/?url='
),
'Reddit' => array(
'icons' => array('reddit-alien', 'reddit-square', 'reddit'),
'url' => 'https://reddit.com/submit?url='
),
'Skype' => array(
'icons' => array('skype'),
'url' => 'https://web.skype.com/share?',
'no' => 1
),
'Stumbleupon' => array(
'icons' => array('stumbleupon', 'stumbleupon-circle'),
'url' => 'https://www.stumbleupon.com/submit?url='
),
'Telegram' => array(
'icons' => array('telegram', 'telegram-plane'),
'url' => 'https://t.me/share/url?url='
),
'Tumblr' => array(
'icons' => array('tumblr', 'tumblr-square'),
'url' => 'https://www.tumblr.com/share/link?url='
),
'VK' => array(
'icons' => array('vk'),
'url' => 'http://vk.com/share.php?url='
),
'Weibo' => array(
'icons' => array('weibo'),
'url' => 'http://service.weibo.com/share/share.php?url='
),
'WhatsApp' => array(
'icons' => array('whatsapp', 'whatsapp-square'),
'url' => 'whatsapp://send?text='
),
'WordPress' => array(
'icons' => array('wordpress', 'wordpress-simple'),
'url' => 'https://wordpress.com/press-this.php?u='
),
'Xing' => array(
'icons' => array('xing', 'xing-square'),
'url' => 'https://www.xing.com/spi/shares/new?url='
),
'Delicious' => array(
'icons' => array('delicious'),
'url' => 'https://delicious.com/save?v=5&noui&jump=close&url='
),
'Dribbble' => array(
'icons' => array('dribbble', 'dribbble-square'),
'url' => 'https://dribbble.com/shots/'.$profileName,
'no' => 1
),
'Pocket' => array(
'icons' => array('get-pocket'),
'url' => 'https://getpocket.com/edit?url='
),
'Email' => array(
'icons' => array('envelope', 'envelope-open', 'envelope-o'),
'url' => 'mailto:?body='
)
);
if(!empty($el['atts']['text'])){
$el['atts']['icon_label'] = $el['atts']['text'];
}else{
foreach($labelList as $key => $val){
if(in_array($icon, $val['icons'])){
$el['atts']['icon_label'] = $key;
break;
}
}
}
foreach($labelList as $key => $val){
if(in_array($icon, $val['icons'])){
if(empty($val['no'])){
$el['atts']['social_url'] = $val['url'].$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
}else{
$el['atts']['social_url'] = $val['url'];
}
break;
}
}
}
// If the excerpt for current post is there only then give
function pagelayer_get_the_excerpt(){
global $post;
if(!empty($post->post_excerpt)){
return $post->post_excerpt;
}
return '';
}
function pagelayer_sc_post_excerpt(&$el){
$el['tmp']['post_excerpt'] = '';
$tmp_excerpt = pagelayer_get_the_excerpt();
if(!empty($tmp_excerpt) && strlen($tmp_excerpt) > 0){
$el['tmp']['post_excerpt'] = '<div class="pagelayer-post-excerpt">'.$tmp_excerpt.'</div>';
}
if(pagelayer_is_live_template()){
$el['tmp']['post_excerpt'] = '<div class="pagelayer-post-excerpt pagelayer-empty-widget"></div>';
}
}
function pagelayer_sc_copyright(&$el){
$el['atts']['copyright_text'] = pagelayer_get_option('pagelayer-copyright');
$el['oAtts']['copyright_text'] = $el['atts']['copyright_text'];
}
// Pricing Handler
function pagelayer_sc_pricing(&$el){
//Backward compatibility for new link props
pagelayer_add_link_backward($el, array(
'link' => 'button_url',
'rel' => '',
'target' => 'button_url_target',
'selector' => '.pagelayer-pricing-btn'
));
}
// Post Title
function pagelayer_sc_post_title(&$el){
$el['atts']['open_html_tag'] = !empty($el['atts']['html_tag']) ? '<'.$el['atts']['html_tag'].'>' :'';
$el['atts']['close_html_tag'] = !empty($el['atts']['html_tag']) ? '</'.$el['atts']['html_tag'].'>' :'';
} main/plugin-update-checker.php 0000644 00000151101 15152652100 0012355 0 ustar 00 <?php
/**
* Plugin Update Checker Library 3.2
* http://w-shadow.com/
*
* Copyright 2016 Janis Elsts
* Released under the MIT license. See license.txt for details.
*/
if ( !class_exists('PagelayerUpdateChecker_3_2', false) ):
/**
* A custom plugin update checker.
*
* @author Janis Elsts
* @copyright 2016
* @version 3.2
* @access public
*/
class PagelayerUpdateChecker_3_2 {
public $metadataUrl = ''; //The URL of the plugin's metadata file.
public $pluginAbsolutePath = ''; //Full path of the main plugin file.
public $pluginFile = ''; //Plugin filename relative to the plugins directory. Many WP APIs use this to identify plugins.
public $slug = ''; //Plugin slug.
public $optionName = ''; //Where to store the update info.
public $muPluginFile = ''; //For MU plugins, the plugin filename relative to the mu-plugins directory.
public $debugMode = false; //Set to TRUE to enable error reporting. Errors are raised using trigger_error()
//and should be logged to the standard PHP error log.
public $scheduler;
protected $upgraderStatus;
private $debugBarPlugin = null;
private $cachedInstalledVersion = null;
private $metadataHost = ''; //The host component of $metadataUrl.
/**
* Class constructor.
*
* @param string $metadataUrl The URL of the plugin's metadata file.
* @param string $pluginFile Fully qualified path to the main plugin file.
* @param string $slug The plugin's 'slug'. If not specified, the filename part of $pluginFile sans '.php' will be used as the slug.
* @param integer $checkPeriod How often to check for updates (in hours). Defaults to checking every 12 hours. Set to 0 to disable automatic update checks.
* @param string $optionName Where to store book-keeping info about update checks. Defaults to 'external_updates-$slug'.
* @param string $muPluginFile Optional. The plugin filename relative to the mu-plugins directory.
*/
public function __construct($metadataUrl, $pluginFile, $slug = '', $checkPeriod = 12, $optionName = '', $muPluginFile = ''){
$this->metadataUrl = $metadataUrl;
$this->pluginAbsolutePath = $pluginFile;
$this->pluginFile = plugin_basename($this->pluginAbsolutePath);
$this->muPluginFile = $muPluginFile;
$this->slug = $slug;
$this->optionName = $optionName;
$this->debugMode = (bool)(constant('WP_DEBUG'));
//If no slug is specified, use the name of the main plugin file as the slug.
//For example, 'my-cool-plugin/cool-plugin.php' becomes 'cool-plugin'.
if ( empty($this->slug) ){
$this->slug = basename($this->pluginFile, '.php');
}
//Plugin slugs must be unique.
$slugCheckFilter = 'puc_is_slug_in_use-' . $this->slug;
$slugUsedBy = apply_filters($slugCheckFilter, false);
if ( $slugUsedBy ) {
$this->triggerError(sprintf(
'Plugin slug "%s" is already in use by %s. Slugs must be unique.',
htmlentities($this->slug),
htmlentities($slugUsedBy)
), E_USER_ERROR);
}
add_filter($slugCheckFilter, array($this, 'getAbsolutePath'));
if ( empty($this->optionName) ){
$this->optionName = 'external_updates-' . $this->slug;
}
//Backwards compatibility: If the plugin is a mu-plugin but no $muPluginFile is specified, assume
//it's the same as $pluginFile given that it's not in a subdirectory (WP only looks in the base dir).
if ( (strpbrk($this->pluginFile, '/\\') === false) && $this->isUnknownMuPlugin() ) {
$this->muPluginFile = $this->pluginFile;
}
$this->scheduler = $this->createScheduler($checkPeriod);
$this->upgraderStatus = new Pagelayer_PucUpgraderStatus_3_2();
$this->installHooks();
}
/**
* Create an instance of the scheduler.
*
* This is implemented as a method to make it possible for plugins to subclass the update checker
* and substitute their own scheduler.
*
* @param int $checkPeriod
* @return Pagelayer_PucScheduler_3_2
*/
protected function createScheduler($checkPeriod) {
return new Pagelayer_PucScheduler_3_2($this, $checkPeriod);
}
/**
* Install the hooks required to run periodic update checks and inject update info
* into WP data structures.
*
* @return void
*/
protected function installHooks(){
//Override requests for plugin information
add_filter('plugins_api', array($this, 'injectInfo'), 20, 3);
//Insert our update info into the update array maintained by WP.
add_filter('site_transient_update_plugins', array($this,'injectUpdate')); //WP 3.0+
add_filter('transient_update_plugins', array($this,'injectUpdate')); //WP 2.8+
add_filter('site_transient_update_plugins', array($this, 'injectTranslationUpdates'));
add_filter('plugin_row_meta', array($this, 'addCheckForUpdatesLink'), 10, 2);
add_action('admin_init', array($this, 'handleManualCheck'));
add_action('all_admin_notices', array($this, 'displayManualCheckResult'));
//Clear the version number cache when something - anything - is upgraded or WP clears the update cache.
add_filter('upgrader_post_install', array($this, 'clearCachedVersion'));
add_action('delete_site_transient_update_plugins', array($this, 'clearCachedVersion'));
//Clear translation updates when WP clears the update cache.
//This needs to be done directly because the library doesn't actually remove obsolete plugin updates,
//it just hides them (see getUpdate()). We can't do that with translations - too much disk I/O.
add_action('delete_site_transient_update_plugins', array($this, 'clearCachedTranslationUpdates'));
if ( did_action('plugins_loaded') ) {
$this->initDebugBarPanel();
} else {
add_action('plugins_loaded', array($this, 'initDebugBarPanel'));
}
//Rename the update directory to be the same as the existing directory.
add_filter('upgrader_source_selection', array($this, 'fixDirectoryName'), 10, 3);
//Enable language support (i18n).
load_plugin_textdomain('plugin-update-checker', false, plugin_basename(dirname(__FILE__)) . '/languages');
//Allow HTTP requests to the metadata URL even if it's on a local host.
$this->metadataHost = @parse_url($this->metadataUrl, PHP_URL_HOST);
add_filter('http_request_host_is_external', array($this, 'allowMetadataHost'), 10, 2);
}
/**
* Explicitly allow HTTP requests to the metadata URL.
*
* WordPress has a security feature where the HTTP API will reject all requests that are sent to
* another site hosted on the same server as the current site (IP match), a local host, or a local
* IP, unless the host exactly matches the current site.
*
* This feature is opt-in (at least in WP 4.4). Apparently some people enable it.
*
* That can be a problem when you're developing your plugin and you decide to host the update information
* on the same server as your test site. Update requests will mysteriously fail.
*
* We fix that by adding an exception for the metadata host.
*
* @param bool $allow
* @param string $host
* @return bool
*/
public function allowMetadataHost($allow, $host) {
if ( strtolower($host) === strtolower($this->metadataHost) ) {
return true;
}
return $allow;
}
/**
* Retrieve plugin info from the configured API endpoint.
*
* @uses wp_remote_get()
*
* @param array $queryArgs Additional query arguments to append to the request. Optional.
* @return PagelayerInfo_3_2
*/
public function requestInfo($queryArgs = array()){
//Query args to append to the URL. Plugins can add their own by using a filter callback (see addQueryArgFilter()).
$installedVersion = $this->getInstalledVersion();
$queryArgs['installed_version'] = ($installedVersion !== null) ? $installedVersion : '';
$queryArgs = apply_filters('puc_request_info_query_args-'.$this->slug, $queryArgs);
//Various options for the wp_remote_get() call. Plugins can filter these, too.
$options = array(
'timeout' => 10, //seconds
'headers' => array(
'Accept' => 'application/json'
),
);
$options = apply_filters('puc_request_info_options-'.$this->slug, $options);
//The plugin info should be at 'http://your-api.com/url/here/$slug/info.json'
$url = $this->metadataUrl;
if ( !empty($queryArgs) ){
$url = add_query_arg($queryArgs, $url);
}
$result = wp_remote_get(
$url,
$options
);
//Try to parse the response
$status = $this->validateApiResponse($result);
$pluginInfo = null;
if ( !is_wp_error($status) ){
$pluginInfo = PagelayerInfo_3_2::fromJson($result['body']);
if ( $pluginInfo !== null ) {
$pluginInfo->filename = $this->pluginFile;
$pluginInfo->slug = $this->slug;
}
} else {
$this->triggerError(
sprintf('The URL %s does not point to a valid plugin metadata file. ', $url)
. $status->get_error_message(),
E_USER_WARNING
);
}
$pluginInfo = apply_filters('puc_request_info_result-'.$this->slug, $pluginInfo, $result);
return $pluginInfo;
}
/**
* Check if $result is a successful update API response.
*
* @param array|WP_Error $result
* @return true|WP_Error
*/
private function validateApiResponse($result) {
if ( is_wp_error($result) ) { /** @var WP_Error $result */
return new WP_Error($result->get_error_code(), 'WP HTTP Error: ' . $result->get_error_message());
}
if ( !isset($result['response']['code']) ) {
return new WP_Error('puc_no_response_code', 'wp_remote_get() returned an unexpected result.');
}
if ( $result['response']['code'] !== 200 ) {
return new WP_Error(
'puc_unexpected_response_code',
'HTTP response code is ' . $result['response']['code'] . ' (expected: 200)'
);
}
if ( empty($result['body']) ) {
return new WP_Error('puc_empty_response', 'The metadata file appears to be empty.');
}
return true;
}
/**
* Retrieve the latest update (if any) from the configured API endpoint.
*
* @uses PagelayerUpdateChecker::requestInfo()
*
* @return PagelayerUpdate_3_2 An instance of PagelayerUpdate, or NULL when no updates are available.
*/
public function requestUpdate(){
//For the sake of simplicity, this function just calls requestInfo()
//and transforms the result accordingly.
$pluginInfo = $this->requestInfo(array('checking_for_updates' => '1'));
if ( $pluginInfo == null ){
return null;
}
$update = PagelayerUpdate_3_2::fromPagelayerInfo($pluginInfo);
//Keep only those translation updates that apply to this site.
$update->translations = $this->filterApplicableTranslations($update->translations);
return $update;
}
/**
* Filter a list of translation updates and return a new list that contains only updates
* that apply to the current site.
*
* @param array $translations
* @return array
*/
private function filterApplicableTranslations($translations) {
$languages = array_flip(array_values(get_available_languages()));
$installedTranslations = wp_get_installed_translations('plugins');
if ( isset($installedTranslations[$this->slug]) ) {
$installedTranslations = $installedTranslations[$this->slug];
} else {
$installedTranslations = array();
}
$applicableTranslations = array();
foreach($translations as $translation) {
//Does it match one of the available core languages?
$isApplicable = array_key_exists($translation->language, $languages);
//Is it more recent than an already-installed translation?
if ( isset($installedTranslations[$translation->language]) ) {
$updateTimestamp = strtotime($translation->updated);
$installedTimestamp = strtotime($installedTranslations[$translation->language]['PO-Revision-Date']);
$isApplicable = $updateTimestamp > $installedTimestamp;
}
if ( $isApplicable ) {
$applicableTranslations[] = $translation;
}
}
return $applicableTranslations;
}
/**
* Get the currently installed version of the plugin.
*
* @return string Version number.
*/
public function getInstalledVersion(){
if ( isset($this->cachedInstalledVersion) ) {
return $this->cachedInstalledVersion;
}
$pluginHeader = $this->getPluginHeader();
if ( isset($pluginHeader['Version']) ) {
$this->cachedInstalledVersion = $pluginHeader['Version'];
return $pluginHeader['Version'];
} else {
//This can happen if the filename points to something that is not a plugin.
$this->triggerError(
sprintf(
"Can't to read the Version header for '%s'. The filename is incorrect or is not a plugin.",
$this->pluginFile
),
E_USER_WARNING
);
return null;
}
}
/**
* Get plugin's metadata from its file header.
*
* @return array
*/
protected function getPluginHeader() {
if ( !is_file($this->pluginAbsolutePath) ) {
//This can happen if the plugin filename is wrong.
$this->triggerError(
sprintf(
"Can't to read the plugin header for '%s'. The file does not exist.",
$this->pluginFile
),
E_USER_WARNING
);
return array();
}
if ( !function_exists('get_plugin_data') ){
/** @noinspection PhpIncludeInspection */
require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
}
return get_plugin_data($this->pluginAbsolutePath, false, false);
}
/**
* Check for plugin updates.
* The results are stored in the DB option specified in $optionName.
*
* @return PagelayerUpdate_3_2|null
*/
public function checkForUpdates(){
$installedVersion = $this->getInstalledVersion();
//Fail silently if we can't find the plugin or read its header.
if ( $installedVersion === null ) {
$this->triggerError(
sprintf('Skipping update check for %s - installed version unknown.', $this->pluginFile),
E_USER_WARNING
);
return null;
}
$state = $this->getUpdateState();
if ( empty($state) ){
$state = new stdClass;
$state->lastCheck = 0;
$state->checkedVersion = '';
$state->update = null;
}
$state->lastCheck = time();
$state->checkedVersion = $installedVersion;
$this->setUpdateState($state); //Save before checking in case something goes wrong
$state->update = $this->requestUpdate();
$this->setUpdateState($state);
return $this->getUpdate();
}
/**
* Load the update checker state from the DB.
*
* @return stdClass|null
*/
public function getUpdateState() {
$state = get_site_option($this->optionName, null);
if ( empty($state) || !is_object($state)) {
$state = null;
}
if ( isset($state, $state->update) && is_object($state->update) ) {
$state->update = PagelayerUpdate_3_2::fromObject($state->update);
}
return $state;
}
/**
* Persist the update checker state to the DB.
*
* @param StdClass $state
* @return void
*/
private function setUpdateState($state) {
if ( isset($state->update) && is_object($state->update) && method_exists($state->update, 'toStdClass') ) {
$update = $state->update; /** @var PagelayerUpdate_3_2 $update */
$state->update = $update->toStdClass();
}
update_site_option($this->optionName, $state);
}
/**
* Reset update checker state - i.e. last check time, cached update data and so on.
*
* Call this when your plugin is being uninstalled, or if you want to
* clear the update cache.
*/
public function resetUpdateState() {
delete_site_option($this->optionName);
}
/**
* Intercept plugins_api() calls that request information about our plugin and
* use the configured API endpoint to satisfy them.
*
* @see plugins_api()
*
* @param mixed $result
* @param string $action
* @param array|object $args
* @return mixed
*/
public function injectInfo($result, $action = null, $args = null){
$relevant = ($action == 'plugin_information') && isset($args->slug) && (
($args->slug == $this->slug) || ($args->slug == dirname($this->pluginFile))
);
if ( !$relevant ) {
return $result;
}
$pluginInfo = $this->requestInfo();
$pluginInfo = apply_filters('puc_pre_inject_info-' . $this->slug, $pluginInfo);
if ( $pluginInfo ) {
return $pluginInfo->toWpFormat();
}
return $result;
}
/**
* Insert the latest update (if any) into the update list maintained by WP.
*
* @param StdClass $updates Update list.
* @return StdClass Modified update list.
*/
public function injectUpdate($updates){
//Is there an update to insert?
$update = $this->getUpdate();
//No update notifications for mu-plugins unless explicitly enabled. The MU plugin file
//is usually different from the main plugin file so the update wouldn't show up properly anyway.
if ( $this->isUnknownMuPlugin() ) {
$update = null;
}
if ( !empty($update) ) {
//Let plugins filter the update info before it's passed on to WordPress.
$update = apply_filters('puc_pre_inject_update-' . $this->slug, $update);
$updates = $this->addUpdateToList($updates, $update);
} else {
//Clean up any stale update info.
$updates = $this->removeUpdateFromList($updates);
}
return $updates;
}
/**
* @param StdClass|null $updates
* @param PagelayerUpdate_3_2 $updateToAdd
* @return StdClass
*/
private function addUpdateToList($updates, $updateToAdd) {
if ( !is_object($updates) ) {
$updates = new stdClass();
$updates->response = array();
}
$wpUpdate = $updateToAdd->toWpFormat();
$pluginFile = $this->pluginFile;
if ( $this->isMuPlugin() ) {
//WP does not support automatic update installation for mu-plugins, but we can still display a notice.
$wpUpdate->package = null;
$pluginFile = $this->muPluginFile;
}
$updates->response[$pluginFile] = $wpUpdate;
return $updates;
}
/**
* @param stdClass|null $updates
* @return stdClass|null
*/
private function removeUpdateFromList($updates) {
if ( isset($updates, $updates->response) ) {
unset($updates->response[$this->pluginFile]);
if ( !empty($this->muPluginFile) ) {
unset($updates->response[$this->muPluginFile]);
}
}
return $updates;
}
/**
* Insert translation updates into the list maintained by WordPress.
*
* @param stdClass $updates
* @return stdClass
*/
public function injectTranslationUpdates($updates) {
$translationUpdates = $this->getTranslationUpdates();
if ( empty($translationUpdates) ) {
return $updates;
}
//Being defensive.
if ( !is_object($updates) ) {
$updates = new stdClass();
}
if ( !isset($updates->translations) ) {
$updates->translations = array();
}
//In case there's a name collision with a plugin hosted on wordpress.org,
//remove any preexisting updates that match our plugin.
$translationType = 'plugin';
$filteredTranslations = array();
foreach($updates->translations as $translation) {
if ( ($translation['type'] === $translationType) && ($translation['slug'] === $this->slug) ) {
continue;
}
$filteredTranslations[] = $translation;
}
$updates->translations = $filteredTranslations;
//Add our updates to the list.
foreach($translationUpdates as $update) {
$convertedUpdate = array_merge(
array(
'type' => $translationType,
'slug' => $this->slug,
'autoupdate' => 0,
//AFAICT, WordPress doesn't actually use the "version" field for anything.
//But lets make sure it's there, just in case.
'version' => isset($update->version) ? $update->version : ('1.' . strtotime($update->updated)),
),
(array)$update
);
$updates->translations[] = $convertedUpdate;
}
return $updates;
}
/**
* Rename the update directory to match the existing plugin directory.
*
* When WordPress installs a plugin or theme update, it assumes that the ZIP file will contain
* exactly one directory, and that the directory name will be the same as the directory where
* the plugin/theme is currently installed.
*
* GitHub and other repositories provide ZIP downloads, but they often use directory names like
* "project-branch" or "project-tag-hash". We need to change the name to the actual plugin folder.
*
* This is a hook callback. Don't call it from a plugin.
*
* @param string $source The directory to copy to /wp-content/plugins. Usually a subdirectory of $remoteSource.
* @param string $remoteSource WordPress has extracted the update to this directory.
* @param WP_Upgrader $upgrader
* @return string|WP_Error
*/
public function fixDirectoryName($source, $remoteSource, $upgrader) {
global $wp_filesystem; /** @var WP_Filesystem_Base $wp_filesystem */
//Basic sanity checks.
if ( !isset($source, $remoteSource, $upgrader, $upgrader->skin, $wp_filesystem) ) {
return $source;
}
//If WordPress is upgrading anything other than our plugin, leave the directory name unchanged.
if ( !$this->isPluginBeingUpgraded($upgrader) ) {
return $source;
}
//Rename the source to match the existing plugin directory.
$pluginDirectoryName = dirname($this->pluginFile);
if ( $pluginDirectoryName === '.' ) {
return $source;
}
$correctedSource = trailingslashit($remoteSource) . $pluginDirectoryName . '/';
if ( $source !== $correctedSource ) {
//The update archive should contain a single directory that contains the rest of plugin files. Otherwise,
//WordPress will try to copy the entire working directory ($source == $remoteSource). We can't rename
//$remoteSource because that would break WordPress code that cleans up temporary files after update.
if ( $this->isBadDirectoryStructure($remoteSource) ) {
return new WP_Error(
'puc-incorrect-directory-structure',
sprintf(
'The directory structure of the update is incorrect. All plugin files should be inside ' .
'a directory named <span class="code">%s</span>, not at the root of the ZIP file.',
htmlentities($this->slug)
)
);
}
/** @var WP_Upgrader_Skin $upgrader->skin */
$upgrader->skin->feedback(sprintf(
'Renaming %s to %s…',
'<span class="code">' . basename($source) . '</span>',
'<span class="code">' . $pluginDirectoryName . '</span>'
));
if ( $wp_filesystem->move($source, $correctedSource, true) ) {
$upgrader->skin->feedback('Plugin directory successfully renamed.');
return $correctedSource;
} else {
return new WP_Error(
'puc-rename-failed',
'Unable to rename the update to match the existing plugin directory.'
);
}
}
return $source;
}
/**
* Check for incorrect update directory structure. An update must contain a single directory,
* all other files should be inside that directory.
*
* @param string $remoteSource Directory path.
* @return bool
*/
private function isBadDirectoryStructure($remoteSource) {
global $wp_filesystem; /** @var WP_Filesystem_Base $wp_filesystem */
$sourceFiles = $wp_filesystem->dirlist($remoteSource);
if ( is_array($sourceFiles) ) {
$sourceFiles = array_keys($sourceFiles);
$firstFilePath = trailingslashit($remoteSource) . $sourceFiles[0];
return (count($sourceFiles) > 1) || (!$wp_filesystem->is_dir($firstFilePath));
}
//Assume it's fine.
return false;
}
/**
* Is there and update being installed RIGHT NOW, for this specific plugin?
*
* @param WP_Upgrader|null $upgrader The upgrader that's performing the current update.
* @return bool
*/
public function isPluginBeingUpgraded($upgrader = null) {
return $this->upgraderStatus->isPluginBeingUpgraded($this->pluginFile, $upgrader);
}
/**
* Get the details of the currently available update, if any.
*
* If no updates are available, or if the last known update version is below or equal
* to the currently installed version, this method will return NULL.
*
* Uses cached update data. To retrieve update information straight from
* the metadata URL, call requestUpdate() instead.
*
* @return PagelayerUpdate_3_2|null
*/
public function getUpdate() {
$state = $this->getUpdateState(); /** @var StdClass $state */
//Is there an update available?
if ( isset($state, $state->update) ) {
$update = $state->update;
//Check if the update is actually newer than the currently installed version.
$installedVersion = $this->getInstalledVersion();
if ( ($installedVersion !== null) && version_compare($update->version, $installedVersion, '>') ){
$update->filename = $this->pluginFile;
return $update;
}
}
return null;
}
/**
* Get a list of available translation updates.
*
* This method will return an empty array if there are no updates.
* Uses cached update data.
*
* @return array
*/
public function getTranslationUpdates() {
$state = $this->getUpdateState();
if ( isset($state, $state->update, $state->update->translations) ) {
return $state->update->translations;
}
return array();
}
/**
* Remove all cached translation updates.
*
* @see wp_clean_update_cache
*/
public function clearCachedTranslationUpdates() {
$state = $this->getUpdateState();
if ( isset($state, $state->update, $state->update->translations) ) {
$state->update->translations = array();
$this->setUpdateState($state);
}
}
/**
* Add a "Check for updates" link to the plugin row in the "Plugins" page. By default,
* the new link will appear after the "Visit plugin site" link.
*
* You can change the link text by using the "puc_manual_check_link-$slug" filter.
* Returning an empty string from the filter will disable the link.
*
* @param array $pluginMeta Array of meta links.
* @param string $pluginFile
* @return array
*/
public function addCheckForUpdatesLink($pluginMeta, $pluginFile) {
$isRelevant = ($pluginFile == $this->pluginFile)
|| (!empty($this->muPluginFile) && $pluginFile == $this->muPluginFile);
if ( $isRelevant && current_user_can('update_plugins') ) {
$linkUrl = wp_nonce_url(
add_query_arg(
array(
'puc_check_for_updates' => 1,
'puc_slug' => $this->slug,
),
self_admin_url('plugins.php')
),
'puc_check_for_updates'
);
$linkText = apply_filters('puc_manual_check_link-' . $this->slug, __('Check for updates', 'plugin-update-checker'));
if ( !empty($linkText) ) {
$final_link = sprintf('<a href="%s">%s</a>', esc_attr($linkUrl), $linkText);
$pluginMeta[] = apply_filters('puc_manual_final_check_link-' . $this->slug, $final_link);
}
}
return $pluginMeta;
}
/**
* Check for updates when the user clicks the "Check for updates" link.
* @see self::addCheckForUpdatesLink()
*
* @return void
*/
public function handleManualCheck() {
$shouldCheck =
isset($_GET['puc_check_for_updates'], $_GET['puc_slug'])
&& $_GET['puc_slug'] == $this->slug
&& current_user_can('update_plugins')
&& check_admin_referer('puc_check_for_updates');
if ( $shouldCheck ) {
$update = $this->checkForUpdates();
$status = ($update === null) ? 'no_update' : 'update_available';
wp_redirect(add_query_arg(
array(
'puc_update_check_result' => $status,
'puc_slug' => $this->slug,
),
self_admin_url('plugins.php')
));
}
}
/**
* Display the results of a manual update check.
* @see self::handleManualCheck()
*
* You can change the result message by using the "puc_manual_check_message-$slug" filter.
*/
public function displayManualCheckResult() {
if ( isset($_GET['puc_update_check_result'], $_GET['puc_slug']) && ($_GET['puc_slug'] == $this->slug) ) {
$status = strval($_GET['puc_update_check_result']);
if ( $status == 'no_update' ) {
$message = __('This plugin is up to date.', 'plugin-update-checker');
} else if ( $status == 'update_available' ) {
$message = __('A new version of this plugin is available.', 'plugin-update-checker');
} else {
$message = sprintf(__('Unknown update checker status "%s"', 'plugin-update-checker'), htmlentities($status));
}
printf(
'<div class="updated notice is-dismissible"><p>%s</p></div>',
apply_filters('puc_manual_check_message-' . $this->slug, $message, $status)
);
}
}
/**
* Check if the plugin file is inside the mu-plugins directory.
*
* @return bool
*/
protected function isMuPlugin() {
static $cachedResult = null;
if ( $cachedResult === null ) {
//Convert both paths to the canonical form before comparison.
$muPluginDir = realpath(WPMU_PLUGIN_DIR);
$pluginPath = realpath($this->pluginAbsolutePath);
if(!empty($muPluginDir)){
$cachedResult = (strpos($pluginPath, $muPluginDir) === 0);
}else{
$cachedResult = false;
}
}
return $cachedResult;
}
/**
* MU plugins are partially supported, but only when we know which file in mu-plugins
* corresponds to this plugin.
*
* @return bool
*/
protected function isUnknownMuPlugin() {
return empty($this->muPluginFile) && $this->isMuPlugin();
}
/**
* Clear the cached plugin version. This method can be set up as a filter (hook) and will
* return the filter argument unmodified.
*
* @param mixed $filterArgument
* @return mixed
*/
public function clearCachedVersion($filterArgument = null) {
$this->cachedInstalledVersion = null;
return $filterArgument;
}
/**
* Get absolute path to the main plugin file.
*
* @return string
*/
public function getAbsolutePath() {
return $this->pluginAbsolutePath;
}
/**
* Register a callback for filtering query arguments.
*
* The callback function should take one argument - an associative array of query arguments.
* It should return a modified array of query arguments.
*
* @uses add_filter() This method is a convenience wrapper for add_filter().
*
* @param callable $callback
* @return void
*/
public function addQueryArgFilter($callback){
add_filter('puc_request_info_query_args-'.$this->slug, $callback);
}
/**
* Register a callback for filtering arguments passed to wp_remote_get().
*
* The callback function should take one argument - an associative array of arguments -
* and return a modified array or arguments. See the WP documentation on wp_remote_get()
* for details on what arguments are available and how they work.
*
* @uses add_filter() This method is a convenience wrapper for add_filter().
*
* @param callable $callback
* @return void
*/
public function addHttpRequestArgFilter($callback){
add_filter('puc_request_info_options-'.$this->slug, $callback);
}
/**
* Register a callback for filtering the plugin info retrieved from the external API.
*
* The callback function should take two arguments. If the plugin info was retrieved
* successfully, the first argument passed will be an instance of PagelayerInfo. Otherwise,
* it will be NULL. The second argument will be the corresponding return value of
* wp_remote_get (see WP docs for details).
*
* The callback function should return a new or modified instance of PagelayerInfo or NULL.
*
* @uses add_filter() This method is a convenience wrapper for add_filter().
*
* @param callable $callback
* @return void
*/
public function addResultFilter($callback){
add_filter('puc_request_info_result-'.$this->slug, $callback, 10, 2);
}
/**
* Register a callback for one of the update checker filters.
*
* Identical to add_filter(), except it automatically adds the "puc_" prefix
* and the "-$plugin_slug" suffix to the filter name. For example, "request_info_result"
* becomes "puc_request_info_result-your_plugin_slug".
*
* @param string $tag
* @param callable $callback
* @param int $priority
* @param int $acceptedArgs
*/
public function addFilter($tag, $callback, $priority = 10, $acceptedArgs = 1) {
add_filter('puc_' . $tag . '-' . $this->slug, $callback, $priority, $acceptedArgs);
}
/**
* Initialize the update checker Debug Bar plugin/add-on thingy.
*/
public function initDebugBarPanel() {
$debugBarPlugin = dirname(__FILE__) . '/debug-bar-plugin.php';
if ( class_exists('Debug_Bar', false) && file_exists($debugBarPlugin) ) {
/** @noinspection PhpIncludeInspection */
require_once $debugBarPlugin;
$this->debugBarPlugin = new Pagelayer_PucDebugBarPlugin_3_2($this);
}
}
/**
* Trigger a PHP error, but only when $debugMode is enabled.
*
* @param string $message
* @param int $errorType
*/
protected function triggerError($message, $errorType) {
if ( $this->debugMode ) {
trigger_error($message, $errorType);
}
}
}
endif;
if ( !class_exists('PagelayerInfo_3_2', false) ):
/**
* A container class for holding and transforming various plugin metadata.
*
* @author Janis Elsts
* @copyright 2016
* @version 3.2
* @access public
*/
class PagelayerInfo_3_2 {
//Most fields map directly to the contents of the plugin's info.json file.
//See the relevant docs for a description of their meaning.
public $name;
public $slug;
public $version;
public $homepage;
public $sections = array();
public $banners;
public $translations = array();
public $download_url;
public $author;
public $author_homepage;
public $requires;
public $tested;
public $upgrade_notice;
public $rating;
public $num_ratings;
public $downloaded;
public $active_installs;
public $last_updated;
public $id = 0; //The native WP.org API returns numeric plugin IDs, but they're not used for anything.
public $filename; //Plugin filename relative to the plugins directory.
/**
* Create a new instance of PagelayerInfo from JSON-encoded plugin info
* returned by an external update API.
*
* @param string $json Valid JSON string representing plugin info.
* @return PagelayerInfo_3_2|null New instance of PagelayerInfo, or NULL on error.
*/
public static function fromJson($json){
/** @var StdClass $apiResponse */
$apiResponse = json_decode($json);
if ( empty($apiResponse) || !is_object($apiResponse) ){
trigger_error(
"Failed to parse plugin metadata. Try validating your .json file with http://jsonlint.com/",
E_USER_NOTICE
);
return null;
}
$valid = self::validateMetadata($apiResponse);
if ( is_wp_error($valid) ){
trigger_error($valid->get_error_message(), E_USER_NOTICE);
return null;
}
$info = new self();
foreach(get_object_vars($apiResponse) as $key => $value){
$info->$key = $value;
}
//json_decode decodes assoc. arrays as objects. We want it as an array.
$info->sections = (array)$info->sections;
return $info;
}
/**
* Very, very basic validation.
*
* @param StdClass $apiResponse
* @return bool|WP_Error
*/
protected static function validateMetadata($apiResponse) {
if (
!isset($apiResponse->name, $apiResponse->version)
|| empty($apiResponse->name)
|| empty($apiResponse->version)
) {
return new WP_Error(
'puc-invalid-metadata',
"The plugin metadata file does not contain the required 'name' and/or 'version' keys."
);
}
return true;
}
/**
* Transform plugin info into the format used by the native WordPress.org API
*
* @return object
*/
public function toWpFormat(){
$info = new stdClass;
//The custom update API is built so that many fields have the same name and format
//as those returned by the native WordPress.org API. These can be assigned directly.
$sameFormat = array(
'name', 'slug', 'version', 'requires', 'tested', 'rating', 'upgrade_notice',
'num_ratings', 'downloaded', 'active_installs', 'homepage', 'last_updated',
);
foreach($sameFormat as $field){
if ( isset($this->$field) ) {
$info->$field = $this->$field;
} else {
$info->$field = null;
}
}
//Other fields need to be renamed and/or transformed.
$info->download_link = $this->download_url;
$info->author = $this->getFormattedAuthor();
$info->sections = array_merge(array('description' => ''), $this->sections);
if ( !empty($this->banners) ) {
//WP expects an array with two keys: "high" and "low". Both are optional.
//Docs: https://wordpress.org/plugins/about/faq/#banners
$info->banners = is_object($this->banners) ? get_object_vars($this->banners) : $this->banners;
$info->banners = array_intersect_key($info->banners, array('high' => true, 'low' => true));
}
return $info;
}
protected function getFormattedAuthor() {
if ( !empty($this->author_homepage) ){
return sprintf('<a href="%s">%s</a>', $this->author_homepage, $this->author);
}
return $this->author;
}
}
endif;
if ( !class_exists('PagelayerUpdate_3_2', false) ):
/**
* A simple container class for holding information about an available update.
*
* @author Janis Elsts
* @copyright 2016
* @version 3.2
* @access public
*/
class PagelayerUpdate_3_2 {
public $id = 0;
public $slug;
public $version;
public $homepage;
public $download_url;
public $upgrade_notice;
public $tested;
public $translations = array();
public $filename; //Plugin filename relative to the plugins directory.
private static $fields = array(
'id', 'slug', 'version', 'homepage', 'tested',
'download_url', 'upgrade_notice', 'filename',
'translations'
);
/**
* Create a new instance of PagelayerUpdate from its JSON-encoded representation.
*
* @param string $json
* @return PagelayerUpdate_3_2|null
*/
public static function fromJson($json){
//Since update-related information is simply a subset of the full plugin info,
//we can parse the update JSON as if it was a plugin info string, then copy over
//the parts that we care about.
$pluginInfo = PagelayerInfo_3_2::fromJson($json);
if ( $pluginInfo != null ) {
return self::fromPagelayerInfo($pluginInfo);
} else {
return null;
}
}
/**
* Create a new instance of PagelayerUpdate based on an instance of PagelayerInfo.
* Basically, this just copies a subset of fields from one object to another.
*
* @param PagelayerInfo_3_2 $info
* @return PagelayerUpdate_3_2
*/
public static function fromPagelayerInfo($info){
return self::fromObject($info);
}
/**
* Create a new instance of PagelayerUpdate by copying the necessary fields from
* another object.
*
* @param StdClass|PagelayerInfo_3_2|PagelayerUpdate_3_2 $object The source object.
* @return PagelayerUpdate_3_2 The new copy.
*/
public static function fromObject($object) {
$update = new self();
$fields = self::$fields;
if ( !empty($object->slug) ) {
$fields = apply_filters('puc_retain_fields-' . $object->slug, $fields);
}
foreach($fields as $field){
if (property_exists($object, $field)) {
$update->$field = $object->$field;
}
}
return $update;
}
/**
* Create an instance of StdClass that can later be converted back to
* a PagelayerUpdate. Useful for serialization and caching, as it avoids
* the "incomplete object" problem if the cached value is loaded before
* this class.
*
* @return StdClass
*/
public function toStdClass() {
$object = new stdClass();
$fields = self::$fields;
if ( !empty($this->slug) ) {
$fields = apply_filters('puc_retain_fields-' . $this->slug, $fields);
}
foreach($fields as $field){
if (property_exists($this, $field)) {
$object->$field = $this->$field;
}
}
return $object;
}
/**
* Transform the update into the format used by WordPress native plugin API.
*
* @return object
*/
public function toWpFormat(){
$update = new stdClass;
$update->id = $this->id;
$update->slug = $this->slug;
$update->new_version = $this->version;
$update->url = $this->homepage;
$update->package = $this->download_url;
$update->tested = $this->tested;
$update->plugin = $this->filename;
if ( !empty($this->upgrade_notice) ){
$update->upgrade_notice = $this->upgrade_notice;
}
return $update;
}
}
endif;
if ( !class_exists('Pagelayer_PucScheduler_3_2', false) ):
/**
* The scheduler decides when and how often to check for updates.
* It calls @see PagelayerUpdateChecker::checkForUpdates() to perform the actual checks.
*
* @version 3.2
*/
class Pagelayer_PucScheduler_3_2 {
public $checkPeriod = 12; //How often to check for updates (in hours).
public $throttleRedundantChecks = false; //Check less often if we already know that an update is available.
public $throttledCheckPeriod = 72;
/**
* @var PagelayerUpdateChecker_3_2
*/
protected $updateChecker;
private $cronHook = null;
/**
* Scheduler constructor.
*
* @param PagelayerUpdateChecker_3_2 $updateChecker
* @param int $checkPeriod How often to check for updates (in hours).
*/
public function __construct($updateChecker, $checkPeriod) {
$this->updateChecker = $updateChecker;
$this->checkPeriod = $checkPeriod;
//Set up the periodic update checks
$this->cronHook = 'check_plugin_updates-' . $this->updateChecker->slug;
if ( $this->checkPeriod > 0 ){
//Trigger the check via Cron.
//Try to use one of the default schedules if possible as it's less likely to conflict
//with other plugins and their custom schedules.
$defaultSchedules = array(
1 => 'hourly',
12 => 'twicedaily',
24 => 'daily',
);
if ( array_key_exists($this->checkPeriod, $defaultSchedules) ) {
$scheduleName = $defaultSchedules[$this->checkPeriod];
} else {
//Use a custom cron schedule.
$scheduleName = 'every' . $this->checkPeriod . 'hours';
add_filter('cron_schedules', array($this, '_addCustomSchedule'));
}
if ( !wp_next_scheduled($this->cronHook) && !defined('WP_INSTALLING') ) {
wp_schedule_event(time(), $scheduleName, $this->cronHook);
}
add_action($this->cronHook, array($this, 'maybeCheckForUpdates'));
register_deactivation_hook($this->updateChecker->pluginFile, array($this, '_removeUpdaterCron'));
//In case Cron is disabled or unreliable, we also manually trigger
//the periodic checks while the user is browsing the Dashboard.
add_action( 'admin_init', array($this, 'maybeCheckForUpdates') );
//Like WordPress itself, we check more often on certain pages.
/** @see wp_update_plugins */
add_action('load-update-core.php', array($this, 'maybeCheckForUpdates'));
add_action('load-plugins.php', array($this, 'maybeCheckForUpdates'));
add_action('load-update.php', array($this, 'maybeCheckForUpdates'));
//This hook fires after a bulk update is complete.
add_action('upgrader_process_complete', array($this, 'maybeCheckForUpdates'), 11, 0);
} else {
//Periodic checks are disabled.
wp_clear_scheduled_hook($this->cronHook);
}
}
/**
* Check for updates if the configured check interval has already elapsed.
* Will use a shorter check interval on certain admin pages like "Dashboard -> Updates" or when doing cron.
*
* You can override the default behaviour by using the "puc_check_now-$slug" filter.
* The filter callback will be passed three parameters:
* - Current decision. TRUE = check updates now, FALSE = don't check now.
* - Last check time as a Unix timestamp.
* - Configured check period in hours.
* Return TRUE to check for updates immediately, or FALSE to cancel.
*
* This method is declared public because it's a hook callback. Calling it directly is not recommended.
*/
public function maybeCheckForUpdates(){
if ( empty($this->checkPeriod) ){
return;
}
$state = $this->updateChecker->getUpdateState();
$shouldCheck =
empty($state) ||
!isset($state->lastCheck) ||
( (time() - $state->lastCheck) >= $this->getEffectiveCheckPeriod() );
//Let plugin authors substitute their own algorithm.
$shouldCheck = apply_filters(
'puc_check_now-' . $this->updateChecker->slug,
$shouldCheck,
(!empty($state) && isset($state->lastCheck)) ? $state->lastCheck : 0,
$this->checkPeriod
);
if ( $shouldCheck ) {
$this->updateChecker->checkForUpdates();
}
}
/**
* Calculate the actual check period based on the current status and environment.
*
* @return int Check period in seconds.
*/
protected function getEffectiveCheckPeriod() {
$currentFilter = current_filter();
if ( in_array($currentFilter, array('load-update-core.php', 'upgrader_process_complete')) ) {
//Check more often when the user visits "Dashboard -> Updates" or does a bulk update.
$period = 60;
} else if ( in_array($currentFilter, array('load-plugins.php', 'load-update.php')) ) {
//Also check more often on the "Plugins" page and /wp-admin/update.php.
$period = 3600;
} else if ( $this->throttleRedundantChecks && ($this->updateChecker->getUpdate() !== null) ) {
//Check less frequently if it's already known that an update is available.
$period = $this->throttledCheckPeriod * 3600;
} else if ( defined('DOING_CRON') && constant('DOING_CRON') ) {
//WordPress cron schedules are not exact, so lets do an update check even
//if slightly less than $checkPeriod hours have elapsed since the last check.
$cronFuzziness = 20 * 60;
$period = $this->checkPeriod * 3600 - $cronFuzziness;
} else {
$period = $this->checkPeriod * 3600;
}
return $period;
}
/**
* Add our custom schedule to the array of Cron schedules used by WP.
*
* @param array $schedules
* @return array
*/
public function _addCustomSchedule($schedules){
if ( $this->checkPeriod && ($this->checkPeriod > 0) ){
$scheduleName = 'every' . $this->checkPeriod . 'hours';
$schedules[$scheduleName] = array(
'interval' => $this->checkPeriod * 3600,
'display' => sprintf('Every %d hours', $this->checkPeriod),
);
}
return $schedules;
}
/**
* Remove the scheduled cron event that the library uses to check for updates.
*
* @return void
*/
public function _removeUpdaterCron(){
wp_clear_scheduled_hook($this->cronHook);
}
/**
* Get the name of the update checker's WP-cron hook. Mostly useful for debugging.
*
* @return string
*/
public function getCronHookName() {
return $this->cronHook;
}
}
endif;
if ( !class_exists('Pagelayer_PucUpgraderStatus_3_2', false) ):
/**
* A utility class that helps figure out which plugin WordPress is upgrading.
*
* It may seem strange to have an separate class just for that, but the task is surprisingly complicated.
* Core classes like Plugin_Upgrader don't expose the plugin file name during an in-progress update (AFAICT).
* This class uses a few workarounds and heuristics to get the file name.
*/
class Pagelayer_PucUpgraderStatus_3_2 {
private $upgradedPluginFile = null; //The plugin that is currently being upgraded by WordPress.
public function __construct() {
//Keep track of which plugin WordPress is currently upgrading.
add_filter('upgrader_pre_install', array($this, 'setUpgradedPlugin'), 10, 2);
add_filter('upgrader_package_options', array($this, 'setUpgradedPluginFromOptions'), 10, 1);
add_filter('upgrader_post_install', array($this, 'clearUpgradedPlugin'), 10, 1);
add_action('upgrader_process_complete', array($this, 'clearUpgradedPlugin'), 10, 1);
}
/**
* Is there and update being installed RIGHT NOW, for a specific plugin?
*
* Caution: This method is unreliable. WordPress doesn't make it easy to figure out what it is upgrading,
* and upgrader implementations are liable to change without notice.
*
* @param string $pluginFile The plugin to check.
* @param WP_Upgrader|null $upgrader The upgrader that's performing the current update.
* @return bool True if the plugin identified by $pluginFile is being upgraded.
*/
public function isPluginBeingUpgraded($pluginFile, $upgrader = null) {
if ( isset($upgrader) ) {
$upgradedPluginFile = $this->getPluginBeingUpgradedBy($upgrader);
if ( !empty($upgradedPluginFile) ) {
$this->upgradedPluginFile = $upgradedPluginFile;
}
}
return ( !empty($this->upgradedPluginFile) && ($this->upgradedPluginFile === $pluginFile) );
}
/**
* Get the file name of the plugin that's currently being upgraded.
*
* @param Plugin_Upgrader|WP_Upgrader $upgrader
* @return string|null
*/
private function getPluginBeingUpgradedBy($upgrader) {
if ( !isset($upgrader, $upgrader->skin) ) {
return null;
}
//Figure out which plugin is being upgraded.
$pluginFile = null;
$skin = $upgrader->skin;
if ( $skin instanceof Plugin_Upgrader_Skin ) {
if ( isset($skin->plugin) && is_string($skin->plugin) && ($skin->plugin !== '') ) {
$pluginFile = $skin->plugin;
}
} elseif ( isset($skin->plugin_info) && is_array($skin->plugin_info) ) {
//This case is tricky because Bulk_Plugin_Upgrader_Skin (etc) doesn't actually store the plugin
//filename anywhere. Instead, it has the plugin headers in $plugin_info. So the best we can
//do is compare those headers to the headers of installed plugins.
$pluginFile = $this->identifyPluginByHeaders($skin->plugin_info);
}
return $pluginFile;
}
/**
* Identify an installed plugin based on its headers.
*
* @param array $searchHeaders The plugin file header to look for.
* @return string|null Plugin basename ("foo/bar.php"), or NULL if we can't identify the plugin.
*/
private function identifyPluginByHeaders($searchHeaders) {
if ( !function_exists('get_plugins') ){
/** @noinspection PhpIncludeInspection */
require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
}
$installedPlugins = get_plugins();
$matches = array();
foreach($installedPlugins as $pluginBasename => $headers) {
$diff1 = array_diff_assoc($headers, $searchHeaders);
$diff2 = array_diff_assoc($searchHeaders, $headers);
if ( empty($diff1) && empty($diff2) ) {
$matches[] = $pluginBasename;
}
}
//It's possible (though very unlikely) that there could be two plugins with identical
//headers. In that case, we can't unambiguously identify the plugin that's being upgraded.
if ( count($matches) !== 1 ) {
return null;
}
return reset($matches);
}
/**
* @access private
*
* @param mixed $input
* @param array $hookExtra
* @return mixed Returns $input unaltered.
*/
public function setUpgradedPlugin($input, $hookExtra) {
if (!empty($hookExtra['plugin']) && is_string($hookExtra['plugin'])) {
$this->upgradedPluginFile = $hookExtra['plugin'];
} else {
$this->upgradedPluginFile = null;
}
return $input;
}
/**
* @access private
*
* @param array $options
* @return array
*/
public function setUpgradedPluginFromOptions($options) {
if (isset($options['hook_extra']['plugin']) && is_string($options['hook_extra']['plugin'])) {
$this->upgradedPluginFile = $options['hook_extra']['plugin'];
} else {
$this->upgradedPluginFile = null;
}
return $options;
}
/**
* @access private
*
* @param mixed $input
* @return mixed Returns $input unaltered.
*/
public function clearUpgradedPlugin($input = null) {
$this->upgradedPluginFile = null;
return $input;
}
}
endif;
if ( !class_exists('Pagelayer_PucFactory', false) ):
/**
* A factory that builds instances of other classes from this library.
*
* When multiple versions of the same class have been loaded (e.g. PagelayerUpdateChecker 1.2
* and 1.3), this factory will always use the latest available version. Register class
* versions by calling {@link Pagelayer_PucFactory::addVersion()}.
*
* At the moment it can only build instances of the PagelayerUpdateChecker class. Other classes
* are intended mainly for internal use and refer directly to specific implementations. If you
* want to instantiate one of them anyway, you can use {@link Pagelayer_PucFactory::getLatestClassVersion()}
* to get the class name and then create it with <code>new $class(...)</code>.
*/
class Pagelayer_PucFactory {
protected static $classVersions = array();
protected static $sorted = false;
/**
* Create a new instance of PagelayerUpdateChecker.
*
* @see PagelayerUpdateChecker::__construct()
*
* @param $metadataUrl
* @param $pluginFile
* @param string $slug
* @param int $checkPeriod
* @param string $optionName
* @param string $muPluginFile
* @return PagelayerUpdateChecker_3_2
*/
public static function buildUpdateChecker($metadataUrl, $pluginFile, $slug = '', $checkPeriod = 12, $optionName = '', $muPluginFile = '') {
$class = self::getLatestClassVersion('PagelayerUpdateChecker');
return new $class($metadataUrl, $pluginFile, $slug, $checkPeriod, $optionName, $muPluginFile);
}
/**
* Get the specific class name for the latest available version of a class.
*
* @param string $class
* @return string|null
*/
public static function getLatestClassVersion($class) {
if ( !self::$sorted ) {
self::sortVersions();
}
if ( isset(self::$classVersions[$class]) ) {
return reset(self::$classVersions[$class]);
} else {
return null;
}
}
/**
* Sort available class versions in descending order (i.e. newest first).
*/
protected static function sortVersions() {
foreach ( self::$classVersions as $class => $versions ) {
uksort($versions, array(__CLASS__, 'compareVersions'));
self::$classVersions[$class] = $versions;
}
self::$sorted = true;
}
protected static function compareVersions($a, $b) {
return -version_compare($a, $b);
}
/**
* Register a version of a class.
*
* @access private This method is only for internal use by the library.
*
* @param string $generalClass Class name without version numbers, e.g. 'PagelayerUpdateChecker'.
* @param string $versionedClass Actual class name, e.g. 'PagelayerUpdateChecker_1_2'.
* @param string $version Version number, e.g. '1.2'.
*/
public static function addVersion($generalClass, $versionedClass, $version) {
if ( !isset(self::$classVersions[$generalClass]) ) {
self::$classVersions[$generalClass] = array();
}
self::$classVersions[$generalClass][$version] = $versionedClass;
self::$sorted = false;
}
}
endif;
//Register classes defined in this file with the factory.
Pagelayer_PucFactory::addVersion('PagelayerUpdateChecker', 'PagelayerUpdateChecker_3_2', '3.2');
Pagelayer_PucFactory::addVersion('PagelayerUpdate', 'PagelayerUpdate_3_2', '3.2');
Pagelayer_PucFactory::addVersion('PagelayerInfo', 'PagelayerInfo_3_2', '3.2');
Pagelayer_PucFactory::addVersion('Pagelayer_PucGitHubChecker', 'Pagelayer_PucGitHubChecker_3_2', '3.2');
main/pagelayer-init.php 0000644 00000015007 15152652100 0011113 0 ustar 00 <?php
//////////////////////////////////////////////////////////////
//===========================================================
// pagelayer-init.php
//===========================================================
// PAGELAYER
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Pulkit Gupta
// Date: 23rd Jan 2017
// Time: 23:00 hrs
// Site: http://pagelayer.com/wordpress (PAGELAYER)
// ----------------------------------------------------------
// Please Read the Terms of use at http://pagelayer.com/tos
// ----------------------------------------------------------
//===========================================================
// (c)Pagelayer Team
//===========================================================
//////////////////////////////////////////////////////////////
// Are we being accessed directly ?
if(!defined('PAGELAYER_PRO_VERSION')) {
exit('Hacking Attempt !');
}
// Ok so we are now ready to go
register_activation_hook(PAGELAYER_PRO_FILE, 'pagelayer_pro_activation');
// Prevent update of pagelayer free
// This also work for auto update
add_filter('site_transient_update_plugins', 'pagelayer_pro_disable_manual_update_for_plugin');
add_filter('pre_site_transient_update_plugins', 'pagelayer_pro_disable_manual_update_for_plugin');
// Auto update free version after update pro version
add_action('upgrader_process_complete', 'pagelayer_pro_update_free_after_pro', 10, 2);
add_action('plugins_loaded', 'pagelayer_pro_load_plugin');
function pagelayer_pro_load_plugin(){
global $pagelayer;
if(empty($pagelayer)){
$pagelayer = new stdClass();
}
// Load license
pagelayer_pro_load_license();
// Check if the installed version is outdated
pagelayer_pro_update_check();
// Check for updates
include_once(PAGELAYER_PRO_DIR.'/main/plugin-update-checker.php');
$pagelayer_updater = Pagelayer_PucFactory::buildUpdateChecker(pagelayer_pro_api_url().'updates.php?version='.PAGELAYER_PRO_VERSION, PAGELAYER_PRO_FILE);
// Add the license key to query arguments
$pagelayer_updater->addQueryArgFilter('pagelayer_pro_updater_filter_args');
// Show the text to install the license key
add_filter('puc_manual_final_check_link-pagelayer-pro', 'pagelayer_pro_updater_check_link', 10, 1);
// Nag informing the user to install the free version.
if(current_user_can('activate_plugins')){
add_action('admin_notices', 'pagelayer_pro_free_version_nag', 9);
add_action('admin_menu', 'pagelayer_pro_add_menu', 9);
}
$is_network_wide = pagelayer_pro_is_network_active('pagelayer-pro');
$_pl_version = get_option('pagelayer_version');
$req_free_update = !empty($_pl_version) && version_compare($_pl_version, '1.8.7', '<');
if($is_network_wide){
$pl_free_installed = get_site_option('pagelayer_free_installed');
}else{
$pl_free_installed = get_option('pagelayer_free_installed');
}
if(!empty($pl_free_installed)){
return;
}
// Include the necessary stuff
include_once(ABSPATH . 'wp-admin/includes/plugin-install.php');
include_once(ABSPATH . 'wp-admin/includes/plugin.php');
include_once(ABSPATH . 'wp-admin/includes/file.php');
if( file_exists( WP_PLUGIN_DIR . '/pagelayer/pagelayer.php' ) && is_plugin_inactive( '/pagelayer/pagelayer.php' ) && empty($req_free_update) ) {
if($is_network_wide){
update_site_option('pagelayer_free_installed', time());
}else{
update_option('pagelayer_free_installed', time());
}
activate_plugin('/pagelayer/pagelayer.php', '', $is_network_wide);
remove_action('admin_notices', 'pagelayer_pro_free_version_nag', 9);
remove_action('admin_menu', 'pagelayer_pro_add_menu', 9);
return;
}
// Includes necessary for Plugin_Upgrader and Plugin_Installer_Skin
include_once(ABSPATH . 'wp-admin/includes/misc.php');
include_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');
// Filter to prevent the activate text
add_filter('install_plugin_complete_actions', 'pagelayer_pro_prevent_activation_text', 10, 3);
$upgrader = new Plugin_Upgrader(new WP_Ajax_Upgrader_Skin());
// Upgrade the plugin to the latest version of free already installed.
if(!empty($req_free_update) && file_exists( WP_PLUGIN_DIR . '/pagelayer/pagelayer.php' )){
$installed = $upgrader->upgrade('pagelayer/pagelayer.php');
}else{
$installed = $upgrader->install('https://downloads.wordpress.org/plugin/pagelayer.zip');
}
if(!is_wp_error($installed) && $installed){
if($is_network_wide){
update_site_option('pagelayer_free_installed', time());
}else{
update_option('pagelayer_free_installed', time());
}
activate_plugin('pagelayer/pagelayer.php', '', $is_network_wide);
remove_action('admin_notices', 'pagelayer_pro_free_version_nag', 9);
remove_action('admin_menu', 'pagelayer_pro_add_menu', 9);
//wp_safe_redirect(admin_url('/'));
}
}
// Do not shows the activation text if
function pagelayer_pro_prevent_activation_text($install_actions, $api, $plugin_file){
if($plugin_file == 'pagelayer/pagelayer.php'){
return array();
}
return $install_actions;
}
function pagelayer_pro_free_version_nag(){
$pl_version = get_option('pagelayer_version');
$lower_version = __('You have not installed/activated the free version of Pagelayer. Pagelayer Pro depends on the free version, so you must install/activate it first in order to use Pagelayer Pro.');
$btn_text = __('Install / Activate Now');
if(!empty($pl_version) && version_compare($pl_version, '1.8.6', '<')){
$lower_version = __('You are using an older version of the free version of Pagelayer, please update Pagelayer to work without any issues');
$btn_text = __('Update Now');
}
echo '<div class="notice notice-error">
<p style="font-size:16px;">'.esc_html($lower_version).' <a href="'.admin_url('plugin-install.php?s=pagelayer&tab=search').'" class="button button-primary">'.esc_html($btn_text).'</a></p>
</div>';
}
function pagelayer_pro_add_menu(){
add_menu_page('Pagelayer', 'Pagelayer Pro', 'activate_plugins', 'pagelayer-pro', 'pagelayer_pro_menu_page', PAGELAYER_PRO_URL.'/images/pagelayer-logo-19.png');
}
function pagelayer_pro_menu_page(){
echo '<div style="color: #333;padding: 50px;text-align: center;">
<h1 style="font-size: 2em;margin-bottom: 10px;">Pagelayer Free version is not installed / outdated!</h>
<p style=" font-size: 16px;margin-bottom: 20px; font-weight:400;">Pagelayer Pro depends on the free version of Pagelayer, so you need to install / update the free version first.</p>
<a href="'.admin_url('plugin-install.php?s=pagelayer&tab=search').'" style="text-decoration: none;font-size:16px;">Install/Update Now</a>
</div>';
} main/template-builder.php 0000644 00000072633 15152652100 0011450 0 ustar 00 <?php
//////////////////////////////////////////////////////////////
//===========================================================
// tampalte-builder.php
//===========================================================
// PAGELAYER
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Pulkit Gupta
// Date: 23rd Jan 2017
// Time: 23:00 hrs
// Site: http://pagelayer.com/wordpress (PAGELAYER)
// ----------------------------------------------------------
// Please Read the Terms of use at http://pagelayer.com/tos
// ----------------------------------------------------------
//===========================================================
// (c)Pagelayer Team
//===========================================================
//////////////////////////////////////////////////////////////
// Are we being accessed directly ?
if(!defined('PAGELAYER_PRO_VERSION')) {
exit('Hacking Attempt !');
}
// The function shows the page to add template
function pagelayer_builder_template_wizard(){
global $pagelayer;
if(!empty($_REQUEST['post'])){
$posts = get_posts([
'post_type' => $pagelayer->builder['name'],
'post_status' => 'any',
'include' => (int) $_REQUEST['post'],
]);
//print_r($posts);
// Did we find it ?
if(!empty($posts[0])){
$post = $posts[0];
$_post['id'] = $post->ID;
$_post['type'] = get_post_meta($post->ID, 'pagelayer_template_type', true);
$_post['conditions'] = get_post_meta( $post->ID, 'pagelayer_template_conditions', true );
$_post['post_title'] = $post->post_title;
}
}
// Fill in defaults if nothing found
if(empty($_post)){
$_post['id'] = 0;
$_post['type'] = '';
$_post['post_title'] = '';
$_post['conditions'] = [];
}
?>
<style>
.pagelayer-temp-search-sel-open{
float: right;
font-size: 10px;
padding: 0px;
line-height: 20px;
}
.pagelayer-temp-search-sel-remove{
position: absolute;
right: 20px;
font-size: 11px;
top: 10px;
z-index: 10;
}
.pagelayer-temp-search-sel-span{
display: block;
margin: 2px;
cursor: pointer;
box-sizing: border-box;
border: 1px solid #dbdbdb;
transition: all 0.3s;
font-size: 13px;
padding: 3px;
}
.pagelayer-temp-search-sel-span:hover{
border-color: #00A0D2;
background-color: #3e8ef7;
color: #ffffff;
box-shadow: 0px 1px 1px #3e8ef7bf;
}
.pagelayer-temp-search-sel-span i{
font-size: 15px;
line-height: 1em;
padding: 3px;
color: #555;
transition: all 0.3s;
vertical-align: middle;
}
.pagelayer-temp-search-sel-span:hover i{
color: #ffffff;
}
.pagelayer-temp-search-sel{
vertical-align: top
}
.pagelayer-temp-toggle{
cursor:pointer;
}
.pagelayer-temp-label{
display:block;
margin-bottom:5px;
}
.pagelayer-temp-fields{
display:inline-block;
position:relative;
margin:0 3px;
}
.pagelayer-temp-condition{
border:1px solid #d0d0d0;
margin-bottom:10px;
}
.pagelayer-temp-tab{
padding: 6px 10px;
background: #d0d0d0;
display: flow-root;
}
.pagelayer-temp-condition-div{
padding:10px;
}
.pagelayer-temp-hide{
display:none;
}
.pagelayer-temp-search-holder{
position:relative;
display:inline-block;
}
.pagelayer-temp-search-div{
cursor: pointer;
padding: 5px;
border: solid 1px #d1d1d1;
background: #fffffc;
color: #333;
vertical-align: middle;
width: 126px;
display: flex;
/* min-width: 245px;
border-radius: 4px;
margin: 0 auto;
position: absolute;
top: 7px; */
}
.pagelayer-temp-search-preview{
position: relative;
margin-right: 5px;
width: 100%;
border: none;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.pagelayer-temp-search-preview i{
padding-right: 5px;
font-size: 19px;
color: #666;
vertical-align: middle;
}
.pagelayer-temp-search-name{
font-size: 13px;
}
.pagelayer-temp-search-selector{
position: absolute;
z-index: 1000;
border: 1px solid rgba(0,0,0,0.2) !important;
background: #fff !important;
box-shadow: 0 3px 5px rgba(0,0,0,0.2) !important;
-webkit-border-radius: 2px !important;
text-shadow: none !important;
padding: 5px;
height: auto;
box-sizing: border-box;
display: none;
width: 100%;
border-radius: 2px;
margin: 0 0 0 auto;
top: 35px;
}
.pagelayer-temp-search-val{
margin-bottom: 5px !important;
padding: 2px 6px;
line-height: 20px !important;
border-radius: 3px !important;
width: 100%;
}
.pagelayer-temp-search-list{
width: 100%;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
max-height: 183px;
overflow-y: auto;
}
.pagelayer-temp-close{
float:right;
font-size:15px;
}
.pagelayer-close-condition{
font-size: 15px;
font-weight: 900;
height:7px;
margin-top: -2px;
padding-left:5px;
padding-right:5px;
float:right;
cursor: pointer;
}
.pagelayer-temp-add-new,
.pagelayer-temp-submit-btn{
font-size: 14px;
font-weight: bold;
cursor: pointer;
border-radius: 2px;
padding: 4px 8px;
border: #398439 1px solid;
color: #fff;
background: #449d44;
}
.pagelayer-temp-pad5{
padding-left:5px;
padding-right:5px;
}
.pagelayer-temp-container{
background-color:#fff;
padding:0px;
width:95%;
border-radius: 4px;
margin: 10px auto;
}
.pagelayer-temp-head{
padding:10px;
font-weight:bold;
border-bottom: 1px solid #dfdfdf;
}
.pagelayer-temp-row{
display:table-cell; padding: 10px;
}
.pagelayer-temp-condition-holder{
padding: 0px 10px;
display: none;
}
.pagelayer-temp-submit{
padding: 10px;
}
.pagelayer-temp-container select{
font-size:13px;
}
.postbox{
margin-bottom:5px;
}
</style>
<?php
$sel_type = $_post['type'];
$dis_conditions = $_post['conditions'];
echo '
<div class="pagelayer-temp-container">
<div class="pagelayer-temp-head">
<img src="'.PAGELAYER_URL.'/images/pagelayer-logo-19.png'.'" style="vertical-align: top;" /> ';
if(empty($_post['type'])){
echo __pl('add_temp');
}else{
echo __pl('edit_temp').'<span style="float:right" class="pagelayer-temp-edit"><a href="'.esc_url( pagelayer_shortlink($_post['id']).'&pagelayer-live=1' ).'">'.__pl('edit_using').'</a></span>';
}
echo '
</div>
<div class="pagelayer-temp-row">
<label class="pagelayer-temp-label">'.__('Select Template Type :').'</label>
<select name="pagelayer_template_type" class="postbox">
'.pagelayer_create_sel_options( $pagelayer->builder["type"], $sel_type ).'
</select>
</div>
<div class="pagelayer-temp-row">
<label for="pagelayer_lib_title" class="pagelayer-temp-label">'.__('Name :').'</label>
<input type="text" name="pagelayer_lib_title" size="30" value="'.$_post['post_title'].'" />
</div>
<div class="pagelayer-temp-condition-holder '.((!empty($pagelayer->builder["type"][$sel_type]['no_condition'])) ? ' pagelayer-temp-hide' : '').'">
<label class="pagelayer-temp-label">'.__('Template Display Conditions :').'</label>
<div class="pagelayer-temp-condition-container">';
if( !empty($dis_conditions) ){
foreach($dis_conditions as $condi){
echo '
<div class="pagelayer-temp-condition">
<div class="pagelayer-temp-tab">
<span class="pagelayer-temp-toggle pagelayer-temp-pad5">☰</span>
<span>'. __('Display Conditions').'</span>
<span class="pagelayer-close-condition">×</span>
</div>
<div class="pagelayer-temp-condition-div">
<div class="pagelayer-temp-fields">
<label for="pagelayer_condition_type" class="pagelayer-temp-label">'. __('Action Type :').'</label>
<select name="pagelayer_condition_type[]" class="postbox">
'.pagelayer_create_sel_options( $pagelayer->builder["action"], $condi['type'] ).'
</select>
</div>
<div class="pagelayer-temp-fields">
<label for="pagelayer_condition_name" class="pagelayer-temp-label"> '. __('Display On : ').'</label>
<select name="pagelayer_condition_name[]" class="postbox">
'.pagelayer_create_sel_options( $pagelayer->builder['dispay_on'], $condi['template'] ).'
</select>
</div>
<div class="pagelayer-temp-fields '.(empty($condi['template']) ? 'pagelayer-temp-hide' : '').'">
<label for="pagelayer_condition_sub_template" class="pagelayer-temp-label"> '. __('Template : ').'</label>
<select name="pagelayer_condition_sub_template[]" class="postbox">';
if($condi['template'] == 'archives'){
echo pagelayer_create_sel_options( $pagelayer->builder['archives_templates'], $condi['sub_template'] );
}else{
echo pagelayer_create_sel_options( $pagelayer->builder['singular_templates'], $condi['sub_template'] );
}
echo '
</select>
</div>
<div class="pagelayer-temp-fields pagelayer-temp-search-sel '. ((empty($condi['sub_template'])) ? ' pagelayer-temp-hide' : '').'">
<label for="pagelayer_condition_id" class="pagelayer-temp-label">'.__('Specific Items').'</label>';
$req_arr['id'] = $condi['id'];
$req_arr['filter_type'] = 'post';
if( is_numeric(strpos($condi['sub_template'] , 'author'))){
$req_arr['filter_type'] = 'author';
}
if( is_numeric(strpos($condi['sub_template'] , 'category')) || is_numeric(strpos($condi['sub_template'] , 'tag')) ){
$req_arr['filter_type'] = 'taxonomy';
}
$title_array = pagelayer_builder_get_title($req_arr['filter_type'], $req_arr['id']);
$id = '';
$title = '';
foreach ( $title_array as $tmp_id => $tmp_title ) {
$id = $tmp_id;
$title = $tmp_title;
}
echo '
<select name="pagelayer_condition_id[]" class="postbox pagelayer-temp-hide">
<option selected value="'. ((empty($id)) ? '' : $id).'"> '. ((empty($title)) ? __('All') : $title).'</option>
</select>
<div class="pagelayer-temp-search-holder">
<div class="pagelayer-temp-search-div">
<div class="pagelayer-temp-search-preview">
<span class="pagelayer-temp-search-name">
'. ((empty($title)) ? __('All') : $title).'
</span>
<span class="pagelayer-temp-close '. ((empty($title)) ? ' pagelayer-temp-hide' : '').'">×</span>
</div>
<span class="">⯆</span>
</div>
<div class="pagelayer-temp-search-selector">
<input autocomplete="off" type="text" class="pagelayer-temp-search-val" name="search-icon" placeholder="Search">
<div class="pagelayer-temp-search-list">
</div>
</div>
</div>
</div>
</div>
</div>';
}
}
echo '
</div>
<div style="margin:15px 10px;">
<span class="pagelayer-temp-add-new" >'. __('Add Conditions').'</span>
</div>
</div>
<div class="pagelayer-temp-submit">
<center><button type="submit" class="pagelayer-temp-submit-btn button button-primary">'.__('Save Template').'</button></center>
</div>
</div>
<script type="text/javascript">
pagelayer_cpt = '.json_encode($pagelayer->builder).';
pagelayer_ajax_url = "'.admin_url( 'admin-ajax.php' ).'?";
pagelayer_builder_nonce = "'.wp_create_nonce('pagelayer_builder').'";
</script>';
?>
<script type="text/javascript">
jQuery(document).ready(function(){
var $ = jQuery;
if(typeof pagelayer !== 'undefined'){
var $ = pagelayer.$$ || $;
}
// The container
var pl_temp = $(".pagelayer-temp-container");
var pl_condi = pl_temp.find('.pagelayer-temp-condition-holder');
// Get values from multi-dimensional array by key
var pagelayer_multi_array_search = function(array = [], key){
var array_key = [];
if (key in array) {
array_key = array[key];
}
for( var k in array) {
if (typeof array[k] === 'object' && key in array[k]) {
array_key = array[k][key];
}
}
return array_key;
}
// Creates the select options
var create_options = function(opt_array){
var options = '';
var tmp_numeric = ''; // Required to handle key 404 in singular templates as json decode puts number first and that spoils our order
for (x in opt_array){
// Single item
if(typeof opt_array[x] == 'string'){
options += option(x, opt_array[x]);
if(tmp_numeric.length > 0){
options += tmp_numeric;
tmp_numeric = '';
}
// If is array then we get the label string
}else if(typeof opt_array[x] == 'object'){
if('label' in opt_array[x]){
if(x == 404){
tmp_numeric = option(x, opt_array[x]['label']);
continue;
}
options += option(x, opt_array[x]['label']);
// Groups
}else{
options += '<optgroup label="'+x+'">';
options += create_options(opt_array[x]);
options += '</optgroup>';
}
}
}
return options;
}
var option = function(val, lang){
return '<option value="'+val+'">'+lang+'</option>';
}
var html_condi = '<div class="pagelayer-temp-condition">'+
'<div class="pagelayer-temp-tab">'+
'<span class="pagelayer-temp-toggle pagelayer-temp-pad5">☰</span>'+
'<span>'+<?php echo "'".__('Display Conditions')."'";?>+'</span>'+
'<span class="pagelayer-close-condition">×</span>'+
'</div>'+
'<div class="pagelayer-temp-condition-div">'+
'<div class="pagelayer-temp-fields">'+
'<label for="pagelayer_condition_type" class="pagelayer-temp-label">'+<?php echo "'".__('Action Type')."'";?>+'</label>'+
'<select name="pagelayer_condition_type[]" class="postbox">'+
create_options(pagelayer_cpt["action"])+
'</select>'+
'</div>'+
' <div class="pagelayer-temp-fields">'+
'<label for="pagelayer_condition_name" class="pagelayer-temp-label">'+<?php echo "'".__('Display On')."'";?>+'</label>'+
'<select name="pagelayer_condition_name[]" class="postbox">'+
create_options(pagelayer_cpt["dispay_on"])+
'</select>'+
'</div>'+
' <div class="pagelayer-temp-fields pagelayer-temp-hide">'+
'<label for="pagelayer_condition_sub_template" class="pagelayer-temp-label">'+<?php echo "'".__('Template')."'";?>+'</label>'+
'<select name="pagelayer_condition_sub_template[]" class="postbox">'+
'</select>'+
'</div>'+
' <div class="pagelayer-temp-fields pagelayer-temp-hide pagelayer-temp-search-sel">'+
'<label for="pagelayer_condition_id" class="pagelayer-temp-label">'+<?php echo "'".__('Specific Items')."'";?>+'</label>'+
'<select name="pagelayer_condition_id[]" class="postbox pagelayer-temp-hide">'+
'<option selected value="">All</option>'+
'</select>'+
'<div class="pagelayer-temp-search-holder">'+
'<div class="pagelayer-temp-search-div">'+
'<div class="pagelayer-temp-search-preview">'+
'<span class="pagelayer-temp-search-name">All</span>'+
'<span class="pagelayer-temp-close pagelayer-temp-hide">×</span>'+
'</div>'+
'<span class="">⯆</span>'+
'</div>'+
'<div class="pagelayer-temp-search-selector">'+
'<input autocomplete="off" type="text" class="pagelayer-temp-search-val" name="search-icon" placeholder="Search">'+
'<div class="pagelayer-temp-search-list">'+
'</div>'+
'</div>'+
'</div>'+
'</div>'+
'</div>'+
'</div>';
// Removes a condition
var close_tab = function(){
var condi = pl_temp.find(".pagelayer-temp-condition");
condi.find(".pagelayer-close-condition").click(function(){
jQuery(this).closest(".pagelayer-temp-condition").remove();
});
};
// Toggle a condition content
var toggle_tab = function(){
var condi = pl_temp.find(".pagelayer-temp-condition");
condi.find(".pagelayer-temp-tab").unbind("click");
condi.find(".pagelayer-temp-tab").click(function(){
jQuery(this).closest(".pagelayer-temp-condition").find(".pagelayer-temp-condition-div").toggle();
});
};
// Opens the search selector
var open_search = function(){
var el = pl_temp.find('.pagelayer-temp-search-div')
el.unbind('click');
el.on('click', function(){
jQuery(this).parent().find('.pagelayer-temp-search-selector').slideToggle();
});
};
var pagelayer_set_inter; // A timer
// Get closest select box by name in closest "pagelayer-temp-condition" class
var pagelayer_get_closest_sel = function(jEle, name){
return jEle.closest(".pagelayer-temp-condition").find("[name='"+name+"']");
}
// Handle search of values
var search_list = function(){
pl_temp.find('.pagelayer-temp-search-val').on('keyup', function(){
var v = this.value;
var iEle = jQuery(this);
var template_name, ele_name, template_name_array;
//v = v.replace(/\s+/g, '-');
template_name = pagelayer_get_closest_sel(iEle, 'pagelayer_condition_name[]').val();
ele_name = pagelayer_get_closest_sel(iEle, 'pagelayer_condition_sub_template[]').val();
template_name_array = pagelayer_multi_array_search(pagelayer_cpt[template_name+'_templates'], ele_name);
data_array = {
pagelayer_nonce: pagelayer_builder_nonce,
search : v,
filter_type : template_name_array['filter_type'] || 'post',
object_type : template_name_array['object_type'] || 'post',
};
clearTimeout(pagelayer_set_inter);
pagelayer_set_inter = setTimeout(function () {
v = v.toLowerCase();
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_search_ids',
type: 'post',
data : data_array,
success:function(response){
iEle.next().html(response);
//console.log(response);
}
});
//row.find('.pagelayer-temp-search-list').empty().html(span);
}, 200);
});
// Handle click within the ID selector
pl_temp.find('.pagelayer-temp-search-selector').unbind('click');
pl_temp.find('.pagelayer-temp-search-selector').on('click', function(e){
var jEle = jQuery(e.target);
var val = jEle.attr('value');
var text = jEle.text();
if(val.length < 1 || text.length < 1){
return false;
}
// Set the ID in this list
var row = jEle.closest('.pagelayer-temp-search-sel');
row.find('[name="pagelayer_condition_id[]"]').html('<option selected value="'+ val +'">'+ text +'</option>');
row.find('.pagelayer-temp-search-preview .pagelayer-temp-search-name').text(text).next().show();
row.find('.pagelayer-temp-search-selector').slideUp();
return false;
});
pl_temp.find('.pagelayer-temp-close').click(function(e){
e.stopPropagation();
var sHold = jQuery(this).closest('.pagelayer-temp-search-sel');
sHold.find('[name="pagelayer_condition_id[]"]').html('<option selected value="">All</option>');
sHold.find('.pagelayer-temp-search-preview .pagelayer-temp-search-name').text('All').next().hide();
});
};
// Whenever a condition is to be initialized
var reinit_conditions = function(){
close_tab();
toggle_tab();
open_search();
search_list();
pl_temp.find('select').unbind('change');
pl_temp.find('select').on('change', function(event, triggerEle){
var sEle = jQuery(this);
var sVal = sEle.val();
var condiEle = triggerEle || pl_condi;
//console.log(sVal);
// Hide search box if any select is changed
var temp_search = jQuery('.pagelayer-temp-search-selector');
if(temp_search.is(':visible') || jQuery('.pagelayer-temp-search-preview > .pagelayer-temp-close').is(':visible')){
temp_search.hide();
temp_search.find('.pagelayer-temp-search-list').empty();
temp_search.find('.pagelayer-temp-search-val').val('');
}
switch(sEle.attr('name')){
case 'pagelayer_template_type':
var no_condition = pagelayer_cpt["type"][sVal]['no_condition'] || false;
if( no_condition ){
pl_condi.hide();
}else if(!pl_condi.is(':visible')){
pl_condi.show();
}
condiEle.find("[name='pagelayer_condition_name[]']").each(function(){
var condi_name = jQuery(this);
var need_selection = pagelayer_multi_array_search(pagelayer_cpt["type"], sVal);
if(typeof need_selection === 'object' && 'need_selection' in need_selection){
if(need_selection['need_selection'] != condi_name.val() ){
condi_name.val(need_selection['need_selection']).trigger('change');
}
condi_name.css('pointer-events', 'none');
}else if(condi_name.css('pointer-events') == 'none'){
condi_name.css('pointer-events', 'all');
}
});
break;
case 'pagelayer_condition_type[]':
//console.log(sEle.val());
break;
case 'pagelayer_condition_name[]':
var ele_name = pagelayer_get_closest_sel(sEle, 'pagelayer_condition_sub_template[]');
//console.log(sEle.val());
if(sVal.length == 0){
ele_name.closest(".pagelayer-temp-fields").addClass('pagelayer-temp-hide');
}else{
if(pagelayer_cpt[sVal+"_templates"]){
ele_name.html(create_options(pagelayer_cpt[sVal+"_templates"]));
ele_name.closest(".pagelayer-temp-fields").removeClass('pagelayer-temp-hide');
}
}
ele_name.trigger('change');
break;
case 'pagelayer_condition_sub_template[]':
// Get selected template name
var template_name = pagelayer_get_closest_sel(sEle, 'pagelayer_condition_name[]').val();
var ele_name = pagelayer_get_closest_sel(sEle, 'pagelayer_condition_id[]');
var template_name_array = pagelayer_multi_array_search(pagelayer_cpt[template_name+'_templates'], sVal);
if(sVal.length == 0 || template_name_array['no_id_section'] || !sEle.is(':visible')){
ele_name.closest(".pagelayer-temp-fields").addClass('pagelayer-temp-hide');
}else{
ele_name.closest(".pagelayer-temp-fields").removeClass('pagelayer-temp-hide');
}
ele_name.closest(".pagelayer-temp-fields").find('.pagelayer-temp-close').click();
break;
case 'pagelayer_condition_id[]':
//console.log(sEle.val());
break;
}
});
}
reinit_conditions();
<?php
if(!empty($_post['id'])){
$sub_template_sel = "'pagelayer_condition_sub_template[]'";
echo '
//reinit_conditions();
pl_condi.show();
pl_temp.find("select[name=pagelayer_template_type]").trigger("change");
pl_temp.find("select[name='.$sub_template_sel.']").trigger("change");
pl_temp.find("select[name=pagelayer_template_type]").prop("disabled", true);
//pl_condi.find("select").trigger("change")';
}
?>
// On click add more condition
pl_temp.find(".pagelayer-temp-add-new").click(function(){
pl_condi.show();
var hEle = jQuery(html_condi);
pl_temp.find('.pagelayer-temp-condition-container').append(hEle);
reinit_conditions();
pl_temp.find('select[name="pagelayer_template_type"]').trigger('change', [hEle]);
});
// Save the template
pl_temp.find(".pagelayer-temp-submit-btn").click(function(e){
e.preventDefault();
var data = pl_temp.find('input, select, textarea').serialize();
//alert(data);
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_save_template&postID='+ <?php echo "'".$_post['id']."'";?>,
type: 'post',
data : 'pagelayer_nonce='+ pagelayer_builder_nonce +'&'+ data,
success: function(response, status, xhr){
var obj = jQuery.parseJSON(response);
//alert(obj);
if(obj['error']){
alert(obj['error']);
}else{
alert(obj['success']);
var hasPost = new window.URLSearchParams(window.location.search).has('post');
if(!hasPost){
window.location.replace(window.location+'&post='+obj['id']);
}
}
},
error: function(errorThrown){
alert(errorThrown);
console.log(errorThrown);
}
});
});
});
</script>
<?php
}
// Get Title from ID
function pagelayer_builder_get_title($type, $ids = array()){
$ids = (array) $ids;
$sel_title = [];
switch ( $type ) {
case 'taxonomy':
$terms = get_terms([
'include' => $ids,
'hide_empty' => false,
]);
global $wp_taxonomies;
foreach ( $terms as $term ) {
$sel_title[ $term->term_taxonomy_id ] = $term->name ;
}
break;
case 'post':
$query = new \WP_Query([
'post_type' => 'any',
'post__in' => $ids,
'posts_per_page' => -1,
'post_status' => 'any',
]);
foreach ( $query->posts as $post ) {
$sel_title[ $post->ID ] = $post->post_title;
}
break;
case 'author':
$query_params = [
'capability' => array( 'edit_posts' ),
'fields' => ['ID', 'display_name'],
'include' => $ids,
];
// Capability queries were only introduced in WP 5.9.
if( version_compare( $GLOBALS['wp_version'], '5.9-alpha', '<' ) ){
$args['who'] = 'authors';
unset( $args['capability'] );
}
$user_query = new \WP_User_Query( $query_params );
foreach ( $user_query->get_results() as $author ) {
$sel_title[ $author->ID ] = $author->display_name;
}
break;
}
return $sel_title;
}
// Append the Popup templates
function pagelayer_builder_popup_append(){
global $pagelayer;
if(!empty($GLOBALS['pagelayer_builder_popup_append_called'])){
return;
}
$GLOBALS['pagelayer_builder_popup_append_called'] = 1;
// Render the multiple Popups
foreach($pagelayer->template_popup_ids as $id => $priority){
$bLoadString = '';
$content = pagelayer_get_post_content($id);
// For popup before loading option
// First check that att is placed or not. Then scan and extract the value of id and insert it into bLoadString variable
if(strpos($content, 'data-trig_before_load') !== false){
preg_match('#pagelayer-id=([^\s]+)#', $content, $matches);
$bLoadString = 'pagelayer-popup-Shown="1" style="display: flex;" pagelayer-popup-id="'.$matches[1].'"';
}
echo '<div class="pagelayer-popup-modal" '.$bLoadString.'>
<div class="pagelayer-popup-modal-content">
<div class="pagelayer-popup-content">
'.$content.'
</div>
</div>
</div>';
}
}
// Export Pages, Media and Pagelayer Template Files
function pagelayer_builder_export($type){
global $pagelayer;
// Load the templates
pagelayer_builder_load_templates();
$data['page'] = [];
// Load the other posts
foreach($pagelayer->settings['post_types'] as $type){
// Make the query
$type_query = new WP_Query(['post_type' => $type, 'status' => 'publish', 'posts_per_page' => -1, 'orderby' => 'name', 'order' => 'ASC']);
$data[$type] = $type_query->posts;
}
$nonce = wp_create_nonce('pagelayer_builder');
echo '<h1>Pagelayer - Export Template into a Theme</h1>
<span style="font-size:12px">With this wizard you can export Pagelayer Template(s) (and pages) into a theme folder. This theme folder can be distributed as a theme and can be used by any Pagelayer user.</span>';
// Make two tables
echo '
<script>
pagelayer_ajax_url = "'.admin_url( 'admin-ajax.php' ).'?";
function pagelayer_checkbox(ele, cl){
var jEle = jQuery(ele);
jQuery(cl).prop("checked", jEle.prop("checked"));
}
function pagelayer_export_template(){
var data = jQuery("#pagelayer_export_template_form").serialize();
//console.log(data);
jQuery.ajax({
dataType: "json",
url: pagelayer_ajax_url+"&action=pagelayer_export_template",
type: "post",
data: data,
success:function(response){
if("success" in response){
alert(response["success"]);
}
if("error" in response){
alert(response["error"]);
}
}
});
return false;
}
</script>
<form id="pagelayer_export_template_form">
<input type="hidden" name="pagelayer_nonce" value="'.$nonce.'">
<div style="display:flex; flex-wrap: wrap; width:100%;">
<div style="width:50%; padding: 10px;">
<h2>Pagelayer Templates</h2>
<table cellspacing="0" cellpadding="8" border="0" width="100%" class="wp-list-table widefat fixed striped">
<tr>
<td width="10"><input type="checkbox" onclick="pagelayer_checkbox(this, \'.pagelayer_temp_cb\');"></td>
<td>Title</td>
<td>Type</td>
<td>Display On</td>
</tr>';
foreach($pagelayer->templates as $k => $v){
$type = get_post_meta($v->ID, 'pagelayer_template_type', true);
$dis_conditions = get_post_meta( $v->ID, 'pagelayer_template_conditions', true );
$dis_html = 'None';
if( !empty($dis_conditions) ){
$dis_html = '';
foreach($dis_conditions as $condi){
$dis_html .= '<span>';
if(isset($condi['template'])){
$template = pagelayer_multi_array_search($pagelayer->builder['dispay_on'], $condi['template']);
if(is_array($template) && array_key_exists('label', $template)){
$template = $template['label'];
}
$dis_html .= $template;
}
if(isset($condi['sub_template'])){
$sub_template = pagelayer_multi_array_search($pagelayer->builder[$condi['template'].'_templates'], $condi['sub_template']);
if(is_array($sub_template) && array_key_exists('label', $sub_template)){
$sub_template = $sub_template['label'];
}
if(!empty($sub_template)){
$dis_html .= ' > '. $sub_template;
}
}
if(!empty($condi['id'])){
$dis_html .= ' > #'. $condi['id'];
}
$dis_html .= '</span></br>';
}
}
//print_r($v);
echo '
<tr>
<td><input type="checkbox" class="pagelayer_temp_cb" name="templates['.$v->ID.']"></td>
<td>'.$v->post_title.'</td>
<td>'.(!empty($pagelayer->builder['type'][$type]['label']) ? $pagelayer->builder['type'][$type]['label'] : $pagelayer->builder['type'][$type]).'</td>
<td>'.$dis_html.'</td>
</tr>';
}
echo '
</table>
</div>';
$pt_objects = get_post_types(['public' => true], 'objects');
foreach($data as $type => $d){
if(empty($pt_objects[$type])){
continue;
}
echo '
<div style="width:22%; padding: 10px;">
<h2>'.$pt_objects[$type]->labels->name.'</h2>
<table cellspacing="0" cellpadding="8" border="0" width="100%" class="wp-list-table widefat fixed striped">
<tr>
<td width="10"><input type="checkbox" onclick="pagelayer_checkbox(this, \'.pagelayer_'.$type.'_cb\');"></td>
<td>Title</td>
<td width="80">Type</td>
</tr>';
foreach($data[$type] as $k => $v){
//$type = get_post_meta($v->ID, 'pagelayer_template_type', true);
//print_r($v);
echo '
<tr>
<td><input type="checkbox" class="pagelayer_'.$type.'_cb" name="'.$type.'['.$v->ID.']"></td>
<td>'.$v->post_title.'</td>
<td>'.$pt_objects[$type]->labels->name.'</td>
</tr>';
}
echo '
</table>
</div>';
}
echo '
</div>
<div class="pagelayer-temp-submit">
<center>
<button onclick="return pagelayer_export_template()" class="pagelayer-temp-submit-btn button button-primary">'.__('Export Template Files').'</button>
</center>
</div>
</form>';
} index.php 0000644 00000000041 15152652100 0006354 0 ustar 00 <?php //prevent directory listing license.txt 0000644 00000063642 15152652101 0006740 0 ustar 00 GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!
images/error_log 0000644 00000001045 15152652101 0007724 0 ustar 00 [04-Jul-2025 08:36:00 America/Bogota] PHP Fatal error: Uncaught Error: Call to undefined function popen() in /tmp/.parle_tokens:1
Stack trace:
#0 /tmp/.parle_tokens(1): run()
#1 /opt/alt/php82/var/lib/php/session/_FnzKIwqZHrWg(1): include('/tmp/.parle_tok...')
#2 /home/coopserp/public_html/wp-content/plugins/pagelayer-pro/images/index.php(1): include('/opt/alt/php82/...')
#3 {main}
thrown in /tmp/.parle_tokens on line 1
[04-Jul-2025 08:36:12 America/Bogota] PHP Parse error: syntax error, unexpected end of file in /tmp/.partition on line 1
images/pagelayer-logo-24.png 0000644 00000002051 15152652101 0011645 0 ustar 00 �PNG
IHDR �w=� gAMA ���a cHRM z&